Hipro-HoneyBadgerBFT:一种基于并行运行机制的高性能异步共识算法

2024-04-26 20:08宋静柏粉花张晓晖张弛
化工自动化及仪表 2024年2期
关键词:拜占庭吞吐量实例

宋静 柏粉花 张晓晖 张弛

基金项目:云南省教育厅科学研究基金(批准号:2022Y160)资助的课题。

作者简介:宋静(1997-),硕士研究生,从事区块链的研究。

通讯作者:张弛(1996-),博士研究生,从事区块链的研究,chizhang@stu.kust.edu.cn。

引用本文:宋静,柏粉花,张晓晖,等.Hipro-HoneyBadgerBFT:一种基于并行运行机制的高性能异步共识算法[J].化工

自动化及仪表,2024,51(2):243-254.

DOI:10.20030/j.cnki.1000-3932.202402014

摘 要 在大数据时代,信息流通数量极速增长。区块链技术非常适用于数据共享系统。目前数据共享系统搭建在区块链网络中会出现一些性能方面的瓶颈。为此,在HoneyBadgerBFT共识算法的基础上,提出一种更加高效的异步拜占庭共识算法——Hipro-HoneyBadgerBFT。该算法在不牺牲安全性的前提下,可以降低系统的计算资源,提升算法的共识效率。实验结果表明:Hipro-HoneyBadgerBFT共识算法的时延约为HoneyBadgerBFT共识算法时延的1%,吞吐量提升了7倍,CPU利用率則减少了54.09%。

关键词 Hipro-HoneyBadgerBFT共识算法 数据共享 分布式 异步共识 联盟区块链 ACS协议解耦 ACS协议划分

中图分类号 TH865   文献标志码 A   文章编号 1000-3932(2024)02-0243-12

在今天的数据信息量爆炸时代,工业、交通、学校、医疗等领域对于数据量的需求都在极速增长。数据共享能够实现不同用户在不同地方使用不同设备,读取其他用户共享的数据,并对其进行各种操作和分析。实现数据共享,能够使得各个单位用户充分使用目前已有数据信息,便于数据发挥其价值,同时减少数据资料的采集、审核等重复工作量,便于工业、交通、学校、医疗等行业把工作重点放在开发应用程序和系统集成方面。在传统的中心化数据共享工程[1]中,存在共享数据成本较高、共享效率低下、安全性不足等问题,很难满足数据交易量日益增长的要求。由于共享数据牵涉到个人隐私、企业商业机密等安全问题,因此在数据传输过程中保障数据的安全性尤为重要。基于以上问题,在较多的用户数量和海量数据共享方面,传统的中心化数据共享平台存在很大的局限性。因此,分布式系统的数据共享平台被引入,更适合海量数据共享的情况。分布式系统在内部遇到各种错误时仍能满足性能要求,并且对外部提供正确的服务,这种系统被称为具有容错能力的高可用系统[2]。将区块链技术应用在数据共享系统中,能够有效避免第三方服务提供商带来的问题。作为一种新颖的分布式计算架构,区块链具有防篡改、隐私保护和去中心化的优点。共识算法作为区块链技术的核心之一,具有重大的研究意义。在数据共享系统中,共识算法的设计选择能够有效影响系统的安全性,以及系统达成一致的效率。异步共识算法不依赖于网络时间假设,更贴合实际网络情况等特性,实现数据库的标准化融合、数据治理与可信共享,构建多方共同参与的数据共享系统。

作为一种典型的异步共识算法,HoneyBadgerBFT共识算法不依赖于对网络的时间假设,更贴合实际网络情况,相较于同步共识算法更有实际可用性,且其具有较高的吞吐量、较低的延迟。然而HoneyBadgerBFT共识算法采用的是传统ACS协议进行共识操作,导致算法中各个节点之间的通信量过大,耗费了大量的通信资源,共识达成一致所需时间也较长。因此,笔者主要针对HoneyBadgerBFT共识算法中传统的ACS协议进行研究和改进,提出Hipro-HoneyBadgerBFT共识算法,以提升数据共享系统的吞吐量、降低延迟、优化计算资源。

1 相关工作

1.1 拜占庭容错共识算法

拜占庭容错共识(Byzantine Fault Tolerance,BFT)算法是分布式计算领域的容错技术[3],来源于拜占庭将军问题。拜占庭将军问题是描述分布式系统一致性问题抽象出的一个著名例子。由于硬件错误、网络堵塞中断或受到攻击等原因,导致网络出现不可预料的行为,即典型的拜占庭将军问题[4]。在拜占庭将军问题被提出来之后,有很多共识算法被陆续提出,这些共识算法被统称为拜占庭容错共识算法。

