基于信誉值投票与随机数选举的PBFT 共识算法

2022-06-16 05:24陈润宇王伦文朱然刚
计算机工程 2022年6期
关键词:信誉复杂度视图

陈润宇,王伦文,朱然刚

(国防科技大学电子对抗学院,合肥 230037)

0 概述

区块链作为数字货币比特币[1]的底层技术,随着比特币的发展而备受关注。区块链本质上是一种由哈希算法、数字签名、P2P 网络、共识算法、智能合约等技术构成的分布式基础架构与计算范式[2],具有透明可靠、防篡改可追溯、隐私安全保障、系统高可靠等特性[3-4],广泛应用于金融、交通、隐私保护等领域[5-6]。共识机制[7]是区块链的必要元素和核心部分,是确保区块链系统高效合作的关键。共识机制是指分布式系统中全部节点(或大部分节点)就某个数据的真实性或者某条交易的价值达成一致并据此更新各节点记录的机制。根据不同场景和应用需求,需要设计不同的共识机制。典型的区块链共识机制大致可分为证明类共识机制(如PoW[8]、PoS、DPoS 等)和拜占庭协议机制[9-10],其中实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)[11]算法因能够解决拜占庭问题而得到广泛应用。PBFT 基于状态机复制原理,通过一致性、检查点、视图转换3 个协议,当系统中约有1/3 的节点为恶意节点时仍能确保系统正常运行,同时大幅降低了共识过程的通信复杂度,但PBFT 存在主节点选取随意[12]、通信复杂度高、共识效率低[13]等问题[14]。

针对PBFT 算法主节点选取随意导致恶意节点具有较大概率成为主节点的问题:WANG等[15]提出CPBFT算法,该算法根据信用等级划分节点,并将相应的信用系数分配给不同级别的节点;ZHU 等[16]提出CDBFT 算法,该算法建立一种特权分类机制,有效地防止预期节点被选中;ZHANG 等[17]提出实用的基于量化角色的拜占庭共识算法(QPBFT),该算法基于层次分析法(Analytic Hierarchy Process,AHP)对节点的可靠性属性进行量化,通过引入量化角色,使可靠性评价得分较高的节点更有可能参与区块生产;ZHENG 等[18]将C4.5决策树与PBFT 结合,通过计算信息熵进行节点分类的同时引入投票机制确定领导节点;GAO 等[19]将EigenTrust模型与共识算法结合,用节点间的交易来评估节点的信任程度,从而选择网络中质量较高的节点来构建共识层;TONG 等[20]将PeerTrust 模型与共识结合,取代了原来所有节点都参与的情况,从而使分布式网络的规模可任意扩展;WANG 等[21]注意到现有基于信誉投票改进PBFT 的共识算法普遍存在马太效应造成信用价值积累问题,分别采用不同的信任模型并使用不同的积分函数来缓解上述问题,但由于部分参数设置不够合理,信用价值累积的问题并没有得到根本的解决。针对通信复杂度较高的问题,现有研究方法主要分成两类。一类是基于上述方法,先将节点分类,再通过使更多的诚实节点参与共识过程,减少共识过程的通信复杂度。另一类是对PBFT 一致性协议[22-23]本身进行改进。

但上述算法仍存在两方面的问题。一是系统中所有节点初始信誉值均由本地计算产生,缺少验证手段,可信程度难以保证,可能会出现部分节点为了获取利益而恶意篡改自身初始信誉值,进而发动对系统的恶意攻击的情况。二是过于复杂的节点分类以及选举机制造成了额外的通信开销。现有多数算法都通过设置信誉模型、奖惩函数以及投票机制减少共识过程中的恶意节点数量,降低共识过程的通信复杂度,但忽视了设置各种模型函数本身给系统带来了额外的通信复杂度。从整体上看,这些算法并没有真正降低系统的通信复杂度。

本文提出一种基于信誉值投票与随机数选举的RN-VPBFT 共识算法。增设初始记账节点,降低选举过程的通信复杂度以及提升选举公平性。将所用时间证明(Proof of Elapsed Time,PoET)[24]的领导者选举思想与现有PBFT 共识算法相结合,通过在所有共识节点内部随机选举的方式避免主节点总由某些节点担任的现象,降低系统的中心化趋势。基于贪心算法的概念,由不参与共识的节点担任监督节点。简化PBFT 的共识流程,以降低共识过程的通信复杂度,提高共识效率。

1 实用拜占庭容错算法

PBFT 算法是一种保证分布式系统和拜占庭故障节点一致性的通用解决方案,主要解决系统中恶意节点向其他节点发送错误信息扰乱系统正常运行的问题。PBFT 算法在保证系统安全性和可靠性的前提下提供了(n-1)/3 的容错性,即允许系统至多存在1/3 的失效节点。

PBFT 要求节点共同维护一个状态且所有节点保持一致,因此需要运行一致性、视图转换、检查点等3 类基本协议。一致性协议通过三阶段共识保证所有节点数据存储的一致性,若在一致性协议中主节点被检测出故障或作恶,则触发视图转换协议以更换出现故障的主节点。检查点协议是一个周期性过程,系统会设置一个检查的时间点,实现定期处理日志、节约资源并及时纠正节点状态的功能。

1.1 PBFT 算法的一致性协议

一致性协议又称三阶段协议,是PBFT算法的核心,主要包括预准备、准备、提交3个阶段。PBFT算法共识过程如图1所示,其中,Client表示客户端,Primary node表示主节点,Replica 1,2 表示备份节点,Replica 3 被认为是错误节点。

图1 PBFT 算法共识过程Fig.1 Consensus process of PBFT algorithm

PBFT 算法共识的简要流程如下:

1)消息请求。客户端向主节点发送请求,如式(1)所示:

其中:request 为消息名称;o为具体操作;t为时间戳;c为客户端标识。

2)预准备阶段。主节点将客户端的消息通过式(2)发送给其余节点:

其中:V为视图编号;n为节点编号;d为信息摘要。若消息通过验证,则进入准备阶段。

3)准备阶段。备份节点之间发送如式(3)所示的消息:

当节点接收到超过2f+1 个不同节点的pre-prepare和prepare 信息并通过验证后进入确认阶段。

4)确认阶段。节点之间发送如式(4)所示的确认消息:

其中:S(m)为节点签名集合。

5)回复阶段。当节点收到2f+1 个不同节点的确认消息后向客户端发送回复消息,如式(5)所示:

当客户端收到f+1 个消息时代表达成共识。

1.2 PBFT 算法的视图转换协议

若某个备份节点检测出主节点出现问题时,触发视图转换协议,将视图编号V变更为V+1,同时不再接受除检查点、视图转换和新视图外的其他消息请求。PBFT 算法视图转换过程如图2 所示,其中,Replica 0 表示出现问题的主节点,Replica 1 表示新的主节点。

图2 PBFT 算法视图转换过程Fig.2 View change process of PBFT algorithm

PBFT 算法视图转换的简要流程如下:

1)视图转换阶段。当系统中任一备份节点发现主节点出现问题时,将“视图转换”验证广播给所有节点。

2)确认视图转换。当一个节点收到2f+1 个确认信息后(包括自己的信息),将“确认视图转换”信息发送给视图V+1 的主节点。新的主节点在接收到“视图转换”以及“确认视图转换”信息后进入新的视图。

3)新视图阶段。新节点确认系统状态后根据本地块链数据执行一致性协议。

PBFT 算法虽然在一定程度上改善了传统共识算法通信复杂度高的问题,但由于恶意节点的存在,使得整个共识过程中节点间必须通过两两通信以确保消息的可靠。随着系统规模的不断扩大,PBFT 通信复杂度增长迅速,因此本文针对该问题对算法进行改进,进一步降低算法复杂度。

2 RN-VPBFT 共识算法

本文提出一种基于信誉值投票和随机数选举的RN-VPBFT 共识算法,通过建立节点信誉模型、增设监督节点以及改进主节点选取方式,保证系统安全,降低共识过程的通信复杂度和系统的集中化趋势,提高共识效率。

2.1 RN-VPBFT 共识算法流程

RN-VPBFT 共识算法流程如图3 所示,执行过程以轮为单位,每一轮执行过程分为准备、共识、结束3 个阶段。在第一轮共识过程开始前,需要通过投票确定系统中所有节点的初始信誉值。

图3 RN-VPBFT 算法流程Fig.3 Procedure of RN-VPBFT algorithm

2.2 初始信誉值确定

所有新加入系统的节点需要通过相互投票的方式确定初始信誉值。现有算法多数通过节点间的相互通信确定得票数,并在本地通过计算得到自身的初始信誉值,可能会出现部分节点恶意篡改自身初始信誉值的现象。设置初始记账节点能够将所有投票记录集中于一个节点,这样既避免了节点的两两通信,又确保了投票结果的真实性。初始信誉值确定的具体步骤如下:

