当前位置: 首页 > 专利查询>郑州大学专利>正文

基于动态信任模型的分组拜占庭容错算法制造技术

技术编号:35459941 阅读:29 留言:0更新日期:2022-11-03 12:25
本发明专利技术提供一种基于动态信任模型的分组拜占庭容错算法,包括客户端、交易处理中心、交易处理器,所述交易处理中心包括交易池,所述客户端向所述交易池提交交易,所述交易处理器提取所述交易池内的交易依次进行节点选取、节点分组、共识通信、依据信任度评估进行主节点重新选取,在节点选取阶段,对节点进行初始化,在初始化阶段,交易处理器为节点依次分配密钥、设置初始信任度、随机选择主节点;节点分组中,用哈希取模的方式对节点先后进行分组,并找出每组的leader节点;本发明专利技术有效降低了通信开销和共识时延,提高了吞吐量、可靠性和稳定性,有效降低拜占庭容错算的通信复杂度。有效降低拜占庭容错算的通信复杂度。有效降低拜占庭容错算的通信复杂度。

【技术实现步骤摘要】
基于动态信任模型的分组拜占庭容错算法


[0001]本专利技术属于区块链节点分组管理位
,具体涉及一种基于动态信任模型的分组拜占庭容错算法。

技术介绍

[0002]区块链技术具有去中心化、不可篡改数据可追溯等特点,可用于金融交易、数据鉴证、数据存储、选举投票等领域。由于实现区块链系统中节点之间数据存储和数据处理的一致性需要耗费大量计算或通信资源,产生较高的时间延迟和较低的系统吞吐量,致使区块链技术在实际应用中有一定困难。共识机制作为实现区块链系统中节点达成最终一致的技术,对区块链系统的性能有重大影响。目前主流的共识算法有工作量证明算法(PoW)、权益证明算法(PoS)、股份权益证明算法(DPoS)、实用拜占庭容错算法(PBFT)等。使用PoW、PoS、DPoS多适用于开放式的公有链中,通常可以容纳大量节点同时拥有比较高的容错率,但系统的吞吐量较低。相对证明类算法,PBFT更适用于节点数目较少,节点间需要一定信任的联盟链和私有链中。PBFT算法吞吐量最高可达每秒数千笔,但随着节点数目的增多,节点间的通信量会急剧增加,给网络带宽带来巨大压力,导致使用PBFT协议的区块链系统中,节点数量不能过多。
[0003]针对节点数增多时,PBFT通信量过高,性能下降的问题,目前主要从控制参与共识的节点规模和改进共识结构两个方面进行研究,例如:
[0004]在控制参与共识的节点规模方面,LaoL,DaiX,XiaoB等人于2020年发表于IEEEInternationalParallelandDistributedProcessingSymposium(IPDPS).的“G

PBFT:ALocation

basedandScalableConsensusProtocolforIoT

BlockchainApplications[C]”提出一种基于位置的可扩展共识协议G

PBFT。G

PBFT利用固定设备的地理信息达成共识,选择位置相对固定的的节点作为背书人参与PBFT共识,减少验证和记录事务的开销;LiY,WangZ,FanJ等人于2019年发表于InternationalConferenceonCyber

EnabledDistributedComputingandKnowledgeDiscovery的“AnExtensibleConsensusAlgorithmBasedonPBFT”提出适合于动态网络的EPBFT,使用可验证随机函数(VRF)选取部分节点参与共识,并在网络状态良好的情况下执行简化的一致性协议,从而减少PBFT的通信量;
[0005]在改进共识结构方面,LiW,FengC,ZhangL于2021年发表于IEEETransactionsonParallelandDistributedSystems的“AScalableMulti

layerPBFTConsensusforBlockchain”提出了一种可扩展的多层PBFT共识机制以降低单层PBFT共识的通信量,并分析了使通信量降低到最小时每一层的节点数。陈子豪,李强等人于2019年发表于计算机科学的《基于K

medoids的改进PBFT共识机制》提出基于K

medoids的改进PBFT共识机制,利用K

