一种支持快速达成最终确认性的拜占庭共识方法技术

技术编号:20547274 阅读:35 留言:0更新日期:2019-03-09 20:03
本发明专利技术公开了一种支持快速达成最终确认性的拜占庭共识方法,实施步骤包括:预先在网络中部署具有VRF函数服务接口的弱中心,选民调用VRF函数生成抽签信息,弱中心随机选取委员会成员,选出一个主官、N‑1个副官;主官将收到的交易打成区块提议并广播给弱中心以及所有的副官,副官判断是否在指定时间内收到主官发送的区块提议,如果收到区块提议则进行验证并向弱中心给出是否认可该区块的投票,弱中心统计副官的投票结果,如果全票通过则发布正常区块,否则如果赞成票数小于2f+1则进行重新投票;否则进行二次确认。本发明专利技术具有委员选举公平、过程高效、安全性高、性能高等优点。

【技术实现步骤摘要】
一种支持快速达成最终确认性的拜占庭共识方法
本专利技术涉及区块链技术,具体涉及一种支持快速达成最终确认性的拜占庭共识方法。
技术介绍
根据某公司的报告指出,该公司仅存储15%与其业务相关的数据,其余85%的数据都存储在其它机构中,且该公司仅仅为现代公司的典型。跨部门、跨系统,纵横两维打通信息孤岛,从更广维度、更高精度汇聚数据,挖掘价值,已经成为关系到经济发展和社会治理的国家重大现实需求。然而,跨不同利益主体共享数据存在责权边界不清晰,不愿主动共享以及成本高、效率低等亟待突破的技术难题。现有的数据资源交易平台,主要分为基于大数据交易所的大数据交易模式,如贵阳大数据交易中心;基于行业数据的大数据交易,如交通、金融等行业;基于数据资源企业推动的大数据交易,如数据堂等;基于互联网企业派生出的大数据交易,如京东万象等;这些数据交易平台都是依赖于第三方平台进行数据资源交易,从而实现数据资源的流通。然而,由于数据资源本身具有隐私性、安全性以及可复制性,依赖第三方的中心化数据交易平台存在着数据资源的隐私泄露和数据资源安全性降低等风险,同时在不同平台下进行数据资源交易存在着同一数据资源被多次贩卖导致数据资源降低等问题。数据交易规模大、数据交易频度高、数据资源拥有者身份不对等的特性。其中,交易规模大是指从数据资源分布视角看,其数据资源分布在全球各个数据资源提供者手中,没有任何一个数据资源提供者拥有全部数据或占据大部分数据。交易频度高是从数据资源交易视角看,其数据资源消费者在购买数据资源时不单单是从单一数据资源提供者购买数据资源,而是需要从多个数据资源提供者手中购买。数据资源拥有者在出售数据资源时,不单单是出售给单一的数据资源消费者而是同一数据资源可以出售给多个数据资源消费者。数据资源拥有者身份不对等是指拥有海量数据的数据资源提供者在数据交易过程中占有绝对的优势地位,数据资源消费者在购买数据资源时往往会选择拥有海量数据的数据资源提供者,容易导致数据资源往往在几大海量数据资源拥有者之间流通,形成数据资源垄断。基于区块链以安全可控方式共享流通数据,是解决上述问题的可行方式之一。如何将区块链技术引入到大规模、高频度数据交易中,实现高安全、高可靠、高效率的跨利益主体的数据流通和价值传递,是一个亟待解决的问题。目前,区块链技术还处于快速发展的状态,主要应用还是处于非实时性、轻量级、低吞吐量、高延迟和低敏感的边缘业务场景。现有区块链技术的记账频度有限,难以满足海量、高频数据交易需求,同时现有区块链交易确认的延迟较高,以比特币为例现有的交易频度最大为7TPS(TransactionPerSecond),交易确认时间为10min,制约区块链性能吞吐和确帐延迟的关键在于区块链的共识。区块链的共识用于解决的是对于某个提案大家达成一致意见的过程。在区块链中,每个最终确认的交易有且仅由一个区块记录;每产生一个区块,其最终是否进行上链操作都需要经过一定的共识机制来使得所有节点达成一致。目前现有的拜占庭共识方法包括工作证明算法PoW、股权证明PoS以及实用拜占庭容错系统PBFT。(1)工作证明算法PoW:点打包成一个区块时,需要一个随机串使得区块的哈希值满足一定的条件;节点通过大量的尝试来提供一个合理的随机串;一旦节点计算出满足条件的随机串,就将该区块广播出去;其他节点收到区块后将验证其是否符合条件,如果符合条件则将其添加到自己维护的区块链上;当网络中大部分节点都添加了区块时,则视为接受该区块,达成共识。但是,工作证明算法PoW算法造成了大量的资源浪费,且由于需要等待多个确认,使得区块达成共识的周期较长,并且容易分叉;(2)股权证明PoS:股权证明PoS是在PoW的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例降低计算难度,从而加快寻找随机串的速度。但是,股权证明PoS算法在一定程度上缩短了共识达成的时间,但依然造成大量的资源浪费,并且存在分叉的可能性;(3)实用拜占庭容错系统PBFT:实用拜占庭容错系统PBFT:假设故障节点f个,整个服务节点数为3f+1个。每个客户端的请求需要经过三次两两交互的方式在服务达成一致后再执行客户端的请求。PBFT算法可以很好的解决区块链分叉问题,且能提升效率,但仅适合于联盟链和私有链。但是,由于PBFT需要两两通信,使得其通信量为O(n^2),很难支持大规模的网络节点。因此,如何在网络弱同步场景下如何快速达成最终确认性的拜占庭容错共识,已经成为一项亟待解决的关键技术问题。
技术实现思路
本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种面向数据交易的联盟链拜占庭容错共识方法,本专利技术能够实现网络弱同步场景下的快速达成最终确认性的拜占庭容错共识,具有委员选举公平、过程高效、安全性高、性能高等优点,对于数据资源建设、数字化基础建设具有重要科学意义。为了解决上述技术问题,本专利技术采用的技术方案为:一种支持快速达成最终确认性的拜占庭共识方法,实施步骤包括:1)预先在网络中部署具有VRF函数服务接口的弱中心;2)选民用VRF函数生成哈希hash和证明π并进一步生成包含身份及选举轮次信息的字符串X,选民用弱中心公钥加密字符串X得到PK中心(X)并发送给弱中心;3)弱中心等待指定的时间t后,从发送PK中心(X)的所有选民中定量随机选择出N个委员构成的投票委员会成员,其中N的值为3f+1,f为拜占庭容错的最大值;并按照指定的规则指定一个委员为主官、其余N-1个委员为副官;4)主官将收到的交易打成区块提议并广播给弱中心以及所有的副官,副官判断是否在指定时间内收到主官发送的区块提议,如果收到区块提议则进行验证并向弱中心给出是否认可该区块的投票,如果超时未收到主官发送的区块提议则在全网广播重选主官消息;5)弱中心判断在预设的超时时间Tproposal内没有收到主官的区块提议且在两倍的预设的超时时间Tproposal内收到超过f+1个副官的发送的重选主官消息是否成立,如果成立则跳转执行步骤2);否则广播一次来自主官的区块提议,并跳转执行步骤6);6)弱中心对所有的副官的委员身份进行验证,并统计收集来自合法委员身份的副官的投票结果,如果赞成票数m小于2f+1,则跳转执行步骤7);如果赞成票数m为[2f+1,3f+1)之间,则跳转执行步骤8);如果赞成票数m等于3f+1,则跳转执行步骤9);7)弱中心判断当前投票过程是否是重投票过程,如果是重投票过程,则跳转执行步骤10);否则判断收到的反对票数大于或等于f+1是否成立,如果成立则跳转执行步骤10),如果不成立,则启动投票委员会成员重投票过程,然后跳转执行步骤6);8)弱中心将所有副官名单以及一致的结果一起打包,用弱中心私钥签名并广播给主官和所有副官,副官向弱中心确认投票结果,在超时前如果有不少于2f+1个副官确认了这个投票结果,则弱中心认可该区块,并将该区块信息发送给所有选民,跳转执行步骤9);否则,弱中心判定可能有副官叛变或者网络异步引起消息丢失,跳转执行步骤10);9)主官发布正常区块,本轮投票委员会成员任期结束,退出;10)弱中心发布空白区块,本轮投票委员会成员任期结束,退出。优选地,步骤2)中选民用弱中心公钥加密字符串X得到PK中心(X)的函数表达式如式(1)所示;步本文档来自技高网
...

