一种异构联盟链的共识方法技术

技术编号:24764024 阅读:43 留言:0更新日期:2020-07-04 11:06
本发明专利技术公开一种异构联盟链的共识方法,在PBFT算法的基础上,结合RAFT算法,并使用了分层的结构,不仅有效降低节点之间数据传输的通信开销,使其更适合应用于设备数量大,通信复杂的工业物联网中;而且能够使区块链中参与共识的节点数量得到扩展,增加了可扩展性;此外,增加监督机制和重启机制,从而增加了容错率,保持了安全性,以满足医疗领域下的信息交互需求。

A consensus method for heterogeneous alliance chain

【技术实现步骤摘要】
一种异构联盟链的共识方法
本专利技术涉及通信
,具体涉及一种异构联盟链的共识方法。
技术介绍
如何保障医疗数据的安全性和隐私性是医疗行业的核心问题。医疗数据的储存与分享涉及政府、研究院、制药厂和保险公司等多个行业,其信息交互愈发体现异构性、复杂性、保密性。传统保密接入技术无法满足其信息交互平台安全、花销小、可扩展性好的需要。区块链因其去中心化、无法篡改、低成本和能进行多签名复杂权限的管理能力,成为了医疗数据存储与分享的最佳方案,但是并非所有的区块链方案都适合应用于医疗领域。公有链(例如POW)允许任意成员加入,但是其通过某概念证明的方式,往往需要在资源上有很大的消耗。私有链(例如RAFT)只允许认证的成员加入,但是其共识方式过于集中,不够安全。联盟链(例如PBFT)只允许认证的成员加入,但是权限设计要求更复杂,算法可扩展性不强。
技术实现思路
本专利技术主要解决现有区块链技术在医疗领域中,存储数据私密性要求高、数据分享时开销大和可扩展性要求高等问题,提供一种异构联盟链的共识方法。为解决上述问题,本专利技术是通过以下技术方案实现的:一种异构联盟链的共识方法,具体包括步骤如下:步骤1、根据初始网络环境中的节点数量进行初始分组,其每个分组的成员包括A个普通节点和V个监督节点;每个监督节点同时处于两个不同的分组,且一个分组的监督节点所在分组各不相同;步骤2、初始分组完成后,先随机选出每个分组的领导者;所有选出的领导者构成委员会的成员;步骤3、客户向随机向网络其中一个节点发送请求消息,此时该节点所在分组中的领导者即为主节点,并进入委员会共识;步骤4、主节点向委员会的所有成员广播预准备消息,当委员会成员收到预准备消息后,则该成员向委员会的其他成员广播准备消息;步骤5、当委员会中的某一个成员收到的准备消息的数目大于等于2f后,则该成员向委员会的其他成员广播提交消息;步骤6、当委员会内的任意一个成员收到的提交消息的数目大于等于2f个时,则委员会共识完成,并进入组内共识;步骤7、领导者将日志消息同步到其所在分组内的其他成员;步骤8、当分组内的其他成员收到领导者的日志消息后,则向领导者返回第一回复消息;步骤9、当监督节点收到2个领导者发送的日志消息后,则对这2个日志消息进行比较:若2个日志消息一致,则不进行操作;若2个日志消息不一致,则监督节点发送报警消息;步骤10、当领导者收到的第一回复消息的数目大于(A+V)/2时,则向分组内的其他成员广播提交消息;步骤11、当分组内的其他成员收到领导者的提交消息后,则将日志消息写入自己的状态机中,并向领导者返回第二回复消息;步骤12、当领导者收到的第二回复消息的数目大于(A+V)/2时,则组内共识完成;其中f为设定的容错节点个数。上述方案中,每个分组的监督节点的个数为2f个,其中f为设定的容错节点个数。上述步骤1中,每个分组的监督节点通过抽签随机从分组成员中选取。上述方案中,当在分组中的领导者宕机时,分组内的成员就开始计时;竞选时钟率先耗尽的成员向分组中的其他成员发送投票请求,并将自己的状态变更为候选者,如果超过半数的成员跟随者投了票,则候选者自动变成领导者,开始在分组内广播该日志。上述方法还进一步包括如下步骤:步骤13、根据看门狗时钟的设定,周期性地重启。与现有技术相比,本专利技术在PBFT算法的基础上,结合RAFT算法,并使用了分层的结构,不仅有效降低节点之间数据传输的通信开销,使其更适合应用于设备数量大,通信复杂的工业物联网中;而且能够使区块链中参与共识的节点数量得到扩展,增加了可扩展性;此外,增加监督机制和重启机制,从而增加了容错率,保持了安全性,以满足医疗领域下的信息交互需求。附图说明图1为一种异构联盟链的共识方法的流程图;图2为本共识算法与经典PBFT算法的通信开销对比图;图3为本共识算法最大容恶意错误节点数与同等节点数量的PBFT的容错率对比图;图4为本共识算法最小容恶意错误节点数与同等节点数量的PBFT的容错率对比图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本专利技术进一步详细说明。一种异构联盟链的共识方法,如图1所示,其具体步骤描述如下:(1)分组:步骤1、根据初始网络环境中的节点数量进行初始分组,其每个分组的成员包括A个普通节点和V个监督节点。算法根据初始网络环境中的节点数量,进行分组,分组的初始划分是参考OmniLedger的抗偏性分布式随机数进行分片。一个分组的分组成员中有A+V个成员。事实上,由于每个监督节点同时处于两个不同的分组,且一个分组的监督节点所在分组各不相同,因此每个分组实际成员数为M=A+V/2,整个网络的实际成员总数就为N=(3f+1)×M+3f+1。其中f为PBFT(PracticalByzantineFaultTolerance,实用拜占庭容错算法)容错节点。由于监督节点监督两个领导者,因此不能被领导者事先知道身份,以防止恶意的领导者发送不同的信息给不同的监督节点。为此,本专利技术采用可验证的随机函数进行抽签随机选取。根据抽签结果落入哪个区间进行判定是否成为监督节点,以及监督自己组之外的哪一个组。由于抽签结果满足二项分布,因此在理想条件下,每个监督节点监督的分组不同。监督节点所监督的分组一旦确定,不可更换,若在一个重启周期内,一个监督节点向多个不同分组领导者发送告警消息,则会被认为是恶意监督节点。其中f为设定的容错节点个数。(2)领导者选举:步骤2、初始分组完成后,先随机选出每个分组的领导者。所有选出的领导者构成委员会的成员。在异构联盟链中,所有领导者的集合我们称为委员会。委员会采用PBFT共识,节点数量实际应该满足的条件为N≥3f+1,本文为了描述及分析简便,设定委员会内成员的个数是3f+1。领导者的初始选取是根据一个可信的随机信标提供的随机值选出。在分组中,一旦领导者宕机,分组成员与监督节点就开始计时。竞选时钟率先耗尽的节点向分组中的其他节点发送投票请求,并将自己的状态变更为候选者。如果超过半数的跟随者投了票,则候选者自动变成领导者,开始在分组内多播日志。为了去除异构共识的耦合性,委员会PBFT共识与组内RAFT共识互补干扰。即委员会节点进行PBFT共识阶段不与组内成员数据通信,只保留RAFT基本heartbeat通信,待PBFT共识完成后,节点将收到的Commit数据信息通过Raft共识同步到组内其他节点中去。(3)主节点选举:步骤3、客户向随机向网络其中一个节点发送请求消息,此时该节点所在分组中的领导者即为主节点,并进入委员会共识。在委员会中,领导者节点根据当前主节点操作状态判断其是否宕机,若宕机则发动视图变更。委员会里的其他领导者收到视图变更消息,并确认消息来源的安全性,便进行应答。领导者节点成为新本文档来自技高网...

