一种应用于联盟链的改进优化PBFT共识方法与系统技术方案

技术编号:38148898 阅读:11 留言:0更新日期:2023-07-13 09:12
本发明专利技术提出了一种应用于联盟链的改进优化PBFT共识方法与系统。本发明专利技术针对供应链区块链应用场景,将所有节点划分为仲裁组、共识组、候选组和拜占庭组四个组。仲裁组中的节点由共识组中的主节点升入,通过引入仲裁节点,处理新加入和退出节点的申请,能够让联盟链系统具有动态性,同时仲裁节点由多个主节点周期性担任,使得系统能够更好地去中心化,保障系统安全性。共识开始前,从候选组中选取部分节点进入共识组参与共识,可以有效地解决由于节点多而造成的通信复杂度大的问题。同时引入共识系数,对拜占庭节点进行处理。此外,对于退出的节点并不是直接删除节点信息,为了省去退出节点重新加入区块链系统的配置时间。重新加入区块链系统的配置时间。重新加入区块链系统的配置时间。

【技术实现步骤摘要】
一种应用于联盟链的改进优化PBFT共识方法与系统


[0001]本专利技术属于区块链
,涉及一种应用于联盟链的改进优化PBFT共识方法与系统。

技术介绍

[0002]区块链技术具有去中心化、不可篡改以及可追溯的特点,不仅可以应用在加密货币的交易环境中,还可以部署在供应链里。在复杂多变网络环境中,在区块链去中心化的前提下,要使空间上完全分散的各节点账本保持一致性,需要共识算法发挥重要作用,它能够让各节点账本达成一致并维护一致。在联盟链共识算法的发展历程中,以PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)为代表的共识算法占有较大比重。
[0003]PBFT能够容忍网络中存在的拜占庭节点,包括崩溃节点以及恶意节点,是首个可实用的能够容忍拜占庭错误的共识算法。它包括以下三个协议——一致性协议:保证客户端的请求按照主节点规定的顺序执行;视图切换协议:用备用节点替换已故障节点;检查点协议:定期清理日志文件。虽然PBFT算法的通信复杂度降到了o(n2),能够容忍不超过总节点1/3的恶意节点,但仍然存在随着节点数量增多会导致系统的共识效率下降的缺点,且无法满足用户的动态加入或退出请求。

技术实现思路

