剖析区块链(三):核心技术之区块+链的数据结构

我们都知道区块链并不是一项单一的技术,而是一个新的技术组合。其中每项技术都各司其职,解决了不同难题,完美的组合在一起形成区块链。本文介绍的就是区块链中这些核心技术之一的

区块+链的数据结构

剖析区块链(三):核心技术之区块+链的数据结构

区块链就是依据这个数据结构来命名的,由此可见区块+链的数据结构是区块链很重要的一环,同时也是一大亮点。从技术上来看:区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成的交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链或主链的一部分。

1. 区块

区块作为区块链的基本结构单元,由包含了三组元数据的区块头和包含交易数据区块主体(也叫区块体)两部分组成(由于不同区块链系统采用的数据结构会有不同,所以下面以比特币为例)。

剖析区块链(三):核心技术之区块+链的数据结构

1.1. 区块头

区块头主要包含的三组元数据分别是:(1)用于连接前面的区块、索引自父区块哈希值的数据;(2)挖矿难度时间戳、Nonce(随机数,用于工作量证明算法的计数器,也可理解为记录解密该区块相关数学题的答案的值);(3)能够总结并快速归纳校验区块中所有交易数据的Merkle(默克尔)树根数据。当然区块头不仅仅包含这些元数据,还有其他比如:版本号、难度值等(以上这些生涩的名称不懂没关系,后面几篇文章都会分析这些技术)。

从这个结构来看,区块链的大部分功能都由区块头实现。

1.2 区块主体

区块主体所记录的交易信息是区块所承载的任务数据,具体包括交易双方的私钥、交易的数量、电子货币的数字签名等。

2. 链

比特币系统大约每10分钟会创建一个区块,这个区块包含了这段时间里全网范围内发生的所有交易。每一个区块都保存了上一个区块的哈希值,使得每个区块都能找到其前一个区块,这样就将这些区块连接起来,形成了一个链式的结构。

剖析区块链(三):核心技术之区块+链的数据结构

3. 区块的形成过程

在当前区块加入区块链后,所有矿工就立即开始下一个区块的生成工作:(1)把在本地内存中的交易信息记录到区块主体中;(2)在区块主体中生成此区块中所有交易信息的Merkle树,把Merkle树根的值保存在区块头中;(3)把上一个刚刚生成的区块的区块头的数据通过SHA256算法生成一个哈希值填入到当前区块的父哈希值中;(4)把当前时间保存在时间戳字段中;(5)难度值字段会根据之前一段时间区块的平均生成时间进行调整,以应对整个网络不断变化的整体计算总量,如果计算总量增长了,则系统会调高数学题的难度值,使得预期完成下一个区块的时间依然在一定时间内。

以上就是对于区块链数据结构的分析,如果对你有所帮助不胜荣幸。由于是为了让大众更了解区块链,所以核心技术系列单单是从区块链用到的技术这个角度来分析,后期将会参考一些文献整理出来从区块链架构角度来分析的文章,便于一些技术人员来理解。


分享到:


相關文章: