APP下载

基于实用拜占庭容错的改进的多主节点共识机制

2022-06-21任秀丽张雷

计算机应用 2022年5期
关键词:扩展性拜占庭流水线

任秀丽,张雷

(辽宁大学 信息学院,沈阳 110036)(∗通信作者电子邮箱1638938145@qq.com)

基于实用拜占庭容错的改进的多主节点共识机制

任秀丽,张雷*

(辽宁大学 信息学院,沈阳 110036)(∗通信作者电子邮箱1638938145@qq.com)

针对实用拜占庭容错(PBFT)共识协议通信复杂度高导致的共识效率低、单一主节点发生故障或存在拜占庭行为时会导致共识过程停止的问题,提出了改进的多主节点实用拜占庭容错(IMPBFT)共识机制。首先,通过节点的共识轮数、存在拜占庭行为的共识轮数以及节点被赋予的优先值,计算出节点的有效共识轮数,再依据有效共识轮数的大小选出多个主节点。其次,对原共识机制进行改进,使所有节点利用改进的机制进行共识。最后,引入流水线来实现IMPBFT共识的并发执行。在进行流水线操作时,不同轮共识的多阶段消息统一签名,并且不再使用固定周期来控制流水线。理论研究和实验结果表明,IMPBFT的多主节点结构相较单一主节点的共识结构更加安全稳定;与平方级通信量的PBFT和信用委托拜占庭容错(CDBFT)共识相比,IMPBFT将通信量降至线性级;在交易吞吐量、扩展性和交易时延方面,IMPBFT的性能要优于PBFT和CDBFT;使用“多阶段消息统一签名、无固定周期”流水线的IMPBFT,比未使用流水线的IMPBFT在交易吞吐量上提高了75.2%。

区块链;联盟链;共识机制;实用拜占庭容错;流水线

0 引言

区块链起源于比特币[1-2],区块链的核心技术是共识机制,而对共识机制的研究却远早于区块链。比特币系统使用的共识机制是工作量证明(Proof of Work, PoW),其属于公有链共识机制。PoW中的共识节点出于自身利益考虑[3],会维护区块链的安全;但该共识机制的共识时间较长,无法适用于所有场景,这也促进了跨链技术[4]的出现。区块链除了公有链,还有私有链和联盟链。联盟链中具有代表性的共识机制有实用拜占庭容错(Practical Byzantine Fault Tolerance, PBFT)[5]。相较于PoW,PBFT能耗更小、效率更高,更适用于大型组织联盟[6]。

PBFT共识机制包括pre-prepare、prepare和commit这3个重要阶段。它要求共识节点处于弱同步网络之中,具有拜占庭容错特性的同时,也具有实用性。PBFT中只有一个主节点负责对交易排序,该共识的通信复杂度为O(n2)。随着节点的增多,其通信量急剧增大,共识效率急剧下降。PBFT对于拜占庭节点不做处理,这些节点可以持续作恶。

以PBFT共识机制为基础,又有许多新的改进方案:通过分层结构[7-11]来减少每轮共识节点数量,从而达到减少通信量的目的,这样虽然可以提高共识效率,但同时也会造成共识的拜占庭容错性降低;通过对节点身份验证[12-13]、引入信任机制[14-15]、使用聚合签名[16]等提高安全性,但也带来了一些额外的资源消耗和一定程度中心化;通过简化共识过程[17-18]来提高效率,但这使得共识实用性变差;通过将“协商”和“执行”工作分离[19]来提高效能,但每部分出错都可能导致整个共识过程的停止;共识中引入节点退出机制[20],使得共识扩展性增强,不过每个节点的退出都会使得共识中的一些参数发生变化;通过动态更新共识节点集合[21]来提高共识一致性,但同时会带来额外资源开销;利用视图向量[22]来表示共识数据,使得响应处理变快,但任一节点宕机都可能导致共识停止。

Wang等[23]提出了一种“代理”共识信用委托拜占庭容错(Credit-Delegated Byzantine Fault Tolerance, CDBFT),该共识机制中将节点划分为m个组织,每个组织选出一个代理节点。每次共识都包括两个阶段:组织内共识和代理节点共识。这种共识机制减少了参与共识的节点数量,相较于PBFT共识减少了通信量,提高了共识效率。然而,其通信复杂度仍然是O(n2);当节点变多时,它的共识效率会呈现急剧下降的趋势,扩展性较差。