[0004]专利技术目的:针对供应链区块链系统中节点数量多,通信复杂度随之提高,同时传统PBFT共识算法不具备动态性,无法适应供应链系统中需要加入、退出节点的需求,以及让拜占庭节点处在网络中危害到共识的进行,本专利技术提供了一种应用于联盟链的改进优化PBFT共识方法与系统,能够更好地用于供应链区块链系统中。
[0005]技术方案:为实现上述专利技术目的,本专利技术所述的一种应用于联盟链的改进优化PBFT共识方法,将联盟链中所有节点划分为仲裁组、共识组、候选组和拜占庭组;仲裁组中的节点由共识组中的主节点升入,数量固定,加入一个节点后随机剔除另一个节点离开并进入候选组,仲裁组中节点用于处理加入或退出区块链网络节点的申请以及解决出现拜占庭问题的节点;拜占庭组中的节点包括恶意节点和退出节点;新加入或者从仲裁组和共识组中正常退出的节点归入候选组;共识组中节点用于参与共识,一个共识周期包含多轮共识,具体的共识过程包括:
[0006]从候选组中随机选取部分节点进入共识组;
[0007]每一轮共识随机选取出一个主节点,主节点接收到客户端的请求后将请求广播给从节点,基于PBFT算法达成共识,生成区块;
[0008]一轮共识结束后,不存在拜占庭行为的主节点升入仲裁组,若发现有拜占庭行为的节点,在仲裁组中进行广播,并将该节点的共识系数减预设数值,将成功参与这轮共识的节点共识系数增预设数值;
[0009]在共识周期结束之后,由仲裁组发出广播,将共识系数低于预设阈值的节点踢入
拜占庭组。
[0010]进一步地,新节点加入处理的具体步骤包括:
[0011]新节点向仲裁组广播申请消息,申请消息需要包括节点自身身份以及证明信用信息;
[0012]仲裁组中节点收到申请消息后,对信息进行审核,若申请通过,则将通过信息广播给仲裁组中其他节点;
[0013]仲裁组中节点收到2h个来自不同仲裁节点的申请通过消息后,触发随机算法,通过随机算法选择除最后进入的节点外的一个节点,由该节点更改新加入节点的信息,让其进入候选组,更新全局状态表,同时该仲裁节点也将作为最近离开仲裁组的节点,h为仲裁组中最大故障节点的数量。
[0014]进一步地,节点退出处理的具体步骤包括:
[0015]要退出的节点向仲裁组广播申请消息,申请消息需要包括自身状态信息;
[0016]仲裁组中节点收到申请消息后,对信息进行审核,只有处在候选组中的节点才能退出系统,若审核通过,则将通过信息广播给仲裁组中其他节点;
[0017]仲裁组中节点收到2h个来自不同仲裁节点的退出申请通过消息后,触发随机算法,通过随机算法选择除最后进入的节点外的一个节点,由该节点更改退出节点的信息,让其进入拜占庭组,更新全局状态表,同时该仲裁节点也将作为最近离开仲裁组的节点。
[0018]进一步地,共识系数是用来评判某节点是否有效成功参与共识的数值化体现,新加入节点的共识系数初始化为n,一轮共识中存在拜占庭行为的节点共识系数减2,成功参与的节点共识系数加1,一个共识周期结束后,共识组中共识系数低于n的节点踢入拜占庭组。
[0019]作为优选,共识组中主节点的选取以共识系数为参考,在共识系数最大的部分节点中采用随机算法随机选取一个作为主节点。
[0020]进一步地,若PBFT算法触发视图切换协议,则更换主节点,具体步骤包括:
[0021]共识组中除主节点外所有节点将请求更换主节点的消息发送给仲裁组所有节点;
[0022]仲裁组中节点收到2f个来自不同共识节点的请求消息后,在仲裁组中广播更换主节点消息,f为共识组中最大故障节点的数量;
[0023]仲裁组中节点收到2h个来自不同仲裁节点的更换消息后,触发选取主节点的随机算法。
[0024]基于相同的专利技术构思,本专利技术提供一种应用于联盟链的改进优化PBFT共识系统,包括:
[0025]节点状态管理模块,用于将联盟链中所有节点划分为仲裁组、共识组、候选组和拜占庭组;其中仲裁组中的节点由共识组中的主节点升入,数量固定,加入一个节点后随机剔除另一个节点离开并进入候选组;
[0026]共识周期管理模块,用于在一个共识周期内,从候选组中随机选取部分节点进入共识组;每一轮共识随机选取出一个主节点,主节点接收到客户端的请求后将请求广播给从节点,基于PBFT算法达成共识,生成区块;一轮共识结束后,不存在拜占庭行为的主节点升入仲裁组,若发现有拜占庭行为的节点,在仲裁组中进行广播,并将该节点的共识系数减预设数值,将成功参与这轮共识的节点共识系数增预设数值;在共识周期结束之后,由仲裁
组发出广播,将共识系数低于预设阈值的节点踢入拜占庭组;
[0027]节点加入和退出管理模块,用于仲裁组中节点处理加入或退出区块链网络节点的申请,将新加入的节点归入候选组,退出的节点归入拜占庭组。
[0028]进一步地,所述节点加入和退出管理模块中,由新节点或退出节点向仲裁组广播申请消息,仲裁组中节点收到申请消息后进行审核,审核通过后将通过信息广播给仲裁组中其他节点,在仲裁组中节点收到2h个来自不同仲裁节点的通过消息后,随机选择除最后进入的节点外的一个节点处理申请,该被选择的节点也将作为最近离开仲裁组的节点。
[0029]基于相同的专利技术构思,本专利技术提供一种计算机系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的应用于联盟链的改进优化PBFT共识方法的步骤。
[0030]有益效果:本专利技术提供的一种应用于联盟链供应链的改进优化PBFT共识方法,与现有技术相比,具有如下优点:1、通过引入仲裁组处理节点进入退出区块链网络,解决了传统PBFT算法本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于联盟链的改进优化PBFT共识方法,其特征在于,将联盟链中所有节点划分为仲裁组、共识组、候选组和拜占庭组;仲裁组中的节点由共识组中的主节点升入,数量固定,加入一个节点后随机剔除另一个节点离开并进入候选组,仲裁组中节点用于处理加入或退出区块链网络节点的申请以及解决出现拜占庭问题的节点;拜占庭组中的节点包括恶意节点和退出节点;新加入或者从仲裁组和共识组中正常退出的节点归入候选组;共识组中节点用于参与共识,一个共识周期包含多轮共识,具体的共识过程包括:从候选组中随机选取部分节点进入共识组;每一轮共识随机选取出一个主节点,主节点接收到客户端的请求后将请求广播给从节点,基于PBFT算法达成共识,生成区块;一轮共识结束后,不存在拜占庭行为的主节点升入仲裁组,若发现有拜占庭行为的节点,在仲裁组中进行广播,并将该节点的共识系数减预设数值,将成功参与这轮共识的节点共识系数增预设数值;在共识周期结束之后,由仲裁组发出广播,将共识系数低于预设阈值的节点踢入拜占庭组。2.根据权利要求1所述的一种应用于联盟链的改进优化PBFT共识方法,其特征在于,新节点加入处理的具体步骤包括:新节点向仲裁组广播申请消息,申请消息需要包括节点自身身份以及证明信用信息;仲裁组中节点收到申请消息后,对信息进行审核,若申请通过,则将通过信息广播给仲裁组中其他节点;仲裁组中节点收到2h个来自不同仲裁节点的申请通过消息后,触发随机算法,通过随机算法选择除最后进入的节点外的一个节点,由该节点更改新加入节点的信息,让其进入候选组,更新全局状态表,同时该仲裁节点也将作为最近离开仲裁组的节点,h为仲裁组中最大故障节点的数量。3.根据权利要求1所述的一种应用于联盟链的改进优化PBFT共识方法,其特征在于,节点退出处理的具体步骤包括:要退出的节点向仲裁组广播申请消息,申请消息需要包括自身状态信息;仲裁组中节点收到申请消息后,对信息进行审核,只有处在候选组中的节点才能退出系统,若审核通过,则将通过信息广播给仲裁组中其他节点;仲裁组中节点收到2h个来自不同仲裁节点的退出申请通过消息后,触发随机算法,通过随机算法选择除最后进入的节点外的一个节点,由该节点更改退出节点的信息,让其进入拜占庭组,更新全局状态表,同时该仲裁节点也将作为最近离开仲裁组的节点,h为仲裁组中最大故障节点的数量。4.根据权利要求1所述的一种应用于联盟链的改进优化PBFT共识方法,其特征在于,共识系数是用来评判某节点是否有效成功参与共识的数值化体现,新加入节点的共识系数初始化为n,一轮共识中存在拜占庭行为的节点共识系数减2,成功参与的节点共识系数加1,一个共识周期结束后,共识组中共识系数低于n的节点踢入拜占庭组。5.根据权利...

【专利技术属性】
技术研发人员:汪洋潘登柴荔张明月邹悦宁吉顺慧张鹏程
申请(专利权)人:中诚区块链研究院南京有限公司
类型:发明
国别省市:

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

1