从比特币开始,到现在众多新的区块链项目出现,区块链的层次结构可分为应用层、合约层、激励层、共识层、网络层、数据层。图1-1所示为区块链运行时各层次逻辑关系(以完整的6个层次为例)。
图1-1 区块链运行时各层次逻辑关系
区块链的运行从应用层发起,应用层是一些场景或者案例,由终端设备承载,比如pc端的软件程序或者移动端的APP应用等。与区块链的交互通常通过接口形式进行调用。
合约层是运行在区块链上的程序,主要包括各种脚本代码、算法机制以及智能合约等,是区块链可编程特性的基础。合约层的主要作用是通过程序语言,对运行在区块链上的应用自动执行校验,来代替人为的操作和参与。
共识层是实现全网一致性的基础,规定了达成一致所需的规则和算法。规则是指区块的产生和数据写入区块的协议和约定,算法是节点间依靠共识规则达成共识的计算机算法,规则通过算法来保证它们可以被可靠地执行。共识层是区块链的核心,因为它决定了到底由谁来进行记账,而记账决定方式将会影响整个系统的安全性和可靠性。因此共识层的合理规划对区块链来说至关重要
激励层提供一定的奖励措施,鼓励节点参与区块链的安全验证工作。激励层主要实现区块链代币的发行和分配,也可以理解为一种博弈机制,让更多遵守规则的节点愿意进行记账。
网络层的作用是传输数据和数据广播,包括分布式组网机制、数据传播机制和数据验证机制等。区块链网络中每一个节点既接收信息,也产生信息。主要通过P2P(点对点网络)协议实现数据通讯,P2P网络的特点是利用文件分块技术,在下载数据的同时也会把获得的数据分享给网络中的其它节点,这样做的好处是,节点数量越多,上传下载的速度就越快,这就意味着区块链具有自动组网功能。
数据层封装了底层数据区块的链式结构,以及相关的非对称公私钥数据加密技术和时间戳等技术,这是整个区块链技术中最底层的数据结构。
总结,在区块链逻辑架构中数据层、网络层、共识层是构建区块链应用的必要因素,也就是说无论是公有链、私有链、联盟链还是其他类型的链,都具备这三种功能,而激励层、合约层、应用层则不是每个区块链应用所必须的。对于区块链可能还会存在更多的逻辑组合,需要我们在实际应用中去发现和挖掘。