收藏 分销(赏)

一种面向联盟链优化的PBFT共识算法.pdf

上传人:自信****多点 文档编号:756163 上传时间:2024-03-05 格式:PDF 页数:13 大小:811.91KB
下载 相关 举报
一种面向联盟链优化的PBFT共识算法.pdf_第1页
第1页 / 共13页
一种面向联盟链优化的PBFT共识算法.pdf_第2页
第2页 / 共13页
一种面向联盟链优化的PBFT共识算法.pdf_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第41卷 第4期2023年7月应用科学学报JOURNAL OF APPLIED SCIENCESElectronics and Information EngineeringVol.41 No.4Jul.2023DOI:10.3969/j.issn.0255-8297.2023.04.003一种面向联盟链优化的 PBFT 共识算法王微渊,毕远伟,陈霄汉,李传彪烟台大学 计算机与控制工程学院,山东 烟台 264000摘摘摘要要要:针对在联盟链中实用拜占庭容错(practical Byzantine fault tolerance,PBFT)算法所存在的通信开销过大、节点信誉度无法保证、算法无法动

2、态地增删节点等问题,提出了基于决策树改进的 PBFT(decision tree Byzantine fault tolerance,DTBFT)算法。首先,针对联盟链的应用场景,简化了 PBFT 算法的一致性协议,降低了通信开销;其次,考虑到系统安全性的问题,引入信誉积分机制,增加决策树分类算法,在每轮共识完成后,统计节点行为,对节点分类,使得系统可以动态地剔除拜占庭节点,提高系统的安全性;最后,为了防止拜占庭节点当选主节点,视图频繁切换,导致系统运行效率低的问题,改进了视图切换协议,将主节点的选取范围缩小到节点信誉好的高级节点,保证主节点的可信度。实验表明,DTBFT 算法在吞吐量、算法安

3、全性等方面较 PBFT 算法具有一定的提升。关键词:区块链;联盟链;共识算法;实用拜占庭容错;决策树分类中图分类号:TP309文章编号:0255-8297(2023)04-0577-13A PBFT Consensus Algorithm for ConsortiumChain OptimizationWANG Weiyuan,BI Yuanwei,CHEN Xiaohan,LI ChuanbiaoCollege of Computer and Control Engineering,Yantai University,Yantai 264000,Shandong,ChinaAbstract:

4、This paper proposes a decision tree Byzantine fault tolerance(DTBFT)algo-rithm to address the problems of communication overhead,unguaranteed node reputation,and inability to dynamically add or delete nodes in the PBFT algorithm for consortiumchains.Firstly,according to the application scenario of t

5、he alliance chain,the consensusprotocol of the PBFT algorithm is simplified,and the communication overhead is reduced.Secondly,a reputation score mechanism and a decision tree classification algorithm are in-troduced to improve security of the system.Finally,the selection range of master nodes isnar

6、rowed to high-level nodes with good node reputation to prevent frequent view switches.Experiments show that the DTBFT algorithm enhances throughput and algorithm securitycompared with PBFT.收稿日期:2022-10-26基金项目:国家自然科学基金(No.61801414)资助通信作者:毕远伟,副教授,研究方向为计算机视觉。E-mail:578应用科学学报第41卷Keywords:blockchain,alli

7、ance chain,consensus algorithm,practical Byzantine fault tol-erance(PBFT),decision tree classification2008 年,笔名为“中本聪”的研究者发表了 Bitcoin:A Peer-to-Peer Electronic CashSystem1,这被认为是比特币奠基性论文。比特币系统于 2009 年正式发布之后,作为比特币交易核心的区块链技术也逐步走进大众的视野。区块链是由共识算法、分布式系统、密码学、P2P 网络等多种技术结合的产物。区块链技术拥有去中心化、数据安全、数据不可篡改等特点2,在数字货

8、币、数据存储、数据鉴定和金融交易等领域都有很好的应用前景。但目前区块链系统存在着资源消耗过大以及交易时延较低等问题,限制了区块链技术的发展。根据网络范围,区块链可以分为公有链、私有链、联盟链2。公有就是完全对外开放,任何人都可以使用,没有权限的限定,也不需要身份认证之类,不但可以任意参与使用,而且发生的所有数据都可以查看,完全公开透明。私有链是与公有链相对的一个概念,所谓私有就是指不对外开放,仅仅在组织内部使用的系统。联盟链的网络范围介于公有链和私有链之间,通常是使用在多个成员角色的环境下。与私有链一样,联盟链系统一般也是具有身份认证和权限设置的,而且节点的数量往往是确定的。由于联盟链对于用户

9、隐私的保护和系统高安全性,在企业或者机构之间的事务处理、公共业务、政府事务之中被逐渐采用。常见的联盟链有Ripple3、Hyperledger Fabric4、Stellar5。共识算法是区块链系统中的核心机制,是解决系统中各分布式节点数据一致性问题的关键,直接影响着区块链系统的交易处理能力、系统可扩展性和数据安全性6。目前实用拜占庭容错(practical Byzantine fault tolerance,PBFT)算法7在联盟链得到了广泛的应用,但是 PBFT 算法本身存在通信开销过大、节点可信度不高、无法动态地删除节点等缺陷。近几年针对 PBFT 算法的改进也层出不穷。文献 8 提出了

10、 DS-PBFT 运用 Grouping 算法对节点进行分组,同时结合 Speculation 技术,降低节点间通信的时间复杂度,从而使得共识时延得以降低。文献 9 提出的 IPBFT 算法通过投票选举出主节点,增设候补集合使系统能够动态地增删节点,优化了视图切换协议降低了系统的通信开销。文献 10 提出了 TMBFT 算法,该算法通过提出一种基于信任度的邻居匹配模型进行共识节点的选取并将算法的通信复杂度从 O(N2)降到 O(NlbN),提高了算法的可用性和安全性。针对联盟链的应用场景,本文提出了一种基于决策树改进的 PBFT(decision treeByzantine fault tol

11、erance,DTBFT)算法。首先,针对联盟链的应用场景,简化了 PBFT 算法的一致性协议,降低了通信开销;其次,考虑到系统安全性的问题,引入信誉积分机制,增加 C4.5 决策树分类算法11,在每轮共识完成后统计节点行为,对节点分类,使系统可以动态地剔除拜占庭节点,提高系统的安全性;最后,为了防止拜占庭节点当选主节点,导致算法频繁执行视图切换协议,造成系统运行效率低的问题,改进了视图切换协议,将主节点的选取范围缩小到节点信誉好的高级节点,以保证主节点的可信度。1共识算法分析1.1拜占庭将军问题1982 年,文献 12 正式提出拜占庭将军问题。目前拜占庭问题采用的假设条件包括:任意节点都可以

12、是拜占庭节点且拜占庭节点之间可以共谋;拜占庭节点发生错误的方式不一定相同,可以是异构的;节点之间通过异步网络连接,网络中的消息可能丢失、乱序到达、延时到达;节点之间传递的信息,第三方可以知晓但是不能窜改、伪造信息的内容和验证信息的完整性。在早期的一些共识算法(如 Paxos13、VR14等)解决的都是非拜占庭问题,也就是第4期王微渊,等:一种面向联盟链优化的 PBFT 共识算法579可以容忍系统内部节点宕机、消息丢失、延时、乱序等,但是系统内部不允许有恶意节点。而PBFT 算法不但能容忍节点故障,还能容忍在系统内部存在一定的恶意节点。1.2PBFT1999 年提出的 PBFT 算法核心由三个协

13、议组成:检查点协议、一致性协议、视图切换协议。系统正常运行时,执行检查点协议和一致性协议。当主节点发生异常或者系统运行缓慢时,才会启动视图切换协议更换主节点。1.2.1PBFT 一致性协议PBFT 算法的大致流程为:假设系统中存在 3f+1 个节点(f 为系统可容忍的拜占庭节点数目),在预准备阶段,主节点收集交易信息打包区块并向全网广播;在准备阶段,每个节点在收到交易信息后,模拟执行这些交易,计算新区块所需要的 Hash 摘要,并向全网广播准备信息;在确认阶段,如果一个节点收到 2f 个其他节点发来的 Hash 摘要与自己相等,就向全网广播一条确认信息;在回复阶段,如果一个节点收到 2f 条确

14、认信息就可以提交新的区块到本地区块链和状态数据库中,最终达成共识。PBFT 算法一致性协议流程如图 1 所示。?图 1 PBFT 算法一致性协议流程图Figure 1 PBFT algorithm conformance protocol flowchart1.2.2检查点协议一致性协议中系统每执行一个请求,节点都要记录日志(包括请求阶段、预准备阶段、准备阶段、确认阶段发送的消息)。如果系统不及时清理会导致资源被大量占用,影响系统的可用性。除此之外,由于拜占庭节点的存在,一致性协议无法保证每一个节点都执行了相同的请求,所以导致节点的状态可能不一致。例如,一些节点由于网络延时,导致从某个序号开始

15、之后的请求无法执行。因此,周期性检查点协议是为了将系统内部所有节点状态同步,这实际上是一个追块的过程,节点通过区块链定时广播的世界状态或其他节点发送的消息获知本节点的区块落后,然后启动追块流程。PBFT 算法的检查点协议很好地解决了日志过多导致的系统资源浪费、可用性降低和拜占庭节点导致的节点状态不一致等问题。1.2.3视图切换协议区块链中每个节点都要在相同的配置信息下工作,该配置信息被称为视图。在 PBFT 算法中当主节点发生故障后,需要更换主节点,为了保证系统的正常运行,系统通过运行视图切换协议来实现。580应用科学学报第41卷当主节点发生故障后,根据如下公式来选出主节点(V=V+1P=V

16、mod|N|(1)式中:P 为主节点的编号;V 为视图编号;|N|为系统内部节点数目。假如当前视图即第一轮视图编号为 1,参与共识的节点共 100 个,1%100=1,也就是 1 号节点是主节点;如式(1)所示,当需要选举新的主节点,第二轮视图编号自增变为 2,2%100=2,2 号节点成为主节点,所以视图切换协议是一个轮询的过程。视图切换协议的触发条件有两个:1)在固定时间 T1内没有收到主节点广播的预准备消息;2)在固定时间 T2内系统没有生成新的区块,且 T2 T1。当上述条件满足其中一种时系统就会自动触发视图切换协议,具体过程如下:首先,视图编号+1,向所有节点发送 view-chan

17、ge 消息。其次,所有节点当收到的2f+1(f 表示系统内部可容忍的拜占庭节点数目)条 view-change 消息后,向新视图中的主节点发送 view-change-ack 确认消息。新视图中对应的新的主节点将收集来自其他节点的view-change-ack 消息。再次,当收集到 2f 条确认消息后,组装并广播 new-view 消息发送给所有节点,之后根据本地的链接数据执行一致性协议。虽然 PBFT 算法解决了拜占庭问题,但算法本身也存在着不少问题:1)算法通信开销过大,整个共识过程的节点间通信的时间复杂度为 O(N2),其中 N 是网络中节点的总数目;2)PBFT 算法无法动态增删节点,

18、加入新节点时只能重启系统,资源消耗量大;3)由于节点本身的可信度无法保证导致恶意节点可能担任主节点,会造成安全隐患,不断切换视图,降低运行效率。2基于决策树改进的 PBFT 算法为了提供一种运行通信开销低、可以动态增删节点、节点身份可靠的共识算法,本文结合联盟链的特点和决策树算法分类的精确性,提出了一种基于 C4.5 决策树分类的拜占庭容错算法,其流程如图 2 所示。DTBFT 算法简化了一致性协议,降低算法的通信开销。算法引入了信誉积分机制,在共识结束之后统计节点的连续共识次数、宕机次数、错误通信次数、节点的活跃度(由节点的响应次数除以节点收到消息的总数)。根据上述节点属性,通过决策树分类算

19、法将节点分为高级节点、中级节点、初级节点,动态调整节点身份剔除系统内部的恶意节点,提高节点的可靠性;改进视图切换协议,将系统内部节点信誉度较高的高级节点作为主节点和候选节点的选取。根据节点的功能将节点分为主节点、候选节点、共识节点,具体如下。主节点:负责生产区块,接受客户端的指令,回复客户端共识完成,该类节点由高级节点中信誉积分最高的节点担任。候选节点:在主节点没有发生故障时,负责接收回复主节点发送的消息,参与共识过程;在主节点发生故障时,选举成为主节点,开始共识过程,该类节点由选举出主节点后剩余的高级节点担任。共识节点:负责接受回复主节点消息,参与共识过程,该类节点由中级节点、候选节点担任。

20、2.1节点分类规则机器学习中的决策树分类算法有着计算量较小、算法速度快、分类规则清晰、准确度高等优点,因此本文引入了决策树分类算法来保证节点分类的准确性。第4期王微渊,等:一种面向联盟链优化的 PBFT 共识算法581?2f+1?fNYYYNNNY图 2 算法流程图Figure 2 Algorithm flow chart决策树是指用来表示决策和相应的决策结果对应关系的树。树中每一个非叶结点表示一个决策,该决策的值导致不同的决策结果(叶节点)或者影响后面的决策。C4.5 算法用信息增益率来选择决策属性。C4.5 算法具有可处理数据范围包含连续性数值、数据的自适用性较强、可处理不完整数据、属性选

21、择的标准较精确,以及建树完成后具有剪枝作等优点,可避免决策树的不完整性。在改进的 DTBFT 共识算法中加入了决策树分类算法,每轮共识完成后收集节点的信誉积分、宕机次数、连续共识次数、错误通信次数、活跃度,以这些作为特征属性,将高级节点、中级节点、初级节点、剔除作为类别属性。在 Hyperledger Fabric 联盟链一个通道中,锚节点是定义在一个已经加入到通道的组织的节点。该节点主要用于节点的发现,可以被这个通道的其他任何节点发现和通信。因此,每一个加入到管通内的组织都至少有一个锚节点,一个组织的节点可以通过查找锚节点来发现这个通道内的其他组织的所有节点,由于算法是针对Hyperledg

22、er Fabric 联盟链改进的,所以节点属性的统计由联盟链中的锚节点负责。如图 3 所示,节点分类流程如下:首先由 Fabric 联盟链中的锚节点进行分类属性的收集582应用科学学报第41卷并分类;然后通过视图切换协议进行主节点的选举,在共识过程中验证节点;最后由锚节点收集节点行为并剔除恶意节点,剔除的拜占庭节点无法再参与到接下来的共识过程中,并且如果需要重新进入系统,则需要联盟链管理员的确认。C4.5 决策树构造步骤如下。?图 3 节点分类流程图Figure 3 Node classification flow chart步骤 1计算信息熵。信息熵可以度量样本集合是否属于同一类别。其定义如

