CN109714150A - 基于区块链hash值生成数列的系统与方法 - Google Patents
基于区块链hash值生成数列的系统与方法 Download PDFInfo
- Publication number
- CN109714150A CN109714150A CN201811472698.1A CN201811472698A CN109714150A CN 109714150 A CN109714150 A CN 109714150A CN 201811472698 A CN201811472698 A CN 201811472698A CN 109714150 A CN109714150 A CN 109714150A
- Authority
- CN
- China
- Prior art keywords
- hash value
- hash
- block
- block chain
- numbers
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于区块链hash值生成数列的系统与方法,是基于现有的区块链中未来区块的hash值的不确定性特点,从区块中按照规则抽取数字,生成数列的系统方法,本系统并不需要参与区块链计算,独立于区块链而存在,成本几乎为零,能替换现有的机械式的抽奖摇号方式;其方法首先根据最终需要抽取数字的规则通过数学计算得到需要hash的最少数字位数,再确定需要使用的区块数量和原始hash二次处理的规则和协议,然后统计历史区块的hash值通过二次处理后的各数字位符合独立均匀分布特点,利用计算机将二次处理的hash值生成数字排列,并对生成的结果历史数据进行统计证明符合均匀随机特性,最后使用一台接入互联网的计算机监测新的区块,按照设计的规则生成数列,其系统的任何规则和算法协议都需要公开,使得任何人可以回溯结果的正确性。
Description
技术领域
本发明涉及基于区块链hash值生成数列的系统与方法,具体是指基于区块链hash值生成数列在博彩摇号等行业应用的系统与方法。
背景技术
比特币区块链截止到2018年已经运行了9年,其原理是分布在网络中的计算机节点自由参与基于工作量证明(Proof of Work)的将当前时间段的网络上所有的交易进行sha256加密的生成区块计算的过程。大约每10分钟产生一个区块。区块链的每个区块都有一个hash值,是sha256加密算法生成的一个2的256次方数字,用十六进制表示为64位的16进制数,未生成的区块的hash值的任何一位数是无法预测的。
sha256、sha512等加密算法在计算机中已经实现,而且计算速度非常快,具有不可能反向计算破解的特性,不同的输入进行加密计算产生的结果相同的概率极限趋近于0,相同的输入得到的加密结果是绝对相同的,由于区块链的特点,新产生的区块的hash值与历史hash相同的概率极限趋近于0,截止到北京时间2018.11.03 05:45:10连续548496个区块hash没有重复值,已经印证这点。
目前的博彩、抽奖、摇号等需要随机数的行业都是树立在权威机构的公信力下才能运行,因为抽取数字的结果具有不可验证性,而利用区块链不可篡改性、历史可验证性等特点,可以解决现有的一些问题,其中有一种区块链实现的方式,是专门开辟一条新的区块链,用来存储和管理整个系统所需要的各个模块,但是这样一来成本非常高、难度大、而且完全没有了灵活性。本系统是基于可实现性的最小系统,只需要在一台接入互联网的计算机来监测已有的任意区块链即可。
发明内容
为解决上述技术问题,本发明提供的技术方案为:基于区块链hash值生成数列的系统与方法在需要随机数的行业领域中的应用,包括博彩、摇号、抽奖领域。
优选地,其系统是独立运行的,可以使用任何区块链,但是并不需要参与区块链的运算。
优选地,区块的任何一个使用sha加密算法生成的随机数,其hash值包括区块头标识hash值、默克尔树hash值。
优选地,基于区块链hash值生成数列的系统的方法,包括以下步骤:
(1)使用接入互联网的计算机监测新的区块生成,并获取区块数据;
(2)使用一个或者多个区块的hash值;
(3)将区块原始hash值,利用sha加密算法(包括SHA256算法、SHA512算法)进行二次处理生成新的hash值;
(4)利用统计学原理证明新的hash值的每个数位的数字具有独立均匀分布的特点;
(5)定义一个规则协议,将新的hash值利用计算机生成数列。
目前一个区块链hash值为sha256算法生成的一个64位16进制数,称之为原始hash,记做H原始=g0g1g2…g63,其中gi∈[0,2,3,4,5,6,7,8,9,a,b,c,e,d,f],由于目前的大部分区块链是使用pow共识机制,原始hash值得前几位是零,为了最大化利用原始hash,需要将其进行二次处理。利用sha加密算法(sha256、sha512等),将原始H原始经过一定规则Fhash(hash)转化成新的hash值,记做Hnew=Fhash(H原始),其中Fhash函数最后一步必须是sha的输出,比如Fhash=SHA512(SHA256(hash)*2+30),含义是将输入hash先进行sha256处理,结果乘以2,再加30,最后在经过sha512处理输入得到一个128位16进制数,在具体实施中一个系统的Fhash是统一的,也就是每次处理原始hash的方式是要绝对相同的,并且Fhash需要用户公开,用户是可以验证的。
由于区块链生成区块是按照一定的时间不间断的,我们在实际可以连续使用J个区块来增加我们整体的hash值的位数,比如利用连续的两个区块使用Fhash=SHA512(hash)函数输出后进行先后顺序组合得到一个128*2=256位16进制数。称之为Concat函数,记做C(hashes,J),那么最终hash值Hfinal=C(hashes,J),其中Hfinal所包含的16进制的位数dfinal满足:dfinal=(Fhash输出位数k)*J,那么在特定的使用场景,我们需要形式不同的随机数组合,比如双色球,在33个红球中取出6个非重复号码,再从16个蓝球中取出1个号码;又比如在汽车摇号中,可能在10000个号码中取出100个非重复的号码;经过研究,抽象的数学模型为三个参数(是否可重复性,抽取范围,抽取个数),在本系统中,定义为取数参数Y(C,M,N),其中C表示是否可重复性,M表示抽取范围,N表示抽取个数。
例如双色球组合表达式T=[Y非重复,33,6),Y(非重复,16,1)];10000非重复取100的组合表达式位Y=[Y(非重复,10000,100)],确定好Fhash函数和输出数字的组合表达式Y后,再确定输出算法函数G(Y,hash),即根据表达式Y和Fhash函数处理过的hash值得到一个数列,为了最大化利用hash值G(Y,hash)使用求余数取数法,在具体实施中一个系统的G(Y,hash)是统一的确定的。并且需要向用户公开,用户是可验证的,在具体实施过程中,同时也需要向大众用统计检验法证明所有历史区块hash值通过Fhash函数得到的Hnew确实是随机的,统计的方法和结果也需要公开,每个用户都可以验证,具体包含如下步骤:
步骤1、根据实际使用场景,确定输出数字模型组合表达式Y=[Y(C1,M1,N1),...,Y(Ci,Mi,Ni)];
步骤2、根据Y确定转化函数G(Y,hash)的hash需要的最小位数dfinal;
步骤3、根据dfinal确定Fhash(hash)输出16进制位数k和需要使用的区块数J;
步骤4、定义并确定Fhash(hash)和C(hashes,J)函数;
步骤5、统计区块链中的所有历史hash值通过按照Fhash(hash)和C(hashes,J)函数转换后生成的Hfinal中每一数字中16进制字符出现的频率符合独立均匀分布的特点,统计的方法和结果在系统开始运行后向社会公开;
步骤6、确定转化函数G(Y,hash),对于输出组合Y=[Y(C1,M1,N1),...,Y(Ci,Mi,Ni)],记作[Y1,Y2,…,Yi],那么G(Y,hash)的作用是将hash根据Y1,Y2,…Yi依次分解成对应的数列;
步骤7、统计区块链中的所有历史hash值通过按照Fhash(hash)和C(hashes,J)和G(Y,hash)生成的结果中的数字出现的频率符合独立均匀分布的特点,统计的方法和结果在系统开始运行后向社会公开;
步骤8、根据以上设定的规则和协议方法,利用计算机程序,监测区块链,当产生新区块时计算生成数列即可。
上述步骤2中具体包含如下详细步骤细节:
步骤2.1、对于取数函数F(C,M,N),C∈[可重复,非可重复],当C=可重复,在M个数中可重复取N个,其实是可重复排列问题,取数的结果记作R=[X1,X2,…,XN],把R按从左到右当作一个N位M进制的整数R=X1X2...Xn,转换成10进制为R10=X1*MN-1+X2*MN-2+…+XN,其中0≤R10≤MN–1,将R转换成16进制,转换函数为hex(十进制数),那么对应的16进制数R16=hex(R10),那么有0≤R16≤hex(MN–1)。所以当C=可重复,对应的需要最小的hash位数dfinal为(hex(MN–1)–0+1)的位数,即dfinal=hex(MN)的位数,也就是得到dfinal=log16(MN)=N*log16M。当C=非可重复,在M个数中非可重复取N个,最多取M个,是非可重复排列问题,取数结果记作R=[X1,X2,…,XN],其中Xi各不相同,具体过程:
当i=1时,取数集合S1=[0,1,2,…,M-1],共有M种取法,取数后R=[X1];
当i=2时,取数集合S2=S1-R,共有M-1种取法,取数后R=[X1,X2];
当i=3时,取数集合S3=S2-R,共有M-2种取法,取数后R=[X1,X2,X3];
…
当i=N时,取数集合SN=SN-1-R,共有M-N+1种取法,取数后R=[X1,X2,X3,…,XN];
那么R的组合一共有种,那么对应我们的输入hash值的范围集合需要包含这些组合数量,那么有得到
所以我们得到求解dfinal的函数
根据输出组合Y=[F(C1,M1,N1),...,F(Ci,Mi,Ni)],计算
上述步骤3中具体包含如下详细步骤细节:
步骤3.1、Fhash(hash)函数的输出16进制位数K和使用区块数J取决于步骤2的dfinal以及目前计算机实现的sha算法,目前主流的sha有SHA256(64位)和SHA512(128位),也可以使用更多位数的SHA1024(256位)等等。只需要满足K*J>dfinal。
上述步骤4中具体包含如下详细步骤细节:
步骤4.1、Fhash(hash)函数的输入为区块链的原始hash,为了将原始hash映射到另一个hash,计算过程可以很复杂的线性运算,但是最后一次必须是sha运算,这样一来同样的hash输入值通过不同的Fhash(hash)函数可以生成不同的应用。
步骤4.2、C(hashes,J)函数中hashes是J个hash值的有序集合,hashes=[H1,H2,…,Hn]功能是为了将hashes中所有的字符进行重排列,通常的做法就是按顺序依次排列C(hashes,J)=H1H2…Hn,比如输入J=2,hashes=[6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b,d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35],得到6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4bd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35。
上述步骤6中转化函数G(Y,hash)具体包含如下详细步骤细节:
以下步骤在实际应用可以做出调整,原则是生成每个数列在映射关系上是独立的互不干扰的,并且最大化利用原始hash值。
步骤6.1、转化函数G(Y,hash)整体算法为:每抽取一个数列后,将剩下的hash值用来抽取下一个数列,依次类推,抽取的子函数为F(INT,Y(C,M,N)),Yj对应抽取结果记作Lj:
J=1,参数为Y1=Y(C1,M1,N1),INT1=hash,L1=F(INT1,Y1)
J=2,参数为Y2=Y(C2,M2,N2),INT2=除去L1剩余hash,L2=F(INT2,Y2)
J=3,参数为Y3=Y(C3,M3,N3),INT3=除去L1、L2剩余hash,L3=F(INT3,Y3)
…
J=i,参数为Yi=Y(Ci,Mi,Ni),INTi=除去[L1,L2,…,Li-1]剩余hash,Li=F(INTi,Yi)
步骤6.2、子函数F(INT,Y(C,M,N)),内部算法使用取余数法(mod),分两种情况,当C=可重复,参考图2,将INT整数转化成M进制整数,该整数的各位数的集合记作S=[g1,g2,g3,…,gx],然后从低位开始取N个数集合得到SN=[gx,gx-1,gx–2,…,gx-N+1],那么剩余集合S-SN=[g1,g2,g3,…,gx-N]组成的M进制整数作为剩余hash整数,用来计算下一个数列,这样一来,每个数列的生成都是互不干扰,并且最大化使用了原始hash值,用计算机程序可以如下实现:
(1)gx==INT mod M
(2)INT减去gx再除以M
(3)gx-1==INT mod M
(4)INT减去gx-1再除以M
(5)gx-2==INT mod M
(6)…
(7)INT减去gx-N+2再除以M
(8)gx-N+1==INT mod M
(9)INT减去gx-N+1再除以M
(10)返回SN=[gx,gx-1,gx–2,…,gx-N+1]和剩余INT值
当C=非可重复时,参考图3,当已经抽取j个数的时候,需要在剩余的M-J个数字中取数,将这M-J个数字按照从小到大顺序从1到M-J编号索引,那么也就是在[1,2,3,…,M-j]序数中抽取一个数字e,在通过这个数字e索引到原始集合,即抽取了原始的一个号码:
(1)根据M设置原始字符symbol集合S=[s1,s2,s3,…,sM,],集合长度记为lenS,抽取结果集合为SN,其中S[i]是索引S集合的第i个值,0≤i≤lenS-1
(2)抽取第1个数:mod1=INT mod M,g1=S[mod1],SN=[g1]
(3)INT减去g1再除以M
(4)S集合去掉g1,其他字符保持相对位置,集合长度-1
(5)抽取第2个数:mod2=INT mod(M–1),g2=S[mod2],SN=[g1,g2]
(6)INT减去g2再除以M-1
(7)S集合去掉g2,其他字符保持相对位置,集合长度-1
(8)…
(9)抽取第N个数:modeN=INT mod(M–N+1),gN=S[modeN],SN=[g1,g2,…,gN]
(10)INT减去gN再除以M-N
(11)返回SN和剩余INT值
采用以上方法,本发明的有益效果为:本发明能够解决博彩、摇号的可被人操作的问题;能解决成本问题,监测新生成的区块,成本就是一台接入互联网的计算机;能解决效率问题,每过10分钟既可以生成一套随机数列。
本发明是基于现有的区块链中未来区块的hash值的不确定性特点,从区块中按照规则抽取数字,生成数列的系统方法。本系统并不需要参与区块链计算,独立于区块链而存在,成本几乎为零。目的是替换现有的机械式的抽奖摇号方式。首先根据最终需要抽取数字的规则通过数学计算得到需要hash的最少数字位数,然后再确定需要使用的区块数量和原始hash二次处理的规则和协议,然后统计历史区块的hash值通过二次处理后的各数字位符合独立均匀分布特点,然后利用计算机将二次处理的hash值生成数字排列,并对生成的结果历史数据进行统计证明符合均匀随机特性,最后使用一台接入互联网的计算机监测新的区块,按照设计的规则生成数列。系统的任何规则和算法协议都需要公开,这样让任何人可以回溯结果的正确性。
附图说明
图1为本发明的方法流程示意图。
图2为本发明步骤中内部算法使用取余数法时流程示意图一。
图3为本发明步骤中内部算法使用取余数法时流程示意图二。
图4~图7为本发明实施例中利用计算机统计Aig事件的频率fn的频率分布参考图。
图8~图11为本发明实施例中benchmark的频率分布参考图。
图12为本发明实施例中验证假设一时的统计结果图。
图13为本发明实施例中验证假设二时的统计结果图。
图14为本发明实施例步骤7.1中统计548496期双色球的红蓝球各号码的统计频率分布图。
图15为本发明实施例步骤7.2中统计2340期双色球的红蓝球各号码的统计频率分布图。
图16为本发明实施例步骤7.3中从548496期双色球中选取前2340期,统计红蓝球各号码的统计频率分布图。
具体实施方式
下面结合附图对本发明进一步详细说明,本实施例是利用比特币区块链实现一个双色球取号系统,具体实际应用可以很灵活。
双色球的取号方式为:从33个红球中取出6个非重复数字,再从16个蓝球中取出1个数字,那么取数组合公式为Y=[Y(非重复,33,6),Y(非重复,16,1)];
比特币区块链的区块hash值为SHA256生成的一个64位的16进制数,配置一台接入互联网的计算机,监测比特币区块的生成,一种方式是参与比特币区块节点计算(俗称挖矿),另一种方式是利用第三方api,利用编程语言如C语言、python、javascript等很容易就实现获取区块实时数据和历史数据。
步骤1、双色球的输出数字组合表达式为Y=[Y(非重复,33,6),Y(非重复,16,1)]。
步骤2、根据公式
计算所需要输入hash的最小16进制的位数
向上取整数dfinal=9,至少需要9位16进制数。
步骤3、由于SHA256算法输出的是64位16进制数,大于9,故Fhash(hash)最终使用SHA256输出,k=64,使用一个区块J=1。
步骤4、定义Fhash(hash)=SHA256(hash*1+0),即将原始hash进行一次SHA256,
C(hashes,J)=C(hash,1)=返回输入hash,也就是输出为输入hash,不做任何处理。
步骤5、下载比特币区块链历史区块信息,将每个区块hash值,经过Fhash(hash)和C(hash,1)处理,然后统计最终哈希Hfinal的数字分布,统计论证符合独立均匀分布的特点,论证方法根据具体情况而定。为了提高我们统计的说服力,还利用计算随机均匀生成一个对比样本,称之为benchmark。
步骤5.1、下载截止到北京时间2018.11.03 05:45:10为止的总共548496个比特币区块信息。
步骤5.2、将每个区块的hash值经过Fhash(hash)和C(hash,1),结果就是每个原始hash值经过一次SHA256输出得到新的hash值,形成一个容量为548496个hash样本S,每个hash值是64位的16进制数。
步骤5.3、利用计算程序随机均匀分布生成一个容量为548496个hash样本Sbechmark。
步骤5.4、设定g为[0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f]中的某个字符,i为hash的从左到有第i位数,0≤i≤63,设定事件A0g表示从样本S中任取一个hash值的第1位数为g,…,Aig表示从样本S中任取一个hash值的第i+1位数为g;
假设一、对于任意g,都有概率即对于任意位g出现的概率都是相同的,符合均匀分布;
验证假设一、利用计算机统计Aig事件的频率fn(Aig),再利用统计检验如卡方检验判断是否在一定的可信范围内服从均分分布,频率分布参考图4到图7,可以从直观上看出确实在一定误差范围内符合均匀分布;图8到图11为benchmark的频率分布;
图12统计了对于每个i,g频率的统计,横轴表示i,纵轴表示所有g∈[0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f]的频率的最大(max)最小值(min),中位数(50%),四人之一位数(25%),四分之三位数(75%)平均值(mean),标准差(std),卡方检验值。其中实线为比特币区块链实际值,虚线为benchmark统计值。但是利用何种假设检验法,使用怎样的置信区间,应该根据实际情况而定,这属于统计学的范畴。
假设二、对于任意i1,i2和g1,g2,都有联合概率 即对于任意位hash值的任意两位是相互独立的。
验证假设二、利用计算机统计Ai1g1∩Ai2g2事件的频率fn(Ai1g1∩Ai2g2),再利用统计检验如卡方检验判断是否在一定的可信范围内服从均分分布,对于任意两位组合的情况,一共有64*63=4032中情况,组合的结果值有[0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f]和[0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f]笛卡尔积共256中组合。图13为统计结果,横轴表示组合顺序,统计值与图12相同。
步骤5.5、统计程序算法和结果向社会公开,用户可以使用计算机验证结果的合理性。
步骤6、转化函数G(Y,hash)整体算法为:
(1)输入hash值,根据Y红=Y(非重复,33,6),生成一个数列L红球=F(hash,Y红)
(2)输入上一步的剩余hash值,根据Y蓝=Y(非重复,16,1),生成一个数列L蓝球=F(剩余hash,Y蓝)
以8d98fb67850b4fd740330f2e5067595962c61ac86a3358ba5a4de55e66ff5704输入为例演示生成数列的过程细节:
(2-1)F(hash,Y红):
(2-1.1)输入8d98fb67850b4fd740330f2e5067595962c61ac86a3358ba5a4de55e66ff5704
(2-1.2)设置原始字符symbol集合S=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]
(2-1.3)抽取第一个数:
mod1=8d98fb67850b4fd740330f2e5067595962c61ac86a3358ba5a4de55e66ff5704 mod 33=9,
取数g1=S[9]=10,L红球=[10]
(2-1.4)S去掉10,
S=[1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]
(2-1.5)计算剩余hash
(2-1.6)抽取第二个数:
mod2=44a743970a3407ae2ea464738bd504886df371d588d313bf338a9dc12a2e39bmod 32=27,
取数g2=S[27]=29,L红球=[10,29]
(2-1.7)S去掉29,
S=[1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,31,32,33]
(2-1.8)计算剩余hash
(2-1.9)抽取第三个数:
mod3=2253a1cb851a03d717523239c5ea824436f9b8eac46989df99c54ee095171cmod 31=10,
取数g3=S[10]=12,L红球=[10,29,12]
(2-1.10)S去掉12,
S=[1,2,3,4,5,6,7,8,9,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,31,32,33]
(2-1.11)计算剩余hash
(2-1.12)抽取第四个数:mod4=11b78d5044b296a0902a6c80ea477d0a6ef480792b914f6b2613417c2beae mod 30=8,
取数g4=S[8]=9,L红球=[10,29,12,9]
(2-1.13)S去掉9
S=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,31,32,33]
(2-1.14)计算剩余hash
(2-1.15)抽取第5个数:
mod5=972f608ad2c0c115df47e229f150f7d07f9de1e7da2d505f22c6731287d mod29=10,
取数g5=S[10]=14,L红球=[10,29,12,9,14]
(2-1.16)S去掉14
S=[1,2,3,4,5,6,7,8,11,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,31,32,33]
(2-1.17)计算剩余hash
(2-1.18)抽取第6个数:
Mod6=5369965e3f4fdd49dc4af85dc2eee1004668c342201900347d1e0a85cf mod28=11,
取数g6=S[11]=16,L红球=[10,29,12,9,14,16]
(2-1.19)S去掉16
S=[1,2,3,4,5,6,7,8,11,13,15,17,18,19,20,21,22,23,24,25,26,27,28,30,31,32,33]
(2-1.20)计算剩余hash
(2-1.21)抽取红球结束
(2-2)F(剩余hash,Y蓝):
(2-2.1)输入2faa0cc8242da305a273fba34ad1a524ba8501dca4a0926722ec984c7
(2-2.2)设置原始字符symbol集合S=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
(2-2.3)抽取第一个数:
mod1=2faa0cc8242da305a273fba34ad1a524ba8501dca4a0926722ec984c7 mod16=7,
取数g1=S[7]=8,L蓝球=[8]
(2-2.4)S去掉8,S=[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16]
(2-2.5)计算剩余hash
(2-2.6)抽取蓝球结束
这样抽取到的红球为[10,29,12,9,14],蓝球为[8]
步骤7、根据以上算法流程,将548496个hash样本中的每个hash进行抽取双色球数列,得个548496期双色球。为了进一步验证我们的结果合理性和方案的可行性,还进行以下步骤:
步骤7.1、统计548496期双色球的红蓝球各号码的统计频率分布,如图14。
步骤7.2、统计目前实际双色球的历史数据,下载截止到2018-11-15共2340期双色球的历史数据,统计红蓝球各号码的统计频率分布,如图15。
步骤7.3、从548496期双色球中选取前2340期,统计红蓝球各号码的统计频率分布,如图16
步骤7.4、将统计的方法和结果公开,任何用户都可以验证结果的合理性。
上述详细说明只是本发明的一个实例,上述实施方式并非用以限制本发明的专利范围,凡未脱离本发明的等效实施或变更,均应包含于本发明的专利范围。
Claims (4)
1.基于区块链hash值生成数列的系统与方法在需要随机数的行业领域中的应用,包括博彩、摇号、抽奖领域。
2.根据权利要求1所述的基于区块链hash值生成数列的系统,其特征在于:其系统是独立运行的,可以使用任何区块链,但是并不需要参与区块链的运算。
3.根据权利要求1所述的基于区块链hash值生成数列的系统,其特征在于:区块的任何一个使用sha加密算法生成的随机数,其hash值包括区块头标识hash值、默克尔树hash值。
4.根据权利要求1所述的基于区块链hash值生成数列的系统的方法,其特征在于,包括以下步骤:
(1)使用接入互联网的计算机监测新的区块生成,并获取区块数据;
(2)使用一个或者多个区块的hash值;
(3)将区块原始hash值,利用sha加密算法,包括SHA256算法、SHA512算法,进行二次处理生成新的hash值;
(4)利用统计学原理证明新的hash值的每个数位的数字具有独立均匀分布的特点;
(5)定义一个规则协议,将新的hash值利用计算机生成数列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811472698.1A CN109714150A (zh) | 2018-12-04 | 2018-12-04 | 基于区块链hash值生成数列的系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811472698.1A CN109714150A (zh) | 2018-12-04 | 2018-12-04 | 基于区块链hash值生成数列的系统与方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109714150A true CN109714150A (zh) | 2019-05-03 |
Family
ID=66254667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811472698.1A Pending CN109714150A (zh) | 2018-12-04 | 2018-12-04 | 基于区块链hash值生成数列的系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714150A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784315A (zh) * | 2019-10-26 | 2020-02-11 | 深圳市炳德区块链技术有限公司 | 基于区块链的摇号方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106452785A (zh) * | 2016-09-29 | 2017-02-22 | 财付通支付科技有限公司 | 区块链网络、分支节点及区块链网络应用方法 |
CN106980488A (zh) * | 2017-03-14 | 2017-07-25 | 腾讯科技(深圳)有限公司 | 随机数生成方法及装置 |
CN107103097A (zh) * | 2017-05-22 | 2017-08-29 | 中链科技有限公司 | 基于区块链技术的抽签方法和终端设备 |
CN107392770A (zh) * | 2017-08-09 | 2017-11-24 | 北京云知科技有限公司 | 一种基于区块链的随机数产生方法及系统 |
CN108733351A (zh) * | 2018-05-21 | 2018-11-02 | 北京泛融科技有限公司 | 一种基于区块链的随机数生成方法 |
-
2018
- 2018-12-04 CN CN201811472698.1A patent/CN109714150A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106452785A (zh) * | 2016-09-29 | 2017-02-22 | 财付通支付科技有限公司 | 区块链网络、分支节点及区块链网络应用方法 |
CN106980488A (zh) * | 2017-03-14 | 2017-07-25 | 腾讯科技(深圳)有限公司 | 随机数生成方法及装置 |
CN107103097A (zh) * | 2017-05-22 | 2017-08-29 | 中链科技有限公司 | 基于区块链技术的抽签方法和终端设备 |
CN107392770A (zh) * | 2017-08-09 | 2017-11-24 | 北京云知科技有限公司 | 一种基于区块链的随机数产生方法及系统 |
CN108733351A (zh) * | 2018-05-21 | 2018-11-02 | 北京泛融科技有限公司 | 一种基于区块链的随机数生成方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784315A (zh) * | 2019-10-26 | 2020-02-11 | 深圳市炳德区块链技术有限公司 | 基于区块链的摇号方法、装置、计算机设备及存储介质 |
CN110784315B (zh) * | 2019-10-26 | 2023-08-18 | 深圳市合西科技有限公司 | 基于区块链的摇号方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dwork et al. | Concentrated differential privacy | |
CN106778304B (zh) | 一种具有明文相关置乱机制的快速混沌图像加密方法 | |
CN106980488A (zh) | 随机数生成方法及装置 | |
Piriou et al. | Simulation of stochastic blockchain models | |
CN108733351A (zh) | 一种基于区块链的随机数生成方法 | |
CN110912994A (zh) | 一种区块链共识方法及装置 | |
CN104796250A (zh) | 针对RSA密码算法M-ary实现的侧信道攻击方法 | |
CN109714150A (zh) | 基于区块链hash值生成数列的系统与方法 | |
CN105912834B (zh) | 用于检查随机数序列的熵的装置和方法 | |
CN110784315B (zh) | 基于区块链的摇号方法、装置、计算机设备及存储介质 | |
CN104268293B (zh) | 数据库中的不可累加指标处理方法和装置 | |
CN108932438A (zh) | 基于线性反馈的多模混合可重构puf单元电路 | |
CN115580484B (zh) | 适用能耗数据的安全联合计算方法、系统及存储介质 | |
Liu et al. | Hiding multiple solutions in a hard 3-SAT formula | |
CN108833156A (zh) | 一种针对电力通信网的仿真性能指标的评估方法及系统 | |
CN114063981A (zh) | 高质量伪随机数的获取方法 | |
Mukherjee et al. | Non-uniform nonlinear cellular automata with large cycles and their application in pseudo-random number generation | |
Hamburg | Understanding intel’s ivy bridge random number generator | |
CN101692616A (zh) | 基于分组处理的伪随机序列的随机性检测方法 | |
CN106603221B (zh) | 一种抵抗spa攻击的模幂计算方法、系统及嵌入式单芯片 | |
CN112818047A (zh) | 基于分布式数据库的数据存储方法、装置及电子设备 | |
CN109460533B (zh) | 一种提高gemm计算性能的方法及装置 | |
CN111914276A (zh) | 芯片信息泄露分析方法和装置 | |
Abdellatef et al. | Characterization of correlation in stochastic computing functions | |
CN113765848A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190503 |