区块链是一种源自比特币基础技术的新型技术系统。其最初的定义是一种分布式账本, 而账本是由分布式系统的每个节点共享的。每个节点运作方式是将一段时间内接收的事务数据和代码采用特殊的散列算法和 Merkle 树进行封装并放入数据块当中, 最后衔接到最长的区块链。“去中心”与“不可篡改”是区块链技术最重要的特征, 它可以在不依靠第三方信任组织的条件下使得对等体之间建立信任传递, 不仅能使交易的成本大为降低, 还使交易的效率显著提升。
区块链技术刚提出的时候, 在架构上通常被分为 6 层, 即数据层、网络层、共识层、激励层、合约层和应用层。
①数据层: 该层通过块存储数据, 并且所有数据都包含在每个数据节点之间。数据层主要解决这些数据如何组合形成有意义的块的形式。每个块包括块的大小、块头、块中包含的事务数, 以及最近一些或所有的新事务。
②网络层: 该层扮演着区块链网络中节点和节点之间信息交换的角色, 负责用户点对点信息交换, 它主要包括 P2P( Peer-To-Peer network) 网络机制[24] 、数据传播和验证机制[25] 。正是由于块的 P2P 特性, 数据传输在节点之间进行, 因此即使某些节点或网络被破坏, 也不会对其他部分的传输产生影响。
③共识层: 该层允许高度分散的节点在 P2P 网络中对于区块数据的有效性达成一致, 确定谁可以向主链中添加新的区块。目前, 共识机制算法有十多种, 其中最著名的是工作量证明机制( PoW) 、权益证明机制[26] ( PoS) 、股份授权证明机制[27] ( DPoS) 等。
④激励层: 该层提供了一些激励方法, 鼓励节点参与记账并确保整个网络的安全运行。通过共识机制,赢得记账权的节点可以获得一定的奖励。目前最熟悉的比特币有两个主要的激励因素, 一是产生新区块的系统奖励, 二是每次的交易手续费。
⑤合约层: 该层封装了各种脚本、程序和合约, 使区块链可编程。例如, 智能合约[28] 是区块链的一些脚本, 区块链上的各种交易会触发对应的脚本。触发后, 该脚本就可以从区块链读取数据或向区块链写入数据甚至去触发其他脚本协同工作。通过这种方式, 就可以使用程序算法来替换人员去仲裁和执行合同, 为用户节省巨大的信任成本。
⑥应用层: 该层封装了区块链的各种应用和场景, 比如 3 种可编程应用类型, 即可编程货币、可编程金融及可编程社会。例如, 之前制作以太网的以太猫已部署在应用层。
随着时间的推移, 区块链技术的研究越来越深入, 区块链技术发展迅速, 区块链架构也在不断变化, 很多传统的模块被弱化, 激励层的机制在联盟链和私有链技术中甚至已被替代。例如数据层、共识层、激励层以及合约层的技术和机制大部分都是在交易的过程中体现, 并没有很明显的区分, 而类似于激励机制在联盟链和私有链中与公有链的区别在于大多公有链需依赖代币机制激励节点进行挖矿, 从而打包新的交易数据, 在联盟链和私有链中由于系统结构相对较为封闭, 多为互相合作的多方来构建, 可不使用代币机制来进行激励。
《区块链数据隐私保护研究综述》一文将区块链技术简化为网络层、交易层和应用层。
网络层主要控制建立区块链网络以及所有节点之间信息的传递, 其核心内容包括两部分, 即组网方式和数据传播协议,网络层利用 P2P技术实现分布式网络机制, 主要任务是保证区块链节点之间可以通过 P2P 网络进行有效通信。
交易层负责交易数据的建立、检验和保存, 区块链的核心业务在该层中实现, 主要内容包括地址格式、交易格式、全局账本和共识机制。区块链的核心业务由交易层实现, 即两个地址之间可靠和有说服力的数据传输, 且地址、交易、合约、账本、共识机制和激励措施都是其传递的主要内容。
应用层提供应用程序场景的程序和接口,安装在应用层的各种应用程序直接与用户进行交互。目前,典型的区块链应用有数字货币应用, 数据存储应用以及能源应用等。
|