23、下:假设当前训练集合中熵是类样本所占的比例为 Pk(由于本文测试的数据集分类的类别为高级节点、中级节点、低级节点和剔除 4 类,因此,此处 k 的取值为(1、2、3、4)。类别信息熵表示所有样本中各种类别出现的不确定性之和。那么,根据训练集计算类别信息熵为Info(D)=4Xk=1PklbPk(2)步骤 2计算信息增益。信息增益表示信息的不确定程度。在训练集合中,选择属性特征向量 a 来对集合进行划分,并且特征向量 a 总计有 5 个取值可能节点积分,连续共识次数,宕机次数,错误通信次数,节点的活跃度,那么,取第 v 个值则在样本集合 D 中选取的是取值为 av,并且记作 Dv。由式(2)可计

24、算得出的信息熵,并为分支节点赋予权重用来解决分支节点所含的样本数目不同的问题。于是,使用属性特征向量 a 来对集合 D 进行划分的信息增益就可表示为Gain(D,a)=Info(D)5Xv=1|Dv|D|Info(Dv)(3)然而,采用信息增益来选择划分属性,会使其对属性选择产生较多的偏差,从而影响决策树的泛化能力。所以,C4.5 决策树算法选择增益率来选择划分属性。步骤 3计算增益率。C4.5 决策树算法中的增益率的计算是在信息增益的基础上进行延伸的,训练集合 D 使用属性特征向量 a 的增益率,公式为Gain_ratio(D,a)=Gain(D,a)IV(a)(4)其中,IV(a)=5Xv

25、=1|Dv|D|lb|Dv|D|(5)依据上述过程得到的 C4.5 决策树,将系统内部的节点分为高级节点、中级节点、初级节点,其中高级节点到系统总节点数目的 20%,中级节点占到系统总结点数目的 30%,初级节点占到系统总结点数目的 50%。三类节点能参与的协议如表 1 所示。第4期王微渊,等:一种面向联盟链优化的 PBFT 共识算法583表 1 节点权限表Table 1 Node permissions table节点分类节点权限视图切换协议一致性协议检查点协议高级节点是是是中级节点是是是初级节点是剔除节点系统内部节点的等级是动态变化的,当一个新节点加入系统时,其初始积分为 70,节点的连续

26、共识次数、宕机次数、错误通信次数、节点活跃度都为 0,新加入的节点可以通过完成共识过程,保证节点状态正常,来提升自己的节点等级。系统内所有节点在完成共识过程后其信誉积分加 1,并统计本节点共识过程中的连续共识次数、宕机次数、错误通信次数以及计算节点的活跃度,等待下一次节点身份的调整。中级节点在共识过程中发生了拜占庭错误(共识过程中节点传递错误信息的行为)信誉积分将扣 5,在下一次 C4.5 分类后降为初级节点。当主节点发生了拜占庭错误时,其他节点直接将该节点剔除本轮共识,降为初级节点,节点序号为初级节点中的最后一个。系统通过 C4.5 决策树分类算法定期动态的调节节点身份,当系统内部高级节点的

27、数目大于系统内部数目的 20%时,这些节点停止成为高级节点,并作为中级节点序号最开始的节点,等待系统内部由于加入或者删除节点导致高级节点数目不足 20%时自动升入高级节点,其他节点同理。节点的状态转换图如图 4 所示。?30%?20%?图 4 节点状态转换图Figure 4 Node state transition graph2.2DTBFT算法一致性协议设计DTBFT 算法保留了 PBFT 算法的各个阶段,去除了共识节点间的通信过程,降低了网络带宽,共识节点选取系统内部的中级节点担任保证系统的节点的可靠性和系统的安全性。算法一致性协议图如图 5 所示。1)请求阶段。客户端 C 向主节点 P

28、 发送一条,其中 O 表示执584应用科学学报第41卷?图 5 DTBFT 一致性协议图Figure 5 DTBFT conformance protocol graph行请求的状态机,T 表示时间戳,C 表示客户端的编号。2)预准备阶段。主节点 P 收到客户端发送的编号为 N 的提案,生成 Preprepare 提案,OUTCOMECREDIT,MESSAGE 发送给所有的共识节点,V 表示试视图编号,N 表示主节点收到的提案编号,DIGEST 表示MESSAGE 的摘要,OUTCOME 表示 CREDIT 的 Hash 计算结果,CREDIT 表示该节点信誉积分,MESSAGE 表示客户端

29、的请求信息。3)准备阶段。共识节点收到主节点 P 发送的预准备消息,确认消息是否正确,生成准备消息,其中 I 表示本节点的编号。主节点接收其他共识节点发送的准备消息如果收到了超过(2F+1)条消息则进入确认阶段(F 表示所有节点中允许失效的最大节点数)。否则,认为主节点发生错误,将主节点权限交给新选举的主节点,并由新的主节点发送共识验证失败的消息给所有节点 视图号加1。发生错误的主节点降为初级节点。4)确认阶段。主节点 P 收到共识节点发送的准备消息是否全部正确且相同,并生成确认信息,广播给所有共识节点,CONFIRM 表示新区块确认添加,并将告知客户端。如果存在小于 F(F 表示所有节点中允

30、许失效的最大节点数)个共识节点发送的消息与主节点的不一致,则继续发送确认消息,生成新的区块,对于消息不一致的节点进行信誉积分的扣除,并记录节点行为;如果超过 F 个共识节点的发送的消息与主节点不一致,则主节点终止本轮共识,对消息不一致的共识节点进行信誉积分的扣除,重新开始共识过程。2.3改进的视图切换协议原算法的视图切换协议从系统内部所有节点中选出主节点,改进的视图切换协议则从系统内部所有高级节点中选出主节点,且剩余的高级节点将会作为候选节点,当主节点发生错误时接替其主节点的身份。根据信誉积分的大小将系统内部已经分类完成的|RH|个高级节点根据积分高低依次编号,0,1,|RH|1,序号越小被选

31、为主节点的概率越大。P=V mod|RH|(6)式中:P 为最终选出来的主节点的序号;V 为当前视图的编号;|RH|为系统内部所有高级节点的数量。改进的视图切换协议的触发条件为:1)主节点在固定时间 t1内未收到 2F+1 条准备信息(F 表示所有节点中允许失效的最大节点数);2)主节点未能在规定时间 t2内生成区块,且 t2 t1。第4期王微渊,等:一种面向联盟链优化的 PBFT 共识算法585满足上述条件的其中一条系统将会执行视图切换协议。3算法分析3.1通信复杂度分析在 PBFT 算法中,广播消息需要进行预准备、准备和确认三个阶段的通信,对应的通信次数分别为 N、N2和 N2。在计算其与

32、用户端的通信次数后,PBFT 算法中一个完整的共识过程所需的通信次数如下:T1=1+N+N2+N2+N=2N2+2N+1,在改进的 DTBFT算法中由于简化了一致性协议,在忽略决策树分类的前提下算法的三个阶段的通信次数都为N,则 T2=4N,T1 T2在忽略决策树分类过程给系统带来的额外通信复杂度,DTBFT 算法将通信复杂度由 O(N2)降低到 O(N)。但是当系统需要对拜占庭结点进行剔除时,考虑到C4.5 决策树算法的通信复杂度,导致 DTBFT 算法在系统内部存在拜占庭节点的情况下共识时延较高。3.2算法正确性分析根据 CAP(consistency-availability-parti

33、tion tolerance)原理15,一个分布式系统最多只能同时满足可用性、分区容错性和一致性三项中的两项。可用性是指对于一个分布式系统,每一个非故障的节点必须对每一个请求作出响应。分区容错性是指分布式系统在遇到某节点或网络分区故障时,仍然能够对外提供满足一致性和可用性的服务。一致性使得更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一样。在 DTBFT 算法的一致性协议中,虽然简化了一致性协议过程,但是每个阶段非故障的共识节点都会向给自己发送消息的主节点回应,保证算法的可用性。DTBFT 算法通过决策树分类剔除系统内部的故障节点,当主节点发生故障时,通过改进的视图切换协议及时更

34、换主节点,继续完成共识,使算法拥有分区容错性。DTBFT 算法的一致性指强一致性,是在满足可用性和分区容忍性的同时可以采取适当的方式达到最终一致性,即所有节点在经过一定的时间之后,最终能够达成一致的状态;在 DTBFT 算法中每个节点都会保存区块链的信息,当新节点加入后,通过一致性协议节点间的消息传递将区块信息同步最终保证算法的强一致性。3.3共识节点的安全性分析本文采用 C4.5 算法对参与联盟区块链网络共识的节点的信任级别进行分类。通过本实验数据集采用 C4.5 算法、KNN 算法、朴素贝叶斯算法、Logistic、感知器和最大熵分类器进行比较和观察,结果如图 6 所示。1.00.80.6

35、0.40.20?C4.5KNNLogistic图 6 分类算法精度对比图Figure 6 Comparison chart of classification algorithm accuracy586应用科学学报第41卷本文300 个实验数据,包括240 个训练样本和60 个测试样本。从实验结果可以看出,C4.5决策树具有最好的分类精度,使用 C4.5 决策树可以有效地提高共识节点分类的精确度和提高算法的安全性。4实验及结果分析在联盟链场景下对本方案中 DTBFT 共识算法进行测试,实验基于 Hyperledger fabric,以及其测试工具 Hyperledger caplier,搭建了

