基于改进PBFT算法的区块链共识方法及设备技术

技术编号:39167511 阅读:10 留言:0更新日期:2023-10-23 15:05
本发明专利技术公开了一种基于改进PBFT算法的区块链共识方法及设备,属于区块链共识机制技术领域。本发明专利技术的方法包括:将联盟链的节点进行聚类分组成各从集群;依据节点信誉积分将从集群节点分类,选取信誉积分最高的节点为该从集群主节点;主节点接收到共识请求消息后在所在从集群内进行从集群PBFT共识,并判断共识过程中主节点是否发生故障;若发生故障,则扣除其信誉积分,重新选举主节点,重新进行从集群PBFT共识;若未发生故障,则完成从集群PBFT共识;各从集群完成从集群PBFT共识后,由每个从集群的主节点进行主集群共识。本发明专利技术能够克服PBFT算法在扩展性不足、主节点选取随意和通信复杂度高导致的算法效率不高的缺点。复杂度高导致的算法效率不高的缺点。复杂度高导致的算法效率不高的缺点。

【技术实现步骤摘要】
基于改进PBFT算法的区块链共识方法及设备


[0001]本专利技术属于区块链共识机制
,具体涉及一种基于改进PBFT算法的区块链共识方法及设备。

技术介绍

[0002]共识机制作为区块链系统的核心组件,为系统去中心化提供了保障,共识算法的优劣直接影响着整体区块链系统的性能效率、安全性以及可拓展性。随着区块链技术的快速发展,共识算法方面的研究也越来越多,共识算法用于在分布式系统中实现可用性和一致性,是区块链的关键技术。
[0003]目前联盟链共识算法应用最广泛的是实用拜占庭算法(PBFT),在系统中即使存在少量恶意节点,也能实现数据完整性和一致性,具有较高的事务吞吐量。但是该算法本身也存在一些问题。首先是主节点选择采取轮询的算法,算法过于简单,导致存在恶意节点当选主节点的风险,增加了系统的不稳定性。第二是当节点数量增加时,由于PBFT算法需要全网节点广播消息,算法的性能急剧下降。
[0004]对此,国内外对现有的PBFT算法进行了一些研究和改进。
[0005]《基于聚合签名的共识算法优化方案》(参见《[J].计算机科学,2018,45(2):53

5683》)提供一种基于聚合签名的共识算法优化方案,将原本网络中的m条交易信息签名聚合成为一条,减少区块数据的产生,从而减少总共识次数,但算法复杂度略有增加。
[0006]《基于K

medoids的改进PBFT共识机制》(参见《[J].计算机科学,2019,46(12):101

107》)提出通过k

medoids算法对节点进行层次划分,分成组内组外共识,来减少通信次数,但大规模节点下,k

medoids算法效率不高,缺少对节点共识行为的评估。
[0007]《An Extensible Consensus Algorithm Based on PBFT》(参见《2019 International Conference on Cyber

Enabled Distributed Computing and Knowledge Discovery (CyberC), Guilin, China, 2019, pp. 17

23, doi: 10.1109/CyberC.2019.00013.》)提出了可扩展PBFT(EPBFT)共识算法,它可以根据系统的网络环境采取不同的步骤来达成共识。增加了基于可验证随机函数(VRF)的共识节点选举,使得EPBFT适用于动态网络。基于联盟链的特点和需求,分析了共识机制的协议性能和资源利用情况,但该算法在主节点选举机制上存在优化的可能性。
[0008]《An Improved PBFT Efficient Consensus Mechanism Based on Credit》(参见《[J]. Application Research of Computers/Jisuanji Yingyong Yanjiu, 2019, 36(9).》)提出了基于信用的改进的CPBFT算法,针对共识过程中的一致性进行改进。在新共识机制中,首先引入信用评价,用简化的一致性协议推动系统进入良性循环。它修改了节点可以动态加入和离开系统的检查点协议,提高了系统的灵活性,算法复杂度有所增加。

技术实现思路

[0009]本专利技术目的是提供一种基于改进PBFT算法的区块链共识方法及设备,能够克服
PBFT算法在扩展性不足、主节点选取简单随意,和通信复杂度高导致的算法效率不高的缺点。
[0010]具体地说,一方面,本专利技术提供了一种基于改进PBFT算法的区块链共识方法,包括:步骤一,初始化联盟链中各节点的影响节点间通信时间的特征,将联盟链的节点进行聚类分组,将每一个分组的节点组视作一个从集群;步骤二,初始化节点的信誉积分,依据所述节点的信誉积分将每个从集群中的节点分成候选节点、普通节点、恶意节点,从每个从集群的候选节点中选取信誉积分最高的节点为该从集群的主节点;所述候选节点参与从集群PBFT共识并且被认为是值得充分信任的节点,普通节点参与从集群PBFT共识,恶意节点不参与共识;步骤三,每个从集群的主节点接收到联盟链客户端发来的共识请求消息后,在所在从集群内对所述共识请求消息进行从集群PBFT共识,并判断从集群PBFT共识过程中所述从集群的主节点是否发生故障;若所述从集群的主节点响应超时即发生故障,则扣除所述从集群的主节点的信誉积分,并执行V

PBFT算法视图切换协议,重新选举信誉积分最高的节点当选从集群主节点,视图编号自增,并执行检查点协议,重新对所述共识请求消息进行从集群PBFT共识;若所述从集群的主节点未发生故障,则每个从集群执行V

