通过弹性资源分配来解决云端区块链系统中交易分布不均衡的问题
来源: 黄华威/
中山大学
1263
1
0
2022-09-30

岳峥宇,林岳,黄华威,2022年9月27日

论文信息:[下载链接]

Huawei Huang, Zhengyu Yue, Xiaowen Peng, Liuding He, Wuhui Chen, Hong-Ning Dai, Zibin Zheng, Song Guo, “Elastic Resource Allocation against Imbalanced Transaction Assignments in Sharding-based Permissioned Blockchains”, IEEE Transactions on Parallel and Distributed Systems (TPDS), Vol. 33, No. 10, pp.2372 –2385, Oct., 2022.

 

1 研究背景与动机

区块链技术在过去多年逐渐得到了学术界以及工业界的关注。然而,目前主流区块链有限的可拓展性仍然是其无法在实际场景中被广泛应用的一个阻碍。以比特币作为一个例子,如今比特币网络中一个区块的出块间隔大约是10分钟。可以看出比特币网络的“每秒交易数”(TPS)非常有限。目前主流公链很难达到如Visa20000 TPS以上)等主流支付工具的吞吐量。

 

近几年,区块链分片技术作为一种很有潜力的扩容方法逐渐被越来越多的研究者关注并深入研究。分片技术最初是作为扩容数据库的方法被提出的,这是一种水平切分的数据库的方式。将分片技术用于区块链网络的核心思想是将区块链网络中的共识节点分成若干个组并行地“分而治之”。通过分片技术,不同的区块链网络分片可以分摊处理全网交易池中的交易量。分片技术有如下两个明显优势。首先,分片技术可以确保交易能够以更短的拥塞延迟参与共识。其次,扩容后增长的交易吞吐量将鼓励更多的用户与应用程序参与建设区块链生态系统,这些生态层面上的变化会提高区块链网络的安全性。

 

本文研究的场景聚焦在企业构建的一个运行在云端的、基于分片技术的许可链。就是说,所有的区块链节点都在云端服务器上运行。云区块链的管理员采用分片协议对这些云区块链节点进行管理。分片协议可采用PBFT共识实现分片内的局部共识。但是这样会存在一个问题:系统在根据交易的哈希地址分配该交易所属的分片时,某些分片会出现交易负载的不均衡现象。这种交易分配不均衡可能是由异常的交易执行造成,也可能由恶意的交易分配策略(如“交易注入攻击”)导致的。一个恶意的交易分配策略可能会导致某些分片内产生大量拥塞的交易,从而造成整个区块链网络的TPS急剧下降。综上所述,云端区块链管理员期望有一个算法可以保证每个分片都维持在一个稳定的状态,并迅速缓解交易分配不均衡所带来的影响,以确保某网络分片在受到恶意“交易注入攻击”后,云区块链系统可以快速恢复。

在使用分片技术的云端区块链中,恶意的交易分配策略可能会向某些目标分片突发注入大量交易。此外,在云端许可链的环境中,资源预算要比传统区块链中的共识资源要更有限。这是因为传统区块链(例如比特币区块链)的共识资源是由世界各地的矿工提供的。不同的是,部署在云端的区块链的资源是由数据中心或者商业云服务提供商所提供的。因此,即便在突发交易注入攻击的威胁存在的情况下,如何在资源有限的云端区块链中保持各个分片区块链的稳定运行成为了一个挑战。另一方面,尽管现有的区块链分片研究已经提出了许多针对分片区块链的交易上链的解决方案,但我们仍没有发现可行的方案可以解决区块链分片的稳定性问题。因此,云端区块链管理员迫切需要一种新的策略来处理许可链分片中的不均衡的交易负载。为此,本文将分片许可链的负载不均衡定义为多队列系统的稳定性问题。在该多队列系统中,由于异常的交易执行或恶意的交易分配策略为某些分片分配了大量的交易,这种行为可能会导致该分片出现拥塞。为了缓解部分分片出现的拥塞问题,本文采用了李雅普诺夫优化框架来解决稳定性问题。本文提出的策略根据观察到的每个分片的交易池状态,决定如何通过分配区块链网络资源来保持分片区块链稳定的同时最小化云端区块链系统的运行成本。

 

2 论文主要贡献

本研究的贡献主要包括以下几个方面。

  • 在使用PBFT共识协议的云端许可链环境下,本文研究了如何将预算有限的网络资源弹性地分配到各个区块链分片中,使交易处理过程在区块链网络中保持稳定,即使在交易分配不平衡的情况下,甚至在突发交易注入攻击的情况下也可以保持分片区块链的稳定运行。为此,本文使用李雅普诺夫优化框架求解该问题,并设计了一种基于drift-plus-penaltyDPP)的算法,力求获得最接近最优的资源弹性分配方案。
  • 在使用DPP算法时,本文严格分析了求解问题的 utility和队列长度的理论边界。
  • 最后,仿真结果表明,本文所提出的DPP算法能够在资源消耗和队列稳定性之间保持良好的平衡。同时,DPP算法在两种典型场景下也能够很好地处理突发交易注入攻击造成的破坏。

 

3 提出的机制简介