36、一个 50 个节点的联盟链网络,通过 Fabric 共识模块可插拔的特性,分别运行 PBFT 和 DTBFT 算法。通过节点发送不同消息,模拟拜占庭攻击,具体软硬件环境如表 2 所示。表 2 软硬件配置表Table 2 Hardware and software configuration table软硬件环境配置情况操作系统Ubuntu-16.04CPUIntelrXeonrGold 6148 CPU 2.40 GHz 2.39 GHzHyperledger fabric1.4.4Docker17.03.2-ce测试工具Hyperledger caplier4.1吞吐量吞吐量是指单位时间内处

37、理事务的数量,在共识算法中是指在单位时间所能共识成功的交易数量。较高的吞吐量证明共识算法本身的性能较高,吞吐量公式为S=N/T(7)式中:S 为吞吐量;N 为共识成功的交易数量;T 为总时间。实验中设置客户端发送 1 500 条消息,记录每秒能够完成共识的交易数量,并且分别在系统内部存在拜占庭节点和不存在拜占庭节点的情况下,针对不同节点数进行测试,实验结果如图 7 所示。1 6001 2008004000?1 6001 2008004000?102030PBFTDTBFT4050?(a)?(a)Throughput(no byzantium)(b)?(b)Throughput(existenc

38、e of Byzantium)PBFTDTBFT1020304050?图 7 吞吐量对比图Figure 7 Throughput comparison chart第4期王微渊,等:一种面向联盟链优化的 PBFT 共识算法587由吞吐量折线图可以看出,吞吐量的大小与参与共识的节点数量成反比。在系统内部有拜占庭节点的情况下,DTBFT 的吞吐量大小在相同节点数目的情况下要高于 PBFT 算法。4.2共识时延共识时延作为衡量共识算法的重要指标,在区块链中表示交易从发起到完成的时间差。较低的时延使得区块链的可用性和安全性更高。测试时延性公式为DelayTime=T(submit)T(authentic

39、ation)(8)式中:T(submit)为共识完成确认的时间;T(authentication)为共识认证阶段开始的时间。实验中每 150 次交易取一次平均值,并在不同数目节点下进行,实验结果如图 8 所示。120100806040200?/ms102030PBFTDTBFT4050?(a)?(a)Consensus delay(no byzantium)16012080400?/ms102030PBFTDTBFT4050?(b)?(b)Consensus delay(existence of Byzantium)图 8 共识时延对比图Figure 8 Consensus delay com

40、parison chart由共识时延对比图中可以看出,在系统内部没有存在拜占庭节点的情况下,DTBFT 算法要快于 PBFT 算法,但是当系统内部存在拜占庭节点时,在 DTBFT 算法最坏的情况下共识时延略高于 PBFT 算法。4.3算法安全性测试针对 PBFT 算法无法动态剔除拜占庭节点的问题,DTBFT 算法引入了积分机制,以此来剔除系统中的拜占庭节点,保障系统安全性。实验中系统内部的预设节点数目为 1 000,其中存在 300 个拜占庭节点,在系统运行的过程中会有拜占庭节点加入进来,分别运行 PBFT算法和 DTBFT 算法,进而根据共识轮次的增多查看系统内部的拜占庭数目。实验结果如图

41、9所示。由实验结果可知,运行 11 轮后系统内部的拜占庭节点数目为 6,由此可见当系统趋于稳定时,DTBFT 算法可以去除系统内部的拜占庭节点,拜占庭节点当选为主节点的概率降低,保证了系统的安全性。在新的拜占庭节点加入后,无法完成共识过程而被系统剔除,而 PBFT算法的拜占庭节点数目基本不变。因此,实验证明 DTBFT 算法具有较高的安全性能。5结语本文在联盟链的应用场景下,针对 PBFT 算法的通信开销过大、节点可信度无法保证、算法无法动态地增加和删除节点等问题,提出了 DTBFT 算法。算法引入了信誉积分机制,保证节点的信誉度,简化了原本算法的一致性协议,降低了算法的通信开销。在检查点协议