基于上述研究中的共识效率、安全性以及扩展性等问题的分析,本文提出了改进的多主节点实用拜占庭容错(Improved Multi-primary-node Practical Byzantine Fault Tolerance, IMPBFT)共识机制,并通过流水线来实现该共识的并发执行。本文的主要工作如下:

1)计算有效共识轮数:根据节点参与共识的轮数以及存在拜占庭行为的轮数计算得到有效共识轮数。将有效共识轮数作为选举主节点依据,可以降低拜占庭节点成为主节点几率。

2)提出改进的多主节点共识IMPBFT:共识选出多个主节点来共同接收客户端交易,以减少单个主节点弊端;改进共识流程,减少共识通信,提高共识效率。

3)引入流水线共识:IMPBFT共识中引入流水线进一步提高效率。在流水线执行过程中,多个阶段消息统一签名发送,并且不再使用固定的流水线周期,而是依靠共识自身来进行流水线控制。

1 改进的多主节点实用拜占庭容错共识机制

1.1 有效共识轮数

所有节点的信息中都包含以下4个属性信息:

1)共识轮数(R):表示节点参与了多少轮共识。一轮共识完成后,节点共识轮数加1,而且不管节点是否故障或者存在拜占庭行为,其共识轮数都会加1。

3)优先值(P):该值的设立主要是为了共识初始化阶段主节点的选取。共识初始阶段,由于所有节点共识轮数都为0,无法选出主节点,所以需要设置优先值来选出主节点。这里设置优先值为常数,未设置的都为0。

拜占庭行为主要是依据各节点发送的消息数据进行判断,一旦发现与共识结果不同的数据,检查该消息数据。若该消息中其他基本信息都相同,只有结果不同,由于消息中带有签名,那么可以判定发送该数据的节点存在拜占庭行为。若该消息中除结果外的其他基本信息不相同,并且这些信息被篡改了,那么也可以判定发送该消息的节点存在拜占庭行为。保留该消息作为证据,将证据发送给所有节点,如果没有证据,则无法判定一个节点是否为拜占庭节点。例如:在IMPBFT共识中,各节点发送prepare1消息,主节点要收集到2n/3+1条prepare1消息,而某节点发送消息未被主节点收集,则主节点无法判定其是否为拜占庭节点。

一个节点出现故障时,其有效轮数依旧会随着共识完成而增加。该故障节点若为主节点,也不会剥夺其主节点资格,但是因为它不能工作,相当于整个网络是k-1个主节点,不影响共识过程的继续。如果主节点全部故障,那么将重置节点优先值,重新选出主节点。若一个主节点存在拜占庭行为,那么其拜占庭轮数会增加,而且这会触发主节点集合的更新,重新选出k个有效轮数最高的节点。下一轮开始时,这些节点作为主节点。只要不是所有主节点都出现了故障或者拜占庭行为,那么共识就可以继续。

1.2 IMPBFT共识

IMPBFT共识中一共有n个节点、k个主节点。在request阶段,客户将交易请求trade发送给k个主节点,request消息格式为。其中:trade表示一条交易的请求,trade中包含交易的时间戳、交易双方的公钥、交易额等信息;Ci表示客户端的序列号;表示客户对交易的签名。

主节点收到客户request消息后,便与其他节点进行共识,共识流程如图1所示。图1中,表示客户端,0~9表示共识的节点,0和5表示主节点。

图1 IMPBFT共识流程Fig. 1 Consensus process of IMPBFT

1)pre-prepare阶段。主节点收到request消息后,首先验证签名。当收集到一定数量验证通过的交易请求后,主节点向所有共识节点发送消息,其中,requestsSet是包含一定数量且带有客户签名的交易原始请求集合,表示节点的签名,Ni表示节点序列号。

2)prepare1阶段。节点收到pre-prepare消息后,先验证该消息包含的主节点签名,然后对消息进行拆包,验证requestsSet中的客户签名。验证完毕后,拆解得到所有requestsSet包含的trade信息。对不同主节点的trade取并集,并依据时间戳进行排序,得到的交易集合记为T。排序完成后,该节点向主节点发送消息,其中H(T)表示T的哈希。

3)prepare2阶段。主节点收到超过2n/3节点(包括自身)发来的prepare1消息后,比较各消息中的H(T)哈希值。如果有超过n/3的相同H(T),主节点向所有节点发送消息,其中表示主节点收集到的prepare1消息集合。

4)commit1阶段。节点收到prepare2消息后,首先验证消息签名是否正确,其次验证中签名是否正确,最后比较H(T)是否与节点自身排好序的交易哈希值相同。验证通过后,执行这些交易。执行完成后,该节点向主节点发送消息,其中表示带有处理结果的交易信息。

5)commit2阶段。主节点收集超过2n/3条commit1消息后,其中,如果有超过n/3的相同,那么主节点将这些交易打包成最终的区块B。主节点向所有节点发送消息,commit1Set表示commit1消息集合。各节点和客户端收到消息后对所有签名进行验证,并对拥有一致结果的节点数量核实。验证通过后,表示区块B可以添加到本地区块链上了。

IMPBFT的共识流程如算法1所示:收到客户端的交易请求requestMsg后,共识节点集群nodeSet会对交易请求进行5个阶段共识,最终返回交易的结果。

算法1 IMPBFT共识算法。

输入 交易请求;

输出 交易的处理共识结果。

6) ENDIF

13) ENDIF

20) ENDIF

24) ENDFOR

25) END

1.3 基于流水线的IMPBFT共识

为实现共识的并发执行,在IMPBFT共识中使用流水线。PBFT共识具有原子性,即当前共识未完成,无法进行下一轮共识。这种方式虽然可以加强交易的安全性,却造成了共识效率的降低,可以采用多轮共识并行的方式提高效率。在IMPBFT共识中,只要不存在冲突交易的区块(区块中不存在两个或两个以上交易的付款人、收款人为同一客户),便可以并行处理。而区块链中,区块的生成必须要等待上一个区块完成才可以,因为一个区块头部需要包含前一个区块的哈希值。所以,在最后生成区块的commit2阶段,必须保证当前区块的前一个区块已经生成。区块的生成存在顺序性,可以采用流水线方式的并行。

在流水线IMPBFT共识机制运行时,需保证“一位客户交易未确认,该客户新交易不得被共识”,这也是为了避免“双花攻击”。所以五轮共识之内不应存在同一客户的不同请求,五轮共识内,若客户多次发送交易请求,那么这些请求将不会被立即处理。

1.3.1 共识多阶段消息统一签名

图2是使用流水线的5轮IMPBFT共识,其中,phase1、phase2、phase3、phase4、phase5分别代表IMPBFT共识中pre-prepare、prepare1、prepare2、commit1、commit2这5个阶段,T1~T9表示9个流水线周期。

图2 流水线共识Fig. 2 Pipeline consensus

在使用流水线共识期间,每个节点都会向其他节点发送不同阶段消息,而每个共识阶段的消息都有自己的独立签名。签名与签名验证会消耗大量时间,所以对同一时间段向其他节点发送的不同阶段的消息只进行一次签名,将节约许多时间。例如:在图2中T5期间,主节点需要向其他所有节点发送第1轮共识的commit2消息、第3轮的prepare2消息和第5轮的pre-prepare消息;所有节点都需要向主节点发送第2轮共识的commit1消息和第4轮的prepare1消息。那么,将第1轮的commit2消息、第3轮的prepare2消息和第5轮的pre-prepare消息放在一起,统一签名后发给所有节点;将第2轮的commit1消息和第4轮的prepare1消息统一签名后发送给主节点,这将节约大量时间。

1.3.2 无固定周期的IMPBFT流水线共识

无固定周期流水线共识与传统计算机中流水线有所不同,计算机中采用的流水线都会使用一个统一的流水线周期。计算机中的流水线之所以采用统一流水线周期,是因为计算机处理器中的运算单元、存储单元等资源都极为有限。如果一个周期没结束便进行下一步指令处理操作,很可能会导致其他资源被破坏或其他处理操作被迫停止,最终致使执行结果错误。因此,计算机中会选择执行时间最长的指令执行时间作为流水线周期。