1)确定初始记账节点。所有节点首先按照进入系统的先后顺序分配各自的节点编号1,2,…,N,然后系统随机产生1 到N的一个随机数,节点编号与该随机数相同的节点即为初始记账节点。

2)投票。每个节点对系统中所有其他节点投赞成或反对票,并将投票结果复制两份,一份写入本地日志,另一份发送给记账节点,由记账节点计算初始信誉值。

3)确定初始信誉值。初始记账节点首先将所有节点的投票结果进行汇总并统计各个节点获得的赞成票Si(i=1,2,…,N)与反对票Ai,然后根据式(6)计算得到每个节点的初始信誉值,按信誉值的降序排序T1>T2>…>Tn。最后将各个节点的初始信誉值(Ti)及其对应排名发送给相应节点。

所有节点在接收到初始记账节点发送的信息后均可以向初始记账节点提出质疑,通过访问初始记账节点的本地数据来确认接收信息的真实性。若初始记账节点在接受查询的过程中出现问题,则重新执行上述流程,同时该节点的信誉值清零且被系统记录为恶意节点,并无法参与共识协议,只能被动接收经过共识后的数据;若所有节点的初始信誉值均正确,则担任初始记账节点的节点信誉值将根据自身的初始信誉值的大小获得不同程度的奖励。

2.3 准备阶段

RN-VPBFT 共识算法准备阶段主要完成节点分类以及主节点选举工作,如图4 所示。

图4 RN-VPBFT 算法准备阶段示意图Fig.4 Schematic diagram of the preparation stage of the RN-VPBFT algorithm

2.3.1 节点分类

RN-VPBFT 算法节点模型如图5所示,节点被划分为主节点、共识节点、备份节点和监督节点4 种节点。4 种节点各司其职,相互监督,共同维护系统平衡:

图5 RN-VPBFT 算法节点模型Fig.5 Node model of RN-VPBFT algorithm

1)备份节点。备份节点不参与共识过程,只能根据主节点传递的信息更新本地信息。同时,备份节点能够对监督节点进行监督,并有权弹劾监督节点。所有加入系统的网络节点都是备份节点。

2)共识节点。共识节点负责接收并验证主节点传递的信息,保证系统一致性。通过对系统中所有N个节点信誉值进行比较,选取信誉值较高的前N1个节点为共识节点。

3)主节点。主节点负责接收用户需求、确认提交数据、打包并生成新区块。

4)监督节点。监督节点主要保证系统的安全。有权查询其他所有节点的本地日志,监督整个共识过程,查询备份节点的信息更新情况以及负责每轮共识结束后节点的信誉值更新。

2.3.2 主节点和监督节点选举

PBFT 的主节点选举方式如式(7)所示:

其中:P为主节点。

由于算法中主节点编号与视图编号有很大的相关性,因此能够很容易被系统中的恶意节点预测,进而达到提前攻击的目的,不利于保证系统的安全性。现有PBFT 改进算法多数基于节点的信誉值排序,选取信誉值最高(可信度最高)的节点担任主节点,这样虽然能够在很大程度上保证系统的安全,但每一轮共识结束后,主节点相较于其他节点往往会获得更多的报酬,随着时间累积,主节点往往仅会由某几个节点担任且节点之间的信誉值差值会越来越大,出现系统的集中化趋势。针对该问题,本文基于所用时间证明的领导者选举思想,所有共识节点在信誉值的基础上随机选举主节点。

1)所用时间证明

PoET 概念是由英特尔于2016 年初提出,提供了一个现成的高科技工具来解决随机领导者选举的计算问题,通常用于许可的区块链网络,以决定网络的采矿权或区块获胜者。PoET 基于公平彩票系统的原则,使得网络参与者拥有公平的获胜机会。PoET 算法工作流程如下:区块链网络中每个节点都会生成随机等待时间并在指定的持续时间内进入休眠状态。首先完成指定等待时间(具有最短等待时间)的节点被唤醒并向区块链提交新块,然后向整个对等网络广播必要的信息,最后重复相同过程以发现下一个新块。PoET 整个共识过程需要具备2 个重要因素:(1)参与节点真正地选择了随机的时间,而不是参与者为了获胜而故意选择的较短持续时间;(2)获胜者确实已经完成了指定等待时间。由于实际的区块链系统中所有的节点并不都是可信的,因此综合考虑上述2 个因素以及在等待时间内节点处于休眠状态而造成的时间损耗问题,提出改进的所用时间证明。

