区块链平台架构分析
一般说来,一个标准的区块链项目应该由数据层、网络层、共识层、激励层、合约层和应用层组成。
每一层的具体介绍如下:
数据层
数据层是区块链最底层的技术,主要的功能为数据存储、账户和交易的实现与安全。数据存储主要基于Merkle树,通过区块的方式和链式结构实现,大多以KV数据库的方式实现持久化,如比特币和以太坊采用的LevelDB。
网络层
网络层的主要目的是实现区块链网络节点之间的信息交互。区块链的本质是一个点对点(P2P)网络,每一个节点既能够接收信息,也能够生产信息,节点之间通过维护一个共同的区块链来保持通信。
在区块链的网络中,每一个节点都可以创造出新的区块,新区块被创造出以后,会通过广播的形式通知其他的节点,而其他节点反过来会对这个节点进行验证。当区块链网络中超过51%的用户对其验证通过以后,这个新的区块就会被添加到主链上。
账本层
账本层负责区块链系统的信息存储,包括收集交易数据,生成数据区块,对本地数据进行合法性校验,以及将校验通过的区块添加到链上。
账本层有以下两种数据记录方式:
(1)在基于资产的模型中,首先以资产为核心进行建模,然后记录资产的所有权,即所有权是资产的一个字段。
(2)在基于账户的模型中,建立账户作为资产和交易的对象,资产是账户下的一个字段。
共识层
共识层能够让高度分散的节点在去中心化的系统中针对区块数据的有效性达成共识。区块链中比较常用的共识机制包括工作量证明、权益证明和股份授权证明等。
共识机制的作用主要有两个,一个是奖励,另一个是惩罚。比特币和以太坊用的是工作量证明机制(PoW)。此机制根据算力进行奖励和惩罚,如有节点作弊,算力会受到损失。
Bitshares、Steemit、EOS采用股份授权证明机制(DPoS),拥有代币的人可以参与节点的投票,被大家选出来的节点参与记账,一旦作弊就会被系统投出。
其中的激励功能主要是指给予代币奖励,鼓励节点参与区块链的安全验证。例如,在比特币总量达到2100万枚之前,比特币的奖励机制有两种:新区快产生后系统奖励的比特币;每笔交易扣除的比特币(手续费)。而当比特币的总量达到2100万枚时,新产生的区块将不再生产比特币,此时的奖励主要是每笔交易所扣除的手续费。
合约层
所谓合约层主要是指各种脚本代码、算法机制及智能合约等。智能合约是运行在区块链上的一段无须干预即可自动执行的代码,EVM是智能合约运行的虚拟机,通过智能合约,无须任何中介干预即可实现资产的转移,同时也可以开发出一些有价值的去中心化应用。
以比特币为例,它是一种可编程的数字货币,合约层封装的脚本中规定了比特币的交易方式和交易过程中所涉及的各种细节。
基于智能合约可以构建区块链应用,如基于以太坊公链,开发者可以使用Solidity语言开发智能合约,构建去中心化应用;基于EOS,开发者可以使用C++语言,编写自己的智能合约。
应用层
应用层封装了区块链的各种应用场景和案例,如基于区块链的跨境支付平台等,它也是去中心化应用DAPP。一个完整的DAPP包含智能合约和Web系统,Web系统通过接口调用智能合约。
本层类似于计算机中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为B/S架构的产品中的浏览器端(Browser)。