国内外主流区块链技术框架对比分析Word格式.docx

上传人:b****4 文档编号:17949877 上传时间:2022-12-12 格式:DOCX 页数:20 大小:629.16KB
下载 相关 举报
国内外主流区块链技术框架对比分析Word格式.docx_第1页
第1页 / 共20页
国内外主流区块链技术框架对比分析Word格式.docx_第2页
第2页 / 共20页
国内外主流区块链技术框架对比分析Word格式.docx_第3页
第3页 / 共20页
国内外主流区块链技术框架对比分析Word格式.docx_第4页
第4页 / 共20页
国内外主流区块链技术框架对比分析Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

国内外主流区块链技术框架对比分析Word格式.docx

《国内外主流区块链技术框架对比分析Word格式.docx》由会员分享,可在线阅读,更多相关《国内外主流区块链技术框架对比分析Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

国内外主流区块链技术框架对比分析Word格式.docx

合约代码服务则提供了一个智能合约的执行引擎,为Fabric的智能合约程序提供部署运行环境。

与此同时,事件流(EventStream)贯穿三大服务组件,为各个组件的异步通信提供技术支持。

Fabric提供了APIs、SDKs和CLI3种接口,供用户对其进行操作管理。

图1Fabric整体架构

在运行架构方面,Fabricv0.6版本表现为由应用、成员管理和Peer组成的比较简单的三角关系,业务功能过于集中,在扩展性、可维护性、安全性、业务隔离等方面存在诸多问题。

针对其不足,Fabricv1.x版本进行了较大的改进和重构:

分拆了Peer节点的功能,将共识服务从Peer节点中完全分离,独立形成Orderer节点来提供可拔插共识服务;

加入多通道功能,实现多业务隔离,使其更具灵活性和适应性;

改用Kafka共识机制,在联盟链环境中寻求更好的交易性能和并发性能。

在Fabricv1.x版本中,每个通道都有其账本,每个Peer节点都保存着其加入通道的账本,包括账本数据库、状态数据库以及历史数据库。

账本数据库基于文件系统,保存所有交易日志;

状态数据库维护账本当前的状态,也被称为世界状态,LevelDB是默认的内置数据库,此外也可选择CouchDB;

历史状态数据库是可选的,其记录了键值的变动历史,主要用于查询某个键值的修改记录,同样基于LevelDB。

3.Fabric性能及安全性分析

区块链的性能效率主要考察区块链网络的交易吞吐量,即单位时间能够完成交易的最高个数。

根据银联电子商务与电子支付国家工程实验室的测评,在局域网千兆网络带宽环境下,Fabric平均调用合约数可达368.8笔/秒;

而在复杂的十兆带宽广域网环境下,网络节点类型包含物理节点和公有云节点,在硬件配置各不相同的情况下,Fabric平均调用合约数为77.3笔/秒[6],仍需进一步开发、完善以提高性能。

区块链的安全性主要考察身份验证、访问控制、加密体系和隐私、密码算法、匿名性、抗攻击能力等方面[7]。

Fabric支持基于PKI(PublicKeyInfrastructure,公钥基础设施)体系的成员服务,为参与者提供身份管理、隐私、保密性和可审核性的服务。

支持SHA2、SHA3、ECDSA等加密算法且可拔插;

具备较好的匿名性功能和较强的抗攻击能力。

通过引入通道,Fabric还实现了允许对交易信息有隐私和机密需求的团体在相同区块链网络中共存。

通道可限制消息的传播路径,为网络成员提供交易隐私性和机密性保护。

通道中的所有数据对未订阅该通道的网络实体都是不可见且无法访问的。

(二)以太坊(Ethereum)

以太坊属于公有链,被认为是区块链2.0的代表。

本部分将介绍以太坊的基本概念,并对其架构特性、性能和安全性做出分析。

1.以太坊基本概念

以太坊是由VitalikButerin和GavinWood领导开发的、允许任何人使用区块链技术运行的、支持智能合约的去中心化开源平台。

基于以太坊可开发各种各样的去中心化应用[8]。

以太坊由大量节点组成,节点中有账户,交易是通过账户之间发送消息进行的。

智能合约是在区块链上运行的模块化、可重用、自动执行的脚本。

在交易中携带智能合约,智能合约在以太坊虚拟机中执行以实现特定功能。

在交易过程中需要节点参与,通过重复的哈希运算产生工作量,这些节点称为矿工,进行哈希运算的过程称为挖矿。