然而,在共识程序执行过程中,共识执行所需的内存空间、算力等资源都是充足的。而且,有冲突交易是无法同时被处理的,无需担心共识阶段过早执行会破坏下阶段的数据或处理结果,所以无需使用固定流水线周期。在该共识流水线执行过程中,一个节点一旦收集到足够的消息,并且处理完自身的任务,便可以进行下一阶段的任务了,这样能够更充分利用计算机资源。但是由于多阶段统一签名的限制,统一签名的消息需要一起发送,所以每个主节点的pre-prepare、prepare2、commit2消息实际是在使用一个流水线周期时间。同理,每个节点的prepare1、commit1消息也是在使用一个流水线周期时间,这两个周期时间可以不同。

在无固定周期的IMPBFT共识流水线中,共识自身会对流水线流程进行约束控制:首先,一轮共识的上一阶段没有结束,下一阶段无法继续;其次,由于在commit2阶段生成区块,区块生成需要上一个区块提供哈希,所以一轮共识的commit2阶段开始必须要等到上一轮共识的commit2阶段结束,这些约束也是不使用固定流水线周期的原因。因此实际共识中的流水线可能如图3所示。最后通过实验得出,无固定周期流水线的交易吞吐量会高于有固定周期流水线。

图3 无固定周期流水线Fig. 3 Pipeline without fixed cycle

无固定周期流水线的共识如算法2所示:根据节点的序列号Ni,判断节点是主节点还是普通共识节点,分别进行不同步骤的流水线共识。

算法2 无固定周期流水线共识算法。

输入 共识节点序列号;

输出 共识节点下一共识阶段消息。

1) Algorithm NocyclePipeline()

13) ENDIF

19) ENDIF

20) ENDFOR

21) END

2 共识分析

2.1 通信分析

PBFT共识要求网络节点部分同步,即PBFT共识要求有超过2n/3的网络节点与网络中其他至少2n/3网络节点是同步的。由于CDBFT底层直接使用PBFT共识,所以它的要求和PBFT一样。而IMPBFT共识要求有至少2n/3节点与主节点之间的网络是同步的,相较于PBFT,IMPBFT网络要求更低,更具有实用性。

一轮共识中,PBFT的共识通信次数E1为:

一轮共识中,CDBFT的共识通信次数E2为:

一轮共识中,IMPBFT的共识通信次数E3为:

PBFT和CDBFT的通信复杂度为O(n2),IMPBFT的通信复杂度为O(n)。当节点数n很大时,IMPBFT的共识通信量会更少,扩展性更好。

2.2 安全分析

2.2.1 主节点选举机制

在PBFT共识中,对于拜占庭节点是不做任何处理的,这也意味着拜占庭节点与诚实节点被选为主节点的概率相同。而在IMPBFT共识中,通过有效轮数对节点的拜占庭行为进行约束。

2.2.2 共识安全

PBFT、CDBFT与IMPBFT的共识拜占庭容忍度都是,但是IMPBFT多主节点的设计会更安全。

若只有一个主节点,那么交易的顺序将由该主节点决定,这可能会带来一些弊端。客户将交易请求发送给主节点,主节点可以选择不转发。一段时间之后,客户没有收到交易的执行结果,会将交易请求再次发送给主节点以及所有的副本节点。如果该交易没有被共识,那么节点对该交易共识。但是,交易的最终顺序可能会被改变。

例如,客户C0账户有100元,请求1:客户C0在time时刻向客户C1转账60元,请求2:客户C0在time+1时刻向客户C2转账50元。正常顺序是先执行请求1再执行请求2,并且由于在PBFT共识中,一个客户的请求未被执行完,那么该客户是不可以继续发送请求的,所以,请求2在请求1未出结果前是不合法的。但是,由于网络或其他原因,两个请求几乎同时到达主节点,主节点正确的做法是选择请求1;如果主节点选择了请求2,那么最终的交易顺序会被改变。

同样地,恶意客户不再把请求先发给主节点,而是将请求发送给副本节点,这会造成副本节点认为客户的请求没有被及时处理执行。在交易高峰期,恶意客户向副本节点网络中发送大量请求,可能会带来不必要的损失。

主节点故障或存在拜占庭行为会导致其无法正常工作。一旦主节点全部无法正常工作,那么整个共识都将会停止,直到选出新的主节点,客户的交易也将无法得到及时处理。

