(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210902646.3
(22)申请日 2022.07.27
(71)申请人 郑州大学
地址 450001 河南省郑州市高新 技术开发
区科学大道100号
(72)发明人 刘炜 佘维 田钊 阮敏捷
师恩洁 宰光军 夏玉洁 张聪
(74)专利代理 机构 郑州裕晟知识产权代理事务
所(特殊普通 合伙) 41142
专利代理师 徐志威
(51)Int.Cl.
G06Q 20/38(2012.01)
G06Q 20/40(2012.01)
H04L 67/1095(2022.01)
H04L 9/32(2006.01)
(54)发明名称
基于动态信任 模型的分组拜占庭容 错算法
(57)摘要
本发明提供一种基于动态信任模型的分组
拜占庭容错算法, 包括客户端、 交易处理中心、 交
易处理器, 所述交易处理中心包括交易池, 所述
客户端向所述交易池提交交易, 所述交易处理器
提取所述交易池内的交易依次进行节 点选取、 节
点分组、 共识通信、 依据信任度评估进行主节点
重新选取, 在节点选取阶段, 对节点进行初始化,
在初始化阶段, 交易处理器为节点依次分配密
钥、 设置初始信任度、 随机选 择主节点; 节 点分组
中, 用哈希取模的方式对节点先后进行分组, 并
找出每组的lea der节点; 本发明有效降低了通信
开销和共识时延, 提高了吞吐量、 可靠性和稳定
性, 有效降低拜占庭容 错算的通信复杂度。
权利要求书4页 说明书16页 附图3页
CN 115271724 A
2022.11.01
CN 115271724 A
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(bl ock), PK) 式1;
每次分组时, h(key)均进行更新, 由于hash(block)是随机的, 因此h(key)也是随机的,
而hash(bl ock)的值无法预测且不可控制, 满足分组所要求的随机性;
步骤S22、 获取h(key)后x位十六进制字符, 转换成对应的十进制整数y;
步骤S23、 对y进行 取模操作, 获取节点对应的随机分组索引groupI ndex,
groupIndex=y%k 式2;
步骤S24、 若节点分到的组 内节点数已达到
则groupIndex+1, 若groupIndex+1
=k, 则groupI ndex=0;
步骤S25、 重复步骤S24, 直至可信状态和正常状态 节点全部划分到分组内;
步骤S26、 待可信状态与正常状态节点完成分组后, 为异常状态节点分组, 首先对异常
状态节点执行步骤S21 ‑S23;
步骤S27、 完成步骤S26后, 若节点分到 的组内节点数已达到
则groupIndex+1, 若
groupIndex+1= k, 则groupI ndex=0;
步骤S28、 重复步骤S27重复这 一步, 直至异常状态 节点划分到分组内。
4.根据权利要求3所述的基于动态信任模型的分组拜占庭容错算法, 其特征在于: 待将权 利 要 求 书 1/4 页
2
CN 115271724 A
2可信状态、 正常状态节点、 异常状态节点分组完毕后, 找出每组的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>, 同时
节点接收来自组内其他节点的准备消息, 当收到2fq+1条准备消息且验证通过, 进入commit
阶段。
步骤S413、 组内从节点组织确认消息并向组内其他节点发送, 消息格式为<<L ‑COMMIT,
v, h, D(b), i>σi>, 同时节点收到 来自组内其他节点的确认消息, 当收到2fq+1条确认消息且
验证通过时, 则此组 组内共识完成;
步骤S42、 组间共识流 程:
步骤S421、 leader节点向其他组leader节点发送准备消息, 消息格式为<<G ‑PREPARE,
v, h, t, D(b)>σi>, 在leader节点发送准备消息的同时, 会接收到来自其他leader节点的准
备消息, 若接收到2fk+1个准备消息且均通过验证, 则进入com mit阶段。
步骤S422、 各le ader节点向其他le ader节点发送确认消息, 消息格式为<<G ‑COMMIT, v,
h, D(b), i>σi>。 当各leader 节点收到2fk+1个确认消息且 验证通过时, 组间共识完成;
步骤S43、 区块同步到 本地流程:
完成步骤S41 ‑S42后, 各leader节点向其组内从节点发送执行消息, 各组节点将区块附
加到本地区块链, 实现区块链系统中数据的最终一 致。
6.根据权利要求5所述的基于动态信任模型的分组拜占庭容错算法, 其特征在于, 在进
行步骤S41 ‑S42时, 需要对预准备消息进行以下几点验证:
(1)v与当前自身所在视图编号是否一 致;
(2)h与当前区块高度是否一 致;
(3)D(b)与区块b的摘要是否一 致;
(4)消息签名是否合法;
(5)区块体中的交易是否合法, 交易脚本是否能正确执 行;
(6)区块头中各字段 是否正确有效;
若各项验证均通过, 则承认消息的有效性, 节点执 行区块, 并缓存执 行结果。
7.根据权利要求1所述的基于动态信任模型的分组拜占庭容错算法, 其特征在于, 所述
步骤S5中的动态信任模型包括信任奖惩机制、 信任消耗机制、 信任恢复机制、 信任等级机
制, 所述信任度的计算依据信任 奖惩、 信任消耗和信任恢复机制, 所述信任等级机制通过节
点信任度的大小设置节点信任状态, 管理节点权限。权 利 要 求 书 2/4 页
3
CN 115271724 A
3
专利 基于动态信任模型的分组拜占庭容错算法
文档预览
中文文档
24 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共24页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-03-03 12:16:24上传分享