首页 / 专利库 / 资料储存系统 / 工作量证明 / 对区块链系统中的区块进行工作量证明的方法及装置

链系统中的区块进行工作量证明的方法及装置

阅读:1047发布:2020-09-07

专利汇可以提供链系统中的区块进行工作量证明的方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供一种对 区 块 链 系统中的区块进行 工作量证明 的方法及装置,其中,该方法包括: 修改 安全散列 算法 SHA‑2中的密钥Kt为动态值,其中,t为整数,t=1~64;采用修改后的安全散列算法SHA‑2对区块链系统中的新增区块进行工作量证明。相比较 现有技术 中密钥Kt的值采用固定值而言,本发明将密钥Kt的值修改成了动态值,这样攻击者会用更长的时间来构造出适当的hash冲突,从而提升了攻击的时间要求,提高了区块链系统的安全性和 稳定性 。,下面是链系统中的区块进行工作量证明的方法及装置专利的具体信息内容。

1.一种对链系统中的区块进行工作量证明的方法,其特征在于,包括:
修改安全散列算法SHA-2中的密钥Kt为动态值,其中,t为整数,t=1~64;
采用修改后的安全散列算法SHA-2对区块链系统中的新增区块进行工作量证明。
2.如权利要求1所述的对区块链系统中的区块进行工作量证明的方法,其特征在于,按如下方式修改安全散列算法SHA-2中的密钥Kt为动态值:
确定采用安全散列算法SHA-2对第一区块进行工作量证明获得的哈希值;所述第一区块为与新增区块相连的区块;
确定所述哈希值的最后64位值;
对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt。
3.如权利要求2所述的对区块链系统中的区块进行工作量证明的方法,其特征在于,按如下方式对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt:
将所述哈希值的最后64位中的前32位赋值给第一变量a1,后32位赋值给第二变量a2,将第一变量a1模64获得第三变量n1,将第二变量a2模64获得第四变量n2,将第一变量a1赋值给第一密钥Kn1,将第二变量a2赋值给第二密钥Kn2,其中,n1、n2为整数,n1、n2属于t。
4.一种对区块链系统中的区块进行工作量证明的装置,其特征在于,包括:
修改模块,用于修改安全散列算法SHA-2中的密钥Kt为动态值,其中,t为整数,t=1~
64;
证明模块,用于采用修改后的安全散列算法SHA-2对区块链系统中的新增区块进行工作量证明。
5.如权利要求4所述的对区块链系统中的区块进行工作量证明的装置,其特征在于,所述修改模块具体用于:按如下方式修改安全散列算法SHA-2中的密钥Kt为动态值:
确定采用安全散列算法SHA-2对第一区块进行工作量证明获得的哈希值;所述第一区块为与新增区块相连的区块;
确定所述哈希值的最后64位值;
对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt。
6.如权利要求5所述的对区块链系统中的区块进行工作量证明的装置,其特征在于,所述修改模块具体用于:按如下方式对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt:
将所述哈希值的最后64位中的前32位赋值给第一变量a1,后32位赋值给第二变量a2,将第一变量a1模64获得第三变量n1,将第二变量a2模64获得第四变量n2,将第一变量a1赋值给第一密钥Kn1,将第二变量a2赋值给第二密钥Kn2,其中,n1、n2为整数,n1、n2属于t。

说明书全文

链系统中的区块进行工作量证明的方法及装置

技术领域

[0001] 本发明涉及数据处理技术领域,特别涉及一种对区块链系统中的区块进行工作量证明的方法及装置。

背景技术

[0002] 区块链技术最早出现在数字货币的鼻祖比特币的底层实现机制中,它使用由众多节点构成的去中心化分布式网络来记录交易,区块链技术就是其最基础的核心部分。区块链技术不需要中央控制节点,建立在可复制共享的账本之上。当区块链系统在创建新增区块(包括区块头和交易内容)的时候,采用安全散列算法SHA-2算法(Secure  Hash Algorithm,属于hash函数,包括SHA224、SHA256、SHA384、SHA512)进行新增区块的工作量证明。比如,使用SHA256算法对新增区块进行工作量证明的过程是:对输入的报文(可以是新增区块的区块头)按512位(即64字节)分组进行处理,在每个分组中迭代计算64次,产生256位的报文摘要,可以称之为验证码。等对方拿到报文和验证码之后,再对报文采用SHA256算法进行加密得到相应的结果,把计算出的相应结果和收到的验证码比对,如果一样,就说明报文在传输过程中没有被修改。在SHA-2算法中的迭代计算步骤中涉及到了密钥Kt,Kt是32位的常数值序列,是固定值,攻击者很容易在有限的时间内构造出适当的hash冲突攻击并破解SHA-2算法,这样会降低区块链系统的安全性和稳定性

发明内容

