一种基于区块链随机数产生的方法技术

技术编号:32724286 阅读:10 留言:0更新日期:2022-03-20 08:29
本发明专利技术提出一种基于区块链的随机数的产生方法,区块链出块的每一个轮次会产生一个新的随机数,在进入第r轮时,随机选出一组作为第r轮潜在出块者群组;潜在出块者群组节点形成一个组签名;将所述组签名在区块链网络中进行广播,接收组签名的其他所述参与者节点进行验证信息验证;若验证有效,则接收所述组签名数据的所述参与者节点进行签名后重新广播;区块链网络中的其中一个节点已经收到门限值数量的不同节点的有效的签名,该节点进行签名,获得最终的组签名信息,计算组签名的哈希值,得到该轮的最终随机数,本发明专利技术提出的创造随机性的方案解决了关键的“最后一个参与者”问题,能够提供在多方参与下不会被人为操纵的“真随机数”。。。

【技术实现步骤摘要】
一种基于区块链随机数产生的方法


[0001]本专利技术涉及区块链领域,尤其涉及一种基于区块链随机数产生的方法。

技术介绍

[0002]区块链技术发展迅速,已经在一些领域有了应用。区块链以其独有的特点能够解决一些传统领域一直存在的难题。在传统应用中,许多场景对于公开性、公平性和不可人为操纵的随机数有着强烈的需求,如在加密通信、线上抽签和区块链节点等多个领域,随机数的生成都处于至关重要的地位。在这些需要应用随机数的领域中,随机数生成过程的随机性和公平性会直接影响参与该领域活动的用户体验。但传统中心化无法满足这一需求。而区块链具有透明性、开放性、自治性和不可篡改性等特点。
[0003]目前去中心化协议在产生公共随机性都会遇到协议中的最后一个参与者可能知道下一个随机值并可以中止协议的问题,即“最后一个参与者”问题。现有技术中“最后一个参与者”问题会对区块链中产生的随机数的随机性产生很大的干扰,并且很容易去预测数据,从而导致区块链中的数据容易被人为控制利用和篡改。

技术实现思路