交易需要付出手续费,这些费用就称为Gas,消耗了的Gas被用来奖励给矿工。

这就是以太坊去中心化应用的基本机制。

2.以太坊架构及特性分析

以太坊作为受关注度较大的区块链平台,其安全性和易用性被很多开发者和公司所信任。

它的整体架构如图2所示。

图2以太坊整体架构

以太坊的核心模块主要包括共识机制、数据存储、加密算法和智能合约。

(1)共识机制

与以太坊有关的共识算法是PoW(ProofofWork,工作量证明)和PoS(ProofofStake,股权证明)。

以太坊项目分为Frontier、Homestead、Metropolis和Serenity四个阶段。

在前面三个阶段,共识算法采用的是PoW,在第四个阶段会转移到PoS。

以太坊共识工作量证明的基本原理是若一个节点付出了足够的算力,那么认为这个节点发现的区块是有效的。

它的缺点在于挖矿资源耗费大、区块确认时间长等。

PoS是PoW的一种节能替代选择,它不需要用户在不受限制的空间中找到一个随机数,而是要求人们证明资产的所有权,因为其认为拥有权益多的人攻击网络的可能性更低。

与PoW相比,PoS可以节省更多能源,更有效率。

为了避免PoW机制直接转换成PoS机制带来的冲击,以太坊将先转到PoW+PoS(Casper共识协议)的混合共识机制。

其中,CasperPoS是一种基于保证金的经济激励共识协议。

协议中的节点必须先缴纳保证金才可以参与出块和形成共识,Casper依靠对这些保证金的控制约束验证人的行为。

引入保证金也解决了经典PoS协议中做坏事的代价很低的问题。

(2)数据存储

MPT(MerklePatriciaTree),即默克尔·

帕特里夏树,是以太坊的主要数据存储结构。

这是将默克尔树和帕特里夏树结合并进行了优化,具有以下优点。

①原始数据的一点差异就会造成计算所得的哈希都不正确,所以使验证过程可以快速定位“不正确”数据的位置。

②容易进行增加、删减、改变树节点等操作。

总之,MPT提供了一个高效、易更新,并且代表整个状态树的“指纹”。

默克尔·

帕特里夏树(只有它的根Hash存在于区块头Root中)并不存在于链上,而存在于节点的LevelDB中。

LevelDB是以太坊底层的数据库,是非常高效的键值(Key-Value)数据库,目前很多区块链平台底层也是使用LevelDB进行存储的。

(3)加密算法

为了保证在以太坊平台上的账户安全和交易信息安全,以太坊使用了多种加密算法,主要是哈希算法和非对称加密算法。

哈希算法的原理是将一段信息转化成固定长度的字符串,这相当于一个“摘要”或者“指纹”。

也就是原本不完全相同的信息的哈希值会完全不同,这就可以保证区块的一致性。

以太坊主要采用SHA256来进行哈希运算。

非对称加密算法是由一组具有唯一性的密钥对组成的保密方法,密钥对分为公开密钥和私有密钥。

若使用公钥对数据加密时,只有用私钥才能对其解密。

同样,若用私钥对其加密,则需公钥对其解密。

私钥只为用户所有,这就保证了消息传递的隐蔽性。

(4)智能合约

以太坊被称为区块链2.0的代表正是因为以太坊在区块链中引入了智能合约,这使以太坊可被用于各种各样的应用场景。

智能合约是代码(逻辑描述)和数据(状态表示)的集合,它存在于区块链的特定的地址中。

合约账户能够在彼此之间传递信息,进行图灵完备的运算,编译成EVM字节代码(以太坊特有的二进制格式),并运行在区块链上。

以太坊的智能合约有两个重要的特点。

①它是图灵完备的。

图灵完备是指一个计算系统能完成一切可计算的计算问题,即可以实现图灵机所能做到的所有事情。

②沙箱隔离。

智能合约是在以太坊虚拟机中运行的,它是被完全隔离的,也就是说,无法进行文件的读取和写入,也无法接触网络或其他进程。

智能合约只能在部署到区块链平台上后,才能使用区块链平台提供的接口对合约数据进行访问。

该特性提高了智能合约执行的安全性。

3.以太坊性能及安全性分析

以太坊的吞吐量只有100笔左右每个区块,随着以太坊共识机制的改进,以太坊预期会变得更便捷、更高效,但是其依旧存在一些问题。

