区块结构

1. 区块结构

区块是一种被包含在公开账簿(区块链)里的聚合了交易信息的容器数据结构。它由一个包含元数据的区块头和紧跟其后的构成区块主体的一长串交易组成。区块头是80字节,而平均每个交易至少是250字节,而且平均每个区块至少包含超过500个交易。因此,一个包含所有交易的完整区块比区块头的1000倍还要大。

大小 字段 描述
4字节 区块大小 用字节表示的该字段之后的区块大小
80字节 区块头 组成区块头的几个字段
1-9可变整数字节 交易计数器 交易的数量
可变的 交易 记录在区块里的交易信息

2. 区块头

区块头由三组区块元数据组成:

  • 首先是一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。
  • 第二组元数据,即难度、时间戳和nonce,与挖矿竞争相关。
  • 第三组元数据是merkle树根(一种用来有效地总结区块中所有交易的数据结构)。
大小 字段 描述
4字节 版本 版本号,用于跟踪软件/协议的更新
32字节 父区块哈希值 引用区块链中父区块的哈希值
32字节 Merkle根 该区块中交易的merkle树根的哈希值
4字节 时间戳 该区块产生的近似时间(精确到秒的Unix时间戳)
4字节 难度目标 该区块工作量证明算法的难度目标
4字节 Nonce 用于工作量证明算法的计数器

Nonce、难度目标和时间戳会用于挖矿过程。

3. 区块标识符:区块头哈希值和区块高度

区块主标识符是它的加密哈希值,一个通过SHA256算法对区块头进行二次哈希计算而得到的数字指纹。产生的32位字节哈希值被称为区块哈希值,但是更为准确的名称是:区块头哈希值,因为只有区块头被用于计算。

你可能感兴趣的:(区块结构)