基于节点分组信誉模型的改进PBFT共识算法

2023-10-17 21:25陈苏明王冰陈玉全邢涛马宇辉赵建立
计算机应用研究 2023年10期
关键词:区块链

陈苏明 王冰 陈玉全 邢涛 马宇辉 赵建立

摘 要:针对实用拜占庭容错共识算法(practical Byzantine fault tolerance,PBFT)中存在通信开销大、缺少奖惩机制、节点缺乏积极性的问题,提出了一种基于节点分组信誉模型的改进PBFT共识算法(grouping reputation practical Byzantine fault tolerance,GR-PBFT)。首先,引入信誉奖惩机制来确保系统的安全性,再根据节点信誉进行分组以选取共识节点,解决信誉机制类共识算法产生节点信誉累计问题,降低系统中心化程度,提升了节点成为共识节点的积极性;然后,改进主节点的选举方式保证主节点的可靠性,并优化一致性协议执行流程,减少准备、确认与响应阶段的通信复杂度,提高了共识效率。仿真实验表明,GR-PBFT共识算法在共识时延、通信开销、吞吐量、安全性等方面比PBFT共识算法具有更好的性能。

关键词:区块链; 共识算法; 节点分组; 信誉奖惩机制; 实用拜占庭容错共识算法(PBFT)

中图分类号:TP301.6 文献标志码:A 文章编号:1001-3695(2023)10-005-2916-06

doi:10.19734/j.issn.1001-3695.2023.03.0091

Improved PBFT consensus algorithm based on node grouping reputation model

Chen Suming1, Wang Bing1, Chen Yuquan1, Xing Tao1, Ma Yuhui1, Zhao Jianli2

(1.College of Energy & Electrical Engineering, Hohai University, Nanjing 211100, China; 2.State Grid Shanghai Municipal Electric Power Company, Shanghai 200030, China)

Abstract:Aiming at the problems in the practical Byzantine fault tolerance (PBFT) consensus algorithm, such as large communication overhead, lack of reward and punishment mechanism and lack of enthusiasm of nodes, this paper proposed an improved PBFT consensus algorithm based on the node grouping reputation model (GR-PBFT). Firstly, GR-PBFT algorithm introduced a reputation reward and punishment mechanism to ensure the security of the system, and then grouped by nodes reputation to select consensus nodes so that it could solve the reputation accumulation problem of nodes generated by consensus algorithms such as reputation mechanisms. Besides, it could also reduce the degree of system centralization and improve the enthusiasm of nodes to become consensus nodes. Then, this algorithm improved the election method of the master node to ensure the reliability of the master node. Meanwhile, it optimized the execution process of the consensus protocol and reduced the communication complexity in the preparation, confirmation and response stage to improve the consensus efficiency. Finally, the simulation experiments show that the GR-PBFT consensus algorithm has better performance than the PBFT consensus algorithm in terms of consensus delay, communication overhead, throughput and security and so on.

Key words:blockchain; consensus algorithm; node grouping; reputation reward and punishment mechanism; PBFT

0 引言

隨着比特币[1]技术的成功,其底层的区块链技术也得到了广泛关注,在金融、医疗、司法、物流、公共管理等领域具有很好的应用潜力且逐渐成为研究热点。区块链技术[2,3]的本质是一种去中心化的分布式数据库,它具有去中心化、可追溯、点对点通信等特点[4],区块链中的数据根据时间戳进行更新,无须可信第三方参与,所有交易全网广播并通过节点共识完成上链。共识算法[5]是区块链的底层核心,是区块链系统的法律与灵魂[6],也是系统性能的重要体现。截至目前,已经出现许多不同类型的区块链共识算法,常用的共识算法为工作量证明(proof of work,PoW)、权益证明(proof of stake,PoS)、股份授权证明(delegated proof of stake,DPoS)、Raft(replication and fault tolerant)、实用拜占庭容错(PBFT)[7~11]。PoW共识算法在公有链中应用广泛,其依靠计算机自身的性能来争取记账权,虽然该共识算法极其消耗算力,违背了环保理念,但该算法使得系统是完全去中心化的。PoS共识算法在解出一系列难题的基础上引进币龄的概念,币龄被掌控的时间越长,节点获得记账权的机会就越大,虽然该算法会导致较为严重的中心化问题,但相较于PoW共识算法,其在算力消耗上有所降低,挖矿速度有所提升。DPoS共识算法主要通过选取少部分节点作为记账节点来代替自己行使记账权,虽然该机制会产生节点不积极投票和贿赂节点的问题[12],但相较于PoS共识算法,其可以大幅度减少能耗,提升共识效率。Raft共识算法在私有链中应用广泛,该算法的核心是日志复制和选举领导两个过程,其中更为重要的是日志复制过程,虽然Raft共识算法会产生伪造日志的问题,但其通信复杂度低。PBFT共识算法在联盟链中应用广泛,由一致性协议、视图更换协议和检查点协议三部分来完成共识,该算法对拜占庭节点数量设置了一个阈值,可有效解决拜占庭将军问题。PBFT共识算法虽然在联盟链中应用最为广泛,但仍有许多值得改进的地方。首先在PBFT三阶段通信协议中,准备与确认阶段的通信复杂度各有O(N2),通信复杂度过高,其中N为网络中的节点总数;其次PBFT共识算法选取主节点太过随意,主节点按照顺序选出,且所有节点均为共识节点,影响了主节点的可靠性和节点的积极性;最后PBFT共识算法对于共识节点没有任何奖惩措施,即使出现拜占庭节点也没有惩罚措施,影响了系统的安全性。

