一种区块链拜占庭容错共识方法及系统技术方案

技术编号:24893496 阅读:14 留言:0更新日期:2020-07-14 18:19
本发明专利技术提供了一种区块链拜占庭容错共识方法及系统,方法包括:S1:节点进行密码抽签,被抽中的节点提议区块并广播;S2:对最高优先级的区块进行第一轮投票;S3:如果存在第一轮投票大于或等于设定条件的区块,则对该区块进行第二轮投票;S4:如果第一轮票数和第二轮票数均大于或等于设定条件,则对该区块达成共识并返回S1,否则执行S5;S5:如果不存在第一轮票数大于或等于设定条件的区块,则对空块进行第三轮投票;如果存在第一轮票数大于或等于设定条件且第二轮票数小于设定条件的区块,则对该区块进行第三轮投票;如果第三轮票数大于或等于设定条件,则返回S2,否则返回S1,从而提高拜占庭容错共识算法效率且降低网络传输压力。

【技术实现步骤摘要】
一种区块链拜占庭容错共识方法及系统
本专利技术涉及信息安全
,特别是涉及一种区块链拜占庭容错共识方法及系统。
技术介绍
当前,区块链系统应用越来越广泛,如中国央行从2014年就开始研究基于区块链的数字货币,并已取得较好的研究成果;2019年3月,IBM(IBM.US)宣布跨境支付区块链WorldWire;2019年6月,美国Facebook公司推出Libra数字货币,以期望为全球提供无国界的数字货币和金融服务的区块链平台;2019年6月,Visa宣布跨境支付区块链网络B2BConnect。除数字货币外,区块链技术在物联网、电子发票、司法存证、食品安全等领域应用不断推广。共识方法是区块链的核心协议。当前,工作量证明(ProofofWork)机制由于大量的资源消耗和长时间等待而受到越来越多的质疑。普林斯顿大学ArvindNarayanan教授指出目前比特币挖矿的电力消耗已经接近全球电力总消耗的1%,数值大约是5000兆瓦,几乎是整个伦敦人口(约800万)每天的用电量。权益证明(ProofofStake)和委托权益证明(DelegatedProofofStake)等机制由于中心化导致安全性较低。该类共识机制使得拥有大量代币的用户能够坐享其成。此外,用户抵押代币以期望获得利息,不利于代币的流动性,而且还会吸引黑客攻击大量币的钱包。基于拜占庭容错的共识机制由于其不分叉特性和高效性得到越来越多的研究。例如,Micali等提出Algorand共识方法,该方法具有不分叉的优点。Pass和Shi提出混合共识机制,该机制中将经典共识机制与非授权共识机制相结合,利用工作量证明,实现非授权环境中的状态机复制。该机制具有交易快速响应特性(responsivenss),是指交易的确认时间与网络真实时延有关,而与网络时延上限无关。Maofan等提出HotStuff共识方法,该方法将PBFT网状通信拓扑变成了星形通信网络拓扑,使得每次通信都依靠主节点以降低系统通信复杂度。随后Libra在HotStuff的基础上引入显示的活跃机制,并使用聚合签名的方式保留验证者的身份以提高验签效率。上述拜占庭容错共识方法均涉及2轮投票,如果2轮投票大于或等于设定条件票数占比,则能够达成共识。但是如果仅第1轮大于或等于设定条件票数占比,而第2轮小于设定条件票数占比,则要求系统重新选择区块提议节点,以完成区块提议。该过程使得区块链共识效率较低。因此,JaeKwon等提出的Tendermint共识机制,该机制在使用拜占庭容错(PracticalByzantineFaultTolerance,PBFT)方法的基础上添加了锁的概念。如果区块Block-A的第1轮大于或等于设定条件票数占比,则锁定该区块,且下一轮严格要求对上一轮已投票的区块继续投票。虽然对上一轮已投票的区块继续投票以期望达成共识,但是在该过程中,如果节点对上一轮的空块nil或者其他区块Block-B投票进行了投票,则要求该节点继续对空块nil或者其他区块Block-B进行投票,而仅当对区块Block-A投票的节点才能够继续对区块Block-A进行投票。因此,该过程不利于下一轮的共识,从而使得共识效率较低。
技术实现思路
基于此,本专利技术的目的是提供一种区块链拜占庭容错共识方法及系统,以提高共识效率。为实现上述目的,本专利技术提供了一种区块链拜占庭容错共识方法,所述方法包括:步骤S1:节点进行密码抽签,被抽中的节点提议区块并广播;步骤S2:对最高优先级的区块进行第一轮投票;步骤S3:判断各区块的第一轮投票是否大于或等于设定条件;如果存在第一轮投票大于或等于设定条件的区块,则对该区块进行第二轮投票;所述设定条件为2/3总票数;步骤S4:判断第一轮票数和第二轮票数是否均大于或等于设定条件;如果第一轮票数和第二轮票数均大于或等于设定条件,则对该区块达成共识并返回步骤S1,否则执行步骤S5;步骤S5:如果不存在第一轮票数大于或等于设定条件的区块,则对空块进行第三轮投票;如果存在第一轮票数大于或等于设定条件且第二轮票数小于设定条件的区块,则对该区块进行第三轮投票;如果第三轮票数大于或等于设定条件,则返回步骤S2,对该区块开始新一轮的投票;否则进入步骤S1。可选的,所述步骤S1包括:步骤S11:根据各节点的私钥、各节点的抵押和第r个区块种子确定第一随机值和第一验证值;步骤S12:判断第一随机值是否在区块提议阈值范围内;如果所述第一随机值在区块提议阈值范围内,则节点被抽中,被抽中的节点提议区块并广播;否则节点没被抽中,拒绝提议区块并广播。3、根据权利要求1所述的区块链拜占庭容错共识方法,其特征在于,所述步骤S2包括:步骤S21:根据各节点的公钥、各节点的抵押、第r个区块种子和第一验证值确定第一有效属性;步骤S22:如果第一有效属性输出为有效,则接收被抽中节点广播的区块;如果第一有效属性输出为无效,则拒绝接收被抽中节点广播的区块;步骤S23:根据各节点的私钥、各节点的抵押和第r个区块种子确定第二随机值和第二验证值;步骤S24:判断第二随机值是否在第一轮投票阈值范围内;如果第二随机值在第一轮投票阈值范围内,则选取最高优先级的区块;步骤S25:对最高优先级的区块进行第一轮投票,获得各节点的第一签名。可选的,所述步骤S3包括:步骤S31:根据各节点的公钥、各节点的抵押、第r个区块种子和第二验证值确定第二有效属性;步骤S32:根据各节点的第一签名、各节点的公钥、第二随机值、第二验证值、各节点的抵押、第r个区块种子和最高优先级的区块确定第三有效属性;步骤S33:当第二有效属性和第三有效属性均为有效值时,则统计各区块的第一轮票数;步骤S34:根据各节点的私钥、各节点的抵押和第r个区块种子确定第三随机值和第三验证值;步骤S35:判断第三随机值是否在第二轮投票阈值范围内;如果第三随机值在第二轮投票阈值范围内,则执行步骤S36;步骤S36:对第一轮投票满足设定条件的区块进行第二轮投票,获得各节点的第二签名。可选的,所述步骤S4包括:步骤S41:根据各节点的公钥、各节点的抵押、第r个区块种子和第三验证值确定第四有效属性;步骤S42:根据各节点的第二签名、各节点的公钥、第三随机值、第三验证值、各节点的抵押、第r个区块种子和最高优先级的区块确定第五有效属性步骤S43:当第四有效属性和第五有效属性均为有效值时,则统计各区块内第二轮票数;步骤S44:当第一轮票数大于或等于设定条件且第二轮票数大于或等于设定条件时,则对该区块达成共识并返回步骤S1;否则,执行步骤S5。可选的,所述步骤S5包括:步骤S51:根据各节点的私钥、各节点的抵押和第r个区块种子确定第四随机值和第四验证值;步骤S52:判断第四随机值是否在第三轮投票阈值范围内;如果第四随机值在第三轮投票阈值范围内,则执行步骤S53;步骤S53:如果不存在本文档来自技高网
...

【技术保护点】
1.一种区块链拜占庭容错共识方法,其特征在于,所述方法包括:/n步骤S1:节点进行密码抽签,被抽中的节点提议区块并广播;/n步骤S2:对最高优先级的区块进行第一轮投票;/n步骤S3:判断各区块的第一轮投票是否大于或等于设定条件;如果存在第一轮投票大于或等于设定条件的区块,则对该区块进行第二轮投票;所述设定条件为2/3总票数;/n步骤S4:判断第一轮票数和第二轮票数是否均大于或等于设定条件;如果第一轮票数和第二轮票数均大于或等于设定条件,则对该区块达成共识并返回步骤S1,否则执行步骤S5;/n步骤S5:如果不存在第一轮票数大于或等于设定条件的区块,则对空块进行第三轮投票;如果存在第一轮票数大于或等于设定条件且第二轮票数小于设定条件的区块,则对该区块进行第三轮投票;如果第三轮票数大于或等于设定条件,则返回步骤S2,对该区块开始新一轮的投票;否则进入步骤S1。/n

【技术特征摘要】
1.一种区块链拜占庭容错共识方法,其特征在于,所述方法包括:
步骤S1:节点进行密码抽签,被抽中的节点提议区块并广播;
步骤S2:对最高优先级的区块进行第一轮投票;
步骤S3:判断各区块的第一轮投票是否大于或等于设定条件;如果存在第一轮投票大于或等于设定条件的区块,则对该区块进行第二轮投票;所述设定条件为2/3总票数;
步骤S4:判断第一轮票数和第二轮票数是否均大于或等于设定条件;如果第一轮票数和第二轮票数均大于或等于设定条件,则对该区块达成共识并返回步骤S1,否则执行步骤S5;
步骤S5:如果不存在第一轮票数大于或等于设定条件的区块,则对空块进行第三轮投票;如果存在第一轮票数大于或等于设定条件且第二轮票数小于设定条件的区块,则对该区块进行第三轮投票;如果第三轮票数大于或等于设定条件,则返回步骤S2,对该区块开始新一轮的投票;否则进入步骤S1。


