[发明专利]一种去中心化随机数生成方法有效
申请号: | 201910571806.9 | 申请日: | 2019-06-28 |
公开(公告)号: | CN110445603B | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 高明 | 申请(专利权)人: | 成都鹰翔天际科技有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610000 四川省成都市中国(四川)自由*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 中心 随机数 生成 方法 | ||
1.一种去中心化随机数生成方法,包括多轮随机数计算和生成,其特征在于:每一轮随机数计算和生成包括以下步骤:
步骤1、系统初始化如下参数:sk:私钥;pk:公钥;pre_hash:上一轮数据的哈希值即hash值,若为第一轮即创世轮,则pre_hash由系统自动生成;r:计算幸运值需要的用于工作量计算的目标难度值,是一个系统参数,是一个定值;u:每一轮的头部信息,包括上一轮数据的哈希值h2和当前的轮次索引,若为第一轮即创世轮,则u由系统自动生成;t:工作量证明的目标难度;
步骤2、参与者计算本轮原始随机数和本轮最终哈希值h2:假设每一轮等量地产生v(v≥1)个随机数,其中第i轮原始随机数列表如下:
其中,Hashsk(x)定义为对自变量x做哈希运算后再对其用私钥sk做数字签名的结果;
定义幸运值变量为luck且其最小值为MIN、最大值为MAX,依次计算h1=Hashsk(pre_hash||luck),直到满足h1<r时停止,停止计算时的luck值作为本轮本参与节点的最终幸运值;
计算t=f(luck),f(luck)是工作量计算中目标难度与幸运值之间的单调递减的凹函数;
寻找合适的nonce使得h2=Hashsk(u||nonce)<t成立,即完成本轮工作量计算,nonce表示只被使用一次的任意或非重复的随机数值,h2即为本轮数据的哈希值即hash值,并将本轮的h2作为下一轮的pre_hash;
步骤3、系统对所有参与者进行合法性验证:
先验证Verifypk(h1)=Hash(pre_hash||luck)、t=f(luck)和h1<r这三个表达式是否成立,如果有一个不成立则验证结果为非法并返回步骤1;
再验证Verifypk(h2)=Hash(u||nonce)以及h2<t这两个表达式是否成立,如果有一个不成立,则验证结果为非法并返回步骤1;如果这两个表达式都成立,则验证结果为合法并转至步骤4;
其中,Verifypk(x)=Hash(y)表示用公钥pk验证自变量x是否为自变量y的哈希值的签名;
步骤4:生成供用户使用的随机数:假设第i轮生成的原始随机数为Ri,0,Ri,1,...,Ri,v-1,定义变量m取值空间为(MINmMAX),则从m=MIN开始到m=MAX,依次计算Hash(Ri,0||Ri,1||...||Ri,v-1||m),找到满足Hash(Ri,0||Ri,1||...||Ri,v-1||m)<t的最小的m;若这样的m不存在,则取m=MAX;
最终在本轮即第i轮生成的供用户使用的随机数为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都鹰翔天际科技有限公司,未经成都鹰翔天际科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910571806.9/1.html,转载请声明来源钻瓜专利网。