一种基于节点信誉计算模型和聚合签名改进的PBFT共识方法

    技术2025-05-18  5


    本发明涉及区块链,尤其涉及一种基于节点信誉计算模型和聚合签名改进的pbft共识方法。


    背景技术:

    1、随着区块链技术的发展,特别是在联盟链领域,共识机制的设计成为确保网络参与者之间有效、安全交互的核心。实用拜占庭容错(pbft)共识算法因其在容错性和效率方面的优势,已被广泛采用于需要严格一致性保证的商业和金融等应用场景中。然而,随着应用环境的复杂化和参与节点数量的增加,这些场景要求共识机制不仅要高效,而且要能够实时响应并具备高度的可扩展性和安全性。传统的pbft算法在处理复杂场景时存在一些明显的局限性。首先该算法在主节点的选择上的效率相对较低,在节点数量增多时,通信开销和处理延迟显著增加,这大大限制了其在大规模系统中的应用。其次pbft算法中的commit和prepare阶段,需要共识网络中任意两个节点之间发送消息,这种高频的广播通信会导致节点之间通信负担的急剧增加,通信量呈现o(n2)的复杂度。当网络中节点数量庞大时,这种通讯负担会显著影响系统性能,极大地消耗计算资源。针对在复杂场景下pbft共识算法的问题,就需要对算法做出改进,在原有一致性协议的基础上引入节点分组和信誉计算模型,同时利用bls聚合签名算法优化节点间的通信效率,降低了响应延迟和通信负担。

    2、因此,提出一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,来解决现有技术存在的困难,是本领域技术人员亟须解决的问题。


    技术实现思路

    1、有鉴于此,本发明提供了一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,通过引入节点分组和信誉计算模型并结合聚合签名,降低通信延迟和通信量,提高共识过程的处理效率。

    2、为了实现上述目的,本发明采用如下技术方案:

    3、一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,包括以下步骤:

    4、s1、初始化/更新节点信誉;

    5、s2、选取共识节点和主节点;

    6、s3、主节点接收请求广播给共识节点;

    7、s4、共识节点开始共识过程;

    8、s5、判断是否达成共识,达成共识之后,所有节点同步消息生成区块。

    9、上述的方法,可选的,s1中引入节点的信誉计算模型计算每个节点的分数,节点的分数计算公式如下:

    10、

    11、cq为节点连接质量,是对节点的连接质量的评估;c为可信度,是对节点是否更改了客户端消息的评估;rd为响应延迟,是从收到pre-prepare消息到向客户端发送回复所需的延迟;slast为节点的旧信誉分,是对节点的上一次共识完成后的信誉分的评估;snew为节点的新信誉分,是对节点的最新信誉分数的评估。

    12、上述的方法,可选的,信誉积分计算模型包括:

    13、当网络中的其余节点试图与之建立连接,但连接失败时,节点连接质量cq就会减少,将其初始化为10;

    14、将可信度c初始化为10,在每次节点从该节点接收到错误摘要时将其递减1,一旦可信度达到阈值,认为该节点是不可信的,它被添加到恶意节点集,不能再参与共识;

    15、只有客户端接收到f+1个相似的回复才能计算响应延迟rd,当节点向客户端发送与f+1个相似回复不匹配的回复时,可信度会递减;

    16、当节点的可信度或者节点的连接质量为0时,节点的新信誉分snew的值为0,否则,按照公式计算。

    17、上述的方法,可选的,s2中,主节点选取优化,根据信誉计算模型计算得出的信誉分最高的节点作为共识本次共识的主节点,在共识的过程中,备份节点对主节点在通信过程中的消息进行检测,如果发现主节点篡改的信息,备份节点会向本次参与共识的节点,除主节点外,广播包含主节点签名的该错误消息,当备份节点收到2f个类似的消息时触发视图切换机制,重新选取主节点,主节点的信誉分将变为0,作为恶意节点,从此不再参与共识。

    18、上述的方法,可选的,s2中,共识节点选取优化,根据信誉分对节点进行分组,将节点分为参与共识的节点nc、响应速度较慢的节点ns以及恶意节点nf,只保留共识集中最有效的节点;

    19、nc和nf不参与共识,当nc中的节点可信度降低时,该节点将会从nc中被移除,根据其信誉分,来判断将其加入ns还是nf中,ns中节点可信度最高的将会被加入nc中参与共识;

    20、节点被加入nf中,将被视作恶意节点,不再参与共识;

    21、节点的信誉分数会被动态调整,每当客户端接收到f+1个对其请求的类似回复时,节点的信誉分数被重新计算,当客户端继续从较慢的节点接收回复时,节点的信誉分数也会被更新。

    22、上述的方法,可选的,s3中,基于提出的节点信誉计算模型选取主节点,客户端c向根据节点信誉计算模型选出的本次共识的主节点发送请求消息<request,o,t,c>σc,其中o代表请求操作,t代表时间戳,σc代表c对请求消息的签名;

    23、主节点收到请求消息m后,验证客户端对请求消息的签名σc,验证不通过,就会丢弃消息,否则主节点将会分配一个序列号n给请求m并进行签名,然后向共识网络中的其余备份节点广播一条包含主节点签名的预准备消息<<pre-prepare,v,n,d>σρ,m>,其中v代表视图编号,d代表消息摘要;

    24、备份节点i收到来自主节点发送的预准备消息,对该预准备消息进行验证,校验通过后会接收该预准备消息并进入准备阶段,节点i会主动向主节点发送一条准备消息<<prepare,v,n,d>σi,i>并将该准备消息写入日志,σi=ski·hashpoint(<prepare,v,n,d>),其中ski为备份节点的私钥、hashpoint将输入映射到椭圆曲线的一个点上。

    25、上述的方法,可选的,s3中,所有备份节点分别向主节点发送数据,主节点接收并整合这些数据后再向其他备份节点广播;

    26、在准备消息<prepare,v,n,d,i>σi中,客户端的一个特定请求对应的v、n、d都是相同的,只有节点索引i和节点的签名σi不一致,备份节点只需要将prepare消息发送给本次共识的主节点,主节点等待收集到2f条来自不同备份节点的prepare消息并验证通过之后,将其整合、签名形成一条prepare消息<prepare,v,n,d,[i],[σi]>σρ,再广播给本次参与共识的网络中其余备份节点;

    27、整合之后prepare消息中的[i]和[σi]分别代表参与共识过程中备份节点的序号列表和签名信息列表。

    28、上述的方法,可选的,s4中,共识节点开始共识过程,包括:

    29、s401、聚合准备消息阶段:

    30、当主节点收到来自备份节点的准备消息<<prepare,v,n,d>σi,i>后,验证消息的签名σi,验证通过后将准备消息写入日志,否则丢弃该准备消息;其中,σi满足e(pki,hashpoint(<prepare,v,n,d>))=e(g,σi),pki代表备份节点i的公钥,pki=ski·g,g代表椭圆曲线上的生成点,f代表网络中允许出错的最大节点数,当主节点已收到2f条对应的来自不同备份节点的准备消息后,再将收到的2f条准备消息整合成一条消息<prepare-agg,σ>σρ广播给网络中的其余备份节点,其中σ为2f条准备消息的聚合签名,σρ代表主节点的签名;

    31、s402、验证聚合准备消息阶段:

    32、当备份节点i收到来自主节点的聚合准备消息<prepare-agg,σ>σρ后,验证主节点的签名σρ,验证不通过,则丢弃该消息,验证通过后,再次验证聚合签名σ;其中σ满足在σ验证通过后,备份节点会向主节点发送一条提交消息<<commit,v,n,d>σi,i>;

    33、s403、聚合提交消息阶段:

    34、当主节点收到来自备份节点的提交消息<<commit,v,n,d>σi,i>后,验证备份节点i签名σi,验证通过后将收到的提交消息写入日志,否则丢弃该消息;其中,σi满足e(pki,hashpoint(<commit,v,n,d>))=e(g,σi),当主节点已收到2f条验证通过的来自不同备份节点i的提交消息时,再聚合成一条消息<commit-agg,σ>σρ广播给网络中的其他备份节点,并执行客户端的请求,将结果写入日志,并向客户端发送执行结果;

    35、s404、验证聚合提交消息阶段

    36、当备份节点i收到来自主节点聚合提交消息<commit-agg,σ>σρ,验证主节点的签名σρ,验证不通过,丢弃该消息,验证通过后,再次验证聚合签名σ;其中,σ满足σ验证通过后,备份节点i执行客户端的请求,然后将结果写入日志,并向客户端发送执行结果;

    37、s405、客户端响应阶段

    38、当客户端收到节点发送的执行结果时,验证执行结果的签名是否正确,验证通过,则保留信息,增加节点的可信度,否则,丢弃该消息,降低节点的可信度;当客户端收到2f+1条来自不同节点的类似的执行结果时,向所有节点进行回复,包括参与共识的节点和未参与共识的节点,用于同步消息,维护账本的一致性,节点的信誉分会根据信誉模型进行更新,参与共识的节点也会根据最新的节点信誉分进行更新。

    39、上述的方法,可选的,在共识的过程中备份节点会时刻监督判断主节点行为,一旦发现主节点存在作恶行为,则进行视图更换协议,并再次选取主节点,并且根据主节点的行为重新计算主节点的分数,否则生成新区块。

    40、上述的方法,可选的,使用bls聚合签名算法签名,签名方案如下所示:

    41、(1)签名:

    42、对消息m进行曲线哈希得到hashpoint(m);

    43、使用私钥pk进行签名得到签名s,s=pk·hashpoint(m);

    44、(2)验证签名

    45、使用公钥p进行验证签名,其中p=pk·g,g为椭圆曲线上的一个特定点,可以通过重复的椭圆曲线点加法运算生成椭圆曲线上的所有点,验证过程如下:

    46、e(p,hashpoint(m))=e(g,s)  (2)

    47、(3)证明

    48、已知:公钥p=pk·g,曲线配对函数具有e(xp,q)=e(p,xq)的特性,所以:

    49、e(p,hashpoint(m))=e(pk·g,hashpoint(m))

    50、=e(g,pk·hashpoint(m))=e(g,s)  (3)

    51、验证bls签名的有效性,只需要验证公钥和经由哈希曲线得到的消息在椭圆曲线上的两个点与椭圆曲线上的一个点g和私钥与曲线哈希生成的曲线上的点的乘积得到的签名是否映射到相同的数,如果映射到相同的数则说明这是一个有效的签名,否则签名无效。

    52、经由上述的技术方案可知,与现有技术相比,本发明提供了一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,具有以下有益效果:在原有一致性协议的基础上建立节点信誉计算模型并对主节点和共识节点选取和通信量进行优化,结合bls聚合签名,在能够保证安全的情况下相较于pbft延迟降低,通过bls聚合签名降低通信开销;故障节点可被快速检测和丢弃,根据信誉节点计算模型得到节点信誉分,恶意节点会被检测到并且被丢弃,从而无法参与验证过程;优化之后的ga-pbft共识算法间的消息通信量由原来的0(n2)降为了0(n),在ga-pbft中,还有涉及基于节点信誉计算模型进行节点分组的机制,节点间的消息通信总量还会再次降低;采用bls聚合签名,主节点将收到2f条来自不同备份节点的prepare消息聚合成一个单一签名,降低共识网络中节点间传播的消息总数,消息的总大小也因减少了冗余信息的传输有所减少。


    技术特征:

    1.一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,包括以下步骤:

    2.根据权利要求1所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,s1中引入节点的信誉计算模型计算每个节点的分数,节点的分数计算公式如下:

    3.根据权利要求2所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,信誉积分计算模型包括:

    4.根据权利要求1所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,s2中,主节点选取优化,根据信誉计算模型计算得出的信誉分最高的节点作为共识本次共识的主节点,在共识的过程中,备份节点对主节点在通信过程中的消息进行检测,若发现主节点篡改的信息,则备份节点向本次参与共识的节点,除主节点外,广播包含主节点签名的该错误消息,当备份节点收到2f个类似的消息时触发视图切换机制,重新选取主节点,主节点的信誉分将变为0,作为恶意节点,从此不再参与共识。

    5.根据权利要求1所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,s2中,共识节点选取优化,根据信誉分对节点进行分组,将节点分为参与共识的节点nc、响应速度较慢的节点ns以及恶意节点nf,只保留共识集中最有效的节点;

    6.根据权利要求1所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,s3中,基于提出的节点信誉计算模型选取主节点,客户端c向根据节点信誉计算模型选出的本次共识的主节点发送请求消息<request,o,t,c>σc,其中o代表请求操作,t代表时间戳,σc代表c对请求消息的签名;

    7.根据权利要求6所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,s3中,所有备份节点分别向主节点发送数据,主节点接收并整合这些数据后再向其他备份节点广播;

    8.根据权利要求1所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,s4中,共识节点开始共识过程,包括:

    9.根据权利要求8所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,在共识的过程中备份节点会时刻监督判断主节点行为,一旦发现主节点存在作恶行为,则进行视图更换协议,并再次选取主节点,并且根据主节点的行为重新计算主节点的分数,否则生成新区块。

    10.根据权利要求1-9任意一项所述的一种基于节点信誉计算模型和聚合签名改进的pbft共识方法,其特征在于,使用bls聚合签名算法签名,签名方案如下所示:


    技术总结
    本发明公开了一种基于节点信誉计算模型和聚合签名改进的PBFT共识方法,涉及区块链技术领域。包括:初始化/更新节点信誉;选取共识节点和主节点;主节点接收请求广播给共识节点;共识节点开始共识过程;判断是否达成共识,达成共识之后,所有节点同步消息生成区块。本发明通过引入节点分组和信誉计算模型并结合聚合签名,降低通信延迟和通信量,提高共识过程的处理效率。

    技术研发人员:高攀,杨景雯,葛文飞,庞晋鹏,黄宣榕
    受保护的技术使用者:石河子大学
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-30872.html

    最新回复(0)