国内外主流区块链技术框架对比分析
一主流区块链技术框架分析
区块链技术的本质是一种分布式账簿数据库,它利用分布式共识算法、数据加密、点对点通信、时间戳、激励机制等技术手段,保证了区块链上的记录共享且不可篡改,提高了节点之间传递价值的可信度和效率,降低了交易的成本[1]。近年来,区块链技术研究与应用的热度不断上涨,本报告通过对Hyperledger
Fabric、以太坊、Hyperchain以及CITA四个主流区块链平台的对比分析来展现当前区块链技术的发展状况。
(一)超级账本(Hyperledger Fabric)
本部分将介绍开源联盟链平台Hyperledger Fabric的发展状况,并对其架构、特性、性能及安全性等方面进行一定程度的分析。
1.超级账本项目简介
Hyperledger Fabric项目是由Linux基金会在2015年12月发起创建的一个主要面向企业应用场景、提供分布式账本解决方案的开源项目。项目吸引了包括IBM、Intel、R3、Cisco、SWIFT、摩根大通等在内的科技和金融巨头的贡献和参与,目前已拥有超过140家企业会员,其中近1/4的成员来自中国,既包括趣链科技、小蚁等新创区块链公司,也有华为、招商银行等知名企业[2]。
作为一个开源项目,Hyperledger的成功离不开一个健康、繁荣的社区。超级账本社区目前形成了由技术委员会(Technical Steering Committee,TSC)、管理董事会(Governing Board)、Linux基金会(Linux Foundation,LF)三驾马车共同领导的结构[3]。同时,社区还十分重视中国的应用落地和开发情况,在2016年12月专门成立了相关技术工作组,以推动超级账本在中国的本土社区建设和发展应用工作。
Hyperledger的所有项目代码托管在Gerrit上,并在Github上提供代码镜像。它由许多相关子项目构成,目前主要包括Fabric、BlockChain Explorer、Sawtooth、Iroha、Cello等项目,这些项目的相互协作构成了完善的生态系统,而其中涉及区块链底层技术的主要为Fabric项目。
Fabric项目的定位是面向企业的分布式账本平台,是首个开源的联盟链项目,主要编程语言为Go。其具备成员权限管理服务功能,采用了模块化的架构设计,支持可插拔、可扩展,采用多通道多账本的设计,支持Go、Java等多种语言编写智能合约。该项目目前已经历v0.6和v1.0两个大版本,其最新版本为v1.1.0,发布于2018年3月15日[4]。
2.Fabric架构及特性分析
Fabric整体架构如图1所示,其主要由成员服务(Membership Service)、区块链服务(Blockchain Service)和合约代码服务(Chaincode Service)三个服务模块组成[5]。成员服务提供账户注册、权限管理等功能,保证平台的安全性;区块链服务是区块链的核心组成部分,负责节点的共识、节点间P2P协议功能的实现以及账本的分布式计算和存储等,是区块链主体功能的底层支撑;合约代码服务则提供了一个智能合约的执行引擎,为Fabric 的智能合约程序提供部署运行环境。与此同时,事件流(Event Stream)贯穿三大服务组件,为各个组件的异步通信提供技术支持。Fabric提供了APIs、SDKs和CLI 3种接口,供用户对其进行操作管理。
图1 Fabric整体架构
在运行架构方面,Fabric v0.6版本表现为由应用、成员管理和Peer组成的比较简单的三角关系,业务功能过于集中,在扩展性、可维护性、安全性、业务隔离等方面存在诸多问题。针对其不足,Fabric v1.x版本进行了较大的改进和重构:分拆了Peer节点的功能,将共识服务从Peer节点中完全分离,独立形成
Orderer节点来提供可拔插共识服务;加入多通道功能,实现多业务隔离,使其更具灵活性和适应性;改用Kafka共识机制,在联盟链环境中寻求更好的交易性能和并发性能。
在Fabric v1.x版本中,每个通道都有其账本,每个Peer节点都保存着其加入通道的账
本,包括账本数据库、状态数据库以及历史数据库。账本数据库基于文件系统,保存所有交易日志;状态数据库维护账本当前的状态,也被称为世界状态,LevelDB是默认的内置数据库,此外也可选择CouchDB;历史状态数据库是可选的,其记录了键值的变动历史,主要用于查询某个键值的修改记录,同样基于LevelDB。
3.Fabric性能及安全性分析
开源项目区块链的性能效率主要考察区块链网络的交易吞吐量,即单位时间能够完成交易的最高个数。根据银联电子商务与电子支付国家工程实验室的测评,在局域网千兆网络带宽环境下,Fabric平均调用合约数可达368.8笔/秒;而在复杂的十兆带宽广域网环境下,网络节点类型包含物理节点和公有云节点,在硬件配置各不相同的情况下,Fabric平均调用合约数为77.3笔/秒[6],仍需进一步开发、完善以提高性能。
区块链的安全性主要考察身份验证、访问控制、加密体系和隐私、密码算法、匿名性、抗攻击能力等方面[7]。Fabric支持基于PKI(Public Key Infrastructure,公钥基础设施)体系的成员服务,为参与者提供
身份管理、隐私、保密性和可审核性的服务。支持SHA2、SHA3、ECDSA等加密算法且可拔插;具备较好的匿名性功能和较强的抗攻击能力。通过引入通道,Fabric还实现了允许对交易信息有隐私和机密需求的团体在相同区块链网络中共存。通道可限制消息的传播路径,为网络成员提供交易隐私性和机密性保护。通道中的所有数据对未订阅该通道的网络实体都是不可见且无法访问的。
(二)以太坊(Ethereum)
以太坊属于公有链,被认为是区块链2.0的代表。本部分将介绍以太坊的基本概念,并对其架构特性、性能和安全性做出分析。
1.以太坊基本概念
以太坊是由Vitalik Buterin和Gavin Wood领导开发的、允许任何人使用区块链技术运行的、支持智能合约的去中心化开源平台。基于以太坊可开发各种各样的去中心化应用[8]。
以太坊由大量节点组成,节点中有账户,交易是通过账户之间发送消息进行的。智能合约是在区块链上运行的模块化、可重用、自动执行的脚本。在交易中携带智能合约,智能合约在以太坊虚拟机中执行以实现特定功能。在交易过程中需要节点参与,通过重复的哈希运算产生工作量,这些节点称为矿工,进行哈希运算的过程称为挖矿。交易需要付出手续费,这些费用就称为Gas,消耗了的Gas被用来奖励给矿工。这就是以太坊去中心化应用的基本机制。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。