CN112636904B - 随机数生成与验证方法、装置、电子设备及可读存储介质 - Google Patents

随机数生成与验证方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN112636904B
CN112636904B CN202011284497.6A CN202011284497A CN112636904B CN 112636904 B CN112636904 B CN 112636904B CN 202011284497 A CN202011284497 A CN 202011284497A CN 112636904 B CN112636904 B CN 112636904B
Authority
CN
China
Prior art keywords
random
seed
information
random seed
random number
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.)
Active
Application number
CN202011284497.6A
Other languages
English (en)
Other versions
CN112636904A (zh
Inventor
陈志明
姜鹏
张雅楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Citic Bank Corp Ltd
Original Assignee
China Citic Bank Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Citic Bank Corp Ltd filed Critical China Citic Bank Corp Ltd
Priority to CN202011284497.6A priority Critical patent/CN112636904B/zh
Publication of CN112636904A publication Critical patent/CN112636904A/zh
Application granted granted Critical
Publication of CN112636904B publication Critical patent/CN112636904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种随机数生成与验证方法、装置、电子设备及可读存储介质。该随机数生成方法包括:接收随机数生成交易请求;基于当前区块信息,并基于预设的签名算法生成随机种子;广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。

Description

随机数生成与验证方法、装置、电子设备及可读存储介质
技术领域
本申请涉及区块链技术领域,具体而言,本申请涉及一种随机数生成与验证方法、装置、电子设备及可读存储介质。
背景技术
在区块链上,由于一切信息都是透明公开的,提供一个安全实用的随机数实现方案是一个非常困难的问题。目前随机数在区块链上具有较多的使用场景,如游戏及流程控制等。
传统区块链上随机数的实现多通过以下几种方式:
第一种是让可信第三方为合约提供随机数,这种情况通常是中心化的解决方案,通过一个可信的oracle来提供独立的随机数源。
第二种是交互式的commit(承诺)和reveal(打开)。参与过程的多方预先commit一个随机数,然后将其hash值递交到区块链上。所有参与方都递交完毕后,各方reveal自己的随机数,通过将各自的随机数合并产生一个最终的随机数。
第三种是采用链上的公开信息,比如使用区块的哈希值、时间戳、难度系数等作为随机数源。
第四种是从共识层,通过阈值签名的方式,使得每个共识节点递交各自对某个信息的签名片段,在足够多的签名片段收集到之后,任何一个共识节点都可以将签名片段合并成一个合法的可验证的签名。
第一种方式中,由于可信第三方的随机源,独立在区块链系统外,不方便管理。第二种方式中,在生成交互式的随机数的过程中,由于部分节点可能不公开自己的参数,从而导致最终无法生成随机数。第三种方式中,由于是采用链上公开信息或者自己组合,出块者可能会选择对自己有利的区块数据进行出块,进而让随机数失去公平性。第四种方式中,在每一轮区块产生的过程中,每个节点需要广播自己的签名片段,可能会导致对节点数量的限制,影响支撑的应用的效率等。
因此,现有的随机数实现方案均存在一定的局限性,亟需在区块链上提供一种安全实用的随机数实现方案。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种随机数生成方法,该方法包括:
接收随机数生成交易请求;
基于当前区块信息,并基于预设的签名算法生成随机种子;
广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。
可选地,上述方法还包括:
生成随机种子的验证数据。
可选地,广播随机种子,包括:
基于随机种子以及验证数据组装随机源信息并广播随机源信息,以使其他节点基于验证数据对随机种子进行验证。
可选地,随机数生成交易请求中携带有指定区块高度信息,基于当前区块信息,并基于预设的签名算法生成随机种子,包括:
确定当前的区块高度信息是否不低于指定区块高度信息;
若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。
第二方面,本申请实施例提供了一种随机数生成方法,该方法包括:
接收随机源节点广播的随机源信息,随机源信息包括随机种子以及随机种子的验证数据;
基于验证数据对随机种子进行验证。
可选地,上述方法还包括:
若随机种子验证通过,则基于随机种子生成随机数。
第三方面,本申请实施例提供了一种随机数生成装置,该装置包括:
交易请求接收模块,用于接收随机数生成交易请求;
随机种子生成模块,用于基于当前区块信息,并基于预设的签名算法生成随机种子;
随机种子广播模块,用于广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。
可选地,上述随机种子生成模块还用于:
生成随机种子的验证数据。
可选地,上述随机种子广播模块在广播随机种子时,具体用于:
基于随机种子以及验证数据组装随机源信息并广播随机源信息,以使其他节点基于验证数据对随机种子进行验证。
可选地,随机数生成交易请求中携带有指定区块高度信息,随机种子生成模块具体用于:
确定当前的区块高度信息是否不低于指定区块高度信息;
若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。
可选地,随机种子生成模块具体用于:
基于当前区块信息生成字符串;
基于字符串以及随机源节点的私钥,并基于预设的签名算法生成随机种子。
第四方面,本申请实施例提供了一种随机数的验证装置,该装置包括:
随机源信息接收模块,用于接收随机源节点广播的随机源信息,随机源信息包括随机种子以及随机种子的验证数据;
随机数验证模块,用于基于验证数据对随机种子进行验证。
可选地,上述装置还包括:
随机数生成模块,用于在随机种子验证通过时,基于随机种子生成随机数。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面或者第二方面的任一实施方式中所示的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面或者第二方面的任一实施方式中所示的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例中提供的方案,区块链中指定的随机源节点接收随机数生成交易请求,基于当前区块信息,并基于预设的签名算法生成随机种子,而后广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种随机数生成方法的流程示意图;
图2为本申请实施例提供一种随机数的生成方法的一种具体实施方式的流程示意图;
图3为本申请实施例提供的多个应用预置自己的随机数生成器流程图;
图4为本申请实施例提供的一种随机数验证方法的流程示意图;
图5为本申请实施例提供的其他节点以及用户验证随机源公平性的流程示意图。
图6为本申请实施例提供的一种随机数生成装置的结构示意图;
图7为本申请实施例提供的一种随机数的验证装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种随机数生成方法的流程示意图,该方法应用于区块链中预指定的随机源节点,如图1所示,该方法主要可以包括:
步骤S110:接收随机数生成交易请求;
步骤S120:基于当前区块信息,并基于预设的签名算法生成随机种子;
步骤S130:广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。
本申请实施例中,可以在创建区块链网络时,在参与区块链网络节点的配置文件中声明随机源节点的证书(列表),将随机源节点信息写入参与节点的配置文件中。
本申请实施例中,可以对随机源节点功能进行限制,具体而言,随机源节点可以不提供查询/响应服务,即其他节点无法通过请求的方式与随机源节点交互,这使得任何打包出块的节点无法提前预知随机源节点的输出结果。随机源节点可以只接收、处理区块类型的数据,包括验证区块是否经过共识、区块内容是否合法等,而不参与共识、打包区块流程,因此,能够切断随机种子产生和打包区块的联系。随机源节点可以在生成随机种子后公示随机种子,包括但是不限于组装广播信息、在指定前端页面显示等。
本申请实施例中,随机数生成交易请求可以被打包至区块中,随机源节点可以接收并解析新的区块信息,而后可以验证区块合法性,包括区块是否经过共识、出块者身份等等,如果不合法,则直接拒绝该区块;如果合法,则验证内容合法性,如果内容不合法,则直接拒绝该区块;如果内容合法,则可以基于当前区块信息,并基于预设的签名算法生成随机种子。
本申请实施例中,在生成随机种子后,可以在区块链网络中广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。
由于是通过区块链上的随机源节点生成随机种子,能够避免对第三方的依赖,在随机源节点生成随机种子的过程中,无需其他节点提供参数,并且能够保证随机种子的公平性,同时不会对节点数量造成限制,能够保证应用效率。
本申请实施例中提供的方法,区块链中指定的随机源节点接收随机数生成交易请求,基于当前区块信息,并基于预设的签名算法生成随机种子,而后广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。
本申请实施例的一种可选方式中,上述方法还包括:
生成随机种子的验证数据。
本申请实施例中,在生成随机种子的同时,还可以生成随机种子的验证数据。其他节点能够根据验证数据对随机种子进行验证,以保证随机种子的公平性。
本申请实施例的一种可选方式中,广播随机种子,包括:
基于随机种子以及验证数据组装随机源信息并广播随机源信息,以使其他节点基于验证数据对随机种子进行验证。
本申请实施例中,可以基于随机种子以及验证数据,组装随机源信息,而后将随机源信息在区块链内广播。
作为一个示例,随机源信息的具体形式可以为:{区块高度,验证数据,随机种子,证书信息},其中,区块高度可以用于触发流程中随机种子的生成。验证数据可以用于随机种子的验证。证书信息可以为该随机源节点的证书或者是能根据该信息获得该随机源节点证书的信息,例如节点标识。该证书用于验证合法性,包括:用于身份合法性的验证;以及,从证书信息中解析出来的公钥用于验证随机种子的合法性。
本申请实施例的一种可选方式中,随机数生成交易请求中携带有指定区块高度信息,基于当前区块信息,并基于预设的签名算法生成随机种子,包括:
确定当前的区块高度信息是否不低于指定区块高度信息;
若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。
本申请实施例中,指定区块高度信息可以用于启动随机中的生成,具体而言,可以在当前的区块高度信息不低于指定区块高度信息时,生成随机种子。
本申请实施例的一种可选方式中,基于当前区块信息,并基于预设的签名算法生成随机种子,包括:
基于当前区块信息生成字符串;
基于字符串以及随机源节点的私钥,并基于预设的签名算法生成随机种子。
本申请实施例中,可以根据区块信息生成字符串,并将随机源节点的私钥以及生成的字符串作为预设的签名算法的输入,最终得到随机种子以及验证数据。
作为一个示例,字符串可以采用如下两种不同的方式计算:
(1)使用当前区块的数据计算,例如:区块头进行哈希运算,得字符串=当前区块头hash值。
(2)使用当前区块以及历史区块的数据计算,例如:(当前区块内的某笔交易+历史某区块某笔交易)进行哈希运算,得字符串==H(transaction1,transaction2),其中transaction1为收到区块中的交易,transaction2是历史区块中的交易。
本申请实施例中,预设的签名算法的输出可以为得到的验证数据π=(γ,c,s),其中,随机种子β=H(γ)。对预设的签名算法的要求是:输入明文是固定的,得到的签名结果也是固定的,即γ是固定的。另一方面,c,s是γ的证据,可以因签名算法的随机数变化而变化。
由于利用了签名算法能够保证随机源信息的安全性,因此,随机源信息无需额外签名。
图2中示出了本申请实施例中提供的一种随机数的生成方法的一种具体实施方式的流程示意图。
如图2中所示,客户端提交随机数生成交易到节点1并上链,经过共识后,全网广播,共识模块发送新的区块给全网节点;
随机源节点2获取最新区块,解析新区块;
随机源节点2利用唯一签名算法自动生成随机数种子:
①随机源节点2对区块头进行哈希运算:
Alpha(即字符串)=H(时间戳timestamp、区块高度height、前一区块的哈希值prehash、默克尔根merhash)
h=Alpha,初始化hx=h;
将hx作为横坐标,根据椭圆曲线算法,求解纵坐标hy
判断根据hx是否可以求解出hy,若失败,说明hx不在椭圆曲线上,则继续执行则hx++,直到正确求解出纵坐标hy
求解出hx在椭圆曲线上,并输出h=(hx,hy);
②通过私钥x,和坐标h,计算γ=hx
③随机选取k,且判定k是否不等于0或1,若是,则交易继续,否则交易失败;
④计算c=H(g,h,gx,hx,gk,hk)
g是椭圆曲线上的基点,为椭圆曲线参数;
h是①中计算所得的点h=(hx,hy);
gx是随机源节点的公钥;
hx是,①计算得到的点h和私钥x,即可求出hx
gk是,②随机选取到k,g是椭圆曲线上的基点,即可求出gk
hk是,①计算得到的点h和第2步随机选取的k,即可求出hk
⑤计算s=k-cx mod q。
q是椭圆曲线基点的阶。
判断s是否不等于0和1,若是则交易继续,否则交易失败;
⑥输出一个证据π=(γ,c,s);
⑦哈希运算得到一个新的字符串β=H(γ)。
成功生成随机数种子β后,输出随机源信息:{触发流程的区块高度height,证据π,字符串β,证书信息},并全网广播。
本申请的一种实施方式中,多个应用可以分别预置自己的随机数生成器,图3中示出了本申请实施例中多个应用预置自己的随机数生成器流程图。
如图3中所示,(1)应用1和应用2在区块高度为68的时候,同时发起预设随机源种子的请求:
应用1:{指定启动的区块高度=80,应用1的token1,随机源节点2}
应用2:{指定启动的区块高度=80,应用2的token2,随机源节点6}
(2)节点1获取应用1发起的交易请求,同时节点5获取应用2发起的交易请求。
(3)节点1、节点5将收到的交易上链,发送到共识模块;
(4)请求交易经过共识后,全网广播,发送区块(当前区块高度为70)给全网节点;
(5)后续当随机源节点2、随机源节点6收到区块高度为80的区块时,将计算由该区块生成的随机源种子。并将生成的随机源种子β和证据分别广播给应用1和应用2。
(6)应用1和应用2分别收到广播后:
①验证随机种子及证据:
1)应用1验证过程如下:
a.收到广播的随机源信息:{80,证据π1,字符串β1,证书信息1};
b.验证区块高度是否为应用预设区块高度80,证书信息1是否是随机源节点2的证书信息,如果一致,验证通过,否则,验证失败,交易1终止;
c.验证随机源节点2的证书是否属于配置文件中随机源节点证书列表(随机源节点证书列表可能会改变),如果一致,验证通过,否则,验证失败,交易1终止;
d.从随机源节点2的证书中解析出公钥信息g1x;
e.应用向区块链网络获取相应高度对应的区块;
f.后续的计算验证,依照方案3中的描述进;
2)应用2验证过程如下:
a.收到广播的随机源信息:{80,证据π2,字符串β2,证书信息2};
b.验证区块高度是否为应用预设区块高度80,证书信息是否是是随机原节点6的证书信息,如果一致,验证通过,否则,验证失败,交易2终止;
c.验证随机源节点6的证书是否属于配置文件中随机源节点证书列表(随机源节点证书列表可能会改变),如果一致,验证通过,否则,验证失败,交易2终止;
d.从随机源节点6的证书中解析出公钥信息g2x;
e.应用向区块链网络获取相应高度对应的区块;
f.后续的计算验证,依照方案3中的描述进行;
②随机数生成器依据随机种子生成可靠的随机数;
③存储各自收到的随机源信息(应用1:{80,证据π1,字符串β1,证书信息1};应用2:{80,证据π2,字符串β2,证书信息2}),同时记录各自预置请求所在的区块(均为70)。
图4示出了本申请实施例提供的一种随机数验证方法的流程示意图,该方法应用于区块链中除预指定的随机源节点之外的其他节点,如图4所示,该方法主要可以包括:
步骤S210:接收随机源节点广播的随机源信息,随机源信息包括随机种子以及随机种子的验证数据;
步骤S220:基于验证数据对随机种子进行验证。
本申请实施例中,区块链中的其他节点在接收到随机源节点广播的随机源信息时,可以从随机源信息中提取随机种子以及随机种子的验证数据,从而基于验证数据对随机种子进行验证,以确保随机种子的公平性。
本申请实施例中提供的方法,通过接收随机源节点广播的随机源信息,基于随机源信息中的验证数据对随机种子进行验证。基于本方案,能够对区块链中指定的随机源节点生成随机种子的公平性进行验证,能够保证随机种子的,安全可靠,有利于随机种子在区块链中的使用。
本申请实施例的一种可选方式中,上述方法还包括:
若随机种子验证通过,则基于随机种子生成随机数。
本申请实施例中,可以在随机种子被验证通过时,基于随机种子生成随机数,以便对随机数的应用。
图5中示出了本申请实施例中提供的其他节点以及用户验证随机源公平性的流程示意图。
如图5中所示,图5中沿用图3中的测试数据。
(1)节点3向应用1发起验证随机源请求;
(2)应用1进行响应,响应信息包括(预置请求所在区块高度h3=70、随机源广播信息{预置区块高度h4=80,证据-π=(γ,c,s),字符串β,证书信息});
(3)节点1根据请求所在区块高度h1=70获取请求区块;
a)验证预置请求是否存在,如果存在,继续验证下一步,否则,验证失败;
b)预置请求中指定的启动区块高度h2为80是否等于预置区块高度h4=80,如果相等,则验证通过,继续执行下一步,否则,验证失败;
(4)判断预置区块高度h2是否大于请求所在区块高度h1;如果是,说明预置的是未知区块,继续执行下一步;否则,说明是历史区块,验证失败,输出false;
(5)验证响应信息中,随机源广播信息中的随机种子的合法性:
a)验证区块高度是否为应用预设区块高度80,证书信息是否是请求中指定的随机源节点证书信息,如果一致,验证通过,否则,验证失败,交易终止;
b)验证证书信息指向的证书是否属于配置文件中随机源节点证书列表(随机源节点证书列表可能会改变),如果一致,验证通过,否则,验证失败,交易2终止;
c)从随机源证书中解析出公钥信息gx;
d)应用向区块链网络获取相应高度对应的区块;
e)后续的计算验证,依照方案3中的描述进行;
(6)验证全部都通过,说明应用1随机源是公平的,输出true,否则,输出false。
基于与图1中所示的方法相同的原理,图6示出了本申请实施例提供的一种随机数生成装置的结构示意图,如图6所示,该随机数生成装置30可以包括:
交易请求接收模块310,用于接收随机数生成交易请求;
随机种子生成模块320,用于基于当前区块信息,并基于预设的签名算法生成随机种子;
随机种子广播模块330,用于广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。
本申请实施例中提供的方法,区块链中指定的随机源节点接收随机数生成交易请求,基于当前区块信息,并基于预设的签名算法生成随机种子,而后广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。
可选地,上述随机种子生成模块还用于:
生成随机种子的验证数据。
可选地,上述随机种子广播模块在广播随机种子时,具体用于:
基于随机种子以及验证数据组装随机源信息并广播随机源信息,以使其他节点基于验证数据对随机种子进行验证。
可选地,随机数生成交易请求中携带有指定区块高度信息,随机种子生成模块具体用于:
确定当前的区块高度信息是否不低于指定区块高度信息;
若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。
可选地,随机种子生成模块具体用于:
基于当前区块信息生成字符串;
基于字符串以及随机源节点的私钥,并基于预设的签名算法生成随机种子。
可以理解的是,本实施例中的随机数生成装置的上述各模块具有实现图1中所示的实施例中的随机数生成方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述随机数生成装置的各模块的功能描述具体可以参见图1中所示实施例中的随机数生成方法的对应描述,在此不再赘述。
基于与图4中所示的方法相同的原理,图7示出了本申请实施例提供的一种随机数验证装置的结构示意图,如图7所示,该随机数验证装置40可以包括:
随机源信息接收模块410,用于接收随机源节点广播的随机源信息,随机源信息包括随机种子以及随机种子的验证数据;
随机数验证模块420,用于基于验证数据对随机种子进行验证。
本申请实施例中提供的装置,通过接收随机源节点广播的随机源信息,基于随机源信息中的验证数据对随机种子进行验证。基于本方案,能够对区块链中指定的随机源节点生成随机种子的公平性进行验证,能够保证随机种子的,安全可靠,有利于随机种子在区块链中的使用。
可选地,上述装置还包括:
随机数生成模块,用于在随机种子验证通过时,基于随机种子生成随机数。
可以理解的是,本实施例中的随机数验证装置的上述各模块具有实现图4中所示的实施例中的随机数验证方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述随机数验证装置的各模块的功能描述具体可以参见图4中所示实施例中的随机数验证方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的方法。
作为一个示例,图8示出了本申请实施例所适用的一种电子设备的结构示意图,如图8所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random AccessMemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read OnlyMemory,电可擦可编程只读存储器)、CD-ROM(Compact Disc ReadOnlyMemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,区块链中指定的随机源节点接收随机数生成交易请求,基于当前区块信息,并基于预设的签名算法生成随机种子,而后广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,区块链中指定的随机源节点接收随机数生成交易请求,基于当前区块信息,并基于预设的签名算法生成随机种子,而后广播随机种子,以使区块链中除随机源节点外的其他节点接收随机种子,并基于随机种子生成随机数。基于本方案,能够通过区块链中指定的随机源节点生成随机种子,以便其他节点基于随机种子生成随机数,克服了现有的随机数实现方案中存在局限性,安全可靠,便于在区块链中使用。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种随机数生成方法,其特征在于,应用于区块链中预指定的随机源节点,所述方法包括:
接收随机数生成交易请求;
基于当前区块信息,并基于预设的签名算法生成随机种子,包括:
基于所述当前区块信息生成字符串;
基于所述字符串以及所述随机源节点的私钥,并基于预设的签名算法生成随机种子;
广播所述随机种子,以使所述区块链中除所述随机源节点外的其他节点接收所述随机种子,并基于所述随机种子生成随机数。
2.根据权利要求1所述的方法,其特征在于,还包括:
生成所述随机种子的验证数据。
3.根据权利要求2所述的方法,其特征在于,所述广播所述随机种子,包括:
基于所述随机种子以及所述验证数据组装随机源信息并广播所述随机源信息,以使所述其他节点基于所述验证数据对所述随机种子进行验证。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述随机数生成交易请求中携带有指定区块高度信息,所述基于当前区块信息,并基于预设的签名算法生成随机种子,包括:
确定当前的区块高度信息是否不低于所述指定区块高度信息;
若是,则基于当前区块信息,并基于预设的签名算法生成随机种子。
5.一种随机数生成装置,其特征在于,包括:
交易请求接收模块,用于接收随机数生成交易请求;
随机种子生成模块,用于基于当前区块信息,并基于预设的签名算法生成随机种子,包括:基于所述当前区块信息生成字符串;
基于所述字符串以及随机源节点的私钥,并基于预设的签名算法生成随机种子;
随机种子广播模块,用于广播所述随机种子,以使区块链中除随机源节点外的其他节点接收所述随机种子,并基于所述随机种子生成随机数。
6.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法。
CN202011284497.6A 2020-11-17 2020-11-17 随机数生成与验证方法、装置、电子设备及可读存储介质 Active CN112636904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011284497.6A CN112636904B (zh) 2020-11-17 2020-11-17 随机数生成与验证方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011284497.6A CN112636904B (zh) 2020-11-17 2020-11-17 随机数生成与验证方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112636904A CN112636904A (zh) 2021-04-09
CN112636904B true CN112636904B (zh) 2023-08-22

Family

ID=75303445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011284497.6A Active CN112636904B (zh) 2020-11-17 2020-11-17 随机数生成与验证方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112636904B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113867690B (zh) * 2021-12-07 2022-03-04 中移(上海)信息通信科技有限公司 一种区块链中随机数的生成方法、装置及区块链节点

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301546A (zh) * 2017-05-03 2017-10-27 北京众享比特科技有限公司 随机数生成和应用方法及装置
CN110599173A (zh) * 2019-09-20 2019-12-20 腾讯科技(深圳)有限公司 区块链的共识节点确定方法、装置、设备及存储介质
CN110648139A (zh) * 2019-09-03 2020-01-03 北京航空航天大学 基于分片技术和博弈论的区块链事务验证扩容方法及装置
GB202012486D0 (en) * 2020-08-11 2020-09-23 Nchain Holdings Ltd Paeudo-ramdom selection on the blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301546A (zh) * 2017-05-03 2017-10-27 北京众享比特科技有限公司 随机数生成和应用方法及装置
CN110648139A (zh) * 2019-09-03 2020-01-03 北京航空航天大学 基于分片技术和博弈论的区块链事务验证扩容方法及装置
CN110599173A (zh) * 2019-09-20 2019-12-20 腾讯科技(深圳)有限公司 区块链的共识节点确定方法、装置、设备及存储介质
GB202012486D0 (en) * 2020-08-11 2020-09-23 Nchain Holdings Ltd Paeudo-ramdom selection on the blockchain

Also Published As

Publication number Publication date
CN112636904A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
CN109508984B (zh) 一种基于确定性共识与可信时间戳的区块链电子存证方法
WO2018177093A1 (zh) 区块链处理方法、记账节点、验证节点及存储介质
US10491396B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
US20180365448A1 (en) Method and server for providing notary service for file and verifying file recorded by notary service
WO2020114385A1 (zh) 一种基于区块链网络的可信节点确定方法和装置
CN113301114B (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
CN108831001B (zh) 基于区块链的节点随机选取方法、系统、节点、电子设备
CN110086780B (zh) 基于以太坊的被篡改交易的处理方法、装置及存储介质
CN110177124A (zh) 基于区块链的身份认证方法及相关设备
CN111488134B (zh) 基于区块链的公开随机数生成方法及设备
CN105187218B (zh) 一种多核心基础设施的数字化记录签名、验证方法
CN109067746B (zh) 客户端与服务器之间的通信方法及装置
CN111640018B (zh) 一种区块链交易存在性验证方法及装置
CN110990790B (zh) 一种数据处理方法及设备
CN112636904B (zh) 随机数生成与验证方法、装置、电子设备及可读存储介质
JP2015513156A (ja) ビザンチン・フォールトトレランス及び閾値コイントス
CN113326332B (zh) 一种区块链的快照同步方法及装置
CN112181599B (zh) 模型训练方法、装置及存储介质
CN112634034B (zh) 预约方法、装置、电子设备及计算机可读存储介质
JP6603799B2 (ja) エンティティアイデンティティ有効性検証方法及びその装置
CN112994891B (zh) 一种基于门限签名的交易请求共识方法和系统
CN109698750A (zh) 区块链的区块生成方法、装置、设备及可读存储介质
CN115426106A (zh) 一种身份认证方法、装置、系统、电子设备及存储介质
CN113139209A (zh) 一种基于原子性签名的可验证凭据实现方法和系统
WO2021082404A1 (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