PBFT算法,完成从集群PBFT共识;步骤四,各从集群完成从集群PBFT共识后,由每个从集群的主节点组成的主集群开始对所述共识请求消息进行主集群共识;当主集群共识完成后,整个联盟链网络对所述共识请求消息达成一致性共识。
[0011]进一步的,所述初始化节点的信誉积分包括:采用随机函数设置联盟链中各节点的信誉积分,将节点信誉积分设置为在[A,C]范围内的某个数值,并对每一个节点生成特定的序号1,2,3,

,M,M为从集群中节点数量;将信誉积分在[B,C]范围的节点划分为候选节点,当存在从集群V
i
(i=1,2,3,

)在从集群PBFT共识过程中发生共识超时从而出现视图更换的情况下,从候选节点中重新选举信誉积分最高的节点当选从集群主节点;将信誉积分在[A,B)的节点划分为普通节点;将信誉积分低于A的节点划分为恶意节点;A、B、C为整数。
[0012]进一步的,当从集群PBFT共识过程中某个节点未完成共识任务时,降低该节点的信誉积分。
[0013]进一步的,所述影响节点间通信时间的特征包括节点的网络延迟、节点位置坐标。
[0014]进一步的,当完成主集群共识后,还包括根据节点在从集群PBFT共识和主集群共识过程中的表现进行评估并更新节点的信誉积分,依据更新后的节点的信誉积分重新将每个从集群中的节点分成三类:候选节点、普通节点、恶意节点,从每个从集群的候选节点中选取信誉积分最高的节点当选该从集群的主节点;当每个从集群的主节点接收到联盟链客户端发来的新的共识请求消息后,重复步骤三、步骤四。
[0015]进一步的,所述更新节点的信誉积分包括主集群内部的节点作为各从集群的主节点分别向各自从集群节点发送区块数据同步更新信息后,各个集群中的节点开始区块数据同步并更新相关数据。
[0016]进一步的,所述根据节点在从集群PBFT共识和主集群共识过程中的表现进行评估并更新节点的信誉积分包括:对积极参与共识的节点,提高信誉积分;对未参与共识的节点,降低信誉积分。
[0017]进一步的,所述根据节点在从集群PBFT共识和主集群共识过程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于改进PBFT算法的区块链共识方法,其特征在于,包括:步骤一,初始化联盟链中各节点的影响节点间通信时间的特征,将联盟链的节点进行聚类分组,将每一个分组的节点组视作一个从集群;步骤二,初始化节点的信誉积分,依据所述节点的信誉积分将每个从集群中的节点分成候选节点、普通节点、恶意节点,从每个从集群的候选节点中选取信誉积分最高的节点为该从集群的主节点;所述候选节点参与从集群PBFT共识并且被认为是值得充分信任的节点,普通节点参与从集群PBFT共识,恶意节点不参与共识;步骤三,每个从集群的主节点接收到联盟链客户端发来的共识请求消息后,在所在从集群内对所述共识请求消息进行从集群PBFT共识,并判断从集群PBFT共识过程中所述从集群的主节点是否发生故障;若所述从集群的主节点响应超时即发生故障,则扣除所述从集群的主节点的信誉积分,并执行V

PBFT算法视图切换协议,重新选举信誉积分最高的节点当选从集群主节点,视图编号自增,并执行检查点协议,重新对所述共识请求消息进行从集群PBFT共识;若所述从集群的主节点未发生故障,则每个从集群执行V

PBFT算法,完成从集群PBFT共识;步骤四,各从集群完成从集群PBFT共识后,由每个从集群的主节点组成的主集群开始对所述共识请求消息进行主集群共识;当主集群共识完成后,整个联盟链网络对所述共识请求消息达成一致性共识。2.根据权利要求1所述的基于改进PBFT算法的区块链共识方法,其特征在于,所述初始化节点的信誉积分包括:采用随机函数设置联盟链中各节点的信誉积分,将节点信誉积分设置为在[A,C]范围内的某个数值,并对每一个节点生成特定的序号1,2,3,

,M,M为从集群中节点数量;将信誉积分在[B,C]范围的节点划分为候选节点,当存在从集群V
i
(i=1,2,3,

)在从集群PBFT共识过程中发生共识超时从而出现视图更换的情况下,从候选节点中重新选举信誉积分最高的节点当选从集群主节点;将信誉积分在[A,B)的节点划分为普通节点;将信誉积分低于A的节点划分为恶意节点;A、B、C为整数。3.根据权利要求2所述的基于改进PBFT算法的区块链共识方法,其特征在于,当从集群PBFT共识过程中某个节点未完成共识任务时,降低该节点的信誉积分。4.根据权利要求1所述的基于改进PBFT算法的区块链共识方法,其特征在于,所述影响节点间通信时间的特征包括节点的网络延迟、节点位置坐标。5.根据权利要求1所述的基于改进PBFT算法的区块链共识方法,其特征在于,当完成主集群共识后,还包括根据节点在从集群PBFT共识和主集群共识过程中的表现进行评估并更新节点的信誉积分,依据更新后的节点的信誉积分重新将每个从集群中的节点分成三类:候选节点、普通节点、恶意节点,从每个从集群的候选节点中选取信誉积分最高的节点当选该从集群的主节点;当每个从集群的主节点接收到联盟链客户端发来的新的共识请求消息后,重复步骤三、步骤四。6.根据权利要求5所述的基于改进PBFT算法的区块链共识方法,其特征在于,所述更新节点的信誉积分包括主集群内部的节点作为各从集群的...

【专利技术属性】
技术研发人员:戚湧许晓刚
申请(专利权)人:南京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1