随机数提供方法和装置制造方法及图纸

技术编号:18599547 阅读:12 留言:0更新日期:2018-08-04 21:02
本发明专利技术实施例提供一种随机数提供方法和装置,其中,方法包括:接收多个数据提供方提交的数据承诺和数据承诺中欲提交的源随机数并存储至区块链中,对各源随机数经不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值相同,则接受数据提供方提交的源随机数;对已接受的数据提供方提交的源随机数经不可逆算法进行计算,生成随机数并存储至区块链中;基于订购方提交的购买随机数的订单请求,将生成的随机数提供给订购方。本发明专利技术实施例的方案能够防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数生成的随机数的随机性。

Method and device for providing random numbers

An embodiment of the invention provides a method and device for providing a random number, wherein the method includes: receiving a source random number that is to be submitted in a data commitment and a data commitment submitted by a plurality of data providers and stored in a block chain, and validating each source random number through an irreversible algorithm; if the commitment is verified, the calculation is determined: The obtained commitment value is the same as the commitment value in the data commitment submitted by the data provider, then the source random number submitted by the data provider is accepted; the source random number submitted by the accepted data provider is calculated by the irreversible algorithm, and the random number is generated and stored in the block chain; based on the purchase random number submitted by the subscriber. The order request requests the generated random number to the subscriber. The scheme of the embodiment of the invention can prevent the source random number submitted by the individual data provider to be submitted after monitoring the source random number uploaded by other data providers, and there is the possibility of cheating, thus ensuring the randomness of the random number generated based on the source random number.

【技术实现步骤摘要】
随机数提供方法和装置
本申请涉及计算机
,尤其涉及一种随机数提供方法和装置。
技术介绍
传统的网络环境中,随机数都由各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性。随机数本身是一种数据资源,在很多领域都有应用,例如,对于多个主体之间的抽签或者随机分配等机制中的应用。例如,机动车购买的摇号,比赛的分组的抽签、彩票等领域,这些都会使用到随机数。随机数最重要的特性在于要保证其产生的随机性,不能受到任何人的操控。如果某个节点提供的并不是随机数,而是在获得了一定信息的条件下,生成的有目的性的随机数,那么这个随机数就有可能影响到最终所应用事项的结果。比如,节点可以通过有限次的实验来生成对其有利结果的随机数,这样也是不公平的。
技术实现思路
本专利技术提供了一种随机数提供方法和装置,能够防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数生成的随机数的随机性。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供了一种随机数提供方法,包括:接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。第二方面,提供了一种随机数提供装置,包括:承诺存储模块,用于接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;承诺验证模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;随机数生成模块,用于对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;随机数提供模块,用于基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。本专利技术提供的随机数提供方法和装置,以“数据承诺”的方式对数据提供方提交的源随机数进行承诺验证,以防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数计算生成的随机数的随机性。上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例的随机数的生成逻辑示意图;图2为本专利技术实施例的在商业环境中提供随机数的原理图;图3为本专利技术实施例示出的随机数提供方法流程图一;图4为本专利技术实施例示出的随机数提供方法流程图二;图5为本专利技术实施例示出的随机数提供方法流程图三;图6为本专利技术实施例示出的随机数提供装置的结构示意图一;图7为本专利技术实施例示出的随机数提供装置的结构示意图二;图8为本专利技术实施例示出的随机数提供装置的结构示意图三。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本方案改善了现有技术中,随机数的生成为由数据提供方各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间由于缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性的缺陷。其核心思想是基于各个数据提供方提交的源随机数,对这些源随机数经不可逆算法进行计算从而生成最终的随机数。如图1所示,为本专利技术实施例的随机数的生成逻辑示意图。该生成逻辑为从不同的多个数据源获取多个源随机数,每个源随机数本身也可以是随机产生的。然后基于这些随机数经不可逆算法最终得到一个随机数。在上述生成随机数的方案思想中,原则上只要有一个源随机数是随机产生,那么就可以保证最终得到的随机数具有较好的随机性。这种随机数生成方法可以引用到现有的各种商业环节中,为需要随机数的订购方提供有效的随机数。如图2所示,本实施例给出了如何在商业环境中提供随机数的具体方案,即采用“数据承诺+提交数据”的方式筛选用于计算随机数的各源随机数,然后基于各源随机数再计算生成随机数,并且将该筛选过程、随机数计算过程与区块链技术相结合。首先,服务器先接收各数据提供方提交的数据承诺并存储至区块链中,该数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值;然后,服务器接收多个数据提供方提交的之前数据承诺中欲提交的源随机数,将源随机数存储至区块链中,基于接收数据承诺及其相应的提交数据(包含源随机数)的先后顺序,一般处理提交数据的区块编号要大于数据承诺所在的区块编号(本实施例中区块编号均为按区块链的生成过程顺序编号);接着,对各源随机数经不可逆算法进行承诺验证,如果计算得到的承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数,并利用已接受的源随机数计算生成随机算存储至区块链中;最后,基于订购方提交的购买随机数的订单请求,将生成的随机数提供给订购方。由于在筛选随机数的过程中,通过区块链对数据承诺、源随机数以及随机数进行存储,保证了这些数据的不可篡改性,从而保证了最终生成的随机数的真实性。下面通过多个实施例来进一步说明本申请的技术方案。实施例一基于上述提供随机数的方案思想,如图3所示,其为本专利技术实施例示出的随机数提供方法流程图一,该方法的执行主为设置在网络中的服务器。如图3所示,该随机数提供方法包括如下步骤:S310,接收多个数据提供方提交的数据承诺并存储至区块链中,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值。由于网络延迟等原因,各数据提供方提供源随机数的时间是不同步的,有早有晚。为了防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,因此本方案采用一种“数据承诺+提交数据”的方式(简称“数据承诺”)来限定数据提供方提交源随机数,以保证各数据提供方提供的源随机数是事先提供的,而不是在获知了其他数据提供方所提供的源随机数后再提供的。本文档来自技高网...

【技术保护点】
1.一种随机数提供方法,其特征在于,包括:接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。

【技术特征摘要】
1.一种随机数提供方法,其特征在于,包括:接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。2.根据权利要求1所述的方法,其特征在于,所述对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数包括:将所述多个源随机数拼接形成第一字符串,对所述第一字符串经所述不可逆算法进行计算,并将得到的计算值记为随机数种子;将所述随机数种子与所述订购方的附加信息进行拼接形成第二字符串,对所述第二字符串经所述不可逆算法进行计算,并将得到的计算值作为所述随机数;所述订购方的附加信息包括:订单编号和/或订购方的身份ID。3.根据权利要求1或2所述的方法,其特征在于,所述基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方包括:如果当前未有订购方提交订单请求,则丢弃已生成的所述随机数或者所述随机数种子。4.根据权利要求1所述的方法,其特征在于,所述接收多个数据提供方提交的数据承诺之前还包括:获取订购方提交的购买随机数的订单请求所对应的订单编号并广播;所述接收的多个数据提供方提交的所述数据承诺中还包括所述订单编号;所述对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数包括:对已接受的同一所述订单编号的所述数据承诺所对应的所述源随机数经所述不可逆算法进行计算,生成所述随机数;所述基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方包括:基于订购方提交的购买随机数的所述...

【专利技术属性】
技术研发人员:宋承根谭智勇赵微
申请(专利权)人:北京欧链科技有限公司
类型:发明
国别省市:北京,11

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

1