[0003] 本发明实施例提供了一种对区块链系统中的区块进行工作量证明的方法,将密钥Kt修改成动态值,可以提升攻击的时间要求,提高区块链系统的安全性和稳定性。该方法包括:
[0004] 修改安全散列算法SHA-2中的密钥Kt为动态值,其中,t为整数,t=1~64;
[0005] 采用修改后的安全散列算法SHA-2对区块链系统中的新增区块进行工作量证明。
[0006] 在一个实施例中,按如下方式修改安全散列算法SHA-2中的密钥Kt为动态值:
[0007] 确定采用安全散列算法SHA-2对第一区块进行工作量证明获得的哈希值;所述第一区块为与新增区块相连的区块;
[0008] 确定所述哈希值的最后64位值;
[0009] 对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt。
[0010] 在一个实施例中,按如下方式对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt:
[0011] 将所述哈希值的最后64位中的前32位赋值给第一变量a1,后32位赋值给第二变量a2,将第一变量a1模64获得第三变量n1,将第二变量a2模64获得第四变量n2,将第一变量a1赋值给第一密钥Kn1,将第二变量a2赋值给第二密钥Kn2,其中,n1、n2为整数,n1、n2属于t。
[0012] 本发明实施例还提供了一种对区块链系统中的区块进行工作量证明的装置,将密钥Kt修改成动态值,可以提升攻击的时间要求,提高区块链系统的安全性和稳定性。该装置包括:
[0013] 修改模块,用于修改安全散列算法SHA-2中的密钥Kt为动态值,其中,t为整数,t=1~64;
[0014] 证明模块,用于采用修改后的安全散列算法SHA-2对区块链系统中的新增区块进行工作量证明。
[0015] 在一个实施例中,所述修改模块具体用于:按如下方式修改安全散列算法SHA-2中的密钥Kt为动态值:
[0016] 确定采用安全散列算法SHA-2对第一区块进行工作量证明获得的哈希值;所述第一区块为与新增区块相连的区块;
[0017] 确定所述哈希值的最后64位值;
[0018] 对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt。
[0019] 在一个实施例中,所述修改模块具体用于:按如下方式对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt:
[0020] 将所述哈希值的最后64位中的前32位赋值给第一变量a1,后32位赋值给第二变量a2,将第一变量a1模64获得第三变量n1,将第二变量a2模64获得第四变量n2,将第一变量a1赋值给第一密钥Kn1,将第二变量a2赋值给第二密钥Kn2,其中,n1、n2为整数,n1、n2属于t。
[0021] 在本发明实施例中,修改安全散列算法SHA-2中的密钥Kt为动态值,采用修改后的安全散列算法SHA-2对区块链系统中的新增区块进行工作量证明。相比较现有技术中密钥Kt的值采用固定值而言,本发明将密钥Kt的值修改成了动态值,这样攻击者会用更长的时间来构造出适当的hash冲突,从而提升了攻击的时间要求,提高了区块链系统的安全性和稳定性。附图说明
[0022] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1是本发明实施例提供的一种对区块链系统中的区块进行工作量证明的方法流程图
[0024] 图2是本发明实施例提供的一种安全散列算法SHA-2的计算过程图;
[0025] 图3是本发明实施例提供的一种对区块链系统中的区块进行工作量证明的装置结构示意图。

具体实施方式

