《表2 区块头字段说明:比特币系统综述》

《表2 区块头字段说明:比特币系统综述》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《比特币系统综述》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

比特币系统采用链式结构对区块数据进行组织管理,将一个个区块链接起来。比特币区块数据大小不超过1M,包括区块头和区块体两部分,区块体保存交易信息,区块头保存区块基本信息,固定80个字节,包括版本(Version)、时间戳(Timestamp)、随机数(Nonce)、难度目标(Bits)、前一区块哈希值(PrevBlockHash)、默克尔根(MerkleRoot),区块数据结构如图3所示,区块头各个字段含义及占用字节数如表2所示。区块链系统要求每个区块必须加盖时间戳,由于比特币系统中没有中心节点,没有统一的标准时间,每个节点时间戳可能不一样,比特币系统规定最新区块时间戳要大于前面11个区块的平均时间且不超过当前网络时间两小时,所以有可能存在后一个区块时间戳比前一个区块时间戳小的情况[10]。随机数占32位,取值范围是[0,232),随机数和难度目标是共识层挖矿的重要参数。每个区块保存了前一区块头哈希值,从而将当前区块链接到比特币系统的区块链中。比特币系统使用了最简单的二叉Merkle树[11],一个区块中第一笔交易是挖矿所得的Coinbase交易,对剩下的交易根据手续费由高到低进行排序,计算出每笔交易的哈希值作为Merkle树的叶子结点,两个叶子结点的值连在一起后再进行哈希得到父结点的值,再依次将两个父结点的值连在一起进行哈希,如此反复执行两两哈希,直到生成根哈希值,即默克尔根[12]。