CN112988894B - 一种基于分布式可验证延迟函数的区块链共识系统和方法 - Google Patents

一种基于分布式可验证延迟函数的区块链共识系统和方法 Download PDF

Info

Publication number
CN112988894B
CN112988894B CN202110299792.7A CN202110299792A CN112988894B CN 112988894 B CN112988894 B CN 112988894B CN 202110299792 A CN202110299792 A CN 202110299792A CN 112988894 B CN112988894 B CN 112988894B
Authority
CN
China
Prior art keywords
module
distributed
hash
delay function
algorithm
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
CN202110299792.7A
Other languages
English (en)
Other versions
CN112988894A (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.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
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 Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN202110299792.7A priority Critical patent/CN112988894B/zh
Publication of CN112988894A publication Critical patent/CN112988894A/zh
Application granted granted Critical
Publication of CN112988894B publication Critical patent/CN112988894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于分布式可验证延迟函数的区块链共识系统和方法,包括分布式公有模N生成模块、可验证延迟函数计算模块和工作量证明模块;分布式公有模N生成模块的数据传输至可验证延迟函数计算模块,可验证延迟函数计算模块的数据传输至工作量证明模块。分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值,可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(Π,l);工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(Π,l),保证稳定的出块时间,不需要加入难度调整算法来减少潜在攻击的可能性。

Description

一种基于分布式可验证延迟函数的区块链共识系统和方法
技术领域
本发明涉及区块链领域,更具体地,涉及一种基于分布式可验证延迟函数的区块链共识系统和方法。
背景技术
现有的技术中,中国发明专利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=1,...,k,节点i计算
Figure GDA0004242474550000041
Pi,j=fi(j),qij=gi(j),hi,j=hi(j)节点i。然后针对所有j!=i私下将三元组<pi,j,qi,j,hi,j>发送到节点j;
每个节点i都有j=1,…,k的所有<pi,j,qi,j,hi,j>。节点i计算:
Figure GDA0004242474550000042
节点i广播Ni给所有其他节点。
最后,每个节点j具有对于j=1,…,k的所有值Ni。设α(X)是多项式
Figure GDA0004242474550000043
每个节点求值α(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^T mod 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=1,...,k,节点i计算
Figure GDA0004242474550000093
Pi,j=fi(j),qi,j=gi(j),hi,j=hi(j)节点i。然后针对所有j!=i私下将三元组<pi,j,qi,j,hi,j>发送到节点j;
每个节点i都有j=1,…,k的所有<pi,j,qi,j,hi,j>。节点i计算:
Figure GDA0004242474550000091
节点i广播Ni给所有其他节点。
最后,每个节点j具有对于j=1,…,k的所有值Ni。设α(X)是多项式
Figure GDA0004242474550000092
每个节点求值α(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 (6)

1.一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,包括分布式公有模N生成模块、可验证延迟函数计算模块和工作量证明模块;
所述分布式公有模N生成模块的数据传输至可验证延迟函数计算模块,所述可验证延迟函数计算模块的数据传输至所述工作量证明模块;
所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块;
节点选择子模块的数据传输至所述生成分布式公有模N子模块,所述生成分布式公有模N子模块的输的数据传输至所述可验证延迟函数计算模块;
节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;素性检验部件使用Miller-Rabin素性检验来确定N是否可能是素数;
分布式筛选部件使用分布式筛选算法,使每个节点i能够挑选随机份额pi,并保证pi不能被小素数整除,这方法不会泄露任何节点的信息,各个节点对服务器中pi的共享一无所知;
区块数据哈希部件向可验证延迟函数计算模块输出区块头;
分布式公有模N计算部件为每个节点设置一个秘密pi和qi,计算乘积N=(p1+...+pk)·(q1+...+qk),不透露关于他们的任何信息;
所述分布式筛选部件的数据传输至所述区块数据哈希部件,所述区块数据哈希部件的数据传输至所述分布式公有模N计算部件,所述分布式公有模N计算部件的数据传输至所述素性检验部件;
所述可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件;
所述Setup算法部件的数据传输至所述Eval算法部件,所述Eval算法部件的数据传输至所述Verify算法部件;
所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块;
所述可验证延迟函数计算模块的数据传输至所述基于SHA256函数的哈希和Eval的生成子模块,所述基于SHA256函数的哈希和Eval的生成子模块的数据传输至所述基于SHA256函数哈希和Verify的验证子模块。
2.一种基于分布式可验证延迟函数的区块链共识方法,用于权利要求1所述的一种基于分布式可验证延迟函数的区块链共识系统,其特征在于,包括以下步骤:
S1:分布式公有模N生成模块生成分布式公有模N和输出区块头的哈希值;
所述分布式公有模N生成模块包括节点选择子模块和生成分布式公有模N子模块,节点选择子模块包括分布式筛选部件和区块数据哈希部件,所述生成分布式公有模N子模块包括分布式公有模N计算部件和素性检验部件;
S2:可验证延迟函数计算模块对分布式公有模N和区块头的哈希值作为输入,然后计算出可验证的(l,π);
可验证延迟函数计算模块包括Setup算法部件、Eval算法部件和Verify算法部件;
S3:工作量证明模块对分布式公有模N和区块头使用SHA256哈希函数求解哈希值,求解当前解的哈希是否满足难度证明,并验证(l,π);
所述工作量证明模块包括基于SHA256函数的哈希和Eval的生成子模块、基于SHA256函数哈希和Verify的验证子模块。
3.根据权利要求2所述的一种基于分布式可验证延迟函数的区块链共识方法,其特征在于,在步骤S1中,其包括以下步骤:
S11:分布式筛选部件使用分布式筛选算法,使每个节点i能够挑选随机份额pi,并保证pi不能被小素数整除,这方法不会泄露任何节点的信息,各个节点对服务器中pi的共享一无所知;
S12:区块数据哈希部件向可验证延迟函数计算模块输出区块头;
S13:分布式公有模N计算部件为每个节点设置一个秘密pi和qi,计算乘积N=(p1+...+pk)·(q1+...+qk),不透露关于他们的任何信息;
S14:素性检验部件使用Miller-Rabin素性检验来确定N是否可能是素数。
4.根据权利要求3所述的一种基于分布式可验证延迟函数的区块链共识方法,其特征在于,在步骤S2中,所述Setup算法部件对分布式公有模N生成模块输出的N和区块头的哈希值作为输入,然后利用Eval算法部件计算出可验证的(l,π),之后用Verify算法部件进行验证。
5.根据权利要求4所述的一种基于分布式可验证延迟函数的区块链共识方法,其特征在于,所述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表示验证失败。
6.根据权利要求5所述的一种基于分布式可验证延迟函数的区块链共识方法,其特征在于,在步骤S3中,
基于SHA256函数的哈希和Eval的生成子模块求解分布式公有模N的输出,具体过程为:N作为输入,和区块头一起求解哈希值,输出为Hash=Hsha256(N,块头);
基于SHA256函数哈希和Verify的验证子模块验证Hash是否满足小于等于难度的目标值,不满足时,Nonce递增,Nonce=Nonce+1,并重新验证,直到求解出满足工作量证明的解,然后通过Verify进行验证。
CN202110299792.7A 2021-03-22 2021-03-22 一种基于分布式可验证延迟函数的区块链共识系统和方法 Active CN112988894B (zh)

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 CN112988894A (zh) 2021-06-18
CN112988894B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134359B (zh) * 2022-05-06 2024-03-19 桂林电子科技大学 抗并行挖矿和公开可验证出块权的区块链共识机制及系统
CN115643043B (zh) * 2022-09-09 2024-04-19 北京航空航天大学 一种基于验证延迟函数的跨链共识选举方法及系统
CN116980189A (zh) * 2023-07-19 2023-10-31 苏州大学 一种面向分片联盟链的恶意节点检测方法

Citations (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
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)

* Cited by examiner, † Cited by third party
Title
A Jumping Mining Attack and Solution;Muchuang Hu等;《arXiv:2008.08184v1》;1-14 *
Verifiable random functions with Boolean function constraints;Qianwen WANG;Rongquan FENG;Yan ZHU;;Science China(Information Sciences)(第03期);243-245 *

Also Published As

Publication number Publication date
CN112988894A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN112988894B (zh) 一种基于分布式可验证延迟函数的区块链共识系统和方法
Li et al. Universal accumulators with efficient nonmembership proofs
Baron et al. 5pm: Secure pattern matching
US20150156019A1 (en) Elliptic Curve Random Number Generation
US8572385B2 (en) System and method for optimal verification of operations on dynamic sets
Sander Efficient accumulators without trapdoor extended abstract
US11979499B2 (en) Systems and methods for mining on a Proof-of-Work blockchain network
CN111724145B (zh) 一种区块链系统分片协议的设计方法
CN112541821A (zh) 一种具有动态信任的委托权益证明共识算法
US20220172180A1 (en) Method for Storing Transaction that Represents Asset Transfer to Distributed Network and Program for Same
US20080320557A1 (en) Batch verification device, program and batch verification method
CN112887096B (zh) 用于签名和密钥交换的素数阶椭圆曲线生成方法及系统
Nikolay Digital signature scheme based on a new hard problem
Sengupta et al. Publicly verifiable secure cloud storage for dynamic data using secure network coding
Jakobsson et al. Efficient oblivious proofs of correct exponentiation
Orman Recent parables in cryptography
Lin et al. A DL based short strong designated verifier signature scheme with low computation
Hastings et al. The proof is in the pudding: Proofs of work for solving discrete logarithms
Chow Multi-Designated Verifiers Signatures Revisited.
Bickson et al. Peer-to-peer secure multi-party numerical computation
TWI836066B (zh) 用以於工作量證明區塊鏈網路上挖礦之系統及方法
Chen et al. An efficient certificateless short designated verifier signature scheme
Wang et al. Designated confirmer signatures with unified verification
Chatterjee et al. Chrisimos: A useful Proof-of-Work for finding Minimal Dominating Set of a graph
Choi et al. The Kurosawa–Desmedt key encapsulation is not chosen-ciphertext secure

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