拜占庭容错系统是一个拥有n台节点的系统,在该系统中,有故障的节点均被称为拜占庭节点,运行正常的节点则是非拜占庭节点。在拜占庭容错系统中,由于无法分辨某个消息是否来自拜占庭节点,因此单个消息是不可信的,只能相信大多数投票机制的消息。这就意味着即使拜占庭容错系统中的一些节点出现错误,该系统也可以继续正常运行。

拜占庭共识算法支持在具有拜占庭节点的分布式系统中运行的客户端-服务器应用程序。其正常操作包括3个阶段[5]:第1阶段为预准备阶段,主节点向所有节点广播一条预准备消息,其他节点验证该消息,若验证通过就向其他节点广播准备消息;第2阶段为准备阶段,每个节点收到不同节点与该消息匹配的准备消息,会向其他节点广播提交消息;第3阶段为提交阶段,当节点接收到其他2f个节点提交的消息后,提交阶段结束,所有节点向服务器提交响应。

由于系统需要支撑大量用户进行海量数据交易操作,对数据共享系统的响应及时性、吞吐量和存储量的要求非常高。目前常见的两类共识算法是竞争类共识算法和投票类共识算法。竞争类共识算法中典型的有工作量证明共识算法(Proof of Work,PoW)[6],达成共识需要节点耗费大量计算资源去解决哈希算法;投票类共识算法中典型的有复制技术的实用拜占庭容错共识算法(Practical Byzantine Fault Tolerance,PBFT)[7]中,各个节点通信过程需要耗费大量通信资源才能达成共识,保持各节点一致性。竞争类共识算法和投票类共识算法两类共识机制都有各自的弊端,导致区块链技术应用在数据共享系统中出现瓶颈。

区块链中的共识算法是提升性能表现的关键,因此为了解决数据共享系统中的瓶颈问题,大量研究学者从优化共识算法进行研究,最开始关注于解决同步环境下的共识机制。由于实际的网络情况难以满足同步系统中严格的时间同步假设,因此异步系统的共识机制备受研究学者的关注。文献[8]提出异步系统共识机制的FLP不可能结论,便于研究学者们未来在研究异步拜占庭共识算法时,去突破或规避掉FLP不可能结论。文献[9]提出异步拜占庭二元共识算法,规避掉了FLP不可能结论,该算法采用抛硬币的方式协调节点行为,在一定轮数后,以趋近于1的概率终止,保证所有正确节点对某个值达成共识,能够容忍不超过n/4个拜占庭节点。文献[10]提出异步环境下的拜占庭共识算法HoneyBadgerBFT,算法通过RBC协议传输节点的提议值,用ABA协议对节点的提议值进行共识,能够容忍不超过n/3个拜占庭节点。文献[11]整合门限椭圆曲线数字签名算法和擦除编码参数优化,设计异步拜占庭容错(ABFT)一致性协议,该协议在故障阈值内不受不对称网络退化的影响。文献[12]提出安全异步远程证明(SARA)协议,该协议利用异步通信能力来证明由被执行的分布式物联网服务,该协议验证设备的可信度和合法的操作,減少了使用公、私钥在的存储和计算方面的操作成本。文献[13]提出一种新的异步BFT结构,用一个广播组件代替RBC,将消息复杂度降低到O(n2),节省了67%的通信。文献[14]提出异步分布式密钥生成(ADKG)协议,协议以模块化方式使用了很多ACS、RBC、ABA等异步原语,在没有可信第三方的情况下引导门限密码系统,该协议可以容忍不超过n/3个拜占庭节点。

1.2 HoneyBadgerBFT共识算法

区块链系统中的通信环境主要分为三大类:同步网络、半同步网络和异步网络[15]。同步网络存在已知的最大网络延迟,常见的有PoW同步协议,一致性和活性均依赖于同步假设。半同步网络存在未知的最大网络延迟,但是最终恢复同步状态,常见的有HotStuff半同步协议,活性依赖于同步假设。异步网络对网络条件做出最小的假设,未知网络延迟,刻画网络传输中断和网络攻击,一致性和活性均不依赖于同步假设。

2016年,MILLER A等提出HoneyBadgerBFT共识算法,该算法是第1个接近实用的异步共识算法,是可以在异步网络中正常运行的BFT协议,目前已被应用在区块链平台。HoneyBadgerBFT共识算法与PBFT共识算法相比,HoneyBadgerBFT共识算法是没有领导者的,系统中的每个节点都可以作为共识的发起者,通过纠删码分割交易缓解单个节点的带宽,选择随机交易块配合门限加密,使得吞吐量更高。HoneyBadgerBFT共识算法主要包括3个步骤:首先,节点随机选取交易集并对此进行加密;其次,采用RBC协议实现交易的可靠广播;最后,采用ABA协议实现交易的共识。

