一个区块链里的区块里都有什么东西?

百家号
扮猪并不吃老虎
一个区块中最先的区块信息是一个叫做神奇数的东西,其实也没啥神奇的,就是那个字符串,用于把区块隔离开,这是个什么东西呢?就像是每一张表格的表头题目,看到这个东西,大家就知道这是另外的一页,另外一个区块。

区块就是一个数据包,说白了就是存数据的,存数据就有一定的规矩,这就是区块的数据结构。那一个区块的数据结构是怎样的呢?他是怎样保证一个区块一旦链接到一条链上,就很难被修改和变动的呢?

一个区块是由区块整体信息,区块头和区块身体组成的。

第一,区块信息

一个区块中最先的区块信息是一个叫做神奇数的东西,其实也没啥神奇的,就是那个字符串,用于把区块隔离开,这是个什么东西呢?就像是每一张表格的表头题目,看到这个东西,大家就知道这是另外的一页,另外一个区块。

然后是一个数据来表示整个区块的大小体积,相当于你们班有多少人,他会直接用数字记录下来。比如50个人。

2345截图20210806091512.png

第二,区块头

区块头的信息首先是说明软件的版本,比如比特币是哪一版的比特币软件?是升级过没有?有没有硬分叉?

然后是上一个区块的哈希值,这个哈希值是怎么算出来的呢?是拿上上一个区块的信息用哈希函数算出来,上上一个区块的哈希值怎么来的呢?是用上上上一个区块的数据算出来的。所以每一个区块都以前一个区块有基因的联系,靠的就是这个哈希值。理论上讲,你可以一直追溯到第一个中本聪从赫尔辛基挖出来的区块。

然后是默克尔根,就是把所有区块身体里面的信息两两算哈希值,最后得到一个最终的哈希,用来代表所有交易的结果。注意由于哈希函数的性质,只要这里边儿的任何一笔交易发生一点点的变化,最后的根哈希值都会发生变化。特别方便用于验算的过程。

然后是时间戳,这很好理解,就是区块所产生的时间,打上烙印。

然后是难度目标,这个之前说过,用来表示产生一个区块需要多大的算力。说白了,就是在一串二进制数字前面添多少个零。零越多,难度越大。

最后是随机数,这就是工作量证明中的那个解。

2345截图20210806091512.png

第三,区块身体

区块儿身体中放的就是各种各样的交易了,这个很好理解。从哪个地方来,到哪个地方去,谁给谁转了钱。

这些交易,他们最终会以默克尔树的形式存在。可以把它想象成一棵大树或者一个金字塔。然后一个树枝分成两个,一个树枝再分成两个。一直分到最后的树叶子上,不再分了,每一个树叶子就是一笔交易的信息。

然后他们从下往上量量往上运算,当量算出一个哈希值,再把两个哈希值再计算出一个哈希值到最后算出一个根哈希值,用于验算和保存数据。

2345截图20210806091512.png

正是由于这样的数据结构,才保证了区块链是一个整体,每个区块每个区块直接有联系,它的难度可以调整,时间可以被标记,最后他的数据还会形成一定的结构,得到最终的一个哈希值,非常的便捷,利于验算,保证了整个区块链的稳定。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论