(1)合约漏洞:

在TheDAO攻击事件中以太坊暴露了智能合约不安全的问题。

解决以太坊智能合约的漏洞问题,提高安全性,可能需要对合约进行审计和审查以及依赖形式化验证技术。

(2)隐私保护缺乏:

对于以太坊公有链,区块上的交易账本是完全公开了的,并且区块链计算余额、验证交易的有效性都要追溯到每一笔账,所以交易数据是透明的。

现在有四种适用于以太坊区块链的兼顾隐私和安全性的解决方案,分别是通道(Channels)、混合器(Mixers)、环签名(RingSignature)及零知识证明(ZeroKnowledgeProofs)。

(3)大规模存储困难:

由于每个节点都有一份完整的账本,区块链系统的数据存储有非常多的冗余,并且随着时间慢慢推进,交易数据量会变得十分巨大,当要追溯每一笔交易时,性能会出现问题。

解决这一问题需要权益证明共识机制、Plasma、分片等方案。

(三)趣链(Hyperchain)

本部分将介绍国产自主可控联盟链平台Hyperchain的发展状况,并对其架构、特性、性能及安全性等方面进行分析。

1.Hyperchain平台简介

Hyperchain是由杭州趣链科技有限公司开发的自主可控的国产联盟链底层平台,主要面向企业、政府机构和产业联盟的区块链技术需求,提供企业级的区块链网络解决方案。

Hyperchain符合ChinaLedger技术规范,具有验证节点授权机制、多级加密机制、共识机制、图灵完备的高性能智能合约执行引擎等核心特性,能够为数字资产清算、数据可信存证和去中介交易等需多方业务协作的场景提供底层区块链支撑技术服务和便捷可靠的一体化解决方案[9]。

2.Hyperchain架构及特性分析

Hyperchain整体架构如图3所示。

Hyperchain联盟链服务平台主要由三部分构成:

底层系统支撑技术、联盟链核心模块和企业级管控平台。

Hyperchain使用以容器为中心的开源管理框架Kubernates来支持基于Docker的容器化部署,可以实现对容器化后的节点进行丰富的管理和监控操作,支持主流云平台,同时也支持直接部署在物理机上;

联盟链核心模块由共识算法、权限管理、交易加密、区块存储、P2P通信和智能合约执行引擎六部分组成,并通过Publish/Subscribe机制实现了共识算法模块、P2P模块和区块存储模块的消息通信,通过帕特里夏树的账本存储和区块池优化了存储空间和存储效率;

基于Web的企业级管控平台支持对底层云计算平台的运维,能实现灵活确定区块链部署的规模和节点运行状态,除此之外,还深入研究各应用场景,提供了适用不同场景的智能合约模板,使用户只需要做少量参数方面的配置就能够创建一个可靠强大的业务核心逻辑,目前提供了Restful、JSON-RPC等API以及Java、JavaScript、Go等语言的SDK,这些编程接口可通过内部的HTTP服务器同Hyperchain平台进行交互。

图3Hyperchain整体架构

Hyperchain具有五大核心特性:

第一,采用验证节点授权机制,通过CA认证授权实现联盟链准入,只有通过CA授权的成员才会被联盟中的其他节点所承认,采用PKI体系结构,把公钥密码和对称密码结合起来,实现密钥的自动管理,保证网上数据的机密、完整与有效;

第二,采用基于密码学的多级加密机制并支持可插拔,通过椭圆曲线数字签名算法(ECDSA)对交易进行签名,防止消息被恶意篡改,通过ECDH密钥协商技术对传输层数据加密,进行安全的网络数据传输通信,再通过加法同态环签名算法(AHRE)对交易值和账户余额加密,保证了原始数据本身的加密,为账户提供隐私保护;

第三,采用基于RBFT的共识机制,共识算法在AllenClement等人于2009年提出的Aardvark算法的基础上进行改进,实现了高性能鲁棒共识算法RBFT,在保证系统强一致性的前提下,提升了系统的整体交易吞吐能力和稳定性,并且支持动态成员管理与权限控制(DMPC)和动态数据失效恢复机制(ARCM);

第四,采用智能合约执行引擎HyperVM,Hyperchain的智能合约实现完全兼容以太坊的智能合约规范,在底层以兼容EVM的虚拟机HyperVM作为执行引擎,在保持Solidity开发语言的兼容性基础上,对虚拟机性能进行进一步优化;