针对上述PBFT共识算法存在通信开销大、缺少奖惩机制、节点缺乏积极性的问题,许多研究从不同角度提供了解决方法。文献[13]提出將PBFT与DPoS算法相结合的方式,共识节点由DPoS算法中股份投票的方式选举产生,降低通信过程的通信复杂度,从而优化PBFT的共识流程。文献[14]提出了一种基于EigenTrust模型的PBFT共识算法,利用节点间的行为评估节点的信任可靠度,并选取系统中质量较高的节点搭建新的共识组,从而降低系统通信复杂度,优化拜占庭容错率。文献[15]提出了一种改进的实用拜占庭共识算法,利用节点分离技术降低服务器请求次数,采用最长链方法与心跳检测原理来改进主节点选取方式,降低了系统能耗。文献[16]提出了一种基于信用的联盟链共识算法,采用信誉估量模型并根据信誉值高低选取挖矿节点以提升算法共识效率及公平性,此外也增加了系统的激励方案。文献[17]提出了一种节点可靠性评估的改进PBFT共识算法,该算法引入节点评分方案,根据节点不同的信誉定位不同的信任状态,改进主节点选取方式,对恶意节点设置惩罚措施,从而降低算法的通信复杂度,提升系统效率和安全性。文献[18]提出了一种基于网络自聚类PBFT共识算法,引入种子节点的概念,以种子节点为质心进行自聚类,并从聚类组中选出各组中的代理者,由代理者执行共识过程,使系统具有不错的拓展性,同时也提升了系统性能。

针对上述PBFT共识算法存在通信开销大、缺少奖惩机制、节点缺乏积极性的问题,本文提出了一种基于节点分组信誉模型的改进PBFT共识算法(GR-PBFT)。首先对PBFT共识算法进行说明,接着给出GR-PBFT共识算法设计方案,该方案内容为设计节点信誉奖惩机制、改进共识节点与主节点的选举方式和优化一致性协议执行流程,最后在进行理论与实验分析的同时与其他学者改进的PBFT共识算法进行对比,证明了GR-PBFT共识算法具有良好的性能。本文主要贡献可总结为:a)根据节点行为引入信誉奖惩机制,所有节点按照信誉值降序排列,并按照斐波那契函数对节点进行分组,分组后在组内选取共识节点,解决了信誉机制类共识算法产生节点信誉累计问题,降低了系统中心化程度,提升了节点成为共识节点的积极性;b)主节点从排名第一、第二的共识节点中挑选,并由其他共识节点投票选取出主节点,最大程度地保证了主节点的可靠性,降低了视图切换频率;c)优化PBFT共识算法一致性协议执行流程的准备、确认和响应阶段,降低通信复杂度,提高共识效率。

1 实用拜占庭容错共识算法

PBFT共识算法证明了假设拜占庭节点数为f,网络中的节点总数N满足N≥3f+1,即可确保回复消息的正确性,从而实现共识,其时间复杂度为O(N2)。PBFT共识算法分为主节点与副本节点,主节点需接收客户端消息并排列客户端请求消息,接着将消息广播至副本节点,副本节点按照主节点排列好的信息顺序进行验证,最终所有节点将消息返还至客户端。

为了确保分布式系统中节点达成一致共识,PBFT共识算法需要在三种协议下运行,即一致性协议、视图更换协议和检查点协议。一致性协议可以确保所有节点存储数据的正确性和一致性,采用节点间互相通信的方法来完成消息的一致性;在一致性协议执行中,如果存在宕机或恶意行为的主节点,则触发视图更换协议来调整当前主节点;检查点协议是定时触发,主要用来清除一致性协议运行中各节点存储的消息,并同步节点状态。

一致性协议是PBFT共识算法的核心协议,执行过程如图1所示,分为请求、预准备、准备、确认和响应五个阶段。图1中,节点0为主节点,节点1、2、3分别对应副本节点1、2、3,其中节点3为拜占庭节点。虚线为各阶段边界,箭头表示消息从消息源节点发送到接收节点,带虚线箭头的消息表示真实的消息被窜改。整个协议基本执行过程如下:

a)请求阶段。客户端给主节点发送请求,请求消息为〈Request,m,ts,cid,csig〉,其中m是客户端请求内容,ts是时间戳,cid是客户端ID,csig是客户端签名。

b)预准备阶段。主节点收到请求消息后,对请求进行排序,同时对请求赋值一个序列号sn并生成预准备消息〈〈Pre-prepare,vn,sn,D(m),psig〉,m〉给副本节点,其中vn表示视图号,视图号初始值为0,sn是序列号,D(m)是信息摘要,psig是主节点签名。

c)准备阶段。副本节点收到预准备消息并生成准备消息〈Prepare,vn,sn,D(m),bid,bsig〉,其中bid是副本节点ID,bsig是副本节点签名。在此阶段,每个节点都会将自己生成的准备消息与其他节点发送的准备消息进行比对,至少有2f+1个准备消息与自己生成的准备消息一致时,则进入确认阶段。

d)确认阶段。准备阶段完成后,所有节点生成确认消息〈Commit,vn,sn,D(m),bid,bsig〉并广播至其他节点,节点收到来自其他节点的确认消息并校验,至少有2f+1个确认消息与自己生成的确认消息一致时,则进入响应阶段。

e)响应阶段。当各共识节点在确认阶段收到至少来自2f+1个不同节点的一致性消息后,将回复消息返还给客户端,回复消息是〈Reply,vn,ts,bsig,r〉,其中r表示客户端请求的执行结果。若有f+1个节点响应相同,则表示客户端请求成功。

2 GR-PBFT算法设计方案

2.1 节点信誉奖惩机制

由于在PBFT共识算法中缺少节点奖惩机制,在GR-PBFT共识算法中引入了信誉奖惩机制,节点信誉值被划分为五个等级,此外处于不同信誉等级的节点奖惩机制不同,从而使得系统更加安全。本文基于文献[19]中设计的动态信誉评价模型思想进行信誉奖惩机制设计,文献[19]中的信誉评价模型根据共识节点在共识过程中的行为进行评分,并根据定义的节点信誉值阈值区间来评定节点处于何种状态,节点状态不同则相应的权限也有所不同,从而可以及时评价和反馈节点行为。下面是本文的节点信誉奖惩机制方案的具体内容。

设区块链中每个节点初始信誉值为60,节点信誉值最高为100,信誉值达到100后不再增加;节点信誉值被划分为Rgood、Rbetter、Rnormal、Rinit、Rmin五个等级,分别取值90、80、70、60、55。Rgood是高信誉值;Rbetter是较高信誉值;Rnormal是正常信誉值;Rinit是初始信誉值;Rmin是最低信誉值,低于该信誉值,节点将被直接剔出区块链系统。区块链中节点的权限与状态都直接受信誉值影响。

根据各个共识节点在共识过程中处于不同信誉等级来分配共识节点的信誉奖励与惩罚。

信誉奖励公式:

其中:Rij表示当前时刻第i组中第j个共识节点的信誉值,Rpreviousij表示上一时刻第i组中第j个共识节点的信誉值,关于共识节点的选取方式,将在2.2.1节中详细阐述。V1表示该节点是可信节点,奖励该共识节点的固定值,V2、V3表示该节点是拜占庭节点,惩罚该共识节点的固定值,V1、V2、V3可以根据实际的应用场景进行改变,本文中V1=1、V2=15、V3=10。特别地,当主节点成为拜占庭节点后,当前信誉值直接扣除20,对于区块链中节点信誉值在Rmin与Rinit之间,则采用限制其一段时间参选共识节点,如式(2)所示。其中t为天数,初始值为1,随着天数的增加不断自加;T是一个固定常数,表示限制交易的天数,即限制周期;C为增长速率,T、C均可根据不同的应用场景进行改变,本文中设置T=10、C=1。对于节点信誉值小于Rmin的节点,直接将该节点剔出区块链系统。

2.2 节点选取机制

由于在PBFT共识算法中所有节点均为共识节点,导致节点缺乏积极性,主节点按照编号顺序选取的方式影响了主节点的可靠性,所以在GR-PBFT共识算法中,所有节点按照信誉值降序排序,并按照斐波那契函数规则进行分组,分组后利用向上取整函数得出各个组中前一半的节点组成共识节点;从共识节点中选取信誉值排名第一、第二的节点作为候选主节点,接着共识节点进行投票,投票选取结束后取数值最大的候选主节点作为主节点,不参与共识的节点需要保存共识结果。共识节点的选取方式不易产生节点信誉累计问题,降低了系统中心化程度,提升了节点参选共识节點的积极性,同时主节点的选取方式也提升了主节点的可靠性。本文根据文献[20]中选取节点的思想来选取共识节点和主节点,文献[20]中将共识节点按照信誉值降序排序依次填满每个群组,并从共识群组中随机选取主节点,各个群组由主节点引导进行共识,从而提升了选取节点的公平性和系统运行效率。

2.2.1 共识节点选取

在GR-PBFT共识算法中,设节点总数为N(N≥5),信誉值大于等于Rinit的节点总数设为Nr(Nr≥5),groupi∈{group1,group2,…,groupk}表示区块链中节点被分到第i组,groupk表示最后一组。该组别是由斐波那契函数特性分组形成,斐波那契函数满足以下递推性质(n≥3,n∈Euclid Math TwoNAp):

通过斐波那契函数将区块链中所有信誉值大于等于Rinit的节点分为k组,groupk-1中拥有S(k-1)个节点,nodeij表示groupi中的第j个节点,其中1≤i≤k-1、1≤j≤S(i);当i=k时,groupk中的节点个数为Nr-∑k-1m=1S(m),nodeij表示groupk中的第j个节点,其中1≤j≤Nr-∑k-1m=1S(m)。节点层次结构如图2所示。

从各组中选取共识节点,每一组中利用向上取整函数选取前一半的节点成为共识节点。定义向上取整函数为upper(x),x为实数。

2.2.2 主节点选取

排名第一、第二的共识节点作为候选主节点,其他共识节点对候选主节点进行投票以选取主节点;在共识节点投票过程中,各个共识节点可以支持、弃权、反对。投票结果为

其中:resultpq是指第p组中第q个候选主节点的投票分数,Rpq表示在第p组中第q个候选主节点的信誉值,1≤p≤2、q=1;votemn表示第m组中第n个共识节点投票结果,支持、弃权、反对相对应的值分别是1、0和-1,数值最大的候选主节点当选主节点。如果最终resultpq相等,则选取投票前排名第一的共识节点作为主节点。

2.3 优化一致性协议

由于在PBFT共识算法中准备阶段已经达到完成共识的要求,确认阶段主要是各节点了解其他节点的共识状态,所以可以简化确认阶段的通信复杂度。PBFT共识算法的确认阶段两两交互,时间复杂度为O(N2),其中N为网络中的节点总数。GR-PBFT共识算法中的确认阶段不再需要两两交互,由主节点进行结果消息比对,使得时间复杂度降为O(N);此外因为选取共识节点数量上的减少,同样也简化了准备和响应阶段,从而降低了通信开销,提升了共识效率。本文基于文献[21]中优化一致性协议的思路进行一致性协议的改进,文献[21]中将一致性协议执行流程分为预准备阶段、交互阶段和确认阶段。预准备阶段与PBFT共识算法的执行步骤一致;交互阶段只有满足相应积分的节点才可以共识,减少了节点间两两交互的次数;确认阶段是所有节点向主节点发送确认消息,将PBFT共识算法的两两交互变成单向发送。因此文献[21]经过对一致性协议执行流程的改进降低了通信复杂度。

一致性协议主要优化准备、确认和响应阶段,执行过程如图3所示。图3中,节点0、1、2、3为GR-PBFT共识算法中的共识节点,节点0是主节点,节点1、2、3分别对应副本节点1、2、3,其中节点3为拜占庭节点,其余节点是指GR-PBFT共识算法中信誉值大于等于Rinit且未当选共识节点的节点。虚线为各阶段边界,箭头表示消息从消息源节点发送到接收节点,带虚线箭头的消息表示真实的消息被窜改。f表示共识节点中拜占庭节点的数量。

优化一致性协议基本过程如下:

a)请求阶段。客户端给主节点发送请求,请求消息为〈Request,m,ts,cid,csig〉,其中m是客户端请求内容,ts是时间戳,cid是客户端ID,csig是客户端签名。

b)预准备阶段。当主节点收到请求消息后,对请求进行排序,同时对请求赋值一个序列号sn并生成预准备消息〈〈Pre-prepare,vn,sn,D(m),psig〉,m〉给所有信誉值大于等于Rinit的节点,其中vn表示视图号,视图号初始值为0,sn是序列号,D(m)是信息摘要,psig是主节点签名。副本节点对消息进行校验,确认无误可以进入准备阶段,否则执行视图变更,更换主节点,其余节点仅接收来自主节点的消息,不对消息进行传递。

c)准备阶段。副本节点收到预准备消息并生成准备消息〈Prepare,vn,sn,D(m),bid,bsig〉,其中bid是副本节点ID,bsig是副本节点签名。在此阶段,每个共识节点均会将自己生成的准备消息与其他共识节点发送的准备消息进行比对,至少有2f+1个准备消息与自己生成的准备消息一致时才可以进入确认阶段。如果不满足要求,更换拜占庭节点,进行相应的信誉惩罚并重启共识过程。

d)确认阶段。准备阶段完成后进入确认阶段,在此过程中,共识节点生成确认消息〈Commit,vn,sn,D(m),bid,bsig)〉并发送给主节点,主节点对其他节点发来的确认消息进行校验。至少有f+1个确认消息与主节点的确认消息一致时,则确认阶段完成。

e)响应阶段。所有共识节点将确认消息返还给客户端,回复消息是〈Reply,vn,ts,bsig,r〉,其中r表示客户端请求的执行结果。若有f+1个节点响应相同,则表示客户端请求成功。

3 理论与仿真分析

3.1 理论分析

1)可靠性分析 PBFT共识算法中,主节点选取太过简单,其通过取模运算来产生,即按照顺序选出,导致主节点可靠性不足。GR-PBFT共识算法选取主节点是由各组中的共识节点对候选主节点投票产生,候选主节点中数值最大者当选主节点,从而大大提升了主节点的可靠性。

2)积极性分析 PBFT共識算法中,所有节点均为共识节点,无论是可信节点还是拜占庭节点都可以继续参与共识,这就导致节点缺乏积极性。GR-PBFT共识算法中,所有节点按照信誉值降序排序且只有信誉值大于等于Rinit才具备参与共识的条件;再按照斐波那契函数规则分组,分组后利用向上取整函数得出各个组中前一半的节点组成共识节点。由于每一组中的节点信誉值相差不大,同时在信誉值低的组中与信誉值高的组中的节点入选为共识节点的概率一样,从而解决了信誉机制类共识算法产生节点信誉累计问题,降低了系统中心化程度,提升了节点参选共识节点的积极性。

3.2 仿真分析

本实验基于Java编程语言开发了一个多线程、多节点的小型区块链系统,利用该系统对PBFT、基于网络自聚类PBFT(network and clustering practical Byzantine fault tolerance,NAC-PBFT)[18]、基于信誉值投票与随机数选举PBFT(reputation and number voting practical Byzantine fault tolerance,RN-VPBFT)[22]、基于主节点随机选取的改进PBFT(random practical Byzantine fault tolerance,RPBFT)[23]及本文的GR-PBFT共识算法进行对比分析,主要在共识时延、通信开销、吞吐量和安全性四个方面进行对比分析,实验配置信息如表1所示。

3.2.1 共识时延分析

在区块链系统中,共识时延是指客户端提交请求到完成确认的时间。实验中设置节点数量由5个增加到40个,步长为5。为不失一般性,在不同节点数下重复进行20次交易,不同节点数下的共识时延最终值为20次交易的均值,PBFT、NAC-PBFT、RPBFT与GR-PBFT共识算法的共识时延对比结果如图4所示。

由实验结果可知,节点数量在不断增加的同时,四种算法的共识时延也相应增加,但GR-PBFT共识算法的共识时延整体小于PBFT、NAC-PBFT与RPBFT共识算法,同时GR-PBFT共识算法在不同节点区间内的共识时延增长率低于PBFT共识算法。PBFT共识算法中所有节点均参与共识,NAC-PBFT共识算法主要通过选取代理人来减少参与共识的节点数量,RPBFT共识算法主要简化一致性协议执行流程,GR-PBFT共识算法主要减少一半的节点参与共识,并优化了一致性协议执行流程。因此GR-PBFT共识算法比PBFT、NAC-PBFT与RPBFT共识算法在共识时延上有更好的优势。

3.2.2 通信开销分析

通信开销是指节点在共识过程中产生的通信量,GR-PBFT共识算法通过减少共识节点的个数,同时优化PBFT共识算法中一致性协议,从而减少了通信开销。由于PBFT与GR-PBFT共识算法中的请求阶段都一样,为了减少不必要的参数代入,不加入请求阶段来进行通信开销的对比。

假设两个共识算法发生视图变换的概率为P,节点总数为N。由于在GR-PBFT共识算法中信誉值大于等于Rinit的节点总数为Nr,Nr≤N,但每一组中利用向上取整函数选取前一半的节点成为共识节点的总数会大于Nr/2,所以GR-PBFT共识算法中的共识节点数近似取为N/2。

1)PBFT共识算法通信开销 在预准备阶段,通信次数为(N-1);在准备阶段,通信次数为(N-1)2;在确认阶段,通信次数为N(N-1);在响应阶段,通信次数为N。因此,PBFT共识算法在正常共识中的通信次数为

当视图切换发生时,副本节点间需互相发送视图切换消息,其通信次数为(N-1)2;接着新主节点广播新视图消息给副本节点,其通信次数为(N-1)。由于产生视图切换的概率为P,所以PBFT共识算法在视图切换中的通信次数为

其中:P的取值为0~1,步长为0.05;N的取值为5~30,步长为1。将这些参数值代入公式可得如图5所示的可视化图形。由图5可以得出,在给定范围内,P与N无论如何变化,Q值始终小于1,即GR-PBFT共识算法的通信次数始终小于PBFT共识算法。此外由于GR-PBFT共识算法引入了信誉奖惩机制,同时主节点的选取更加安全、可靠,所以视图切换的概率大幅度下降。因此在实际应用中,GR-PBFT共识算法的表现更佳。

3.2.3 吞吐量分析

吞吐量是指在单位时间内完成交易的数量,一般用TPS(transaction per second)表示,是共识算法性能对比中一个重要指标,TPS可由下式表示:

其中:Δt为出块时间;transaction为出块时间内处理的交易量。

实验中设置节点数量由5个增加到40个,步长为5,为不失一般性,在不同节点数下重复进行20次测试,每次测试设置事件量为1 200,最终取20次重復测试的平均值作为每次不同节点数下吞吐量的值。PBFT、NAC-PBFT、RN-VPBFT、RPBFT与GR-PBFT共识算法的吞吐量对比结果如图6所示。

由实验结果可知,节点数量不断增加的同时,五种算法的TPS都呈下降趋势,但GR-PBFT共识算法的TPS整体大于PBFT、NAC-PBFT、RN-VPBFT和RPBFT共识算法。PBFT共识算法所有节点均参与共识,NAC-PBFT共识算法主要通过选取代理人来减少参与共识的节点数量,RN-VPBF和RPBFT共识算法主要简化一致性协议执行流程,但GR-PBFT共识算法主要减少一半的节点参与共识,并优化了一致性协议执行流程。因此,GR-PBFT共识算法比PBFT、NAC-PBFT、RN-VPBFT和RPBFT共识算法有更好的吞吐性能。

3.2.4 安全性分析

PBFT共识算法对拜占庭节点没有惩罚措施且拜占庭节点会始终存在于系统中,导致系统安全性降低;GR-PBFT共识算法在系统中设置了信誉奖惩机制,参与共识的节点一旦成为拜占庭节点,会直接被扣除信誉分。一旦Rmin≤Rij

由实验结果可知,随着共识次数的增加,PBFT共识算法中拜占庭节点个数不变,GR-PBFT共识算法中拜占庭节点个数呈现下降趋势,直至拜占庭节点个数为0,因此GR-PBFT共识算法提升了系统的安全性。

4 结束语

本文针对PBFT共识算法中存在通信开销大、缺少奖惩机制、节点缺乏积极性的问题,提出了GR-PBFT共识算法。GR-PBFT共识算法引入信誉奖惩机制、修改节点选取规则及优化一致性协议执行流程。首先引入信誉奖惩机制最大程度地保证系统的安全性;接着修改节点选取规则,解决信誉机制类共识算法产生节点信誉累计问题,降低系统中心化程度,提升了节点成为共识节点的积极性,也保证了主节点的可靠性,降低了视图切换频率;最后优化PBFT共识算法一致性协议的准备、确认和响应阶段,降低了通信复杂度,提高了共识效率。实验表明,相较于PBFT共识算法,GR-PBFT共识算法可以减少共识时延、降低通信开销、增加系统吞吐量、提升系统安全性。但GR-PBFT共识算法仍有不足之处,后续工作将进一步降低共识过程的通信复杂度和拜占庭节点出现的频率。

参考文献:

[1]Nakamoto S. Bitcoin:a peer-to-peer electronic cash system[EB/OL].(2018-04-10).https://bitcoin.org/bitcoin.pdf.

[2]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494.(Yuan Yong, Wang Feiyue. Blockchain:the state of the art and future trends[J].Acta Automatica Sinica,2016,42(4):481-494.)

[3]Mechkaroska D, Popovska-Mitrovikj A, Mitrevska S, et al. Overview of blockchain and cloud computing services integration[C]//Proc of the 30th Telecommunications Forum.Piscataway,NJ:IEEE Press,2022:1-4.

[4]Sunny F A, Hajek P, Munk M, et al. A systematic review of blockchain applications[J].IEEE Access,2022,10:59155-59177.

[5]夏清,窦文生,郭凯文,等.区块链共识协议综述[J].软件学报,2021,32(2):277-299.(Xia Qing, Dou Wensheng, Guo Kaiwen, et al. Survey on blockchain consensus protocol[J].Journal of Software,2021,32(2):277-299.)

[6]何泾沙,张琨,薛瑞昕.基于贡献值和难度值的高可靠性区块链共识机制[J].计算机学报,2021,44(1):162-176.(He Jingsha, Zhang Kun, Xue Ruixin, et al. High reliability blockchain consensus mechanism based on contribution value and difficulty value[J].Chinese Journal of Computers,2021,44(1):162-176.)

[7]Gervais A, Karame G O, Wyust K, et al. On the security and performance of proof of work blockchains[C]//Proc of ACM SIGSAC Conference on Computer and Communications Security.New York:ACM Press,2016:3-16.

[8]Proof of stake[EB/OL].(2022-09-26).https://en.bitcoin.it/wiki/Proof_of_Stake.

[9]Delegated proof of stake (DPOS)[EB/OL].(2019-11-10).https://how.bitshares.works/en/master/technology/dpos.html.

[10]Ongaro D, Ousterhout J. In search of an understandable consensus algorithm[C]//Proc of USENIX Annual Technical Conference.Berkeley,CA:USENIX Association,2014:305-319.

[11]Castro M, Liskov B. Practical Byzantine fault tolerance and proactive recovery[J].ACM Trans on Computer Systems,2002,20(4):398-461.

[12]陳梦蓉,林英,兰微,等.基于“奖励制度”的DPoS共识机制改进[J].计算机科学,2020,47(2):269-275.(Chen Mengrong, Lin Ying, Lan Wei, et al. Improvement of DPoS consensus mechanism based on positive incentive[J].Computer Science,2020,47(2):269-275.)

[13]Crain T, Gramoli V, Larrea M, et al. DBFT: efficient leaderless Byzantine consensus and its application to blockchains[C]//Proc of the 17th International Symposium on Network Computing and Applications.Piscataway,NJ:IEEE Press,2018:1-8.

[14]Gao Sheng, Yu Tianyu, Zhu Jianming, et al. T-PBFT:an EigenTrust-based practical Byzantine fault tolerance consensus algorithm[J].China Communications,2019,16(12):111-123.

[15]韩镇阳,宫宁生,任珈民.一种区块链实用拜占庭容错算法的改进[J].计算机应用与软件,2020,37(2):226-233,294.(Han Zhenyang, Gong Ningsheng, Ren Jiamin. An improved blockchain practical Byzantine fault tolerance algorithm[J].Computer Applications and Software,2020,37(2):226-233,294.)

[16]李淑芝,黄磊,邓小鸿,等.基于信用的联盟链共识算法[J].计算机应用研究,2021,38(8):2284-2287.(Li Shuzhi, Huang Lei, Deng Xiaohong, et al. Consortium chain consensus algorithm based on credit[J].Application Research of Computers,2021,38(8):2284-2287.)

[17]唐宏,刘双,酒英豪,等.实用拜占庭容错算法的改进研究[J].计算机工程与应用,2022,58(9):144-150.(Tang Hong, Liu Shuang, Jiu Yinghao, et al. Improved study of practical Byzantine fault-tolerant algorithm[J].Computer Engineering and Applications,2022,58(9):144-150.)

[18]高娜,周创明,杨春晓,等.基于网络自聚类的PBFT算法改进[J].计算机应用研究,2021,38(11):3236-3242.(Gao Na, Zhou Chuangming, Yang Chunxiao, et al. Improved PBFT algorithm based on network self clustering[J].Application Research of Compu-ters,2021,38(11):3236-3242.)

[19]Zhao Liang, Li Bin, Zhou Qinglei, et al. Improvement and optimization of consensus algorithm based on PBFT[C]//Proc of the 4th International Conference on Communications, Information System and Computer Engineering.Piscataway,NJ:IEEE Press,2022:350-356.

[20]杨昕宇,彭长根,杨辉,等.基于演化博弈的理性拜占庭容错共识算法[J].计算机科学,2022,49(3):360-370.(Yang Xinyu, Peng Changgen, Yang Hui, et al. Rational PBFT consensus algorithm with evolutionary game[J].Computer Science,2022,49(3):360-370.)

[21]方燚飚,周创明,李松,等.联盟链中实用拜占庭容错算法的改进[J].计算机工程与应用,2022,58(3):135-142.(Fang Yibiao, Zhou Chuangming, Li Song, et al. Improvement of practical Byzantine fault algorithm in alliance blockchain[J].Computer Enginee-ring and Applications,2022,58(3):135-142.)

[22]陈润宇,王伦文,朱然刚.基于信誉值投票与随机数选举的PBFT共识算法[J].计算机工程,2022,48(6):42-49,56.(Chen Runyu, Wang Lunwen, Zhu Rangang. PBFT consensus algorithm based on reputation value voting and random number election[J].Computer Engineering,2022,48(6):42-49,56.)

[23]王森,李志淮,賈志鹏.主节点随机选取的改进PBFT共识算法[J].计算机应用与软件,2022,39(10):299-306.(Wang Sen, Li Zhihuai, Jia Zhipeng. Improved PBFT consensus algorithm with random selection of master nodes[J].Computer Applications and Software,2022,39(10):299-306.)

收稿日期:2023-03-14;修回日期:2023-05-10

基金项目:国家自然科学基金资助项目(51777058);国网上海市电力公司资助项目(52090D21N002)

作者简介:陈苏明(1999-),男,江苏宿迁人,硕士研究生,主要研究方向为区块链、密码学;王冰(1975-),男(通信作者),江苏扬州人,教授,博导,博士,主要研究方向为电力市场、区块链及其应用、分布式控制(icekingking@hhu.edu.cn);陈玉全(1992-),男,安徽天长人,讲师,硕导,博士,主要研究方向为分布式控制与优化算法、区块链应用;邢涛(1998-),男,安徽马鞍山人,硕士研究生,主要研究方向为区块链及其应用;马宇辉(1999-),男,江苏扬州人,硕士研究生,主要研究方向为电力交易;赵建立(1983-),男,上海人,高级工程师,主要研究方向为区块链与智能电网需求侧管理.

猜你喜欢
区块链
区块链对互联网金融发展的重塑与挑战分析
基于区块链技术的海上散装液体化学品运输安全监管方法
保险企业的区块链技术应用方向选择研究
区块链技术在金融领域的应用与前景研究
区块链技术的应用价值分析
“区块链”发展现状评述及展望
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
智能合约与金融合约
用“区块链”助推中企走出去