【技术实现步骤摘要】
一种联盟链中随机数生成方法及生成端
本专利技术涉及区块链
,特别涉及一种联盟链中随机数生成方法及生成端。
技术介绍
目前,大多数语言的library所提供的随机数都是伪随机数。在区块链的应用场景中,如何产生不可预测的随机数是非常重要的研究方向。例如EthereumBeaconchain(POSchain)中的validator/attester(产块跟验证的角色)关于随机数的产生,采用RANDAO+VDF的模式,利用经济模式(奖励跟处罚)的方式,促使在公共场域中能产生随机变量。其中,Randao基于区块链技术,提供开源的、去中心化的、社交化的、可证公平的随机数生成,拥有不可控制性及不可预测性。Randao通过为每个利益相关的个体提供参与的通道,使个体可以观察到自己对随机数生成的影响。透明、不可逆的随机数生成过程保证了结果可证公平性。利用Randao服务,用户可以针对各个使用场景,快速地构建可证公平的应用。这些场景包括但不限于公共管理、娱乐、体育、金融、企业内部管理等。其中,VDF全称为VerifiableDelayFunction(可验证延迟函数),通过引入这种延迟,并使计算的时间要长于验证者可以通过影响某个随机数而获得利益的时间,消除最后一级的随机性偏差,即消除单个验证者可以对RANDAO结果产生的最后一点操控。在联盟链中没有公有链中的那种经济激励(奖励与处罚)模式,因此在联盟链中采用类似RANDAO+VDF的模式并不能产生不能预测的随机数,因为在随机数产生的过程中,参与随机数产生的参 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。