2)共识因为主节点全部故障而停止的概率P1:

其中,P1会随着k的增大而不断减小,所以主节点越多,共识因为主节点全部故障而停止的概率越小。

3)共识因为主节点全部是拜占庭节点而停止的概率为P2:

4)共识因为主节点全部都故障或者存在拜占庭行为而停止的概率为P3:

其中i表示主节点中拜占庭节点个数。

图4 主节点数与共识停止的概率关系Fig. 4 Probability relationship between number of primary nodes and consensus stopping

2.3 多阶段消息统一签名分析

在区块链系统中,当交易量增多时,签名与签名的验证非常耗时。相同的数据,签名一次比将数据分割后多次签名要节省时间,同理,将消息合并后一起签名将会节约大量时间。

IMPBFT共识中每个消息独立签名,每轮共识签名次数S1为:

IMPBFT共识中每个消息独立签名,每轮共识签名验证总次数V1为:

IMPBFT共识中多阶段消息统一签名,每轮共识签名总次数S2为:

IMPBFT共识多阶段消息统一签名,每轮共识验证签名次数V2为:

使用多阶段消息统一签名的流水线共识,平均一轮共识通信次数E4为:

使用多阶段消息统一签名后,签名次数与签名验证次数会减少,从而达到节约时间的目的。同样地,使用多消息统一签名的流水线共识会节约通信资源。

然而,多阶段消息统一签名会让单次发送的消息数据变大。在网络环境极差的情况下,例如遭到拒绝服务攻击(Denial of Service, DoS)时,消息发送失败的概率可能会高于独立签名的消息。

3 实验与结果分析

本文实验利用Go语言编写一个单机多节点测试平台,在相同的软硬件环境下,对不同共识机制进行模拟测试得到实验数据。实验电脑配置为:处理器i7-9750;内存16 GB;操作系统Windows 10,64位;实验部署环境Go 1.15。在实验中,利用Go语言中的“协程”来模拟节点,利用“通道”来传输数据,并利用Go语言中的“test”命令进行共识的性能测试。实验主要对PBFT、CDBFT与IMPBFT共识的吞吐量、扩展性和交易时延进行了测试。

实验中,IMPBFT主节点数k分别设置为2、3、4、5、6;CDBFT中组织个数m分别设置为2、3、4、5、6。吞吐量测试中,共识节点数量n分别设置为50、60、70、80,比较共识的不同时间段吞吐量。扩展性测试中,共识轮数(即多少轮共识)分别设置为100、200、300、400、500,控制共识节点数n,比较共识时间。交易时延测试中,通过控制拜占庭节点数f来比较交易的时延。

3.1 吞吐量测试

共识机制的交易吞吐量与共识效率有关,共识效率高,则交易吞吐量也必然高。影响共识效率的主要因素是通信量。该实验比较了IMPBFT、PBFT、CDBFT以及使用流水线后IMPBFT共识的吞吐量。对共识吞吐量进行多组实验测试,这里随机选取了k为3、m为2、n为60的实验结果,如图5所示。其中,流水线1表示普通流水线共识(每个消息独立签名、有固定周期);流水线2表示“多阶段消息统一签名、有固定周期”流水线共识;流水线3表示“多阶段消息统一签名、无固定周期”流水线共识。三种流水线中设置的参数变量与IMPBFT保持一致。

图5 PBFT、CDBFT、IMPBFT与使用流水线的IMPBFT的交易吞吐量对比Fig. 5 Comparison of transaction throughput of PBFT,CDBFT, IMPBFT and IMPBFT using pipeline

从图5可知,IMPBFT共识的交易吞吐量相较PBFT、CDBFT分别提高了259.9%和11.8%。IMPBFT共识引入普通流水线后,比未使用流水线的IMPBFT共识的吞吐量提高了21.6%;引入“多阶段消息统一签名、有固定周期”流水线的IMPBFT共识,比未使用流水线的IMPBFT共识的吞吐量提高了67.5%;引入“多阶段消息统一签名、无固定周期”流水线的IMPBFT共识,比未使用流水线的IMPBFT共识的吞吐量提高了75.2%。综上可知,IMPBFT的共识效率优于PBFT、CDBFT;使用流水线后,会使IMPBFT共识效率进一步提高。

