【技术实现步骤摘要】
一种多方参与的随机数生成方法及装置
本说明书实施例涉及网络
,尤其涉及一种多方参与的随机数生成方法及装置。
技术介绍
区块链对于随机数有着巨大的依赖,甚至在以PBFT,PoS等为共识算法的公链中随机数的随机性直接关系到了系统的去中心化与公平特性。不仅仅区块链大量链本身需要用到随机数,基于区块链的虚拟机所工作的各类Dapp也高度依赖随机数。然而Dapp的随机数往往选取某一块高的Hash或某个交易的Hash或者对以上数据作确定性的伪随机运算,这必将导致随机数的随机性受到某位不确定的矿工控制。为了避免上述情况的发生Randao提出了一种依赖参与者的随机数产生方式,但在实际操作过程中,需要参与者的多轮参与。而参与者很可能在第2轮提供了种子哈希,但在第3轮放弃提供种子,同样也损害了产生随机数的随机性。
技术实现思路
本说明书实施例提供了一种多方参与的随机数生成方法及装置,用以解决现有技术中参与方中途放弃参与随机数生成降低了随机特性的问题。为了解决上述技术问题,本说明书实施例采用下述技术方案:第一方面,提供了一种多方参与的随机数生成方法,应用于联盟链系统,所述方法包括:随机数发起方产生随机数的根私钥;所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参 ...
【技术保护点】
1.一种多方参与的随机数生成方法,应用于联盟链系统,所述方法包括:/n随机数发起方产生随机数的根私钥;/n所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;/n所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;/n所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;/n所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;/n对收集到的参与方随机数种子进行累加,得到最终随机数种子;/n基于最终随机数种子产生随机数。/n
【技术特征摘要】
1.一种多方参与的随机数生成方法,应用于联盟链系统,所述方法包括:
随机数发起方产生随机数的根私钥;
所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;
所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;
所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;
所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;
对收集到的参与方随机数种子进行累加,得到最终随机数种子;
基于最终随机数种子产生随机数。
2.如权利要求1所述的方法,其中所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;进一步包括:
产生与每个所述随机数参与方各自对应的附加参数;
对所述根私钥添加所述附加参数后进行哈希运算,得到所述随机数参与方对应的派发私钥。
3.如权利要求2所述的方法,进一步包括:
所述随机数发起方产生发起方随机数种子;
对收集到的参与方随机数种子与所述发起方随机数种子进行累加,得到最终随机数种子。
4.如权利要求3所述的方法,进一步包括:
所述随机数发起方产生发起方随机数种子后,将其进行哈希处理后进行链上存储;
所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子之前,进一步包括:
所述随机数发起方向智能合约发送所述发起方随机数种子的哈希值,对比所述发起方随机数种子的哈希值与与链上存储的的发起方随机数种子的哈希值是否一致;如果一致则继续下一步骤,如果不一致,则终止本次随机数的产生。
5.如权利要求1所述的方法,其中,所述随机数参与方至少为3个。
6.一种多方参与的随机数生成装置,应用于联盟链系统,所述装置包括:
...
【专利技术属性】
技术研发人员:王晓亮,姚鹏飞,俞波,
申请(专利权)人:杭州溪塔科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。