[0026] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027] 现有的采用安全散列算法SHA-2对区块链系统中的区进行的工作量证明,由于SHA-2中的密钥Kt是固定值,攻击者可以在有限的时间内构造出适当的hash冲突攻击并破解SHA-2算法,这样会降低区块链系统的安全性和稳定性。基于此,在本发明实施例中,提供了一种对区块链系统中的区块进行工作量证明的方法,如图1所示,该方法包括:
[0028] 步骤101:修改安全散列算法SHA-2中的密钥Kt为动态值,其中,t为整数,t=1~64;
[0029] 步骤102:采用修改后的安全散列算法SHA-2对区块链系统中的新增区块进行工作量证明。
[0030] 具体实施时,工作量证明(Proof Of Work,简称POW)是一份证明,用来确认做过一定量的工作,采用工作量证明函数(SHA-2系列哈希算法)对其进行证明。
[0031] 本发明是基于SHA-2系列哈希算法的升级,是去中心化区块链技术的基础核心技术,本发明将修改后的算法命名为SHA2Dy64算法。SHA2Dy64算法与SHA-2系列算法的区别是:SHA2Dy64算法中的密钥Kt被修改成了动态值,而SHA-2系列算法中的密钥Kt为固定值。
[0032] 密钥Kt的修改方法如下:
[0033] 确定采用安全散列算法SHA-2对第一区块进行工作量证明获得的哈希值;所述第一区块为与新增区块相连的区块;
[0034] 确定第一区块的哈希值的最后64位值;
[0035] 对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt,包括:
[0036] 将哈希值的最后64位中的前32位赋值给第一变量a1,后32位赋值给第二变量a2,将第一变量a1模64获得第三变量n1,将第二变量a2模64获得第四变量n2,将第一变量a1赋值给第一密钥Kn1,将第二变量a2赋值给第二密钥Kn2,其中,n1、n2为整数,n1、n2属于t。
[0037] 采用SHA2Dy64算法对新增区块进行工作量证明的具体步骤为:
[0038] STEP1:附加填充比特和长度值。对新增区块的报文进行填充使报文长度模512为448,填充的比特数范围是1到512,填充比特串的最高位为1,其余位为0。再将用64-bit表示的初始报文(填充前)的位长度附加在填充了比特的结果后(低位字节优先)。
[0039] STEP2:初始化缓存。使用一个256-bit的缓存来存放该散列函数的中间及最终结果。该缓存表示为A=0x6A09E667,B=0xBB67AE85,C=0x3C6EF372,D=0xA54FF53A,E=0x510E527F,F=0x9B05688C,G=0x1F83D9AB,H=0x5BE0CD19。
[0040] STEP3:处理512-bit(16个字)报文分组序列。每步都以256-bit缓存值ABCDEFGH为输入,然后按照如图2所示的计算流程更新缓存内容。图2中用到原始的SHA-2算法中的四种基本逻辑函数Ch(Chrestenson函数,Ch函数是取多个离散复值的广义沃尔什函数川)、Maj、∑0、∑1是事先定义好的非线性函数。Wt是分组之后的报文,被切成固定长度的区块,512bit=32bit*16,也就是Wt(t=1,2,…,16)由该组报文产生,Wt(t=17,18,…,64)由W1-W16按递推公式计算出来。Kt是第t个密钥,按照上面所述的密钥Kt的修改方法修改Kt当中的两个值。然后通过在每个512bit的分组里面重复迭代计算64次来对ABCDEFGH这八个工作区块循环加密,不断更新这八个工作区块的32bit*8,最后将这个区块产生的散列字符串加以混合产生最后的散列字符串。
[0041] 基于同一发明构思,本发明实施例中还提供了一种对区块链系统中的区块进行工作量证明的装置,如下面的实施例所述。由于对区块链系统中的区块进行工作量证明的装置解决问题的原理与对区块链系统中的区块进行工作量证明的方法相似,因此对区块链系统中的区块进行工作量证明的装置的实施可以参见对区块链系统中的区块进行工作量证明的方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0042] 图3是本发明实施例的对区块链系统中的区块进行工作量证明的装置的一种结构框图,如图3所示,包括:
[0043] 修改模块301,用于修改安全散列算法SHA-2中的密钥Kt为动态值,其中,t为整数,t=0~64;
[0044] 证明模块302,用于采用修改后的安全散列算法SHA-2对区块链系统中的新增区块进行工作量证明。
[0045] 下面对该结构进行说明。
[0046] 具体实施时,修改模块301具体用于:按如下方式修改安全散列算法SHA-2中的密钥Kt为动态值:
[0047] 确定采用安全散列算法SHA-2对第一区块进行工作量证明获得的哈希值;所述第一区块为与新增区块相连的区块;
[0048] 确定所述哈希值的最后64位值;
[0049] 对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt。
[0050] 具体实施时,修改模块301具体用于:按如下方式对所述哈希值的最后64位值进行赋值处理,并将赋值处理后的值赋给安全散列算法SHA-2中的密钥Kt:
[0051] 将所述哈希值的最后64位中的前32位赋值给第一变量a1,后32位赋值给第二变量a2,将第一变量a1模64获得第三变量n1,将第二变量a2模64获得第四变量n2,将第一变量a1赋值给第一密钥Kn1,将第二变量a2赋值给第二密钥Kn2,其中,n1、n2为整数,n1、n2属于t。
[0052] 综上,本发明方法与装置具有如下有益效果:
[0053] 1)本发明进行工作量证明时采用的是升级的SHA-2哈希算法(密钥Kt为动态值),在计算Hash值时,现有矿机无法直接应用于此,保证了初始公平性;
[0054] 2)动态密钥Kt和区块链动态相关,事先固定的秘钥值变为依赖于上一个区块链的哈希值,放在动态表中可赋值区域,对矿机的芯片有全新的要求;
[0055] 3)升级的SHA-2算法,极大提升了攻击的时间要求,因为一旦生成一个新区块,对老区块的攻击效果无法带入新区块的交易数据中。也就是说,假设一个区块生成的平均时间是1分钟,在一分钟内不能制造出有效的hash冲突,将无法攻击区块链。从而极大增强了区块链的生存能
[0056] 4)通过升级SHA-2算法,推动去中心化区块链技术,提高稳定性和安全性。
[0057] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0058] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0059] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0060] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0061] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