3.2 扩展性测试

共识机制中共识节点增多,会造成通信量相应增多,共识时间增长。如果增长速度太快,则表明共识的扩展性较差。扩展性测试主要是测试共识节点数对共识的影响,为了测试扩展性,进行了多组实验模拟,这里随机选取k为4、m为4、共识轮数为100的实验结果,如图6所示。

图6 PBFT、CDBFT与IMPBFT的扩展性对比Fig. 6 Comparison of scalability of PBFT,CDBFT and IMPBFT

从图6可知,随着节点数的增加,三种共识的时间都在增长,PBFT、CDBFT的共识时间随着节点数增加呈现平方级增长,IMBFT的共识时间随着节点数增加呈现线性级增长。这主要是因为前两个共识机制的通信复杂度为O(n2),而本文提出的IMBFT机制的通信复杂度为O(n)。在扩展性方面,IMPBFT优于PBFT和CDBFT。

3.3 交易时延测试

交易时延是指交易请求被发出到交易被确认的这段时间,交易时延越小,反映出共识效率越高。此外,共识中拜占庭节点的数量也会对交易的时延有一定影响。为测试交易延迟,进行了多组实验,这里随机选取了k为5、m为3、n为300的实验结果,如图7所示。

由图7可知,IMPBFT的交易时延相较PBFT和CDBFT分别降低了71.4%和11.2%,IMPBFT共识中的交易可以更快地被确认。随着共识中拜占庭节点数增加,PBFT的交易时延有一定幅度增长,而IMPBFT的交易时延最稳定。IMPBFT时延最低是因为其通信量最低,共识效率最高;而IMPBFT的多主节点设计,使该共识受拜占庭节点的影响降低,所以时延也更加稳定。实验结果表明,在交易时延性方面,IMPBFT优于PBFT和CDBFT。

图7 PBFT、CDBFT与IMPBFT的交易时延对比Fig. 7 Comparison of transaction delays of PBFT, CDBFT and IMPBFT

4 结语

本文所提的有效共识轮数为主节点的选取提供依据,并且利用它可以降低拜占庭节点成为主节点的几率,所提出的IMPBFT共识比单个主节点的共识更稳定安全,共识效率更高。IMPBFT共识中引入了流水线,在流水线执行过程中,多阶段消息统一签名、不使用固定周期,使得IMPBFT的共识效率进一步提高。实验结果表明,所提IMPBFT共识在交易吞吐量、扩展性和交易时延等方面都有较好表现。随着区块链的不断应用,后续还会对共识机制的实用性、效率和安全性做进一步研究。

[1] 韩璇,袁勇,王飞跃.区块链安全问题:研究现状与展望[J].自动化学报,2019,45(1):206-225.(HAN X, YUAN Y, WANG F Y. Security problems on blockchain: the state of the art and future trends [J]. Acta Automatica Sinica, 2019, 45(1): 206-225.)

[2] 邵奇峰,金澈清,张召,等.区块链技术:架构及进展[J].计算机学报,2018,41(5):969-988.(SHAO Q F, JIN C Q,ZHANG Z, et al. Blockchain:architecture and research progress [J]. Chinese Journal of Computers, 2018, 41(5): 969-988.)

[3] 唐长兵,杨珍,郑忠龙,等.PoW共识算法中的博弈困境分析与优化[J].自动化学报,2017,43(9):1520-1531.(TANG C B, YANG Z,ZHENG Z L, et al. Game dilemma analysis and optimization of PoW consensus algorithm [J]. Acta Automatica Sinica, 2017, 43(9): 1520-1531.)

[4] 李芳,李卓然,赵赫.区块链跨链技术进展研究[J].软件学报,2019,30(6):1649-1660.(LI F, LI Z R, ZHAO H. Research on the progress in cross-chain technology of blockchains [J]. Journal of Software, 2019, 30(6): 1649-1660.)

[5] CASTRO M, LISKOV B. Practical Byzantine fault tolerance [C]// Proceedings of the 1999 3rd Symposium on Operating Systems Design and Implementation. Berkeley: USENIX Association, 1999: 173-186.