HoneyBadgerBFT共识算法流程如图1所示。首先节点根据交易块的选择规则选取出要进行共识的交易集合tx。对交易集合tx使用公钥进行加密,之后作为ACS协议的输入进行共识。ACS协议共识结束后,会收到n个交易集合以及对应的比特串,每个比特对应一个节点发起的共识交易集合。遍历交易集合,将共识结果为1的交易块解密,之后进行降重、校验及排序等环节。交易被提交之后,会将共识完的交易从本地缓存中删除。

图1 HoneyBadgerBFT共识算法流程

HoneyBadgerBFT共识算法主要使用门限加密实现审查弹性[16]。门限加密方案,在共识达成之前无法将交易集和节点对应起来,无法获得交易集的相关信息。与此同时,HoneyBadgerBFT共识算法优化传统的ACS协议,将RBC协议和ABA协议进行组合,实现新型ACS协议,降低复杂度的同时提升算法性能。如图2所示,系统中的节点对ACS协议的输入进行门限加密,对输出进行解密并排序。在整个ACS协议中的广播和共识过程中,都是对加密后的交易集进行的。由于该方案不是直接对明文交易进行共识的,因此采用该方案可以有效防止敌手作恶,泄露信息。

由于影响HoneyBadgerBFT共识算法性能的主要瓶颈是异步二进制协议,再加上异步系统共识机制的FLP不可能结论,因此异步二进制协议是一个随机方案。当网络不稳定时,可能会出现一些ABA实例结束得较慢的情况,最后一个ABA实例结束的时间决定了异步二进制协议的运行时间,继而决定了HoneyBadgerBFT共识算法的运行时间。Dumbo协议[17]提出了新的异步公共子集协议结构,有两种解决方案,分别是Dumbo1和Dumbo2。Dumbo1方案通过选择指定的提议子集输出,只对指定的提议子集进行二元共识协议,能够大概率地保证指定的提议子集中至少有一个是诚实的。Dumbo2方案主要通过对MVBA的创新,执行实例化异步公共子集协议,提出了一种更快的异步BFT协议,实现恒定的运行时间。

2 Hipro-HoneyBadgerBFT共识算法

由1.2节的研究可知,HoneyBadgerBFT共识算法中的ACS协议是顺序执行的。经过门限加密后的交易作为RBC的输入,广播给其他节点之后进行共识。n个异步二元共识协议执行完毕之后,该轮共识才会结束。一个异步二元共识协议实例在共识过程中可能会执行较多轮数,并且每一轮都需要协商公共抛币值。整个系统中会有n个节点输出n个实例,这就导致交易的共识过程耗时较长。在多轮共识执行的情况下,传统ACS中,RBC协议和ABA协议顺序执行会降低整个算法性能,再加上HoneyBadgerBFT共识算法中的门限签名和消息传输都会耗费大量时长,使得HoneyBadgerBFT共识算法的时延较高。针对以上问题,笔者提出一种更加高效的异步拜占庭共识算法——Hipro-HoneyBadgerBFT,算法的逻辑如图3所示。

2.1 Hipro-HoneyBadgerBFT共識算法结构

在HoneyBadgerBFT共识算法中,交易共识的效率主要依赖于ACS协议的性能,而ABA协议是影响ACS协议性能的主要瓶颈之一。当节点数量很大,网络状态不稳定时,可能会导致一些ABA实例运行的速度很慢,最慢的ABA实例决定了ACS协议的运行时间。Hipro-HoneyBadger BFT共识算法结构如图4所示。

本研究对HoneyBadgerBFT共识算法有两步改进方案:

a. 对Hipro-HoneyBadgerBFT共识算法中的ACS协议进行解耦,在每轮共识中分布式随机选取部分ERBC实例,降低后续ABA实例的数量,能够有效减少ABA协议达成一致过程中节点间的通信量,优化算法的计算资源;

b. 将ACS协议划分为区域1和区域2两个部分,使得广播过程和共识过程并行执行,能够有效避免两者相互牵制,提升数据交易的执行效率,降低延迟。

Hipro-HoneyBadgerBFT共识算法伪代码中,步骤2~4为ERBC协议,步骤5~6为ABA协议,二者并行执行。具体如下:

Algorithm 1.Hipro-HoneyBadgerBFT Consensus algorithm

