一种区块链上随机数生成方法及装置制造方法及图纸

技术编号:21183584 阅读:23 留言:0更新日期:2019-05-22 14:40
本发明专利技术实施例提供一种区块链上随机数生成方法及装置,该方法包括:读取区块链上任一弱随机数,根据弱随机数提出公示问题;接收多个提交方提交的结果数据,结果数据包括用于校验的辅助数据,结果数据是多个提交方基于公示问题提交的;若结果数据中的计算结果正确,将计算结果格式化计算后,得到随机数并输出,计算结果是下一阶段提交方根据辅助数据判断获知的。本发明专利技术实施例提供的一种区块链上随机数生成方法及装置,不受记账节点的影响,任何提交方都可以提交结果挑战,恶意记账节点只能干预有限个区块,无法长时间限制操作人的操作,其次参与方是竞争提交结果,任何参与方无法干预其他人提交结果。

A Method and Device for Generating Random Numbers on Block Chain

The embodiment of the present invention provides a method and device for generating random numbers on block chains. The method includes: reading any weak random number on block chains and raising a publicity problem according to the weak random number; receiving the result data submitted by multiple submitters, the result data includes auxiliary data for verification, and the result data is submitted by multiple submitters based on the publicity problem; and The calculation results are correct. After formatting the calculation results, the random number is obtained and output. The calculation results are judged by the submitter according to the auxiliary data in the next stage. The embodiment of the present invention provides a method and device for generating random numbers on a block chain, which is not affected by the accounting node. Any submitter can submit a result challenge. Malicious accounting node can only interfere with a limited number of blocks, and can not restrict the operation of the operator for a long time. Secondly, the participant is the competitive submission result, and no participant can interfere with the submission results of others.

【技术实现步骤摘要】
一种区块链上随机数生成方法及装置
本专利技术涉及共识计算
,尤其涉及一种区块链上随机数生成方法及装置。
技术介绍
传统伪随机数算法一般包含两个函数,一个是种子设定函数seed,一个是取随机数函数rand。前者设置伪随机函数初始值,后者根据初始值进行确定运算后获取一个伪随机数,同时将新的seed设置为刚生成的伪随机数。应用反复调用rand,即可获得源源不断的伪随机数。这种方案的缺点是对同一个seed,所有计算机运算相同的伪随机数算法都会生成同一个伪随机数。于是,一旦区块链上出现了seed,那么所有人就立刻知道即将产生的随机数数值,一个可预测的随机数毫无意义。还有一种随机数生成方法是基于芯片温度、甚至量子涨落等物理规律形成的“真随机数”,这种方法仅在单机有效,无法形成区块链上的共识,即另一个区块链节点无法验证随机数发生节点的随机数信息(无法区分一个量子涨落的随机数和一个伪造的随机数),也因此无法在区块链上实现。
技术实现思路
本专利技术实施例为克服上述技术缺陷,提供一种区块链上随机数生成方法及装置。第一方面,本专利技术实施例提供一种区块链上随机数生成方法,包括:读取区块链上任一弱随机数,根据所述弱随机数提出公示问题;接收多个提交方提交的结果数据,所述结果数据包括用于校验的辅助数据,所述结果数据是所述多个提交方基于所述公示问题提交的;若所述结果数据中的计算结果正确,将所述计算结果格式化计算后,得到随机数并输出,所述计算结果是下一阶段提交方根据所述辅助数据判断获知的。第二方面,本专利技术实施例提供一种区块链上随机数生成装置,包括:读取模块,用于读取区块链上任一弱随机数,根据所述弱随机数提出公示问题;提交模块,用于接收多个提交方提交的结果数据,所述结果数据包括用于校验的辅助数据,所述结果数据是所述多个提交方基于所述公示问题提交的;输出模块,用于若所述结果数据中的计算结果正确,将所述计算结果格式化计算后,得到随机数并输出,所述计算结果是下一阶段提交方根据所述辅助数据判断获知的。第三方面,本专利技术实施例提供一种电子设备,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面所述的一种区块链上随机数生成方法。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述一种区块链上随机数生成方法。本专利技术实施例提供的一种区块链上随机数生成方法及装置,不受记账节点的影响,任何提交方都可以提交结果,都可以提交挑战,恶意记账节点只能干预有限个区块,无法长时间限制操作人的操作,其次参与方是竞争提交结果,任何参与方无法干预其他人提交结果。附图说明图1为本专利技术实施例提供的一种区块链上随机数生成方法的流程示意图;图2为本专利技术实施例提供的一种区块链上随机数生成装置的结构示意图;图3为本专利技术实施例提供的一种电子设备的实体结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的一种区块链上随机数生成方法的流程示意图,如图1所示,包括:步骤11,读取区块链上任一弱随机数,根据所述弱随机数提出公示问题;步骤12,接收多个提交方提交的结果数据,所述结果数据包括用于校验的辅助数据,所述结果数据是所述多个提交方基于所述公示问题提交的;步骤13,若所述结果数据中的计算结果正确,将所述计算结果格式化计算后,得到随机数并输出,所述计算结果是下一阶段提交方根据所述辅助数据判断获知的。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。本专利技术了实施例提供的方法就是基于区块链。首先读取区块链上任一弱随机数,弱随机指的是它可以被某种程度上操纵,但无法精确设计,比如随机出来的结果不满意,操纵者可以重试生成,但如果希望精确生成某一个随机数,操纵者可能要花费非常多(通常是不现实)的时间。读取弱随机数后,根据该弱随机数提出一个计算复杂度非常高的公示问题,最终产生的随机数即是该公示问题的结果。公示问题公布后,各个参与方可以独立对问题进行计算,优先提交结果的一方可以获得奖励。最后,考虑到验证问题结果正确与否的难度较大,可以增加一个挑战环节,允许第三方对结果进行挑战。结果提交阶段是多个提交方将结果数据提交到区块链的步骤。每个提交方需要同时抵押一定的代币,以防止虚假提交。重复的结果不能重复提交。提交的内容应该包括便于校验的辅助数据。这样,校验方可以在任何一个校验点开始计算。挑战与仲裁阶段是由下一阶段提交方对前一阶段提交的结果的审查。最后的阶段是随机数输出,前一个阶段经受住挑战的计算结果通过确定的格式化计算后即可成为最终随机数结果输出。本专利技术实施例提供的一种区块链上随机数生成方法,不受记账节点的影响,任何提交方都可以提交结果,都可以提交挑战,恶意记账节点只能干预有限个区块,无法长时间限制操作人的操作,其次参与方是竞争提交结果,任何参与方无法干预其他人提交结果。在上述实施例的基础上,所述弱随机数是采用区块哈希方法生成的。区块哈希是一种最简单的链上随机数生成算法,区块哈希是出块节点(记账节点)采用自己的私钥对自己生产的区块数据进行数字签名的结果的哈希值。由于哈希计算的随机性,它经常被用来当做区块链上的简单随机数发生器。区块哈希有如下特点:记账节点具有部分控制区块哈希结果的能力。在区块打包过程中,记账节点可以选择是否打包某条交易,也可以选择数字签名时是否是用某个指定的签名参数,不论那种方式,记账节点都可以在记账规则允许的前提下尝试不同的区块签名,进而尝试不同的区块哈希结果。因此,采用区块哈希,记账节点可以影响随机数结果,而本专利技术实施例的弱随机数指的是它可以被某种程度上操纵,但无法精确设计的数,比如随机出来的结果不满意,操纵者可以重试生成,但如果希望精确生成某一个随机数,操纵者可能要花费非常多(通常是不现实)的时间。采用区块哈希,能够产生能够被记账节点某种程度上操纵,但是无法精确设计的数。采用区块哈希生成弱随机数后,根据该弱随机数提出公示问题,所述公示问题满足:与所述弱随机数相关,无法预测所述公示问题内容,计算可重复且结果唯一,提供计算校验点,所述计算校验点用于验证计算准确性。公示问题是基于该弱随机数提出的,该问题需要满足以下条件:与弱随机数有关,在得到随机数具体数值之前,无法预测问题内容;计算难度较大,通常需要数分钟以上时间;计算可重复,且结果唯一;可提供计算校验点,从校验点进行小量计算即可验证整体计算准确性。例如,对前一步骤选定的弱随机数X进行M=100万+(Xmod100万)次sha256哈希运算,即R=M本文档来自技高网...

【技术保护点】
1.一种区块链上随机数生成方法,其特征在于,包括:读取区块链上任一弱随机数,根据所述弱随机数提出公示问题;接收多个提交方提交的结果数据,所述结果数据包括用于校验的辅助数据,所述结果数据是所述多个提交方基于所述公示问题提交的;若所述结果数据中的计算结果正确,将所述计算结果格式化计算后,得到随机数并输出,所述计算结果是下一阶段提交方根据所述辅助数据判断获知的。

【技术特征摘要】
1.一种区块链上随机数生成方法,其特征在于,包括:读取区块链上任一弱随机数,根据所述弱随机数提出公示问题;接收多个提交方提交的结果数据,所述结果数据包括用于校验的辅助数据,所述结果数据是所述多个提交方基于所述公示问题提交的;若所述结果数据中的计算结果正确,将所述计算结果格式化计算后,得到随机数并输出,所述计算结果是下一阶段提交方根据所述辅助数据判断获知的。2.根据权利要求1所述的方法,其特征在于,所述弱随机数是采用区块哈希方法生成的。3.根据权利要求1所述的方法,其特征在于,所述公示问题满足:与所述弱随机数相关,无法预测所述公示问题内容,计算可重复且结果唯一,提供计算校验点,所述计算校验点用于验证计算准确性。4.根据权利要求2所述的方法,其特征在于,所述将所述计算结果格式化计算,具体包括:对所述计算结果取哈希值。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述多个提交方提交的押金。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:若所述结果数据中的计算结果错误,接收所述下一阶段提交方的错误证明;若重复接收到所...

【专利技术属性】
技术研发人员:陈蕾
申请(专利权)人:北京建筑大学
类型:发明
国别省市:北京,11

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

1