【技术保护点】
1.一种异构联盟链的共识方法,其特征是,具体包括步骤如下:/n步骤1、根据初始网络环境中的节点数量进行初始分组,其每个分组的成员包括A个普通节点和V个监督节点;每个监督节点同时处于两个不同的分组,且一个分组的监督节点所在分组各不相同;/n步骤2、初始分组完成后,先随机选出每个分组的领导者;所有选出的领导者构成委员会的成员;/n步骤3、客户向随机向网络其中一个节点发送请求消息,此时该节点所在分组中的领导者即为主节点,并进入委员会共识;/n步骤4、主节点向委员会的所有成员广播预准备消息,当委员会成员收到预准备消息后,则该成员向委员会的其他成员广播准备消息;/n步骤5、当委员会中的某一个成员收到的准备消息的数目大于等于2f后,则该成员向委员会的其他成员广播提交消息;/n步骤6、当委员会内的任意一个成员收到的提交消息的数目大于等于2f个时,则委员会共识完成,并进入组内共识;/n步骤7、领导者将日志消息同步到其所在分组内的其他成员;/n步骤8、当分组内的其他成员收到领导者的日志消息后,则向领导者返回第一回复消息;/n步骤9、当监督节点收到2个领导者发送的日志消息后,则对这2个日志消息进行比较:若2个日志消息一致,则不进行操作;若2个日志消息不一致,则监督节点发送报警消息;/n步骤10、当领导者收到的第一回复消息的数目大于(A+V)/2时,则向分组内的其他成员广播提交消息;/n步骤11、当分组内的其他成员收到领导者的提交消息后,则将日志消息写入自己的状态机中,并向领导者返回第二回复消息;/n步骤12、当领导者收到的第二回复消息的数目大于(A+V)/2时,则组内共识完成;/n其中f为设定的容错节点个数。/n...

【技术特征摘要】
1.一种异构联盟链的共识方法,其特征是,具体包括步骤如下:
步骤1、根据初始网络环境中的节点数量进行初始分组,其每个分组的成员包括A个普通节点和V个监督节点;每个监督节点同时处于两个不同的分组,且一个分组的监督节点所在分组各不相同;
步骤2、初始分组完成后,先随机选出每个分组的领导者;所有选出的领导者构成委员会的成员;
步骤3、客户向随机向网络其中一个节点发送请求消息,此时该节点所在分组中的领导者即为主节点,并进入委员会共识;
步骤4、主节点向委员会的所有成员广播预准备消息,当委员会成员收到预准备消息后,则该成员向委员会的其他成员广播准备消息;
步骤5、当委员会中的某一个成员收到的准备消息的数目大于等于2f后,则该成员向委员会的其他成员广播提交消息;
步骤6、当委员会内的任意一个成员收到的提交消息的数目大于等于2f个时,则委员会共识完成,并进入组内共识;
步骤7、领导者将日志消息同步到其所在分组内的其他成员;
步骤8、当分组内的其他成员收到领导者的日志消息后,则向领导者返回第一回复消息;
步骤9、当监督节点收到2个领导者发送的日志消息后,则对这2个日志消息进行比较:若2个日志消息一致,则不进行操作;若2个日志消息不一致,则监督节点发送报警消息;<...

【专利技术属性】
技术研发人员:黄冬艳任英琦王波付中卫冯彤陈斌李浪肖培剑
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:广西;45

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

1