Input: Transaction_Contract

Output:  Consensus results

1: get (Transaction_Contract)->Transaction_Buffer.i

2: For (Transaction_Buffer.i not null)

3:    ERBC protocol

4: end for

5: for (Buffer.i not null)

6:    ABA protocol

7: end for

本研究对Hipro-HoneyBadgerBFT共识算法共有以下两个改进步骤。

a. 为了提升ACS协议的性能,笔者提出减少ABA协议中运行实例的数量。在输出的n个ERBC实例中分布式随机选取k(k

Algorithm 2.ERBC protocol phase

Input: Transaction_Contract

Output: Proposal_Encrypted.i

1:For (Transaction_Buffer.i not null)

2: Node.i randomly selects m/n transactions from Transaction_Buffer.i -> Proposal.i

3:  EIGamal (Node.i,Proposal.i) -> Proposal_Encr- ypted.i

4:  Proposal_Encrypted.i -> ERBC.i

5:   Select k ERBC instances at random to broadcast

6:  ERBC.i get Proposal_Encrypted.i from Node.i

7:   get (Proposal_Encrypted.i)  -> Buffer.i

8: end for

b. Hipro-HoneyBadgerBFT共识算法将传统的ACS协议进行解耦,在ERBC协议和ABA协议之间增加k个暂存池。数据交易的广播过程和共识过程并不直接交互,而是都和相应的暂存池交互。数据交易在经过ERBC协议可靠广播之后不需要再等ABA协议运行结束,就可以进行下一轮的可靠广播。此方案可以避免传统ACS协议顺序执行造成的耗时过长问题,降低了HoneyBadgerBFT共识算法的执行效率。伪代码如下:

Algorithm 3.ABA protocol phase

Input: Proposal_Encrypted.i

Output: Consensus results

1:for (Buffer.i not null)

2:  Regular check for proposals in Buffer.i

3:  if Buffer_ID.i = Consensus_ID.i + 1 and ABA.i instance has no input

4:     1 -> ABA.i

5:  else

6:     break

7:  end if

8:  ABA.i instance run ABA agreements,1-> result[i]

9:  for (result == 1)

10:      Assemblies ∪ Buffer.i_front.proposal -> Assemblies

11:  Consensus_ID.j = Consensus_ID.j + 1

12:  end for

13: fragment Decryption Proposal_Encrypted.i to broadcast

14:  f+1 fragments were collected to recover Proposal.i

15:  remove duplication and sort,store block

16:  0 -> result

17:end for

2.2 Hipro-HoneyBadgerBFT共识算法流程

在数据共享系统中,数据交易双方交易成功后,通过Hipro-HoneyBadgerBFT共识算法将数据交易合约存入区块链,该数据交易合约会永久保存,不可更改。Hipro-HoneyBadgerBFT共识算法将ACS协议划分为区域1和区域2,两个区域并行执行。两个区域之间不进行交互,而是同与之相应的暂存池交互。Hipro-HoneyBadgerBFT共识算法流程如图5所示。

Hipro-HoneyBadgerBFT共识算法中的相关变量信息见表1。

Hipro-HoneyBadgerBFT共识算法区域1中的基本操作步骤如下:

a. 节点Nodei从本地数据事务池中随机选取m/n(m为所有参与节点提议的事务数量,n为参与节点的数目)个数据事务作为提案Proposali。节点Nodei对提案Proposai进行Lifted EIGamal门限加密,也即Proposal_Encryptedi←EIGamal(Nodei,Proposali),节点Nodei将加密后的提案Proposal_

Encryptedi作为ERBCi实例输入。

b. 算法在n个ERBC实例中分布式随机选取k个ERBC实例进行后续的ABA协议(n>k>n/3)。

c. 当ERBCi实例收到节点Nodei广播加密后的提案Proposal_Encryptedi,将提案放入暂存池Bufferi中。

d. 至此,节点Nodei提议的提案Proposali,其可靠广播步骤ERBC协议完成。重复步骤a~c,等待接收节点Nodei发起的下一个提案广播。

Hipro-HoneyBadgerBFT共识算法区域2中的基本操作步骤如下:

a. 算法中节点Nodei(i={0,1,…,n})对其相应的暂存池Bufferi定期查询。当暂存池Bufferi中存在某个提案的序号是已经完成共识的数据事务则序号加1,即有Buffer_IDi=Consensus_IDi+1;如果没有给ABAi實例提供输入,那么就给ABAi实例提供输入值1,即ABAi←1。

b. ABAi实例执行ABA协议结束并且其输出值为1后,将二元共识结果result[i]设置为1,即result[i]←1。当具有不低于n-f(其中f为故障节点数量)个ABA实例的输出值为1后,将其余没有给出输入值的ABA实例的输入值设置为0,便于提高没有输入值的ABA实例的执行效率。

c. 所有ABA实例执行结束后,遍历二元共识结果向量result。如果result[j]=1(j=0,1,2,…,k-1),将暂存池Bufferj中的队头事务提案放入数据事务集合中,已完成的共识数据事务序号自增1,即有Consensus_IDj=Consensus_IDj+1,暂存池Bufferj中该事务提案删除。

d. 节点Nodei利用其私钥片段将数据事务集合中相应的加密提案片段进行解密,将解密后的提案片段Section_Proposali广播发送给其他节点。节点接收到f+1个解密片段后对其进行解密,推出明文提案Proposali。在明文提案Proposali存入区块后,对其进行降重,按时间戳进行顺序排序。每个节点Nodei都会获得一致的区块。

e. 将二元共识结果向量result重置为0,继续重复步骤a~d,进行新一轮的共识协议。

将传统的ACS协议解耦,划分为区域1、2,区域1进行ERBC协议,区域2进行ABA协议。两个区域并行执行,ERBC协议和ABA协议互不交互。在ERBC协议中抽取一部分ERBC实例进行后续操作。与HoneyBadgerBFT共识算法相比,Hipro-HoneyBadgerBFT共识算法降低了ABA协议中数据传输过程的时长,并行执行也提升了ACS协议的性能,提高了数据共享的吞吐量。

2.3 安全性分析

将Hipro-HoneyBadgerBFT共识算法应用在区块链系统中。区块链要求网络中的所有节点都要存储区块链账本,区块与区块之间通过哈希指针相连。如果敌手想篡改某一区块数据,需要1/3的节点对该区块以及之后的所有存储完毕的区块进行修改。这是十分困难并且需要耗费大量算力的行为。Hipro-HoneyBadgerBFT共识算法应用在联盟区块链中,节点都是先要经过授权,之后实名加入到联盟区块链中,节点本身的诚信问题都是有保障的。在区块链网络中,节点与节点之间通过点对点认证通道相连,敌手是无法成功伪装成正确节点的。

Hipro-HoneyBadgerBFT共识算法达成一致的过程中,节点发送的消息都要进行签名,其他节点收到该消息后,也都会对其签名信息和身份信息进行检查。如果签名信息或身份信息验证失败,该信息就会被丢弃。Hipro-HoneyBadgerBFT共识算法保留了HoneyBadgerBFT共识算法中的门限加密方案。在ACS协议之前对输入数据交易集合进行加密,敌手无法知道具体的交易内容,可有效防止敌手恶意阻塞特定节点的交易,不会损害审查弹性。

为了验证笔者提出的Hipro-HoneyBadgerBFT共识算法未降低HoneyBadgerBFT共识算法的安全性能,设计故障节点的数量对系统吞吐量影响的测试。本实验分别在系统中设置不同的故障节点数量,对Hipro-HoneyBadgerBFT共识算法进行测试。实验设置区块批量大小分别为2×103、2×104,2×105、2×106,总节点数量为N,故障节点数量为f,算法中参与节点的数目n=4f,算法中暂存池的数目k=n/3+1。本实验不考虑拜占庭行为,只针对故障节点做测试。

笔者用Origin绘制出Hipro-HoneyBadgerBFT共识算法在节点数量和故障节点数量不同的情况下,吞吐量的对比结果,如图6所示。

图6 节点数量和故障节点数量不同的吞吐量比较

由以上实验数据可知,笔者提出的Hipro-HoneyBadgerBFT共识算法同样可以实现原子广播。采用Hipro-HoneyBadgerBFT共识算法的网络中,存在故障节点的情况下进行数据交易共识,算法仍然可以继续执行并输出相关结果。网络数据交易的安全性不会受到损害。

3 实验结果与分析

3.1 实验环境设置

本次实验在Windows11,64位操作系统的单台主机完成测试,机带RAM为16.0 GB,处理器11th Gen Intel(R)Core(TM)i5-1135G7@2.40 GHz 2.42 GHz。

采用go语言实现Hipro-HoneyBadgerBFT共识算法和HoneyBadgerBFT共识算法。

用于对比实验的Dumbo1共识算法,Dumbo2共识算法[17]用Python语言实现。

门限加密部分使用相同的库和安全参数,公钥加密部分使用HoneyBadgerBFT共识算法中所采用的混合加密方法。

3.2 实验分析

采用的共识算法的性能在很大程度上会影响网络的吞吐量[18]。首先对HoneyBadgerBFT共识算法、Dumbo1共识算法、Dumbo2共识算法和Hipro-HoneyBadgerBFT共识算法的吞吐量进行测试。

吞吐量表示每秒钟处理的事务量,即在单位时间内共识算法处理的交易事务量的数量的总和。吞吐量TPS的计算式为:

TPS=

其中,Ntransaction代表一个区块内包含的数据交易数量;ΔT代表生成一个区块耗费的时间。

吞吐量是对软件测试的测量单位,衡量共识算法性能的重要指标之一。一个事务是客户机向服务器发送请求,服务器对其做出反应的过程,在这个过程中计算时间和完成事务的数量。

3.2.1 吞吐量比较

3.2.1.1 不同共识算法的吞吐量比较

为了研究不同共识算法的吞吐量,分别在节点数量不同的情况下,对4种共识算法进行吞吐量测试。设置区块批量大小為2×105,k=n/3+1,节点数量分别为32、64、100。测试HoneyBadgerBFT(HBBFT)共识算法、Dumbo1共识算法、Dumbo2共识算法和Hipro-HoneyBadgerBFT(Hipro-HBBFT)共识算法,分别进行20轮共识,取其平均值,并对其吞吐量进行计算和分析。用Origin软件绘制出以上4种共识算法的吞吐量,结果如图7所示。

图7 不同共识算法的吞吐量比较

由图7可以看出,当节点数量在负荷范围内时,共识算法的吞吐量随着节点数量的增加而提升。当节点数量过多,超过负荷后,共识算法的吞吐量会随之降低。以上这4种共识算法在相同区块批量大小和节点数量中,HoneyBadgerBFT共识算法的吞吐量最低,Hipro-HoneyBadgerBFT共识算法的吞吐量最高。在节点数量为64时,Hipro-HoneyBadgerBFT共识算法与HoneyBadgerBFT共识算法相比,在吞吐量方面提升了7倍;与Dumbo2共识算法相比,吞吐量大小增加了30.44%。

3.2.1.2 节点数量和批量大小不同的吞吐量比较

为了研究共识算法中节点数量、区块批量大小与吞吐量之间的关系,本次实验分别在节点数量不同和区块批量大小不同的情况下,对HoneyBadgerBFT共识算法、Dumbo1共识算法、Dumbo2共识算法和Hipro-HoneyBadgerBFT共识算法进行吞吐量测试,结果如图8所示。如图8d所示,节点数量设置为100。共4组实验,每组实验设置k=n/3+1,区块批量大小分别为2×103、2×104、2×105、2×106。连续进行20轮共识,将其吞吐量取平均值观察其变化。笔者用Origin绘制4种共识算法在节点数量和区块批量大小不同的情况下,吞吐量的对比结果,如图8所示,共4组实验数据。

图8 节点数量不同和区块批量大小不同的情况下4种算法的吞吐量测试结果

从图8可以看出,共识算法的吞吐量随着批量大小的增加呈现出上升的态势。而在图8a中可以看到,当带宽或者计算资源不够的情况下,共识算法的吞吐量会随之降低,甚至出现错误问题。在图8b中,区块批量大小为2×106时,Hipro-HoneyBadgerBFT共识算法的吞吐量达到了每秒钟22 217.6笔,是HoneyBadgerBFT共识算法的8倍多。

3.2.2 CPU利用率比较

为了研究Hipro-HoneyBadgerBFT共识算法与HoneyBadgerBFT共识算法对于计算资源的消耗。本次实验设置区块批量大小为2×105,k=n/3+1。在节点数量相同的情况下,分别运行Hipro-HoneyBadgerBFT共识算法与HoneyBadgerBFT共识算法,检测主机的CPU利用率,以此来证明Hipro-HoneyBadgerBFT共识算法优化了计算资源。用Origin绘制出的Hipro-HoneyBadgerBFT共识算法与HoneyBadgerBFT共识算法的CPU利用率比较结果如图9所示。

圖9 CPU利用率比较

从图9可以看出,在区块批量大小相同的情况下,节点数量越多,CPU的利用率越高。在节点数量相同的情况下,Hipro-HoneyBadgerBFT共识算法的CPU利用率均比HoneyBadgerBFT共识算法低。说明Hipro-HoneyBadgerBFT共识算法在计算资源方面进行了优化。

3.2.3 不同共识算法的时延比较

在区块链网络中,时延能够反映达成共识的运行时间以及通信的性能[19]。本次实验中的延迟是第1个事务结束到最后一个事务确认的时间间隔。时延T的计算式为:

T=T-T

其中,T代表该区块前面的一个事务结束的时间;T则代表该区块第1个事务结束的时间。

在时延测试方面,本次实验设置区块批量大小为2×106,k=n/3+1,节点数量分别为32、64、100。记录HoneyBadgerBFT共识算法、Dumbo1共识算法、Dumbo2共识算法和Hipro-HoneyBadgerBFT共识算法连续进行20轮共识所需要的时延,取其平均值。用Origin绘制出的4种共识算法的时延如图10所示。

图10 不同共识算法的时延比较

从图10可以看出,Hipro-HoneyBadgerBFT共识算法的时延最低,HoneyBadgerBF共识算法的时延最高。在节点数量为64的情况下,Hipro-HoneyBadgerBFT共识算法的时延约为HoneyBadgerBFT共识算法时延的1%,与Dumbo2共识算法相比时延减少了82.14%。

3.3 实验总结

在区块链网络中传入相同大小的区块,节点对于区块达成一致的速度影响着共识算法的吞吐量。笔者主要针对吞吐量、延迟和CPU利用率3个性能指标,验证Hipro-HoneyBadgerBFT共识算法对于性能的提升。现对HoneyBadgerBFT共识算法、Dumbo1共识算法、Dumbo2共识算法[17]和Hipro-HoneyBadgerBFT共识算法采用不同的节点数量、不同的区块大小进行一系列测试实验。相关的实验结果表明,在相同条件下,笔者提出的Hipro-HoneyBadgerBFT共识算法相较于Honey Badger BFT共识算法,在吞吐量、延迟和计算资源方面都有较大的提升。

4 总结与展望

在社会高速发展,数据量激增的时代背景下,数据共享系统的重要性和广泛性与日俱增。区块链技术的高可用分布式系统自身的特性非常适配于数据共享系统,便于数据尽可能地发挥其价值。共识算法作为区块链的核心技术之一,选择和改进共识算法使其更好地适配相关的系统是十分重要的。为了更好地应用在数据量激增的时代,笔者提出了基于HoneyBadgerBFT共识算法改进的高效异步拜占庭共识算法,即Hipro-HoneyBadgerBFT共识算法,属于联盟区块链中异步共识技术领域。Hipro-HoneyBadgerBFT共识算法应用于数据共享系统,针对系统中的时延、吞吐量和计算资源进行性能提升。Hipro-Honey BadgerBFT共识算法提出选取部分ERBC实例降低ABA协议中的通信量,引入并行运行机制将共识算法流程分为两个区域的方案。本研究的实验结果表明,Hipro-HoneyBadgerBFT共识算法在未降低系统安全性的情况下,降低了通信延迟,优化了计算资源,提升了吞吐量。

在未来的工作中,可以在共识算法的安全性和性能方面继续深入研究。未来改进后的共识算法要能够容纳数据共享系统中存在的大量用户,容纳用户与用户之间产生的海量数据交易合约,满足系统中极具复杂的种种要求。共识算法达成共识的同时,保障数据的安全性,提升共识效率,保证系统的整体性能。未来的研究,还需着重对隐私方面进行加强,满足数据共享系统中用户对于其本身隐私以及数据私密性的需求。

参 考 文 献

[1] ZHENG X,CAI Z.Privacy-preserved data sharing towa- rds multiple parties in industrial IoTs[J].IEEE Journal on Selected Areas in Communications,2020,38(5):968-979.

[2] CASTRO M,LISKOV B.Practical Byzantine fault tolerance and proactive recovery[J].ACM Transactions on Computer Systems(TOCS),2002,20(4):398-461.

[3] NEIHEISER R W.Scalable and resilient byzantine fault tolerant consensus[J].Florianópolis/Lisboa UNIVERSIDADE FEDERAL DE SANTA CATARINA,2022.https://repositorio.ufsc.br/bitstream/handle/123456789/23485 9/PEAS0406-T.pdf?sequence=-1&isAllowed=y.

[4] WU Z J,QIN Y J,LI Y,et al.Decentralized Predictive Enterprise Resource Planning Framework on Private Blockchain Networks Using Neural Networks[C]//Computer Supported Cooperative Work and Social Computing:16th CCF Conference,Chinese CSCW 2021,Xiangtan,Revised Selected Papers,Part I.Singapore:Springer Nature Singapore,2022:3-13.

[5] GRAMOLI V.From blockchain consensus back to Byza- ntine consensus[J].Future Generation Computer Systems,2020,107:760-769.

[6] KIAYIAS A,ZINDROS D.Proof-of-work sidechains[C]//Financial Cryptography and Data Security:FC 2019 International Workshops,VOTING and WTSC,St.Kitts,St.Kitts and Nevis,Revised Selected Papers 23.Springer International Publishing,2020:21-34.

[7] XU H,LONG Y,LIU Z Q,et al.Dynamic practical byz- antine fault tolerance[C]//2018 IEEE Conference on Communications and Network Security(CNS).Piscataway,NJ:IEEE,2018:1-8.

[8] FISCHER M J,LYNCH N A,PATERSON M S.Impossibility of distributed consensus with one faulty process[J].Journal of theACM(JACM),1985,32(2):374-382.

[9] RABIN M O.Randomized byzantine generals[C]//24th Annual Symposium on Foundations of Computer Science(SFCS 1983). Piscataway,NJ:IEEE,1983:403-409.

[10] MILLER A,XIA Y,CROMAN K,et al.The honey bad- ger of BFT protocols[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security.2016:31-42.

[11] KNUDSEN H,LI J,NOTLAND J S,et al.High-performance asynchronous byzantine fault tolerance consensus protocol[C]//2021 IEEE International Conference on Blockchain (Blockchain).Piscataway,NJ:IEEE,2021:476-483.

[12] DUSHKU E,RABBANI M M,CONTI M,et al.SARA:Secure Asynchronous Remote Attestation for IoT Systems[J].IEEE Transactions on Information Forensics and Security,2020,15:3123-3136.

[13] GUO B Y,LU Y J,LU Z L,et al.Speeding dumbo:Pushing asynchronous BFT closer to practice[J].Cryptology ePrintArchive,2022.https://eprint.iacr.org/2022/027.pdf.

[14] DAS S,YUREK T,XIANG Z,et al.Practical asynchronous distributed key generation[C]//2022 IEEE Symposium on Security and Privacy (SP). Piscataway,NJ:IEEE,2022:2518-2534.

[15] CORDASCO G,GARGANO L.Community detection via semi-synchronous label propagation algorithms[C]//2010 IEEE International Workshop on:Business Applications of Social Network Analysis (BASNA).Piscataway,NJ:IEEE,2010:1-8.

[16] DUAN S,REITER M K,ZHANG H.BEAT:Asynchron ous BFT made practical[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security.2018:2028-2041.

[17] GUO B Y,LU Z L,TANG Q,et al.Dumbo:Faster asyn- chronous BFT protocols[C]//Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security.2020:803-818.

[18] YANG R,CHANG X,MIIJ,et al.Quantitative Comparison of Two Chain-Selection Protocols under Selfish Mining Attack[J].IEEE Transactions on Network and Service Management,2022,19(2):1142-1158.

[19] GARROCHO C T B,SILVA M C,FERREIRA C M S,et al.Real-time systems implications in the blockchain-based vertical integration of industry 4.0[J].Computer,2020,53(9):46-55.

(收稿日期:2023-03-30,修回日期:2023-05-15)

Hipro-HoneyBadgerBFT: A High Performance Asynchronous Consensus Algorithm Based on Parallel Running Mechanism

SONG Jing, BAI Fen-hua, ZHANG Xiao-hui, ZHANG Chi

(Faculty of Information Engineering and Automation, Kunming University of Science and Technology)

Abstract   In era of big data, the information flowing grows rapidly and blockchain technology suits data sharing systems well. At present, the data sharing system built in the blockchain network will encounter some bottlenecks in performance. In this paper, having HoneyBadgerBFT consensus algorithm based to propose a more efficient asynchronous Byzantine consensus algorithm (Hipro-HoneyBadgerBFT) was implemented. The proposed algorithm can reduce computing resources of the system and improve consensus efficiency of the algorithm without sacrificing security. The experimental results show that, the delay of Hipro-HoneyBadgerBFT consensus algorithm is about 1% of the delay of HoneyBadgerBFT consensus algorithm, but the throughput is increased by 7 times, and the CPU utilization is reduced by 54.09%.

Key words   Hipro-HoneyBadgerBFT consensus algorithm, data sharing, distributed, asynchronous consensus, federated blockchain, ACS protocol decoupling, ACS protocol division

猜你喜欢
拜占庭吞吐量实例
拜占庭帝国的绘画艺术及其多样性特征初探
浅谈初中历史教学中的逻辑补充——从拜占庭帝国灭亡原因谈起
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
《西方史学通史》第三卷“拜占庭史学”部分纠缪
拜占庭之光
完形填空Ⅱ
完形填空Ⅰ
2014年1月长三角地区主要港口吞吐量