随机数生成与验证方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:28045708 阅读:15 留言:0更新日期:2021-04-09 23:30
本申请实施例提供了一种随机数生成与验证方法、装置、电子设备及可读存储介质。该随机数生成方法包括:接收随机数生成交易请求;基于当前区块信息,并基于预设的签名算法生成随机种子;广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。

【技术实现步骤摘要】
随机数生成与验证方法、装置、电子设备及可读存储介质
本申请涉及区块链
,具体而言,本申请涉及一种随机数生成与验证方法、装置、电子设备及可读存储介质。
技术介绍
在区块链上,由于一切信息都是透明公开的,提供一个安全实用的随机数实现方案是一个非常困难的问题。目前随机数在区块链上具有较多的使用场景,如游戏及流程控制等。传统区块链上随机数的实现多通过以下几种方式:第一种是让可信第三方为合约提供随机数,这种情况通常是中心化的解决方案,通过一个可信的oracle来提供独立的随机数源。第二种是交互式的commit(承诺)和reveal(打开)。参与过程的多方预先commit一个随机数,然后将其hash值递交到区块链上。所有参与方都递交完毕后,各方reveal自己的随机数,通过将各自的随机数合并产生一个最终的随机数。第三种是采用链上的公开信息,比如使用区块的哈希值、时间戳、难度系数等作为随机数源。第四种是从共识层,通过阈值签名的方式,使得每个共识节点递交各自对某个信息的签名片段,在足够多的签名片段收集到之后,任何一个共识节点都可以将签名片段合并成一个合法的可验证的签名。第一种方式中,由于可信第三方的随机源,独立在区块链系统外,不方便管理。第二种方式中,在生成交互式的随机数的过程中,由于部分节点可能不公开自己的参数,从而导致最终无法生成随机数。第三种方式中,由于是采用链上公开信息或者自己组合,出块者可能会选择对自己有利的区块数据进行出块,进而让随机数失去公平性。第四种方式中,在每一轮区块产生的过程中,每个节点需要广播自己的签名片段,可能会导致对节点数量的限制,影响支撑的应用的效率等。因此,现有的随机数实现方案均存在一定的局限性,亟需在区块链上提供一种安全实用的随机数实现方案。
技术实现思路
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:第一方面,本申请实施例提供了一种随机数生成方法,该方法包括:接收随机数生成交易请求;基于当前区块信息,并基于预设的签名算法生成随机种子;广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。可选地,上述方法还包括:生成随机种子的验证数据。可选地,广播随机种子,包括:基于随机种子以及验证数据组装随机源信息并广播随机源信息,以使其他节点基于验证数据对随机种子进行验证。可选地,随机数生成交易请求中携带有指定区块高度信息,基于当前区块信息,并基于预设的签名算法生成随机种子,包括:确定当前的区块高度信息是否不低于指定区块高度信息;若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。第二方面,本申请实施例提供了一种随机数生成方法,该方法包括:接收随机源节点广播的随机源信息,随机源信息包括随机种子以及随机种子的验证数据;基于验证数据对随机种子进行验证。可选地,上述方法还包括:若随机种子验证通过,则基于随机种子生成随机数。第三方面,本申请实施例提供了一种随机数生成装置,该装置包括:交易请求接收模块,用于接收随机数生成交易请求;随机种子生成模块,用于基于当前区块信息,并基于预设的签名算法生成随机种子;随机种子广播模块,用于广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。可选地,上述随机种子生成模块还用于:生成随机种子的验证数据。可选地,上述随机种子广播模块在广播随机种子时,具体用于:基于随机种子以及验证数据组装随机源信息并广播随机源信息,以使其他节点基于验证数据对随机种子进行验证。可选地,随机数生成交易请求中携带有指定区块高度信息,随机种子生成模块具体用于:确定当前的区块高度信息是否不低于指定区块高度信息;若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。可选地,随机种子生成模块具体用于:基于当前区块信息生成字符串;基于字符串以及随机源节点的私钥,并基于预设的签名算法生成随机种子。第四方面,本申请实施例提供了一种随机数的验证装置,该装置包括:随机源信息接收模块,用于接收随机源节点广播的随机源信息,随机源信息包括随机种子以及随机种子的验证数据;随机数验证模块,用于基于验证数据对随机种子进行验证。可选地,上述装置还包括:随机数生成模块,用于在随机种子验证通过时,基于随机种子生成随机数。第五方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;存储器,用于存储操作指令;处理器,用于通过调用操作指令,执行如本申请的第一方面或者第二方面的任一实施方式中所示的方法。第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面或者第二方面的任一实施方式中所示的方法。本申请实施例提供的技术方案带来的有益效果是:本申请实施例中提供的方案,区块链中指定的随机源节点接收随机数生成交易请求,基于当前区块信息,并基于预设的签名算法生成随机种子,而后广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。图1为本申请实施例提供的一种随机数生成方法的流程示意图;图2为本申请实施例提供一种随机数的生成方法的一种具体实施方式的流程示意图;图3为本申请实施例提供的多个应用预置自己的随机数生成器流程图;图4为本申请实施例提供的一种随机数验证方法的流程示意图;图5为本申请实施例提供的其他节点以及用户验证随机源公平性的流程示意图。图6为本申请实施例提供的一种随机数生成装置的结构示意图;图7为本申请实施例提供的一种随机数的验证装置的结构示意图;图8为本申请实施例提供的一种电子设备的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、本文档来自技高网
...

【技术保护点】
1.一种随机数生成方法,其特征在于,应用于区块链中预指定的随机源节点,所述方法包括:/n接收随机数生成交易请求;/n基于当前区块信息,并基于预设的签名算法生成随机种子;/n广播所述随机种子,以使所述区块链中除所述随机源节点外的其他节点接收所述随机种子,并基于所述随机种子生成随机数。/n

【技术特征摘要】
1.一种随机数生成方法,其特征在于,应用于区块链中预指定的随机源节点,所述方法包括:
接收随机数生成交易请求;
基于当前区块信息,并基于预设的签名算法生成随机种子;
广播所述随机种子,以使所述区块链中除所述随机源节点外的其他节点接收所述随机种子,并基于所述随机种子生成随机数。


2.根据权利要求1所述的方法,其特征在于,还包括:
生成所述随机种子的验证数据。


3.根据权利要求2所述的方法,其特征在于,所述广播所述随机种子,包括:
基于所述随机种子以及所述验证数据组装随机源信息并广播所述随机源信息,以使所述其他节点基于所述验证数据对所述随机种子进行验证。


4.根据权利要求1-3中任一项所述的方法,其特征在于,所述随机数生成交易请求中携带有指定区块高度信息,所述基于当前区块信息,并基于预设的签名算法生成随机种子,包括:
确定当前的区块高度信息是否不低于所述指定区块高度信息;
若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。


5.根据权利要求1-3中任一项所述的方法,其特征在于,所述基于当前区块信息,并基于预设的签名算法生成随机种子,包括:
基于所述当前区块信息生成字符串;
基于所述字符串以及所述随机源节点的私钥,并基于预设的签名算法生成随机种子。


6.一种随机数验证方法,其特征在于,应用于区块链...

【专利技术属性】
技术研发人员:陈志明姜鹏张雅楠
申请(专利权)人:中信银行股份有限公司
类型:发明
国别省市:北京;11

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

1