CN112383389B - 一种区块链随机数生成方法及系统 - Google Patents

一种区块链随机数生成方法及系统 Download PDF

Info

Publication number
CN112383389B
CN112383389B CN202110020645.1A CN202110020645A CN112383389B CN 112383389 B CN112383389 B CN 112383389B CN 202110020645 A CN202110020645 A CN 202110020645A CN 112383389 B CN112383389 B CN 112383389B
Authority
CN
China
Prior art keywords
nodes
random number
node
source random
block chain
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
CN202110020645.1A
Other languages
English (en)
Other versions
CN112383389A (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.)
Shenzhen suoxinda Data Technology Co.,Ltd.
Original Assignee
Shenzhen Suoxinda Data 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 Shenzhen Suoxinda Data Technology Co ltd filed Critical Shenzhen Suoxinda Data Technology Co ltd
Priority to CN202110020645.1A priority Critical patent/CN112383389B/zh
Publication of CN112383389A publication Critical patent/CN112383389A/zh
Application granted granted Critical
Publication of CN112383389B publication Critical patent/CN112383389B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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

Abstract

本发明公开了一种区块链随机数生成方法及系统,其中所述方法包括:中心服务器接收来自区块链的请求信号,其生成一个具有加法同态性质的密钥对,并将公钥发送给所有节点;所有节点生成一个源随机数,使用公钥将源随机数加密得到承诺值并发送到区块链上;所有节点将自身的源随机数打碎,将碎片分发给其他节点;所有节点利用同态加密技术对碎片进行第一次验证;基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数;所有节点将自身源随机数发送到区块链,各节点通过公钥和承诺值进行第二次验证,以验证源随机数是否真实;基于第二验证结果,确定是否接收源随机数。本发明可以不受操控、不可预测且能被全网确认的生成随机数。

Description

