Huawei Huang, Yetong Zhao, Zibin Zheng*, “tMPT: Reconfiguration across Blockchain Shards via Trimmed Merkle Patricia Trie”, IEEE/ACM International Symposium on Quality of Service (IWQoS), June 2023.
近日,HuangLab 最新的一篇区块链分片技术的论文,被国际会议 IWQoS 接收,该会议2023年的论文接受率为 62 / 264,竞争颇为激烈。本篇论文简介如下。
一、研究背景与动机
分片技术是提高区块链可扩展性的一种可行的技术路线 [1-4]。通过将所有共识节点划分至多个分片中,分片技术可以帮助区块链实现对交易的并行处理。因此,分片技术可以大大提高区块链网络的吞吐率,适用于交易到达速率高的区块链平台。
然而,分片技术的引入将区块链系统的安全性从整个网络分摊至单个分片,因此需要一定的保护机制来保证每个分片的安全性。而分片重组是一个较为可行的增强分片区块链系统安全的手段。在分片重组的过程中,当共识节点迁移到一个新的分片时,该节点需要同步新分片中的交易或账户的状态等信息,以便能够允许共识节点在新分片中可以进行交易的验证。Elastico [1] 提出定期对各个分片的节点进行定期洗牌,然后将共识节点随机分配给各个分片。RapidChain [2]、Omniledger[3] 等论文则设计了允许分片节点部分同步的方法,以便减少分片重组过程对整个区块链系统的影响。
通过调研现有的区块链分片相关的工作,我们发现对于分片区块链的分片重组的研究尚处于很初始的阶段,尚且缺少一个对分片进行重组的实现方案。本文展示我们提出的一种分片重组方案,旨在减少分片重组所需的时间,同时确保分片区块链系统的安全性。
二、本文贡献
- 本文提出了一个分片重组协议,在保证分片系统安全性的同时,还可提高分片重组的效率。
- 我们为分片重组协议设计了 trimmed Merkle Patricia Trie (tMPT) 数据结构,并运用 tMPT 对分片内的状态树进行压缩,旨在提高分片重组的效率。为了进一步减少分片重组过程对区块链系统的影响,我们还进一步提出了一种分片间部分重组的方案。
- 我们在模拟系统上对分片重组过程进行了原型系统的实现,并将其部署在阿里云服务器中。实验表明,本文提出的方法在分片重组效率上优于现有的数据同步方法,所提出协议的吞吐量比以太坊的“完全同步”(Full Synchronization)的方法高 198%。
三、提出协议的简介
1. 核心思想
根据 Ethanos [5] 的调查结果,以太坊上的交易存在着“时间局部性”,即部分账户在一周内会进行多次交易。这些活跃账户的状态数据也会在短时间内经历多次更新。受此启发,本文提出的方案通过仅在分片重组时才为共识节点同步活跃账户的状态数据,这样可大大减少分片重组时传输的数据量,从而可提高分片重组的效率。
2. 系统简介
2.1. 角色介绍
所提出的协议包括两种类型的节点和对应的两种类型的分片。
- 验证节点 (Validator node). 验证节点保存其曾参与验证的历史区块的数据和对应的账户状态。通过存储活跃账户状态,验证节点可以进行新区块的交易验证;通过存储历史区块数据,他们可以为用户提供历史区块查询服务。验证者节点组成多个验证分片。
- 见证节点 (Witness node). 见证节点保存全网的账户状态和节点数据,负责生成重组方案并帮助验证节点进行交易验证。见证节点组成见证分片。
2.2. 系统运行流程
如图2所示,我们将系统运行过程划分为共识阶段与重组阶段。共识阶段中,验证分片执行片内共识,处理交易并出块。重组阶段中,见证分片生成重组方案,协助验证分片进行分片重组,并更新账户状态信息。具体步骤如下:
- Stage 1. 每隔一定的出块间隔,见证分片利用VRF随机函数生成一份重组方案,并在分片内对该重组方案进行共识。
- Stage 2. 重组方案被广播至全网,各分片在当前区块共识完毕后进入重组阶段。
- Stage 3. 重组阶段开始。各工作分片分片遍历当前状态树,删去状态树中最近访问周期小于k的节点,得到epoch k的部分状态树.
- Stage 4. Epoch k的部分状态树被发送至重组后该分片的对应的验证节点和见证分片。
- Stage 5. 编排状态树信息。验证分片收到各分片发来的状态树,并于该分片的历史状态信息进行合并,得到各分片的全局状态信息。
- Stage 6. 验证分片和见证分片均对本分片内更新后的状态信息进行共识。共识完成后,各分片进入共识阶段执行交易验证和出块。
四、实验结果
实验设置:本文使用 Golang 语言在实验室自行开发的区块链模拟器(名为 blockEmulator)上实现了 tMPT 协议。这里顺便提一下,blockEmulator 即将开源!敬请关注。我们收集了以太坊 2018 年 7 月 20 日到 2018 年 7月 24 日的 1,500,000 条转账交易作为实验数据来源,实验中将区块大小和出块间隔分别设置为 1000 笔交易和 4 秒,系统包含四个验证分片和一个见证分片,各分片包含 4 个共识节点。原型代码部署在租用的阿里云服务器。
主要实验结果:我们首先测试了不同重组方法所对应的区块链系统的 TPS。如图3所示,我们提出的 tMPT 和 partial tMPT 方法的 TPS 明显优于其他所有方法,且 TPS 分别为 Ethereum full sync 的 3 倍和 3.4 倍。
如图4所示,随着时间的推移,各 baseline 方法的 TPS 呈下降趋势,而 tMPT 和 partial tMPT 方法的 TPS 维持在一个稳定的水平。
图5 和 图6 展示了不同方法下的重组时延和数据量大小。结果表明,除了 tMPT 重组方法外,其余方法重组时传输的数据量都随着交易进行而不断增加,与之对应的重组时间也呈不断上涨的趋势。而由于 tMPT 只传输单个 epoch 对应的活跃账户的状态,因此重组时传输的数据量维持在一个相对稳定的水平,重组时延也保持在一个平稳的趋势。当交易执行到最后一个 epoch时,tMPT 的重组时延和传输数据量大小分别为 Ethereum full sync 的 2.8% 和 13%。
五、本文总结
本文提出了一种基于 tMPT 的分片重组方案,旨在保证分片区块链安全性的同时提高分片重组效率。tMPT 状态树可以将重组时节点同步的状态信息进行压缩,并引入见证分片协助完成重组过程以及对非活跃账户交易的验证。此外,我们也对重组过程中系统安全性进行了理论证明。实验结果表明,本文所提出的基于 tMPT 的重组方案在交易吞吐量和重组时延等方面显著优于其他方法。
六、提出的机制应用到工业界的前景分析
分片区块链底层技术仍处于研究探索阶段,还面临诸多问题和挑战需要解决。制约分片区块链技术大规模应用的关键因素在于提高吞吐量的同时还需要确保区块链网络的安全性。本文提出的基于tMPT 的协议为分片区块链技术路线的分片重组环节提供了一个安全高效的实现方案。
参考文献
[1] Luu L, Narayanan V, Zheng C, et al. A secure sharding protocol for open blockchains[C]//Proc.of ACM SIGSAC Conference on Computer and Communications Security (CCS’16). ACM,2016:17-30.
[2] Zamani M, Movahedi M, Raykova M. Rapidchain: Scaling blockchain via full sharding[C]//Proceedings of the 2018 ACM SIGSAC conference on computer and communications security. 2018: 931-948.
[3] Kokoris-Kogias E, Jovanovic P, Gasser L, et al. Omniledger: A secure, scale-out, decentralized ledger via sharding[C]//2018 IEEE Symposium on Security and Privacy (SP). IEEE, 2018: 583-598.
[4] Wang J, Wang H. Monoxide: Scale out blockchains with asynchronous consensus zones[C]// Proc. of 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI’19). 2019:95-112.
[5] Kim J Y, Lee J, Koo Y, et al. Ethanos: efficient bootstrapping for full nodes on account-based blockchain[C]//Proceedings of the Sixteenth European Conference on Computer Systems. 2021: 99-113.
(HuangLab出品,必属精品)