买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种面向大规模医药溯源的PBFT优化方法_南京邮电大学_202311715219.5 

申请/专利权人:南京邮电大学

申请日:2023-12-14

公开(公告)日:2024-03-08

公开(公告)号:CN117408718B

主分类号:G06Q30/018

分类号:G06Q30/018;G16H70/40;G06F21/64;H04L9/00;H04L9/32;H04L9/30;H04L9/08

优先权:

专利状态码:有效-授权

法律状态:2024.03.08#授权;2024.02.02#实质审查的生效;2024.01.16#公开

摘要:本发明属于区块链共识算法技术领域,公开了一种面向大规模医药溯源的PBFT优化方法,包括:步骤1、DSE‑PBFT算法初始化,设置超时时间,设置所有节点初始信誉积分;步骤2、将所有节点分为共识集和普通集,共识集参与共识,普通集不参与共识但接受共识结果;步骤3、选择主节点向共识网络发起共识请求;步骤4、DSE‑PBFT算法节点间采用一对多的网络通信,经过四个阶段,并在四阶段共识过程中使用阈值签名方案,实现全局共识;步骤5、根据共识结果对每一个节点信誉积分值的进行更新,完成一次共识流程。本发明能够展现出更高的吞吐量、更低的时延、更小的通信开销以及更好的安全性,是一种面向大规模医药溯源的有效方法。

主权项:1.一种面向大规模医药溯源的PBFT优化方法,其特征在于:所述优化方法包括如下步骤:步骤1、DSE-PBFT算法初始化,设置超时时间,将所有节点的初始信誉积分和初始影响因子设置为0.5;步骤2、将所有节点分为共识集和普通集,并且初始化时所有节点的顺序都是随机的,其中所述共识集参与共识,所述普通集不参与共识但接受共识结果;步骤3、从参与共识过程的所有节点中选择主节点向共识网络发起共识请求;步骤4、DSE-PBFT算法节点间采用一对多的网络通信,经过预准备、准备、预提交、提交四个阶段实现全局共识,并在四阶段共识过程中使用阈值签名方案,实现全局共识,得出共识结果,因共识超时继而发生视图切换,使用可验证随机函数VRF选举新的主节点,增加主节点的不可预测性,有效避免了主节点恶意攻击;步骤5、主节点收到确认消息后执行请求的具体操作,并向客户端和所有共识集和普通集广播共识结果,根据共识结果对每一个节点信誉积分值的进行更新,完成一次共识流程;其中,在所述步骤4的共识过程中引入阈值签名方案,其中,阈值签名采用基于BLS签名的k,n阈值签名方案,最大程度保护共识网络的安全性,BLS签名是基于椭圆曲线secp256r1实现,主要包括以下步骤:步骤4.1、生成私钥priKi,计算对应的公钥,生成公私钥对;步骤4.2、计算聚合签名函数;步骤4.3、验证步骤4.2的聚合签名函数;所述步骤4.1密钥对生成函数具体包括如下步骤:步骤4.1.1、在节点的初始化阶段,节点i使用随机数生成器生成私钥priKi:pubKi=priKi*G1步骤4.1.2、通过步骤4.1.1中的公式计算对应的公钥,每个节点都有了公私钥对,表示为pubKi,priKi;步骤4.1.3、每个节点广播自己的公钥,确保每个节点访问自己的私钥和其他节点的公钥;步骤4.1.4、然后再根据下式2计算出n个公钥的聚合公钥P,节点i广播对pubKi的签名以证明pubKi是聚合公钥P的一部分;P=pubK1+pubK2+…+pubKn2其中G是椭圆曲线secp256r1的基点,基点是预定义的,并且对于每个椭圆曲线参数,基点是固定的;步骤4.2、计算聚合签名函数具体包括如下步骤:步骤4.2.1、使用SHA-256作为签名方案的哈希函数,节点i收到消息m后,计算出消息m的摘要d,公式为:d=hashm3步骤4.2.2、在摘要d的基础上,节点根据私钥priKi和公式4计算出签名Si:Si=priKi*Hd4步骤4.2.3、构建带有签名的消息发送给主节点,并将其加入到本地缓存中以便后续验证,当主节点收到足够多的签名后再根据公式5计算出聚合签名S: 其中,H为曲线哈希函数;步骤4.3中验证聚合签名S的正确性需要验证公式6是否成立,若成立则验证通过,否则验证不通过,eG,S=eP′,Hd6其中,P′是k个节点的聚合公钥;所述DSE-PBFT算法改进了PBFT的共识流程,将PBFT的网状通信拓扑结构变成线性通信拓扑结构,将通信复杂度从On2降低到On,具体的,所述DSE-PBFT算法包括如下步骤:步骤1.1、请求阶段:客户端c向主节点发送请求消息REQUEST,o,t,c来请求执行操作o,其中,t表示请求的时间戳;步骤1.2、预准备阶段:主节点收到请求消息后,为这个请求分配一个序列号,并向所有备份节点广播预准备消息PRE-PREPARE,v,seq,d,m,其中,m为请求消息,d为消息m的摘要;步骤1.3、准备阶段:备份节点收到预准备消息之后进行验证,验证成功后备份节点通过私钥对预准备消息加密得到Si,然后将准备消息PREPARE,v,seq,d,i,Si发送给主节点,其中i表示共识节点的id,Si表示节点i对消息加密之后的签名;步骤1.4、预提交阶段:主节点收到准备消息之后对消息本身以及阈值签名Si进行验证,验证成功后将其写入日志,如果主节点收到了2f个来自不同节点的验证成功的准备消息,则向所有备份节点广播提交消息PRE-COMMIT,v,seq,d,i,S,其中S代表将多个签名聚合之后的签名;步骤1.5、提交阶段:备份节点,收到预提交消息之后对消息本身以及聚合签名进行验证,验证成功后备份节点将提交消息COMMIT,v,seq,d,i,S发送给主节点;步骤1.6、答复阶段:如果主节点累计收到2f个验证成功的来自不同备份节点的提交消息,则执行请求的具体操作,并向客户端以及所有备份节点发送回复消息REPLY,v,c,i,r,其中r表示执行请求操作的结果,客户端若收到f+1正确答复,则表示共识已经达成。

全文数据:

权利要求:

百度查询: 南京邮电大学 一种面向大规模医药溯源的PBFT优化方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。