第五,采用基于容器的部署和监控,Hyperchain服务平台在底层基础设施方面支持目前绝大部分主流公有云和私有云平台和技术,包括OpenStack、VMWare、亚马逊AWS、微软Azure和国内的阿里云计算服务等,同时也具备能够脱离云平台直接在物理机上部署和使用的能力,其服务和监控平台都支持容器化技术,利用Kubernetes技术实现大规模节点集群的部署和管理,降低了区块链平台的运维成本,提升了管理效率和灵活性。

3.Hyperchain性能及安全性分析

根据银联电子商务与电子支付国家工程实验室的测评,在局域网千兆网络带宽环境下,Hyperchain平均合约调用性能可达1599.6笔/秒,近4倍于Fabric在同等条件下的表现[6]。

在安全性方面,Hyperchain身份验证场景丰富,支持转账、查询、登录时的验证,功能全面;

提供了基于CA的成员管理权限控制,支持不同级别账户权限不同、不同分类账户权限不同、超级账户的权限、账户间的授权、账户授权时限控制、账户权限变更等功能;

具备健全的加密体系,提供基于密码学的多级加密,除支持常用的SHA3-256、ECDSA外,还支持国密算法和加法同态加密,并且支持自定义密码算法且可插拔;

具备较为全面的匿名性功能和较强的抗攻击能力。

(四)秘猿(CITA)

本部分介绍秘猿科技自主研发的区块链平台——CITA(CryptapeInter-enterpriseTrustAutomation),阐述了其架构特性,并且对系统性能和安全性做出一定程度的分析。

1.CITA项目简介

CITA从企业用户的应用场景、部署需要和功能需求出发,旨在打造高效、稳定、可拓展、灵活以及未来适应性的区块链平台[10]。

与公有链有所区别,CITA面向企业级的区块链,以联盟链的形式,在性能、隐私保护方面有特定的需求,它更加与实际相关联,注重目的落地实现,从企业用户业务需求出发,更加具备完善功能的一套区块链解决方案。

CITA是用Rust语言编写的。

CITA包含RPC、共识服务、Chain模块以及VM引擎等多个组件。

RPC(RemoteProcedureCallProtocol):

远程过程调用协议,是与用户端交互的主要方式。

共识服务:

是区块链网络中的核心组件,它使网络中的节点对某个提案的决定达成一致。

Chain模块:

是一个仅支持添加的数据库,可以Key-Value形式存储数据,用于存储交易以及维持交易执行后的状态。

Chain模块为RPC、VM模块都提供了部分接口。

VM引擎:

CITA提供了EVM合约引擎和原生合约引擎,前者结合以太坊的智能合约环境,后者在EVM合约开发上,提供了开发空间,并兼容了EVM数据库存储方式。

2.CITA架构及特性分析

CITA系统主要包括微服务架构(MicroServiceFramework)、共识服务(ConsensusService)、交易处理(TransactionProcess)和视图(View)等部分。

(1)微服务架构

微服务架构是CITA主要特点之一。

将单个节点按照功能解构为独立的组件,包括交易共识、合约引擎、链式存储、网络同步、服务网关等多个松耦合的微服务,并且利用云计算的设施来提升性能。

采用总线式传播消息,当与外部系统集成时,可以直接访问消息总线。

图4即CITA微服务架构。

图4CITA微服务架构

(2)共识服务

共识是区块链技术中的核心概念,共识服务保证节点对某个提案达成一致性的决定。

在CITA中,实现了拜占庭容错的CITA-BFT算法(改进Tendermint算法)和非拜占庭容错的Raft算法,并封装在算法逻辑模块。

CITA的整体共识过程主要经过以下五个步骤实现。

①共识模块通过消息队列模块,获得交易信息并存入交易池。

②共识算法根据要求,选择一个合适的节点,把出块节点的哈希值等信息通过MQ通信模块广播至其他节点。

③出块节点经过数次投票,当达到算法要求的赞成票数额时,向Chain模块确认出块,否则重新选择节点,重复操作。

④共识模块接收Chain模块返回的消息,作为标志代表出块成功。

⑤成功后,交易池删除该交易信息。

(3)交易处理

就CITA用户端而言,通过RPC与系统进行交互。

RPC首先会对用户请求进行验证,通过后则将请求分类,然后发送到各个模块中。