【技术保护点】
1.一种支持快速达成最终确认性的拜占庭共识方法,其特征在于实施步骤包括:1)预先在网络中部署具有VRF函数服务接口的弱中心;2)选民用VRF函数生成哈希hash和证明π并进一步生成包含身份及选举轮次信息的字符串X,选民用弱中心公钥加密字符串X得到PK中心(X)并发送给弱中心;3)弱中心等待指定的时间t后,从发送PK中心(X) 的所有选民中定量随机选择出N个委员构成的投票委员会成员,其中N的值为3f+1,f为拜占庭容错的最大值;并按照指定的规则指定一个委员为主官、其余N‑1个委员为副官;4)主官将收到的交易打成区块提议并广播给弱中心以及所有的副官,副官判断是否在指定时间内收到主官发送的区块提议,如果收到区块提议则进行验证并向弱中心给出是否认可该区块的投票,如果超时未收到主官发送的区块提议则在全网广播重选主官消息;5)弱中心判断在预设的超时时间Tproposal内没有收到主官的区块提议且在两倍的预设的超时时间Tproposal内收到超过f+1个副官的发送的重选主官消息是否成立,如果成立则跳转执行步骤2);否则广播一次来自主官的区块提议,并跳转执行步骤6);6)弱中心对所有的副官的委员身份进行验证,并统计收集来自合法委员身份的副官的投票结果,如果赞成票数m小于2f+1,则跳转执行步骤7);如果赞成票数m为[2f+1,3f+1)之间,则跳转执行步骤8);如果赞成票数m等于3f+1,则跳转执行步骤9);7)弱中心判断当前投票过程是否是重投票过程,如果是重投票过程,则跳转执行步骤10);否则判断收到的反对票数大于或等于f+1是否成立,如果成立则跳转执行步骤10),如果不成立,则启动投票委员会成员重投票过程,然后跳转执行步骤6);8)弱中心将所有副官名单以及一致的结果一起打包,用弱中心私钥签名并广播给主官和所有副官,副官向弱中心确认投票结果,在超时前如果有不少于2f+1个副官确认了这个投票结果,则弱中心认可该区块,并将该区块信息发送给所有选民,跳转执行步骤9);否则,弱中心判定可能有副官叛变或者网络异步引起消息丢失,跳转执行步骤10);9)主官发布正常区块,本轮投票委员会成员任期结束,退出;10)弱中心发布空白区块,本轮投票委员会成员任期结束,退出。...

