收藏 分享(赏)

分布式账本系统性能优化技术综述.pdf

上传人:爱文献爱资料 文档编号:21765653 上传时间:2024-04-25 格式:PDF 页数:29 大小:5.66MB
下载 相关 举报
分布式账本系统性能优化技术综述.pdf_第1页
第1页 / 共29页
分布式账本系统性能优化技术综述.pdf_第2页
第2页 / 共29页
分布式账本系统性能优化技术综述.pdf_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、分布式账本系统性能优化技术综述*石晶1,3,张奥2,3,白晓颖3,蔡华谦1,刘譞哲11(北京大学信息科学技术学院,北京100871)2(清华大学计算机科学与技术系,北京100084)3(北京大数据先进技术研究院,北京100091)通信作者:白晓颖,E-mail:;刘譞哲,Email:摘要:分布式账本作为分布式数据管理的体系架构,通常在多节点之间通过共识机制来共同维护数据记录,可将数据所有权、传播过程、交易链条等相关信息完整全面地记录在分布的账本中,并在数据产生、流动的整个生命周期中,保证数据的不可篡改、不可抵赖,为确权、维权、审计提供背书.区块链是一种典型实现.随着数字货币、数据资产交易等数字

2、经济新应用的发展,分布式账本技术得到了越来越广泛的关注,但系统性能是其大规模落地应用的一个主要瓶颈,账本性能优化成为产业界和学术界一个研究热点.从账本体系结构、数据结构、共识机制和消息通讯 4 个方面,系统地调研分析了分布式账本性能优化的主要方法、关键技术和代表性的解决方案.关键词:分布式账本;区块链;性能优化中图法分类号:TP311中文引用格式:石晶,张奥,白晓颖,蔡华谦,刘譞哲.分布式账本系统性能优化技术综述.软件学报,2023,34(10):46074635.http:/ on Performance Optimization Technologies of Distributed Le

3、dger SystemSHIJing1,3,ZHANGAo2,3,BAIXiao-Ying3,CAIHua-Qian1,LIUXuan-Zhe11(SchoolofElectronicsEngineeringandComputerScience,PekingUniversity,Beijing100871,China)2(DepartmentofComputerScienceandTechnology,TsinghuaUniversity,Beijing100084,China)3(AdvancedInstituteofBigData,Beijing100091,China)Abstract:

4、Distributed ledger(DL),as a distributed data management architecture,maintains data records(the ledgers)across distributednodesbasedonconsensusmechanismsandprotocols.Itcancomprehensivelyrecordallinformationofdataownership,transmission,andtradingchainsindistributedledgers.Additionally,datawillbenotta

5、mperedanddeniedthroughoutthelifecycleofdataproductionandtransactions,providing an endorsement for data rights confirmation,protection,and audit.Blockchain is a typical implementation of DLsystems.With the emerging digital economy applications including digital currency and data asset trading,DL tech

6、nologies receiveincreasinglywidespreadattention.However,systemperformanceisoneofthekeytechnicalbottlenecksforlarge-scaleapplicationofDLsystems,and ledger performance optimization has become a focus of the academia and industry.The study investigates the methods,technologies,and typical solutions of

7、DL performance optimization from four perspectives of system architecture,ledger data structure,consensusmechanism,andmessagecommunication.Key words:distributedledger;blockchain;performanceoptimization*基金项目:北京市科技计划(Z201100007720010)收稿时间:2021-09-10;修改时间:2021-10-24,2021-12-21,2022-01-27;采用时间:2022-03-1

8、4;jos 在线出版时间:2022-05-24CNKI 网络首发时间:2023-04-06软件学报ISSN1000-9825,CODENRUXUEWE-mail:Journal of Software,2023,34(10):46074635doi:10.13328/ki.jos.006677http:/中国科学院软件研究所版权所有.Tel:+86-10-62562563数字化记账始于 20 世纪 60 年代.传统的数字化账本系统是通过中心化数据管理系统来记录和维护账户数据.性能高,但是需要高度依赖银行等中心机构的可信度来保证数据的正确性和安全性.一旦中心机构出现伪造数据等信任问题,则会对系统

