CN110515591A - 基于区块链的随机数生成方法及装置 - Google Patents
基于区块链的随机数生成方法及装置 Download PDFInfo
- Publication number
- CN110515591A CN110515591A CN201910716527.7A CN201910716527A CN110515591A CN 110515591 A CN110515591 A CN 110515591A CN 201910716527 A CN201910716527 A CN 201910716527A CN 110515591 A CN110515591 A CN 110515591A
- Authority
- CN
- China
- Prior art keywords
- block
- cryptographic hash
- random number
- subsequent
- algorithm
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种基于区块链的随机数生成及装置,所述方法包括:获取当前区块的后续多个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果;通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。通过本发明实施例,能够提高所生成的随机数的随机性和安全性。
Description
技术领域
本发明属于区块链技术领域,具体是涉及到一种基于区块链的随机数生成方法、装置、终端设备及计算机可读介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
随着区块链技术的不断普及和快速发展,区块链应用中对于随机数的使用越来越频繁和广泛。现有方法往往采用历史区块数据或者外部数据作为随机数源。采用历史数据作为原数据具有可预知性,而采用外部数据作为原数据同样具有预知性和可控性,再加上现有随机数算法不够安全,因而现有技术所产生的随机数不具有足够的随机性和安全性。随机数漏洞常被黑客作为攻击后门,导致巨大的经济损失。
发明内容
有鉴于此,本发明实施例提供一种基于区块链的随机数生成方法、装置、终端设备及计算机可读介质,能够提高所生成的随机数的随机性和安全性。
本发明实施例的第一方面提供了一种基于区块链的随机数生成方法,包括:
获取当前区块的后续多个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果;
通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。
本发明实施例的第二方面提供了一种基于区块链的随机数生成方法,包括:
获取当前区块的后续第n个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
通过安全散列算法及异或算法对所述后续第n个区块的区块哈希值进行运算,生成所述随机数。
本发明实施例的第三方面提供了一种基于区块链的随机数生成装置,包括:
第一获取模块,用于获取当前区块的后续多个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
聚合模块,用于对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果;
第一生成模块,用于通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。
本发明实施例的第四方面提供了一种基于区块链的随机数生成装置,包括:
第二获取模块,用于获取当前区块的后续第n个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
第二生成模块,用于通过安全散列算法及异或算法对所述后续第n个区块的区块哈希值进行运算,生成所述随机数。
本发明实施例的第五方法提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的随机数生成方法的步骤。
本发明实施例的第六方面提供了一种计算机可读介质,所述计算机可读介质存储有计算机程序,所述计算机程序被处理执行时实现上述基于区块链的随机数生成方法的步骤。
本发明实施例提供的基于区块链的随机数生成方法,可通过获取当前区块的后续多个区块的区块哈希值作为原数据,并基于获取到这些未来数据(即未来多个区块的区块哈希值)进行聚合处理,将聚合处理结果做进一步的安全散列运算及异或运算,得到最终的随机数,从而可提高所生成的随机数的随机性和安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于区块链的随机数生成方法的流程图;
图2是本发明实施例提供的另一种基于区块链的随机数生成方法的流程图;
图3是本发明实施例提供的一种基于区块链的随机数生成装置的结构示意图;
图4是图3实施例提供的基于区块链的随机数生成装置中的第一生成模块的细化结构示意图;
图5是本发明实施例提供的另一种基于区块链的随机数生成装置的结构示意图;
图6是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参阅图1,图1是本发明实施例提供的一种基于区块链的随机数生成方法。如图1所示,本实施例的基于区块链的随机数生成方法包括以下步骤:
S101:获取当前区块的后续多个区块的区块哈希值。
在本发明实施例中,关于待生成的随机数的数据源,可获取当前区块的后续多个区块的区块哈希值,作为待生成的随机数的数据源;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块,因此,所述后续多个区块的区块信息为相对于所述事件的发生时刻的未来数据。关于所述后续多个区块的区块哈希值的获取,可读取区块高度为H+1 至H+n的区块的区块信息,并从所述区块信息中获取所述区块高度为H+1至H+n的区块的区块哈希值。其中,所述当前区块的区块高度为H,n为所述后续多个区块的数量,n可以取值为,例如,10。所述区块高度为H+1至H+n的区块的区块哈希值可依次保存至数组中。进一步地,可先读取区块高度为H+1的区块的区块信息,并从高度为H+1的区块的区块信息中获取高度为H+1的区块的区块哈希值,并进行相应的保存;在读取区块高度为H+2的区块的区块信息,并从高度为H+2的区块的区块信息中获取高度为H+2的区块的区块哈希值,并进行相应的保存;依次类推,直至获取高度为H+n的区块的区块哈希值。此外,在获取当前区块的后续多个区块的区块哈希值之前,可设置所述随机数的取值范围为0到 K-1,同时记录所述当前区块的区块高度H。
S102:对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果。
在本发明实施方式中,将所述当前区块的后续第1个区块的哈希值与一个空的哈希值做异或运算,得到第1轮聚合结果;例如,假设所述当前区块的后续第1个区块的哈希值为101010…,而所述空的哈希值为000000…,则第1轮聚合结果为101010…。然后,可将所述当前区块的后续第2个区块的哈希值与所述第1轮聚合结果做异或运算,得到第2轮聚合结果;以此类推,将所述当前区块的后续第n个区块的哈希值与第n-1轮聚合结果做异或运算,得到第n轮聚合结果;n为所述后续多个区块的数量,所述第n轮聚合结果为对所述后续多个区块的区块哈希值进行聚合处理而得到的聚合处理结果,即最终的聚合处理结果。更具体地,可初始化两个缓冲器,对于第i轮聚合,第一个缓冲器(cache 1)接收所述当前区块的后续第i个区块的哈希值,第二个缓冲器(cache 2)为储存有第i-1轮聚合结果,将第i个区块的哈希值与第i-1轮聚合结果进行异或运算,得到第i轮聚合结果,第i轮聚合结果可储存与所述第二个缓冲器中,供参与下一轮计算。
S103:通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。
在本发明实施例中,可使用安全散列算法(例如,安全散列算法2,简称SHA2算法)对所述聚合处理结果进行运算,得到所述聚合处理结果的哈希值M,再将所述聚合处理结果的哈希值M的前128位和后128位进行异或运算得出运算结果m(m为128位无符号整型),最后可使m对K取模,生成所述随机数;其中,所述随机数的预设的取值范围为0 到K-1。上述随机数生成流程可通过智能合约的方式来实现,在上述流程开始之前,相关事件已写上区块链,然后可等待所述事件发生时对应的最新的一个区块(即当前区块)的后续区块的产生,后续区块产生之后,可基于后续区块的区块哈希值,并根据上述处理方法来生成最终的随机数,最后可通过生成的所述随机数来处理所述事件。为了便于理解,以买彩票这个事件为例,买彩票的时间对应事件的发生,而用生成的所述随机数来进行开奖对应着用所述随机数来处理买彩票这个事件。
在图1提供的基于区块链的随机数生成方法中,可通过获取当前区块的后续多个区块的区块哈希值作为原数据,并基于获取到这些未来数据(即未来多个区块的区块哈希值) 进行聚合处理,将聚合处理结果做进一步的安全散列运算及异或运算,得到最终的随机数,从而可提高所生成的随机数的随机性和安全性。
请参阅图2,图2是本发明实施例提供的另一种基于区块链的随机数生成方法。如图2 所示,本实施例的基于区块链的随机数生成方法包括以下步骤:
S201:获取当前区块的后续第n个区块的区块哈希值。
在本发明实施例中,关于待生成的随机数的数据源,可获取当前区块的后续第n个区块的区块哈希值,作为待生成的随机数的数据源;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块,因此,所述后续第n个区块的区块信息为相对于所述事件的发生时刻的未来数据。关于所述后续第n个区块的区块哈希值的获取,可读取区块高度为H+n的区块的区块信息,并从所述区块信息中获取所述区块高度为H+n的区块的区块哈希值。其中,所述当前区块的区块高度为H,n可以取值为,例如,10。
S202:通过安全散列算法及异或算法对所述后续第n个区块的区块哈希值进行运算,生成所述随机数。
在本发明实施例中,可使用安全散列算法(例如,安全散列算法2,简称SHA2算法)对所述后续第n个区块的区块哈希值进行运算,得到所述后续第n个区块的区块哈希值的哈希值M’,再将所述后续第n个区块的区块哈希值的哈希值M’的前128位和后128位进行异或运算得出运算结果m’(m’为128位无符号整型),最后可使m’对K取模,生成所述随机数;其中,所述随机数的预设的取值范围为0到K-1。需要指出的是,由于本实施例仅获取了一次未来区块的数据,因此,需保证该区块生产节点与生成的所述随机数的利益无关性。
在图2提供的基于区块链的随机数生成方法中,可通过获取当前区块的后续第n个区块的区块哈希值作为原数据,并基于获取到这个未来数据(即未来的第n个区块的区块哈希值)做进一步的安全散列运算及异或运算,得到最终的随机数,从而可提高所生成的随机数的随机性和安全性,且该方式仅需获取一次区块数据即可,又不需要进行相关的聚合处理操作,因此可以使得整个计算过程更加简洁。
请参阅图3,图3是本发明实施例提供的一种基于区块链的随机数生成装置的结构框图。如图3所示,本实施例的基于区块链的随机数生成装置20包括第一获取模块301、聚合模块302和第一生成模块303。第一获取模块301、聚合模块302和第一生成模块303分别用于执行图1中的S101、S102和S103中的具体方法,详情可参见图1的相关介绍,在此仅作简单描述:
第一获取模块301,用于获取当前区块的后续多个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块。
聚合模块302,用于对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果。
第一生成模块303,用于通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。
进一步地,可参见图4,第一生成模块303可具体包括散列单元3031、异或单元3032和取模单元3033:
散列单元3031,用于使用安全散列算法(例如,安全散列算法2,简称SHA2算法) 对所述聚合处理结果进行运算,得到所述聚合处理结果的哈希值。
异或单元3032,用于将所述聚合处理结果的哈希值的前128位和后128位进行异或运算得出运算结果m。
取模单元3033,用于使m对K取模,生成所述随机数;其中,所述随机数的预设的取值范围为0到K-1。
图3提供的基于区块链的随机数生成装置,可通过获取当前区块的后续多个区块的区块哈希值作为原数据,并基于获取到这些未来数据(即未来多个区块的区块哈希值)进行聚合处理,将聚合处理结果做进一步的安全散列运算及异或运算,得到最终的随机数,从而可提高所生成的随机数的随机性和安全性。
请参阅图5,图5是本发明实施例提供的另一种基于区块链的随机数生成装置的结构框图。如图5所示,本实施例的基于区块链的随机数生成装置50包括第二获取模块501和第二生成模块502。第二获取模块501和第二生成模块502分别用于执行图2中的S201和S202中的具体方法,详情可参见图2的相关介绍,在此仅作简单描述:
第二获取模块501,用于获取当前区块的后续第n个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块。
第二生成模块502,用于通过安全散列算法及异或算法对所述后续第n个区块的区块哈希值进行运算,生成所述随机数。
图5提供的基于区块链的随机数生成装置,可通过获取当前区块的后续第n个区块的区块哈希值作为原数据,并基于获取到这个未来数据(即未来的第n个区块的区块哈希值) 做进一步的安全散列运算及异或运算,得到最终的随机数,从而可提高所生成的随机数的随机性和安全性,且该方式仅需获取一次区块数据即可,又不需要进行相关的聚合处理操作,因此可以使得整个计算过程更加简洁。
图6是本发明一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6 包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如进行随机数生成的程序。所述处理器60执行所述计算机程序62时实现上述方法实施例中的步骤,例如,图1所示的S101至S103。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至 303的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在终端设备6中的执行过程。例如,所述计算机程序62可以被分割成第一获取模块301、聚合模块302和第一生成模块303。(虚拟装置中的模块),各模块具体功能如下:
第一获取模块301,用于获取当前区块的后续多个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块。
聚合模块302,用于对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果。
第一生成模块303,用于通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。
所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6 仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及终端设备6所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器 (RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (11)
1.一种基于区块链的随机数生成方法,其特征在于,包括:
获取当前区块的后续多个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果;
通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。
2.根据权利要求1所述的基于区块链的随机数生成方法,其特征在于,所述获取当前区块的后续多个区块的区块哈希值,包括:
读取区块高度为H+1至H+n的区块的区块信息;其中,所述当前区块的区块高度为H,n为所述后续多个区块的数量;
从所述区块信息中获取所述区块高度为H+1至H+n的区块的区块哈希值。
3.根据权利要求1所述的基于区块链的随机数生成方法,其特征在于,所述对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果,包括:
将所述当前区块的后续第1个区块的哈希值与一个空的哈希值做异或运算,得到第1轮聚合结果;
将所述当前区块的后续第2个区块的哈希值与所述第一轮聚合结果做异或运算,得到第2轮聚合结果;
以此类推,将所述当前区块的后续第n个区块的哈希值与第n-1轮聚合结果做异或运算,得到第n轮聚合结果;n为所述后续多个区块的数量,所述第n轮聚合结果为对所述后续多个区块的区块哈希值进行聚合处理而得到的聚合处理结果。
4.根据权利要求1~3中任一项所述的基于区块链的随机数生成方法,其特征在于,所述通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数,包括:
使用安全散列算法2对所述聚合处理结果进行运算,得到所述聚合处理结果的哈希值;
将所述聚合处理结果的哈希值的前128位和后128位进行异或运算得出运算结果m;
使m对K取模,生成所述随机数;其中,所述随机数的预设的取值范围为0到K-1。
5.一种基于区块链的随机数生成方法,其特征在于,包括:
获取当前区块的后续第n个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
通过安全散列算法及异或算法对所述后续第n个区块的区块哈希值进行运算,生成所述随机数。
6.根据权利要求5所述的随机数生成方法,其特征在于,所述通过安全散列算法及异或算法对所述后续第n个区块的区块哈希值进行运算,生成所述随机数,包括:
使用安全散列算法2对所述后续第n个区块的区块哈希值进行运算,得到所述后续第n个区块的区块哈希值的哈希值;
将所述后续第n个区块的区块哈希值的哈希值的前128位和后128位进行异或运算得出运算结果m’;
使m’对K取模,生成所述随机数;其中,所述随机数的预设的取值范围为0到K-1。
7.一种基于区块链的随机数生成装置,其特征在于,包括:
第一获取模块,用于获取当前区块的后续多个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
聚合模块,用于对所述后续多个区块的区块哈希值进行聚合处理,得到聚合处理结果;
第一生成模块,用于通过安全散列算法及异或算法对所述聚合处理结果进行运算,生成所述随机数。
8.根据权利要求7所述的基于区块链的随机数生成装置,其特征在于,所述第一生成模块包括:
散列单元,用于使用安全散列算法2对所述聚合处理结果进行运算,得到所述聚合处理结果的哈希值;
异或单元,用于将所述聚合处理结果的哈希值的前128位和后128位进行异或运算得出运算结果m;
取模单元,用于使m对K取模,生成所述随机数;其中,所述随机数的预设的取值范围为0到K-1。
9.一种基于区块链的随机数生成装置,其特征在于,包括:
第二获取模块,用于获取当前区块的后续第n个区块的区块哈希值;所述当前区块为运用所述随机数所要处理的事件发生时最新的一个区块;
第二生成模块,用于通过安全散列算法及异或算法对所述后续第n个区块的区块哈希值进行运算,生成所述随机数。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述方法的步骤。
11.一种计算机可读介质,所述计算机可读介质存储有计算机程序,其特征在于,所述计算机程序被处理执行时实现如权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910716527.7A CN110515591B (zh) | 2019-08-05 | 2019-08-05 | 基于区块链的随机数生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910716527.7A CN110515591B (zh) | 2019-08-05 | 2019-08-05 | 基于区块链的随机数生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110515591A true CN110515591A (zh) | 2019-11-29 |
CN110515591B CN110515591B (zh) | 2023-04-11 |
Family
ID=68625107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910716527.7A Active CN110515591B (zh) | 2019-08-05 | 2019-08-05 | 基于区块链的随机数生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515591B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311386A (zh) * | 2020-01-19 | 2020-06-19 | 深圳壹账通智能科技有限公司 | 基于区块链的摇珠方法、系统、电子设备及存储介质 |
CN114553505A (zh) * | 2022-02-09 | 2022-05-27 | 蚂蚁区块链科技(上海)有限公司 | 多方协同生成随机数的方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101349968A (zh) * | 2007-06-30 | 2009-01-21 | 英特尔公司 | 加速伽罗瓦计数器模式(gcm)计算 |
CN106802788A (zh) * | 2012-03-30 | 2017-06-06 | 英特尔公司 | 用于处理sha‑2安全散列算法的方法和设备 |
CN108182581A (zh) * | 2017-12-29 | 2018-06-19 | 北京欧链科技有限公司 | 一种区块链的记账方法及装置 |
CN108563465A (zh) * | 2012-09-28 | 2018-09-21 | 英特尔公司 | 用于响应于单个指令来执行循环和异或的系统、装置和方法 |
CN108717466A (zh) * | 2018-06-05 | 2018-10-30 | 中国平安人寿保险股份有限公司 | 征信数据存储方法、装置、计算机设备及存储介质 |
CN108768608A (zh) * | 2018-05-25 | 2018-11-06 | 电子科技大学 | 在区块链pki下支持瘦客户端的隐私保护身份认证方法 |
CN109146524A (zh) * | 2018-08-22 | 2019-01-04 | 周口师范学院 | 一种采用区块链技术的农产品溯源信息安全解决方法 |
CN109583892A (zh) * | 2018-11-21 | 2019-04-05 | 安徽高山科技有限公司 | 一种区块链中的随机数选取方法 |
CN109617679A (zh) * | 2018-11-29 | 2019-04-12 | 哈希未来(北京)科技有限公司 | 生成、获取以及提供随机数的方法、系统以及存储介质 |
CN109684080A (zh) * | 2018-12-10 | 2019-04-26 | 平安科技(深圳)有限公司 | 集中式任务调度方法、系统及存储介质 |
CN109688211A (zh) * | 2018-12-18 | 2019-04-26 | 杭州茂财网络技术有限公司 | 数据分布式处理方法 |
US20190173667A1 (en) * | 2016-12-23 | 2019-06-06 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Block generation method, device and blockchain network |
-
2019
- 2019-08-05 CN CN201910716527.7A patent/CN110515591B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101349968A (zh) * | 2007-06-30 | 2009-01-21 | 英特尔公司 | 加速伽罗瓦计数器模式(gcm)计算 |
CN106802788A (zh) * | 2012-03-30 | 2017-06-06 | 英特尔公司 | 用于处理sha‑2安全散列算法的方法和设备 |
CN108563465A (zh) * | 2012-09-28 | 2018-09-21 | 英特尔公司 | 用于响应于单个指令来执行循环和异或的系统、装置和方法 |
US20190173667A1 (en) * | 2016-12-23 | 2019-06-06 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Block generation method, device and blockchain network |
CN108182581A (zh) * | 2017-12-29 | 2018-06-19 | 北京欧链科技有限公司 | 一种区块链的记账方法及装置 |
CN108768608A (zh) * | 2018-05-25 | 2018-11-06 | 电子科技大学 | 在区块链pki下支持瘦客户端的隐私保护身份认证方法 |
CN108717466A (zh) * | 2018-06-05 | 2018-10-30 | 中国平安人寿保险股份有限公司 | 征信数据存储方法、装置、计算机设备及存储介质 |
CN109146524A (zh) * | 2018-08-22 | 2019-01-04 | 周口师范学院 | 一种采用区块链技术的农产品溯源信息安全解决方法 |
CN109583892A (zh) * | 2018-11-21 | 2019-04-05 | 安徽高山科技有限公司 | 一种区块链中的随机数选取方法 |
CN109617679A (zh) * | 2018-11-29 | 2019-04-12 | 哈希未来(北京)科技有限公司 | 生成、获取以及提供随机数的方法、系统以及存储介质 |
CN109684080A (zh) * | 2018-12-10 | 2019-04-26 | 平安科技(深圳)有限公司 | 集中式任务调度方法、系统及存储介质 |
CN109688211A (zh) * | 2018-12-18 | 2019-04-26 | 杭州茂财网络技术有限公司 | 数据分布式处理方法 |
Non-Patent Citations (1)
Title |
---|
匿名: "将SHA256散列截断为128位可以吗?", 《HTTPS://WWW.IT1352.COM/845309.HTML》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311386A (zh) * | 2020-01-19 | 2020-06-19 | 深圳壹账通智能科技有限公司 | 基于区块链的摇珠方法、系统、电子设备及存储介质 |
CN114553505A (zh) * | 2022-02-09 | 2022-05-27 | 蚂蚁区块链科技(上海)有限公司 | 多方协同生成随机数的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110515591B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819569B (zh) | 登录信息的加密方法及终端设备 | |
CN113489671B (zh) | 一种基于可验证随机函数的跨联盟链通讯方法和装置 | |
CN106126481A (zh) | 一种计算引擎和电子设备 | |
CN111008863A (zh) | 一种基于区块链的抽奖方法及系统 | |
CN111080288A (zh) | 一种基于有向无环图的区块链共识达成方法及装置 | |
CN107608667A (zh) | 一种业务流程的更新方法及装置 | |
CN103049710B (zh) | 用于sm2数字签名验证算法的fpga芯片 | |
CN112633508A (zh) | 一种量子线路的生成方法、装置、存储介质及电子装置 | |
CN112769548B (zh) | 一种区块链数值信息传输方法、系统、装置及计算机介质 | |
CN108063758A (zh) | 用于区块链网络的签名验证方法及区块链网络中的节点 | |
CN109615525A (zh) | 多签名共享账户的保护方法、系统及电子设备 | |
CN110515591A (zh) | 基于区块链的随机数生成方法及装置 | |
CN107632823A (zh) | 一种软件开发方法及装置 | |
CN112633507A (zh) | 一种将复向量编码到量子线路的方法及装置 | |
CN107784596A (zh) | 保单的险种状态信息统计方法、终端设备及存储介质 | |
CN112114776A (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
CN115237802A (zh) | 基于人工智能的模拟测试方法及相关设备 | |
CN107977504A (zh) | 一种非对称堆芯燃料管理计算方法、装置及终端设备 | |
CN110505655A (zh) | 数据指令处理方法、存储介质及蓝牙盾 | |
CN114254353A (zh) | 基于隐私保护的数据处理方法、装置和服务器 | |
CN110245520A (zh) | 一种文档加密方法、文档加密装置及终端设备 | |
CN113721988A (zh) | 基于芯片的工作量证明方法和用于工作量证明的芯片 | |
CN112162723A (zh) | 一种量子加法运算方法、装置、电子装置及存储介质 | |
CN107589965A (zh) | 一种软件开发方法及装置 | |
CN104298897B (zh) | 基于混沌技术的嵌入式版权认证方法及专用处理器 |
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 |