
1.3 区块链技术的组成架构
区块链技术从下向上分为6层,分别是数据层、网络层、共识层、激励层、合约层及应用层(如图1-7所示)。

图1-7 区块链技术的组成架构
数据层通过链式结构使用密码学方法加密了底层数据区块,保证了数据的不可篡改。数据层的主要功能包括数据存储、哈希算法、Merkle树、非对称加密、时间戳以及数据区块的链式结构生成。在进行数据存储时,需要考虑数据存储的性能和稳定性,比特币和以太坊中使用的是谷歌的LevelDB数据库。数据层的工作流程为:从网络层获取最新的交易信息,把交易数据打包到数据区块中,使用哈希函数、Merkle树等技术对数据区块进行加密处理,通过共识层的共识机制后,将该数据区块发送给网络上其他节点进行验证,验证通过后将数据区块加入区块链。
网络层包括分布式组网机制、数据传播机制和数据验证机制等,主要负责数据在网络上的传输。网络层使用P2P网络进行组网,有以下特点:节点同时作为客户端与服务器;没有中心服务器;没有中心路由器。在区块链技术中,P2P网络的作用就是让网络中所有节点能够平等维护区块链这个分布式账本,但是由于在P2P网络上各个节点地位相同,因此为了能够在节点间达成一致的账本,共识层提供了一些共识算法使得各个节点对区块链数据达成一致。
共识层主要封装网络节点的各类共识算法,保证数据的一致性,其中较为常用的共识算法有工作量证明(PoW)、权益证明(PoS)、股权授权证明(DPoS)等。
激励层将经济因素集成到区块链技术体系中,主要包括经济激励的发行机制和分配机制等。区块链共识过程通过汇聚大规模共识节点的算力资源来实现共享区块链账本的数据验证和记账工作,因而其本质上是一种共识节点间的任务众包过程。去中心化系统中的共识节点本身是自利的,最大化自身收益是其参与数据验证和记账的根本目标。因此,必须设计激励相容的合理众包机制,使得共识节点最大化自身收益的个体理性行为与保障去中心化区块链系统的安全和有效性的整体目标相吻合。
合约层主要封装各类脚本、算法和智能合约,对数据区块上的数据进行操作,合约层是区块链可编程特性的基础。在以太坊中,智能合约被加入合约层,使得区块链可以在满足特定条件后自动触发相应的操作。
应用层指基于区块链技术的各种应用场景和案例,例如加密数字货币钱包、去中心化应用、数字货币交易所等。