CN111443895A - 一种应用于区块链的可验证随机数生成方法 - Google Patents

一种应用于区块链的可验证随机数生成方法 Download PDF

Info

Publication number
CN111443895A
CN111443895A CN202010171373.0A CN202010171373A CN111443895A CN 111443895 A CN111443895 A CN 111443895A CN 202010171373 A CN202010171373 A CN 202010171373A CN 111443895 A CN111443895 A CN 111443895A
Authority
CN
China
Prior art keywords
numbers
random number
random
unpredictable
rule
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.)
Pending
Application number
CN202010171373.0A
Other languages
English (en)
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.)
Hangzhou Pan Chain Technology Co ltd
Original Assignee
Hangzhou Pan Chain Technology Co 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 Hangzhou Pan Chain Technology Co ltd filed Critical Hangzhou Pan Chain Technology Co ltd
Priority to CN202010171373.0A priority Critical patent/CN111443895A/zh
Publication of CN111443895A publication Critical patent/CN111443895A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种应用于区块链的可验证随机数生成方法,该方法包括:(1)多个参与节点基于之前的随机数和BLS签名算法均产生确定性的不可预测的数字;(2)每个参与节点验证其他节点产生的不可预测的数字是否符合所述的BLS签名算法的验证条件;(3)将S2所有通过验证的不可预测的数字按照预设的随机规则一筛选出若干数字,组成一个子集;所述的预设的随机规则一计算时,需按照所述的不可预测的数字出现的先后顺序进行依次计算,且每一次计算必须使用上一步计算的结果作为其中的一个输入;(4)所述的S3得到的子集按照预设的随机规则二产生随机数。本发明进一步降低了参与随机函数的节点对最终结果操纵的可能性,并简化了流程。

Description

一种应用于区块链的可验证随机数生成方法
技术领域
本发明涉及区块链技术领域,具体涉及一种应用于区块链的可验证随机数生成方法。
背景技术
区块链是一种多个节点共同参与,且没有一个统一的控制中心的算法。在区块链上想要实现随机数算法比普通的随机算法增加两个新的要求。其一在于并不能让某个节点指定随机数,因为很可能这个节点出于利益的考虑而操纵随机数;其二在于能够让所有的节点达成共识,承认计算的有效性。
现在常见的区块链随机数方案,大致思路如下:首先选择弱随机数作为输入,再通过一些设定的聚合算法,对这些随机数进行计算,得到所需的随机数。弱随机数的选择分为两类,第一类是由出块节点产生,例如块头hash,块时间戳等等,由于聚合算法是已知的,所以在弱随机数选择区间内的最后一个出块节点,可以通过调整块头hash等方法,在一定程度上操纵随机数;第二类是由非出块节点的普通参与者通过合约等方式提供,首先,这样的方案往往都是“承诺-打开”二段式流程,流程复杂;其次,普通参与者仍然可以选择“不打开”在一定程度上操纵随机数;最后,普通参与者的交易都由出块节点打包,出块节点也可以在“打开”周期的最后时刻,丢弃普通交易者的“打开”交易,从而在一定程度上操纵随机数。
发明内容
针对现有技术的不足,本发明提出一种应用于区块链的可验证随机数生成方法,该方法的具体技术方案如下:
一种应用于区块链的可验证随机数生成方法,该方法在区块链运行过程中被同步执行,该方法在每个时间区间内均产生一个随机数,在每个时间区间内,随机数生成方法的步骤如下:
S1:多个参与节点基于之前的随机数和BLS签名算法均产生确定性的不可预测的数字;
S2:每个参与节点验证其他节点产生的不可预测的数字是否符合所述的BLS签名算法的验证条件;
S3:将S2所有通过验证的不可预测的数字按照预设的随机规则一筛选出若干数字,组成一个子集;所述的预设的随机规则一计算时,需按照所述的不可预测的数字出现的先后顺序进行依次计算,且每一次计算必须使用上一步计算的结果作为其中的一个输入;
S4:所述的S3得到的子集按照预设的随机规则二产生随机数。
进一步地,所述的多个参与节点为区块链的出块候选节点,由上一个时间区间产生的随机数作为依据选出。
进一步地,所述的预设的随机规则二具体为先使用一种聚合运算,将所有数字转化为一个数字,然后再使用哈希算法对这个结果再进行运算,得到最终的随机数。
本发明的有益效果如下:
(1)采用BLS算法替换了常见的“先承诺后打开”的两段式流程,流程更为简化;
(2)由于BLS算法的确定性,杜绝了一些节点可能采取的挑选块hash,挑选时间戳的可能性,减少了恶意节点的操纵空间。
(3)在确定性的聚合算法之前,增加了一个筛选子集的流程,使得每个节点在提供信息之前无法确定自己提供的信息与最终结果之间是否存在联系,从而进一步降低了其操纵结果的可能性。
附图说明
图1为本发明的应用于区块链的可验证随机数生成方法;
图2为本发明的可验证随机数生成方法在共识过程中的应用的流程图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的可验证随机数生成方法,该方法在区块链运行过程中被同步执行,该方法在每个时间区间内均产生一个随机数,在每个时间区间内,随机数生成方法的步骤如下:
S1:多个参与节点基于之前的随机数和BLS签名算法均产生确定性的不可预测的数字;
S2:每个参与节点验证其他节点产生的不可预测的数字是否符合所述的BLS签名算法的验证条件;
S3:将S2所有通过验证的不可预测的数字按照预设的随机规则一筛选出若干数字,组成一个子集;所述的预设的随机规则一计算时,需按照所述的不可预测的数字出现的先后顺序进行依次计算,且每一次计算必须使用上一步计算的结果作为其中的一个输入;
S4:所述的S3得到的子集按照预设的随机规则二产生随机数。
优选地,当本发明的方法应用在区块链共识过程中时,所述的多个参与节点为区块链的出块候选节点,由上一个时间区间产生的随机数作为依据选出。
为了保证每个参与节点的随机数对最终的随机结果都存在影响,从而保证任意的N-1个节点互相串通也无法操纵最终的随机结果,所述的预设的随机规则二具体为先使用一种聚合运算,将所有数字转化为一个数字,然后再使用哈希算法对这个结果再进行运算,得到最终的随机数。这里的N是指参与随机过程的所有节点的数量。
下面以本发明的方法在区块链的共识过程中的应用为例介绍该方法,如图2所示。
1.区块链上的每个节点,使用BLS签名算法的公钥作为身份标识。
2.将每720个块为一轮,每轮开始时:
2.1.由上一轮的随机数配合具体的算法选出这一轮的出块节点。
为了表述的方便,不妨设本轮内所有块按照出块顺序获得编号1,2,3…720;
当节点出块时,需要包含对前一个块的hash的BLS签名,否则,视为非法块;用ρi表示该签名的值。
2.2当本轮结束时,计算H(i)(i=1,2,3,…720),计算方法如下:H(i)=Hash(H(i-1)||ρi),对于i=1,取上一轮计算得到的随机数作为H(0)的值,其中“||”运算符代表拼接两个字符串;
在集合{H(i)|i>360}中,选出最小的H(m),则所有编号小于等于m的节点产生的H(i)才成为最后的随机数集合。
计算Hash(∑⊕ρi)(1≤i≤m),其中“∑⊕”运算符代表对所有的输入数据依次按位求异或得到结果,由于异或算法符合交换律和结合律,因此具体计算顺序不做限制。其计算结果便成为本轮的随机数。
2.5随后返回2.1。
在整个链共识运行过程中,每一轮能够产生一个随机数,当合约需要使用随机数时,可以指定未来某一轮的随机数,作为该合约的随机数,从而保证了随机性。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。

