首页> 中国专利> 一种具有抗量子特性的区块链工作量证明方法和系统

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

摘要

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

著录项

  • 公开/公告号CN113139016A

    专利类型发明专利

  • 公开/公告日2021-07-20

    原文格式PDF

  • 申请/专利权人 广东工业大学;

    申请/专利号CN202110360170.0

  • 发明设计人 周赛星;陈家辉;

    申请日2021-04-02

  • 分类号G06F16/27(20190101);G06F16/22(20190101);G06F17/12(20060101);

  • 代理机构44102 广州粤高专利商标代理有限公司;

  • 代理人林丽明

  • 地址 510090 广东省广州市越秀区东风东路729号

  • 入库时间 2023-06-19 11:54:11

说明书

技术领域

本发明涉及区块链的技术领域,更具体地,涉及一种具有抗量子特性的区块链工作量证明方法和系统。

背景技术

区块链的技术具有巨大创新性和应用场景,它主要解决了在一个公开的、不可信、没有中心节点的分布式网络环境下,如何达成共识的问题。构成区块链技术体系中最重要的一环就是共识算法,即在区块链网络中,如何让不同节点达成共识。区块链目前主要有PoW、PoS、DPo、PBFT和基于VRF的共识算法。工作量证明(PoW)是第一个也是区块链中应用最为广泛的共识算法,其在大量算力的支持下,具有稳定、安全、去中心化的优良特性。工作量证明是基于CPU挖矿的,使每个人都有平等的权利获取记账权,从而达到去中心化的目的。然而随着GPU、FPGA和ASIC矿机(如比特大陆的蚂蚁矿机S7、S9等)的出现,挖矿计算能力越来越集中,记账的权利也越来越集中在少数计算能力强大的矿工手中,有违去中心化网络的构想。为了解决算力过于集中的问题,后续提出的工作量证明所基于的哈希算法一般都具有内存困难属性,使得构造相关的ASIC芯片代价高昂。另外,区块链技术具有的透明性、冗余性和问责性的能力是通过公钥加密和哈希函数提供的。但随着量子计算的飞速发展,基于Grover和Shor(格罗弗和舒尔)算法对公钥密码学和散列函数构成潜在攻击,目前现有的区块链系统还不具有抗量子计算攻击特性,区块链数据的隐私和安全面临重大威胁。

2020年6月12日公开的中国专利CN111275552A提供了一种基于区块链的数据处理方法、装置、计算机设备和存储介质。该方法包括:接收到继承备选区块的继承默克尔根哈希值,并将继承默克尔根哈希值添加到底层链的底层备选区块的区块体的币基交易数据中;根据币基交易数据生成底层链的底层默克尔根哈希值,并将底层默克尔根哈希值添加到底层备选区块的区块头中;根据底层备选区块的区块头进行算账处理,得到底层备选区块对应的哈希结果值;根据所述哈希结果值和所述继承难度阈值确定目标继承区块并进行广播。采用该方法能够实现区块链的算力继承,中小型区块链项目的算力低于大型区块链项目的算力导致的网络安全问题。但是该发明的数据处理方法基于工作量证明和哈希算法,仍具有内存困难属性,无法同时包含节点的计算量和内存;另外该方法仅能使小型区块链面对大型区块链的算力攻击时,保障自身安全,无法面对量子计算攻击。

发明内容

本发明为克服上述现有区块链工作量证明系统无法同时包含节点的计算量和内存、不具有抗量子计算攻击特性的缺陷,提供一种具有抗量子特性的区块链工作量证明方法和系统,使区块链工作量证明系统同时包含节点的计算量和内存,且具有抗量子计算攻击特性,确保了区块链数据的隐私和安全。

为解决上述技术问题,本发明的技术方案如下:

本发明提供一种具有抗量子特性的区块链工作量证明方法,所述方法包括以下步骤:

S1:收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;

S2:利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;