2.根据权利要求1所述的区块链拜占庭容错共识方法,其特征在于,所述步骤S1包括:
步骤S11:根据各节点的私钥、各节点的抵押和第r个区块种子确定第一随机值和第一验证值;
步骤S12:判断第一随机值是否在区块提议阈值范围内;如果所述第一随机值在区块提议阈值范围内,则节点被抽中,被抽中的节点提议区块并广播;否则节点没被抽中,拒绝提议区块并广播。


3.根据权利要求1所述的区块链拜占庭容错共识方法,其特征在于,所述步骤S2包括:
步骤S21:根据各节点的公钥、各节点的抵押、第r个区块种子和第一验证值确定第一有效属性;
步骤S22:如果第一有效属性输出为有效,则接收被抽中节点广播的区块;如果第一有效属性输出为无效,则拒绝接收被抽中节点广播的区块;
步骤S23:根据各节点的私钥、各节点的抵押和第r个区块种子确定第二随机值和第二验证值;
步骤S24:判断第二随机值是否在第一轮投票阈值范围内;如果第二随机值在第一轮投票阈值范围内,则选取最高优先级的区块;
步骤S25:对最高优先级的区块进行第一轮投票,获得各节点的第一签名。


4.根据权利要求1所述的区块链拜占庭容错共识方法,其特征在于,所述步骤S3包括:
步骤S31:根据各节点的公钥、各节点的抵押、第r个区块种子和第二验证值确定第二有效属性;
步骤S32:根据各节点的第一签名、各节点的公钥、第二随机值、第二验证值、各节点的抵押、第r个区块种子和最高优先级的区块确定第三有效属性;
步骤S33:当第二有效属性和第三有效属性均为有效值时,则统计各区块的第一轮票数;
步骤S34:根据各节点的私钥、各节点的抵押和第r个区块种子确定第三随机值和第三验证值;
步骤S35:判断第三随机值是否在第二轮投票阈值范围内;如果第三随机值在第二轮投票阈值范围内,则执行步骤S36;
步骤S36:对第一轮投票满足设定条件的区块进行第二轮投票,获得各节点的第二签名。


5.根据权利要求1所述的区块链拜占庭容错共识方法,其特征在于,所述步骤S4包括:
步骤S41:根据各节点的公钥、各节点的抵押、第r个区块种子和第三验证值确定第四有效属性;
步骤S42:根据各节点的第二签名、各节点的公钥、第三随机值、第三验证值、各节点的抵押、第r个区块种子和最高优先级的区块确定第五有效属性;
步骤S43:当第四有效属性和第五有效属性均为有效值时,则统计各区块内第二轮票数;
步骤S44:当第一轮票数大于或等于设定条件且第二轮票数大于或等于设定条件时,则对该区块达成共识并返回步骤S1;否则,执行步骤S5。


6.根据权利要求1所述的区块链拜占庭容错共识方法,其特征在于,所述步骤S5包括:
步骤S51:根据各节点的私钥、各节点的抵押和第r个区块种子确定第四随机值和第...

【专利技术属性】
技术研发人员:赵峰朱敏钟林何畅彬
申请(专利权)人:北京有链科技有限公司
类型:发明
国别省市:北京;11

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

1