欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2023101419581
申请人: 西安理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2026-04-06
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.基于PBFT改进的联盟区块链共识方法,其特征在于,具体按照以下步骤实施:

步骤1,在第一次进行共识前,所有节点都有统一的初始吞吐量指标,初始共识节点由配置文件生成,检查是否存在节点变动,如果存在变动转至步骤2,否则转至步骤3;

步骤2,如果有新的节点加入共识集群,启动AddNode流程接纳新节点并更改节点总数N;如果有节点要退出共识集群,启动DeleteNode流程从集群中删除要退出的节点并更改节点总数N;

步骤3,主节点检查接收到来自客户端的request是否合法,如果合法跳转步骤4,如果不合法回复客户端并结束;

步骤4,主节点将合法的request签名后发送给共识集群内的所有节点,开始执行改进的PBFT共识,在共识执行的整个过程中,如果检测到主节点是恶意节点,共识暂时中断,跳转至步骤5,如果未检测到主节点异常则转至步骤6;具体如下:步骤4.1,Pre-prepare阶段;主节点生成pre-prepare消息并将其向各副本节点广播;

pre-prepare消息包括:pre-prepare--消息类型、v--视图编号、d--请求消息摘要,即对request做哈希运算得到的定长字符串、n--request消息编号,在主节点生成pre-prepare消息时赋予编号、--主节点对pre-prepare消息的签名,i是节点id;

步骤4.2,进入Prepare阶段,副本节点接收主节点广播的pre-prepare消息;对pre-prepare消息进行验证;

具体包括:验证pre-prepare消息的签名是否正确,是否已接收过序号为n且摘要d不同的request,检查不通过进入步骤5;检查通过则副本节点将pre-prepare消息写入本地消息日志,然后副本节点生成prepare消息并将其广播至集群内其他节点,接收到其他节点发送过来的prepare消息后进行检查,检查内容为:prepare消息中的d与pre-prepare消息中的d是否相同,prepare消息中的签名是否正确,检查不通过,则证明主节点是恶意节点,共识暂时中断,进入步骤5,检查通过则进入步骤4.3;

步骤4.3,Commit阶段;副本节点收到2f+1,个验证通过的prepare消息后,f= n/3,n为节点总数,生成确认消息commit,根据随机匹配算法,即每个节点将自己生成的commit消息签名后随机发给另一个节点,进行验证,每个节点仅能发送一条commit消息以及仅能收到一条来自另一个节点的commit消息;

验证内容:commit消息中的d与pre-prepare消息中的d是否相同,commit消息中的签名是否正确;验证commit消息通过则进入步骤6,验证不通过则将自身收到的commit消息广播给其他节点进行二次验证,二次验证完毕,则进入步骤6;

步骤5,检查是否需要进行视图更改,如果需要试图更改,则执行ViewChange流程更新视图轮次,完成后跳转至步骤4,否则转至步骤6;

步骤6,Reply阶段;节点生成reply消息并发送给客户端,客户端在收到f+1条reply消息后共识完成。

2.根据权利要求1所述的基于PBFT改进的联盟区块链共识方法,其特征在于,所述步骤2中,具体为:步骤2.1,新的节点需要得到证书颁发机构颁发的证书,然后向集群中的所有节点发送AddNode请求消息,包括新节点Id,节点编号,消息类型,新节点签名;

步骤2.2,各个节点确认同意后会向集群中的其他节点进行全网广播,当一个节点得到2f+1个AgreeAdd的回复后会与新节点建立连接,f为可容纳的恶意节点数;

步骤2.3,当新的节点和N-f个节点建立连接后就可以执行主动恢复算法recovery,同步区块链联盟成员的最新状态;N为共识集群节点总数;

步骤2.4,新节点同步完状态后,各个节点会向集群中的其他节点进行全网广播AggreeUpdate,随后所有节点验证Update后完成节点总数N的更新,新节点加入共识流程;

步骤2.5,主节点向集群中的所有节点发送DeleteNode请求,包括退出节点的节点Id,节点编号,消息类型,退出节点的签名;

步骤2.6,各个节点确认后会向集群中的其他节点进行全网广播,当一个节点得到2f+1个AgreeDel的回复后会与新节点断开连接;

步骤2.7,各个节点会向集群中的其他节点进行全网广播AggreeUpdate,随后所有节点验证Update后完成节点总数N的更新。

3.根据权利要求1所述的基于PBFT改进的联盟区块链共识方法,其特征在于,所述步骤3中, request包括:O--操作类型、operation;T--时间戳、timestamp;C--客户端标记、client;—客户端签名;判断是否合法的方法是检查客户端签名是否正确。

4.根据权利要求1所述的基于PBFT改进的联盟区块链共识方法,其特征在于,所述步骤4.3中,随机过程中使用的随机函数如下:其中,节点自身Id,节点总数N,当前视图View,客户端消息request摘要Hash,⊕符号代表运算方式;由于每一次交易的Hash不同所以每轮共识过程中commit消息的验证者也不同,从而避免两个恶意节点串通的情况;

令N为节点总数,f为恶意节点数量,根据PBFT协议要求N≥3f+1,据此可得集群中两个恶意节点相互串通的概率P为又  ,故,因此设计能以高于99.21%的概率防止两个恶意节点串通。

5.根据权利要求1所述的基于PBFT改进的联盟区块链共识方法,其特征在于,所述步骤4.3中,二次验证过程为:第一个节点收到另一个节点的commit消息进行验证,如果验证不通过,第一个节点将另一个节点发来的commit消息广播给其他节点进行二次验证;其他节点二次验证通过,说明第一个节点是恶意节点,将第一个节点作为恶意节点记录下来,如果不通过说明另一个节点的commit消息是恶意节点,将另一个节点作为恶意节点记录下来;识别出恶意节点后在下一轮验证开始前启动DeleteNode流程删除恶意节点;直至所有节点验证完毕,则进入步骤6。

6.根据权利要求1所述的基于PBFT改进的联盟区块链共识方法,其特征在于,所述步骤5中,具体为:步骤5.1,副本节点检测到主节点有以上异常情况或者接收来自其他f+1个节点的ViewChange消息之后会向全网广播ViewChange消息;

步骤5.2,新主节点收到2f+1个ViewChange消息时,会发送NewView消息;

步骤5.3,副本节点接收到NewView消息之后进行消息的验证,随后广播各自节点的VCReset,继续完后切换试图前未完成的交易,正式更换ViewChange,从而完成整个ViewChange流程,跳转至步骤4。

7.根据权利要求1所述的基于PBFT改进的联盟区块链共识方法,其特征在于,所述步骤6中,reply消息内容包括:reply--消息类型、v--视图编号、d--请求消息摘要,即对request做哈希运算得到的定长字符串、n--request消息编号,在主节点生成pre-prepare消息时赋予编号、--节点对reply消息的签名,i是节点id。