一种多方参与的随机数生成方法及装置制造方法及图纸

技术编号:25528407 阅读:45 留言:0更新日期:2020-09-04 17:16
本说明书实施例涉及一种多方参与的随机数生成方法及装置,应用于联盟链系统。利用联盟链的场景中可以存在中心组织的特性,引入随机数发起方的概念,随机数参与方在链上仅需发送一笔交易简化了随机数产生的步骤,降低了随机数参与方因为步骤繁琐而错过了参与随机数产生。本发明专利技术技术方案还包括了随机数发起方保底提供一个随机数,避免极限情况下无人参与随机数导致随机数产生失败的情况,提高随机数产生系统的鲁棒性。

【技术实现步骤摘要】
一种多方参与的随机数生成方法及装置
本说明书实施例涉及网络
,尤其涉及一种多方参与的随机数生成方法及装置。
技术介绍
区块链对于随机数有着巨大的依赖,甚至在以PBFT,PoS等为共识算法的公链中随机数的随机性直接关系到了系统的去中心化与公平特性。不仅仅区块链大量链本身需要用到随机数,基于区块链的虚拟机所工作的各类Dapp也高度依赖随机数。然而Dapp的随机数往往选取某一块高的Hash或某个交易的Hash或者对以上数据作确定性的伪随机运算,这必将导致随机数的随机性受到某位不确定的矿工控制。为了避免上述情况的发生Randao提出了一种依赖参与者的随机数产生方式,但在实际操作过程中,需要参与者的多轮参与。而参与者很可能在第2轮提供了种子哈希,但在第3轮放弃提供种子,同样也损害了产生随机数的随机性。
技术实现思路
本说明书实施例提供了一种多方参与的随机数生成方法及装置,用以解决现有技术中参与方中途放弃参与随机数生成降低了随机特性的问题。为了解决上述技术问题,本说明书实施例采用下述技术方案:第一方面,提供了一种多方参与的随机数生成方法,应用于联盟链系统,所述方法包括:随机数发起方产生随机数的根私钥;所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;对收集到的参与方随机数种子进行累加,得到最终随机数种子;基于最终随机数种子产生随机数。第二方面,提供了一种多方参与的随机数生成装置,应用于联盟链系统,所述装置包括:根私钥生成单元:用于随机数发起方产生随机数的根私钥;根私钥派发单元:用于所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;公钥获取单元:用于所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;第一随机数种子生成单元:用于所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;揭露随机数单元:用于所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;累加单元:用于对收集到的参与方随机数种子进行累加,得到最终随机数种子;随机数确定单元:用于基于最终随机数种子产生随机数。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:公链中产生随机数暴露了大量弊端,这些弊端是为了保证公链环境下产生去中心化的随机数,而在联盟链的场景中,由于可以存在中心的组织,因此本专利技术利用这一特性,引入随机数发起方的概念,随机数参与方在链上仅需发送一笔交易简化了随机数产生的步骤,降低了随机数参与方因为步骤繁琐而错过了参与随机数产生。本专利技术技术方案还包括了随机数发起方保底提供一个随机数,避免极限情况下无人参与随机数导致随机数产生失败的情况,提高随机数产生系统的鲁棒性。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本说明书实施例提供的多方参与的随机数生成方法的步骤示意图;图2为本说明书实施例提供的多方参与的随机数生成装置的结构示意图。具体实施方式为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。以下结合附图,详细说明本说明书各实施例提供的技术方案。实施例一参照图1所示,为本说明书实施例提供的一种多方参与的随机数生成方法的步骤示意图,应用于联盟链系统,所述方法可以包括以下步骤:步骤101:随机数发起方产生随机数的根私钥PrivRoot;步骤102:所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数Param-i和派发私钥Priv-i;需要说明的是:其中Param-i表示随机数参与方i(i=1、2、3……N)(N为随机数参与方的个数)对应的附加参数,而Priv-i表示随机数参与方i(i=1、2、3……N)对应的派发私钥,以下类似。步骤103:所述随机数参与方通过公私钥算法得到所述派发私钥Priv-i对应的公钥Pub-i;步骤104:所述随机数参与方产生参与方随机数种子Si,利用所述派发私钥Priv-i对应的公钥Pub-i进行加密,将加密信息及对应的附加参数Param-i通过智能合约进行上链存储;步骤105:所述随机数发起方从链上获得随机数参与方的附加参数Param-i及对应的加密信息,根据所述附加参数Param-i和根私钥PrivRoot复现出对应的派发私钥Priv-i,利用所述派发私钥Priv-i对所述加密信息进行解密以得到所述参与方随机数种子Si;步骤106:对收集到的参与方随机数种子Si进行累加,得到最终随机数种子Sfinal;即步骤107:基于最终随机数种子Sfinal产生随机数。需要说明的是:根私钥PrivRoot表示初始私钥,它不由任何私钥派发,该私钥可以由加密硬件产生;参与方随机数种子Si表示随机数因子,该种子的产生可以由加密硬件产生。可选的,所述步骤102可以进一步包括以下步骤:产生与每个所述随机数参与方i各自对应的附加参数Param-i;附加参数Param-i在根私钥PrivRoot派发过程中作为索引参数,其定义可以为有规律的序列(eg0,1,2,3,4…)也可以用其他可识别的方式确定。对所述根私钥PrivRoot添加所述附加参数Param-i后进行哈希运算,得到所述随机数参与方对应的派发私钥Priv-i。需要说明的是,每个随机数参与方在接收到自身对应的附加参数Param-i和派发私钥Priv-i的同时,也接收到了所述随机数发起方所发送的产生随机数的智能合约的地址,以及产生本次随机数的结束块高。另外,在步骤本文档来自技高网...