[6] 张超,李强,陈子豪,等.Medical chain:联盟式医疗区块链系统[J].自动化学报,2019,45(8):1495-1510.(ZHANG C, LI Q, CHEN Z H, et al. Medical chain:alliance medical blockchain system [J]. Acta Automatica Sinica, 2019, 45(8): 1495-1510.)

[7] AHMAD A, SAAD M, NJILLA L, et al. BlockTrail: a scalable multichain solution for blockchain-based audit trails [C]// Proceedings of the 2019 IEEE International Conference on Communications. Piscataway:IEEE, 2019: 1-6.

[8] JIANG Y J, LIAN Z. Scalable efficient Byzantine fault tolerance [C]// Proceedings of the 2019 IEEE 3rd Advanced Information Management, Communicates, Electronic and Automation Control Conference. Piscataway: IEEE, 2019: 1736-1742.

[9] LI X F, LV F R, XIANG F, et al. Research on key technologies of logistics information traceability model based on consortium chain [J]. IEEE Access, 2020, 8:69754-69762.

[10] 包振山,王凯旋,张文博.基于树形拓扑网络的实用拜占庭容错共识算法[J].应用科学学报,2020,38(1):34-50.(BAO Z S, WANG K X,ZHANG W B. A practical Byzantine fault tolerance consensus algorithm based on tree topological network [J]. Journal of Applied Sciences, 2020, 38(1): 34-50.)

[11] 闵新平,李庆忠,孔兰菊,等.许可链多中心动态共识机制[J].计算机学报,2018,41(5):1005-1020.(MIN X P, LI Q Z,KONG L J, et al. Permissioned blockchain dynamic consensus mechanism based multi-centers [J]. Chinese Journal of Computers, 2018, 41(5): 1005-1020.)

[12] CHEN X L, HU X, LI Y, et al. A blockchain based access authentication scheme of energy internet [C]// Proceedings of the 2018 2nd IEEE Conference on Energy Internet and Energy System Integration. Piscataway: IEEE, 2018: 1-9.

[13] XU H, LONG Y, LIU Z Q, et al. Dynamic practical Byzantine fault tolerance [C]// Proceedings of the 2018 IEEE Conference on Communications and Network Security. Piscataway: IEEE, 2018: 1-8.

[14] GAO S, YU T Y, ZHU J M, et al. T-PBFT: an EigenTrust-based practical Byzantine fault tolerance consensus algorithm [J]. China Communications, 2019, 16(12): 111-123.

[15] 赖英旭,薄尊旭,刘静.基于改进PBFT算法防御区块链中sybil攻击的研究[J].通信学报,2020,41(9):104-117.(LAI Y X, BO Z X, LIU J. Research on sybil attack in defense blockchain based on improved PBFT algorithm [J]. Journal on Communications, 2020, 41(9): 104-117.)

[16] 苑超,徐蜜雪,斯雪明.基于聚合签名的共识算法优化方案[J].计算机科学,2018,45(2):53-56,83.(YUAN C, XU M X, SI X M. Optimization scheme of consensus algorithm based on aggregation signature [J]. Computer Science, 2018, 45(2): 53-56, 83.)

[17] 甘俊,李强,陈子豪,等.区块链实用拜占庭容错共识算法的改进[J].计算机应用,2019,39(7):2148-2155.(GAN J, LI Q, CHEN Z H, et al. Improvement of blockchain practical Byzantine fault tolerance consensus algorithm [J]. Journal of Computer Applications, 2019, 39(7): 2148-2155.)

[18] 王日宏,张立锋,徐泉清,等.可应用于联盟链的拜占庭容错共识算法[J].计算机应用研究,2020,37(11):3382-3386.(WANG R H, ZHANG L F,XU Q Q, et al. Byzantine fault tolerance algorithm for consortium blockchain [J]. Application Research of Computers, 2020, 37(11): 3382-3386.)

[19] 韩镇阳,宫宁生,任珈民.一种区块链实用拜占庭容错算法的改进[J].计算机应用与软件,2020, 37(2):226-233,294.(HAN Z Y, GONG N S, REN J M. An improved blockchain practical Byzantine fault tolerance algorithm [J]. Computer Applications and Software, 2020, 37(2): 226-233, 294.)

