当前位置: 首页 > 专利查询>广州大学专利>正文

一种基于VBFT共识机制的随机数生成方法技术

技术编号:34852990 阅读:26 留言:0更新日期:2022-09-08 07:53
本发明专利技术公开了一种基于VBFT共识机制的随机数生成方法,包括以下步骤:S1:每个参与节点计算并发送子份额,同时公开密码学承诺;S2:验证参与节点提供的密码学承诺;S3:参与节点将接收的所有秘密子份额进行同态相加;S4:参与节点计算得到用于验证自身解密的密码学承诺;S5:根据参与节点提供的密码学承诺对该参与节点的解密计算进行验证;S6:计算第一可验证随机数和第二可验证随机数;S7:将第一可验证随机数和第二可验证随机数相加得到随机种子,对随机种子进行一次哈希运算得到第三可验证随机数。本发明专利技术提供的方法可以高效安全地生成随机数,并且任何人都可以验证每个节点计算的正确性。确性。确性。

【技术实现步骤摘要】
一种基于VBFT共识机制的随机数生成方法


[0001]本专利技术属于区块链应用
,特别涉及一种基于VBFT共识机制的随机数生成方法。

技术介绍

[0002]区块链起源于比特币,2008年中本聪发表了《比特币:一种点对点的电子现金系统》一文,这标志着比特币和区块链的诞生。区块链最初是作为比特币的核心底层技术所提出,通过运用数据加密、时间戳、分布式共识等手段,实现去中心化、去信任的点对点交易,后来逐渐扩展到电子合同、物联网、保险、版权存证等领域。而共识机制作为区块链的底层技术,确保了保证分布式账本数据的正确性和一致性,是每个区块链网络节点都必须遵守的规则。一个区块链网络的性能、安全性和可扩展性很大程度上都取决于其共识机制的算法设计。可验证拜占庭容错(Verifiable Byzantine Fault

Tolerant,VBFT)共识机制是新兴的一种混合型共识机制,其结合了VRF(可验证随机函数)、PoS(权益证明)、BFT(拜占庭容错)三者的优点,是一种去中心化程度高、可扩展性好且高效的共识机制,但其存在着很大的安全性问题。我们基于一般向访问结构的秘密共享、哈希运算等密码学技术提出一个改进的VBFT共识机制系统,来解决VBFT共识机制中的安全性问题,并在计算过程中用零知识证明保证计算的正确性及可验证性。
[0003]VBFT共识机制流程中共识节点角色的选择、出块的先后顺序以及由哪个节点完成最终的出块是由VRF产生的随机数的值决定的。而VBFT共识机制中所用到的VRF算法是有着巨大的安全漏洞的。我们首先分析VBFT中一个区块在产生时所用的方法。首先,验证节点只对其手中最高等级的区块进行背书,而最高等级的区块由提案节点最高优先级决定。提案节点的优先级是在V中排列出的所有备选提案节点中的顺序。也就是说,排名第一的提案节点拥有最高的优先级。之后,确认节点在只对完成背书的且具有最高等级的区块进行签名。因此,提案节点的优先级对于共识的结果具有重要意义,即拥有最高优先级的提案节点拥有最大可能成为本区块的生成者。
[0004]我们假设现在共识第r个区块,r为正整数,第r块的VRF值为V=hash(vrf
r
‑1, r),即第r块的V值是通过第r个区块的vrf和r的哈希得出来的,hash(vrf
r
‑1,r) 表示基于vrf
r
和r的哈希值,vrf表示可验证随机函数,vrf的计算方式为vrf
r
‑1= (sig,π)其中,sig是用户私钥的哈希值,即用户的私钥签名;π是私钥生成的一个零知识证明,且π是可变的,因此,在产生第r个区块时(r为正整数),由于第r 块的V=hash(vrf
r
‑1,r),且第r块完全是通过V来确定提案节点的优先级,所以第r

1个区块的提案节点在计算出vrf
r
‑1的时候,就可以事先知道第r个区块的最高优先级的提案节点是哪个节点。
[0005]通过上述分析,攻击者可能会有以下攻击形式:第r

1个区块的提案节点在生成第r

1块时,由于π是可变的,提案节点就可以通过不断的改变vrf
r
‑1中π的值,来尝试寻找能够让其在第r块中处于最高优先级的vrf
r
‑1。由于最高优先级的提案节点只是通过V的最低10bits确定出来的,所以平均来说,尝试1024次就可以找到一个能够让自己成为下一个区
块最高优先级的vrf
r
‑1的值。
[0006]目前联盟链所采用的共识机制一般是基于PBFT的改进的共识机制,这种共识机制有一个严重的问题是当节点数过多时,PBFT性能下降十分明显。PBFT算法最大的局限性在于只能协调少量的节点,当共识节点数成百上千,整个系统的性能会十分低下。这是由于PBFT算法的三阶段协议所导致的。在三阶段协议中,节点需要不断进行多点广播来实现投票消息传输,这极大限制了算法性能。PBFT算法通讯次数的数量级和共识节点数量的平方成正比,在共识节点数量大的情况下,通讯导致的性能损耗限制了PBFT的共识性能。此外,PBFT只适用于对等节点网络当中,然而随着区块链的飞速发展,越来越多的应用需求被提出,区块链应用场景复杂性导致PBFT算法无法满足需求。
[0007]综上所述,在VBFT随机数生成过程中,如果某个提案节点在某一次区块竞争中获胜,那么它可能永远处于提案节点的最高优先级,并且所有区块都由该提案节点产生,这是一种严重的安全漏洞。在传统的联盟链共识机制中,可扩展性和吞吐量是制约联盟链发展的亟待解决的问题

技术实现思路

[0008]有鉴于现有问题,本专利技术的目的在于提供一种基于VBFT共识机制的随机数生成方法,以解决上述问题。
[0009]本专利技术提供如下的技术方案:
[0010]一种基于VBFT共识机制的随机数生成方法,包括以下步骤:
[0011]S1:每个联盟核心参与节点选择1个第一随机数和t

1个第二随机数,并根据一个已公开的向量空间访问结构的公开函数计算分发的子份额,在分发的同时公开其子份额的密码学承诺;除联盟核心参与节点外,每个一般共识参与节点均选择1个第一随机数和t

1个第二随机数,每个一般共识参与节点根据其选择的1个第一随机数和t

1个第二随机数生成一个t

1次多项式,第一随机数作为t

1次多项式的常数项,把t

1次多项式分成n个秘密子份额,将秘密子份额发送至其对应的一般共识参与节点;
[0012]S2:验证参与节点提供的密码学承诺,验证未通过则删除参与节点的所有计算数据;所有参与节点验证后,通过验证的参与节点进入下一步骤;
[0013]S3:参与节点将接收的所有秘密子份额进行同态相加;
[0014]S4:参与节点使用私钥对同态相加的结果进行解密得到解密后的子份额之和,在对解密后的子份额之和进行解码得到解码后的子份额之和,得到用于验证自身解密的密码学承诺;
[0015]S5:根据参与节点提供的密码学承诺对该参与节点的解密计算进行验证,验证不通过则删除该参与节点的所有计算数据;在所有参与节点验证完成后,通过验证的参与节点进入下一步骤;
[0016]S6:联盟核心节点在满足特定的访问结构后,每个联盟核心参与节点根据其他联盟核心参与节点的子份额之和计算第一可验证随机数;一般共识参与节点发送自己解码后的子份额之和至其他一般共识参与节点,一般共识参与节点根据其他一般共识参与节点解码后的子份额之和计算第二可验证随机数;
[0017]S7:将第一可验证随机数和第二可验证随机数相加得到随机种子,对随机种子进
P
n+1
的自身子份额。
[0032]在σ

1轮共识后,联盟核心参与节点有有C个节点{P1,P2,...,P<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于VBFT共识机制的随机数生成方法,其特征在于,包括以下步骤:S1:每个联盟核心参与节点选择1个第一随机数和t

1个第二随机数,并根据一个已公开的向量空间访问结构的公开函数计算分发的子份额,在分发的同时公开其子份额的密码学承诺;除联盟核心参与节点外,每个一般共识参与节点均选择1个第一随机数和t

1个第二随机数,每个一般共识参与节点根据其选择的1个第一随机数和t

1个第二随机数生成一个t

1次多项式,第一随机数作为t

1次多项式的常数项,把t

1次多项式分成n个秘密子份额,将秘密子份额发送至其对应的一般共识参与节点;S2:验证参与节点提供的密码学承诺,验证未通过则删除参与节点的所有计算数据;所有参与节点验证后,通过验证的参与节点进入下一步骤;S3:参与节点将接收的所有秘密子份额进行同态相加;S4:参与节点使用私钥对同态相加的结果进行解密得到解密后的子份额之和,在对解密后的子份额之和进行解码得到解码后的子份额之和,得到用于验证自身解密的密码学承诺;S5:根据参与节点提供的密码学承诺对该参与节点的解密计算进行验证,验证不通过则删除该参与节点的所有计算数据;在所有参与节点验证完成后,通过验证的参与节点进入下一步骤;S6:联盟核心节点在满足特定的访问结构后,每个联盟核心参与节点根据其他联盟核心参与节点的子份额之和计算第一可验证随机数;一般共识参与节点发送自己解码后的子份额之和至其他一般共识参与节点,一般共识参与节点根据其他一般共识参与节点解码后的子份额之和计算第二可验证随机数;S7:将第一可验证随机数和第二可验证随机数相加得到随机种子,对随机种子进行一次哈希运算得到第三可验证随机数。2.根据权利要求1所述的基于VBFT共识机制的随机数生成方法,其特征在于,所述步骤S1中,t为协议门限值或向量空间维度,t的取值范围为t>1。3.根据权利要求1所述的基于VBFT共识机制的随机数生成方法,其特征在于,所述可验证随机数长度为256bits。4.根据权利要求1所述的基于VBFT共识机制的随机数生成方法,其特征在于,所述步骤S6中的所述联盟核心参与节点计算第一可验证随机数的方法包括以下步骤:S6A1:初始化Γ为n个联盟核心参与节点向量空间上的访问结构,为公开函数;S6A2:联盟核心参与节点P
i
任意选取一个S
i
∈GF(q)为子秘密,参与节点P
i
随机选取一个向量V
i
∈E,使V
i
·
(1,0,...,0)=S
i
,通过共识计算其他联盟核心参与节点P
j
的子份额,并秘密分享给P
j
,同时P
i
通过公式计算并公开承诺;S6A3:在授权子集B=P1,P2,...,P
l
,1<l<n中,B中的联盟核心参与节点在完成子份额验证之后,通过求解方程计算向量x=(c1,c2,...,c
l
),主秘密为公式的计算结果,B中的联盟核心参与节点联合其主份额得到主秘密S,即第一可验证随机数。
5.根据权利要求4所述的基于VBFT共识机制的随机数生成方法,其特征在于,所述步骤S6A2中,联盟核心参与节点收到来自其他联盟核心参与节点的子份额s
ij
时,联盟核心参与节点P
j
先计算如果成立,那么相信联盟核心参与P
i
是诚实的,否则要求联盟核心参与节点P
i
重新发送子份额或者将该联盟核心节点P
i
标记为不诚实参与节点,并删除相关数据。6.根据权利要求4所述的基于VBFT共识机制的随机数生成方法,其特征在于,在第σ轮系统外部有节点P
n+1
加入联盟核心时,联盟核心参与节点P
i<...

【专利技术属性】
技术研发人员:李进陈祺覃延嘉游成陈畅
申请(专利权)人:广州大学
类型:发明
国别省市:

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

1