9、造成无法挽回的重大损失.分布式账本系统是基于网络的去中心化数据存储管理系统,不依赖于中心化机构的可信度,在对等节点之间维护多个账本副本,节点之间通过分布式共识机制来共同记录、更新和验证数据,使得账本的数据记录不易伪造、难以篡改.区块链是分布式账本的一种典型实现.2008 年,署名中本聪的作者发表了“比特币:点对点的电子现金系统”1一文,提出了区块链的分布式账本结构,采用多节点共识和密码学机制,保证了交易记录的持久性、安全性和不可篡改性.2014 年,Buterin 等人提出以太坊2,以太坊将智能合约应用于分布式账本平台之上,采用账本记录合约数据,通过 Solidity 语言来灵活构建合约,实现

10、不同领域的去中心化应用.2015 年,在Linux基金会的支持下,Fabric开源项目被提出3.该项目在原有区块链技术的基础上提供了完备的权限和安全控制设计,实现了企业级的许可分布式账本,使得若干组织或社区可以共同维护账本数据.分布式账本作为分布式数据管理的体系架构,可将数据所有权、传播过程、交易链条等相关信息完整全面地记录在分布的账本中,并在数据产生、流动的整个生命周期中,保证数据的不可篡改、不可抵赖,为确权、维权、审计提供背书.目前,随着数字货币、数据资产交易等数字经济新应用的发展,分布式账本技术得到了越来越广泛的关注,其应用不仅局限于金融领域,而是可以延伸到物联网、关键数据存证、智能工业

11、生产、供应链管理以及数据资产的确权等更加广泛的领域4,5.然而,至今为止,分布式账本的系统性能仍是其大规模应用的一个主要技术瓶颈.以典型的区块链系统为例,可以看到其性能指标与实际应用需求尚存在较大差距.系统每秒交易处理数及交易确认时间是两个主要性能度量指标69.ti,tjblockNumijti,tj)txNumij(1)交易处理数(transactionspersecond,TPS),即每秒交易的数量.假设系统区块容量为 blockSize,单笔交易容量为 txSize.若在)时间段中,系统处理的有效区块数为,如公式(1),公式(2)所示,由此可得在时间中的交易处理数量,以及系统的交易处理数

12、量 TPS.txNumij=blockNumijblockSizetxSize(1)TPS=txNumijtjti(2)比特币的平均区块容量为 1MB1,平均单笔交易容量约为 250B,则每个区块可容纳 4194 笔交易.比特币平均每 10 分钟生成一个区块,由公式(2)可得,其每秒交易量仅为 7 笔.(2)交易确认时间(transactionconfirmationtime,TxCT),即从交易发起到交易被确认的时间.在区块链系统中,交易确认时间包括等待上链和最终确认的时间.在高并发情况下,账本容易出现分叉,而链式的账本结构仅将一条分叉链作为有效主链.为了处理分叉,账本系统根据后续账本的最长

13、子链、最重子树等方式选择主链.系统往往需要等待后序多个区块后才得以被确认上链,使得交易确认时间较长,可达到平均出块时间的数倍.tiInputtiConfirmednavgBlockTime假设交易于时间发起,系统于时间完成交易确认,可得单笔交易确认时间.由于账本分叉,系统往往会等待后续个区块后,才可以确认该笔交易有效上链.若区块的出块时间为,则系统的交易确认时间如公式(3)所示.TxCT=tiConfirmedtiInput=avgBlockTimen(3)在比特币中,根据概率和历史数据,链上交易需要等待 6 个区块确认.其出块时间为 10min,这意味着每笔交易的最终确认时间为 60min.

14、传统的金融交易系统性能远高于比特币、以太坊等区块链系统.例如跨境金融交易系统 Paypal 每秒可以处理 500 笔,VISA 每秒可以处理 4000 笔10,并且能够实现单笔交易秒级确认.因此,分布式账本系统尚难以支撑大规模的海量的分布式数据管理和交易.4608软件学报2023 年第 34 卷第 10 期针对这个问题,分布式账本性能优化成为一个重要的研究方向,已有多个研究工作分别从共识算法、扩展性、性能与安全性的权衡等方面,分析了相关研究现状.(1)在共识算法方面,Lepore 等人11对 PoW,PoS,PurePoS 这 3 种主流共识协议进行性能分析,在共识类别、延迟、吞吐量等指标对比

15、了上述 3 种主链共识协议,研究发现 PurePoS 共识的吞吐量和扩展性较好且交易延迟时间较短,基于许可链的 PoS 共识相比非许可链的 PoS、PoW 共识,具有较好的吞吐量和扩展性.张彭奕等人12分析了性能、资源、能耗对区块链共识效率的影响,并定义了共识算法效能的概念,说明了当共识算法的资源花费小、性能较好、能耗较低时,该共识算法效能越高.该工作从公有链与联盟链两方面对其共识的效能优化方法进行总结,并指出多链、跨链与 BaaS 场景下资源共享问题中的效能优化需要结合影响共识算法效能的 3 个要素,实现高效的资源共享.(2)在可扩展性方面,Zhou 等人13将解决系统可扩展性的方法分为 3

16、 类,分别是区块链底层(layer0)、链上(layer1)、链下(layer2),重点从链上和链下进行讨论.在链上优化中,该工作从块数据、共识、分片、DAG 的角度总结了性能和存储可扩展性优化的项目和方法;在链下优化中,将优化方法分为支付通道、侧链、链下计算和跨链 4 类,分别进行讨论其机制和相关项目.研究指出底层消息传播的协议的优化、链上区块的压缩、分片交易划分和跨片的完善、和基于主侧链的链下扩展方案会进一步提升系统性能.毛志来等人14将区块链系统抽象为交易、区块、共识 3 个方面,分析了网络规模、区块大小等影响区块链性能扩展的主要因素,总结了提升区块大小、提高出块频率、隔离见证、块压缩等

17、经典的性能扩展机制,并探讨了分片、跨链等新型的性能扩展机制,最后指出了扩展区块链系统应结合应用场景,将区块链的性能扩展机制与其带来的运维成本权衡,从而选择符合实际应用需求的扩展方案.(3)在系统性能与安全性的权衡方面,Zheng 等人7调研了区块链的性能和安全问题,结合链类型、拜占庭容错、链上链下数据存储以及交易存储等技术,讨论性能和安全问题背后的架构选择问题,比较了 Ethereum、Parity、HyperLedger 等项目的吞吐量、延迟、容错节点数等指标,还讨论了区块链在金融、物联网等领域产业应用所面临的性能和安全性挑战.研究指出并行化是区块链性能优化的重要研究方向,并指出设计性能基准

18、测试和评估工具的重要性.以比特币系统为代表的分布式账本存在性能瓶颈问题.近年来,不同的性能优化技术被陆续提出,如图 1 所示,如侧链将主链扩展,实现了多链的互联互通;分片技术以节点为单位进行分片划分,极大提升了系统的并行处理能力;见证人共识减少系统中的共识参与者,提升了系统的交易处理能力.本文采用软件系统的视角,分析了分布式账本性能问题,分别从账本系统架构设计、账本数据结构设计、账本共识机制以及账本消息通讯 4 个方面,系统地调研和分析了影响分布式账本性能的主要设计因素.图 2 展示了本文中分布式账本性能优化方法的分类结构.比特币20082014201520162017201820192021

19、哈希时间锁隔离见证预执行Fabric中继Plokadot闪电网络延迟执行Conflux流程并行BIDL通信投票共识HotStuff区块链分发网络bloxroute提升区块大小BitcoinCash分阶段共识公证人模式InterLedger分片Elastico图式账本DAGCoin致密区块压缩见证人共识侧链双向锚定以太坊DPoSBitcoin-NG图1分布式账本性能优化技术发展石晶等:分布式账本系统性能优化技术综述4609分布式账本性能优化体系架构设计分片多链侧链流程优化预执行链下通道技术公证人模式流程并行哈希时间锁中继父子链延迟执行交易打包出块大小出块时间隔离见证分阶段机制消息分发消息处理见证

20、人机制链式账本图式账本账本数据结构共识机制消息通讯消息路由通信投票机制图2分布式账本性能优化方法分类 1 体系架构设计本节总结了分布式账本架构设计中的典型性能优化策略.其中,分片将链上若干节点划分为委员会,提高系统的并行度;多链采用连接技术,在链上实现了多条同构、异构链的连接,提升系统的可扩展性;通道技术和交易打包将负载转移至链下进行计算,从而减轻链上负载.1.1 分片分片是指将分布式账本系统中的节点按照一定机制划分为若干集合,通常一个集合被称为一个委员会.系统以委员会为单位来对交易进行处理.分片的思想可以追溯到分布式数据库,其将数据划分成若干数据子集合,并将数据子集合分发到网络中不同的数据库

21、节点.如图 3 所示,2016 年,Elastico 采用将分片技术应用到区块链数据的存储管理15.先后出现了基于对象的分片(Chainspace16)、全分片(RapidChain17)、基于账户地址的分片(Monoxide18)等技术.不同于传统的分布式数据库,在分片账本中各委员会可以验证、执行其对应的交易,必要时,进行跨片通信,保证系统统一的全局状态,共同维护账本数据结构.基于分片的分布式账本系统通常在 3 个层面采用分片技术:网络分片、交易分片和状态分片19.网络分片是将参与 P2P 网络的节点划分为若干委员会,并将其作为交易处理的最小单位.交易分片是将交易映射到对应委员会中,并以委员

22、会为单位执行交易.状态分片是将全局状态进行划分成若干子状态,每个子状态由其对应的分片来维护.分片对于系统性能提升主要体现在两个方面:一是多委员会并行处理交易,提升了系统处理效率;二是分片后,仅在片内委员会节点之间共识,参与共识节点数量减少,通信、计算等共识资源开销减少.但分片机制会带来额外管理开销,如委员会划分、片间通信、分片重构等,对系统性能产生影响.如图 4 所示,分片系统主要包括节点分片、交易分发、片内共识、跨片处理以及分片重组 5 个阶段.(1)节点分片:系统对节点身份认证,建立分组.每个分片的成员节点组成分片委员会,即委员会机制.每次节点的分片结果会持续一个固定时间,即一个 epoc

23、h.(2)交易分发:系统按照交易到委员会的映射规则来分发交易.4610软件学报2023 年第 34 卷第 10 期(3)片内共识:委员会内部对交易形成片内共识.分片需要每隔一段时间,即 epoch,进行分片重组.为了保证分片的快速重组,分片内部通常采用传统分布式共识协议,如 PBFT,ByzCoinX20等,快速确认交易,而较少采用效率较低的 PoW 等协议.(4)跨片处理:对于涉及多个分片的交易,系统引入跨片处理机制,保证跨片交易的一致性.(5)分片重组:每个 epoch 结束,系统节点需要进行分片重组,避免恶意节点涌入某一分片,以保证安全性.Chainspace基于 object 的分片系

24、统,已被Facebook 收购RapidChainRapidChain实现全分片系系统Monoxide基于账户地址的分片系统2019 年2018 年2016 年2017 年Elastico首次提出将分片和区块链结合基于 Elastico 的分片优化系统基于 Elastico 的分片优化系统NearOmniLedger图3分片技术发展启动阶段节点分片交易分发交易执行阶段是否片内共识跨片处理分片重组是否在 epoch时间内图4分片流程图1.1.1委员会机制每个分片对应一个委员会,负责处理片内交易.系统中多个委员会可以并行处理交易,提升账本系统吞吐量.委员会的产生机制,即节点分片机制,是性能优化的一

25、个关键环节.目前主要有 hash 位和随机函数两种方式.(1)基于 hash 位的委员会机制2s每个节点通过工作量证明,形成各自的 hash 串.系统截取 hash 串中固定位置的 s 位 hashbit,具有相同的 s 位hashbit 的节点成为一个逻辑上的委员会.同一个委员会的节点需要相互通信,确认身份后,由此产生的个委员会正式生效15.委员会节点之间通过广播机制进行身份确认,其通信的复杂度是 O(n2),网络开销较大.Elastico15采用了基于目录节点的通讯方式来减少通信开销,即令前若干位计算出 PoW 的节点作为目录节点,拥有全局视角,负责广播委员会的成员信息,将通信复杂度降低至

26、 O(n).(2)基于随机函数的委员会机制OmniLedger20的研究者提出基于可验证随机函数的委员会机制.系统通过随机函数生成随机种子,产生节点石晶等:分布式账本系统性能优化技术综述4611的随机排列,并划分节点至若干个桶中,同一桶中的节点构成委员会.基于随机函数委员会机制的处理过程如下:系统选举产生领导节点.领导节点根据随机函数,生成随机种子,并广播至全网节点.其他节点根据随机种子,生成 e(1n),对应全网节点的排列,并将其划分至 m 个桶,同一桶中的节点构成委员会.系统往往会采用身份链的方式来维护全局的节点身份信息,保证全网节点身份信息的一致性,不需要委员会相互通信,节点在生成随机排

