第2章 区块链技术总体架构
2.1 总体架构
从比特币诞生到现在,各类公链平台及应用蓬勃发展,人们对区块链技术的理解和认知也在不断加深。从总体上来看,比较传统的对区块链技术的认知与经典的7层网络OSI模型有些类似,即区块链基础架构分为6层:数据层、网络层、共识层、激励层、合约层、应用层。如图2-1所示。
图2-1 传统的区块链技术分层方式
❑数据层:作为整个区块链模型的技术基础,以时间戳的方式组织的块链式数据结构。
❑网络层:负责各个节点之间的网络链接。一般采用P2P的链接方式将各个节点/账本组织成分布式的网络体系。
❑共识层:负责实现分布式系统中各个账本的数据一致性。
❑激励层:负责区块链上token(通证)的发行和分配方式。
❑合约层:负责实现智能合约的功能。智能合约被许多人认为是“电子合同”及区块链2.0的标志性技术,为区块链的可编程属性,各个节点在合约层需要按照合约的规则约定执行相应的操作/交易。
❑应用层:分布式的链上应用。与网络模型类似,应用层也是面向最终用户的,以Web、App、桌面终端等用户交互形式,实现各类业务具体的应用场景。
这种分层方式自提出后一直被业界广泛使用,但随着区块链技术及产业应用的不断深化发展,这一分层方法也逐渐暴露出一些瑕疵。
首先,传统来划分技术的逻辑层次其实并不清晰,例如激励层更多与通证经济模型设计等相关,但未必会涉及技术方面的设计与开发内容,因此将激励层与其他技术层相提并论并不完全合适。PoW等共识机制在设计时也考虑到了激励。此外,对于联盟链/许可链等无须额外通证激励的设计而言,激励层的存在对于许可链似乎并不那么适用。因此,这种技术划分方式显得更像是专门为公有链量身定制的。
其次,分层的方式本身值得进一步探讨。区块链技术层次划分其实并没有类似于OSI网络模型的上下之间的依赖或抽象关系。按照层次方式排列较难自圆其说。最典型的一个例子就是在传统的划分中,数据层在网络层之下,但其实网络并不依赖于数据而存在;如果将科网络层置于数据层之下,也会存在类似的疑问。
最后,一些最新的扩展技术,包括跨链、状态通道、分片等在传统的技术划分中并没有合适的对应体现。
因此在传统划分的基础上,这里提出了一种修改后的区块链划分模型,如图2-2所示。
图2-2 区块链技术模型
总体上,这种划分方式可被视为“三纵三横”的模式。
最左侧的密码学技术是一切区块链平台的核心理论基础与技术出发点。
中间的3层区块链技术栈可被视为区块链技术的核心内容。目前,要实现一个可应用于实际业务场景中的较为完整的区块链平台,应至少包括以下内容。
❑分布式账本层:区块链或分布式账本的底层基础设施。
❑合约层:基于底层基础设施的应用开发协议。
❑应用层:包括钱包、DApp等在内的基于区块链的人机交互程序。
最右侧是区块链的扩展技术。区块链技术虽然走过了十年的发展历程,但在技术上来看,还没有完全成熟,为了提高可扩展性,包括交易处理性能、存储容量等,还需要对各种扩展技术加以完善。