一种具备可扩展性与高安全性的联盟链共识方法与流程

文档序号:35385070发布日期:2023-09-09 12:17阅读:23来源:国知局
一种具备可扩展性与高安全性的联盟链共识方法与流程

本发明涉及联盟链,具体而言,涉及一种具备可扩展性与高安全性的联盟链共识方法。


背景技术:

1、目前,联盟链共识算法pbft的扩展性的方案有很多,其中与raft算法融合是一种可行的方案,但是这种方案的在安全方面存在以下的问题:首先是网络分组阶段所使用的分组方法过于简单,分组结果容易被预测甚至篡改;其次是在防范raft共识阶段出现拜占庭节点的情况时,处理方式过于单一,目前的方案都是通过部署监督节点监控raft共识状态,在出现了拜占庭节点时才进行处理,处理时通信开销巨大,而且监督节点本身也具有安全风险。因此需要一种方案来改进现有的算法,使融合算法更加稳定。


技术实现思路

1、为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种具备可扩展性与高安全性的联盟链共识方法,可提升网络分组阶段的安全性,避免raft共识阶段出现拜占庭节点对系统造成不良影响。

2、本发明的实施例是这样实现的:

3、第一方面,本发明实施例提供一种具备可扩展性与高安全性的联盟链共识方法,包括以下步骤:

4、节点分配网络阶段:新节点加入网络时,对新节点进行网络分组分配,并采用可验证分布式随机函数vrf确定最终网络分组分配结果;

5、节点加入网络阶段:根据最终网络分组分配结果,将新节点加入到对应的网络;

6、分组确认阶段:新节点加入网络后,参与到该网络的raft共识算法,复制主节点的日志信息,并由当前主节点向从节点发送节点加入的消息,进行分组确认;

7、分组网络内部共识阶段:基于监督节点集群进行raft共识阶段的leader节点选举,基于leader节点将日志复制给其他跟随者节点,完成分组网络内部共识;

8、网络组间共识阶段:各个分组网络中的leader节点参与网络组间共识;

9、全局共识阶段:网络组间共识完成后,每个网络的leader节点将最新的全局共识在自己的网络中进行新一轮的分组网络内部共识和网络组间共识,直至最终达成系统的全局共识。

10、为了解决现有技术中的问题,本发明采用基于vrf可验证函数的分组方法,使分组结果可验证,保证了分组阶段的安全性。其次在联盟链系统中引入一种基于模糊集的监督机制,通过部署监督节点集群监控raft集群运行状态,并对系统中的节点进行基于模糊集的安全评估,通过限制安全等级低的节点当选主节点的概率来降低出现拜占庭节点对系统造成影响的概率,监督节点在拜占庭节点当选主节点时会触发安全协议,但是不会像之前那样频繁,以达到降低系统通信开销的目的。本发明在为联盟链共识方案提供扩展性的同时保证一定的安全性与可靠性。

11、基于第一方面,在本发明的一些实施例中,上述对新节点进行网络分组分配,并采用可验证分布式随机函数vrf确定最终网络分组分配结果的方法包括以下步骤:

12、根据预配置的网络分组信息,采用一致性hash算法计算得到新节点的随机分组结果;

13、采用可验证分布式随机函数vrf对随机分组结果进行验证确认,得到最终网络分组分配结果。

14、基于第一方面,在本发明的一些实施例中,上述根据预配置的网络分组信息,采用一致性hash算法计算得到新节点的随机分组结果的方法包括以下步骤:

15、根据预配置的网络分组信息初始化网络分组在hash环上的位置,得到新节点的随机分组结果。

16、基于第一方面,在本发明的一些实施例中,上述采用可验证分布式随机函数vrf对随机分组结果进行验证确认,得到最终网络分组分配结果的方法包括以下步骤:

17、生成公私钥,新节点通过vrfgen()生成可验证随机函数初始公私钥对(pk,sk);

18、生成随机数x,并通过vrfval(sk,x)生成随机哈希值h,并通过vrfproof()生成x的零知识证明proofx;

19、根据h落在hash环上的位置确定最终网络分组分配结果。

20、基于第一方面,在本发明的一些实施例中,上述根据最终网络分组分配结果,将新节点加入到对应的网络的方法包括以下步骤:

21、根据最终网络分组分配结果,新节点向对应的网络的当前领导者节点发送加入请求;

22、领导者节点首先进行vrf验证,验证新节点提供的分组信息的正确性,生成并发送验证结果给该网络中的跟随者节点,收到全网一半以上跟随者节点的确认后,完成节点加入网络阶段。

23、基于第一方面,在本发明的一些实施例中,上述进行分组确认的方法包括以下步骤:

24、对应网络中的leader节点向各节点发送新节点验证通过消息,各个节点更新自己的配置信息,网络节点总数加一,分组确认完成。

25、基于第一方面,在本发明的一些实施例中,上述基于监督节点集群进行raft共识阶段的leader节点选举的方法包括以下步骤:

26、当网络中没有leader节点,所有节点处于跟随者状态时,将所有跟随者节点作为候选者节点;

27、候选者节点向监督者节点发送requsetvote请求;

28、监督者节点收集requestvote请求后,将对应的请求组合成一个候选者集合,并广播给follower节点进行投票;

29、录入并将follower节点的投票信息组合成vote请求发送给监督者节点,监督者节点根据投票情况计算候选者节点的模糊值,形成模糊集;

30、监督者节点基于模糊集进行排序,最后监督者集群商议排序结果,选出并广播新的leader节点的信息。

31、基于第一方面,在本发明的一些实施例中,上述各个分组网络中的leader节点参与网络组间共识的方法包括以下步骤:

32、根据网络组号顺序轮流选举出一个primary节点,primary节点初始化时发出view-new消息,同步所有节点的数据;

33、将某个网络分组中的leader节点作为client,并发起请求给primary节点,primary节点验证后广播这个请求,发起pre-prepare信息给所有的节点;

34、节点收到pre-prepare消息后,先进行信息校验,校验无误后在本网络中转发这个消息,然后广播prepare消息;

35、接收到prepare消息的节点统计自己收到prepare消息的数量,当该数量超过容忍的最大拜占庭节点的数量2f时,广播commit消息;

36、接收到commit消息节点统计自己收到commit消息的数量,若该数量超过2f,则网络组件共识完成。

37、第二方面,本技术实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。

38、第三方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。

39、本发明实施例至少具有如下优点或有益效果:

40、本发明实施例提供一种具备可扩展性与高安全性的联盟链共识方法,采用基于vrf可验证函数的分组方法,使分组结果可验证,保证了分组阶段的安全性。其次在联盟链系统中引入一种基于模糊集的监督机制,通过部署监督节点集群监控raft集群运行状态,并对系统中的节点进行基于模糊集的安全评估,通过限制安全等级低的节点当选主节点的概率来降低出现拜占庭节点对系统造成影响的概率,监督节点在拜占庭节点当选主节点时会触发安全协议,但是不会像之前那样频繁,以达到降低系统通信开销的目的。本发明在为联盟链共识方案提供扩展性的同时保证一定的安全性与可靠性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1