抗量子攻击的区块链PoW共识方法、系统及存储介质

专利2023-04-07  17


抗量子攻击的区块链pow共识方法、系统及存储介质
技术领域
1.本技术涉及区块链技术领域,更具体地,涉及一种抗量子攻击的区块链pow共识方法、系统及存储介质。


背景技术:

2.在去中心化的区块链系统中,无需中心化的记账机构来保证每一笔交易在所有记账节点上的一致性,即让全网达成共识。区块链系统通过共识机制来解决记账信息的一致性问题。pow(proof of work),即工作量证明,是比特币中使用的共识机制,也是目前许多数字货币系统(如ethereum、litecoin、dogecoin等)中用到的共识算法。通俗地说,在目前的pow共识机制中,共识节点使用有计算能力的设备来进行哈希计算,这个计算的过程就是工作量,通过不断地计算来得出一个符合区块链系统要求的哈希值,这就是所谓的解题。当有共识节点率先求解成功,那么该共识节点就可以获得记账权,由其添加新区块并获得系统奖励;而其他共识节点则对新区块及内含的记账信息进行验证,若无误则接受新区块,从而实现全网记账信息的一致性。pow的目标是找出一个符合特定条件的答案,这个答案很难计算出来,但容易被验证。这就是工作量证明的核心要求。
3.随着量子计算机的快速发展,现有的区块链运行机制也受到巨大挑战。比如大多数区块链系统所采用的椭圆曲线数字签名方案ecdsa,量子计算机有针对ecdsa签名算法非常高效的shor攻击算法,shor算法适用于解决大整数分解、离散对数求逆等困难数学问题,导致ecdsa签名算法在量子计算机攻击下相当不安全。而区块链pow机制所采用的哈希求解方案,量子计算机现阶段针对哈希算法最有效的攻击方法是grover算法,该算法可以将对哈希算法的攻击复杂度从o(2n)降为o(2n/2),但是通过增加哈希算法的输出长度目前仍可以有效抵抗该种攻击。另外,除了量子计算机攻击威胁外,学术界针对哈希算法的传统攻击破解研究也层出不穷,因此仅仅依靠哈希算法很可能在未来难以继续保障区块链系统的安全运行,亟需一种新的能够抵御量子计算机攻击的pow机制。


技术实现要素:

