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.一种随机数提供方法,其特征在于,包括:接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。
【技术特征摘要】
1.一种随机数提供方法,其特征在于,包括:接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。2.根据权利要求1所述的方法,其特征在于,所述对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数包括:将所述多个源随机数拼接形成第一字符串,对所述第一字符串经所述不可逆算法进行计算,并将得到的计算值记为随机数种子;将所述随机数种子与所述订购方的附加信息进行拼接形成第二字符串,对所述第二字符串经所述不可逆算法进行计算,并将得到的计算值作为所述随机数;所述订购方的附加信息包括:订单编号和/或订购方的身份ID。3.根据权利要求1或2所述的方法,其特征在于,所述基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方包括:如果当前未有订购方提交订单请求,则丢弃已生成的所述随机数或者所述随机数种子。4.根据权利要求1所述的方法,其特征在于,所述接收多个数据提供方提交的数据承诺之前还包括:获取订购方提交的购买随机数的订单请求所对应的订单编号并广播;所述接收的多个数据提供方提交的所述数据承诺中还包括所述订单编号;所述对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数包括:对已接受的同一所述订单编号的所述数据承诺所对应的所述源随机数经所述不可逆算法进行计算,生成所述随机数;所述基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方包括:基于订购方提交的购买随机数的所述...
【专利技术属性】
技术研发人员:宋承根,谭智勇,赵微,
申请(专利权)人:北京欧链科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。