42、中增加了 C4.5 决策树分类算法,对系统内部的节点进行定期分类,使得系统能够将恶意节点剔除。此外,改进了视图切换协议,将主节点选取范围缩小到积分较高的节点。但是,在系统内588应用科学学报第41卷DTBFT?350300250200150100500PBFT?12345678910 11?图 9 拜占庭节点数目图Figure 9 Byzantine node number graph部存在拜占庭节点时,DTBFT 算法的共识时延较长,未来的工作会针对该问题对算法的性能继续优化。参参参考考考文文文献献献:1 NakamotoS.Bitcoin:apeer-to-peerelectronicca

43、shsystemEB/OL2022-10-26.https:/bitcoin.org/en/bitcoin-paper.2 袁勇,王飞跃.区块链技术发展现状与展望 J.自动化学报,2016,42(4):14.Yuan Y,Wang F Y.Current situation and prospect of blockchain technology developmentJ.Journal of Automation,2016,42(4):14.(in Chinese)3 Schwartz D,Youngs N,Britto A.The Ripple protocol consensus al

44、gorithm EB/OL.2022-10-26.https:/ Androylaki E,Manevich Y,Muralidharan S,et al.Hyperledger Fabric:a distributedoperating system for permissioned blockchains C/EuroSys18:Proceedings of the ThirteenthEuroSys Conference,2018:30.5 Mazieres D.The stellar consensus protocol:a federated model for internet l

45、evel consensusEB/OL.2022-10-26 https:/www.stellar.org/papers/stellar-consensus-protocol.pdf.6 郑敏,王虹,刘洪,等.区块链共识算法研究综述 J.信息网络安全,2019(7):8-24.Zheng M,Wang H,Liu H,et al.A review of blockchain consensus algorithms research J.Information Network Security,2019(7):8-24.(in Chinese)7 Castro M,Liskov B.Pract

46、ical Byzantine fault tolerance M.New York:ACM,1999.8 朱海,金瑜.DS-PBFT:一种基于距离的面向区块链的共识算法 J.小型微型计算机系统,2022,43(3):506-513.Zhu H,Jin Y.DS-PBFT:a blockchai-oriented consensus algorithm based on distance J.SmallMicrocomputer System,2022,43(3):506-513.(in Chinese)9 吴晓彤,柳平增.基于备选投票机制的低时延 PBFT 改进研究 J.计算机工程,2021,

47、47(7):10.Wu X T,Liu P Z.Research on low-latency PBFT improvement based on alternative votingmechanism J.Computer Engineering,2021,47(7):10.(in Chinese)10 季钰翔,黄建华,王喆,等.基于信任度匹配的改进 PBFT 共识算法 J.计算机科学,2021,48(2):303-310.Ji Y X,Huang J H,Wang Z,et al.Improved PBFT consensus algorithm based on trustmatchin

48、g J.Computer Science,2021,48(2):303-310.(in Chinese)第4期王微渊,等:一种面向联盟链优化的 PBFT 共识算法58911 胡美春,田大钢.一种改进的 C4.5 决策树算法 J.软件导刊,2015,14(7):3.Hu M C,Tian D D.An improved C4.5 decision tree algorithm J.Software Guide,2015,14(7):3.(in Chinese)12 Lamport L,Shostak R,Pease M.The Byzantine generals problem J.ACM T

49、ransactionson Programming Languages and Systems,1982,4(3):382-401.13 Lamport L.Paxos made simple J.ACM SIGACT News,2001,32(4):18-20.14 Oki B M,Liskov B H.Viewstamped replication:a new primary copy method to supporthighly available distributed systems C/7th ACM Symposium,1988:8-17.15 Fox A,Brewer E A.Harvest,yield,and scalable tolerant systems C/Workshop on HotTopics in Operating Systems.IEEE,1999:798396.(编辑:王雪)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服