国内外主流区块链技术框架对比分析
新年感言
一 主流区块链技术框架分析
区块链技术的本质是一种分布式账簿数据库,它利用分布式共识算法、数据加密、点对点通信、时间戳、激励机制等技术手段,保证了区块链上的记录共享且不可篡改,提高了节点之间传递价值的可信度和效率,降低了交易的成本[1]。近年来,区块链技术研究与应用的热度不断上涨,本报告通过对Hyperledger Fabric、以太坊、Hyperchain以及CITA四个主流区块链平台的对比分析来展现当前区块链技术的发展状况。
(一)超级账本(Hyperledger Fabric)
2021年与牛年春节祝福语本部分将介绍开源联盟链平台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被用来奖励给矿工。这就是以太坊去中心化应用的基本机制。
2.以太坊架构及特性分析
传播种子的方法以太坊作为受关注度较大的区块链平台,其安全性和易用性被很多开发者和公司所信任。它的整体架构如图2所示。
图2 以太坊整体架构
以太坊的核心模块主要包括共识机制、数据存储、加密算法和智能合约。
(1)共识机制
与以太坊有关的共识算法是PoW(Proof of Work,工作量证明)和PoS (Proof of Stake,股权证明)。以太坊项目分为Frontier、Homestead、Metropolis和Serenity四个阶段。在前面三个阶段,共识算法采用的是PoW,在第四个阶段会转移到PoS。
以太坊共识工作量证明的基本原理是若一个节点付出了足够的算力,那么认为这个节点发现的区块是有效的。它的缺点在于挖矿资源耗费大、区块确认时间长等。PoS是PoW的一种节能替代选择,它不需要用户在不受限制的空间中到一个随机数,而是要求人们证明资产的所有权,因为其认为拥有权益多的人攻击网络的可能性更低。与PoW相比,PoS可以节省更多能源,更有效率。
为了避免PoW机制直接转换成PoS机制带来的冲击,以太坊将先转到PoW+PoS(Casper共识协议)的混合共识机制。其中,Casper PoS是一种基于保证金的经济激励共识协议。协议中的节点必须先缴纳保证金才可以参与出块和形成共识,Casper依靠对这些保证金的控制约束验证人的行为。引入保证金也解决了经典PoS协议中做坏事的代价很低的问题。
(2)数据存储
MPT(Merkle Patricia Tree),即默克尔·帕特里夏树,是以太坊的主要数据存储结构。这是将默克尔树和帕特里夏树结合并进行了优化,具有以下优点。
①原始数据的一点差异就会造成计算所得的哈希都不正确,所以使验证过程可以快速定位“不正确”数据的位置。
②容易进行增加、删减、改变树节点等操作。
总之,MPT提供了一个高效、易更新,并且代表整个状态树的“指纹”。
默克尔·帕特里夏树(只有它的根Hash存在于区块头Root中)并不存在于链上,而存在于节点的LevelDB中。LevelDB是以太坊底层的数据库,是非常高效的键值(Key-Value)数据库,目前很多区块链平台底层也是使用LevelDB进行存储的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论