【技术实现步骤摘要】
一种具有抗量子特性的区块链工作量证明方法和系统
本专利技术涉及区块链的
,更具体地,涉及一种具有抗量子特性的区块链工作量证明方法和系统。
技术介绍
区块链的技术具有巨大创新性和应用场景,它主要解决了在一个公开的、不可信、没有中心节点的分布式网络环境下,如何达成共识的问题。构成区块链技术体系中最重要的一环就是共识算法,即在区块链网络中,如何让不同节点达成共识。区块链目前主要有PoW、PoS、DPo、PBFT和基于VRF的共识算法。工作量证明(PoW)是第一个也是区块链中应用最为广泛的共识算法,其在大量算力的支持下,具有稳定、安全、去中心化的优良特性。工作量证明是基于CPU挖矿的,使每个人都有平等的权利获取记账权,从而达到去中心化的目的。然而随着GPU、FPGA和ASIC矿机(如比特大陆的蚂蚁矿机S7、S9等)的出现,挖矿计算能力越来越集中,记账的权利也越来越集中在少数计算能力强大的矿工手中,有违去中心化网络的构想。为了解决算力过于集中的问题,后续提出的工作量证明所基于的哈希算法一般都具有内存困难属性,使得构造相关的ASIC芯片代价高昂。另外,区块链技术具有的透明性、冗余性和问责性的能力是通过公钥加密和哈希函数提供的。但随着量子计算的飞速发展,基于Grover和Shor(格罗弗和舒尔)算法对公钥密码学和散列函数构成潜在攻击,目前现有的区块链系统还不具有抗量子计算攻击特性,区块链数据的隐私和安全面临重大威胁。2020年6月12日公开的中国专利CN111275552A提供了一种基于区块链的数据处理方法、装置、计 ...
【技术保护点】
1.一种具有抗量子特性的区块链工作量证明方法,其特征在于,所述方法包括以下步骤:/nS1:收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;/nS2:利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;/nS3:对多元二次方程组求解,获得解输出;/nS4:基于多元二次方程组的解输出,获得该多元二次方程组的哈希函数;/nS5:利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值;/nS6:利用最小难度值计算多元二次方程组的哈希函数的解;/nS7:验证哈希函数的解是否满足工作量证明条件;若不满足,令初始Nonce值加1作为新的初始Nonce值代入步骤S1,重复步骤S1-S6,直到计算出的多元二次方程组的哈希函数的解满足工作量证明条件;若满足,将当前Nonce值和解输出打包到当前区块,将当前区块向区块链中其他节点广播;/nS8:区块链中其他节点收到广播后,验证当前区块包含的当前Nonce值和解输出是否满足工作量证明,同时验证交易的合法性;若均满足,则将当 ...
【技术特征摘要】
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/...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。