【无标题】

面向账户/余额模型分片区块链的跨片交易处理 BrokerChain: A Cross-Shard Blockchain Protocol for Account/Balance-based Blockchain

摘要:区块链分片仍面临两个主要问题,在分片数目多的情况下,跨分片交易比例高,并带来大量跨分片通信开销,并给系统增加了一些额外的交易负载。与此同时,分片间会出现负载不均衡,热分片中的交易确认延迟增加,而冷分片区块的交易填充率不高,造成了资源浪费。该项工作主要解决这两个问题,文章发表在INFOCOM22。

论文链接:https://ieeexplore.ieee.org/document/9796859

目录

  1. 研究背景
  2. 研究动机与总体设计
  3. 具体方案设计
  4. 实验验证
  5. 总结

研究背景

区块链节点之间由于通常采用拜占庭信任假设,节点间运行容拜占庭错误的共识协议(如PoW,PBFT)保持一致性,相较传统共识协议占用更多的网络资源。同时,节点之间重复执行交易,存储所有历史版本数据,导致传统区块链系统的存储和执行无可扩展性,交易的吞吐远低于当前广泛应用的金融系统吞吐(如VISA)。因此,在保证区块链系统安全性基础上,如何赋予区块链系统可扩展性,提高系统交易处理吞吐、降低延时是一个重要的研究方向。

当前致力于提高区块链可扩展的方案从架构层面分析可以分为两类,一类是链下解决方案(Layer 1方案),另一类是链上解决方案(Layer 2)。其中,链下解决方案的主要思路是将链上交易任务迁移至计算存储资源充足的链下处理,链上只负责交易的最终确认。链上方案可分为垂直扩展和水平扩展两类,垂直扩展技术通过提高每个节点的性能来提高系统整体性能;水平扩展技术(即分片)将链划分为多个可以并行处理不同交易的组,通过提高系统内的交易处理并行度来提升性能。分片是最直接、最有可能被广泛运用的区块链可扩展提升方案,2016年至今,学术界有许多围绕区块链分片展开的工作,从公链到联盟链,从交易分片到交易和状态全分片,动态分片等。本篇论文的工作属于动态分片范畴。

研究动机与总体设计

当前区块链分片技术仍然面临许多挑战,以账户余额模型区块链系统为例,分片技术存在以下两个问题:

跨片交易比例过高。以实际以太坊历史交易数据为例,若采用随机分片策略(如根据账户地址的前k位决定账户被映射到的分片),当系统中的分片数目达到64个时,跨分片交易比例接近100%。过高的跨分片交易比例不仅给系统带来了额外的交易负载,同时将增加系统的交易平均处理延时。

分片间负载不均衡。需要处理过量交易的分片称为热分片(Hot Shard),只需处理少量交易的分片称为冷分片(Cold Shard)。热分片由于持续被注入过量的交易,片内交易的确认延迟较大,同时可能成为整笔跨片交易处理过程中的性能瓶颈。冷分片由于接收的交易数目少,区块内的交易填充率低,导致分片内节点计算、网络等资源浪费。

本篇论文的工作BrokerChain致力于解决以上分析的两个问题,片间负载均衡的同时跨片交易数目尽可能少,以达到系统交易处理高吞吐、低延迟的目标。

解决方案总体来说,BrokerChain根据一段时间内累积的交易内容对片间状态的分布重新调整,该过程兼顾状态调整后每个分片处理的交易量和跨分片交易比例,同时通过"账户分割"机制来进一步缓解热分片负载和减少跨片交易。针对依然存在的少量跨分片交易,文章通过引入做市商账户(Broker)来协调跨分片交易的处理,减少跨片交易处理网络开销,并引入状态时间锁来对超时的跨片交易进行回滚,避免一笔交易被阻塞过长时间。

具体方案设计

分片状态分布调整分为以下四个阶段:① 用户交易共识阶段;② 交易图划分阶段;③ 划分结果共识阶段;④ 状态调整阶段。系统内的分片分为两类,一类是M-shard,负责接收用户向系统发送的交易,并对交易进行共识、出块;另一类是P-shard,其分析M-shard共识产生的交易,根据交易内容构造账户间的交易图,并对交易图进行划分。

阶段一:用户交易共识阶段。多个M-shard接收来自不同用户的交易请求,M-shard内对交易进行共识、出块,随后将区块均发送至同一个P-shard。

阶段二:交易图划分阶段。P-shard收齐当前epoch内所有M-shard的区块后,对所有收到的区块中的交易参与方进行分析,构建以账户为节点,账户间的交易用边来表示的交易图。

阶段三:划分结果共识阶段。P-shard对构造好的账户间交易图采用Metis图划分算法进行划分,将原图划分成节点数目均衡的多个子图,并保证在原图上切分的边数目尽可能少。P-shard内所有节点均执行划分操作,并对划分结果达成共识,产生新区块。

阶段四:状态调整阶段。P-shard将包含状态(账户)划分结果的区块广播给所有M-shard,M-shard在收到P-shard划分账户结果后,根据内容重新调整片间账户的分布。

M-shard在根据P-shard的划分结果对账户分布重新调整后,仍然会存在跨片交易(交易关系图中被切断的边未来会是跨分片的交易),BrokerChain通过引入账户分割机制(Account Segmentation)将一个账户划分至多个存在不同分片上且Key相同的账户,由于账户存在多个分片上,不仅能够消除一定数量的跨分片交易,同时也能够进一步缓解分片负载不均衡。对于系统内仍然存在的跨片交易,引入"做市商账户(Broker)"来协调处理跨片交易,降低跨片交易处理延时。Broker账户就是先前被分割的账户,假设其拥有足够多数量的代币,具体流程会在后面进行介绍。

如图5中账户C被分割成C1和C2后分别存储在分片1和分片2中,且它们拥有相同的账户地址,原来A账户与C账户之间的跨片交易可以转换为A账户与C1账户之间的片内交易。原来A账户与B账户之间的跨分片交易可以通过C1与C2进行协调,减少跨片交易处理网络延迟。

对于跨分片交易的处理,BrokerChain进一步引入"状态时间锁"来保证跨片交易的原子性,同时在交易确认延时到达一定阈值时能够回滚交易。假设有一笔跨片交易,分片1的账户A要向分片2的账户B转v个代币,账户A首先生成原始交易并发送给做市商账户C,账户C收到交易后对交易重新打包并向区块链系统广播,分片1和分片2都会收到这笔交易,分片1将交易上链同时将A转给C的v个代币暂时锁定,经过一段时间后才会真正转向账户C。当做市商账户确认第一笔跨片子交易上链后(A->C),向分片2发送后序跨片子交易(C->B),最后分片2对收到的跨片子交易上链,最终完成跨片交易处理流程。如果做市商账户作恶(例如不将第二个跨片子交易发送给分片2),分片2会将前序分片1上链的交易也上链,并向分片1的节点广播交易的SPV证明,分片1收到后中止交易流程,v个代币被退回给账户A。

实验验证

实验设置:本文使用Python进行分片区块链仿真实验,使用以太坊2015年8月至2016年2月的1,600,000条真实历史交易。在实验中,交易以一定的速率注入系统,所有分片的出块时间间隔设置为8秒,每个区块中的交易数量上限为2000。

实验一分别测试了不同交易到达率、不同分片数目设置下系统的交易吞吐和延时情况,BrokerChain相较于Baseline方案性能更有优势。

实验二测试不同交易达到率下,不同系统的交易池内交易数目,当交易到达率较高时,BrokerChain交易池内的交易数目要少于Baseline方案下的情况。

实验三分别测试了不同分片数目下,系统整体和各分片的负载情况,以及不同分片方案下的跨片交易比例。实验结果发现,BrokerChain的系统整体负载最低,分片间的负载方差最小,跨片交易比例最低,其中账户分割机制可以在基于Metis的交易关系图切分方案基础上将跨片交易比例进一步降低10%。

总结

本文提出了一种处理账户余额模型的分片系统中跨分片交易的处理协议,基于账户间的交易图切分以及账户分割机制来平衡分片间的负载,同时引入做市商账户协调跨片交易的处理过程,过程中利用"状态时间锁"保证跨片交易的原子性。最后,通过仿真实验验证设计的有效性。

相关推荐
dingzd951 小时前
Web3的核心技术:区块链如何确保信息安全与共享
web3·去中心化·区块链
清 晨1 小时前
Web3与智能合约:区块链技术下的数字信任体系
web3·区块链·智能合约
CertiK2 小时前
Web3.0安全开发实践:Clarity最佳实践总结
web3·区块链·clarity
加密新世界2 小时前
Move on Sui入门 004-在sui链上发布Coin合约和Faucet Coin合约
区块链
YSGZJJ7 小时前
股指期货的套保策略如何精准选择和规避风险?
人工智能·区块链
web3探路者15 小时前
深入探索Solana链上的Meme生态:创新、潜力与挑战#区块链开发#dapp开发
web3·区块链·团队开发·dapp开发·区块链技术·链游开发·交易所开发
加密新世界1 天前
指南: 如何在 MEV 项目中使用 Yul
区块链
MavenTalk3 天前
solana链上智能合约开发案例一则
rust·区块链·智能合约·dapp·solana
kejijianwen4 天前
Algen的跨链互操作性:增强区块链连接性
运维·centos·区块链
Sui_Network4 天前
World Wide Walrus:下一代数据存储协议
大数据·人工智能·web3·去中心化·区块链