在云端区块链网络模型中,由于每个网络分片新到达交易的广播时间远远小于对校对块达成共识的时间,因此,在本文采用的系统模型中,新到达交易的广播时间忽略不计。新提交到系统的交易被视为同时到达网络分片内的所有节点。交易被广播后,该分片中的所有节点共享同一个版本的交易池。因此,每个分片的内存池可以看作一个单服务队列,它存储分配到该分片的所有交易,并等待分片中的节点对其进行处理。在该排队模型中,交易按照泊松分布随机到达。当打包校对块时,该块中所包含的交易将从内存池中删除,这个删除操作被视为交易的出队列。在每个时段,所有委员会成员基于PBFT共识协议达成一致时,都会生成一个新的校对块。每个分片的队列表示本地内存池的状况。基于上述的排队模型,区块链分片网络可以看作是一个多队列系统。本文所提出的算法机制就是保证该多队列系统稳定的前提下尽可能提高资源利用率。

4 部分实验结果展示

第一组实验本文评估了调节参数 V 对实验结果的影响。将 V 设置为50100150进行实验。此外,为了研究动态调节参数 V 的效果,本文还实现了一种基于codebook的方法,在该方法下,V [50, 150]范围内根据分片的队列挤压和资源消耗的变化进行自适应变化。实验结果可得在改变参数V的几种情况下,区块链网络都可以保持在稳定的状态,同时本文使用的虚拟队列技术可以令使用到的资源保持在各自给定的预算范围内。此外,提高 V 值,可以有效降低资源消耗量,即算力和网络带宽的消耗量。因此,资源消耗量与 V 值呈负相关。然而,较大的 V 会导致队列长度的增加,从而延长交易处理的等待时延。因此,队列长度与 V 值呈正相关。综上所述,在实际情况中,本文需要通过调节参数V仔细权衡交易处理的资源消耗与排队延迟之间的关系。

 

第二组实验中本文评估了提出的DPP资源分配算法与现有最好的几种方法进行比较的结果,这几种 baseline 方法分别是:

  • Top-S资源分配算法. 该算法平均地将每种资源分配给队列长度在前S%的分片。
  • Longest-First资源分配算法. 该算法将所有资源分配给网络分片中队列最长分片。
  • Average资源分配算法. 该方法在每个时隙将每种网络资源平均分配给所有队列。
  • Random资源分配算法. 该算法在每个时隙将可用资源随机分配给每个网络分片。

在实验中,当分片数目小于100时,本文提出的DPP资源分配算法控制的队列长度可以做到低于Top-S资源分配算法控制的队列长度,但是本文提出的DPP资源分配算法与Top-S资源分配算法相比可以节约60%以上的资源消耗量。对于Longest-First资源分配算法,其网络分片数超过15时,区块链网络的稳定性已经有了不可控制的趋势,此时Longest-First资源分配方法的平均队列长度会飙升至700左右,其长度是同情况下本文提出的DPP算法控制下队列长度的7倍,即网络分片的拥堵程度为7。当分片数量超过50时,Random资源分配算法的平均队列长度从20急剧增加到780左右,此时本文提出的算法控制下的队列长度仅有90左右。对于Average资源分配算法,当分片数达到100时,该算法依然可以维持很低的队列长度。但这种队列压缩能力却是需要通过大量消耗资源来实现的。即使是AverageDPP两种资源消耗算法所需资源消耗量最相似的100个网络分片情况下,本文提出的DPP资源分配算法在资源消耗量上依旧要比Average资源分配算法节约20%以上的资源量。

 

第三组实验中本文评估了 DPP 资源分配算法在受到突发交易攻击后能否快速恢复,实验结果表明,该算法能够使受到攻击的网络分片快速恢复,同时,与其对比的 Top-S Longest-First 资源分配方法完全无法在受到突发交易攻击后使区块链网络重回稳定状态。即使是在最需资源的恢复阶段,本文提出的 DPP 资源分配算法与另外两种算法相比,在两种资源的消耗量方面也能分别做到20%以及5%左右的节约程度。

 

5 本项研究在工业界的应用前景分析

近几年,我国大型互联网公司纷纷布局区块链基础设施,纷纷推出自己的云端区块链服务 —— BaaS(区块链即服务),利用自身云计算的优势,将区块链与云计算紧密结合。BaaS 是区块链设施的云端租用平台,可以帮助租户企业简化运营流程,企业无需专门建设自己的基础设施,服务购买即用,削减了部署成本。

在如今业务并发诉求越来越大的压力下,单个区块链的性能往往不能达到用户要求,因此有些 BaaS 区块链平台(例如华为云区块链)通过分片、多链等方式来大幅提高交易处理的并发能力。然而现有的分片方案大多数无法做到将交易较为均衡地分给每个分片,结果往往会出现不同的区块链分片需要处理的交易量有巨大差异的现象。若不合理为各个分片分配调整所需的共识与网络资源,则会导致交易量大的分片得不到足够的云资源,进而造成部分交易的处理延迟较高的问题。另外,即便为每个分片分配了足够的资源,也很可能会出现资源过量配置的问题。

本文提出的 DPP 算法正是为了解决上述问题。运用该算法,能够合理为各分片分配所需的云端资源,可以迅速缓解交易分配不均衡所带来的影响,有效降低区块链中交易处理的延迟,帮助企业构建一个部署在云端的“低资源消耗”的高性能区块链基础设施。


登录用户可以查看和发表评论, 请前往  登录 或  注册
SCHOLAT.com 学者网
免责声明 | 关于我们 | 联系我们
联系我们: