区块链基础架构分为6层,分别是数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。
(一)数据层
数据层封装了底层数据区块的链式结构,以及相关的非对称公私钥数据加密技术和时间戳等技术,这是整个区块链技术中最底层的数据结构,是一切的基础,主要实现了两个功能,一个是相关数据的存储,另一个是账户和交易的实现与安全。
它是一个区块+链表的数据结构,包括有:区块链的区块数据、哈希函数、merkel数、非对称公私钥数据加密技术、时间戳技术等内容,数据存储主要基于Merkle树,通过区块的方式和链式结构实现,大多以KV数据库的方式实现持久化,比如以太坊采用leveldb。
(二)网络层
网络层包括分布式组网机制、数据传播机制和数据验证机制等,由于采用了完全P2P的组网技术,也就意味着区块链是具有自动组网功能的,这种P2P组网技术种相对来说也是一种非常成熟的技术。
区块链网络本质是一个P2P的网络,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,而无需中间环节或中心化的服务器介入。
每一个节点既接收信息,也产生信息,节点之间通过维护一个共同的区块链来同步信息,当一个节点创造出新的区块后便以广播的形式通知其他节点,其他节点收到信息后对该区块进行验证,并在该区块的基础上去创建新的区块,从而达到全网共同维护一个底层账本的作用。
(三)共识层
共识层封装了共识算法和共识机制,能让高度分散的节点在去中心化的区块链网络中高效地针对区块数据的有效性达成共识,是区块链的核心技术之一,也是区块链社群的治理机制。它的主要作用是决定了谁来进行记账,而记账的方式又影响整个系统的安全性和可靠性。
目前至少有数十种共识机制算法,包含工作量证明(POW)、权益证明(POS)、权益授权证明(DPOS)、燃烧证明、重要性证明等等。
(四)激励层
激励层就是大家常说的挖矿机制,它将经济因素集成到区块链技术体系中来并设计出一套经济激励模型,鼓励节点来参与区块链的安全验证工作,包括经济激励的发行机制和分配机制等。
激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等,该层主要出现在公有链中,因为在公有链中必须激励遵守规则参与记账的节点,并且惩罚不遵守规则的节点,才能让整个系统朝着良性循环的方向发展。
所以激励机制往往也是一种博弈机制,让更多遵守规则的节点愿意进行记账。而在私有链中,则不一定需要进行激励,因为参与记账的节点往往是在练外完成了博弈,也就是可能有强制力或者有其他需求来要求参与记账。
(五)合约层
合约层主要封装各类脚本、算法和智能合约,是区块链可编程性的基础。以以太坊为首的区块链系统试图完善比特币的合约层。
比特币尽管也包含了脚本代码,但并不是图灵完备的,即不支持循环语句;以太坊在比特币结构基础上,内置了编程语言协议,从而在理论上可以实现任何应用功能。
如果把比特币看成是全球账本的话,那么就可以被以太坊看作是一台“全球计算机”,任何人都可以上传和执行任意的应用程序,并且程序的有效执行能够得到保证。
(六)应用层
应用层是区块链的展示层,封装了区块链的各种应用场景和案例,比如搭建在以太坊上的各类区块链应用就是部署在应用层,这类似于电脑操作系统上的应用程序、互联网浏览器上的门户网站、搜寻引擎、电子商城或是手机端上的 APP等等。
该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识机制的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
所以,数据层、网络层、共识层是构建区块链技术的必要元素,缺少任何一层都不能称之为真正意义上的区块链技术。激励层、合约层和应用层不是每个区块链应用的必要因素,一些区块链应用并不完全包含这三层结构。