一种区块链随机数生成方法及系统
技术领域
本发明属于区块链技术领域,尤其涉及一种区块链随机数生成方法及系统。
背景技术
随机数生成是区块链的一个关键技术。分布式账本需要解决随机选择出块人的问题,这个随机性要能被全网确认,并且不能被操控,也不能被预测, 否则恶意节点通过操控这个随机数就可以操控长链,从而实现双花攻击。
传统的生成随机数的方法通常会采用如上一个区块的哈希值,上一个区块的时间戳等等作为随机数的来源。然而由于区块信息本身是节点写进去的,容易被操控,导致安全性不好。所以出现了通过各个节点共同组合生成随机数的方法,即每个节点生成一个随机数,再将所有人的随机数进行组合,这样就没有任何节点可以预测出这个组合数。然而,由于区块链节点发送信息时间不同步,后发送数据的人可以看到先发出的人的信息,从而根据其他人的信息来定制自己的输出结果,使最后的组合随机数朝对自己有利的方向生成,从而损害区块链生态。
为了解决这个问题,后来出现了通过承诺和打开两阶段的随机数生成方式。即每个用户将该自己生成的随机数的哈希先公开出来,作为一种承诺。待所有节点均发送承诺之后,再进入打开阶段,大家各自揭开原始随机数,并验证所有节点展示的随机数的哈希是否与先前的承诺一致。
然而该方法仍然有个缺陷,就是如果有节点最后不打开怎么办或者说有节点发现最后的随机数对自己不利,那么会选择故意宕机从而不出示原始随机数,导致最后组合随机数无法生成。
于是,有人提出在上述方案上加上秘密共享技术,即大家在发送承诺的同时,将自身的随机数分为k份碎片并分别发送给其他k个节点。但是如果在发送碎片的时候有欺骗行为,即发送了假的碎片怎么办,这样的话会导致如果出现宕机则仍然无法生成最后的随机数。
发明内容
针对上述现有技术中存在的缺陷,本发明提供一种承诺、验证和打开三阶段的随机数生成方式,结合同态加密技术,完成可以不受操控、不可预测且能被全网确认的随机数生成方法。
第一方面,本发明提供一种区块链的随机数生成方法,包括以下步骤:
中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号;
所述中心服务器生成一个具有加法同态性质的密钥对,并将公钥发送给所有节点;
所有节点在本地生成一个源随机数,使用所述公钥将生成的源随机数加密后得到承诺值并发送到区块链上;
所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点;
所有节点利用同态加密技术对所述碎片进行第一次验证,以获得第一验证结果;
基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数;
所有节点将自身源随机数发送到区块链,各节点通过公钥和相应承诺值进行第二次验证,以获得所述源随机数是否为真实的第二验证结果;
基于第二验证结果,确定是否接收源随机数。
其中,所述中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号,包括:所述中心服务器接收来自区块链服务器的随机数生成请求信号。
其中,所述中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号,包括:所述中心服务器接收来自所述区块链上多个节点的随机数生成请求信号,其中所述多个节点需要建立信任机制。
其中,所述所有节点在本地生成一个源随机数,使用所述公钥将生成的源随机数加密后得到承诺值并发送到区块链上,包括:
节点n使用所述公钥将生成的源随机数
Figure 486996DEST_PATH_IMAGE001
加密后得到承诺值
Figure 325508DEST_PATH_IMAGE002
并发送到区块链上,其中所述区块链存在N个节点,n为正整数,N为大于1的正整数,1≤n≤N。
其中,所述所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点,包括:
节点n将自身生成源随机数
Figure 42928DEST_PATH_IMAGE001
任意拆分成k个部分
Figure 359509DEST_PATH_IMAGE003
,其中k<N,则
Figure 360832DEST_PATH_IMAGE004
,并将
Figure 120977DEST_PATH_IMAGE005
发送给节点(n+1),
Figure 591273DEST_PATH_IMAGE006
发送给节点(n+2), ...,
Figure 242703DEST_PATH_IMAGE007
发送给节点(n+k);
这样,节点n将收到节点(n-1)发送来的数据
Figure 849265DEST_PATH_IMAGE008
,节点(n-2)发送来的数据
Figure 295159DEST_PATH_IMAGE009
,...,节点(n-k)发送来的数据
Figure 252750DEST_PATH_IMAGE010
节点n将接收的k个数据相加得到
Figure 193024DEST_PATH_IMAGE011
,则
Figure 903360DEST_PATH_IMAGE012
Figure 802046DEST_PATH_IMAGE011
加密后得到
Figure 230622DEST_PATH_IMAGE013
,并发送到区块链上。
其中,如果(n+k)>N,则节点(n+k)表示节点(n+k-N);如果n<k,则节点(n-k)表示节点(n-k+N)。
其中,所述所有节点利用同态加密技术对所述碎片进行第一次验证,以获得第一验证结果,包括:
每个节点验证如下等式:
Figure 912271DEST_PATH_IMAGE014
其中,所述基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数,包括:
如果该等式成立,则说明所有节点发送的碎片是真实的,则所有节点确认能够恢复所有节点的源随机数。
其中,所述基于第二验证结果,确定是否接收源随机数,包括:
将所有节点的随机数进行异或运算,便可以得到组合后的随机数。
第二方面,本发明还提供一种区块链的随机数生成系统,其包括:
中心服务器,其用于接收来自区块链的请求信号,并对所述区块链上的所有节点进行编号;
承诺值生成模块,其用于使得所有节点在本地生成一个源随机数,使用公钥将生成的源随机数加密后得到承诺值;
发送模块,其用于将承诺值发送到区块链上,并使得所有节点将源随机数发送到区块链;
碎片生成模块,其用于使得所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点;
第一验证模块,其用于使得所有节点利用同态加密技术对所述碎片进行第一次验证,获得第一验证结果,并基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数;
第二验证模块,其用于使得各节点通过公钥和相应承诺值进行第二次验证,以获得所述源随机数是否为真实的第二验证结果,并基于第二验证结果,确定区块链是否接收源随机数。
与现有技术相比,本发明通过使用加法同态加密技术,验证碎片的真实性,从而使得在打开阶段(将自身源随机数发送到区块链时),即便出现少量节点宕机也不会影响随机数的生成。并且该随机数不受操控、不可预测且能被全网确认。本发明可以用于区块链场景中的随机变量模拟,随机节点选择以及其他需要通过公正的随机。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本发明实施例的一种区块链的随机数生成方法流程图;
图2是示出根据本发明某一实施例的区块链进行生成随机数的流程图;以及
图3是示出根据本发明实施例的一种区块链的随机数生成系统的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述……,但这些……不应限于这些术语。这些术语仅用来将……区分开。例如,在不脱离本发明实施例范围的情况下,第一……也可以被称为第二……,类似地,第二……也可以被称为第一……。
下面结合附图详细说明本发明的可选实施例。
实施例一、
如图1所示,本发明公开了一种区块链的随机数生成方法,包括以下步骤:
中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号;
所述中心服务器生成一个具有加法同态性质的密钥对,并将公钥发送给所有节点;
所有节点在本地生成一个源随机数,使用所述公钥将生成的源随机数加密后得到承诺值并发送到区块链上;
所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点;
所有节点利用同态加密技术对所述碎片进行第一次验证,以获得第一验证结果;
基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数;
所有节点将自身源随机数发送到区块链,各节点通过公钥和相应承诺值进行第二次验证,以获得所述源随机数是否为真实的第二验证结果;
基于第二验证结果,确定是否接收源随机数。
实施例二、
在上述实施例的基础上,本实施例可以包括以下内容:
本发明实施例的所述中心服务器接收来自区块链的请求信号,并对所述区块链上的所有节点进行编号时,其可以包括:所述中心服务器接收来自区块链服务器的随机数生成请求信号。进一步地,所述中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号,包括:所述中心服务器接收来自所述区块链上多个节点的随机数生成请求信号,其中所述多个节点需要建立信任机制。
在中心服务器接收来自所述区块链上多个节点的随机数生成请求信号后,本发明实施例的所述所有节点会在本地生成一个源随机数,使用所述公钥将生成的源随机数加密后得到承诺值并发送到区块链上,其可以包括:
节点n使用所述公钥将生成的源随机数
Figure 8271DEST_PATH_IMAGE001
加密后得到承诺值
Figure 281121DEST_PATH_IMAGE002
并发送到区块链上,其中假定所述区块链存在N个节点,n为正整数,N为大于1的正整数,1≤n≤N。
另外,在所述所有节点将自身生成的源随机数打碎,并将碎片分别分发给其他节点时,其可以包括:
节点n将自身生成源随机数
Figure 196993DEST_PATH_IMAGE001
任意拆分成k个部分
Figure 479070DEST_PATH_IMAGE003
,其中k为大于1的正整数,k<N,则
Figure 163998DEST_PATH_IMAGE004
,并将
Figure 342170DEST_PATH_IMAGE005
发送给节点(n+1),
Figure 745338DEST_PATH_IMAGE006
发送给节点(n+2), ...,
Figure 565526DEST_PATH_IMAGE007
发送给节点(n+k);
这样,节点n将收到节点(n-1)发送来的数据
Figure 370540DEST_PATH_IMAGE008
,节点(n-2)发送来的数据
Figure 516351DEST_PATH_IMAGE009
,...,节点(n-k)发送来的数据
Figure 141236DEST_PATH_IMAGE010
,数据可以包括数字;
节点n将接收的k个数据相加得到
Figure 765115DEST_PATH_IMAGE011
,则
Figure 706527DEST_PATH_IMAGE012
Figure 6927DEST_PATH_IMAGE011
加密后得到
Figure 135420DEST_PATH_IMAGE013
,并发送到区块链上。
进一步地,如果(n+k)>N,则节点(n+k)表示节点(n+k-N);如果n<k,则节点(n-k)表示节点(n-k+N)。
对于所有节点接收到的源随机数碎片,本发明实施例的所述所有节点利用同态加密技术对所述碎片进行第一次验证,其可以包括:
每个节点验证如下等式:
Figure 562990DEST_PATH_IMAGE014
在对所述碎片进行第一次验证后,获得第一验证结果。基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数,其可以包括:
如果该等式成立,则说明所有节点发送的碎片是真实的,则所有节点确认能够恢复所有节点的源随机数。
另外,各节点通过公钥和相应承诺值进行第二次验证,以获得所述源随机数是否为真实的第二验证结果,包括:在所有节点通过公钥生成的各节点源随机数和前述各节点发送至区块链的相应承诺值进行匹配。当生成该节点的源随机数与该节点前述发送的承诺值匹配时,表示该节点发送的源随机数是真实的。反之,当生成该节点的源随机数与该节点前述发送的承诺值不匹配时,表示该节点发送的源随机数是不真实的。
所述基于第二验证结果,确定是否接收源随机数,可以包括:当确定该节点发送的源随机数是真实的,接收该节点的源随机数。反之,则不接收该节点的源随机数。假设,节点n的源随机数不真实或节点n宕机从而没有公布源随机数
Figure 77017DEST_PATH_IMAGE015
的情况下,其余正常节点会将其在碎片生成模块中接收到的从节点n传过来的所有碎片
Figure 17160DEST_PATH_IMAGE016
进行公布。由于前述的第一验证结果已经通过,所以必须有
Figure 367370DEST_PATH_IMAGE017
,否则
Figure 582319DEST_PATH_IMAGE018
无法成立。所以只需要将所有碎片
Figure 967164DEST_PATH_IMAGE016
相加就可以恢复出
Figure 360100DEST_PATH_IMAGE015
,即该节点n的源随机数。直至确定获得所有节点的真实的源随机数后,将所有节点的源随机数进行异或运算,便可以得到组合后的随机数。
实施例三、
在上述实施例的基础上,本实施例还可以包括以下内容:
参见图2所示,本发明实施例区块链进行生成随机数时,其可以包括承诺阶段、验证阶段和打开阶段。
进一步,承诺阶段可以包括:
每个节点在本地均产生一个随机数;
中立第三方(中心服务器)生成一个具有加法同态性质的密钥对,并将公钥发送给所有参与方(节点);
假设网络中有N个节点,并使用自然数1到N对每个节点编号。
n号节点使用公钥将生成的源随机数
Figure 446873DEST_PATH_IMAGE001
加密后得到
Figure 216246DEST_PATH_IMAGE002
并发送到区块链上。
验证阶段可以包括:
n号节点将其自身生成的源随机数
Figure 970444DEST_PATH_IMAGE001
任意拆分成k(k<N)个部分,其表示为
Figure 268702DEST_PATH_IMAGE003
,即
Figure 859083DEST_PATH_IMAGE004
,并且每个节点将其拆分的碎片
Figure 681414DEST_PATH_IMAGE005
发送给节点(n+1),
Figure 775272DEST_PATH_IMAGE006
发送给节点(n+2), ...,
Figure 24857DEST_PATH_IMAGE007
发送给节点(n+k)(如果(n+k)>N,则节点(n+k)表示节点(n+k-N)),按照这个生成方式,每个节点n将收到节点(n-1)发送来的数字
Figure 571376DEST_PATH_IMAGE019
,节点(n-2)发送来的数字
Figure 948131DEST_PATH_IMAGE009
,...,节点(n-k)发送来的数字
Figure 434779DEST_PATH_IMAGE010
(如果n<k,则节点(n-k)表示节点(n-k+N))。节点n将这k个数字相加得到
Figure 605998DEST_PATH_IMAGE011
Figure 154660DEST_PATH_IMAGE012
,将
Figure 803947DEST_PATH_IMAGE011
加密后得到
Figure 872397DEST_PATH_IMAGE013
,并发送到区块链上。
每个节点n在承诺阶段将
Figure 463784DEST_PATH_IMAGE002
以及在验证阶段将
Figure 250475DEST_PATH_IMAGE013
广播到区块链后,每个节点验证如下等式:
Figure 952720DEST_PATH_IMAGE014
该等式成立基于加法同态加密算法,加法同态加密性质的密钥具有如下性质:如果a+b=c,则E(a)+E(b)=E(c)。
如果验证得到该等式成立,则说明所有节点发送的碎片是真实的,即使在后续的打开阶段有不超过k-1个节点出现宕机,那么仍然可以恢复出该节点在承诺阶段自身产生的源随机数。
打开阶段可以包括:
n号节点将源随机数发送到网络,所有人通过公钥生成n号节点的源随机数和前述n号节点发送至区块链的承诺值
Figure 141256DEST_PATH_IMAGE002
进行匹配验证,以确定该源随机数是否真实,并将所有节点的真实的源随机数进行异或运算,便可以得到组合后的随机数。
本发明实施例通过使用加法同态加密技术,验证碎片的真实性,从而使得在打开阶段即便出现少量节点宕机也不会影响随机数的生成。另外,只要合谋作恶的节点不超过k个节点,则这个生成随机数的方案是安全的,且没有任何节点可以作弊。该随机数不受操控、不可预测且能被全网确认。可以用于区块链场景中的随机变量模拟,随机节点选择以及其他需要通过公正的随机。
实施例四、
参见图3所示,本发明还提出了一种区块链的随机数生成系统,其包括:
中心服务器,其用于接收来自区块链的请求信号,并对所述区块链上的所有节点进行编号;
承诺值生成模块,其用于使得所有节点在本地生成一个源随机数,使用公钥将生成的源随机数加密后得到承诺值;
发送模块,其用于将承诺值发送到区块链上,并使得所有节点将源随机数发送到区块链;
碎片生成模块,其用于使得所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点;
第一验证模块,其用于使得所有节点利用同态加密技术对所述碎片进行第一次验证,获得第一验证结果,并基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数;
第二验证模块,其用于使得各节点通过公钥和相应承诺值进行第二次验证,以获得所述源随机数是否为真实的第二验证结果,并基于第二验证结果,确定区块链是否接收源随机数。
实施例五、
本公开实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行如上实施例所述的方法步骤。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(AN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上介绍了本发明的较佳实施方式,旨在使得本发明的精神更加清楚和便于理解,并不是为了限制本发明,凡在本发明的精神和原则之内,所做的修改、替换、改进,均应包含在本发明所附的权利要求概括的保护范围之内。

Claims (10)

1.一种区块链随机数生成方法,其特征在于,包括以下步骤:
中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号;
所述中心服务器生成一个具有加法同态性质的密钥对,并将公钥发送给所有节点;
所有节点在本地生成一个源随机数,使用所述公钥将生成的源随机数加密后得到承诺值并发送到区块链上;
所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点;
所有节点利用同态加密技术对所述碎片进行第一次验证,以获得第一验证结果;
基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数;
所有节点将自身源随机数发送到区块链,各节点通过公钥和相应承诺值进行第二次验证,以获得所述源随机数是否为真实的第二验证结果;
基于第二验证结果,确定是否接收源随机数。
2.如权利要求1所述方法,其特征在于,其中所述中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号,包括:所述中心服务器接收来自区块链服务器的随机数生成请求信号。
3.如权利要求1所述方法,其特征在于,其中所述中心服务器接收来自区块链的请求信号,对所述区块链上的所有节点进行编号,包括:所述中心服务器接收来自所述区块链上多个节点的随机数生成请求信号,其中所述多个节点需要建立信任机制。
4.如权利要求1所述方法,其特征在于,所述所有节点在本地生成一个源随机数,使用所述公钥将生成的源随机数加密后得到承诺值并发送到区块链上,包括:
节点n使用所述公钥将生成的源随机数
Figure 518582DEST_PATH_IMAGE002
加密后得到承诺值
Figure 981529DEST_PATH_IMAGE004
并发送到区块链上,其中所述区块链存在N个节点,n为正整数,N为大于1的正整数,1≤n≤N。
5.如权利要求4所述方法,其特征在于,其中所述所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点,包括:
节点n将自身生成源随机数
Figure DEST_PATH_IMAGE005
任意拆分成k个部分
Figure 213796DEST_PATH_IMAGE006
,其中k为大于1的正整数,k<N,则
Figure DEST_PATH_IMAGE007
,并将
Figure 405743DEST_PATH_IMAGE008
发送给节点(n+1),
Figure DEST_PATH_IMAGE009
发送给节点(n+2), ...,
Figure 344749DEST_PATH_IMAGE010
发送给节点(n+k);
这样,节点n将收到节点(n-1)发送来的数据
Figure DEST_PATH_IMAGE011
,节点(n-2)发送来的数据
Figure 622671DEST_PATH_IMAGE012
,...,节点(n-k)发送来的数据
Figure DEST_PATH_IMAGE013
节点n将接收的k个数据相加得到
Figure DEST_PATH_IMAGE015
,则
Figure DEST_PATH_IMAGE017
Figure 138972DEST_PATH_IMAGE018
加密后得到
Figure DEST_PATH_IMAGE019
,并发送到区块链上。
6.如权利要求5所述方法,其特征在于,其中如果(n+k)>N,则节点(n+k)表示节点(n+k-N);如果n<k,则节点(n-k)表示节点(n-k+N)。
7.如权利要求6所述方法,其特征在于,其中所述所有节点利用同态加密技术对所述碎片进行第一次验证,以获得第一验证结果,包括:
每个节点验证如下等式:
Figure 134610DEST_PATH_IMAGE020
8.如权利要求7所述方法,其特征在于,其中所述基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数,包括:
如果每个节点验证的等式成立,则说明所有节点发送的碎片是真实的,则所有节点确认能够恢复所有节点的源随机数。
9.如权利要求1所述方法,其特征在于,其中所述基于第二验证结果,确定是否接收源随机数,包括:
将所有节点的源随机数进行异或运算,得到组合后的随机数。
10.一种实施如权利要求1-9任意一项所述方法的区块链随机数生成系统,其特征在于,其包括:
中心服务器,其用于接收来自区块链的请求信号,并对所述区块链上的所有节点进行编号;
承诺值生成模块,其用于使得所有节点在本地生成一个源随机数,使用公钥将生成的源随机数加密后得到承诺值;
发送模块,其用于将承诺值发送到区块链上,并使得所有节点将源随机数发送到区块链;
碎片生成模块,其用于使得所有节点将自身生成的源随机数打碎,将碎片分别分发给其他节点;
第一验证模块,其用于使得所有节点利用同态加密技术对所述碎片进行第一次验证,获得第一验证结果,并基于第一验证结果所有节点确认是否能够恢复所有节点的源随机数;
第二验证模块,其用于使得各节点通过公钥和相应承诺值进行第二次验证,以获得所述源随机数是否为真实的第二验证结果,并基于第二验证结果,确定区块链是否接收源随机数。
CN202110020645.1A 2021-01-08 2021-01-08 一种区块链随机数生成方法及系统 Active CN112383389B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110020645.1A CN112383389B (zh) 2021-01-08 2021-01-08 一种区块链随机数生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110020645.1A CN112383389B (zh) 2021-01-08 2021-01-08 一种区块链随机数生成方法及系统

Publications (2)

Publication Number Publication Date
CN112383389A CN112383389A (zh) 2021-02-19
CN112383389B true CN112383389B (zh) 2021-04-20

Family

ID=74590874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110020645.1A Active CN112383389B (zh) 2021-01-08 2021-01-08 一种区块链随机数生成方法及系统

Country Status (1)

Country Link
CN (1) CN112383389B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434905B (zh) * 2021-07-05 2022-11-15 网易(杭州)网络有限公司 数据传输方法、装置、计算机设备及存储介质
CN113706150B (zh) * 2021-10-27 2022-02-08 深圳前海微众银行股份有限公司 一种区块确认方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107666388A (zh) * 2016-07-28 2018-02-06 郑珂威 基于完全同态加密方法的区块链信息加密方法
CN109067522A (zh) * 2018-07-27 2018-12-21 深圳市汇尊区块链技术有限公司 一种随机数可验证秘密共享方法
CN111614462A (zh) * 2020-04-24 2020-09-01 傲林科技有限公司 一种基于区块链的密钥计算方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11483306B2 (en) * 2018-03-26 2022-10-25 Matrics2, Inc. Secure communication with random numbers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107666388A (zh) * 2016-07-28 2018-02-06 郑珂威 基于完全同态加密方法的区块链信息加密方法
CN109067522A (zh) * 2018-07-27 2018-12-21 深圳市汇尊区块链技术有限公司 一种随机数可验证秘密共享方法
CN111614462A (zh) * 2020-04-24 2020-09-01 傲林科技有限公司 一种基于区块链的密钥计算方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
区块链隐私保护关键技术研究;苑超;《中国优秀硕士学位论文全文数据库(电子期刊)》;20190115;全文 *

Also Published As

Publication number Publication date
CN112383389A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
WO2019137566A2 (en) Methods and devices for validating transaction in blockchain system
JP7454564B2 (ja) 鍵管理のための方法、ユーザ・デバイス、管理デバイス、記憶媒体及びコンピュータ・プログラム製品
RU2719311C1 (ru) Система и способ защиты информации
CN109510818B (zh) 区块链的数据传输系统、方法、装置、设备及存储介质
US10880100B2 (en) Apparatus and method for certificate enrollment
JP2007049708A (ja) 公開鍵暗号方式に使用する鍵を更新するシステムおよび方法
CN112383389B (zh) 一种区块链随机数生成方法及系统
CN105009507A (zh) 借助于物理不可克隆函数创建从加密密钥中推导的密钥
CN114175572B (zh) 利用拟群运算对加密数据实行相等和小于运算的系统和方法
CN113328997A (zh) 联盟链跨链系统及方法
RU2010105036A (ru) Проверка кода мас без его раскрытия
CN112100144A (zh) 区块链文件共享方法、装置、存储介质及电子设备
KR20110098948A (ko) 보안 콘텐츠 보호 시스템을 사용하는 방법, 장치 및 시스템
Anusha et al. Symmetric key algorithm in computer security: a review
Dobraunig et al. Differential cryptanalysis of SipHash
US10200356B2 (en) Information processing system, information processing apparatus, information processing method, and recording medium
CN116436708A (zh) 一种基于区块链技术的可信数据分享方法和系统
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
CN116155483A (zh) 区块链签名机安全设计方法及签名机
CN112751675B (zh) 一种基于区块链的信息监控方法、系统、设备及存储介质
Omote et al. D2-POR: direct repair and dynamic operations in network coding-based proof of retrievability
Chang et al. Security analysis of an efficient null space-based homomorphic MAC scheme against tag pollution attacks in RLNC
CN116996222B (zh) 数据安全传输方法、装置、可读存储介质及电子设备
GB2397203A (en) Method of authenticating a message

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210326

Address after: 518063 room 1301a, 13 / F, maikelong building, 6 Gaoxin South 6th Road, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen suoxinda Data Technology Co.,Ltd.

Address before: 100045 1-14-2107, 2nd floor, 136 Xiwai street, Xicheng District, Beijing

Applicant before: Soxinda (Beijing) data Technology Co.,Ltd.

Applicant before: Shenzhen suoxinda Data Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant