《每日一课》第十课:区块链由哪些结构组成,区块链每日必知

2023-06-06 09:12:01 views

区块链是由区块相互连接形成的链式存储结构,区块就是链式存储结构中的数据元素,其中第一个区块被称为创始区块。

区块作为区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构成。

在区块链中交易数据是以电子化形式永久存在的,形成数据存储的单元被称为区块。区块链的数据结构其实有两部分组成,分别是区块头和区块体。你可以这样理解,区块体就是区块的主体,主体里是各种交易数据,区块头里就是其他杂七杂八的东西,由版本号、难度值、时间戳等等组成,它包含了每个区块自身的身份识别信息。

区块头包含三个部分:

1. 父区块哈希值,也就是上一个区块的哈希地址。

我们知道区块链是按顺序一个个排列形成的区块链条,就像真实账本一样,每一页都有一个页码,通过页码你就能找到你想找的内容;而区块链中,通过父区块哈希值就可以找到了上一区块结算后的信息。

哈希算法是区块链中保证交易信息不被篡改的单向密码机制。

哈希算法接收一段明文后,一一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。

简单来说,哈希算法是一种加密算法,如果有些内容你不想让别人看到,你可能就会想到对这些内容加密,哈希算法就是其中一种。其中,加密前的信息被称作明文,加密后的信息被称为密文。

2. 挖矿难度、时间戳和随机数。

挖矿难度是根据网络的算力来调整挖矿的时间。

随机数是用于工作量证明算法的计数器。

简单地说,时间戳其实就是给区块盖个章,它记录的是本区块被创建的精确的时间,证实了每一个区块都是独一无二不可篡改的!

区块链中的时间戳从区块生成的一刻起就存在于区块之中,它对应的是每一次交易记录的认证,证明交易记录的真实性。时间戳是直接写在区块链中的,而区块链中已经生成的区块不可篡改,因为一旦篡改,生成的哈希值就会变化,从而变成一个无效的数据。每一个时间戳会将前一个时间戳也纳入其随机哈希值中,这一过程不断重复,依次相连,最后会生成一个完整的链条。

3. Merkle(默克尔)树根。

默克尔根最大的作用就是能够判断交易的数据是不是被篡改过。

默克尔根是由区块主体中所有交易的哈希值逐级两两哈希计算剩下的最后的一个唯一值,所以默克尔根在这里有两个关键词:最终值、唯一值。

同样地,区块中任意一个数据的变更都会导致Merkle树结构发生变化,在交易信息验证比对的过程中,Merkle树结构能够大大减少数据的计算量,毕竟,我们只需验证Merkle树结构生成的统一哈希值——默克尔根就可以了。

而区块体则十分简单,就是一个区块中所有的交易记录,比如比特币系统的每一个区块主体大概是2500笔交易记录,交易记录就是转账信息。

区块链系统大约每10分钟会创建一个区块,其中包含了这段时间里全网范围内发生的所有交易。每个区块中也包含了前一个区块的ID(识别码),这使得每个区块都能找到其前一个节点,这样一直倒推就形成了一条完整的交易链条。从诞生之初到运行至今,全网随之形成了一条唯一的主区块链。