[0004]本专利技术的目的是为了解决现有技术中的问题,通过利用区块链的这些特点,提出了一个基于区块链的随机数生成方法,能够提供在多方参与下不会被人为操纵的随机数。
[0005]为了实现上述目的,本专利技术采用了如下技术方案:
[0006]一方面,本专利技术提出了一种基于区块链的随机数的产生方法,区块链网络出块的每一个轮次会产生一个新的随机数,包括以下步骤:
[0007]S1、在进入第r轮时,随机选出一组节点作为第r轮潜在出块者群组,所述潜在出块者群组包含节点的数量小于参于区块链的节点数;
[0008]S2、每个区块链节点生成各自的一对公钥和私钥,并将公钥信息进行广播;
[0009]S3、所述潜在出块者群组的全部节点形成一个组签名和组公钥;
[0010]S4、将所述组签名在整个区块链网络中进行广播,接收到所述组签名信息的其他节点使用节点自身的私钥和所述组公钥进行信息验证;
[0011]S5、若验证有效,则接收所述组签名的节点使用自身私钥进行签名后,并将信息重新广播;若验证无效,则第r轮的随机数产生失败,重新进入步骤S1 开始新的随机数计算;
[0012]S6、设置一个门限值;
[0013]S7、区块链网络中的其中一个节点已经收到所述门限值数量的不同节点的有效的签名,该节点对所述组签名信息进行签名后,形成最终组签名信息,计算所述最终组签名数信息的哈希值,得到第r轮的最终随机数。
[0014]优选地,所述第r轮的潜在出块者群组的选择方式与上一轮的随机值相关,首轮潜在出块者群组的选择方式与初始引导随机值有关,所述初始引导随机值在进行首轮出块前设置。
[0015]具体地,所述第r轮潜在出块者群组的选择步骤包括:
[0016]S10、设置一个初始随机参考值,所述初始随机参考值是具有固定长度的二进制数字;
[0017]S11、区块链节点将使用私钥对上一轮的产生的随机值进行签名,并将签名信息映射为固定长度的二进制数字,首轮使用的二进制数字是所述初始随机参考值;
[0018]S12、使用距离函数计算所述二进制数字与上一轮的随机参考值的距离,所述距离函数计算得到的数值作为节点在第r轮的节点级别;
[0019]S13、所有节点按照所述节点级别的大小进行节点排名,按照节点排名选择排名顺序靠前的节点作为第r轮的潜在出块者群组成员,所述节点排名第一的节点来产生该轮的随机参考值。
[0020]优选地,所述初始引导随机值是固定字节的哈希值。
[0021]优选地,所述组签名的计算与上一轮的随机值相关。
[0022]优选地,所述组签名的计算是所述潜在出块者群组的每个节点使用自身私钥对上一轮的随机数信息进行签名,形成签名碎片,然后使用比例函数将所述签名碎片组合成组签名,所述比例函数的参数与上一轮的随机数有关。
[0023]优选地,潜在出块者群组成员节点数量的大小由失效概率分析来决定。
[0024]优选地,所述门限值小于所述潜在出块者群组成员节点数量。
[0025]一方面,本专利技术提供一种计算机设备,包括处理器和存储器,所述存储器存储计算机程序,所述处理器根据所述计算机程序执行实现上述所述的方法。
[0026]一方面,本专利技术提供一种可读存储介质,存储计算机程序,所述计算机程序被用于实现上述任一项所述的方法。
[0027]与现有技术相比,本专利技术的有益效果在于:
[0028]本专利技术提出一种基于区块链的随机数的产生方法,区块链出块的每一个轮次会产生一个新的随机数,在进入第r轮时,随机选出一组节点作为第r轮潜在出块者群组,所述潜在出块者群组包含节点的数量小于参于区块链的节点数;每个区块链节点生成各自的一对公钥和私钥,并将公钥信息进行广播;所述潜在出块者群组的全部节点形成一个组签名和组公钥;将所述组签名在整个区块链网络中进行广播,接收到所述组签名信息的其他节点使用节点自身的私钥和所述组公钥进行信息验证;若验证有效,则接收所述组签名的节点使用自身私钥进行签名后,并将信息重新广播;或验证无效,则该轮的随机数产生失败,重新进入步骤S1开始新的随机数计算;设置一个门限值;区块链网络中的其中一个节点已经收到所述门限值数量的不同节点的有效的签名,该节点对所述组签名信息进行签名后,形成最终组签名信息,计算所述最终组签名数信息的哈希值,得到该轮的最终随机数。本专利技术提出的创造随机性的方案解决了关键的“最后一个参与者”问题,能够提供在多方参与下不会被人为操纵的“真随机数”,利用网络存在的不确定性,潜在出块者按一定的“随机规则”形成最终随机数,达到不能篡改和去预测数据的目的。
附图说明
[0029]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0030]图1为实施例一中的方案实现流程图;
[0031]图2为实施例二中的方案实现流程图;
[0032]图3为实施例三中的计算机设备的架构图;
[0033]图4为实施例四中的可读储存介质的架构图。
具体实施方式
[0034]下面,结合附图以及具体实施方式,对本专利技术做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0035]实施例一
[0036]为了解决区块链去中心化协议中关键的“最后一个参与者”问题,能够提供在多方参与下不会被人为操纵的“真随机数”,本专利技术提出了一种基于区块链的随机数的产生方法。
[0037]在区块链网络中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的随机数的产生方法,区块链网络出块的每一个轮次会产生一个新的随机数,其特征在于,包括:S1、在进入第r轮时,随机选出一组节点作为第r轮潜在出块者群组,所述潜在出块者群组包含节点的数量小于参于区块链的节点数;S2、每个区块链节点生成各自的一对公钥和私钥,并将公钥信息进行广播;S3、所述潜在出块者群组的全部节点形成一个组签名和组公钥;S4、将所述组签名在整个区块链网络中进行广播,接收到所述组签名信息的其他节点使用节点自身的私钥和所述组公钥进行信息验证;S5、若验证有效,则接收所述组签名的节点使用自身私钥进行签名后,并将信息重新广播;若验证无效,则第r轮的随机数产生失败,重新进入步骤S1开始新的随机数计算;S6、设置一个门限值;S7、区块链网络中的其中一个节点已经收到所述门限值数量的不同节点的有效的签名,该节点对所述组签名信息进行签名后,形成最终组签名信息,计算所述最终组签名数信息的哈希值,得到第r轮的最终随机数。2.如权利要求1所述的方法,其特征在于,所述第r轮的潜在出块者群组的选择方式与上一轮的随机值相关,首轮潜在出块者群组的选择方式与初始引导随机值有关,所述初始引导随机值在进行首轮出块前设置。3.如权利要求2所述的方法,其特征在于,所述第r轮潜在出块者群组的选择步骤包括:S10、设置一个初始随机参考值,所述初始随机参考值是具有固定长度的二进制数字;S11、区块链节点将使用私钥对上一轮的产生的随机值进行签名,并将签名信息映射为固定长度的二进制数字,首...

【专利技术属性】
技术研发人员:林剑
申请(专利权)人:深圳时空云科技有限公司
类型:发明
国别省市:

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

1