S3:对多元二次方程组求解,获得解输出(x

S4:基于多元二次方程组的解输出(x

S5:利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值D;

S6:利用最小难度值D计算多元二次方程组的哈希函数Hash=H

S7:验证哈希函数的解Sha256(x

S8:区块链中其他节点收到广播的当前区块后,验证其包含的当前Nonce值和解输出是否满足工作量证明,同时验证交易的合法性;若均满足,则将当前区块作为最新区块链接到区块链,否则拒绝当前区块上链。

优选地,所述S1中,历史区块的数据包括时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值、哈希值、交易脚本和交易签名;所述时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值和哈希值被记录于区块的区块头,所述交易脚本和交易签名被记录于区块的区块体。

优选地,所述S2中,生成多元二次方程组的具体方法为:

设定变量数为n,方程数为m,生成的随机数序列包含的随机数个数为n

其中,x

优选地,所述S3中,利用基于Grobner基的F4、F5求解算法对多元二次方程组求解。

优选地,所述S7中,验证哈希函数的解是否满足工作量证明条件具体方法为:设定当前区块需要满足的最小工作量对应的哈希值PowLimit,比较哈希函数的解Sha256(x

本发明还提供一种具有抗量子特性的区块链工作量证明系统,所述系统包括数据收集及种子生成单元、方程组生成单元、方程组求解单元、哈希函数生成单元、难度生成求解单元和工作量证明单元;

所述数据收集及种子生成单元,用于收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;

所述方程组生成单元,利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;

所述方程组求解单元,用于对多元二次方程组求解,获得解输出;

所述哈希函数生成单元,基于多元二次方程组的解输出,获得该多元二次方程组的哈希函数;

所述难度生成求解单元,利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值,并利用最小难度值计算多元二次方程组的哈希函数的解;

所述工作量证明单元,用于验证哈希函数的解是否满足工作量证明条件。

优选地,所述数据收集及种子生成单元包括区块数据哈希模块、种子生成模块和Nonce模块;

所述区块数据哈希模块用于获取历史区块的数据,并将上一区块的哈希值输送至种子生成模块;

所述Nonce模块用于生成初始Nonce值,并将初始Nonce值输送至种子生成模块;

所述种子生成模块根据上一区块的哈希值和初始Nonce值生成种子数,并将种子数输送至方程组生成单元。

优选地,所述数据收集及种子生成单元还包括SHA哈希模块;

所述SHA哈希模块的作用是保证种子生成模块生成的种子数位数与哈希值的位数一致,保障种子生成模块正常工作。

优选地,所述方程组生成单元包括伪随机数生成模块和方程组构建模块;

所述伪随机数生成模块根据种子数生成方程组各个方程的系数,并将所述系数输送至方程组构建模块;

所述方程组构建模块根据方程组各个方程的系数生成多元二次方程组,并将多元二次方程组输送至方程组求解单元。

优选地,所述所述工作量证明单元验证哈希函数的解是否满足工作量证明条件;满足时将当前区块向其他节点广播,不满足时将当前Nonce值返回Nonce模块;其他节点验证当前区块包含的当前Nonce值和解输出是否满足工作量证明和验证交易的合法性,满足时将当前区块作为最新区块链接到区块链,不满足时拒绝当前区块上链。

与现有技术相比,本发明技术方案的有益效果是:

相较于传统工作量证明通过不断随机生成Nonce值,找到一个Nonce值,使当前区块头的哈希值小于某个指定的值,完成工作量证明的过程,本发明通过当前区块的初始Nonce值和上一区块的哈希值生成种子数,利用种子数生成随机数序列,基于随机数序列确定的方程组参数生成多元二次方程组,对多元二次方程组求解并生成解输出的哈希函数,计算哈希函数的解;通过验证哈希函数的解是否满足工作量证明条件,从而更新初始Nonce值,直到完成工作量证明;本发明将构建和求解多元二次方程组融入工作量证明,对多元二次方程组求解的特殊性,使区块链工作量证明系统不仅包含节点的计算量,还包含节点的内存;同时,多元二次方程组的求解过程具有抗量子计算攻击特性,使区块链工作量证明系统也具有抗量子计算攻击特性确保了区块链数据的隐私和安全。

附图说明

图1为实施例1所述的一种具有抗量子特性的区块链工作量证明方法的流程图;

图2为实施例2所述的一种具有抗量子特性的区块链工作量证明系统的示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

本实施例提供一种具有抗量子特性的区块链工作量证明方法,如图1所示,所述方法包括以下步骤:

S1:收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数,初始Nonce值为0;

S2:利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;

S3:对多元二次方程组求解,获得解输出(x

S4:基于多元二次方程组的解输出(x

S5:利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值D;

S6:利用最小难度值D计算多元二次方程组的哈希函数Hash=H

S7:验证哈希函数的解Sha256(x

S8:区块链中其他节点收到广播的区块后,验证其包含的当前Nonce值和解输出是否满足工作量证明,同时验证交易的合法性;若均满足,则将当前区块作为最新区块链接到区块链,否则拒绝当前区块上链。

所述S1中,历史区块的数据包括时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值、哈希值、交易脚本和交易签名;所述时间戳、Nonce值、工作量证明方程组解、版本、Merkele树根、难度值和哈希值被记录于区块的区块头,所述交易脚本和交易签名被记录于区块的区块体。

所述S2中,生成多元二次方程组的具体方法为:

设定变量数为n,方程数为m,确定这一组随机方程,需要的随机系数个数为二次项系数+一次项系数+常量系数+等式右边常量,所以生成的随机数序列包含的随机数个数为n

其中,x

所述S3中,利用基于Grobner基的F4、F5求解算法对多元二次方程组求解。基于Grobner基的F4、F5求解算法是在有限域上求解随机多元多次方程组的最为高效的算法,既具有计算困难性也具有内存困难性。

所述S7中,验证哈希函数的解是否满足工作量证明条件具体方法为:确定当前区块需要满足的最小工作量对应的哈希值PowLimit,比较哈希函数的解Sha256(x

在具体实施过程中,当发生一笔交易时,用户会通过普通全节点或轻节点生成一笔交易数据,并向区块链网络广播。区块链其他节点在网络中接收到一笔交易后,会验证交易是否已存在本地区块中,如不存在则验证交易合法性,合法交易存放在本地内存池中,并向其邻节点广播此交易。每笔交易数据中包括账户资金的流向和交易合法性验证数据,如果是负责生成区块的矿工节点,还会将一段时间内接收到的多个交易打包成区块;

矿工节点根据上一区块哈希值,以及当前区块的初始Nonce值生成种子数seed,Seed=Sha256(Sha256(Block

矿工节点使用Grobner基求解算法(F4、F5)对多元二次方程组求解,获得解输出(x

矿工节点接收到一段时间内全网的交易并打包成区块后,根据历史区块的挖矿难度值(D

矿工节点验证哈希函数的解是否满足工作量证明条件,若Sha256(x

网络中其他节点收到矿工节点广播的区块后,根据该区块的哈希值和当前Nonce生成种子数,根据种子数生成有限域随机二次多元方程组:

将解输出(x

实施例2

本实施例提供一种基于实施例1所述方法的具有抗量子特性的区块链工作量证明系统,如图2所示,所述系统包括数据收集及种子生成单元、方程组生成单元、方程组求解单元、哈希函数生成单元、难度生成求解单元和工作量证明单元;

所述数据收集及种子生成单元,用于收集区块链内历史区块的数据,确定当前区块的上一区块的哈希值,利用当前区块的初始Nonce值和上一区块的哈希值生成种子数;

所述方程组生成单元,利用种子数生成随机数序列,根据随机数序列确定方程组参数;基于所述方程组参数,生成多元二次方程组;

所述方程组求解单元,用于对多元二次方程组求解,获得解输出;

所述哈希函数生成单元,基于多元二次方程组的解输出,获得该多元二次方程组的哈希函数;

所述难度生成求解单元,利用难度调整算法,根据区块链历史区块的难度值,确定当前区块需要满足的最小难度值,并利用最小难度值计算多元二次方程组的哈希函数的解;

所述工作量证明单元,用于验证哈希函数的解是否满足工作量证明条件。

所述数据收集及种子生成单元包括区块数据哈希模块、种子生成模块和Nonce模块;

所述区块数据哈希模块用于获取历史区块的数据,并将上一区块的哈希值输送至种子生成模块;

所述Nonce模块用于生成初始Nonce值,并将初始Nonce值输送至种子生成模块;

所述种子生成模块根据上一区块的哈希值和初始Nonce值生成种子数,并将种子数输送至方程组生成单元。

所述数据收集及种子生成单元还包括SHA哈希模块;

所述SHA哈希模块的作用是保证种子生成模块生成的种子数位数与哈希值的位数一致,保障种子生成模块正常工作。

所述方程组生成单元包括伪随机数生成模块和方程组构建模块;

所述伪随机数生成模块根据种子数生成方程组各个方程的系数,并将所述系数输送至方程组构建模块;

所述方程组构建模块根据方程组各个方程的系数生成多元二次方程组,并将多元二次方程组输送至方程组求解单元。

所述工作量证明单元验证哈希函数的解是否满足工作量证明条件;满足时将当前区块向其他节点广播,不满足时将当前Nonce值返回Nonce模块;其他节点验证当前区块包含的当前Nonce值和解输出是否满足工作量证明和验证交易的合法性,满足时将当前区块作为最新区块链接到区块链,不满足时拒绝当前区块上链。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号