2)改进的所用时间证明

利用监督节点的职能,在所有共识节点内部提出一种基于随机数的主节点选取方式,通过节点自身的日志记录以及监督节点对其他节点日志的访问,确保了当选主节点的公平性和真实性,避免了时间浪费的同时在一定程度上解决了PoET 存在的问题。

依据式(8)和式(9)选举产生主节点(L)和监督节点(Su):

改进的所用时间证明算法的工作流程如下:

(1)在所有共识节点内部生成同一范围内的RN(i),并将写入本地日志。

(2)共识节点广播给监督节点,监督节点通过访问共识节点的日志以验证收到的随机数无误后广播。当存在多个节点同时拥有最小随机数时,广播

(3)若监督节点发现min(RN′(i))≠min(RN(i)),则监督节点会向整个系统广播该共识节点i,该节点将会立刻被驱逐出共识节点,并被系统记录为恶意节点。

(4)由于监督节点的高风险性,因此所有共识节点均可以在共识过程开始之前对结果提出质疑,通过节点间的相互监督,保证系统安全。

2.4 共识阶段

RN-VPBFT 算法共识阶段主要执行一致性协议,如图6 所示。在传统的PBFT 算法共识过程中:当系统中存在n个节点时,达成共识所需的通信次数大致等于2n2;当系统节点数不断增加时,达成共识所需要的通信次数将迅速增多,这不仅会带来传递消息的爆炸性增长,还会大大延迟达成共识所需要的时间,进而成为系统性能的瓶颈。

图6 RN-VPBFT 算法共识阶段示意图Fig.6 Schematic diagram of the consensus stage of the RN-VPBFT algorithm

为降低通信复杂度,本文提出的共识机制首先将复杂的消息验证工作交给监督节点完成。由于事先已按照信誉值对节点排序和分类,因此一致性协议的过程中参与共识的节点大概率为诚实节点。同时,在共识过程中,认为每个节点都能够做出自己的判断,主节点仅负责汇总所有的判断,然后做出最终决策。因此,可以用半数以上投票确认的方式验证数据信息的真实性,进而将原有的通信复杂度2n2降至2n。基于简化的一致性协议,RN-VPBFT 算法共识过程如图7 所示,其中,Client 表示客户端,Superior node 表示监督节点,Primary node 表示主节点,Replica 1,2,3 表示共识节点,Replica 4 表示备份节点。

图7 RN-VPBFT 算法共识过程Fig.7 Consensus process of RN-VPBFT algorithm

主节点在对所有判断进行汇总并采用多数决定原则做出判断后,需要向所有备份节点广播每个节点对该信息的判断情况以及最终的决策情况。RN-VPBFT算法共识过程的简要流程如下:

1)当某一节点需要对数据库进行更新操作时,首先向主节点提出请求,主节点收到请求后可将待更新的数据通过式(10)发送给所有的共识节点进行验证:

2)每个共识节点收到主节点发送的消息后,对消息的真实性做出判断,并将自身对消息的判断通过式(11)发送回主节点。

3)当主节点收到至少2f+1 个来自不同节点的信息时,对该数据信息进行最终判断,并将最终判断结果返回给系统中的所有节点。

需要注意的是,当主节点中存储的已验证的数据信息达到一定数量时,主节点必须将这些信息打包并广播给系统中的所有节点。

在整个共识过程中,节点间传递的信息量较传统PBFT 算法减少了视图编号信息以及信息摘要,取而代之的是节点对获得消息做出判断。

2.5 结束阶段

RN-VPBFT 结束阶段主要完成数据打包、节点信誉值更新、恶意节点记录等工作,如图8 所示。信誉值更新的伪代码如算法1 所示。

图8 RN-VPBFT 算法结束阶段示意图Fig.8 Schematic diagram of the end stage of the RN-VPBFT algorithm

定义1共识轮数R指在一个共识阶段中达成共识次数Rs与未达成共识次数Rf的总和。根据主节点选举规则,为确保理论上每个共识阶段中所有共识节点都有机会担任主节点,R和N1的关系一般满足R=2N1。

定义2每R个共识轮数称为一个共识阶段St。当系统进入一个新的共识阶段后,需要对系统内部节点的信誉值进行更新,然后重新确定各节点的角色。

在每个共识阶段结束后,监督节点根据系统中所有节点在当前共识阶段的表现并综合节点在前一轮共识阶段的表现,按照式(12)对每个节点的信誉值进行更新,并通过式(13)发送给各个节点。各个节点收到监督节点的消息后进行验证,待验证结束后监督节点根据其他节点的反馈,再对自身的信誉值进行更新。待所有节点完成信誉值更新后,系统会记录当前阶段出现的恶意节点编号,所有被记录的节点在之后的所有过程中只能充当备份节点,根据主节点发送的消息更新本地信息。

其中:α、β为加权系数,满足α+β=1;T1表示信誉值更新规则;表示更新后的节点信誉值;behaviour 表示节点在当前共识阶段中的表现;role 表示节点在上一阶段系统中担任的角色。

对于不同的节点类型,α、β、T1的取值不同,同时考虑到节点更新后的信誉值在很大程度上应由节点在本轮共识阶段的表现决定,因此α≤β。根据上文对每个节点在系统中的职能,将各类节点按照在系统中的作用做如下排序:监督节点>主节点>共识节点>备份节点,并根据节点的作用大小,设置不同参数α、β、T1,如表1 所示。

表1 信誉值更新参数Table 1 Reputation value update parameters

为了贴近实际,假设备份节点能够在接收到主节点发送的信息后及时对本地数据进行更新而不会恶意篡改数据,不存在恶意行为。此外,所有诚实节点的信誉值范围为0~1,恶意节点的信誉值不超过0.5。设置节点信誉值动态更新机制既可以有效减少恶意节点对系统的不利影响,鼓励节点遵守系统规则,又可以保证节点的积极性,防止高信任度节点在共识过程中出现的恶意行为,激励节点在共识过程中做出诚实行为。与现有多数改进算法中设置的奖惩函数不同,本文设计的奖惩函数在此基础上还能很好地区分恶意节点与诚实节点,并且保证所有诚实节点的信誉值相近,降低了系统集中化的可能性。

3 实验与结果分析

实验通过对比多种共识算法在容错性、节点信誉值、通信复杂度以及系统集中化趋势4 个方面的表现,测试RN-VPBFT 共识算法的性能。实验环境为Windows 10 操作系统,系统内存为16 GB,CPU 为Intel Core i7 处理器。实验基于Python 对RNVPBFT、PBFT、CPBFT、RC-VPBFT 在内的多种共识算法进行模拟仿真,开发语言为Python 3.7。

3.1 容错性分析

假定节点总数是N,故障或者恶意节点数为f,剩余正确节点数为N-f,RN-VPBFT 和传统PBFT 共识算法本质上相同,只要收到N-f个消息且N-f>f就能做出决定,但N-f个消息中可能存在f个恶意节点冒充的消息(或因网络延迟导致f个恶意节点的消息先被收到),则正确消息数为N-f-f。为达到多数一致,正确消息必须占多数,也就是N-f-f>f,因此N至少等于3f+1。

3.2 节点信誉值分析

利用Python 搭建小型区块链系统,系统共设30 个节点,包含9 个拜占庭节点。每次实验经过4 个共识阶段,每个阶段包含40 轮共识过程,分别对每个阶段结束后各节点的信誉值进行记录,如图9 所示。每个共识阶段结束后,所有诚实节点之间信誉值的最大差值如表2 所示。

图9 各共识阶段不同节点的信誉值分布Fig.9 Reputation value distribution of different nodes in each consensus stage

表2 共识阶段结束后诚实节点之间信誉值的最大差值Table 2 Maximum difference in reputation value between honest nodes after the consensus phase ends

结合图9 和表2 可分析得出:

1)系统中恶意节点的编号分别为7、10、12、16、17、20、22、26、29。

2)在共识阶段2 结束后,系统中的诚实节点与恶意节点已基本能够通过信誉值的大小进行区分,进而保证了整个系统后续运行的安全性与稳定性。

3)随着共识过程的进行,各阶段在诚实节点处的曲折程度趋向平稳,诚实节点的信誉值差距逐渐减小。

4)节点编号为7、10、17、26 的错误节点在共识阶段1 后信誉值均超过了阈值0.5,主要原因是这4 个节点相较于其他错误节点初始信誉值更低,在共识阶段1中没有能够获得担任主节点以及监督节点的权利,因此未被系统发现,但在共识阶段1 后,其担任了对应角色,最终被系统记录。各共识阶段成功达成共识的轮数如表3 所示。由表3 中数据可知,共识阶段1 的共识成功率较低,这是因为节点的初始信誉值主要依靠节点之间投票决定,具有一定的偶然性,可能会出现部分恶意节点获得较高的初始信誉度的情况,但随着共识过程的不断深入,系统将所有恶意节点一一记录,共识成功率达到100%。

表3 各共识阶段成功达成共识的轮数Table 3 The number of rounds that successful reached consensus at each consensus stage

3.3 通信复杂度分析

在PBFT 算法中,广播消息需要进行预准备、准备和确认3 个阶段的通信,对应的通信次数分别为N、N2和N2。在计算其与用户端的通信次数后,PBFT 算法中一个完整的共识过程所需的通信次数如下:

现有研究结果仅比较了传统算法与改进算法在共识过程中的通信复杂度,忽略了节点因分类、投票等过程给系统带来的额外通信复杂度。本文综合考虑了上述因素,将RN-VPBFT 与PBFT、CPBFT、RC-VPBFT 算法的通信复杂度进行分析比较,结果如图10 所示。

图10 不同算法的通信复杂度比较Fig.10 Comparison of communication complexity among different algorithms

由图10 可以看出:CPBFT 算法虽然在共识阶段将通信复杂度降至N2-N-1,但综合考虑在共识阶段之前的通信次数,总的通信次数为T=N2+N-1+N2-N-2=2N2-3,相较于PBFT算法提升较小;RC-VPBFT算法虽然在整个共识过程中需要的通信次数仅为4N+1,但是在此之前需要进行聚类工作,这也在一定程度上增加了通信复杂度;RN-VPBFT 算法在假设所有过程中的所有节点都进行了相关数据验证的情况下,除了初始值确定需要额外的3N次通信外,每轮共识主要包括领导者选举、共识、信誉值更新3 个阶段,总的通信次数为T=2N1+2N1+N+2N≤7N,因此整个过程的通信复杂度由O(N2)降至O(N)。

3.4 系统集中化趋势分析

区块链的核心优势是去中心化,因此需要考虑共识算法对系统去中心化程度的影响。通过对同一区块链系统分别使用RN-VPBFT 与VPBFT[25]算法,统计在使用不同共识算法后系统中各个节点担任主节点的次数并进行比较,结果如图11、图12 所示。由图11、图12 可以看出:VPBFT 算法主要通过投票选出特定节点作为主节点,其他节点被选为主节点的机会很小,使得整个系统倾向于成为一个集中式系统;RN-VPBFT 算法允许更多节点参与区块生产活动,所有满足要求的节点都有机会被选举成为主节点,能够更好地维护系统的去中心化特性。

图11 VPBFT 算法中每个节点担任主节点的次数Fig.11 The number of times each node becomes the primary node in the VPBFT algorithm

图12 RN-VPBFT 算法中每个节点担任主节点的次数Fig.12 The number of times each node becomes the primary node in the RN-VPBFT algorithm

4 结束语

针对传统PBFT 共识算法容易出现集中化趋势、通信复杂度高等问题,本文提出一种基于随机数选举与投票机制的RN-VPBFT 共识算法。引入兼具高风险和高收益的监督节点,避免了节点间因频繁通信带来的高通信复杂度。利用随机参数确保了选举的公平性,降低了系统的集中化趋势。此外,依据节点不同身份设置的信誉值更新策略不仅能够有效区分系统中的诚实节点与恶意节点,而且能够在一定程度上简化一致性协议并保证其安全与稳定运行。实验结果表明,RN-VPBFT 算法相比传统PBFT 共识算法具有更好的去中心化特性,并且有效降低了通信复杂度。后续将在不改变算法效率及通信复杂度的基础上增强拜占庭系统节点的容错性,并且分析与研究系统节点数量的实时变化对共识算法的影响,进一步提升系统容错性及动态性。

猜你喜欢
信誉复杂度视图
基于单片机MCU的IPMI健康管理系统设计与实现
信誉如“金”
非线性电动力学黑洞的复杂度
一种低复杂度的惯性/GNSS矢量深组合方法
视图
求图上广探树的时间复杂度
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
지수형:신뢰는 배달에 경쟁력을 실어준다池水炯:信誉,让外卖更具竞争力
Django 框架中通用类视图的用法