区块链技术模型区块链技术模型区块链系统主要分六层,分别是数据层、网络层、共识层、激励层、合约层以及应用层
其中数据层是区块链的核心部分,主要封装了底层数据区块结构、加密算法以及时间戳等技术;网络层则是区块链平台信息传输的基础,包括了P2P网络的组网机制、数据传输机制以及数据验证机制等;共识层则封装了区块链网络节点使用的共识算法;激励层则是将经济因素引入区块链系统中,用于维持区块链系统的运行;合约层对各类算法、脚本、智能合约进行了封装,是区块链系统可编程的基础
应用层则是区块链技术针对具体应用场景的应用实现,如web网页、去中心化APP(DApp)等
数据层--区块结构每一个区块一般由区块头和区块体两部分组成
其中其块头部分如图2-2所示,该部分包含了父区块哈希值、时间戳、随机数、版本信息Merkle根等信息
而区块体部分则包含者本区块中所有的交易信息
区块头哈希值是一个区块链上区块的唯一标识,任何节点都可以通过对区块头通过哈希函数进行计算得到该区块头的哈希值
版本信息前一区块哈希值时间戳随机数Merkle根区块头区块体交易数据交易数据前一区块后一区块数据层—Merkle树交易信息主要存在于区块体中,它们是以一棵Merkle树形式的数据结构进行存储的
Merkle树是一棵哈希二叉树,树的每一个叶子节点都是一笔交易内容数据的哈希值
Merkle树被用来归纳一个区块中包含的所有交易,同时生成包含整个交易集合的Merkle树根
Merkle树的生成需要递归地对每两个哈希节点进行哈希计算,得到一个新的哈希值,并且将新的哈希值存入Merkle树中,直到两两结合最终只有一个哈希值,这个哈希值就是这一区块所有交易的Merkle根,存储到上面提到的区块头中
当需要证明某笔交易存在于交易列表中时,一个节点只需要计算log2N个32字节的哈希值,就可以形成一条从Merkle根到此交易的