一种具有抗量子特性的区块链工作量证明方法和系统技术方案

技术编号:29330567 阅读:10 留言:0更新日期:2021-07-20 17:48
本发明专利技术提供一种具有抗量子特性的区块链工作量证明方法和系统,所述方法包括:收集区块链内历史区块的数据,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;利用种子数生成随机数序列,确定方程组参数,生成多元二次方程组;对多元二次方程组求解,基于解输出,获得多元二次方程组的哈希函数;利用难度调整算法确定当前区块需满足的最小难度值;计算多元二次方程组的哈希函数的解并验证是否满足工作量证明条件;若不满足,令初始Nonce值加1重新生成多元二次方程组并对其求解,直到其满足工作量证明条件;满足条件后,其他节点对当前Nonce值和解输出进行工作量证明和交易合法性验证,均满足时,将当前区块上链区块链。

【技术实现步骤摘要】
一种具有抗量子特性的区块链工作量证明方法和系统
本专利技术涉及区块链的
,更具体地,涉及一种具有抗量子特性的区块链工作量证明方法和系统。
技术介绍
区块链的技术具有巨大创新性和应用场景,它主要解决了在一个公开的、不可信、没有中心节点的分布式网络环境下,如何达成共识的问题。构成区块链技术体系中最重要的一环就是共识算法,即在区块链网络中,如何让不同节点达成共识。区块链目前主要有PoW、PoS、DPo、PBFT和基于VRF的共识算法。工作量证明(PoW)是第一个也是区块链中应用最为广泛的共识算法,其在大量算力的支持下,具有稳定、安全、去中心化的优良特性。工作量证明是基于CPU挖矿的,使每个人都有平等的权利获取记账权,从而达到去中心化的目的。然而随着GPU、FPGA和ASIC矿机(如比特大陆的蚂蚁矿机S7、S9等)的出现,挖矿计算能力越来越集中,记账的权利也越来越集中在少数计算能力强大的矿工手中,有违去中心化网络的构想。为了解决算力过于集中的问题,后续提出的工作量证明所基于的哈希算法一般都具有内存困难属性,使得构造相关的ASIC芯片代价高昂。另外,区块链技术具有的透明性、冗余性和问责性的能力是通过公钥加密和哈希函数提供的。但随着量子计算的飞速发展,基于Grover和Shor(格罗弗和舒尔)算法对公钥密码学和散列函数构成潜在攻击,目前现有的区块链系统还不具有抗量子计算攻击特性,区块链数据的隐私和安全面临重大威胁。2020年6月12日公开的中国专利CN111275552A提供了一种基于区块链的数据处理方法、装置、计算机设备和存储介质。该方法包括:接收到继承备选区块的继承默克尔根哈希值,并将继承默克尔根哈希值添加到底层链的底层备选区块的区块体的币基交易数据中;根据币基交易数据生成底层链的底层默克尔根哈希值,并将底层默克尔根哈希值添加到底层备选区块的区块头中;根据底层备选区块的区块头进行算账处理,得到底层备选区块对应的哈希结果值;根据所述哈希结果值和所述继承难度阈值确定目标继承区块并进行广播。采用该方法能够实现区块链的算力继承,中小型区块链项目的算力低于大型区块链项目的算力导致的网络安全问题。但是该专利技术的数据处理方法基于工作量证明和哈希算法,仍具有内存困难属性,无法同时包含节点的计算量和内存;另外该方法仅能使小型区块链面对大型区块链的算力攻击时,保障自身安全,无法面对量子计算攻击。
技术实现思路
本专利技术为克服上述现有区块链工作量证明系统无法同时包含节点的计算量和内存、不具有抗量子计算攻击特性的缺陷,提供一种具有抗量子特性的区块链工作量证明方法和系统,使区块链工作量证明系统同时包含节点的计算量和内存,且具有抗量子计算攻击特性,确保了区块链数据的隐私和安全。为解决上述技术问题,本专利技术的技术方案如下:本专利技术提供一种具有抗量子特性的区块链工作量证明方法,所述方法包括以下步骤:S1:收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;S2:利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;S3:对多元二次方程组求解,获得解输出(x1,x2,…,xn),其中xn表示多元二次方程的第n个解;S4:基于多元二次方程组的解输出(x1,x2,…,xn),获得该多元二次方程组的哈希函数Hash=Hsha256(x1,x2,…,xn),其中Hsha256(·)表示sha256运算;S5:利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值D;S6:利用最小难度值D计算多元二次方程组的哈希函数Hash=Hsha256(x1,x2,…,xn)的解Sha256(x1,x2,…,xn);S7:验证哈希函数的解Sha256(x1,x2,…,xn)是否满足工作量证明条件;若不满足,令初始Nonce值加1作为新的初始Nonce值代入步骤S1,重复步骤S1-S6,直到计算出的多元二次方程组的哈希函数的解满足工作量证明条件;若满足,将当前Nonce值和解输出(x1,x2,…,xn)打包到当前区块,将当前区块向区块链中其他节点广播;S8:区块链中其他节点收到广播的当前区块后,验证其包含的当前Nonce值和解输出是否满足工作量证明,同时验证交易的合法性;若均满足,则将当前区块作为最新区块链接到区块链,否则拒绝当前区块上链。优选地,所述S1中,历史区块的数据包括时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值、哈希值、交易脚本和交易签名;所述时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值和哈希值被记录于区块的区块头,所述交易脚本和交易签名被记录于区块的区块体。优选地,所述S2中,生成多元二次方程组的具体方法为:设定变量数为n,方程数为m,生成的随机数序列包含的随机数个数为n2/2×m+n×m+m+m,为使方程组有唯一解,令m=n,则随机数个数为n3/2+(n+2)×n,生成的方程组为:其中,xi表示第i个需要求解的变量向量,i=1,…,n;xj表示第j个需要求解的变量向量,j=1,…,n;ck、dk为对应的多元二次方程组参数,i=1,…,n,j=1,…,n,k=1,…,m。优选地,所述S3中,利用基于Grobner基的F4、F5求解算法对多元二次方程组求解。优选地,所述S7中,验证哈希函数的解是否满足工作量证明条件具体方法为:设定当前区块需要满足的最小工作量对应的哈希值PowLimit,比较哈希函数的解Sha256(x1,x2,…,xn)与PowLimit/D的大小,若Sha256(x1,x2,…,xn)≤PowLimit/D,则Sha256(x1,x2,…,xn)满足工作量证明条件;若Sha256(x1,x2,…,xn)>PowLimit/D,则Sha256(x1,x2,…,xn)不满足工作量证明条件。本专利技术还提供一种具有抗量子特性的区块链工作量证明系统,所述系统包括数据收集及种子生成单元、方程组生成单元、方程组求解单元、哈希函数生成单元、难度生成求解单元和工作量证明单元;所述数据收集及种子生成单元,用于收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;所述方程组生成单元,利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;所述方程组求解单元,用于对多元二次方程组求解,获得解输出;所述哈希函数生成单元,基于多元二次方程组的解输出,获得该多元二次方程组的哈希函数;所述难度生成求解单元,利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值,并利用最小难度值计算多元二次方程组的哈希函数的解;所述工作量证明单元,用于验证哈希函数的解是否满足工作量证明条件。优本文档来自技高网
...