Claims (3)

1.一种应用于区块链的可验证随机数生成方法,其特征在于,该方法在区块链运行过程中被同步执行,该方法在每个时间区间内均产生一个随机数,在每个时间区间内,随机数生成方法的步骤如下:
S1:多个参与节点基于之前的随机数和BLS签名算法均产生确定性的不可预测的数字;
S2:每个参与节点验证其他节点产生的不可预测的数字是否符合所述的BLS签名算法的验证条件;
S3:将S2所有通过验证的不可预测的数字按照预设的随机规则一筛选出若干数字,组成一个子集;所述的预设的随机规则一计算时,需按照所述的不可预测的数字出现的先后顺序进行依次计算,且每一次计算必须使用上一步计算的结果作为其中的一个输入。
S4:所述的S3得到的子集按照预设的随机规则二产生随机数。
2.根据权利要求1所述的应用于区块链的可验证随机数生成方法,其特征在于,所述的多个参与节点为区块链的出块候选节点,由上一个时间区间产生的随机数作为依据选出。
3.根据权利要求1所述的应用于区块链的可验证随机数生成方法,其特征在于,所述的预设的随机规则二具体为先使用一种聚合运算,将所有数字转化为一个数字,然后再使用哈希算法对这个结果再进行运算,得到最终的随机数。
CN202010171373.0A 2020-03-12 2020-03-12 一种应用于区块链的可验证随机数生成方法 Pending CN111443895A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010171373.0A CN111443895A (zh) 2020-03-12 2020-03-12 一种应用于区块链的可验证随机数生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010171373.0A CN111443895A (zh) 2020-03-12 2020-03-12 一种应用于区块链的可验证随机数生成方法

Publications (1)

Publication Number Publication Date
CN111443895A true CN111443895A (zh) 2020-07-24

Family

ID=71627402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010171373.0A Pending CN111443895A (zh) 2020-03-12 2020-03-12 一种应用于区块链的可验证随机数生成方法

Country Status (1)