若接收到的是交易请求,RPC模块会将请求发送到共识模块中,共识完成后,发送到Chain模块进行验证。

若验证成功则正常执行交易,否则返回错误信息。

等待交易执行完毕后,将区块、交易、状态存入数据库,Chain更新状态并且回馈消息到共识模块。

由于CITA采用微服务架构,共识节点只负责排序,其他节点只负责交易处理,两者之间是异步的。

异步交易处理可以使CITA节点有更好的共识性能,并且带来了弹性性质。

(4)视图

CITA默认支持账户模型,在账户模型中,由账户构成世界状态视图,交易在处理过程中可以读写多个账户。

它简单、通用和高效,更加适用于企业级的应用。

CITA中存在外部账号和合约账号两种账号。

前者代表用户身份,与用户端联系。

后者通过交易创建,内部存有一定的代码,通过调用外部账户发送交易来执行。

CITA使用KV(Key-Value)持久化数据库存储,将交易、合约状态等数据持久化保存到KV数据库中。

为了更好地检索和更新,CITA对MerkleTree的结构进行改良,采用SimpleMerkleTree结构进行存储,优化了奇数点时的情况。

3.CITA性能及安全性分析

CITA是联盟链的一种实现,具有较高的性能。

单位时间能够完成交易的最高个数(交易吞吐量,TPS)达到了较高的水平。

CITA实现了CITA-BFT与Raft算法,其中CITA-BFT算法是拜占庭容错算法的一种,具有一定的容错空间,性能较高。

CITA的异步交易处理技术使CITA具有更好的共识性能。

性能较高,但是受到节点数量的约束,并且递交次数繁多。

CITA独特的微服务架构在交易吞吐量、实时性上满足了行业需求,并且带来了良好的水平扩展性。

安全性是区块链技术的一大挑战,备受关注。

在安全体系上,作为联盟链,CITA需要在获得许可之后才可以进入,在身份验证上,CITA能够识别恶意节点,杜绝“女巫攻击”。

同时CITA采用CITA-BFT共识算法,具有1/3的容错空间,可以发现宕机或者恶意节点,拒绝与之通信。

并且CITA支持私钥的申请与更新,一定程度上保证了私钥的安全。

除此之外,CITA1.0实现了一种实用的隐私交易技术。

隐私交易提交后,先在本地进行加密,加密后的交易通过点对点隐私交易传输协议被传送给拥有解密私钥的节点,同时交易哈希被打包进入区块链。

隐私交易数据只在拥有解密私钥的相关节点上保存,相关节点先解密再执行交易,交易数据不会发送给无关节点,一定程度上杜绝了隐私信息泄露。

二主流区块链技术框架对比

本部分从共识算法、智能合约、数据存储、安全隐私、平台性能、平台可用性、辅助开发工具七个维度,对上述四个区块链平台进行对比,分析了各个平台的优劣势。

(一)共识算法

对上述四个平台的共识算法进行汇总比较,如表1所示。

表1主流区块链平台共识算法一览

区块链平台

超级账本

(HyperledgerFabric)

以太坊

(Ethereum)

趣链

(Hyperchain)

秘猿

(CITA)

共识算法

Kafka、Solo

PoW

RBFT

CITA-BFT、Raft

|

Excel下载

以太坊选用最初区块链网络的PoW作为共识机制,依赖机器的计算能力获取账本的记账权,资源消耗较高,每次交易共识的达成需要全网共同参与计算,共识延迟长,因此难以满足大部分商业应用场景的性能要求。

但是PoW算法简单、直接,在该共识机制下,若有人作恶,必须付出全网51%算力的经济代价。

随着版本更新,以太坊正在向PoS转变,拟先采用一种PoW+PoS的过渡性共识机制。

HyperledgerFabric自v0.6版本以后,暂时移除了BFT算法,并对其进行优化,在目前的Fabric版本中,采用Kafka(分布式队列)共识算法,支持多通道分区的集群时序服务,它可以容忍少于半数的失效节点,但是无法容忍恶意节点。

Hyperchain、CITA均采用拜占庭容错算法,并且基于PBFT算法,Hyperchain、CITA进行了一定程度的改进。

PBFT算法是一种具有1/3容错的算法,共识延迟时间较短,效率高,适合联盟链,它的通信量为O(n2),导致网络内节点数量超过约100个时,性能会下降。

Hyperchain采用RBFT算法,优化了PB

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1