【技术保护点】
1.一种具有抗量子特性的区块链工作量证明方法,其特征在于,所述方法包括以下步骤:/nS1:收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;/nS2:利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;/nS3:对多元二次方程组求解,获得解输出;/nS4:基于多元二次方程组的解输出,获得该多元二次方程组的哈希函数;/nS5:利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值;/nS6:利用最小难度值计算多元二次方程组的哈希函数的解;/nS7:验证哈希函数的解是否满足工作量证明条件;若不满足,令初始Nonce值加1作为新的初始Nonce值代入步骤S1,重复步骤S1-S6,直到计算出的多元二次方程组的哈希函数的解满足工作量证明条件;若满足,将当前Nonce值和解输出打包到当前区块,将当前区块向区块链中其他节点广播;/nS8:区块链中其他节点收到广播后,验证当前区块包含的当前Nonce值和解输出是否满足工作量证明,同时验证交易的合法性;若均满足,则将当前区块作为最新区块链接到区块链,否则拒绝当前区块上链。/n...

【技术特征摘要】
1.一种具有抗量子特性的区块链工作量证明方法,其特征在于,所述方法包括以下步骤:
S1:收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;
S2:利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;
S3:对多元二次方程组求解,获得解输出;
S4:基于多元二次方程组的解输出,获得该多元二次方程组的哈希函数;
S5:利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值;
S6:利用最小难度值计算多元二次方程组的哈希函数的解;
S7:验证哈希函数的解是否满足工作量证明条件;若不满足,令初始Nonce值加1作为新的初始Nonce值代入步骤S1,重复步骤S1-S6,直到计算出的多元二次方程组的哈希函数的解满足工作量证明条件;若满足,将当前Nonce值和解输出打包到当前区块,将当前区块向区块链中其他节点广播;
S8:区块链中其他节点收到广播后,验证当前区块包含的当前Nonce值和解输出是否满足工作量证明,同时验证交易的合法性;若均满足,则将当前区块作为最新区块链接到区块链,否则拒绝当前区块上链。


2.根据权利要求1所述的具有抗量子特性的区块链工作量证明方法,其特征在于,所述S1中,历史区块的数据包括每个区块的时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值、哈希值、交易脚本和交易签名;所述时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值和哈希值被记录于区块的区块头,所述交易脚本和交易签名被记录于区块的区块体。


3.根据权利要求2所述的具有抗量子特性的区块链工作量证明方法,其特征在于,所述S2中,生成多元二次方程组的具体方法为:
设定变量数为n,方程数为m,生成的随机数序列包含的随机数个数为n2/2×m+n×m+m+m,为使方程组有唯一解,令m=n,则随机数个数为n3/2+(n+2)×n,生成的方程组为:



其中,xi表示第i个需要求解的变量向量,i=1,…,n;xj表示第j个需要求解的变量向量,j=1,…,n;ck、dk为对应的多元二次方程组参数,i=1,…,n,j=1,…,n,k=1,…,m。


4.根据权利要求3所述的具有抗量子特性的区块链工作量证明方法,其特征在于,所述S3中,利用基于Grobner基的F4、F5求解算法对多元二次方程组求解。


5.根据权利要求4所述的具有抗量子特性的区块链工作量证明方法,其特征在于,所述S7中,验证哈希函数的解是否满足工作量证明条件具体方法为:设定当前区块需要满足的最小工作量对应的哈希值PowLimit,比较哈希函数的解Sha256(x1,x2,…,xn)与PowLimit/D的大小,若Sha256(x1,x2,…,xn)≤PowLimit/...

【专利技术属性】
技术研发人员:周赛星陈家辉
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1