[20] 韩嗣诚,朱晓荣,张秀贤.优化可扩展的拜占庭容错共识算法[J].物联网学报,2020,4(2):18-25.(HANG S C, ZHU X R,ZHANG X X. Optimized scalable Byzantine fault tolerance algorithm [J]. Chinese Journal on Internet of Things, 2020, 4(2): 18-25.)

[21] 方维维,王子岳,宋慧丽,等.一种面向区块链的优化PBFT共识算法[J].北京交通大学学报,2019,43(5):58-64.(FANG W W,WANG Z Y, SONG H L, et al. An optimized PBFT consensus algorithm for blockchain [J]. Journal of Beijing Jiaotong University,2019, 43(5): 58-64.)

[22] 李青鹏,赵相福,陈中育,等.GVGBC:全视图情形下基于Gossip协议的拜占庭共识算法[J].浙江师范大学学报(自然科学版),2020,43(1):50-55.(LI Q P, ZHAO X F, CHEN Z Y, et al. GVGBC: a Byzantine consensus algorithm in global view based on Gossip protocol [J]. Journal of Zhejiang Normal University (Natural Sciences), 2020, 43(1): 50-55.)

[23] WANG Y H, CAI S B, LIN C L, et al. Study of blockchains’ consensus mechanism based on credit [J]. IEEE Access, 2019,7: 10224-10231.

Improved multi-primary-node consensus mechanism based on practical Byzantine fault tolerance

REN Xiuli, ZHANG Lei*

(College of Information,Liaoning University,Shenyang Liaoning110036,China)

The high communication complexity of Practical Byzantine Fault Tolerance (PBFT) consensus protocol will lead to low consensus efficiency, the failure or the existing of Byzantine behavior of the single primary node will lead to the stop of consensus process. In order to solve these problems, an Improved Multi-primary-node Practical Byzantine Fault Tolerance (IMPBFT) consensus mechanism was proposed. Firstly,the number of effective consensus rounds of nodes was calculated by the number of consensus rounds of nodes, the number of consensus rounds with Byzantine behavior and the priority values assigned to the nodes, and several primary nodes were selected according to the size of effective consensus rounds. Then, the original consensus mechanism was improved to make all nodes use the improved consensus mechanism for consensus. Finally, pipeline was introduced to implement the concurrent execution of IMPBFT consensus. In the pipeline operation, multi-stage messages of different rounds’ consensus were signed together, and no fixed cycle was used to control the pipeline. Theoretical research and experimental results show that, the multi-primary-node structure of IMPBFT is more secure and stable than the consensus structure of single primary node. Compared with PBFT and Credit-Delegated Byzantine Fault Tolerance (CDBFT) consensus with square level traffic, the proposed IMPBFT reduces the traffic to linear level. The IMPBFT has better performance than PBFT and CDBFT in terms of transaction throughput, scalability and transaction delay. The IMPBFT using the “multi-stage messages signed together with no fixed cycle” pipeline has improved the transaction throughput by 75.2% compared with the IMPBFT without pipeline.

blockchain; consortium chain; consensus mechanism; Practical Byzantine Fault Tolerance (PBFT); pipeline

TP311.5

A

1001-9081(2022)05-1500-08

10.11772/j.issn.1001-9081.2021050772

2021⁃05⁃13;

2021⁃09⁃09;

2021⁃09⁃16。

辽宁省自然科学基金资助项目(201202089)。

任秀丽(1965—),女,吉林四平人,教授,博士,主要研究方向:无线网络与通信、区块链; 张雷(1996—),男,江苏徐州人,硕士研究生,CCF会员,主要研究方向:区块链。

This work is partially supported by Natural Science Foundation of Liaoning Province (201202089).

REN Xiuli, born in 1965, Ph. D., professor. Her research interests include wireless network and communication, blockchain.

ZHANG Lei, born in 1996, M. S. candidate. His research interests include blockchain.

猜你喜欢

扩展性拜占庭流水线
熨烫女工
奇思妙想
流水线
流水线上的神奇转换
第四次十字军东征前的东地中海世界
小学语文低年级阅读教学改革探究
比ITX还小华擎推首款Mini—STX主板
基于SpringMVC和Hibernate的企业人事管理系统
拜占庭之光
君士坦丁堡的建立及其对东西方文化交流的影响