区块链本质上是一个分布式存储系统。就其存储结构而言,数据块是以块为单位的链状数据块结构,是区块链的基本组成单位。块由块头和包含元数据的块体组成(如图3所示)。
头包含了很多数据,主要包括版本号、前一个块的hash值、当前块工作量认证的目标难度值、当前块的生成时间、工作量认证算法使用的随机数、用于验证块事务的Hash Merkel树的根(用于有效总结块中所有事务的数据结构)。块头保存用于连接前一个块的各种信息,用于验证块信息和时间戳的各种信息。
图3块结构
来源:袁勇、王飞跃:《区块链技术发展现状与展望》,《自动化学报》,2016年第4期。
Block,即transactions列表,包含了block中所有的交易信息,包括coinbase交易和常规交易。
如果把区块链简单地看成是一个全网共享的数字账本,记录和反映各节点账户交易相关的信息,如买卖、交易、签约、履约等。并以数据加密的形式存储,那么从物理的角度来说,当我们把这个账本分解成一页页的碎片时,每一个碎片都存储了一段时间内,在之前的节点交易中,社区中的个人和所有参与者的相关交易信息。这样的片段可以被视为数据块。