【技术特征摘要】
1.一种支持快速达成最终确认性的拜占庭共识方法,其特征在于实施步骤包括:1)预先在网络中部署具有VRF函数服务接口的弱中心;2)选民用VRF函数生成哈希hash和证明π并进一步生成包含身份及选举轮次信息的字符串X,选民用弱中心公钥加密字符串X得到PK中心(X)并发送给弱中心;3)弱中心等待指定的时间t后,从发送PK中心(X)的所有选民中定量随机选择出N个委员构成的投票委员会成员,其中N的值为3f+1,f为拜占庭容错的最大值;并按照指定的规则指定一个委员为主官、其余N-1个委员为副官;4)主官将收到的交易打成区块提议并广播给弱中心以及所有的副官,副官判断是否在指定时间内收到主官发送的区块提议,如果收到区块提议则进行验证并向弱中心给出是否认可该区块的投票,如果超时未收到主官发送的区块提议则在全网广播重选主官消息;5)弱中心判断在预设的超时时间Tproposal内没有收到主官的区块提议且在两倍的预设的超时时间Tproposal内收到超过f+1个副官的发送的重选主官消息是否成立,如果成立则跳转执行步骤2);否则广播一次来自主官的区块提议,并跳转执行步骤6);6)弱中心对所有的副官的委员身份进行验证,并统计收集来自合法委员身份的副官的投票结果,如果赞成票数m小于2f+1,则跳转执行步骤7);如果赞成票数m为[2f+1,3f+1)之间,则跳转执行步骤8);如果赞成票数m等于3f+1,则跳转执行步骤9);7)弱中心判断当前投票过程是否是重投票过程,如果是重投票过程,则跳转执行步骤10);否则判断收到的反对票数大于或等于f+1是否成立,如果成立则跳转执行步骤10),如果不成立,则启动投票委员会成员重投票过程,然后跳转执行步骤6);8)弱中心将所有副官名单以及一致的结果一起打包,用弱中心私钥签名并广播给主官和所有副官,副官向弱中心确认投票结果,在超时前如果有不少于2f+1个副官确认了这个投票结果,则弱中心认可该区块,并将该区块信息发送给所有选民,跳转执行步骤9);否则,弱中心判定可能有副官叛变或者网络异步引起消息丢失,跳转执行步骤10);9)主官发布正常区块,本轮投票委员会成员任期结束,退出;10)弱中心发布空白区块,本轮投票委员会成员任期结束,退出。2.根据权利要求1所述的支持快速达成最终确认性的拜占庭共识方法,其特征在于,步骤2)中选民用弱中心公钥加密字符串X得到PK中心(X)的函数表达式如式(1)所示;步骤4)中向弱中心给出是否认可该区块的投票的消息的函数表达式如式(2)所示;步骤8)中副官向弱中心确认投票结果的消息的函数表达式如式(3)所示;(PK选民半密钥+hash+π+seed+r)Pk中心(1)式(1)中,PK选民半密钥为选民的公钥的第一半密钥,hash为选民用VRF函数生成的哈希hash,π为选民用VRF函数生成的证明,seed为VRF函数种子,r为选举轮次,Pk中心表示用弱中心的公钥加密;(Vote+hash+seed+r+PK’副官半密钥)Pk中心(2)式(2)中,PK’副官半密钥为副官的公钥的第二半密钥,Vote为副官的投票结果,hash为副官用VRF函数生成的哈希hash,π为副官用VRF函数生成的证明,seed为VRF函数种子,r为选举轮次,Pk中心表示用弱中心的公钥加密;(PK”副官半密钥+Commit+hash+π+seed+r)Pk中心(3)式(3)中,PK”副官半密钥为副官的公钥的第三半密钥,Commit为副官的确认消息,hash为副官用VRF函数生成的哈希hash,π为副官用VRF函数生成的证明,seed为VRF函数种子,r为选举轮次,Pk中心表示用弱中心的公钥加密;所述第一半密钥、第二半密钥、第三半密钥三者中的任意两者可以生成副官的公钥。3.根...

【专利技术属性】
技术研发人员:史佩昌王怀民丁滟杨尚之陈昌杨文韬刘惠丁博傅翔杨识澜岳喜坤
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

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

1