一种联盟链中随机数生成方法及生成端技术

技术编号:24945599 阅读:27 留言:0更新日期:2020-07-17 22:46
本发明专利技术公开了一种联盟链中随机数生成方法及生成端,接收至少两个排序节点发送的随机数和对应的数字签名;验证每一个排序节点所发送的数字签名,若验证通过,则将随机数加入至随机数集合中;从随机数集合中选取一个随机数,将所选取的随机数发送给请求方。本发明专利技术通过多个排序节点产生多个随机数,并从其中选取一个作为最终随机数,使得每一个随机数的参与者都无法预测最终产生的随机数,从而解决联盟链中的随机数生产问题。

【技术实现步骤摘要】
一种联盟链中随机数生成方法及生成端
本专利技术涉及区块链
,特别涉及一种联盟链中随机数生成方法及生成端。
技术介绍
目前,大多数语言的library所提供的随机数都是伪随机数。在区块链的应用场景中,如何产生不可预测的随机数是非常重要的研究方向。例如EthereumBeaconchain(POSchain)中的validator/attester(产块跟验证的角色)关于随机数的产生,采用RANDAO+VDF的模式,利用经济模式(奖励跟处罚)的方式,促使在公共场域中能产生随机变量。其中,Randao基于区块链技术,提供开源的、去中心化的、社交化的、可证公平的随机数生成,拥有不可控制性及不可预测性。Randao通过为每个利益相关的个体提供参与的通道,使个体可以观察到自己对随机数生成的影响。透明、不可逆的随机数生成过程保证了结果可证公平性。利用Randao服务,用户可以针对各个使用场景,快速地构建可证公平的应用。这些场景包括但不限于公共管理、娱乐、体育、金融、企业内部管理等。其中,VDF全称为VerifiableDelayFunction(可验证延迟函数),通过引入这种延迟,并使计算的时间要长于验证者可以通过影响某个随机数而获得利益的时间,消除最后一级的随机性偏差,即消除单个验证者可以对RANDAO结果产生的最后一点操控。在联盟链中没有公有链中的那种经济激励(奖励与处罚)模式,因此在联盟链中采用类似RANDAO+VDF的模式并不能产生不能预测的随机数,因为在随机数产生的过程中,参与随机数产生的参与者可以提供不真实的随机数种子,并可能预测最终产生的随机数。
技术实现思路
本专利技术所要解决的技术问题是:提供一种联盟链中随机数生成方法及生成端,以解决联盟链中的随机数生产问题。为了解决上述技术问题,本专利技术采用的技术方案为:一种联盟链中随机数生成方法,包括步骤:S1、接收至少两个排序节点发送的随机数和对应的数字签名;S2、验证每一个排序节点所发送的数字签名,若验证通过,则将所述随机数加入至随机数集合中;S3、从所述随机数集合中选取一个随机数,将所选取的所述随机数发送给请求方。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种联盟链中随机数生成端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:S1、接收至少两个排序节点发送的随机数和对应的数字签名;S2、验证每一个排序节点所发送的数字签名,若验证通过,则将所述随机数加入至随机数集合中;S3、从所述随机数集合中选取一个随机数,将所选取的所述随机数发送给请求方。本专利技术的有益效果在于:一种联盟链中随机数生成方法及生成端,由多个排序节点发送的随机数和对应的数字签名,并将验证通过的随机数加入至随机数集合中,最后从随机数集合中选取一个随机数作为最终的随机数发送出去,由此,通过多个排序节点产生多个随机数,并从其中选取一个作为最终随机数,使得每一个随机数的参与者都无法预测最终产生的随机数,从而解决联盟链中的随机数生产问题。附图说明图1为本专利技术实施例的一种联盟链中随机数生成方法的主要流程示意图;图2为本专利技术实施例的一种联盟链中随机数生成方法的数据生成示意图;图3为本专利技术实施例的一种联盟链中随机数生成端的结构示意图。标号说明:1、一种联盟链中随机数生成端;2、处理器;3、存储器。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。请参照图1和图2,一种联盟链中随机数生成方法,包括步骤:S1、接收至少两个排序节点发送的随机数和对应的数字签名;S2、验证每一个排序节点所发送的数字签名,若验证通过,则将所述随机数加入至随机数集合中;S3、从所述随机数集合中选取一个随机数,将所选取的所述随机数发送给请求方。从上述描述可知,本专利技术的有益效果在于:由多个排序节点发送的随机数和对应的数字签名,并将验证通过的随机数加入至随机数集合中,最后从随机数集合中选取一个随机数作为最终的随机数发送出去,由此,通过多个排序节点产生多个随机数,并从其中选取一个作为最终随机数,使得每一个随机数的参与者都无法预测最终产生的随机数,从而解决联盟链中的随机数生产问题。进一步地,所述步骤S1具体包括以下步骤:接收排序节点集合{ord1,…,ords}中S个排序节点所发送的随机数{r1,…,rs}和对应的数字签名所述S大于或等于2,所述ords为第S个排序节点,所述rs为第S个排序节点所发送的随机数,所述为第S个排序节点所发送的数字签名,所述h为区块高度,所述H为哈希计算,所述sks为第S个排序节点对应的私钥;所述步骤S2具体包括以下步骤:对每一个排序节点所发送的数字签名进行如下的等式验证:将等式成立的所述数字签名所对应的随机数进行集合,得到第一随机数集合{r’1,…,r’m},所述pki为第S个排序节点对应的公钥,所述r’m为等式成立中第m个排序节点所发送的随机数;所述步骤S3具体包括以下步骤:计算rand=f(r’1,…,r’m),将所述rand发送给请求方,所述f为对多个随机数运算产生最终的随机数rand的函数。从上述描述可知,基于不同的应用采用不同的f进行运算,以适应不同应用厂商的不同需求。进一步地,所述步骤S2和所述步骤S3之间还包括以下步骤:对所述第一随机数集合{r’1,…,r’m}中每一个随机数所对应的数字签名进行哈希计算,得到二次哈希值的集合为对所述二次哈希值按照数值大小进行排序,将其中前n个所述二次哈希值所对应的随机数进行集合,得到第二随机数集合{r1”,…,rn”},所述n=max(3,m/2);所述步骤S3具体包括以下步骤:计算rand=f(r1”,…,rn”),将所述rand发送给请求方,所述f为对多个随机数运算产生最终的随机数rand的函数。从上述描述可知,只从m个随机数中选取n个随机数来产生随机数集合,使得不是所有的参与者都能产生随机数集合,而通过对数字签名的二次哈希之后进行排序选取,从而产生随机的随机数集合,以解决最后一个参与者有更大权力的问题,其中,每一个随机数对应其参与者,而作为随机数集合的一部分又可称为随机数产生者,因此,产生随机的随机数集合也相当于是产生随机的随机数产生者集合。进一步地,所述“对所述二次哈希值按照数值大小进行排序”具体包括以下步骤:对所述二次哈希值按照从小到大进行排序。从上述描述可知,取前n个二次哈希值最小的随机数,即提供一种产生随机的随机数集合的较佳实施方式。进一步地,所述步骤S2中“验证每一个排序节点所发送的数字签名”具体包括以下步骤:经过生产周期T后,分别验证每一个排序节点所发送的数字签名。从上述描述可知,在需要T时间来产生本文档来自技高网
...

【技术保护点】
1.一种联盟链中随机数生成方法,其特征在于,包括步骤:/nS1、接收至少两个排序节点发送的随机数和对应的数字签名;/nS2、验证每一个排序节点所发送的数字签名,若验证通过,则将所述随机数加入至随机数集合中;/nS3、从所述随机数集合中选取一个随机数,将所选取的所述随机数发送给请求方。/n

【技术特征摘要】
1.一种联盟链中随机数生成方法,其特征在于,包括步骤:
S1、接收至少两个排序节点发送的随机数和对应的数字签名;
S2、验证每一个排序节点所发送的数字签名,若验证通过,则将所述随机数加入至随机数集合中;
S3、从所述随机数集合中选取一个随机数,将所选取的所述随机数发送给请求方。


2.根据权利要求1所述的一种联盟链中随机数生成方法,其特征在于,所述步骤S1具体包括以下步骤:
接收排序节点集合{ord1,…,ords}中S个排序节点所发送的随机数{r1,…,rs}和对应的数字签名所述S大于或等于2,所述ords为第S个排序节点,所述rs为第S个排序节点所发送的随机数,所述为第S个排序节点所发送的数字签名,所述h为区块高度,所述H为哈希计算,所述sks为第S个排序节点对应的私钥;
所述步骤S2具体包括以下步骤:
对每一个排序节点所发送的数字签名进行如下的等式验证:将等式成立的所述数字签名所对应的随机数进行集合,得到第一随机数集合{r′1,…,r′m},所述pki为第S个排序节点对应的公钥,所述r′m为等式成立中第m个排序节点所发送的随机数;
所述步骤S3具体包括以下步骤:
计算rand=f(r′1,…,r′m),将所述rand发送给请求方,所述f为对多个随机数运算产生最终的随机数rand的函数。


3.根据权利要求2所述的一种联盟链中随机数生成方法,其特征在于,所述步骤S2和所述步骤S3之间还包括以下步骤:
对所述第一随机数集合{r′1,…,r′m}中每一个随机数所对应的数字签名进行哈希计算,得到二次哈希值的集合为对所述二次哈希值按照数值大小进行排序,将其中前n个所述二次哈希值所对应的随机数进行集合,得到第二随机数集合{r″1,…,r″m},所述n=max(3,m/2);
所述步骤S3具体包括以下步骤:
计算rand=f(r″1,…,r″m),将所述rand发送给请求方,所述f为对多个随机数运算产生最终的随机数rand的函数。


4.根据权利要求3所述的一种联盟链中随机数生成方法,其特征在于,所述“对所述二次哈希值按照数值大小进行排序”具体包括以下步骤:
对所述二次哈希值按照从小到大进行排序。


5.根据权利要求1所述的一种联盟链中随机数生成方法,其特征在于,所述步骤S2中“验证每一个排序节点所发送的数字签名”具体包括以下步骤:
经过生产周期T后,分别验证每一个排序节点所发送的数字签名。


6.一种联盟链中随机数生成端,包括存储器、处理器及存储在存储器上并...

【专利技术属性】
技术研发人员:斯雪明
申请(专利权)人:福建福链科技有限公司
类型:发明
国别省市:福建;35

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

1