Country Link
CN (1) CN111443895A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090943A (zh) * 2021-11-22 2022-02-25 杭州萝卜智能技术有限公司 基于区间分组的随机摇号及摇号结果验证方法、***

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789090A (zh) * 2017-02-24 2017-05-31 陈晶 基于区块链的公钥基础设施***及半随机联合证书签名方法
CN108845790A (zh) * 2018-06-20 2018-11-20 胡晓东 一种应用区块链来生成可信随机数的方法及相关装置
CN109743173A (zh) * 2018-12-20 2019-05-10 弗洛格(武汉)信息科技有限公司 区块链中出块节点确定方法、区块验证方法及区块链***
CN109785130A (zh) * 2018-12-17 2019-05-21 金蝶软件(中国)有限公司 区块链随机共识方法、装置、计算机设备和存储介质
CN110247753A (zh) * 2019-06-17 2019-09-17 北京艾摩瑞策科技有限公司 基于区块链节点网络的出块方法及装置
CN110400409A (zh) * 2019-07-26 2019-11-01 深圳市网心科技有限公司 基于bls签名算法的门限投票方法、***及相关设备
CN110445603A (zh) * 2019-06-28 2019-11-12 成都鹰翔天际科技有限公司 一种去中心化随机数生成方法
CN110599173A (zh) * 2019-09-20 2019-12-20 腾讯科技(深圳)有限公司 区块链的共识节点确定方法、装置、设备及存储介质
CN110798308A (zh) * 2019-10-31 2020-02-14 支付宝(杭州)信息技术有限公司 一种区块链的签名方法和***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789090A (zh) * 2017-02-24 2017-05-31 陈晶 基于区块链的公钥基础设施***及半随机联合证书签名方法
CN108845790A (zh) * 2018-06-20 2018-11-20 胡晓东 一种应用区块链来生成可信随机数的方法及相关装置
CN109785130A (zh) * 2018-12-17 2019-05-21 金蝶软件(中国)有限公司 区块链随机共识方法、装置、计算机设备和存储介质
CN109743173A (zh) * 2018-12-20 2019-05-10 弗洛格(武汉)信息科技有限公司 区块链中出块节点确定方法、区块验证方法及区块链***
CN110247753A (zh) * 2019-06-17 2019-09-17 北京艾摩瑞策科技有限公司 基于区块链节点网络的出块方法及装置
CN110445603A (zh) * 2019-06-28 2019-11-12 成都鹰翔天际科技有限公司 一种去中心化随机数生成方法
CN110400409A (zh) * 2019-07-26 2019-11-01 深圳市网心科技有限公司 基于bls签名算法的门限投票方法、***及相关设备
CN110599173A (zh) * 2019-09-20 2019-12-20 腾讯科技(深圳)有限公司 区块链的共识节点确定方法、装置、设备及存储介质
CN110798308A (zh) * 2019-10-31 2020-02-14 支付宝(杭州)信息技术有限公司 一种区块链的签名方法和***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090943A (zh) * 2021-11-22 2022-02-25 杭州萝卜智能技术有限公司 基于区间分组的随机摇号及摇号结果验证方法、***

Similar Documents

Publication Publication Date Title
Weng et al. Deepchain: Auditable and privacy-preserving deep learning with blockchain-based incentive
Feige et al. Multiple non-interactive zero knowledge proofs based on a single random string
CN113095510B (zh) 一种基于区块链的联邦学习方法及装置
Radian et al. Semi-quantum money
US10887104B1 (en) Methods and systems for cryptographically secured decentralized testing
CN109542883A (zh) 一种基于区块链的信息查重方法
Damgård et al. Unclonable group identification
TW201320700A (zh) 署名驗證裝置、署名驗證方法、程式及記錄媒體
CN111597590B (zh) 一种基于区块链的数据完整性快速检验方法
Alcover et al. A new randomness test for bit sequences
TW201320701A (zh) 資訊處理裝置、資訊處理方法及程式
CN112348518B (zh) 一种区块链交易证明的方法及装置
US11409907B2 (en) Methods and systems for cryptographically secured decentralized testing
CN114281888A (zh) 一种区块链共识方法、装置、设备及存储介质
Pfeifer et al. Spread: a new layer for profiled deep-learning side-channel attacks
Huang et al. Efficient secure computation with garbled circuits
CN110868286A (zh) 一种基于区块链智能合约生成随机数的方法
WO2020186750A1 (zh) 一种基于多重证据纠错的格基数字签名方法
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN111865595B (zh) 一种区块链的共识方法及装置
CN111443895A (zh) 一种应用于区块链的可验证随机数生成方法
Wisiol et al. Why attackers lose: Design and security analysis of arbitrarily large XOR arbiter PUFs
Mie Polylogarithmic two-round argument systems
Jivanyan et al. Hierarchical one-out-of-many proofs with applications to blockchain privacy and ring signatures
US20230269090A1 (en) Apparatus for secure multiparty computations for machine-learning

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200724

WD01 Invention patent application deemed withdrawn after publication