[发明专利]一种多方参与的随机数生成方法及装置有效
申请号: | 202010439033.1 | 申请日: | 2020-05-22 |
公开(公告)号: | CN111628862B | 公开(公告)日: | 2023-09-12 |
发明(设计)人: | 王晓亮;姚鹏飞;俞波 | 申请(专利权)人: | 杭州溪塔科技有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 郭美丽 |
地址: | 310005 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多方 参与 随机数 生成 方法 装置 | ||
本说明书实施例涉及一种多方参与的随机数生成方法及装置,应用于联盟链系统。利用联盟链的场景中可以存在中心组织的特性,引入随机数发起方的概念,随机数参与方在链上仅需发送一笔交易简化了随机数产生的步骤,降低了随机数参与方因为步骤繁琐而错过了参与随机数产生。本发明技术方案还包括了随机数发起方保底提供一个随机数,避免极限情况下无人参与随机数导致随机数产生失败的情况,提高随机数产生系统的鲁棒性。
技术领域
本说明书实施例涉及网络技术领域,尤其涉及一种多方参与的随机数生成方法及装置。
背景技术
区块链对于随机数有着巨大的依赖,甚至在以PBFT,PoS等为共识算法的公链中随机数的随机性直接关系到了系统的去中心化与公平特性。不仅仅区块链大量链本身需要用到随机数,基于区块链的虚拟机所工作的各类Dapp也高度依赖随机数。然而Dapp的随机数往往选取某一块高的Hash或某个交易的Hash或者对以上数据作确定性的伪随机运算,这必将导致随机数的随机性受到某位不确定的矿工控制。
为了避免上述情况的发生Randao提出了一种依赖参与者的随机数产生方式,但在实际操作过程中,需要参与者的多轮参与。而参与者很可能在第2轮提供了种子哈希,但在第3轮放弃提供种子,同样也损害了产生随机数的随机性。
发明内容
本说明书实施例提供了一种多方参与的随机数生成方法及装置,用以解决现有技术中参与方中途放弃参与随机数生成降低了随机特性的问题。
为了解决上述技术问题,本说明书实施例采用下述技术方案:
第一方面,提供了一种多方参与的随机数生成方法,应用于联盟链系统,所述方法包括:
随机数发起方产生随机数的根私钥;
所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;
所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;
所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;
所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;
对收集到的参与方随机数种子进行累加,得到最终随机数种子;
基于最终随机数种子产生随机数。
第二方面,提供了一种多方参与的随机数生成装置,应用于联盟链系统,所述装置包括:
根私钥生成单元:用于随机数发起方产生随机数的根私钥;
根私钥派发单元:用于所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;
公钥获取单元:用于所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;
第一随机数种子生成单元:用于所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;
揭露随机数单元:用于所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;
累加单元:用于对收集到的参与方随机数种子进行累加,得到最终随机数种子;
随机数确定单元:用于基于最终随机数种子产生随机数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州溪塔科技有限公司,未经杭州溪塔科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010439033.1/2.html,转载请声明来源钻瓜专利网。