没有合适的资源?快使用搜索试试~ 我知道了~
许可区块链框架的比较分析及性能评估
区块链:研究与应用4(2023)100113研究文章用于工业应用的许可区块链框架的比较分析Vittorio Capocasalea,*,1,Danilo Gottab,*,1,Guido Perbolic,*,1a意大利都灵理工大学控制与计算机工程系,邮编:10129b服务创新,TIM,意大利c意大利都灵理工大学管理与生产工程系,邮编:10129A R T I C L E I N F O保留字:区块链性能评估Hyperledger BesuHyperledger FabricHyperledger SawtoothQuorumA B S T R A C T区块链是一种在不信任方之间建立信任的技术,而不依赖任何中介。因此,它吸引了在多个部门经营的公司的兴趣然而,由于过去几年出现的不同区块链解决方案的数量及其快速变化,这些公司很难确定其技术决策的方向。本文对一些最常用的许可区块链平台的关键维度进行了比较分析,即治理、成熟度、支持、延迟、隐私、互操作性、灵活性 、效率 、弹 性和 可扩展 性 此外 ,我 们还 介绍 了以 下框 架的 性能 评估 结果 : Hyperledger Fabric 2.2 、Hyperledger Sawtooth 1.2和Hyperledger Sys Quorum 21.1(同时使用GoQuorum客户端和Hyperledger Besu客户端)。该等平台在类似条件下进行测试,并使用官方发布的数据,因此我们的发现可为公司确立其技术方向提供参考1. 介绍目前,企业正在进行基于信息共享和数字化的彻底转型这被称为工业4.0革命物联网(IoT)和存储设备的可负担性使公司能够收集大量数据。然后,这些数据可以用于改进和优化现有的业务流程,节省大量成本。因此,数据可信度是基础,可以通过区块链来保证。区块链是一种不断发展的技术,它允许在不信任的各方之间建立信任,而不依赖任何中介[1]。区块链可以被描述为一个共享和分布式的数据库:每个非信任方都可以从数据库中存储和检索数据,而不必担心篡改企图[2]。区块链系统可以是无许可的,也可以是许可的。在前一种情况下,任何人都可以加入系统并与数据库完全交互,而在后一种情况下,可以设置角色和策略来限制与数据库的交互[3]。许可区块链框架与行业特别相关:通常,公司需要在它们之间共享数据同时限制或防止外部访问这些数据(例如,出于监管原因)。目前,区块链的格局正在迅速发展:市场上有许多基于区块链的解决方案,每隔几个月就会发布新的稳定版本。因此,公司很难确定其技术决策的方向,因为跟踪频繁的更新并评估其实际影响是一项挑战。然而,公司需要不断更新各种区块链解决方案的概述,以确定哪些解决方案适合给定的用例。特别是,效率是一个关键因素,大大限制了哪些应用程序可以利用区块链技术。因此,一个允许公平评估各种区块链解决方案性能的程序是至关重要的。这些要求来自都灵理工大学和TIM S.p.A.之间的合作,欧洲最大的电信公司之一特别是在工业物联网应用中,必须仔细选择特定的区块链解决方案例如,在物流中,许多事务必须在给定的时间单位内处理[2,4,5]。与金融应用中发生的情况相反[6],区块链必须与* 通讯作者。电子邮件地址:vittorio. polito.it(V. Capocasale),danilo. telecomitalia.it(D. Gotta),丹尼洛. telecomitalia.it(G. Perboli)。1、同等贡献的作者。https://doi.org/10.1016/j.bcra.2022.100113接收日期:2022年2月23日;接收日期:2022年10月22日;接受日期:2022年10月26日2096-7209/©2022作者。由Elsevier B.V.代表浙江大学出版社出版。这是CC BY许可证下的开放获取文章(creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表区块链:研究与应用杂志主页:www.journals.elsevier.com/blockchain-research-and-applicationsV. Capocasale等人区块链:研究与应用4(2023)1001132其他技术:物联网设备是从物理资产收集数据所必需的[7,8],而人工智能,分析和粒度计算技术可以从收集的数据中提取有用的信息[9,10]。尽管如此,多个区块链框架的比较分析普遍缺乏。由于技术进步的迅速性,文献中的许多比较分析和性能评价已经过时。此外,许多文章描述了在单一框架上进行的绩效评估 这妨碍了不同框架之间的公平比较,因为不同的作者通常使用不同的配置和测试方法。在这项研究中,我们通过提供最新的比较分析和对各种授权区块链框架的公平性能评估来填补上述空白。本文的主要贡献如下。比较分析,考虑到一些最常用的区块链框架,即Hyperledger Fabric[11] , Hyperledger Sawtooth [12] 和 Hyperledger Sys Quorum(具有GoQuorum客户端和Hyperledger Besu客户端)[13]。 该分析评估了以下方面:治理、成熟度、支持、延迟、隐私、互操作性、灵活性、效率、弹性和可扩展性。提出了一种方法,用于对不同的区块链框架进行比较性能评估 据我们所知,此方法是首个专注于测试的跨框架公平性及可比性的方法。特别是,这种方法是创新的,因为它允许最大限度地减少不同框架之间的差异。我们提出了一个最全面的跨框架性能评估的文献。为了填补文献中的空白,我们测试了最近发布的框架。此外,为了尽量减少不同框架之间的差异,提交了类似的交易,并使用了相同的基础硬件。不同的区块链节点部署在相同的工业云基础设施(亚马逊AWS)上。因此,我们的发现提供了对所分析框架的全面概述,本文可供公司用作技术选择的指南本文的其余部分结构如下:第2节介绍与区块链技术相关的关键概念第3节讨论了相关文献和相关空白。第4节介绍了比较分析,第5节介绍了对各种框架的业绩评价。最后,第6节介绍了我们的结论和未来的发展。2. 背景在本节中,我们简要回顾了与区块链、共识算法、智能合约和性能指标相关的主要概念。为了方便读者,本节还介绍了在本工作上下文中分析的框架2.1. 区块链区块链属于分布式账本技术(DLT)类[14]。 DLT是一个分布式数据库,结构为分类账(见图1)。①的人。 这意味着它记录了对它存储的数据进行修改(也称为交易)的整个历史,并且可以使用分类账的多个副本。每个副本由一个称为对等体的实体管理区块链将交易分组到块中,然后将其一个接一个地添加到分类账中[16]。由于每个区块都包含其前身的哈希值,因此每个区块都不能在不改变所有后续区块的情况下进行更改当所有的块都是空的时,Fig. 1. 分布式数据库、分布式账本技术(DLT)和区块链技术之间的关系。具体来说,DLT是一种分布式数据库,结构为分类帐。DLT可以是去中心化的,也可以不是,这取决于它的治理模式。区块链是一种DLT,它使用区块列表来表示分类账。每个块都包含其前身的头部的哈希。区块链技术与许多有趣的属性相关,例如不变性;然而,这些属性仅表征分散的区块链[15]。分类账的副本由单个实体或信任方管理然而,当分类账由多个不信任方管理时,改变一个区块及其所有后继者几乎是不可能的。出于这个原因,区块链系统的特性会根据使用的治理模型而发生巨大变化。这在第2.2节中有更好的解释。区块链通常由两个数据库组成:历史数据库,它是实际的分类账,以及状态数据库,它保存存储在历史数据库中的数据的当前值。 可以在没有状态数据库的情况下创建区块链系统,但这种方法具有显著的性能缺陷。 状态数据库充当缓存,允许获取数据的最新值,而无需读取整个分类账。区块链地址标识状态数据库中包含的数据的特定部分。区块链框架依赖于以下关键组件[16]:数字签名,允许对交易进行认证加密哈希函数,允许创建仅添加分类账结构;一致性算法,用于决定要处理的事务的顺序2.2. 区块链治理治理描述了控制、协调和指导区块链系统的权力[17]。根据其治理模型,区块链系统可以是[18,19]:public-任何peer都可以加入区块链系统并参与共识协议。公共区块链可用于解决其参与者之间的信任问题,因为任何感兴趣的一方都可以加入网络,获得账本的完整副本,并自主验证其包含的交易;联盟-区块链系统由一些身份明确的同行管理,他们可以设置与联盟进行交互的规则●●●●●●●●V. Capocasale等人区块链:研究与应用4(2023)1001133并参与共识。联盟区块链可以用来解决联盟成员之间的信任问题,但联盟外部的各方仍然需要信任联盟;私有-区块链系统由一方管理。因此,从治理的角度来看,该系统是集中式的,并要求所有参与者信任管理方。由于公共区块链不限制对其分类账的访问,因此它们是无许可的区块链。类似地,私有和联盟区块链是许可区块链,因为它们允许建立访问控制机制。然而,私人和财团区块链很少是可互换的技术解决方案,应该在不同的情况下使用。2.3. 区块链属性以下属性使区块链在工业领域特别有趣[16,19,20]:冗余和持久性-每个对等点保留分类账的副本,这降低了数据丢失的风险;去中心化-每个对等点都可以控制账本的一个副本,而不是账本本身。值得注意的是,这种属性是区块链系统的去中心化治理模式的结果,而不是其分布式性质的结果。因此,私有区块链不是去中心化的;真实性-交易经过数字签名;自主性-对等方可以提交交易,而无需依赖可信的第三方;不变性-数据只能添加到分类账中,但不能修改,因为更改的区块的哈希值与存储在其继承者中的哈希值不然而,重写整个哈希链是可能的:在私有区块链中,管理方可以单独这样做;在联盟区块链中,联盟应该串通这样做;在公共区块链中,大多数人应该串通这样做(51%攻击);透明度和可扩展性-每个对等点都可以直接访问自己的账本副本此外,由于整个修改历史都被记录下来,因此可以知道过去任何给定时间的分类账状态弹性-要伪造分类账,必须一致地修改其大部分副本。正如对不变性性质所观察到的那样,区块链系统的弹性与其分散性成标准化-由于许多对等体必须保留相同的副本,因此它们必须就数据的编码达成一致。2.4. 共识算法由于区块链系统由许多对等体管理,因此这些对等体需要就处理交易的顺序达成协议该决定是通过使用共识算法做出的。该决策可以具有[21,22]:确定性终结-一旦做出,决策是不可逆的;概率终结-一旦做出,恢复决策的概率随时间而减少。此外,对等体应该能够做出共同的决定,即使其中一些不参与共识协议或试图破坏它。因此,共识算法可以是[21,22]:崩溃容错(CFT)-共识可以容忍一些对等点的崩溃Raft [23]和时效证明CFT(PoET CFT)[24]是CFT算法的例子拜占庭容错(Byzantine Fault Tolerance,BFT)-共识可以容忍某些对等点的崩溃或恶意行为。Ethash [25]、Clique [26]、PracticalByzantine Fault Tolerance(PBFT)[27]、Istanbul ByzantineFault Tolerance ( IBFT ) [28] 和 Proof-of-elapsed-time SGX(PoET SGX)[24]都是BFT算法的例子许多区块链框架提供了在CFT和BFT共识算法中进行选择的可能性;然而,不可能假设不信任方之间不存在恶意行为因此,在去中心化的区块链系统中只应该使用BFT算法。2.5. 智能合约智能合约可以被描述为防篡改的计算机程序[29]。 智能合约的概念是在区块链概念之前引入的[30];然而,由于保证防篡改属性是困难的,智能合约最初并没有引起太多的兴趣。 通过耦合智能合约和区块链,可以在处理数据的同时保证其完整性和可用性。保密性也可以保留,但它需要实现额外的加密技术,这些技术在默认情况下很少可用。在其他应用中,智能合约可以实现法律合同的自动化[31]。2.6. 性能度量一旦提交到区块链系统,交易可以处于以下状态之一挂起-交易尚未添加到区块;已删除-交易无效且未更改分类账;已提交-交易有效且已添加到区块;已合并-交易有效且永久存储在区块链中。在确定性最终确定的情况下,交易一经承诺即予以合并就或然性最终结果而言,交易仅于承诺后综合入账根据参考文档 [32],区块链系统的关键指标是读取延迟,读取吞吐量,事务延迟和事务吞吐量。 在区块链系统中,交易吞吐量被定义为单位时间内合并的交易总量,而交易延迟被定义为交易合并所需的时间。2.7. 区块链框架2.7.1. Hyperledger FabricFabric[11]是一个开源框架,旨在解决常见的行业需求,如身份管理、角色和策略的定义、性能和数据保密。Fabric属于Hyperledger生态系统,该生态系统是“一个开源社区,专注于为企业级区块链部署开发一套稳定的框架,工具和库”[ 33 ]。Hyperledger Fabric提供模块化和可扩展的架构。它支持可以用各种广泛采用的编程语言编写的智能为了只与区块链系统的一部分节点共享数据,Fabric允许发送私有交易(私有数据集合)或创建并行和独立的轻量级链(通道)。 Fabric支持以下CFT共识算法:Raft、Kafka(已弃用)和Solo(已弃用)。计划在未来达成BFT共识[34]。在撰写本文时,2.3.2版是最新的可用版本。Fabric区分了两种类型的节点:排序器和对等体。Peers负责执行交易并保留账本的副本,而Orderers负责创建区块。Fabric通过三个步骤处理事务:●●●●●●●●●●●●●●●●●V. Capocasale等人区块链:研究与应用4(2023)1001134执行-每种类型的交易都与背书策略相关联。 背书策略定义了哪些对等体必须执行给定的交易。要提交一个交易,客户端只需要将它发送给认可的对等体。 这允许牺牲去中心化以实现可扩展性。背书对等体处理交易而不更新其分类账副本然后,它们将签名的消息发送回客户端,该消息必须被传递给排序器; order-排序器通过对接收到的认可的事务进行排序来创建块一旦创建,块就被广播到channel;validate-每个peer检查接收到的区块中每个交易的正确性,并更新其账本副本在其他检查中,与同一块的先前事务具有读或写冲突的事务被认为是无效的。2.7.2. Hyperledger SawtoothSawtooth [12]是一个开源框架,旨在实现可扩展性和关注点分离;它将应用层从安全层中抽象出来这允许轻松创建依赖于动态可替换组件的区块链与Fabric一样,Sawtooth是一个Hyperledger框架。 Sawtooth提供了用各种编程语言编写智能合约的可能性。 它还提供了一个并行调度器,可以提高框架的性能。Sawtooth支持BFT(PBFT和PoET SGX)和CFT(PoET CFT和Raft)共识算法。Sawtooth应用的事务处理策略是标准的订单-执行-验证。此外,Sawtooth分批处理事务(即, 必须一起完成或根本不完成的交易组)。 在撰写本文时,版本1.2.6是最新的可用版本。Sawtooth框架提供了以下模块:validator组件,用于安排交易并管理分类账;共识引擎,实现共识算法; REST API组件,简化客户端与验证器组件的交互交易处理器(transaction processor,TP),实现智能合约逻辑。2.7.3. 公司简介Quorum [13]是基于以太坊协议的开源区块链协议。它允许设计高性能的授权区块链系统,为数据机密性提供支持。Quorum也可以用于与以太坊网络的交互。此外,以太坊智能合约可以毫不费力地迁移到Quorum 。 Quorum 包 括 两 个不 同 的区 块 链 协 议 : 第一 个是 基 于GoQuorum [35],这是一个最初由J.P. Morgan,目前由QuarterSys维护(将其从Quorum重命名为GoQuorum),它在Go中实现。Tessera模块可用于发送私人交易并保持数据机密。GoQuorum支持以下共识算法:Raft(CFT)、Clique(BFT)和IBFT 1.0版(BFT)。 在撰写本文时,版本21.4.2是最新的可用版本。第二个项目基于Hyperledger Besu[36],这是一个用Java实现的以太坊客户端与Fabric和Sawtooth一样,Besu也是一个Hyperledger项目。 Orion模块可用于发送私人交易并保持数据机密。Besu支持以下BFT共识算法:Ethash,Clique和IBFT(版本1.0和2.0)。在撰写本文时,版本21.1.7是最新的可用版本。在本文中,当两个项目具有共同的特征时,使用通用词Quorum,而GoQuorum和Besu则用于指代两个特定实现之一Quorum的事务处理策略是标准的order-execute-validate。3. 相关工作许可的区块链框架越来越受到各种公司的兴趣。但是,这些框架必须处理生产工作负载,以取代现有的解决方案。因此,许多研究都涉及评估现有区块链框架性能的主题为简洁起见,表1总结了文献中可用的主要性能评估。 对于每一份文件,该表列出了分析的框架。此外,该表还显示了哪些研究分析了多个框架,哪些研究进行了实验性性能评估,哪些研究使用了最新版本的框架,哪些研究描述了一种方法来最大限度地减少不同框架之间的对许可区块链框架的性能评估很早就出现在文献中。Pongnumkul等人提供了在单个区块链节点上对Fabric v0.6.0和企业以太坊(Gethv1.4.18 ) 的 性 能 评 估 , 这 与 工 业 用 例 无 关 。 Dinh 等 人 介 绍 了Blockbench,一个用于分析许可区块链框架的工具作者使用他们的工具来评估以下区块链框架的性能:Fabricv0.6.0-preview,Geth v1.4.18和Parity v1.6.0 [42]。不幸的是,正如所采用的框架版本所表明的那样,这种业绩评价已经过时。在许多情况下,作者试图改善官方框架租赁。Sousa等人介绍了Fabric v1.0的BFT算法。然而,相关的性能评估集中在Fabric的订购服务上[40]。Thakkar等人对Hyperledger Fabric v1.0进行了深入研究,并展示了各种配置参数如何影响整体性能。 作者还提出了一些改进,随后在Fabric v1.1中采用[38]。Goren Baglio等人FastFabric是Hyper-ledger Fabric 1.2的优化版本,允许作者每秒处理近20,000笔交易然而,一些建议的优化可能会引起关注(例如,将状态数据库保存在易失性存储器中)[39]。Kwon和Yu对Hyperledger Fabric v1.3的订购和验证阶段提出了一些优化。对四个节点和一个Kafka排序器的网络的性能评估被用来显示所提出的优化的好处[57]。然而,稳定和长期的支持释放通常是工业应用的首选。因此,对正式新闻稿进行的业绩评价更受欢迎。一些作者专注于分析单个框架的性能,而不是比较多个框架。Baliga等人 在四 节 点 网 络 中 使 用 IBFT 和 在 三 节 点 网 络 中 使 用 Raft 对Quorum(GoQuorum客户端v2.0)进行了深入的性能评估。作者测试了私有和公共事务,并使用了四种不同的工作负载[41]。类似地,Mazzoni等人研究了具有所有Raft、IBFT和Clique共识的Quorum[6]。 Mera对Quorum(GoQuorum客户端v2.2.1)进行了性能评估,并在三个不同设置(本地节点,云节点和虚拟节点)的三个节点的网络上进行了Raft共识[37]。Wang和Chu评估了Fabric v1.4.3。作者测试了Fabric中可用的所有共识算法(Solo,Kafka和Raft)以及不同背书政策的影响[54]。Nakaike等人介绍了HLF-GLDB,这是一种基准测试工具,可以模拟 HyperledgerFabric的数据库访问模式。作者使用HLF-GLDB发现了Fabric v1.4.4平台中的一些瓶颈[53]。Guggenberger等人对Fabric2.0进行了深入的性能评估。在他们的工作中,作者研究了各种网络规模和底层硬件、崩溃节点、网络延迟、私有事务和不同工作负载的影响[56]。Shi等人使用PoET CFT评价了Sawtooth v1.1。作者测试了不同条件下的事务吞吐量(网络大小、底层●●●●●●●V. Capocasale等人区块链:研究与应用4(2023)1001135表1关于区块链框架测试的研究总结参考文献框架多个框架实验性能评价最新发行版本跨框架方法[第十五条]Sawtooth v1.0.5,带PoET CFT没有是的没有没有[37个]GoQuorum v2.2.1没有是的没有没有[38个]Fabric v1.0没有是的没有没有[39]第三十九届结构v1.2没有是的没有没有[第四十届]Fabric v1.0没有是的没有没有[41]GoQuorum v2.0没有是的没有没有[第四十二届]Fabric v0.6.0-预览版、企业以太坊(Geth)v1.4.18、Parity v1.6.0是的是的没有没有[四十三]Fabric v0.6.0和企业以太坊(Geth)v1.4.18是的是的没有没有[第四十四届]Fabric v0.6和Fabric v1.0没有是的没有没有[45个]结构v1.2没有是的没有没有[46个]结构v1.4没有是的没有没有[47个]Fabric v1.0没有是的没有没有[48个]锯齿V1.0没有是的没有没有[四十九]GoQuorum v2.0.2没有是的没有没有[50个]锯齿v1.0.5没有是的没有没有[五十一]Fabric,Sawtooth,Burrow,BigchainDB,MongoDB(Sep 2019)是的是的没有没有[五十二]Sawtooth v1.1.2、企业以太坊(Geth)v1.8.21、企业EOS是的是的没有没有[53]v1.5.3结构v1.4.4没有是的没有没有[五十四]结构v1.4.3没有是的没有没有[55]Sawtooth v1.1,带PoET CFT没有是的没有没有[56个]Fabric v2.0没有是的是的没有[五十七]结构v1.3没有是的没有没有[58个]Fabric v1.4.4、Sawtooth v1.2、Indy v1.12.0、Parity v2.5.10、GoQuorum是的是的没有没有[59]v2.3.0,企业以太坊(Geth)v1.9.8Fabric v2.2.2和Sawtooth v1.2.3是的是的是的没有这Fabric v2.2.2、Sawtooth v1.2.3、Besu v21.1、GoQuorum v21.1是的是的是的是的工作还提供了有关哪些研究分析了多个框架的详细信息,这些研究提供了实验性能评估,使用了最新发布的框架,并描述了一种方法来平衡不同框架之间的差异PoET:经过时间证明,CFT:崩溃容错。硬件、网络带宽、云服务和数据中心位置)[55]。这些工作为给定框架的配置提供了有意义的见解,但对于比较不同的框架来说用处不大。一些作者评估了多个框架的性能。Polge等人在以下方面对Fabric、企业以太坊、Quorum、MultiChain和Corda进行了比较分析:社区活动、采用率、性能和隐私支持。然而,作者没有进行实验性能评价,而是根据其他研究中的结果进行了分析[60]。Monrat等人对以下框架进行了性能评估作者使用Microsoft Azure平台部署各种规模的网络然而,除了Corda之外,他们没有提供框架版本[61]。 Benahmed等人比较了Sawtooth v1.1.2、企业以太坊(Gethv1.8.21)和企业EOS(客户端v1.5.3)。 作者描述了他们所研究的平台的可用性、支持和文档,并测试了其吞吐量、可扩展性、CPU和内存使用情况[52]。Rasolroveicy和Fokaefs研究了区块链框架和基于物联网应用的MongoDB 。 该 研 究 重 点 关 注 Fabric 、 Sawtooth 、 Burrow 和 Big-chainDB(2019年9月)[51]。由于采用了不同的测试方法,这些研究提供的结果不具有除了Blockbench [42],其他区块链基准工具也可在文献中找到。之前讨论的一些研究[6,41,61]使用了Hypeledger Caliper [62],它提供了一组预定义的工作负载,并与多种框架兼容 BCTmark [63]专注于抽象底层区块链框架和提高基准可移植性,并被其创建者用于对企业以太坊和Hyperledger Fab-ric进行性能评估。尽管如此,该工具仍处于实验阶段,缺乏明确定义的性能指标,并且不提供标准工作负载[64]。分布式账本性能扫描(DLPS)[58]允许建立依赖于不同框架的区块链网络,向他们提交标准工作负载 DLPS定义了用于评估区块链系统的明确指标,并使用自适应测试策略,将输出吞吐量与输入吞吐量相匹配。作者声称,这种方法可以最大限度地提高测试框架的性能:HyperledgerFabric , HyperledgerSawtooth , HyperledgerIndy , Quorum(GoQuorum客户端)和Ethereum(Geth和Parity客户端)。参考文献[64]总结了许可区块链框架的主要虽然所有这些基准工具都允许在不同的框架上生成类似的工作负载,但它们并没有提供如何建立区块链网络以在不同的框架中获得类似程度的安全性,分布和去中心化的见解。因此,使用这些工具在不同框架上获得的结果可能不具有可比性,因为框架允许交易安全性和分散性以提高效率。本文试图克服这种局限性,提出了一种跨框架的方法来平衡不同框架之间的差异,这使得它们的性能之间有意义的比较。我们与欧洲最大的电信公司之一TIM合作TIM有多个业务部门致力于区块链相关主题。 根据我们的合作伙伴,由于缺乏比较分析,选择正确的区块链框架可能具有挑战性。另一个国际合作伙伴和其他研究[65]支持这种假设。此外,我们对文献的回顾突出了以下差距:缺乏比较分析有些分析侧重于非常具体的应用;通常,对框架的调整版本进行测试。因此,当仅使用框架的正式和受支持版本时,此类测试的结果并不特别有用;使用不同的方法和在不同的条件下对框架进行测试,防止进行任何比较(甚至是定性比较);●●●●V. Capocasale等人区块链:研究与应用4(2023)1001136● 有些分析已经过时,不再有意义。尽管如此,评估各种区块链框架性能的问题仍然很重要,正如大量文章所证明的那样。我们通过提出一种在工业用例中评估区块链框架的通用方法来回应这些需求我们使用这种方法对一些最常用的工业区块链框架进行了性能评估4. 比较分析本节从功能和高级角度对本研究中考虑的区块链框架进行了比较我们强调,这样的分析是为了突出各框架之间的相似性和差异性,而不是选出赢家。4.1. 治理如第2.2节所述,治理描述了控制、协调和指导区块链系统的权力[17]。在区块链系统中,决策是通过多数投票做出的,共识算法是投票机制[66]。因此,分析共识算法是理解区块链系统治理模型的基础。我们在2.7节中列出了每个框架提供的共识算法。由于目前缺乏BFT共识算法的正式实现,Fabric必须被视为私有区块链,即使执行和验证步骤可以完全分散。“Hyperledger Fabric在订购服务可能被黑客攻击的环境中不可靠”[ 67 ]。Sawtooth和Quorum,如果在BFT共识下部署,可以用于构建公共和联盟区块链系统。因此,非信任方可以使用它们来解决他们的信任问题。4.2. 成熟成熟度识别区块链框架的生产就绪性Fabric、Sawtooth和Quorum根据其文档和版本号[34,35,68],都已准备好生产Fabric可能是这三种技术中最广泛和最常用的技术,正如其实现的用例数量所证明的那样[69,70]。法定人数在工业中也很常见[13,69]。锯齿是有点少采用在工业[69,70],但已被广泛采用,在学术界[15,714.3. 支持在这项研究中,支持描述了区块链框架在技术改进和用户体验方面简化采用Fabric、Quorum和Sawtooth都是活跃的项目,它们得到了官方和非官方渠道的支持。在我们看来,Fabric框架是有据可查的。然而,从头开始设置系统可能是一项不平凡的任务。关于这一问题的正式文件可以改进。在我们看来,Sawtooth框架是有据可查的,并且易于设置。 该文档提供了设置测试系统的教程,并详细描述了配置自定义生产系统所需的大多数选项。 Sawtooth很好地抽象和分离了各种区块链层(例如,网络、安全和智能合约)。因此,它是理解区块链技术的一个很好的框架在我们看来,Quorum框架是部分文档化的:它依赖于以太坊文档中的许多核心概念,而它的文档集中在其特性上(例如,隐私功能)。与Fabric不同的是,它提供了许多设置测试系统的教程,清楚地解释了过程的每一步。总的来说,Quorum文档不像Fabric或Sawtooth文档那样详细,而是侧重于更实用的方法。关于社区活动,参考文献中报告的GitHub开发人员分析[74、75]。如图所示。 2 、 Fabric 和 Besu正 在 获得 支 持 , GoQuorum 稳 定 ,Sawtooth正在经历下跌趋势。由于报告中没有Sawtooth在2020年的数据,我们直接从GitHub中提取数据,并以虚线表示近似趋势4.3. 延迟我们在2.6节中定义了延迟。 我们注意到,交易的最终性可以是概率性的,也可以是确定性的,这取决于所使用的共识算法。 概率提高了可扩展性并提供了更高的事务吞吐量,但也具有更高的事务延迟[76]。[27]PBFT [28]和Raft [23]具有确定性,而Clique [26],Ethash [25]和PoET(CFT和SGX)[24]具有概率性。图二. 区块链开发人员活动(例如,提交、拉取请求、分叉等)。该图显示了哪些社区在区块链领域最活跃。资料来源:[74,75]。V. Capocasale等人区块链:研究与应用4(2023)10011374.5. 隐私在本文中,隐私是指仅与区块链系统的一部分参与者实现这一目标的主要策略如下[12]:与所有对等体共享数据的散列,仅与感兴趣的对等体共享实际数据-这是Fabric的私有数据收集[77]以及Quorum的Orion和Tessera模块[78];创建一个单独的系统-这通常成本很高,并且由于系统的尺寸减小而可能引起安全问题 为了减轻成本缺陷,Fabric提供了创建通道的可能性。通道是独立的区块链,每个区块链都有自己的账本;然而,通道可以重用一些公共组件。因此,与单独的区块链系统相比,多个通道在硬件要求方面要求不高[11];存储加密数据-这总是可能的,但是加密过程必须由客户端处理,而不能由框架管理在Sawtooth中,这是唯一可能的策略[12]。4.6. 互操作互操作性是指在多个区块链之间原子地传输数据的可能性[79]。跨链通信类似于互操作性,但不需要原子性[80]。感兴趣的读者可以在更多的技术研究中找到这两个概念的正式定义[79,80]。分析的框架没有提供任何简化区块链互操作性或跨链通信的功能。互操作性可以通过利用跨链通信协议或基于博弈论和第三方可信度的其他假设来部分实现。 诸如公证方案或哈希锁定[81]之类的协议属于这一类,并且有一些主要的缺点。特别是,它们仅限于一些特定的用例,非常低效,引入了可信的第三方,或者违反了跨链交易的原子性此外,它们不允许在不同的区块链系统之间转移资产的历史,这阻碍了它们的透明度和可验证性。完全的区块链互操作性是不可能实现的,或者需要合并现有的分类账[79]。类似地,跨链通信不依赖于可信的第三方是不可能的[80]。4.7. 灵活性灵活性是指替换现有组件或向区块链框架添加功能的可能性。Sawtooth是最灵活的,因为它由几个可以动态替换的组件组成此外,它允许指定链上和链下的设置。链上设置可以动态配置。Sawtooth允许指定事务和提交批次之间的依赖性,这些批次是必须作为整体执行的事务组[12]。Quorum是灵活的,因为它允许配置许多参数,包括共识算法。此外,两个Quorum客户端都支持插件的安装,这扩展了它们的功能集[35,36]。Fabric是灵活的,因为它允许配置许多参数,包括共识算法和状态数据库(LevelDB或CouchDB)。此外,智能合约作为一个单独的组件运行[11]。4.8. 效率效率表明区块链框架可以在时间单元中进行处理,并在第5节中进行了更详细的分析。为了方便起见,我们在这里报告一些观察结果智能合约编程语言的选择对整体性能有相关影响;Fabric和GoQuorum在所有测试中表现良好Besu表现良好,交易量较小,但表现不佳衰减为重任务;Sawtooth执行得不好,但通过提交更大的批次可以获得更好的结果[59]。此外,由于使用的vCPU数量有限, Sawtooth的并行调度器尚未得到适当的利用。4.9. 弹性弹性是抵御意外错误和恶意攻击的属性。如2.4节所述,共识算法可以是CFT或BFT。目前,Fabric只提供CFT算法的正式实现,而Sawtooth和Quorum提供了这两种可能性。应该注意的是,椭圆曲线密码学是区块链系统中普遍接受的标准,[82]这是一个量子安全的概念4.10. 扩展性可扩展性确定了增加区块链网络大小的可能性,同时最大限度地减少对系统其他属性的负面影响(例如,效率)。 根据可扩展性三元悖论,区块链系统的可扩展性只能通过牺牲去中心化或安全性来提高[2]。 使用CFT而不是BFT算法是去中心化和可扩展性之间权衡的一个例子,Fabric,Quorum和Sawtooth都允许。Fabric的背书策略可以被认为是提高可伸缩性的另一种方法:不同的节点可以用于并行执行不同的事务集。此外,通道可用于提高可伸缩性。这种方法相当于创建单独的区块链系统[11]。Quorum的IBFT共识算法允许参与共识协议的节点集动态变化。这可以用来保持一个小的(因此,有效的)共识节点集,同时让所有对等点都有可能在有限的时间内成为这样一个集合的一部分[28]。由于Sawtooth的PBFT中的共识节点集是一个链上设置,它可以动态更新,产生类似于Quorum的IBFT的行为5. 性能分析如第1节和第3节所述,仍然缺少比较多个区块链框架性能的标准方法,因此很难决定使用哪一个区块链。此外,不同区块链解决方案之间有限的互操作性使得这种选择变得更加重要。本节描述了测试环境和在各种框架上执行的值得注意的是,测试依赖于相同类型的虚拟机,而智能合约必须在每个框架中实现。此外,各种框架的配置并没有得到调整,因为不同的框架提供了不同的配置设置,这以不同的方式修改了系统的行为。关于测试中使用的框架,我们考虑了一些最常用的区块链框架:HyperledgerFabric , HyperledgerSawtooth 和 HyperledgerSysQuorum(同时使用GoQuorum客户端和Hyperledger Besu客户端)。●●●●●●●V. Capocasale等人区块链:研究与应用4(2023)10011385.1. 测试环境为了执行测试,我们构建了一个由四个AWS实例组成的网络。 实例属于同一可用区和同一个VPC。每个实例都是一个r5a.large虚拟机,具有2个vCPU、16 GB RAM和50 GB SSD。 测试环境基础设施如图所示。 3.以下设置描述了用于性能评估的测试环境。Number的实例:4. 网络拓扑:完整图,实例托管在同一可用区。5.1.1.实例类型:AWS r5a.large。5.1.2.CPU(单实例):AMD EPYC 7000、2.5 GHz和2个vCPU。5.1.3.RAM(单实例):16 GB。5.1.4.磁盘(单实例):50 GB gp2
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 基于Springboot的医院信管系统
- 基于Springboot的冬奥会科普平台
- 基于Springboot的社区医院管理服务系统
- 基于Springboot的实习管理系统
- TI-TCAN1146.pdf
- 基于Springboot的留守儿童爱心网站
- S32K3XXRM.pdf
- Ansible Automation Platform 快速安装指南 v3.8.1
- Ansible Tower 发行注记 v3.8.1-76页
- C语言笔记-考研版(进阶)
- Design_of_Analog_CMOS_Integrated_Circuit20200602-85440-9wt61m-with-cover-page-v2 (1).pdf
- Ansible Automation Platform 安装和参考指南 v3.8.1-59页
- 浅析5G技术在工业互联网领域的应用研究
- 查重17 岑彩谊-基于otn技术的本地承载网-二稿 .docx
- 自考计算机应用基础知识点.doc
- 数据库系统安全、技术操作规程.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功