medoids对参与共识的节点根据特征进行聚类,将改进后的PBFT算法用于聚类后的分层模型中,以减少共识需要的通信次数,提高共识效率;
[0006]上述公开的文献虽然对PBFT算法进行了优化,但是优化后的PBFT算法依然具有通
信开销高、共识时延长、吞吐量小、可靠性和稳定性低的缺陷。

技术实现思路

[0007]本专利技术的目的是克服现有技术的不足而提供一种有效的基于动态信任模型的分组拜占庭容错算法。
[0008]本专利技术的技术方案如下:
[0009]一种基于动态信任模型的分组拜占庭容错算法,包括客户端、交易处理中心、交易处理器,所述交易处理中心包括交易池,所述客户端向所述交易池提交交易,所述交易处理器提取所述交易池内的交易进行以下处理步骤:
[0010]步骤S1、节点选取,对节点进行初始化,在初始化阶段,交易处理器为节点依次分配密钥、设置初始信任度、随机选择主节点;
[0011]步骤S2、节点分组,完成步骤S1后,采用哈希取模的方式对经过步骤S1设置初始信任度的不同信任等级的节点先后进行分组,将全网参与共识的节点划分为k组,并找出每组的leader节点;
[0012]步骤S3、小组宕机判断,完成步骤S2后,判断各小组是否宕机,如果小组不宕机,则执行步骤S4,如果小组宕机,执行步骤S2以进行重新分组,之后在新试图下执行步骤 S4;
[0013]步骤S4、共识通信,完成步骤S3后,接着将节点提出区块,然后在内对区块进行PBFT 共识,组内共识完成后,由各组的leader节点代表本组进行组间PBFT共识,组内和组间共识均完成后,节点将区块同步到本地;
[0014]步骤S5,主节点的重新选择,完成步骤S4后,根据动态信任模型更新信任度和信任状态并重新选择主节点,进入下一视图。
[0015]进一步,所述步骤S4

S5中,当共识超时,从节点将触发视图切换协议,若有达到2f+1 个从节点请求视图切换,则新的主节点发起新视图,开始新一轮的共识工作;所述共识超时为,完成一轮共识后,重新选择出主节点后,但其节点在一个规定的时间内没有收到该主节点发送的pre

prepare消息。
[0016]进一步,所述步骤S2进行节点分组的具体过程如下:
[0017]步骤S21、将可信状态和正常状态节点随机分配到每组,通过当前区块的哈希值和节点公钥PK计算出h(key),即:
[0018]h(key)=hash(hash(block),PK)
ꢀꢀꢀꢀ
式1
[0019]每次分组时,h(key)均进行更新,由于hash(block)是随机的,因此h(key)也是随机的,而hash(block)的值无法预测且不可控制,满足分组所要求的随机性;
[0020]步骤S22、获取h(key)后x位十六进制字符,转换成对应的十进制整数y;
[0021]步骤S23、对y进行取模操作,获取节点对应的随机分组索引groupIndex,
[0022]groupIndex=y%k
ꢀꢀꢀ
式2;
[0023]步骤S24、若节点分到的组内节点数已达到则groupIndex+1,若 groupIndex+1=k,则groupIndex=0;
[0024]步骤S25、重复步骤S24,直至可信状态和正常状态节点全部划分到分组内;
[0025]步骤S26、待可信状态与正常状态节点完成分组后,为异常状态节点分组本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态信任模型的分组拜占庭容错算法,其特征在于:包括客户端、交易处理中心、交易处理器,所述交易处理中心包括交易池,所述客户端向所述交易池提交交易,所述交易处理器提取所述交易池内的交易进行以下处理步骤:步骤S1、节点选取,对节点进行初始化,在初始化阶段,交易处理器为节点依次分配密钥、设置初始信任度、随机选择主节点;步骤S2、节点分组,完成步骤S1后,采用哈希取模的方式对经过步骤S1设置初始信任度的不同信任等级的节点先后进行分组,将全网参与共识的节点划分为k组,并找出每组的leader节点;步骤S3、小组宕机判断,完成步骤S2后,判断各小组是否宕机,如果小组不宕机,则执行步骤S4,如果小组宕机,执行步骤S2以进行重新分组,之后在新试图下执行步骤S4;步骤S4、共识通信,完成步骤S3后,接着将节点提出区块,然后在内对区块进行PBFT共识,组内共识完成后,由各组的leader节点代表本组进行组间PBFT共识,组内和组间共识均完成后,节点将区块同步到本地;步骤S5,主节点的重新选择,完成步骤S4后,根据动态信任模型更新信任度和信任状态并重新选择主节点,进入下一视图。2.根据权利要求1所述的基于动态信任模型的分组拜占庭容错算法,其特征在于,所述步骤S4

S5中,当共识超时,从节点将触发视图切换协议,若有达到2f+1个从节点请求视图切换,则新的主节点发起新视图,开始新一轮的共识工作;所述共识超时为,完成一轮共识后,重新选择出主节点后,但其节点在一个规定的时间内没有收到该主节点发送的pre

prepare消息。3.根据权利要求1所述的基于动态信任模型的分组拜占庭容错算法,其特征在于,所述步骤S2进行节点分组的具体过程如下:步骤S21、将可信状态和正常状态节点随机分配到每组,通过当前区块的哈希值和节点公钥PK计算出h(key),即:h(key)=hash(hash(block),PK)
ꢀꢀ
式1;每次分组时,h(key)均进行更新,由于hash(block)是随机的,因此h(key)也是随机的,而hash(block)的值无法预测且不可控制,满足分组所要求的随机性;步骤S22、获取h(key)后x位十六进制字符,转换成对应的十进制整数y;步骤S23、对y进行取模操作,获取节点对应的随机分组索引groupIndex,groupIndex=y%k
ꢀꢀꢀꢀ
式2;步骤S24、若节点分到的组内节点数已达到则groupIndex+1,若groupIndex+1=k,则groupIndex=0;步骤S25、重复步骤S24,直至可信状态和正常状态节点全部划分到分组内;步骤S26、待可信状态与正常状态节点完成分组后,为异常状态节点分组,首先对异常状态节点执行步骤S21

S23;步骤S27、完成步骤S26后,若节点分到的组内节点数已达到则groupIndex+1,若groupIndex+1=k,则groupIndex=0;步骤S28、重复步骤S27重复这一步,直至异常状态节点划分到分组内。4.根据权利要求3所述的基于动态信任模型的分组拜占庭容错算法,其特征在于:待将
可信状态、正常状态节点、异常状态节点分组完毕后,找出每组的leader节点,所述leader节点查找过程为,主节点所在分组中主节点作为此分组的leader节点,其余各小组中信任度最高的节点作为小组的leader节点,若leader节点宕机或有拜占庭行为,根据组内信任度排序,依次选取下一节点担任leader节点,k个leader节点构成上层共识集群,其余节点构成由上层leader节点领导的底层共识集群,形成一个多中心层次化的网络结构。5.根据权利要求1所述的基于动态信任模型的分组拜占庭容错算法,其特征在于,所述步骤S4的共识通信具体过程如下:步骤S41、组内共识流程:步骤S411、leader节点向组内从节点发送预准备消息,消息格式为<<L

PRE

PREPARE,v,h,t,D(b)>σ
i
,b>。步骤S412、组内从节点接收到来自leader节点的预准备消息后,对消息进行验证,若验证通过,向组内其余节点发送准备消息,消息格式为<<L

PREPARE,v,h,D(b),i>σ
i
>,同时节点接收来自组内其他节点的准备消息,当收到2f
q
+1条准备消息且验证通过,进入commit阶段。步骤S413、组内从节点组织确认消息并向组内其他节点发送,消息格式为<<L

COMMIT,v,h,D(b),i>σ
i
>,同时节点收到来自组内其他节点的确认消息,当收到2f
q
+1条确认消息且验证通过时,则此组组内共识完成;步骤S42、组间共识流程:步骤S421、leader节点向其他组leader节点发送准备消息,消息格式为<<G

PREPARE,v,h,t,D(b)>σ
i
>,在leader节点发送准备消息的同时,会接收到来自其他leader节点的准备消息,若接收到2f
k
+1个准备消息且均通过验证,则进入commit阶段。步骤S422、各leader节...

【专利技术属性】
技术研发人员:刘炜佘维田钊阮敏捷师恩洁宰光军夏玉洁张聪
申请(专利权)人:郑州大学
类型:发明
国别省市:

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

1