CN112988894A - 一种基于分布式可验证延迟函数的区块链共识系统和方法 - Google Patents
一种基于分布式可验证延迟函数的区块链共识系统和方法 Download PDFInfo
- Publication number
- CN112988894A CN112988894A CN202110299792.7A CN202110299792A CN112988894A CN 112988894 A CN112988894 A CN 112988894A CN 202110299792 A CN202110299792 A CN 202110299792A CN 112988894 A CN112988894 A CN 112988894A
- Authority
- CN
- China
- Prior art keywords
- module
- distributed
- component
- hash
- data
- 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
Images
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
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于分布式可验证延迟函数的区块链共识系统和方法,包括分布式公有模N生成模块、可验证延迟函数计算模块和工作量证明模块;分布式公有模N生成模块的数据传输至可验证延迟函数计算模块,可验证延迟函数计算模块的数据传输至工作量证明模块。分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值,可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l),保证稳定的出块时间,不需要加入难度调整算法来减少潜在攻击的可能性。
Description
技术领域
本发明涉及区块链领域,更具体地,涉及一种基于分布式可验证延迟函数的区块链共识系统和方法。
背景技术
区块链的技术源自于比特币Bitcoin,具有巨大创新性和应用场景,很多人认为它是近20年来,最大的一次技术变革:解决了如何在一个公开的不可信没有中心节点的分布式网络环境下,如何达成共识的问题。
而构成区块链技术体系中最为重要的一点就是共识算法:区块链网络中,如何让不同节点达成共识。区块链目前主要的共识算法有PoW,PoS,DPoS,PBFT,基于VRF的共识等等。PoW是第一个也是区块链中目前应用最为广泛的共识算法,Bitcoin,Ethereum,Litecoin等都以此算法作为共识算法,其在大量算力的支持下,具有稳定,安全,去中心化的优良特性。
自从2013年引入用于哈希加速的ASIC以来,实际的POW区块链经历了总哈希率的爆炸性增长且波动很大。由于哈希率的爆炸性增长,目前大多数实用的区块链由矿池的代理所主导,使得记账的权利越来越集中在少数计算能力强大的矿工手中,有违中本聪最先提出的去中心化网络的构想。目前的基于工作量证明的区块链技术,一般无法实现稳定出块的特征,例如比特币设定每10分钟释放一个区块,但实际出块时间较不稳定。为了能保证出块时间的稳定,区块链需要增加一个难度调整算法DAA来保证。DAA的基本思想是根据区块链网络的计算能力(所谓的哈希率)来调整生成块的难度,跳跃式挖矿攻击利用了难度调整算法(DAA)在影响挖矿策略方面的弱点,使攻击者比诚实的矿工获得更多的奖励。
另一方面,可验证延迟函数是分布式计算中增加延迟的重要工具,即使在并行机上也需要一定的计算时间,但一旦计算出来,任何人都可以快速地验证输出。目前还没有ASIC可用于计算VDF,但已知的VDF中的参数初始化过程需要可信的第三方。如果将其用于区块链中,将会使区块链失去看似分散的特性。
现有的技术中,中国发明专利CN110730225A公开了“基于区块链的物联网的数据处理方法、物联网及存储介质”,公开日为2020年01月24日,当接收到终端信息数据时,第一共识节点根据终端信息数据生成数据区块,并将数据区块存储到数据区块链上;当接收到用户交易数据时,第二共识节点根据用户交易数据生成交易区块,并将交易区块存储到交易区块链上,通过将物联网中的终端信息数据基于工作量共识机制存储到数据区块链上,将用户交易数据基于实用拜占庭容错算法存储到交易区块链上,在物联网中采用混合共识机制,可以结合工作量共识机制的去中心化程度高的优点与拜占庭容错算法的共识效率高的优点,提高了基于区块链的物联网的共识安全水平和共识效率。该方案的重点是提高共识效率,没有稳定的出块时间,拜占庭容错算法无法减少潜在攻击可能性。
发明内容
本发明为解决目前大多数工作量共识算法不能保证稳定的出块时间,需要加入难度调整算法从而减少了潜在攻击可能性的技术缺陷,提供了一种基于分布式可验证延迟函数的区块链共识系统和方法。
为实现以上发明目的,采用的技术方案是:
一种基于分布式可验证延迟函数的区块链共识系统,包括分布式公有模N生成模块、可验证延迟函数计算模块和工作量证明模块;
所述分布式公有模N生成模块的数据传输至所述可验证延迟函数计算模块,所述可验证延迟函数计算模块的数据传输至所述工作量证明模块。
上述方案中,分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值,可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l),保证稳定的出块时间,不需要加入难度调整算法来减少潜在攻击的可能性。
优选的,所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块;
节点选择子模块的数据传输至所述生成分布式公有模N子模块,所述生成分布式公有模N子模块的数据传输至所述可验证延迟函数计算模块。
优选的,节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;
所述分布式筛选部件的数据传输至所述区块数据哈希部件,所述区块数据哈希部件的所述分布式公有模N计算部件,所述分布式公有模N计算部件的数据传输至所述素性检验部件。
优选的,所述可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件;
所述Setup算法部件的数据传输至所述Eval算法部件,所述Eval算法部件的数据传输至所述Verify算法部件。
优选的,所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块;
所述可验证延迟函数计算模块的数据传输至所述基于SHA256函数的哈希和Eval的生成子模块,所述基于SHA256函数的哈希和Eval的生成子模块的数据传输至所述基于SHA256函数哈希和Verify的验证子模块。
上述方案中,矿工节点在使用上一个区块数据、本地Nonce和基于RSA生成的分布式公有模N作为输入,求出其哈希值,直到找去满足小于等于难度值的情况。
找到小于等于难度值的情况后,使用其hash值的输出作为可验证延迟函数的Eval算法的输入,串行计算过程中保证区块生成时间是稳定的。
输入当前区块,从当前区块中提取出分布式公有模N和区块Nonce,同时验证当前区块的哈希值是否满足当前区块的难度要求。如果满足难度要求,则继续提取从Eval算法中生成的(Π,l),看输出结果是否为accept;如果不满足难度要求,则拒绝此区块。
普通节点将在Eval算法中生成的(Π,l)带入Verify算法中进行验证,如果输出的结果为accept,则接受此区块;如果输出的结果为reject,则拒绝此区块。
一种基于分布式可验证延迟函数的区块链共识方法,用于一种基于分布式可验证延迟函数的区块链共识系统,包括以下步骤:
S1:分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值;
S2:可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);
S3:工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l)。
优选的,在步骤S1中,所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块,节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;其包括以下步骤:
S11:分布式筛选部件使用分布式筛选算法,使每个节点i能够挑选随机份额pi,并保证p不能被小素数整除,这方法不会泄露任何节点的信息,各个节点对服务器中p的共享一无所知;
S12:区块数据哈希部件向可验证延迟函数计算模块输出区块头;
S13:分布式公有模N计算部件为每个节点设置一个秘密pi和qi,计算乘积N=(p1+...+pk)·(q1+...+qk),不透露关于他们的任何信息;
S14:素性检验部件使用Miller-Rabin素性检验来确定N是否可能是素数。
优选的,在步骤S2中,可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件,所述Setup算法部件对分布式公有模N生成模块输出的N和区块头的哈希值作为输入,然后利用Eval算法部件计算出可验证的(Π,l),之后用Verify算法部件进行验证。
优选的,所述Setup算法部件包括以下算法:
Setup(λ,t)→pp=(ek,vk)
根据安全参数λ以及时间参数t,生成一个公共参数pp,公共参数pp包含了用于计算的参数ek和用于验证的参数vk。
所述Eval算法部件包括以下算法:
Eval(ek,x)→(l,π)
根据计算参数ek和输入x∈X,计算出输出l∈L和证明π。
所述Verify算法部件包括以下算法:
Verify(vk,x,l,π)→{accept,reject}
根据vk,x,l以及π,输出accept或者reject,accept表示验证通过,reject表示验证失败。
优选的,在步骤S3中,所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块;
基于SHA256函数的哈希和Eval的生成子模块求解分布式公有模N的输出,具体过程为:N作为输入,和区块头一起求解哈希值,输出为Hash=Hsha256(N,块头);
基于SHA256函数哈希和Verify的验证子模块验证Hash是否满足小于等于难度的目标值,不满足时,Nonce递增,Nonce=Nonce+1,并重新验证,直到求解出满足工作量证明的解,然后通过Verify进行验证。
上述方案中,在区块生成的每一轮过程中,每个节点可以直接选择两个随机整数pi和qi,使用分布式筛选算法来提高性能。分布式筛选使每个节点能够挑选随机份额pi,并保证p=(p1+.....+pk)不能被小素数整除。这一点很重要,因为该方法不会泄露任何信息,节点对属于其他服务器的p的共享一无所知。
首先每个节点i在[1,...,M]范围内选取一个随机整数ai,使得ai相对质数为M。
使用经典筛选技术:该节点选取介于1和M之间的随机整数r,然后初始化一个表示整数r,r+1,r+2,...,r+30的小布尔数组。对于M的每个小素数除数,它在数组中循环,并划掉可被该素数整除的元素。最后,它将ai设置为第一个未被划掉的条目。如果所有条目都被划掉,则重新启动该过程,并选择一个新的随机ai;
由于每个ai是相对于M素数的随机整数,所以它们的乘积a=a1··akmod M也是相对于M素数的随机整数,将a的这种乘性共享转化为加性共享。更准确地说,每个服务器应该获得范围为[0,...,M]的私有bi,使得a=b1+...+bkmod M。任何关于a的信息都不应该泄露。
最后,每个节点i在范围[0;2n/M]中随机选取一个ri,并设置pi=riM+bi。显然,p=p1+.....+pk≡a mod M,因此p不能被任何小的素因数整除。
矿工节点根据每个节点求出的pi值对分布式公有模N进行生成。每个节点都有一个秘密pi,qi。计算乘积N=(p1+...+pk)·(q1+...+qk),不透露关于私有股份的任何信息。
首先设d=[k-1/2]对于所有i=1,…,k,节点i选取两个随机次d多项式fi,gi∈Zp[x],满足fi(0)=pi和gi(0)=qi,换言之,将fi,gi的常量项设置为pi,qi,并且随机选择所有其他系数。此外,每个节点i选取满足hi(0)=0的随机次2d多项式hi∈Zp[x];
每个节点i都有j=1,…,k的所有<pi,j,qi,j,hi,j>。节点i计算:
节点i广播Ni给所有其他节点。
最后,每个节点j具有对于j=1,…,k的所有值Ni。设α(X)是多项式
每个节点求值α(0),得到N mod P,使用Miller-Rabin素性检验来确定N是否可能是素数。N实际上是两个整数或可能素数的乘积,Miller-Rabin素性检验是为了确保N不容易被分解,虽然通过检验的N可以被小的因子分解,但是这样的整数的密度非常小。
上述方案中,将父区块、Merkle Tree的根hash值、RSA的公有模N和Nonce值作为输入,计算SHA256的哈希值,如果值的结果满足小于等于目标值,则进行下一步的分布式可验证延迟函数计算;否则将Nonce的值加1,Nonce=Nonce+1。反复计算验证直到SHA256(Hashof Father Block|Root of Merkle Tree|RSA Modulus N|Nonce)≤Target为止。
将满足难度目标值的hash值作为输入,在可验证延迟函数的计算模块中串行计算Eval函数,目的是保证区块生成时间不会有太大的波动,Eval(ek,x)→(l,π)接受计算参数ek和输入x∈X,计算出输出l∈L和证明π。分布式可验证延迟函数的计算过程如下所示:
a.Setup(λ,t)→pp=(ek,vk)接受安全参数λ以及时间参数t,生成一个公共参数pp,这个参数是所有人都可以看到的。公共参数pp包含了一个用于计算的参数ek和一个用于验证的参数vk。
算法设置(λ,T)输出两个对象:
-未知阶的有限阿贝尔群G;
-可高效计算的散列函数H,其中H:X→G,我们将其建模为随机预言。
设置公共参数pp,其中pp:=(G,H,T)。具体地说,区块链中的矿工节点分布式的可验证函数生成位长为λ的RSA公模N。对于任意m个∈{0,1}*,令Hprime(M)=next_prime(H(M))返回大于或等于H(M)的最接近素数。
b.Eval(pp,x)→(l,π)接受计算参数ek和输入x∈X,计算出输出l∈L和证明π。
Eval(pp,x)定义如下:
-通过计算G中从H(x)开始的T平方来计算y←H(x)2^T∈G。
-计算证明π。
-output(l,π)。
evaluation采用输入T∈N和m∈{0,1}*,然后计算x=H(m)并解决挑战y=x2^TmodN。如果评估者知道Φ(N),则可以减少该计算,因为y=x2^Tmod N=x2^T modΦ(N)mod N,降低了幂运算成本。
然后通过计算l=Hprime(x+y)开始证明,然后计算π=x[2^T/l]mod N。在此阶段结束时,评估者可以公开使用(l,π)对作为计算证明。
c.Verify(vk,x,l,π)→{accept,reject}接受vk,x,l以及π,输出accept(验证通过)或者reject(验证失败)。
验证器将(m,T,l,π)作为输入,计算x=H(x)和r=2Tmodl,然后计算y’=πl·xrmodN,最后检查Hprime(x+y’)是否等于l。
与现有技术相比,本发明的有益效果是:
本发明提供的一种基于分布式可验证延迟函数的区块链共识系统和方法,分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值,可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l),保证稳定的出块时间,不需要加入难度调整算法来减少潜在攻击的可能性。
附图说明
图1为本发明的模块示意图;
图2为本发明的方法流程图;
图3为本发明的分布式公有模N的生成系统结构示意图;
图4为本发明的工作量证明的系统结构示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图1所示,一种基于分布式可验证延迟函数的区块链共识系统,包括分布式公有模N生成模块、可验证延迟函数计算模块和工作量证明模块;
所述分布式公有模N生成模块的数据传输至所述可验证延迟函数计算模块,所述可验证延迟函数计算模块的数据传输至所述工作量证明模块。
上述方案中,分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值,可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l),保证稳定的出块时间,不需要加入难度调整算法来减少潜在攻击的可能性。
优选的,所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块;
节点选择子模块的数据传输至所述生成分布式公有模N子模块,所述生成分布式公有模N子模块的数据传输至所述可验证延迟函数计算模块。
优选的,节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;
所述分布式筛选部件的数据传输至所述区块数据哈希部件,所述区块数据哈希部件的数据传输至所述分布式公有模N计算部件,所述分布式公有模N计算部件的数据传输至所述素性检验部件。
优选的,所述可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件;
所述Setup算法部件的数据传输至所述Eval算法部件,所述Eval算法部件的数据传输至所述Verify算法部件。
优选的,所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块;
所述可验证延迟函数计算模块的数据传输至所述基于SHA256函数的哈希和Eval的生成子模块,所述基于SHA256函数的哈希和Eval的生成子模块的所述基于SHA256函数哈希和Verify的验证子模块数据传输至。
实施例2
如图2所示,一种基于分布式可验证延迟函数的区块链共识方法,用于一种基于分布式可验证延迟函数的区块链共识系统,包括以下步骤:
S1:分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值;
S2:可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);
S3:工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l)。
优选的,在步骤S1中,所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块,节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;其包括以下步骤:
S11:分布式筛选部件使用分布式筛选算法,使每个节点i能够挑选随机份额pi,并保证p不能被小素数整除,这方法不会泄露任何节点的信息,各个节点对服务器中p的共享一无所知;
S12:区块数据哈希部件向可验证延迟函数计算模块输出区块头;
S13:分布式公有模N计算部件为每个节点设置一个秘密pi和qi,计算乘积N=(p1+...+pk)·(q1+...+qk),不透露关于他们的任何信息;
S14:素性检验部件使用Miller-Rabin素性检验来确定N是否可能是素数。
优选的,在步骤S2中,可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件,所述Setup算法部件对分布式公有模N生成模块输出的N和区块头的哈希值作为输入,然后利用Eval算法部件计算出可验证的(Π,l),之后用Verify算法部件进行验证。
优选的,所述Setup算法部件包括以下算法:
Setup(λ,t)→pp=(ek,vk)
根据安全参数λ以及时间参数t,生成一个公共参数pp,公共参数pp包含了用于计算的参数ek和用于验证的参数vk。
所述Eval算法部件包括以下算法:
Eval(ek,x)→(l,π)
根据计算参数ek和输入x∈X,计算出输出l∈L和证明π。
所述Verify算法部件包括以下算法:
Verify(vk,x,l,π)→{accept,reject}
根据vk,x,l以及π,输出accept或者reject,accept表示验证通过,reject表示验证失败。
优选的,在步骤S3中,所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块;
基于SHA256函数的哈希和Eval的生成子模块求解分布式公有模N的输出,具体过程为:N作为输入,和区块头一起求解哈希值,输出为Hash=Hsha256(N,块头);
基于SHA256函数哈希和Verify的验证子模块验证Hash是否满足小于等于难度的目标值,不满足时,Nonce递增,Nonce=Nonce+1,并重新验证,直到求解出满足工作量证明的解,然后通过Verify进行验证。
实施例3
如图3所示,在区块生成的每一轮过程中,每个节点可以直接选择两个随机整数pi和qi,使用分布式筛选算法来提高性能。分布式筛选使每个节点能够挑选随机份额pi,并保证p=(p1+.....+pk)不能被小素数整除。这一点很重要,因为该方法不会泄露任何信息,节点对属于其他服务器的p的共享一无所知。
首先每个节点i在[1,...,M]范围内选取一个随机整数ai,使得ai相对质数为M。
使用经典筛选技术:该节点选取介于1和M之间的随机整数r,然后初始化一个表示整数r,r+1,r+2,...,r+30的小布尔数组。对于M的每个小素数除数,它在数组中循环,并划掉可被该素数整除的元素。最后,它将ai设置为第一个未被划掉的条目。如果所有条目都被划掉,则重新启动该过程,并选择一个新的随机ai;
由于每个ai是相对于M素数的随机整数,所以它们的乘积a=a1··akmod M也是相对于M素数的随机整数,将a的这种乘性共享转化为加性共享。更准确地说,每个服务器应该获得范围为[0,...,M]的私有bi,使得a=b1+...+bkmod M。任何关于a的信息都不应该泄露。
最后,每个节点i在范围[0;2n/M]中随机选取一个ri,并设置pi=riM+bi。显然,p=p1+.....+pk≡a mod M,因此p不能被任何小的素因数整除。
矿工节点根据每个节点求出的pi值对分布式公有模N进行生成。每个节点都有一个秘密pi,qi。计算乘积N=(p1+...+pk)·(q1+...+qk),不透露关于私有股份的任何信息。
首先设d=[k-1/2]对于所有i=1,…,k,节点i选取两个随机次d多项式fi,gi∈Zp[x],满足fi(0)=pi和gi(0)=qi,换言之,将fi,gi的常量项设置为pi,qi,并且随机选择所有其他系数。此外,每个节点i选取满足hi(0)=0的随机次2d多项式hi∈Zp[x];
每个节点i都有j=1,…,k的所有<pi,j,qi,j,hi,j>。节点i计算:
节点i广播Ni给所有其他节点。
最后,每个节点j具有对于j=1,…,k的所有值Ni。设α(X)是多项式
每个节点求值α(0),得到N mod P,使用Miller-Rabin素性检验来确定N是否可能是素数。N实际上是两个整数或可能素数的乘积,Miller-Rabin素性检验是为了确保N不容易被分解,虽然通过检验的N可以被小的因子分解,但是这样的整数的密度非常小。
实施例4
如图4所示,将父区块、Merkle Tree的根hash值、RSA的公有模N和Nonce值作为输入,计算SHA256的哈希值,如果值的结果满足小于等于目标值,则进行下一步的分布式可验证延迟函数计算;否则将Nonce的值加1,Nonce=Nonce+1。反复计算验证直到SHA256(Hashof Father Block|Root of Merkle Tree|RSA Modulus N|Nonce)≤Target为止。
将满足难度目标值的hash值作为输入,在可验证延迟函数的计算模块中串行计算Eval函数,目的是保证区块生成时间不会有太大的波动,Eval(ek,x)→(l,π)接受计算参数ek和输入x∈X,计算出输出l∈L和证明π。分布式可验证延迟函数的计算过程如下所示:
d.Setup(λ,t)→pp=(ek,vk)接受安全参数λ以及时间参数t,生成一个公共参数pp,这个参数是所有人都可以看到的。公共参数pp包含了一个用于计算的参数ek和一个用于验证的参数vk。
算法设置(λ,T)输出两个对象:
-未知阶的有限阿贝尔群G;
-可高效计算的散列函数H,其中H:X→G,我们将其建模为随机预言。
设置公共参数pp,其中pp:=(G,H,T)。具体地说,区块链中的矿工节点分布式的可验证函数生成位长为λ的RSA公模N。对于任意m个∈{0,1}*,令Hprime(M)=next_prime(H(M))返回大于或等于H(M)的最接近素数。
e.Eval(pp,x)→(l,π)接受计算参数ek和输入x∈X,计算出输出l∈L和证明π。
Eval(pp,x)定义如下:
-通过计算G中从H(x)开始的T平方来计算y←H(x)2^T∈G。
-计算证明π。
-output(l,π)。
evaluation采用输入T∈N和m∈{0,1}*,然后计算x=H(m)并解决挑战y=x2^T modN。如果评估者知道Φ(N),则可以减少该计算,因为y=x2^T mod N=x2^T modΦ(N)mod N,降低了幂运算成本。
然后通过计算l=Hprime(x+y)开始证明,然后计算π=x[2^T/l]mod N。在此阶段结束时,评估者可以公开使用(l,π)对作为计算证明。
f.Verify(vk,x,l,π)→{accept,reject}接受vk,x,l以及π,输出accept(验证通过)或者reject(验证失败)。
验证器将(m,T,l,π)作为输入,计算x=H(x)和r=2Tmodl,然后计算y’=πl·xrmodN,最后检查Hprime(x+y’)是否等于l。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,包括分布式公有模N生成模块、可验证延迟函数计算模块和工作量证明模块;
所述分布式公有模N生成模块的数据传输至可验证延迟函数计算模块,所述可验证延迟函数计算模块的数据传输至所述工作量证明模块。
2.根据权利要求1所述的一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块;
节点选择子模块的的数据传输至所述生成分布式公有模N子模块,所述生成分布式公有模N子模块的输的数据传输至所述可验证延迟函数计算模块。
3.根据权利要求2所述的一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;
所述分布式筛选部件的的数据传输至所述区块数据哈希部件,所述区块数据哈希部件的的数据传输至所述分布式公有模N计算部件,所述分布式公有模N计算部件的的数据传输至所述素性检验部件。
4.根据权利要求1所述的一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,所述可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件;
所述Setup算法部件的的数据传输至所述Eval算法部件,所述Eval算法部件的的数据传输至所述Verify算法部件。
5.根据权利要求1所述的一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块;
所述可验证延迟函数计算模块的数据传输至所述基于SHA256函数的哈希和Eval的生成子模块,所述基于SHA256函数的哈希和Eval的生成子模块的数据传输至所述基于SHA256函数哈希和Verify的验证子模块。
6.一种基于分布式可验证延迟函数的区块链共识方法,用于权利要求5所述的一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,包括以下步骤:
S1:分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值;
S2:可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);
S3:工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l)。
7.根据权利要求6所述的一种基于分布式可验证延迟函数的区块链共识方法,其特征在于,在步骤S1中,所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块,节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;其包括以下步骤:
S11:分布式筛选部件使用分布式筛选算法,使每个节点i能够挑选随机份额pi,并保证p不能被小素数整除,这方法不会泄露任何节点的信息,各个节点对服务器中p的共享一无所知;
S12:区块数据哈希部件向可验证延迟函数计算模块输出区块头;
S13:分布式公有模N计算部件为每个节点设置一个秘密pi和qi,计算乘积N=(p1+...+pk)·(q1+...+qk),不透露关于他们的任何信息;
S14:素性检验部件使用Miller-Rabin素性检验来确定N是否可能是素数。
8.根据权利要求7所述的一种基于分布式可验证延迟函数的区块链共识方法,其特征在于,在步骤S2中,可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件,所述Setup算法部件对分布式公有模N生成模块输出的N和区块头的哈希值作为输入,然后利用Eval算法部件计算出可验证的(Π,l),之后用Verify算法部件进行验证。
9.根据权利要求8所述的一种基于分布式可验证延迟函数的区块链共识协议系统,其特征在于,所述Setup算法部件包括以下算法:
Setup(λ,t)→pp=(ek,vk)
根据安全参数λ以及时间参数t,生成一个公共参数pp,公共参数pp包含了用于计算的参数ek和用于验证的参数vk。
所述Eval算法部件包括以下算法:
Eval(ek,x)→(l,π)
根据计算参数ek和输入x∈X,计算出输出l∈L和证明π。
所述Verify算法部件包括以下算法:
Verify(vk,x,l,π)→{accept,reject}
根据vk,x,l以及π,输出accept或者reject,accept表示验证通过,reject表示验证失败。
10.根据权利要求9所述的一种基于分布式可验证延迟函数的区块链共识协议系统,其特征在于,在步骤S3中,所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块;
基于SHA256函数的哈希和Eval的生成子模块求解分布式公有模N的输出,具体过程为:N作为输入,和区块头一起求解哈希值,输出为Hash=Hsha256(N,块头);
基于SHA256函数哈希和Verify的验证子模块验证Hash是否满足小于等于难度的目标值,不满足时,Nonce递增,Nonce=Nonce+1,并重新验证,直到求解出满足工作量证明的解,然后通过Verify进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110299792.7A CN112988894B (zh) | 2021-03-22 | 2021-03-22 | 一种基于分布式可验证延迟函数的区块链共识系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110299792.7A CN112988894B (zh) | 2021-03-22 | 2021-03-22 | 一种基于分布式可验证延迟函数的区块链共识系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988894A true CN112988894A (zh) | 2021-06-18 |
CN112988894B CN112988894B (zh) | 2023-07-07 |
Family
ID=76334196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110299792.7A Active CN112988894B (zh) | 2021-03-22 | 2021-03-22 | 一种基于分布式可验证延迟函数的区块链共识系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988894B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134359A (zh) * | 2022-05-06 | 2022-09-30 | 桂林电子科技大学 | 抗并行挖矿和公开可验证出块权的区块链共识机制及系统 |
CN115643043A (zh) * | 2022-09-09 | 2023-01-24 | 北京航空航天大学 | 一种基于验证延迟函数的跨链共识选举方法及系统 |
CN116980189A (zh) * | 2023-07-19 | 2023-10-31 | 苏州大学 | 一种面向分片联盟链的恶意节点检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909083A (zh) * | 2019-12-03 | 2020-03-24 | 北京艾摩瑞策科技有限公司 | 区块链上可验证随机函数的共识方法及其系统 |
CN111371768A (zh) * | 2020-02-27 | 2020-07-03 | 浙江超脑时空科技有限公司 | 共识处理方法、验证发起节点、验证节点、设备和介质 |
CN111600709A (zh) * | 2020-05-26 | 2020-08-28 | 牛津(海南)区块链研究院有限公司 | 可验证随机数的生成方法和装置 |
WO2020229925A1 (en) * | 2019-05-16 | 2020-11-19 | nChain Holdings Limited | Systems and methods for mining on a proof-of-work blockchain network |
-
2021
- 2021-03-22 CN CN202110299792.7A patent/CN112988894B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020229925A1 (en) * | 2019-05-16 | 2020-11-19 | nChain Holdings Limited | Systems and methods for mining on a proof-of-work blockchain network |
CN113841149A (zh) * | 2019-05-16 | 2021-12-24 | 区块链控股有限公司 | 用于在工作量证明区块链网络上进行挖掘的系统和方法 |
CN110909083A (zh) * | 2019-12-03 | 2020-03-24 | 北京艾摩瑞策科技有限公司 | 区块链上可验证随机函数的共识方法及其系统 |
CN111371768A (zh) * | 2020-02-27 | 2020-07-03 | 浙江超脑时空科技有限公司 | 共识处理方法、验证发起节点、验证节点、设备和介质 |
CN111600709A (zh) * | 2020-05-26 | 2020-08-28 | 牛津(海南)区块链研究院有限公司 | 可验证随机数的生成方法和装置 |
Non-Patent Citations (2)
Title |
---|
MUCHUANG HU等: "A Jumping Mining Attack and Solution", 《ARXIV:2008.08184V1》, pages 1 - 14 * |
QIANWEN WANG;RONGQUAN FENG;YAN ZHU;: "Verifiable random functions with Boolean function constraints", SCIENCE CHINA(INFORMATION SCIENCES), no. 03, pages 243 - 245 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134359A (zh) * | 2022-05-06 | 2022-09-30 | 桂林电子科技大学 | 抗并行挖矿和公开可验证出块权的区块链共识机制及系统 |
CN115134359B (zh) * | 2022-05-06 | 2024-03-19 | 桂林电子科技大学 | 抗并行挖矿和公开可验证出块权的区块链共识机制及系统 |
CN115643043A (zh) * | 2022-09-09 | 2023-01-24 | 北京航空航天大学 | 一种基于验证延迟函数的跨链共识选举方法及系统 |
CN115643043B (zh) * | 2022-09-09 | 2024-04-19 | 北京航空航天大学 | 一种基于验证延迟函数的跨链共识选举方法及系统 |
CN116980189A (zh) * | 2023-07-19 | 2023-10-31 | 苏州大学 | 一种面向分片联盟链的恶意节点检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112988894B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112988894A (zh) | 一种基于分布式可验证延迟函数的区块链共识系统和方法 | |
Bellare et al. | Multi-signatures in the plain public-key model and a general forking lemma | |
Yavuz et al. | BAF: An efficient publicly verifiable secure audit logging scheme for distributed systems | |
EP0596945A1 (en) | Digital signature algorithm | |
TWI836066B (zh) | 用以於工作量證明區塊鏈網路上挖礦之系統及方法 | |
US20140201535A1 (en) | Incorporating data into an ecdsa signature component | |
CN111724145A (zh) | 一种区块链系统分片协议的设计方法 | |
Khalifa et al. | Quantum attacks and defenses for proof-of-stake | |
CN111245625A (zh) | 无证书聚合的数字签名方法 | |
US20220385484A1 (en) | Lightweight post-quantum authentication | |
GB2450574A (en) | Batch verification of multiple signature data | |
Bittl | Efficient construction of infinite length hash chains with perfect forward secrecy using two independent hash functions | |
Huang et al. | Partially blind ECDSA scheme and its application to bitcoin | |
Xiong | Toward certificateless signcryption scheme without random oracles | |
Boudgoust et al. | Overfull: Too large aggregate signatures based on lattices | |
Wang et al. | Threshold undeniable RSA signature scheme | |
Al Ebri et al. | Forward-Secure Identity-Based Signature: New Generic Constructions and Their Applications. | |
Jakobsson et al. | Efficient oblivious proofs of correct exponentiation | |
CN113507366B (zh) | 一种基于格的可搜索日志盲签名方案 | |
CN107359982A (zh) | 抗代内/间攻击的同态签名方法 | |
Chen et al. | CCA-secure IB-KEM from identity-based extractable hash proof system | |
Lv et al. | Ring authenticated encryption: a new type of authenticated encryption | |
Mittal et al. | An efficient procedure for online/offline ID‐based signature using extended chaotic maps and group ring | |
Tang et al. | On non-parallelizable deterministic client puzzle scheme with batch verification modes | |
CN111049656B (zh) | 一种基于ecdlp的工作量证明方法 |
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 |