一种大规模节点高效共识方法技术

技术编号:34626588 阅读:17 留言:0更新日期:2022-08-20 09:34
本发明专利技术公开了一种大规模节点高效共识方法,涉及信息安全技术领域,网络中的节点划分成多个分组,每个分组并行地处理不相交的数据,在每个组内运行改进的可扩展PBFT共识算法,处理并存储区块信息。各分组将节点划分为上下两层,并为各层节点计算聚合公钥和成员密钥等,在共识过程中启用多重BLS聚合签名。上层节点先进行共识的预准备和准备过程,然后下层节点依次进行预准备、准备和确认过程,最后上层节点完成确认过程,结束两层共识。本发明专利技术能够用于大规模节点间进行高效共识,相较于传统的PBFT类共识方法,更加安全和高效。更加安全和高效。更加安全和高效。

【技术实现步骤摘要】
一种大规模节点高效共识方法


[0001]本专利技术涉及信息安全
,具体涉及一种大规模节点高效共识方法。

技术介绍

[0002]区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识算法。共识算法是区块链技术的重要组件,解决了节点之间的相互信任问题,在维护区块链的安全和效率方面起着至关重要的作用,使用正确的算法可显著提高区块链系统的性能。尽管区块链技术被广泛研究和开发,它始终没能得到大规模应用。一个主要的原因是,大多数区块链系统不能提供高吞吐率以及高可伸缩性来满足大规模节点间的数据处理需求。因此,大规模节点高效共识方法就是专门解决此类问题的。
[0003]根据节点准入机制的不同,传统的共识算法包括私有链共识、公有链共识和联盟链共识,其中私有链的共识算法运用的是传统分布式系统里的共识算法,主要代表算法有Paxos、Raft等,这类算法不会考虑拜占庭容错问题,一般只考虑因为节点自身以及网络原因导致的故障(如节点宕机、网络故障等因素)而不考虑集群中会有恶意节点的情况;公有链共识算法属于去中心化程度最高的,主要代表算法有PoW、PoS等,这类算法对外开放,可以抵抗1/2算力的恶意攻击,具有较强的可扩展性,但是挖矿计算带来的开销较大,并且算法性能较差;联盟链共识算法对节点进行了准入限制,主要代表算法有PBFT和PBFT改进算法等,具有低能耗和高性能等特点,可以提供1/3的容错能力。但是,PBFT算法为了达成数据的一致性采用了多阶段交互的方式,而在一轮共识的过程整个网络达到O(n2)的通信复杂度(n为参与共识的节点数量)。现有PBFT消息扩散协议的可扩展性较差,不适用于大规模节点间的共识。因此,如何在大规模节点间高效的达成共识是一个值得解决的问题。

技术实现思路

[0004]针对现有技术中存在的问题,本专利技术提一种大规模节点高效共识方法,能够通过分组的方式实现网络规模的横向扩展,并且当分组数量达到上限后,通过改进现有PBFT共识算法在分组内进行纵向扩展。该算法将PBFT算法扩展为多层以降低单层共识所需通信开销,并在每轮PBFT共识中引入聚合签名进一步降低所需通信次数,使大规模节点间的共识安全且高效。
[0005]为了实现上述目的,本专利技术采用以下的技术方案:
[0006]一种大规模节点高效共识方法,包括以下步骤:
[0007]步骤1.将全网节点划分成多个分组,所有的区块数据被划分到各个分组,每组只处理和存储与本分组相关联的区块信息;
[0008]步骤2.将每个分组的节点划分为上下两层结构,上层网络组成一个分区,下层网络包含多个独立的分区;
[0009]步骤3.在上下两层网络的各个分区内,计算和分发聚合签名所需的密钥信息;
[0010]步骤4.在每个分组内,上层网络主节点接收区块数据,并利用秘钥信息上层网络
节点先进行共识的预准备和准备过程,然后下层网络节点依次进行预准备、准备和确认过程,最后上层节点完成确认过程,结束两层共识。
[0011]进一步的,所述步骤2的具体实现过程如下:
[0012]将每个分组的节点划分为上下两层结构,上层网络组成一个分区,其中1个主节点,p个副本节点,副本节点中有m个为下层网络的主节点,其中p≥m,且p≥3;下层网络包含m个分区,每个分区包含1个主节点,n个副本节点,下层网络的主节点同时为上层网络的副本节点,其中n≥3。
[0013]进一步的,所述步骤3的具体实现过程如下:
[0014]设定上层网络节点总数为3f1+1,f1≥1,下层网络每个分区的节点数为3f2+1,f2≥1,然后在各层网络中进行初始化设置,初始化过程为:上层网络和下层分区网络分别构造(2f1+1,3f1+1)和(2f1+1,3f2+1)多重签名,在上层网络和下层网络的每个分区内,用分区内所有节点的公钥计算聚合公钥,每个节点用自己的私钥计算成员密钥,并在各分区内分享聚合公钥和成员密钥。
[0015]进一步的,所述步骤4的具体实现过程如下:
[0016]步骤401,上层预准备阶段;在进入新一轮共识之前,上层主节点统计上一轮本层共识确认阶段的确认信息,如果在超时之前,上层主节点收集到不少于2f1+1条确认信息,则进入新一轮共识;如果在超时时间内未收集到2f1+1条确认信息,则重发已完成的共识结果给本层其余的副本节点,再进行新一轮的共识流程;
[0017]当开始新一轮共识后,上层主节点收集交易内存池中的交易,将交易打包成区块并广播给本层所有副本节点;广播消息为<<pre

prepare,v,h,d>,block>,其中pre

prepare标识当前消息所处的协议阶段,v标识当前消息所在的视图编号,h为区块高度,d为上层主节点对区块block的签名,block为整个区块内容;
[0018]步骤402,上层准备阶段;上层准备过程分为两个阶段:
[0019]阶段一:上层副本节点收到本层主节点发送过来的广播消息后,首先对消息进行验证,检查签名、区块高度以及视图编号,验证完毕后对其中的所有交易进行验证,验证无误后发送一条<prepare1,v,h,d,i>给本层主节点,其中prepare1标识当前消息所处的协议阶段,v标识当前消息所在的视图编号,h为区块高度,d为上层副本节点对区块block的签名,i为副本节点编号;
[0020]阶段二:上层主节点一直监听本层副本节点发送过来的prepare1信息,上层主节点对每个prepare1信息进行验证,验证通过则收集起来,收集到不少于2f1+1个签名后,分别验证每个签名,并将验证通过的2f1+1个不同节点的签名聚合起来,形成对区块的聚合签名信息,广播一条<prepare2,v,h,aggrsignature,node>消息给所有本层副本节点,其中prepare2标识当前消息所处的协议阶段,v标识当前消息所在的视图编号,h为区块高度,aggrsignature为上层主节点对区块block的聚合签名,node为参与聚合签名的所有节点的ID列表,上层主节点收集的签名包括自己的签名;
[0021]步骤403,下层预准备阶段;当上层副本节点接收到上层主节点的prepare2消息后,根据上层主节点提供的node信息,生成所有参与聚合签名节点的合成公钥,并将本地存储的区块信息作为签名验证算法的输入,进行聚合签名的验证过程,当聚合签名、视图编号和区块高度验证不通过或验证超时,上层副本节点向本层所有节点广播视图切换信息,当
本层副本节点接收到不少于2f1+1个视图切换请求后,重新进行本层主节点选举;如果在规定时间内验证通过,上层副本节点等下层共识完成后进入上层确认阶段,上层副本节点中同时担任下层分区主节点的节点向下层分区副本节点广播一条<<pre

prepare,v,h,d,d
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大规模节点高效共识方法,其特征在于,包括以下步骤:步骤1.将全网节点划分成多个分组,所有的区块数据被划分到各个分组,每组只处理和存储与本分组相关联的区块信息;步骤2.将每个分组的节点划分为上下两层结构,上层网络组成一个分区,下层网络包含多个独立的分区;步骤3.在上下两层网络的各个分区内,计算和分发聚合签名所需的密钥信息;步骤4.在每个分组内,上层网络主节点接收区块数据,并利用秘钥信息上层网络节点先进行共识的预准备和准备过程,然后下层网络节点依次进行预准备、准备和确认过程,最后上层节点完成确认过程,结束两层共识。2.根据权利要求1所述的一种大规模节点高效共识方法,其特征在于,所述步骤2的具体实现过程如下:将每个分组的节点划分为上下两层结构,上层网络组成一个分区,其中1个主节点,p个副本节点,副本节点中有m个为下层网络的主节点,其中p≥m,且p≥3;下层网络包含m个分区,每个分区包含1个主节点,n个副本节点,下层网络的主节点同时为上层网络的副本节点,其中n≥3。3.根据权利要求2所述的一种大规模节点高效共识方法,其特征在于,所述步骤3的具体实现过程如下:设定上层网络节点总数为3f1+1,f1≥1,下层网络每个分区的节点数为3f2+1,f2≥1,然后在各层网络中进行初始化设置,初始化过程为:上层网络和下层分区网络分别构造(2f1+1,3f1+1)和(2f2+1,3f2+1)多重签名,在上层网络和下层网络的每个分区内,用分区内所有节点的公钥计算聚合公钥,每个节点用自己的私钥计算成员密钥,并在各分区内分享聚合公钥和成员密钥。4.根据权利要求3所述的一种大规模节点高效共识方法,其特征在于,所述步骤4的具体实现过程如下:步骤401,上层预准备阶段;在进入新一轮共识之前,上层主节点统计上一轮本层共识确认阶段的确认信息,如果在超时之前,上层主节点收集到不少于2f1+1条确认信息,则进入新一轮共识;如果在超时时间内未收集到2f1+1条确认信息,则重发已完成的共识结果给本层其余的副本节点,再进行新一轮的共识流程;当开始新一轮共识后,上层主节点收集交易内存池中的交易,将交易打包成区块并广播给本层所有副本节点;广播消息为<<pre

prepare,v,h,d>,block>,其中pre

prepare标识当前消息所处的协议阶段,v标识当前消息所在的视图编号,h为区块高度,d为上层主节点对区块block的签名,block为整个区块内容;步骤402,上层准备阶段;上层准备过程分为两个阶段:阶段一:上层副本节点收到本层主节点发送过来的广播消息后,首先对消息进行验证,检查签名、区块高度以及视图编号,验证完毕后对其中的所有交易进行验证,验证无误后发送一条<prepare1,v,h,d,i>给本层主节点,其中prepare1标识当前消息所处的协议阶段,v标识当前消息所在的视图编号,h为区块高度,d为上层副本节点对区块block的签名,i为副本节点编号;阶段二:上层主节点一直监听本层副本节点发送过来的prepare1信息,上层主节点对
每个prepare1信息进行验证,验证通过则收集起来,收集到不少于2f1+1个签名后,分别验证每个签名,并将验证通过的2f1+1个不同节点的签名聚合起来,形成对区块的聚合签名信息,广播一条<prepare2,v,h,aggrsignature,node>消息给所有本层副本节点,其中prepare2标识当前消息所处的协议阶段,v标识当前消息所在的视图编号,h为区块高度,aggrsignature为上层主节点对区块block的聚合签名,node为参与聚合签名的所有节点的ID列表,上层主节点收集的签名包括自己的签名;步骤403,下层预准备阶段;当上层副本节点接收到上层主节点的prepare2消息后,根据上层主节点提供的node信息,生成所有参与聚合签名节点的合成公钥,并将本地存储的...

【专利技术属性】
技术研发人员:贾哲冯伟坡焦利彬赵宾华刘丽哲赵海强匡春旭赵阳阳
申请(专利权)人:中国电子科技集团公司第五十四研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1