CN111488134A - 基于区块链的公开随机数生成方法及设备 - Google Patents
基于区块链的公开随机数生成方法及设备 Download PDFInfo
- Publication number
- CN111488134A CN111488134A CN202010275726.1A CN202010275726A CN111488134A CN 111488134 A CN111488134 A CN 111488134A CN 202010275726 A CN202010275726 A CN 202010275726A CN 111488134 A CN111488134 A CN 111488134A
- Authority
- CN
- China
- Prior art keywords
- random number
- sub
- time
- time point
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于区块链的公开随机数生成方法,包括:选择包含N个可信任节点的节点组G;确定第一时间点tm和第二时间点tn,第一时间点tm早于第二时间点tn,第一时间点tm和第二时间点tn分别为第m个区块和第n个区块的生成时间,在tn时第m个区块已经固定并不可篡改;在第一时间点tm,N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对子随机数rj进行延迟加密,以及将延迟加密结果放置在第m个区块中,其中子随机数rj为形成随机数X的分量;在第二时间点tn,对延迟加密结果解密得到所有延迟加密结果的解密数据,解密数据为所有的子随机数rj,并对所有的子随机数rj进行运算以获得随机数X作为最终可用的公开随机数。
Description
技术领域
本发明总体上涉及区块链技术领域,尤其涉及一种基于区块链的公开随机数生成方法及设备。
背景技术
随机预言机是Bellare和Rogaway在1993年提出的,随机预言R是{0,1}*到{0,1}∞的所有随机映射组成的集合,即对于任意的R∈R满足对任意输入x,R(x)的每一个比特都是随机选取的,且互不相关。其中,{0,1}*表示有限长的二元序列组成的集合,{0,1}∞表示无限长的二元序列组成的集合。它是一个确定性的、可公共访问的随机均匀分布函数(Uniformly Distributed)。对于任意长度的输入,在输出域中均匀选择一个确定性长度的值作为询问的回答,相当于在标准模型上增加了一个可公共访问的随机预言机。随机预言机的一个重要应用为密码安全性的证明,因为证明过程需要涉及到复杂的数学运算,而证明过程易错且不容易进行正确性验证。通过定理证明器形成形式化的随机预言机,从而使得证明更容易并且更加便于验证证明的正确性。
对于相同的输入,预言机每次都会使用同一种方法输出。预言机通过向智能合约提供数据,形成现实世界和区块链之间的桥梁。随机预言机是一个将所有可能输入与输出作随机映射的函数。任何有限的函数均不是一个随机预言函数,因为随机预言机的定义要求其是一个无限大的函数。事实上,一些刻意设计的签名和加密方式被证明如果使用随机预言机会比较安全,而使用其他函数替代随机预言机会存在明显的不安全。此外,对任何比较自然的安全协定,如果随机预言机证明其为安全的,则是协定的实用可靠性的有力证据。具体来说,一个做法如果被证明是安全的,那么要攻击该做法就必须突破该证明的假设。例如,一个加密算法的安全证明是基于质因数分解的困难度,如RSA算法,那么打破证明的方法就是找到快速质因数分解的算法。然而,打破随机预言机假设,则需要找到实际杂凑函数与随机预言机未知且不好的不同之处。对于一般被认为不存在这种弱点的、较好的杂凑函数SHA-3,相关的协定可以被证明是安全的。
在去中心化的系统以确定记账权力来判定竞争结果的情况下,现有技术通常采用基于“工作量证明”(Proof of Work,PoW)的机制,即PoW是一份确认工作端做过一定量工作的证明。PoW的主要特征是计算的不对称性,即工作端需要做一定难度的工作得出一个结果,验证方却很容易通过结果检查工作端是否做了相应的工作。然而,PoW明显存在浪费计算资源的缺点,也没有基于随机预言机以形成成熟的随机数生成方法,用以在区块链生成过程和增长过程中生成区块链的下一个区块,以及选定谁作为该下一个区块的生成者。
发明内容
鉴于上述技术问题,本公开内容提出了一种基于区块链的公开随机数生成方法。通过该方法可以在区块链演化过程中创建一个无偏随机数表,该无偏随机数表(例如,每分钟产生一个无偏随机数表)提前设置。例如,在创世区块内设置,创世区块即区块链的第一个区块,目前的比特币客户端版本将创世区块定为0,之前的版本将该区块定为1。创世区块一般放置在代码的注释中,第一个代码段定义了创建该块所需要的所有变量,第二个代码段是标准的区块类格式,还包括第一个代码段中缩短版本的数据。
在本公开内容的一个方面,提供了一种基于区块链的公开随机数生成方法,包括如下步骤:S101,选择节点组G,其中所述节点组G包含N个可信任节点;S102,确定第一时间点tm和第二时间点tn,其中所述第一时间点tm早于所述第二时间点tn,并且所述第一时间点tm为第m个区块的生成时间,所述第二时间点tn为第n个区块的生成时间,并且在所述第二时间点tn时所述第m个区块已经固定并不可篡改;S103,在所述第一时间点tm,所述N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对所述子随机数rj进行延迟加密,以及将延迟加密结果放置在所述第m个区块中,其中所述子随机数rj为形成所述随机数X的分量,所述延迟加密确定经过加密的所述子随机数rj只能在延迟一段时间后才能通过解密操作获得;以及S104,在所述第二时间点tn,对所述延迟加密结果进行解密,得到所有所述延迟加密结果的解密数据,所述解密数据为所有的所述子随机数rj,并对所有的所述子随机数rj进行运算以获得随机数X,其中所述随机数X为最终可用的所述公开随机数。
在一些实施方式中,所述S103还包括将所述子随机数rj的数字指纹存储于所述区块链上。采用子随机数的数字指纹代替子随机数,子随机数的数字指纹通常是子随机数的哈希值,从而使得子随机数本身的安全性更加提高,降低不信任节点获得子随机数的概率。
在一些实施方式中,所述S104中的所述运算为多项式时间内可解的运算。这里多项式时间内可解的运算典型的如异或运算,当然不限于该运算形式。
在一些实施方式中,所述S104还包括:在所述第二时间点tn公布所有的所述子随机数rj,从而使得所述N个可信任节点对所有的所述子随机数rj进行校验。
在一些实施方式中,所述S104还包括:响应于特定事件发生,对所述第m个区块中所有的所述延迟加密结果进行解密,并将得到的所有的所述子随机数rj进行运算以获得所述随机数X,其中所述特定事件包括以下至少一种:某一项交易发生时,某一个特定时刻到来时。
在一些实施方式中,所述S104还包括在所述第二时间点tn无需对所述延迟加密结果进行解密,而由所述N个可信任节点及时准确地公开释放所有的所述子随机数rj,从而减少延迟加密后进行解密对处理器的处理能力过高的需求。
在一些实施方式中,所述方法还包括对所述节点组G内的所有节点生成区块的行为进行测试,从而在所述方法实施前就能识别节点的可信任程度,保证了所生成的所述随机数X的可信任程度。
在一些实施方式中,基于所述随机数X的数值与生成所述随机数X的所述N个可信任节点之间的对应关系,能够在需要时反向验证所述随机数X的生成过程。
在本公开内容的另一方面,提供了一种基于区块链的公开随机数生成设备,包括区块链和处理器,区块链确保公布在其上的信息不可篡改,所述处理器用于:选择节点组G,其中所述节点组G包含N个可信任节点;确定第一时间点tm和第二时间点tn,其中所述第一时间点tm早于所述第二时间点tn,并且所述第一时间点tm为第m个区块的生成时间,所述第二时间点tn为第n个区块的生成时间,并且在所述第二时间点tn时所述第m个区块已经固定并不可篡改;在所述第一时间点tm,所述N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对所述子随机数rj进行延迟加密,以及将延迟加密结果放置在所述第m个区块中,其中所述子随机数rj为形成所述随机数X的分量,所述延迟加密确定经过加密的所述子随机数rj只能在延迟一段时间后才能通过解密操作获得;以及在所述第二时间点tn,对所述延迟加密结果进行解密,得到所有所述延迟加密结果的解密数据,所述解密数据为所有的所述子随机数rj,并对所有的所述子随机数rj进行运算以获得随机数X,其中所述随机数X为最终可用的所述公开随机数。
在一些实施方式中,所述处理器还用于将所述子随机数rj的数字指纹存储于所述区块链上。
在一些实施方式中,所述运算为多项式时间内可解的运算。例如,异或运算。
在一些实施方式中,所述处理器还用于在所述第二时间点tn公布所有的所述子随机数rj,从而使得所述N个可信任节点对所有的所述子随机数rj进行校验。
在一些实施方式中,所述处理器还用于响应于特定事件发生,对所述第m个区块中所有的所述延迟加密结果进行解密,并将得到的所有的所述子随机数rj进行运算以获得所述随机数X,其中所述特定事件包括以下至少一种:某一项交易发生时,某一个特定时刻到来时。
在一些实施方式中,所述处理器还用于在所述第二时间点tn无需对所述延迟加密结果进行解密,而由所述N个可信任节点及时准确地公开释放所有的所述子随机数rj,从而减少延迟加密后进行解密对处理器的处理能力过高的需求。
在一些实施方式中,所述处理器还用于对所述节点组G内的所有节点生成区块的行为进行测试,从而在所述设备操作前就能识别节点的可信任程度,保证了所生成的所述随机数X的可信任程度。
在一些实施方式中,基于所述随机数X的数值与生成所述随机数X的所述N个可信任节点之间的对应关系,能够在需要时反向验证所述随机数X的生成过程。
在本公开内容的又一方面,提供了一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现如上文所述的基于区块链的公开随机数生成方法。
与现有技术相比,本公开内容的有益效果为:基于区块链的公开随机数生成方法和设备形成了分布式随机预言机的基本架构,从而可以分布式地生成一个可信随机数。从而,可以用来摆脱对中心化机构的依赖,例如,博彩等领域。用户可以确保最终的结果是完全随机的,从而大大提高操作的透明度和可信性,更加提升用户对该基于区块链的应用的热情。此外,将分布式预言机用于区块链中新区块的生成可以有效减少现有PoW算法对计算资源的浪费。
附图说明
在所附权利要求书中具体阐述了本发明的新颖特征。通过参考对在其中利用到本发明原理的说明性实施方式加以阐述的以下详细描述和附图,将会对本发明的特征和优点获得更好的理解。附图仅用于示出实施方式的目的,而并不应当认为是对本发明的限制。而且在整个附图中,用相同的附图标记表示相同的元素,在附图中:
图1示出了依据本公开内容示例性实施方式的基于区块链的公开随机数生成方法的流程图;
图2示出了依据本公开内容示例性实施方式的基于区块链的公开随机数生成方法的一个示例的时序逻辑图;
图3示出对本公开内容示例性图2实施方式的基于区块链的公开随机数生成方法的一个示例的时序逻辑图的变化形式;以及
图4示出了依据本公开内容示例性实施方式的基于区块链的公开随机数生成设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开内容的示例性实施方式。虽然附图中显示了本公开内容的示例性实施方式,然而应当理解,可以以各种形式实现本公开内容而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开内容,并且能够将本公开内容的范围完整地传达给本领域技术人员。在以下详细描述中没有任何内容旨在表明任何特定组件、特征或步骤对于本发明是必不可少的。本领域技术人员将会理解,在不脱离本公开内容的范围内各种特征或步骤可以彼此替代或结合。
本实施方式所应用的区块链在任一时间都是由一系列区块构成的。换言之,公链的格式是由一系列数值区块构成。本领域技术人员可以理解,对于区块的数目,可以采用本领域现在已知或者将来可知的任何方式中的区块数量定义,例如,几百万甚至更多,本发明在此方面并不做出限制。
图1示出了依据本公开内容示例性实施方式的一种基于区块链的公开随机数生成方法。如图1所示,该方法的流程图包括:S101,选择节点组G,其中节点组G包含N个可信任节点。根据大数定理以及区块链基本架构的假设,当节点组G中节点的数量足够大时,一定会存在若干可信任节点。S102,确定第一时间点tm和第二时间点tn,其中第一时间点tm早于第二时间点tn,并且第一时间点tm为第m个区块的生成时间,第二时间点tn为第n个区块的生成时间,并且在所述第二时间点tn时所述第m个区块已经固定并且不可篡改。S103,在第一时间点tm,N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对子随机数rj进行延迟加密,以及将延迟加密结果放置在第m个区块中,其中子随机数rj为形成随机数X的分量,延迟加密确定经过加密的子随机数rj只能在延迟一段时间后才能通过解密操作获得。关于延迟加密技术,其对于解密方的资格并没有限制,但是根据延迟加密技术的设计,只能在该时间点获得解密结果。解密的结果并不能提前获得,也不能发生时间的再次延迟。S104,在第二时间点tn,对延迟加密结果进行解密,得到所有延迟加密结果的解密数据,解密数据为所有的子随机数rj,并对所有的子随机数rj进行运算以获得随机数X,其中随机数X为最终可用的公开随机数。根据随机数X的数值可以确定区块链后续区块的生成者和生成方式。
图2示出了依据本公开内容示例性实施方式的基于区块链的公开随机数生成方法的一个示例的时序逻辑图。如图2所示,在区块链生长方向上存在第一时间tm生成的第m个区块201和第二时间tn生成的第n个区块202,并且在第二时间点tn时所述第m个区块201已经固定并且不可篡改。如图2所示,在第一时间tm,N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对子随机数rj进行延迟加密,以及将延迟加密结果放置在第m个区块201中。在延迟一段时间后的第二时间tn,对延迟加密结果进行解密,得到所有延迟加密结果的解密数据,解密数据为所有的子随机数rj,并对所有的子随机数rj进行运算以获得随机数X,其中随机数X为最终可用的公开随机数。
当然,在一些实施方式中,S103还包括将子随机数rj的数字指纹存储于区块链上。在一个示例性实施方式中,子随机数rj可以在区块链中以第二时间点tn之前的一个时间公布子随机数rj的哈希运算值作为数字指纹。本领域技术人员应当熟知还有其他形式的数字指纹可以用于在区块链上的公布。
在一些实施方式中,S104的运算为异或运算。当然对于能够确定最终可用的公开随机数的多项式时间内可解的所有运算形式,只要是本领域技术人员能够获知并使用的,均属于本发明的保护范围。
在一些实施方式中,S104还包括:在第二时间点tn公布所有的子随机数rj,从而使得N个可信任节点对所有的子随机数rj进行校验。这种校验通常由生成子随机数的可信任节点针对自身所生成的子随机数进行校验。然而,并非一定需要采用这种方式,还可以通过全网广播的方式使得每个可信任节点对其他可信任节点所生成的子随机数进行校验,并通过投票的方式增加校验的准确性。
在一些实施方式中,可以对节点组G内的所有节点生成区块的行为进行测试,从而在方法实施前就能够识别节点的可信任程度,从而保证了所生成的随机数X的可信任程度。
在一些实施方式中,S104还包括:响应于特定事件发生,对第m个区块中所有的延迟加密结果进行解密,并将得到的所有的子随机数rj进行运算以获得随机数X,其中特定事件包括以下至少一种:某一项交易发生时,某一个特定时刻到来时等。本领域技术人员根据实际应用场景可以对特定事件进行任意合理的定义。
图3示出对本公开内容示例性图2实施方式的基于区块链的公开随机数生成方法的一个示例的时序逻辑图的变化形式。在一些实施方式中,如图3所示,对S104进行了变化。与上文对图2的描述类似,在区块链生长方向上存在第一时间tm生成的第m个区块301和第二时间tn生成的第n个区块302,并且在第二时间点tn时所述第m个区块301已经固定并且不可篡改。如图3所示,在第一时间tm,N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对子随机数rj进行延迟加密,以及将延迟加密结果放置在第m个区块301中。然而,与图2不同的是,如图3所示,在第二时间tn无需对延迟加密结果进行解密,而由N个可信任节点及时准确地公开释放所有的子随机数rj,从而减少延迟加密后进行解密对处理器的处理能力过高的需求。然后,对所有公开的子随机数rj进行运算以获得随机数X,其中随机数X为最终可用的公开随机数。此外,公开的方式可以包括主动公开和被动公开,主动公开即为本领域所熟知的由可信任节点根据时间表自动公开的行为,而被动公开指的是当网络延迟或者被屏蔽等情况发生的时候,由可信任节点“委托”其他节点代为公开或者采用公告牌的形式公开。
图3所示的变化形式的优势在于,由于解开一个延迟加密需要执行多次非对称解密(这与非对称加密的份数或者比例相关),而这需要付出相当昂贵的计算资源。因此,如果可能的话,操作人员非常期望避免上述解密操作。然而,如果创建了随机数X的延迟加密的节点A公开地告诉世界X(例如,通过在某个已知的空间中发布),则其他节点就可以直接读取X,而不需要对其解密。但这在安全性方面是不能够被允许的。同时,这也意味着对于第二个节点B获得X有了两种选择。即,节点B可以直接从A(如果节点A释放了随机数X)获得X,或者通过解开延迟加密(如果节点A还没有释放随机数X)获得X。重要的是,A不能在最后时刻选择B看到的实际值,因为这会损害安全性。因此,最有效的检查是A必须在延迟加密的同时或更早向区块链提交一个X散列。然后,无论B以何种方式获得值X,A都会对X进行散列并与承诺进行比较。
从安全的角度来看,B能够获得X的唯一方法是通过解开延迟加密(延迟加密必须在区块链中有一个限制,这样就可以足够早地不可变,就像在多阶段协议中一样)获得X,但表面上看来这样做效率要低得多。
在一些实施方式中,方法允许对节点生成区块的行为进行测试,从而在方法实施前就能识别节点的可信任程度,保证了公开随机数X生成后的可信任程度。测试的方法包括:1)转账,向单/多签名地址转账,向脚本转账;2)如果对数字货币(例如,比特币)的机制有修改,则需要进行双花攻击测试;3)智能合约功能及安全测试;4)打包及交易确认效率。对于节点的测试包括:1)压力测试;2)链的分叉测试;3)落盘文件检查;4)出块时间统计。当然,本领域技术人员可以根据区块链的类型对于节点是否可信任进行其他明确定义的测试行为。
在一些实施方式中,基于随机数X的数值与生成随机数X的N个可信任节点之间的对应关系,能够在需要时反向验证随机数X的生成过程。这一对应关系可以用于后续区块链溯源以及其他应用的依据而设计,从而在需要时可以反向验证随机数X的生成过程。这是一个隐形验证的设计方式,对于一些安全要求极高的应用是比较实际的解决方案。随机数X的数值以及随机数X的生成过程与N个可信任节点之间存在对应关系,从而使得能够在必要情况下进行反向验证。这种性质被称为随机数X的公开可验证性,对于每一次独立的随机数X生成过程而言,随机数的数值与生成过程是完全可以清晰确认并进行反向验证的。
在一些区块链中,期望区块严格按照时间表出现,从而可以提前知道什么时候能出现区块。例如,哈希时钟基本上可以确保这一点。将任何出现的区块标记上时间,例如,时间T1,T2,T3,T4等,并且通常每一个区块都会有一个这样的时间表征。该时间表征与区块实际出现的时间非常接近,因此就可以安排一个随机预言机产生随机数X的时间表,以便在这些时间表征之前不久或就在该时间表征对应的时间点释放一个随机数。这些随机数X显性地或隐性地被标记为与时间表征相同的时间序列。因此,可以在区块及其时间戳与随机数的数值及其发布时间之间进行关联。如果由于某些原因(如丢弃的分支)丢失了一个或多个时间表征Ti,则时间表征Ti对应的随机数也将被丢弃。
实际上,在一个期望严格调度区块生成的区块链中,随机预言机产生的随机数X的数值与区块之间存在明确的对应关系。这是因为在存在死分叉的区块链中,尝试将区块索引与特定数字对齐会存在问题。
该方法的实施原理在于:(1)一个片段随机则整个均为独立随机,即如果保证节点组G的随机,由于参与区块链的可信任节点占大多数,且节点组G中节点数很多,那么将会保证至少一个rj是由可信任节点随机生成并提交的,从而确保最终生成X是随机的。(2)任何节点都可能影响最终值,但不能影响最终X的分布,因为当该节点自己的贡献是固定时,其他节点的贡献对该节点是不可见的。根据假设,这些其他节点中的一个节点将随机化该值。应当理解,该假设的前提是节点组G的选取量要足够大。
图4示出了依据本公开内容示例性实施方式的基于区块链的公开随机数生成设备的结构示意图。如图4所示,该基于区块链的公开随机数生成设备包括区块链401和处理器402,其中区块链401能够确保公布在其上的信息不可篡改。众所周知,区块链是将数据以一系列区块的方式按时间顺序相连形成的一种链式数据结构,并且还是以密码学方式保证数据的不可篡改和不可伪造的分布式账本。区块链利用诸如哈希和签名等加密技术以及共识算法建立信任机制,让抵赖、篡改和欺诈行为的成本巨大,保证了数据的不可篡改和不可伪造。可以认识到,区块链可以采用本领域现在已知或者将来可知的任何方式来实现,例如比特币、以太坊等等。处理器402可以用于:选择一组数量足够大的节点组G,其中节点组G包含N个可信任节点。根据大数定理以及区块链基本架构的假设,节点组G的数量足够大的情况下,一定会存在若干可信任节点。在本示例性实施方式中,节点组G中具有由可信任节点组成的一组节点集合,节点集合中具有j个节点,子随机数rj为形成随机数X的分量。确定第一时间点tm和第二时间点tn,其中第一时间点tm早于第二时间点tn,并且第一时间点tm为第m个区块的生成时间,第二时间点tn为第n个区块的生成时间,并且在所述第二时间点tn时所述第m个区块已经固定并不可篡改。在第一时间点tm,N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对子随机数rj进行延迟加密,以及将延迟加密结果放置在第m个区块中,其中子随机数rj为形成随机数X的分量,延迟加密确定经过加密的子随机数rj只能在延迟一段时间后才能通过解密操作获得。关于延迟加密技术,其对于解密方的资格并没有限制,但是根据延迟加密技术的设计,只能在该时间点获得解密结果。解密的结果并不能提前获得,也不能发生时间的再次延迟。在第二时间点tn,对延迟加密结果进行解密,得到所有的子随机数rj,并对所有的子随机数rj进行运算以获得随机数X,其中随机数X为最终可用的公开随机数。
在本公开内容的又一方面,还提供了一种机器可读存储介质,该机器可读存储介质上存储有计算机程序,其中所述计算机程序在由处理器执行时实现上文所描述的基于区块链的公开随机数生成方法。在一些实施方式中,机器可读存储介质是数字处理设备的有形组件。在另一些实施方式中,机器可读存储介质可选地是可从数字处理设备移除的。在一些实施方式中,举非限制性示例而言,机器可读存储介质可以包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、闪速存储器、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、固态存储器、磁碟、光盘、云计算系统或服务等。
应当理解,本公开内容的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在本文所提供的说明书中,说明了大量具体细节。然而,应当理解,本公开内容的实施方式可以在没有这些具体细节的情况下实践。在一些实施方式中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
虽然本文已经示出和描述了本发明的示例性实施方式,但对于本领域技术人员容易理解的是,这样的实施方式只是以示例的方式提供的。本领域技术人员现将会在不偏离本发明的情况下想到许多更改、改变和替代。应当理解,在实践本发明的过程中可以采用对本文所描述的本发明实施方式的各种替代方案。以下权利要求旨在限定本发明的范围,并因此覆盖这些权利要求范围内的方法和结构及其等同项。
Claims (17)
1.一种基于区块链的公开随机数生成方法,其特征在于包括如下步骤:
S101,选择节点组G,其中所述节点组G包含N个可信任节点;
S102,确定第一时间点tm和第二时间点tn,其中所述第一时间点tm早于所述第二时间点tn,并且所述第一时间点tm为第m个区块的生成时间,所述第二时间点tn为第n个区块的生成时间,并且在所述第二时间点tn时所述第m个区块已经固定并不可篡改;
S103,在所述第一时间点tm,所述N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对所述子随机数rj进行延迟加密,以及将延迟加密结果放置在所述第m个区块中,其中所述子随机数rj为形成所述随机数X的分量,所述延迟加密确定经过加密的所述子随机数rj只能在延迟一段时间后才能通过解密操作获得;以及
S104,在所述第二时间点tn,对所述延迟加密结果进行解密,得到所有所述延迟加密结果的解密数据,所述解密数据为所有的所述子随机数rj,并对所有的所述子随机数rj进行运算以获得随机数X,其中所述随机数X为最终可用的所述公开随机数。
2.根据权利要求1所述的方法,其特征在于所述S103还包括将所述子随机数rj的数字指纹存储于所述区块链上。
3.根据权利要求1所述的方法,其特征在于所述S104中的所述运算为多项式时间内可解的运算。
4.根据权利要求1所述的方法,其特征在于所述S104还包括:在所述第二时间点tn公布所有的所述子随机数rj,从而使得所述N个可信任节点对所有的所述子随机数rj进行校验。
5.根据权利要求1所述的方法,其特征在于所述S104还包括:响应于特定事件发生,对所述第m个区块中所有的所述延迟加密结果进行解密,并将得到的所有的所述子随机数rj进行运算以获得所述随机数X,其中所述特定事件包括以下至少一种:某一项交易发生时,某一个特定时刻到来时。
6.根据权利要求1所述的方法,其特征在于所述S104还包括在所述第二时间点tn无需对所述延迟加密结果进行解密,而由所述N个可信任节点及时准确地公开释放所有的所述子随机数rj,从而减少延迟加密后进行解密对处理器的处理能力过高的需求。
7.根据权利要求1所述的方法,其特征在于所述方法还包括对所述节点组G内的所有节点生成区块的行为进行测试,从而在所述方法实施前就能识别节点的可信任程度,保证了所生成的所述随机数X的可信任程度。
8.根据权利要求1所述的方法,其特征在于基于所述随机数X的数值与生成所述随机数X的所述N个可信任节点之间的对应关系,能够在需要时反向验证所述随机数X的生成过程。
9.一种基于区块链的公开随机数生成设备,其特征在于包括区块链和处理器,区块链确保公布在其上的信息不可篡改,所述处理器用于:
选择节点组G,其中所述节点组G包含N个可信任节点;
确定第一时间点tm和第二时间点tn,其中所述第一时间点tm早于所述第二时间点tn,并且所述第一时间点tm为第m个区块的生成时间,所述第二时间点tn为第n个区块的生成时间,并且在所述第二时间点tn时所述第m个区块已经固定并不可篡改;
在所述第一时间点tm,所述N个可信任节点中的每个节点分别生成一个子随机数rj,其中j=1,2……N,并对所述子随机数rj进行延迟加密,以及将延迟加密结果放置在所述第m个区块中,其中所述子随机数rj为形成所述随机数X的分量,所述延迟加密确定经过加密的所述子随机数rj只能在延迟一段时间后才能通过解密操作获得;以及
在所述第二时间点tn,对所述延迟加密结果进行解密,得到所有所述延迟加密结果的解密数据,所述解密数据为所有的所述子随机数rj,并对所有的所述子随机数rj进行运算以获得随机数X,其中所述随机数X为最终可用的所述公开随机数。
10.根据权利要求9所述的设备,其特征在于所述处理器还用于将所述子随机数rj的数字指纹存储于所述区块链上。
11.根据权利要求9所述的设备,其特征在于所述运算为多项式时间内可解的运算。
12.根据权利要求9所述的设备,其特征在于所述处理器还用于在所述第二时间点tn公布所有的所述子随机数rj,从而使得所述N个可信任节点对所有的所述子随机数rj进行校验。
13.根据权利要求9所述的设备,其特征在于所述处理器还用于响应于特定事件发生,对所述第m个区块中所有的所述延迟加密结果进行解密,并将得到的所有的所述子随机数rj进行运算以获得所述随机数X,其中所述特定事件包括以下至少一种:某一项交易发生时,某一个特定时刻到来时。
14.根据权利要求9所述的设备,其特征在于所述处理器还用于在所述第二时间点tn无需对所述延迟加密结果进行解密,而由所述N个可信任节点及时准确地公开释放所有的所述子随机数rj,从而减少延迟加密后进行解密对处理器的处理能力过高的需求。
15.根据权利要求9所述的设备,其特征在于所述处理器还用于对所述节点组G内的所有节点生成区块的行为进行测试,从而在所述设备操作前就能识别节点的可信任程度,保证了所生成的所述随机数X的可信任程度。
16.根据权利要求9所述的设备,其特征在于基于所述随机数X的数值与生成所述随机数X的所述N个可信任节点之间的对应关系,能够在需要时反向验证所述随机数X的生成过程。
17.一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现如权利要求1至8中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010275726.1A CN111488134B (zh) | 2020-04-09 | 2020-04-09 | 基于区块链的公开随机数生成方法及设备 |
EP21784490.1A EP4134813A4 (en) | 2020-04-09 | 2021-04-08 | METHOD AND DEVICE FOR GENERATION OF PUBLIC RANDOM NUMBER BASED ON BLOCK CHAIN |
US17/917,000 US20230163961A1 (en) | 2020-04-09 | 2021-04-08 | Public random number generation method and device based on blockchain |
PCT/CN2021/085887 WO2021204180A1 (zh) | 2020-04-09 | 2021-04-08 | 基于区块链的公开随机数生成方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010275726.1A CN111488134B (zh) | 2020-04-09 | 2020-04-09 | 基于区块链的公开随机数生成方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488134A true CN111488134A (zh) | 2020-08-04 |
CN111488134B CN111488134B (zh) | 2021-04-27 |
Family
ID=71812654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010275726.1A Active CN111488134B (zh) | 2020-04-09 | 2020-04-09 | 基于区块链的公开随机数生成方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230163961A1 (zh) |
EP (1) | EP4134813A4 (zh) |
CN (1) | CN111488134B (zh) |
WO (1) | WO2021204180A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214549A (zh) * | 2020-10-10 | 2021-01-12 | 中育数据(广州)科技有限公司 | 一种文件特征码生成方法、装置及电子设备 |
CN112948900A (zh) * | 2021-03-31 | 2021-06-11 | 工银科技有限公司 | 应用于区块链系统的链下数据获取方法和装置 |
WO2021204180A1 (zh) * | 2020-04-09 | 2021-10-14 | 堡垒科技有限公司 | 基于区块链的公开随机数生成方法及设备 |
WO2022062405A1 (zh) * | 2020-09-28 | 2022-03-31 | 平安科技(深圳)有限公司 | 一种随机数生成方法、装置、终端设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768647A (zh) * | 2018-08-04 | 2018-11-06 | 深圳市汇尊区块链技术有限公司 | 一种区块链的随机数产生方法和系统 |
CN108845790A (zh) * | 2018-06-20 | 2018-11-20 | 胡晓东 | 一种应用区块链来生成可信随机数的方法及相关装置 |
CN109039648A (zh) * | 2018-08-03 | 2018-12-18 | 克洛斯比尔有限公司 | 一种区块链的创建方法、设备及可读存储介质 |
CN109067522A (zh) * | 2018-07-27 | 2018-12-21 | 深圳市汇尊区块链技术有限公司 | 一种随机数可验证秘密共享方法 |
CN109245878A (zh) * | 2018-08-03 | 2019-01-18 | 克洛斯比尔有限公司 | 一种区块链的新区块生成方法、设备及可读存储介质 |
CN109450629A (zh) * | 2018-12-21 | 2019-03-08 | 深圳区块大陆科技有限公司 | 基于区块链随机数产生方法 |
CN110865793A (zh) * | 2018-12-29 | 2020-03-06 | 北京版全家科技发展有限公司 | 一种基于区块链智能合约生成随机数的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180048463A1 (en) * | 2017-09-12 | 2018-02-15 | QED-it Systems LTD | Method and system for generating private randomness for the creation of public randomness |
CN109327311B (zh) * | 2018-08-03 | 2021-09-21 | 克洛斯比尔有限公司 | 一种哈希时间戳创建方法、设备及可读存储介质 |
CN111488134B (zh) * | 2020-04-09 | 2021-04-27 | 堡垒科技有限公司 | 基于区块链的公开随机数生成方法及设备 |
-
2020
- 2020-04-09 CN CN202010275726.1A patent/CN111488134B/zh active Active
-
2021
- 2021-04-08 EP EP21784490.1A patent/EP4134813A4/en active Pending
- 2021-04-08 WO PCT/CN2021/085887 patent/WO2021204180A1/zh unknown
- 2021-04-08 US US17/917,000 patent/US20230163961A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845790A (zh) * | 2018-06-20 | 2018-11-20 | 胡晓东 | 一种应用区块链来生成可信随机数的方法及相关装置 |
CN109067522A (zh) * | 2018-07-27 | 2018-12-21 | 深圳市汇尊区块链技术有限公司 | 一种随机数可验证秘密共享方法 |
CN109039648A (zh) * | 2018-08-03 | 2018-12-18 | 克洛斯比尔有限公司 | 一种区块链的创建方法、设备及可读存储介质 |
CN109245878A (zh) * | 2018-08-03 | 2019-01-18 | 克洛斯比尔有限公司 | 一种区块链的新区块生成方法、设备及可读存储介质 |
CN108768647A (zh) * | 2018-08-04 | 2018-11-06 | 深圳市汇尊区块链技术有限公司 | 一种区块链的随机数产生方法和系统 |
CN109450629A (zh) * | 2018-12-21 | 2019-03-08 | 深圳区块大陆科技有限公司 | 基于区块链随机数产生方法 |
CN110865793A (zh) * | 2018-12-29 | 2020-03-06 | 北京版全家科技发展有限公司 | 一种基于区块链智能合约生成随机数的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021204180A1 (zh) * | 2020-04-09 | 2021-10-14 | 堡垒科技有限公司 | 基于区块链的公开随机数生成方法及设备 |
WO2022062405A1 (zh) * | 2020-09-28 | 2022-03-31 | 平安科技(深圳)有限公司 | 一种随机数生成方法、装置、终端设备及存储介质 |
CN112214549A (zh) * | 2020-10-10 | 2021-01-12 | 中育数据(广州)科技有限公司 | 一种文件特征码生成方法、装置及电子设备 |
CN112948900A (zh) * | 2021-03-31 | 2021-06-11 | 工银科技有限公司 | 应用于区块链系统的链下数据获取方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4134813A4 (en) | 2024-05-01 |
CN111488134B (zh) | 2021-04-27 |
US20230163961A1 (en) | 2023-05-25 |
WO2021204180A1 (zh) | 2021-10-14 |
EP4134813A1 (en) | 2023-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yakovenko | Solana: A new architecture for a high performance blockchain v0. 8.13 | |
CN111488134B (zh) | 基于区块链的公开随机数生成方法及设备 | |
JP7285840B2 (ja) | プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法 | |
CN112789824B (zh) | 区块链系统及信息传输方法、系统、装置、计算机介质 | |
CN111445333B (zh) | 区块生成方法、装置、计算机设备以及存储介质 | |
CN112257095B (zh) | 一种联盟链共识节点的选择方法 | |
US11899647B2 (en) | Documenting timestamps within a blockchain | |
CN109583887A (zh) | 一种区块链的交易方法和装置 | |
US20060288216A1 (en) | Long-term secure digital signatures | |
CN111427957A (zh) | 区块链投票信息校验方法、装置、设备以及存储介质 | |
CN113301114B (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
Miao et al. | Decentralized and privacy-preserving public auditing for cloud storage based on blockchain | |
CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN111723387A (zh) | 一种基于区块链的数据解密的方法及装置 | |
CN116739660A (zh) | 一种基于区块链的抽奖方法及系统 | |
CN108831001B (zh) | 基于区块链的节点随机选取方法、系统、节点、电子设备 | |
CN112948851A (zh) | 用户认证方法、装置、服务器及存储介质 | |
US20230237437A1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
CN115208628B (zh) | 基于区块链的数据完整性验证方法 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN112953978A (zh) | 一种多重签名认证方法、装置、设备及介质 | |
JP6780771B2 (ja) | 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム | |
Bezuidenhout et al. | Permissionless blockchain systems as pseudo-random number generators for decentralized consensus | |
CN111385096A (zh) | 一种区块链网络、签名处理方法、终端及存储介质 | |
US20200213095A1 (en) | Method and device for the computer aided processing of a random bit pattern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |