区块链:技术与场景
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 区块结构

链式结构分为两个部分,一部分是区块结构,另一部分是区块之间的连接方式。我们先来看区块结构。

1.区块结构

区块包括块头(header)和块身(body),块头封装了当前的版本号、前一区块地址、时间戳、随机数、当前区块的目标哈希值、Merkle树的根值等信息。区块结构如图1-4所示。

哈希是一类密码算法,任意一段信息都可以通过某种加密算法表现为一串“乱码”,即哈希值。

每个特定区块的块头都有唯一的头哈希值,任何节点都可以简单地对块头进行哈希计算,独立获取该区块的哈希值。父哈希值指向前一区块的地址,如此递推可以回溯到区块链的第一个区块,即创世区块。

区块高度是区块的一个标识符,作用与块头哈希值类似。可以理解为,区块链高度相当于门牌号,哈希值相当于GPS定位的经度和纬度,通过经纬度和唯一确定的门牌号可以确定地址。其中,创世区块高度为0。

图1-4 区块结构

块身只负责记录前一段时间内的所有交易信息,这与我们日常生活中的交易类似。例如,完成了某笔交易,在账本上记下这个时间段的交易明细,主要包括交易数量和交易详情等数据,如图1-4中的“交易1”“交易2”等。

2.区块连接

将区块连接起来,就形成了区块链,“区块+链”的结构如图1-5所示。

图1-5 “区块+链”结构

交易信息是在某区块的某时间段内发生的所有交易的明细,包括交易双方的私钥、交易数量、数字签名等;前一区块形成的哈希值用于连接区块,实现过往交易的顺序排列;随机数是交易达成的核心,所有矿工节点竞争计算随机数的答案,最快得到答案的矿工节点生成一个新的区块,广播并更新,如此完成一笔交易,这就是挖矿机制的实现方式。

这样,矿工的数据中心就保存了所有的区块信息,这些区块一个接一个,从最初的创世区块到当前的区块,这就是“链式结构”。这种结构保留了历史上所有的交易细节,可以随时追溯到某时刻的交易情况,这就是区块链的“可追溯性”。