利索能及
我要发布
收藏
专利号: 2022102532553
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-10-22
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种面向分层架构的PBFT共识节点动态调整方法,其特征在于,该方法用于物联网中的共识节点实现动态的调整并保障共识流程顺利完成,具体包括以下步骤:S1、利用K‑mediods聚类算法对终端节点进行聚类,将聚类结果的每个簇的簇心作为第一层共识组合,簇内的其他节点作为第二层共识组;利用K‑mediods聚类算法对终端节点进行聚类包括:S11、终端节点根据信誉机制选取出N个信誉值较高的节点作为聚类中心;

S12、其他终端节点使用K‑mediods聚类算法以距离为相似度评判标准来进行初步聚类;

S13、初步聚类完成之后,以簇心的距离为收缩因子,每次凝聚距离最近的两个簇心,并对其所在的簇进行收缩;

S14、重复步骤S13,直到收缩后簇内的簇心达到设置代表点的个数为止,完成聚类;

S2、每个簇中作为簇心的节点与该簇内其他节点交互,进行门限代理授权;具体包括:S21:将每个簇内的簇心作为原始签名者A、簇内其他节点作为代理小组B,原始签名者A与代理小组B={B1,B2,...Bn2}通过信息交互生成并公开部分公共参数;

S22:原始签名者A和代理小组B进行信息交互,原始签名者A根据交互信息生成授权信息;

S23:代理小组成员Bi收到授权消息后,会进行联合验证,确定授权信息来自原始签名者A,验证通过后Bi计算获取得到自己的门限代理密钥,i∈[1,2,...,n2];

S24:代理小组成员Bi使用门限代理密钥生成门限代理签名si,然后将签名进行广播,Bi收到至少t个其他成员发来的签名,并利用收到的签名将原始签名者A的签名s恢复出来;

S25:其他成员使用A的公钥验证聚合后的签名是否正确;

S3、每个簇内的节点广播该节点拥有的数据摘要,由该簇作为簇心的节点担任第二层共识组的主节点,将一段时间内的数据进行共识;具体包括:S31:簇内节点将自己收集的数据使用哈希算法生成数据摘要,并将数据摘要在簇内进行广播;

S32:主节点收集一段时间内的所有数据摘要,并发起一次PBFT共识;

S33:共识达成之后,簇内所有节点都会将共识的结果存储在本地缓存区Buff;

S4、第一层共识组合中的节点轮流作为主节点,且当前作为主节点的节点将其所在簇内完成的共识结果进行打包,并在本轮共识中发起共识;

第一层共识组进行共识的过程包括以下步骤:

S41:第一层共识组的所有节点使用轮询的方式选择主节点;

S42:在[ts1,ts2]这段时间内,主节点检查自己缓存区Buff里是否有数据,如果有则执行PBFT共识算法,并将第二层共识组共识的结果作为本轮要达成一致的值,如果没有则将主节点的权限交给下一个代表点,且跳过同为一个簇的代表点;

S43:第一层的共识达成之后,每个代表点将会把共识结果广播给簇内节点,簇内节点收到大于本簇一半的代表节点的广播消息,则会接受这个共识结果,完成共识;

新节点加入共识组的过程包括以下步骤:

S51、判断新节点与每个簇簇心的距离,选择距离最短对应的簇作为期望加入的簇;

S52、向期望加入的簇发送加入申请,加入申请至少包括新节点的身份信息和公钥信息;

S53、根据新节点的身份信息和公钥信息判断新节点是否能够加入,若能够加入则初始化新节点的信誉值;

S54、当一个簇内的新加入的节点数量的个数大于等于代理小组总数的一半时,该簇需要重新进行门限代理权签名;

当完成一次共识时,给予参与该次共识的节点一定总信誉值,令参与该次共识的节点平分总信誉值;若节点状态为在线但不作为则扣除在该次共识信誉值,扣除的数值为成功参加共识的节点得到的信誉值,不作为是指参加共识过程、但是没有转发消息;若节点状态为离线,但是簇内其他节点帮助其代理签名成功,则该节点不会扣分,但是也不参与平分总信誉值;若是节点状态为离线,且簇内其他节点没有帮助其代理则按照不作为处理;其中,节点离线包括临时离线和永久离线;

当第二层共识组中有节点在共识过程中临时离线时,该节点会作为宕机节点处理,此时该簇的共识容错为f2‑1,该节点会在下一轮共识之前被踢出共识组,待其回到网络中时,再次按照新节点加入流程加入到共识组,但是其信誉值不需要初始化;

当第一层共识组中有节点在共识过程中临时离线时,其簇内节点会生成门限代理签名代理其完成当前轮共识,门限代理签名的结果由在同簇内的其他代表点恢复并广播到第一层共识,待离线的节点重新回到共识组的时候,通过其一次广播消息,使得此后代理小组的代理签名失效;

其中,f2为一个簇的可容忍的拜占庭个数;

当第二层共识组中有节点在共识过程中永久离线时,该节点会作为宕机节点处理,此时该簇的共识容错为f2‑1,该节点会在下一轮共识之前被踢出共识组,并且会将其信誉值及其所有身份信息从网络中清除;

当第一层共识组中有节点在共识过程中永久退出时,其签名权限由其簇内节点代理,此时需要检测同簇的其他代表点是否在线,如果所有的同簇代表点都永久离线,所有节点重新进行聚类划分。