4.针对现有技术的至少一个缺陷或改进需求,本发明提供了一种抗量子攻击的区块链pow共识方法、系统及存储介质,可以提高区块链系统的安全性。
5.为实现上述目的,按照本发明的第一个方面,提供了一种抗量子攻击的区块链pow共识方法,包括:
6.共识节点从区块链系统获取pow期望时间值和pow难度值,pow难度值包括方程组难度值和哈希目标值,基于方程组难度值生成二次多项式方程组并求解,求解方程组成功的共识节点将方程组的解、pow难度值和随机数填充进区块头,并对区块头进行双重哈希运算,调整区块头内的随机数直至双重哈希运算的结果值小于或等于哈希目标值,双重哈希运算成功的共识节点将其区块头和区块体组成的区块向其他共识节点广播,其他共识节点基于区块头内pow难度值和随机数对区块进行验证;
7.根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值,根据调整后的pow难度值进行下一周期的pow共识。
8.进一步地,所述根据一个周期的实际平均pow共识时间和pow期望时间值调整pow难度值包括:
9.若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值小于第一预设值,则只调整哈希目标值;
10.若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值大于第二预设值,则调整方程组难度值和哈希目标值。
11.进一步地,所述根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值还包括:
12.若调整pow难度值后,下一个周期的期望方程组求解时间与期望双重哈希运算的时间比小于第三预设值或大于第四预设值,则继续调整pow难度值,直至下一周期的期望方程组求解时间与期望双重哈希运算的时间比在预设范围内。
13.进一步地,所述只调整哈希目标值的计算公式为:
[0014][0015]
t’为下一周期的哈希目标值,t为当前周期的哈希目标值,t为当前周期平均实际平均pow共识时间,当前周期的期望方程组求解时间与期望双重哈希运算的时间比为a/b。
[0016]
进一步地,所述调整方程组难度值和哈希目标值的计算公式为:
[0017][0018]
t’为下一周期的哈希目标值,t为当前周期的哈希目标值,t为当前周期平均实际平均pow共识时间,当前周期的期望方程组求解时间与期望双重哈希运算的时间比为a/b,δ表示下一周期多变量方程组难度调整幅度。
[0019]
进一步地,所述基于方程组难度值生成二次多项式方程组并求解包括:
[0020]
方程组难度值包括方程数m、变量数n,获取当前的混沌映射函数参数,该混沌映射函数参数定期被更新,根据当前的混沌映射函数参数生成(n(n+1)/2+n+1)
×
m个多变量方程组系数,根据生成的多变量方程组系数生成包含m个方程和n个变量的二次多项式方程组并求解。
[0021]
进一步地,全网节点每一轮投票选出p个确认委员会节点,其中包括1个主节点和p-1个副节点,主节点每隔若干个区块后进行轮换,双重哈希运算成功的共识节点将其区块头和区块体组成的区块发给主节点,所述其他共识节点基于区块头内pow难度值和随机数对区块进行验证包括:
[0022]
主节点基于区块头内pow难度值和随机数对该区块进行pow确认和区块内容合法性确认,确认无误后将该区块和“已确认”信息广播给p-1个副节点,p-1个副节点分别基于区块头内pow难度值和随机数确认该区块无误后分别广播“已确认”信息给主节点和其他副节点,当每个确认委员会节点收到预设比例以上的“已确认”信息时,该区块被确认并写入区块链,同时向全网广播该区块。
[0023]
按照本发明的第二个方面,还提供了一种抗量子攻击的区块链pow共识系统,包括若干个共识节点,共识节点间采用的pow共识方法包括:
[0024]
共识节点从区块链系统获取pow期望时间值和pow难度值,pow难度值包括方程组难度值和哈希目标值,基于方程组难度值生成随机的二次多项式方程组并求解,求解方程组成功的共识节点将方程组的解、pow难度值和一个随机数填充进区块头,并对该区块头进行双重哈希运算,调整该区块头内的随机数直至双重哈希运算的结果值小于或等于哈希目标值,双重哈希运算成功的共识节点将其区块头和区块体组成的区块向其他共识节点广播,并向其他共识节点广播,其他共识节点基于区块头内pow难度值和随机数对所述区块进行验证;
[0025]
根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值,根据调整后的pow难度值进行下一周期的pow共识。
[0026]
进一步地,所述根据一个周期的实际平均pow共识时间调整pow难度值包括:
[0027]
若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值小于第一预设值,则只调整哈希目标值;
[0028]
若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值大于第二预设值,则调整方程组难度值和哈希目标值;
[0029]
若调整pow难度值后,下一个周期的期望方程组求解时间与期望双重哈希运算的时间比小于第三预设值或大于第四预设值,则继续调整pow难度值,直至下一周期的期望方程组求解时间与期望双重哈希运算的时间比在预设范围内。
[0030]
按照本发明的第三个方面,还提供了一种存储介质,其存储有可由处理器执行的计算机程序,当所述计算机程序在处理器上运行时,使得处理器执行上述任一项所述方法的步骤。
[0031]
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0032]
(1)基于多变量二次多项式方程组求解方案能够抵抗量子计算机的破解攻击,具有很高的安全性,并且通过动态调整多变量方程组求解和哈希求解的难度,可以实现对共识时间的精细调整。
[0033]
(2)工作量证明系统的确认过程采用了确定性共识机制,与非确定性共识(概率性共识)机制相比,极大地提升了共识速度。
附图说明
[0034]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]
图1为本技术实施例提供的一种抗量子攻击的区块链pow共识方法的流程示意图;
[0036]
图2为本技术实施例提供的区块示意图;
[0037]
图3为本技术实施例提供的pow共识确认的原理示意图;
[0038]
图4为本技术实施例提供的区块验证的原理示意图。
具体实施方式
[0039]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0040]
本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或模块。
[0041]
如图1所示,本发明实施例的一种抗量子攻击的区块链pow共识方法,包括:(1)共识节点从区块链系统获取pow期望时间值和pow难度值,pow难度值包括方程组难度值和哈希目标值,基于方程组难度值生成二次多项式方程组并求解,求解方程组成功的共识节点将方程组的解、pow难度值和随机数填充进区块头,并对该区块头进行双重哈希运算,调整该区块头内的随机数直至双重哈希运算的结果值小于或等于哈希目标值,双重哈希运算成功的共识节点将其区块头和区块体组成的区块向其他共识节点广播,并向其他共识节点广播;(2)其他共识节点基于区块头内pow难度值和随机数对区块进行验证;(3)根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值,根据调整后的pow难度值进行下一周期的pow共识。
[0042]
下面具体说明每个步骤的优选实现方式。
[0043]
步骤(1)包括以下子步骤:
[0044]
(1.1)区块链系统设置并定期调整pow相关参数。例如设置pow期望时间(即区块生成时间)为10分钟,以10080分钟(一周)为一个调整周期;定期调整pow难度值(包括变量数n、方程数m、哈希目标值t)。区块链系统还定期调整混沌映射函数参数。
[0045]
(1.2)共识节点开始组装新区块。区块结构如图2所示,由区块头和区块体构成。
[0046]
区块体内包含已经过共识节点验证的交易记录及相关信息。
[0047]
区块头内包含“多变量方程组解”、“随机数”、“难度值”、“其他信息”四部分。“难度值”中包含多变量方程组难度值“变量数n和方程数m”和“哈希目标值t”。
[0048]“其他信息”包括“父区块头哈希值”、“时间戳”、“merkle根哈希值”等在进行pow共识前就已获得的信息,这里统称为“其他信息”。
[0049]
(1.3)共识节点从区块链系统获取pow难度值相关参数,并填入区块头“难度值”部分。
[0050]
(1.4)共识节点对区块头“其他信息”进行sha256(一种密码散列函数算法标准)哈希运算,得到哈希值hs。
[0051]
(1.5)共识节点基于区块链系统给出的多变量方程组难度值“变量数n和方程数m”以及混沌映射函数参数,代入哈希值hs生成多变量方程组。
[0052]
区块链系统规定使用有限域gf(2)域来构造多变量方程组。gf(2)域内的元素值为(0,1),在gf(2)域内的各项运算可以通过取模(mod 2)使得结果保持为0或者1。
[0053]
有n个变量的二次多项式f的格式如下所示,其中a、b、c三类系数的数量加起来为:
n(n+1)/2+n+1。
[0054][0055]
m个二次多项式f可以组成多变量二次多项式方程组,如式(1)所示:
[0056][0057]
因此,共识节点在求解式(1)的多变量方程组前,需要先生成(n(n+1)/2+n+1)
×
m个多变量方程组系数。
[0058]
共识节点使用混沌映射函数来随机生成所需的多变量方程组系数。为了加强安全性,区块链系统会定期随机更新混沌映射函数类型及相关参数。
[0059]
在本例中使用logistic混沌映射函数来随机生成多变量方程组系数。如式(2)所示:
[0060]
x
i+1
=μxi(1-xi)i=1,2,3...(2)
[0061]
其中μ∈(3.5699,4],初值x1∈(0,1),为随机选取的参数,区块链系统会定期进行更新(重新选取参数值),以保证系统的安全性。
[0062]
在本例中,共识节点令式(2)中的i=hs,即用区块头“其他信息”的哈希值hs来确定logistic混沌映射函数从第几次迭代开始生成随机的多变量方程组系数。这样根据区块头的“其他信息”和“难度值”就可以随时生成相同的多变量方程组系数,以便进行pow确认。
[0063]
由于logistic混沌映射函数生成的系数都是小于1的小数,而多变量方程组中的系数只会为0或者1。所以,在随机系数生成完后,还需要对这些系数进行变换。
[0064]
如在本例中,logistic混沌映射函数以float类型变量进行计算,生成系数后再根据小数点后第一位(即十分位)的奇偶性对该系数加以变换。若该系数的小数点后第一位为奇数,则该系数变为1;若该系数的小数点后第一位为偶数,则该系数变为0。
[0065]
比如,设当前计算出的x
i+1
=0.74324560000,其小数点后第一位为7,是奇数,那么按照上述规则x
i+1
=1。
[0066]
从而生成符合要求的随机多变量方程组系数。
[0067]
相关伪代码如下:
[0068][0069][0070]
(1.6)共识节点求解多变量方程组,若成功则把解填入区块头“多变量方程组解”部分。
[0071]
共识节点依序生成(n(n+1)/2+n+1)
×
m个多变量方程组系数后,对多变量方程组进行求解。即求得一组(x1,...,xn),使得式(1)成立。若求解成功则把(x1,...,xn)填入区块头“多变量方程组解”部分。
[0072]
相关伪代码如下:
[0073][0074][0075]
为了便于理解,简单举例如下:
[0076]
设n=3,m=2,那么需要生成(3
×
(3+1)/2+3+1)
×
2共计20个方程组系数,0值系数不显示,那么可以获得示例方程组如下:
[0077][0078]
对示例方程组求解,可以得到(x1=1,x2=1,x3=1)即为“多变量方程组解”(把解代入方程组,可得6mod 2=0)。
[0079]
(1.7)共识节点把一个随机值填入区块头“随机数”部分,并对整个区块头进行双重sha256哈希运算(即sha256(sha256(block_header)))。
[0080]
(1.8)共识节点将双重哈希结果值与“哈希目标值t”做对比,如果小于或等于目标值t,则取得对新区块的记账权。否则,继续调整“随机数”部分,直到满足条件。
[0081]
相关伪代码如下:
[0082][0083]
如图3所示,步骤(2)中区块验证优选使用一种“确认委员会”机制来实现对新区块的快速确认。全网节点每一周期(如每天)投票选出p个确认委员会节点,其中包括1个主节点,p-1个副节点,当前主节点确认过若干个区块后,进行轮换,换一个副节点成为新的主节
点,任何节点都有机会被选为主节点。取得记账权的共识节点把新区块发给主节点,主节点对新区块进行pow确认和常规区块内容合法性确认等,确认无误后把新区块和“已确认”信息广播给p-1个副节点,p-1个副节点在同样pow确认新区块无误后分别广播“已确认”信息给主节点和其他副节点。当每个确认委员会节点收到3p/4个以上“已确认”信息时(包含节点自身的“已确认”信息),新区块被确认并写入该节点的区块链,同时向全网广播新区块,全网其他节点不必再次确认,直接达成共识,新区块中包含的交易能够快速生效。本确认方案具有一定的鲁棒性,即便有1/4的确认委员会节点是恶意节点或失效节点,依然能够完成确认过程。
[0084]
基于区块头内的“多变量方程组解”和“随机数”信息,确认委员会节点可以快速确认新区块是否满足pow共识条件。
[0085]
如图4所示,主节点和副节点进行pow确认过程如下:
[0086]
(2.1)确认委员会节点根据区块头的“其他信息”和“难度值”,按照步骤(1.5)的方法生成对应的多变量方程组。
[0087]
(2.2)确认委员会节点把区块头的“多变量方程组解”代入生成的多变量方程组,若是正解则继续下一步,若否则拒绝该区块。
[0088]
(2.3)确认委员会节点对整个区块头进行双重哈希,若双重哈希结果值小于或等于哈希目标值t,则承认该区块满足pow共识条件;若否则拒绝该区块。
[0089]
在上述pow确认过程中,哈希运算、混沌映射函数、多变量方程组的生成及验解都只需要很低的时间复杂度,因此能够快速实现对新区块的pow确认。同时,与比特币等区块链确认机制相比,本确认方案中的“确认委员会”机制是一种确定性共识方案,不需要进行全网确认,能够避免非确定性共识方案中存在的分叉问题,因此在新区块被确认后其区块内包含的交易就可以立刻生效(而比特币机制需要等待6个区块被确认后交易才能生效),具有很高的整体执行效率。
[0090]
步骤(3)中,区块链系统设置并定期调整pow难度值的具体实现如下。
[0091]
(3.1)设置pow初始难度值。假设设置pow期望时间(即区块生成时间)为10分钟,以10080分钟(一周)为一个调整周期。根据当前全网平均算力,区块链系统对多变量方法和哈希方法进行模拟测试,并基于某个初始期望比例给出初始多变量方程组难度值和哈希目标值。比如设置初始期望比例为2:1(理想值),那么系统给出的初始难度值会使得多变量方法求解时间期望为6.67分钟,哈希方法求解时间期望为3.33分钟,合起来仍为10分钟。在之后的每个新周期,都会重新计算期望比例。
[0092]
(3.2)多变量方程组难度值“变量数n和方程数m”的调整原则。
[0093]
如果要调整多变量方程组的难度,不能只增减变量数n或者只增减方程数m。因为涉及到一个问题:当方程数m大于变量数n时,方程对变量的限制条件过多,这是一个超定方程组,超定方程组一般不存在解;当方程数m小于变量数n时,这是一个欠定方程组,欠定方程组通常有解。因此,只增减变量数n或者只增减方程数m会影响方程组的结构,导致求解难度复杂化。
[0094]
本发明实施例在调整多变量方程组的难度时,选择的是同时增减变量数n和方程数m,这样就不会改变方程组的结构;并规定m《n,保证多变量方程组是一个欠定方程组(当m和n取值较大时,多变量方程组不仅具备较高的抗量子攻击能力,并且只在理论上有无解可
能)。同时使用的有限域是gf(2),即变量值只会是0或者1这两种情况,所以同时增减变量数n和方程数m会使得求解难度加倍或者减半(比如增加1个变量,n变成n+1,那么求解难度从2n变成2n+1)。调整多变量方程组所对应的难度变化幅度较大,因此需要结合哈希方法实现对pow难度的微调。
[0095]
(3.3)哈希目标值调整方法。
[0096]
由于哈希方法的目标是找到小于哈希目标值的数,所以哈希目标值越小,求解难度越高。设当前周期生成的所有区块的实际平均pow共识时间为t,当前周期多变量方法求解期望时间与哈希求解期望时间比例为a:b。
[0097]
1)若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值小于第一预设值,则只调整哈希目标值;
[0098]
对于只调整哈希目标值的情况,计算公式为:
[0099][0100]
2)若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值大于第二预设值,则调整方程组难度值和哈希目标值。
[0101]
对于同时调整多变量方程组难度值和哈希目标值的情况,计算公式为:
[0102][0103]
t’为下一个周期的哈希目标值,t为当前周期的哈希目标值,δ表示下一周期多变量方程组难度调整幅度,例如若当前周期的实际平均pow共识时间与pow期望时间值的差值大于第二预设值,δ=1/2,若pow期望时间值与当前周期的实际平均pow共识时间的差大于第二预设值,δ=2。
[0104]
(3.4)具体调整方案。计算当前周期的实际平均共识时间。如果实际平均共识时间大于等于为7.5分钟且小于15分钟([7.5,15)),则只调整哈希目标值。如果实际平均共识时间小于7.5分钟或大于等于15分钟,则同时调整多变量方程组难度值和哈希目标值。
[0105]
比如当前周期实际平均共识时间等于9分钟,当前周期期望比例a:b为2:1,那么对应的多变量方法求解时间期望为6分钟,哈希方法求解时间期望为3分钟,则单独调整哈希目标值(即当前周期哈希目标值*(3/4)),使得哈希方法求解时间期望为4分钟。同时下一周期的期望比例a:b变为3:2。。
[0106]
又比如当前周期实际平均共识时间等于15分钟,当前周期期望比例a:b为3:2,那么对应的多变量方法求解时间期望为9分钟,哈希方法求解时间期望为6分钟,则将多变量方法的“变量数n和方程数m”都减1,使得多变量方法求解时间期望为4.5分钟;同时调整哈希目标值(即当前周期哈希目标值*(6/5.5)),使得哈希方法求解时间期望为5.5分钟。同时下一周期的期望比例a:b变为4.5:5.5。
[0107]
(3.5)特殊调整。若调整pow难度值后,下一个周期的期望方程组求解时间与期望双重哈希运算的时间比小于第三预设值或大于第四预设值,则继续调整pow难度值,直至下一周期的期望方程组求解时间与期望双重哈希运算的时间比在预设范围内。
[0108]
因为调整哈希目标值以实现微调的频率相对较高,有可能出现一直调高或者调低哈希方法求解时间期望的极限情况,这样会使得期望比例过低或过高。期望比例过低则发挥不出多变量方法抗量子攻击的优势,期望比例过低则难以实现哈希方法的微调能力。因此,例如当下一周期期望比例小于或等于1:2时,重新调整其比例为2:1;当下一周期期望比例大于等于9:1时,重新调整其比例为4.5:5.5。
[0109]
比如调整难度值后下一周期期望比例为1:2,那么对应的多变量方法求解时间期望为3.33分钟,哈希方法求解时间期望为6.67分钟,则将多变量方法的“变量数n和方程数m”都加1,使得多变量方法求解时间期望为6.67分钟;同时调整哈希目标值(即本周期哈希目标值*(6.67/3.33)),使得哈希方法求解时间期望为3.33分钟。即将下一周期的期望比例又更新为2:1。
[0110]
本发明实施例的一种抗量子攻击的区块链pow共识系统,包括若干个共识节点,共识节点间采用的pow共识方法包括:共识节点从区块链系统获取pow期望时间值和pow难度值,pow难度值包括方程组难度值和哈希目标值,基于方程组难度值生成随机的二次多项式方程组并求解,求解方程组成功的共识节点将方程组的解、pow难度值和一个随机数填充进区块头,并对该区块头进行双重哈希运算,调整该区块头内的随机数直至双重哈希运算的结果值小于或等于哈希目标值,双重哈希运算成功的共识节点将其区块头和区块体组成的区块向其他共识节点广播,并向其他共识节点广播,其他共识节点基于区块头内pow难度值和随机数对所述区块进行验证;根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值,根据调整后的pow难度值进行下一周期的pow共识。
[0111]
系统的实现原理和上述方法类似,此处不再赘述。
[0112]
本技术还提供一种存储介质,其存储有可由处理器执行的计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述任一项上述抗量子攻击的的区块链pow共识方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、dvd、cd-rom、微型驱动器以及磁光盘、rom、ram、eprom、eeprom、dram、vram、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic),或适合于存储指令和/或数据的任何类型的媒介或设备。
[0113]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0114]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0115]
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
[0116]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0117]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种抗量子攻击的区块链pow共识方法,其特征在于,包括:共识节点从区块链系统获取pow期望时间值和pow难度值,pow难度值包括方程组难度值和哈希目标值,基于方程组难度值生成二次多项式方程组并求解,求解方程组成功的共识节点将方程组的解、pow难度值和随机数填充进区块头,并对区块头进行双重哈希运算,调整区块头内的随机数直至双重哈希运算的结果值小于或等于哈希目标值,双重哈希运算成功的共识节点将其区块头和区块体组成的区块向其他共识节点广播,其他共识节点基于区块头内pow难度值和随机数对区块进行验证;根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值,根据调整后的pow难度值进行下一周期的pow共识。2.如权利要求1所述的区块链pow共识方法,其特征在于,所述根据一个周期的实际平均pow共识时间和pow期望时间值调整pow难度值包括:若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值小于第一预设值,则只调整哈希目标值;若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值大于第二预设值,则调整方程组难度值和哈希目标值。3.如权利要求2所述的区块链pow共识方法,其特征在于,所述根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值还包括:若调整pow难度值后,下一个周期的期望方程组求解时间与期望双重哈希运算的时间比小于第三预设值或大于第四预设值,则继续调整pow难度值,直至下一周期的期望方程组求解时间与期望双重哈希运算的时间比在预设范围内。4.如权利要求2所述的区块链pow共识方法,其特征在于,所述只调整哈希目标值的计算公式为:t’为下一周期的哈希目标值,t为当前周期的哈希目标值,t为当前周期平均实际平均pow共识时间,当前周期的期望方程组求解时间与期望双重哈希运算的时间比为a/b。5.如权利要求2所述的区块链pow共识方法,其特征在于,所述调整方程组难度值和哈希目标值的计算公式为:t’为下一周期的哈希目标值,t为当前周期的哈希目标值,t为当前周期平均实际平均pow共识时间,当前周期的期望方程组求解时间与期望双重哈希运算的时间比为a/b,δ表示下一周期多变量方程组难度调整幅度。6.如权利要求1所述的区块链pow共识方法,其特征在于,所述基于方程组难度值生成二次多项式方程组并求解包括:方程组难度值包括方程数m、变量数n,获取当前的混沌映射函数参数,该混沌映射函数参数定期被更新,根据当前的混沌映射函数参数生成(n(n+1)/2+n+1)
×
m个多变量方程组
系数,根据生成的多变量方程组系数生成包含m个方程和n个变量的二次多项式方程组并求解。7.如权利要求1所述的区块链pow共识方法,其特征在于,全网节点每一轮投票选出p个确认委员会节点,其中包括1个主节点和p-1个副节点,主节点每隔若干个区块后进行轮换,双重哈希运算成功的共识节点将其区块头和区块体组成的区块发给主节点,所述其他共识节点基于区块头内pow难度值和随机数对区块进行验证包括:主节点基于区块头内pow难度值和随机数对该区块进行pow确认和区块内容合法性确认,确认无误后将该区块和“已确认”信息广播给p-1个副节点,p-1个副节点分别基于区块头内pow难度值和随机数确认该区块无误后分别广播“已确认”信息给主节点和其他副节点,当每个确认委员会节点收到预设比例以上的“已确认”信息时,该区块被确认并写入区块链,同时向全网广播该区块。8.一种抗量子攻击的区块链pow共识系统,包括若干个共识节点,其特征在于,共识节点间采用的pow共识方法包括:共识节点从区块链系统获取pow期望时间值和pow难度值,pow难度值包括方程组难度值和哈希目标值,基于方程组难度值生成随机的二次多项式方程组并求解,求解方程组成功的共识节点将方程组的解、pow难度值和一个随机数填充进区块头,并对该区块头进行双重哈希运算,调整该区块头内的随机数直至双重哈希运算的结果值小于或等于哈希目标值,双重哈希运算成功的共识节点将其区块头和区块体组成的区块向其他共识节点广播,并向其他共识节点广播,其他共识节点基于区块头内pow难度值和随机数对所述区块进行验证;根据当前周期的实际平均pow共识时间和pow期望时间值调整pow难度值,根据调整后的pow难度值进行下一周期的pow共识。9.如权利要求8所述的区块链pow共识系统,其特征在于,所述根据一个周期的实际平均pow共识时间调整pow难度值包括:若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值小于第一预设值,则只调整哈希目标值;若当前周期的实际平均pow共识时间与pow期望时间值的差的绝对值大于第二预设值,则调整方程组难度值和哈希目标值;若调整pow难度值后,下一个周期的期望方程组求解时间与期望双重哈希运算的时间比小于第三预设值或大于第四预设值,则继续调整pow难度值,直至下一周期的期望方程组求解时间与期望双重哈希运算的时间比在预设范围内。10.一种存储介质,其特征在于,其存储有计算机程序,当所述计算机程序在处理器上运行时,使得所述处理器执行权利要求1~7任一项所述方法的步骤。

技术总结
本申请公开了一种抗量子攻击的区块链PoW共识方法、系统及存储介质。该方法包括:获取PoW期望时间值和PoW难度值,PoW难度值包括方程组难度值和哈希目标值,基于方程组难度值生成二次多项式方程组并求解,求解方程组成功的共识节点将方程组的解、PoW难度值和随机数填充进区块头,并对区块头进行双重哈希运算,调整区块头内的随机数直至双重哈希运算的结果值小于或等于哈希目标值,双重哈希运算成功的共识节点将其区块头和区块体组成的区块向其他共识节点广播,其他共识节点基于区块头内PoW难度值和随机数对区块进行验证;根据当前周期的实际平均PoW共识时间调整下一周期的PoW难度值。本发明可以提高区块链系统的安全性。性。


技术研发人员:李汝佳 刘云霞 刘思
受保护的技术使用者:郑州师范学院
技术研发日:2022.08.09
技术公布日:2022/12/2
转载请注明原文地址: https://bbs.8miu.com/read-332678.html

最新回复(0)