27、列,将其划分到桶中后,可以得到全局分片划分结果,从而减少了委员会节点相互身份确认的通信开销.基于随机函数的委员会机制依赖于领导节点.分布式环境下领导节点的选举会产生计算和通信资源,特别是在节点数量较多的情况下,会影响委员会机制的效率.上述两种委员会机制都需要设定其划分委员会的数量 n.当 n 设置过于小,委员会数量较少.当整个网络节点数量激增,每个委员会内的节点数量会过多,导致每个委员会的交易处理效率较低;反之,当 n 设置过大,委员会数量较多,节点数量不变的情况下,片内节点数量较少,诚实节点的数量被分散,安全性较差.1.1.2交易映射机制分布式账本有未花费交易(unspenttransact

28、ionoutput,UTXO)和账户的两种交易模型.在分片系统的交易分发过程中,不同的交易模型会采用不同的映射机制来将交易映射至分片.映射机制会影响分片处理的性能,使得系统中存在片内和跨片两类交易.(1)UTXO 模型的交易映射机制UTXO 最早应用于比特币中,将交易看作是一定数量的币在不同私钥持有人之间进行权限转移的操作.这使得在总币值不变的情况下,交易过程改变了资产的所有权.UTXO 可以表示系统的当前状态,每一次交易都会引起 UTXO 变化,即系统状态变化.基于 UTXO 的分片是一种基于状态分片的思想,其将 UTXO 划分至分片内,每个分片代表着系统的一个子状态.存在依赖的分片之间相互

29、协作,实现子状态的转换;而相互独立的状态分片之间可以并行处理.目前,OmniLedger,Elastico 等项目主要采用了基于 UTXOhash 的交易划分,将 UTXO 和交易映射到分片.一笔交易常会涉及多个UTXO,系统中一笔交易涉及的多个 UTXO 会映射在多个不同的分片中,这类交易的执行会涉及大量跨片处理,降低了系统的交易处理性能.(2)账户模型的交易映射机制类似于传统中心化账本的账户模型,以太坊2、蚂蚁链21、迅雷链22、Near23等系统采用的是账户余额模型.在该模型中,账户地址多采用 hash 串的形式.分片系统可以将用户地址空间截取固定 k 位作为分片依据,来映射到 2k个分

30、片中.交易可以根据账户地址来映射到分片,当资产在不同的分片之间转移,该过程也会产生较多的跨片处理,带来一定的通信和时间开销.Monoxide18是 Wang 等人提出的基于账户模型的分片账本,系统会将用户地址空间的前 k 位来映射到对应的分片(即 Zone)中,再进行交易处理.(3)对象模型的交易映射机制Chainspace16设计了分片场景下的智能合约,其合约可定义多个对象(object),即合约中有状态的原子结构.当合约中交易的输入 object 为激活状态时,该交易为可执行的有效交易.Chainspace 分片负责管理和维护 object 状态,保证可执行交易的所有输入 object 都

31、为激活状态.当有效交易被提交执行,输入 object 状态转移至非激活态.基于对象的合约模型使用比较灵活.采用分片管理对象会提升了其系统的交易并发处理能力.基于对象的合约模型使得合约账本不仅局限于传统支付应用,而是可以扩展到更广泛的应用场景.但是,该机制的交易会涉及多个对象,使得该交易进行跨片处理的概率较大,影响性能提升.特别是在合约逻辑复杂情况下,涉及的对象越多,其跨片的概率会越大.1.1.3跨片交易处理交易映射机制具有随机性,一笔交易的发送方和接收方往往会被映射到多个不同分片.在这类交易验证、执4612软件学报2023 年第 34 卷第 10 期行时,系统需要提供跨片机制来保证这类交易的原

32、子性,即其涉及的多个分片统一执行或放弃本次交易,保证跨片交易执行的一致性.在交易仅涉及双方转账,即仅关联到两个分片的情况下,跨片需保证交易执行在两个分片的一致性.Monoxide分片采用了基于中转交易的 EfficientCross-ZoneAtomicity 协议18,其将区块划分为链块和交易块两部分,链块记录了区块工作量证明信息,而交易块记录了两种交易,即片内交易和跨片交易.在跨片交易中,转账账户所在的分片会构建中继交易,并将跨片交易信息直接发送给接收片.接收片会先缓存收到的跨片信息,在构建新块时,会从收到的跨片交易中选择交易,验证并加入区块中.由于接收片需要异步确认和验证中转交易,Eff

33、icientCross-ZoneAtomicity 协议只能保证交易的最终原子性.当交易涉及多个输入分片时,系统往往采用两阶段协议(2PC)来保证交易执行的原子性.两阶段协议是指系统中存在一个协调者,负责转账信息收集和决策,协调者会先请求其他节点询问是否就绪,当且仅当所有节点就绪,协调者发送消息同步所有节点并执行交易;否则,发送取消交易的消息至所有节点.如图 5 所示,在分布式账本中,主要有 3 种方法实现两阶段跨片处理:客户端协调、输入片交易锁定、输出片协调.clientclientclientclientclientclient1 发送交易1 发送交易1 发起交易输入分片 1输入分片 1输

34、入分片 1输入分片 2输入分片 2输入分片 2输出分片 3输出分片 3输出分片 3输入分片 1输入分片 1输入分片 1输入分片 2输入分片 2输入分片 2输出分片 3输出分片 3输出分片 3并回复isReady2 验证,并回复isReady2 Lock,回复是否isReady阶段 1阶段 1阶段 13 验证,并决策拒绝阶段 2阶段 2阶段 23 各节点做出决策,并告知所有节点3 做出决策,并告知所有节点(c)基于输出委员会的 2PC(b)基于片间的2PC(a)基于客户端的 2PC2 Lock,4 发送接受或图53 种两阶段跨片处理(1)客户端协调.在阶段 1,客户端将交易信息发送至输入片,输入

35、片检查交易是否可以执行,并返回客户端“接受”或是“拒绝”交易.在阶段 2,客户端做出决策,当所有输入片接受交易的情况下,同步所有输入、输出片,执行用户交易;否则,通知所有输入片取消交易.客户端协调跨片的通信复杂度为 O(n),效率较高.目前,OmniLedger20采用了基于客户端的 Atomix 协议,即通过客户端收集各分片的接收/拒绝证明来做出决策,保证交易的一致性.(2)输入片交易锁定.用户将交易发送至多个输入片后,各输入片锁定交易,并确认交易是否可行,再通过广播机制相互同步,并确认结果.各输入片在收到确认后,做出决策并再次广播决策至交易相关的分片(包括输出片).该机制增加了输入片之间通

36、信量,会影响系统效率.目前,Chainspace 采用了 S-BAC 协议,结合片内 PBFT 协议和跨片广播机制,发送并确认决策信息,从而实现跨片一致性16.(3)输出片协调.用户将交易请求发送至输出片,输出片将交易请求分别发送给各个输入片,当且仅当收到所石晶等:分布式账本系统性能优化技术综述4613有输入片确认就绪的信息后,同步执行交易.这种方式可大量减少通信开销.RapidChain17分片采用了基于输出委员会复制交易的方式,实现跨片共识.1.1.4分片重组分片减少了参与共识的节点数量,但也降低了单一分片的安全性.恶意节点可以通过不断涌入单一分片,使得恶意节点的比例超过该分片的安全阈值,

37、因此分片系统引入了重组机制,即系统会在每间隔一定时间(即 epoch)对系统节点进行重新分片.分片的重组方法主要分为两类:整体重组和部分重组.整体重组是指对所有节点重新进行委员会划分,即按照上述委员会划分机制,对系统所有节点进行重新分片.这造成系统中所有节点都需要重新启动,进行存储迁移等操作,造成大量的性能损耗.部分重组是指在每个 epoch 中,系统会选取部分节点重新进行分片.RapidChain 基于改进的布谷鸟规则(thecuckoorule)24,实现部分重组.布谷鸟规则是采用 hash 函数来将节点映射到0,1)区间的一个随机数,再将 0,1)区间划分为 k 个子域,对应于 k 个委

38、员会.当有新节点加入某一子域时,为保证子域之间节点数量的平衡,新节点位置周围的临近节点会被移除到其他子域.这种机制有效限制了受影响的子节点数量,其仅需要部分节点重新启动,并进行存储迁移,节省了系统重组带来的性能开销.此外,RapidChain 分片采用有限布谷鸟原则,即把委员会分成两类,分别是活跃委员会和不活跃委员会,在节点加入网络时,系统会把该委员会中的固定数量节点随机加入不同的不活跃委员会,委员会的规模大小保持平衡,保证了分片的稳定性.OmniLedger 设计了一种灰度化处理方法,即分片中分出部分节点用于下一个 epoch,进行重组优化.在 epoch的切换过程中,系统会从当前 epoc

39、h 的每个分片中通过随机方式转移出部分节点,用于下一个 epoch 中新分片节点,进行分片启动.剩余节点会继续进行交易处理,这使得将当前 epoch 的交易处理和下一个 epoch 的分片重组并行,节省了 epoch 切换的时间开销,提升系统性能.在 OmniLedger 中,移出节点的个数需要限制小于片内节点数量的 1/3,从而使得移除节点后的片内剩余节点可以保证 BFT 共识的安全性.分片重组会存在存储迁移的问题,对此,OmniLedger 提出了一种“状态区块”的设计,状态区块会记录当前分片的状态信息.在节点转移前,片内的领导节点会将当前分片的 UTXO 生成一个有序 Merkletre

40、e,将 Merkleroot加入区块头中,并进行片内共识,生成状态区块.该状态区块可以成为下一个 epoch 的创世区块,减少了节点因重组产生的存储和启动的开销.分片通过将节点进行委员会划分,并将交易分发至各委员会,各委员会并发处理交易,提升了系统的并发度.表 1 对比了分片项目的委员会,交易,跨片,重组等设计.表1分片项目对比表方法ElasticoChainspaceOmniLedgerRapidChainMonoxide委员会机制Hash位随机函数自由委员会交易数据模型UTXOUTXOUTXOUTXO账户模型交易映射基于object的UTXOUTXOhashUTXOID用户地址空间跨片协议

41、S-BAC协议基于客户端的Atomix协议基于输出委员会的一致性协议基于中转交易的EfficientCross-ZoneAtomicity协议跨片通信复杂度O(n2)O(n2)O(n)O(n)O(1)片内共识PBFTBFTByzCoinXBFT-basedconsensusPoW恶意节点容忍比例1/31/31/41/31/2分片重组整体重组整体重组BoundedCuckooRule部分重组无重组但在分布式环境下,分片增加了委员会机制,片间通信等环节,这些环节在一定程度上减弱了原有的性能提升,导致各个分片的性能不同.Elastico 在 1600 个节点的环境下,每秒可以出 16 个 1MB 大

42、小的块15.Chainspace 使用 4 核 16GB 的 AmazonEC2 容器,在 15 个分片,每个分片有 2 个节点的环境下,每秒可以处理 350 笔交易,每个节点每秒平均可处理 11 笔4614软件学报2023 年第 34 卷第 10 期交易16.OmniLedger 使用了 1800 台不同配置的机器,在恶意节点比例为 1%,每个分片有 4 个节点的环境下,其每秒可以处理超过 105笔交易20.RapidChain 使用了 4000 个节点,块大小为 2048KB 时,每秒可以处理超过 7000 笔交易17.Monoxide 使用了 1200 台 8 核 32GB 的虚拟机,在

43、 2048 个分片环境下,系统每秒可以处理 11694.89 笔交易,每个节点每秒平均可处理 9 笔交易18.1.2 多链随着分布式账本技术日益广泛地应用在各个领域,单链难以承担高负载和多领域的业务需求.一方面,其需要采用分而治之的设计思想,按照不同的业务需求、数据类型、交易特定等设计实现不同的账本系统,从而满足特定领域的性能、可靠性和安全性等需求,提高系统的可扩展性;另一方面,在整个体系生态中,由于技术体系的多样性,分布式账本系统日益呈现出数据、算法、协议的异构性,其需要建立有效的机制,支持异构系统之间互操作.多链技术应运而生,其通过侧链、公证人机制、哈希锁、中继等技术,实现了可集成、可扩展

44、的分布式账本系统,扩展了传统单链的处理能力,可支持更多场景的应用,例如在金融领域,其可以应用于资产抵押,借贷等场景,支持资产和数据的流动性.多链平台的代表性应用项目有微众 WeCross25,蚂蚁链跨链平台21等.多链技术是通过不同的连接机制实现多条同构/异构区块链的互操作性,使得交易可以并发在多条链处理,提升了系统的交易处理能力.但不同的连接技术对多链聚合、跨链通信的性能影响不同.本节将针对多链连接技术来分析其性能设计的影响.多链技术可以分为两类,一类是同构链的连接,即对已有链进行扩展,如父子链.而另一类是异构链的连接,其需要解决的是数据可信跨链问题,根据信任对象的不同,可以划分侧链、公证人

45、、哈希时间锁和中继 4 种.其中侧链的信任基础是一定长度的区块链难以被分叉攻击;公证人机制信任基础是公证人节点集合;哈希时间锁的信任基础是哈希函数的单向性;中继的信任基础是依赖于中继节点或接收链本身.表 2 从结构、验证、实现等方面,对比了上述 5 种多链技术.表2多链技术对比表对比项侧链公证人中继哈希时间锁父子链结构双链锚定星型结构可扩展的星型结构双链锁定树状结构是否需要中间结构否是是否否验证方链本身公证人节点中继节点或链本身链Hash验证父链可扩展性两链直接进行锚定较差,由于难以保证公证人系统的扩展性较好,由于中继系统可扩展两链直接加锁父链可以有若干子链典型项目LiquidNetwork、

46、BTCRelayInterLedgerPolkadot、Cosmos闪电网络Plasma1.2.1侧链侧链技术是指在原有账本链(即主链)外,创建或者加入新的账本链(即侧链),该链通过连接技术来连接到主链,并且可以有相对独立的架构设计.主链可以转移定量资产至侧链,在侧链进行交易,将部分交易转移到侧链,从而降低主链的负载,提升主链的性能.2014 年 Back 等人首先提出了基于 SPV(简单支付验证证明)双向锚定的侧链连接方案26.如图 6 所示,其具体步骤如下.(1)主链接收到资产转移交易请求后,将资产锁定到特定地址.(2)待确认交易后,主链创建 SPV 证明发送到侧链.(3)侧链验证通过 S

47、PV,并释放等价的数字资产,进行交易处理.(4)如果侧链的剩余资产需要主链处理,侧链依旧可以将本链资产锁定,通过 SPV 证明反向传回,令主链释放等价资产.双向锚定技术不存在类似交易所的第三方干预,仅需要接收链验证 SPV 证明即可,主侧链之间的通信比较高效.2018 年,LiquidNetwork27采用双向锚定技术,将比特币(BTC)和 Liquid 比特币(LBTC)锚定连接,实现了世界上第 1 个基于比特币的侧链.RootStock 通过基于智能合约的双向锚定技术来建立在比特币上的侧链,实现比特石晶等:分布式账本系统性能优化技术综述4615币(BTC)和 RSKSmartBitcoin

48、(RBTC)之间的货币转移,为比特币扩展了功能,也提升了一定性能28,29.但是,如果主侧链频繁进行资产转移,双向锚定需频繁地锁定、验证、消息传输,耗费大量的计算和通讯资源.此外,双向锚定仅限于 2 条链之间的资产转移,对多链之间复杂的资产转移需经过多次双向锚定.主链侧链发送 SPV锁定的输出等待确认时间发送 SPV 证明发送 SPV 证明等待竞赛期链内转移发送 SPV锁定的输出等待确认时间等待竞赛期链内转移图6基于 SPV 的双向锚定261.2.2公证人模式公证人模式是在多链之间,采用可信的第三方作为公证人,负责验证跨链消息的可靠性,并签名传输,来实现多链之间的消息交互.公证人节点对跨链事件

49、进行主动或者被动监听,对事件进行可信验证,并做出事件响应.图 7 表示了公证人模式的基本过程.根据第三方公证的结构,其可以分为单节点和多节点两种公证人模式.多节点的公证人模式比单节点公证人机制更安全,它是由一个节点集群构成第三方公证来进行验证和签名,节点集群可以通过多重签名,门限签名,分布式签名等密码学方法,在交易验证时共同进行签名和转发,保证第三方公证实体的可信度.链 A链 B公证人开启链 A 的监听事件事件发生告知事件发生验证消息签名告知链 B 验证结果和签名执行相应动作图7公证人模式公证人模式实现了多链连接,提高了多链消息的可信度.但是中间节点使得两条链无法直接通信.其次,在跨链频繁的情

50、况下,公证人节点的崩溃或者低性能会造成多链的性能瓶颈.特别是,在单节点作为公证人时,其有较低的性能,节点容易被攻击,安全性较差.多节点的公证人模式采用了密码学机制,提升了安全性,但是多节点处理会带来消息同步,密钥分发,收集等阶段,造成计算和通信资源消耗,影响性能提升.Ripple 公司于 2015 年提出了“InterLedger”协议,采用了公证人模式,并创建了两种公证模式,Atomic 模式和 Universal 模式30.Atomic 模式是通过选定一组公证人节点来进行账户转账,其允许多个连接器串行连接,组成支付通道,实现多账本之间的消息传输.而 Universal 模式是通过激励机制,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 综合论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报