掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的定量获取随机数的方法

文献发布时间:2023-06-19 12:24:27


一种基于区块链的定量获取随机数的方法

技术领域

本发明基于区块链技术领域,尤其涉及一种基于区块链的定量获取随机数的方法。

背景技术

随着科学技术的发展,区块链技术在各行各业运用的越来越普遍;从技术的角度上来讲,各种区块链技术都是建立在实现去中心化,一种分布式账本技术。该系统的特点是有很多个分处于世界各地的节点,每个节点都会维护一套相同的数据库。导致了恶意篡改数据极其困难,数据丢失极为罕见,从而实现了一个公开透明,解决信任危机的平台。

区块链技术主要是用来进行交易打包的,每个区块包含的交易有很大差别,同时一个区块在不同的时间内包含的交易也有所不同。因为区块链包含的交易是世界各地的,所以区块中的交易无时无刻不在变化着,也就是不同时刻区块标识(哈希算法得出)也会出现变化。例如比特币每十分钟产生一个区块,在产生新区块前的十分钟内产生的交易将被打包,待新区块形成后,写入新的区块内,本发明建立在区块链的基础上讲述了一种定量获取随机数的方法。

目前已知的区块链随机数选取方法很多,但是有关区块链随机数序列的获取方法还是很少,现存随机数序列的获取主要有以下弊端:

1、随机数序列的产生由特定人员控制着,也就是说具有一个中心权威机构控制着随机数的产生,获得的随机数序列不能令人信服。

2、在生成随机数序列的时候,不能很好的控制生成随机数序列中随机数的个数,也就是说不具有一个很好的算法。

发明内容

本发明的目的在于克服现有技术存在的以上问题,提供一种基于区块链的随机数序列的获取方法,实现方便,去中心化,不依赖于任何第三方,可以产生满足需求的任意长度的可信的随机数序列。

为实现上述目的,达到所描述的技术效果,本发明通过以下技术方案实现。

一种基于区块链的定量获取随机数的方法,包括如下步骤:

第一步,根据需要确定n值;

第二步,选取区块链中的一个区块,并标记该区块为n

第三步,合约自动判断最终选取的区块一共是否为n+1个;如果是,则流程继续;如果否,则获取失败,返回第二步;

第四步,n+1个区块的信息通过合约以数据块的形式存在,并分别计算各个区块的哈希值H

第五步,利用函数f(H

第六步,对于目标随机数序列取值[0,N),依照公式

第七步,对生成的随机数序列进行验证,若刚好是n个不同的随机数,则验证通过,随机数序列生成流程结束;若生成的n个整数有重复的或者说是少于n个整数,则重复步骤二随机数生成流程。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1:为本发明的流程图:

具体实施方式

下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

步骤一,n值的选取,使用者进入区块链,根据需要选取一个恰当的n值。

步骤二,使用者选取一个区块,并标记该区块为n

步骤三,合约自动判断一共选定的区块是否是n+1个;如果是,则流程继续;如果否,则返回第二步。

步骤四,n+1个区块的信息通过合约以数据块的形式存在,分别计算各个区块的哈希值H

步骤五,利用函数W=f(H

步骤六,对于目标随机数序列取值[0,N),依照公式

步骤七,对生成的随机数序列进行验证:对于随机数序列中随机数的数目,如果恰好是n个不同的整数,则验证通过,随机数序列生成流程结束;若生成的随机数序列中随机数有重复的或者说随机数个数少于n个,则重复步骤二随机数生成流程;

作为本发明一种基于区块链的定量获取随机数的方法步骤一的说明:选取n值的时候,要根据使用者实际产生随机数序列随机数的个数而定(比如:随机数序列中随机数个数是100个,则n值选值为100;即随机数序列中随机数个数和n值的选取个数是相同的)。

作为本发明一种基于区块链的定量获取随机数的方法步骤五的说明:利用函数E

作为本发明一种基于区块链的定量获取随机数的方法步骤六的说明:将整数序列代入公式

作为本发明一种基于区块链的定量获取随机数的方法步骤七的说明:如果使用者得到的随机数序列中的随机数可以重复,则该步骤可以省略。

应当理解的是本发明的上述实施例仅是解释和介绍本发明的原理,而不是所有实施例。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于区块链的定量获取随机数的方法
  • 一种基于区块链定位获取随机数的方法
技术分类

06120113284368