【技术保护点】
1.一种多方参与的随机数生成方法,应用于联盟链系统,所述方法包括:/n随机数发起方产生随机数的根私钥;/n所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;/n所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;/n所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;/n所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;/n对收集到的参与方随机数种子进行累加,得到最终随机数种子;/n基于最终随机数种子产生随机数。/n

【技术特征摘要】
1.一种多方参与的随机数生成方法,应用于联盟链系统,所述方法包括:
随机数发起方产生随机数的根私钥;
所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;
所述随机数参与方通过公私钥算法得到所述派发私钥对应的公钥;
所述随机数参与方产生参与方随机数种子,利用所述派发私钥对应的公钥进行加密,将加密信息及对应的附加参数通过智能合约进行上链存储;
所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子;
对收集到的参与方随机数种子进行累加,得到最终随机数种子;
基于最终随机数种子产生随机数。


2.如权利要求1所述的方法,其中所述随机数发起方向随机数参与方进行根私钥派发,使得每个随机数参与方获得各自的附加参数和派发私钥;进一步包括:
产生与每个所述随机数参与方各自对应的附加参数;
对所述根私钥添加所述附加参数后进行哈希运算,得到所述随机数参与方对应的派发私钥。


3.如权利要求2所述的方法,进一步包括:
所述随机数发起方产生发起方随机数种子;
对收集到的参与方随机数种子与所述发起方随机数种子进行累加,得到最终随机数种子。


4.如权利要求3所述的方法,进一步包括:
所述随机数发起方产生发起方随机数种子后,将其进行哈希处理后进行链上存储;
所述随机数发起方从链上获得随机数参与方的附加参数及对应的加密信息,根据所述附加参数和根私钥复现出对应的派发私钥、利用所述派发私钥对所述加密信息进行解密以得到所述参与方随机数种子之前,进一步包括:
所述随机数发起方向智能合约发送所述发起方随机数种子的哈希值,对比所述发起方随机数种子的哈希值与与链上存储的的发起方随机数种子的哈希值是否一致;如果一致则继续下一步骤,如果不一致,则终止本次随机数的产生。


5.如权利要求1所述的方法,其中,所述随机数参与方至少为3个。


6.一种多方参与的随机数生成装置,应用于联盟链系统,所述装置包括:
...

【专利技术属性】
技术研发人员:王晓亮姚鹏飞俞波
申请(专利权)人:杭州溪塔科技有限公司
类型:发明
国别省市:浙江;33

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

1