区块链交易数据字段验证制造技术

技术编号:31821130 阅读:11 留言:0更新日期:2022-01-12 12:18
一种用于生成目标交易的二级交易标识符的计算机实现方法,所述二级交易标识符使查询用户能够确定所述目标交易是否包括候选数据字段。所述方法包括标识所述目标交易的一组数据字段,每个数据字段包括所述交易的相应数据;生成交易哈希树。对每个数据字段进行哈希处理,以生成所述交易哈希树的多个叶哈希值中的相应一个。所述交易哈希树的根哈希值包括所述二级交易标识符。述二级交易标识符。述二级交易标识符。

【技术实现步骤摘要】
【国外来华专利技术】区块链交易数据字段验证


[0001]本公开涉及用于使查询用户能够验证区块链的区块内的交易是否包括候选数据字段的方法。

技术介绍

[0002]区块链是指一种分布式数据结构形式,其中在点对点(P2P)网络中的多个节点中的每个节点处维护区块链副本。区块链包括一系列数据区块,其中每个区块包括一笔或多笔交易。每笔交易都回指序列中的先前交易,从而追溯到区块链开始处的创始区块。通过称为“挖掘”的过程,交易可以通过提交到网络包括在新区块中,该过程涉及多个挖掘节点中的每个挖掘节点争相执行“工作量证明”,即基于等待包括在区块中的未决交易池解决加密难题。
[0003]区块链中的交易通常用于传递数字资产,即用作价值储存手段的数据。但是也可利用区块链实现区块链上的分层附加功能。例如,区块链协议可允许在交易输出中存储附加用户数据。现代区块链在单一交易中可储存的最大数据容量在不断增加,从而能够并入更复杂的数据。例如,这可用于在区块链中存储电子文档,甚至音频或视频数据。
[0004]网络中的每个节点可以具有以下三个角色中的任何一个、两个或全部:转发、挖掘和存储。转发节点在整个网络节点中传播交易。挖掘节点将交易挖掘到区块中。存储节点各自对区块链中的已挖掘区块存储自己的副本。为了将交易记录在区块链中,一方将该交易发送到网络中的节点中的一个节点进行传播。接收该交易的挖掘节点可以争相将该交易挖掘到新区块中。每个节点被配置为遵守相同的节点协议,该协议将包括用于确认交易有效的一个或更多个条件。无效交易将不会传播或挖掘到区块中。假定交易已经核实有效,从而在区块链上被接受,该附加用户数据将因此作为不可改变的公共记录,继续存储在P2P网络中的各个节点处。
[0005]成功解决工作量证明难题以创建最新区块的矿工通常被奖励一笔称为“区块创始交易”的交易,该交易会生成新的数字资产金额。工作量证明激励矿工不要欺骗系统,在他们的区块中包括双重花费交易,因为挖掘区块需要大量计算资源,而包括试图双重花费的区块很可能不会被其他节点接受。
[0006]区块链中的每个区块通常包含该区块中所有交易的概要。该概要使用“默克尔树”生成。默克尔树是包含加密哈希值的哈希树。在文献中有时使用术语“默克尔树”来指二进制哈希树,尽管默克尔的原始公开不限于二进制哈希树,但文献中的其他位置也使用“哈希树”和“默克尔树”作为同义词。在本文中采用前一种定义。术语“树”是指分支数据结构,该树的顶部具有“根”,底部具有“叶”。默克尔树的构建方法是递归地对节点对进行哈希处理直到仅存在一个哈希值,该哈希值称为根或默克尔根。根哈希值表示区块中整组交易的整体数字指纹,提供了有效的过程来验证该区块中是否包括交易。为了证明该区块中包括特定交易,节点仅需产生相对少量的哈希值,构成将特定交易连接到树根的认证路径或“默克尔路径”。

技术实现思路

[0007]在大多数区块链生态系统中,各种类型节点的功能和能力将各不相同。例如,矿工可能具有对更多计算资源的访问权限,使得他们可以存储区块链的完整副本并验证所有传入交易,而区块链的普通用户可能具有用于创建和广播支付的更轻量级的客户端。
[0008]节点可以使用默克尔树或哈希树来验证给定交易是否被挖掘到区块链中。这在本领域中称为简化支付验证(SPV),但并不限于验证支付交易。该验证方法通常需要节点(可能仅运行轻量级客户端)来获取完整的交易数据,对其进行哈希处理并执行“默克尔证明”。
[0009]目前,SPV方法适用于需要验证区块链中是否存在少量数据(如图像文件)的轻量级客户端。然而,随着区块链生态系统规模的扩大,交易大小可能显著增加,并且其中嵌入的任意数据分组的大小也可能显著增加。当在需要对整个交易进行哈希处理的情况下验证交易时,这是一个问题,特别是对于轻量级客户端,这意味着它们可能需要检索大型(例如,兆字节或千字节)交易以验证区块链上的交易中是否存在更小(例如,千字节)的数据分组。
[0010]因此,节点(例如,轻量级客户端)需要能够证明部分交易(例如,较小的数据分组)的存在,而不必获取完整交易。
[0011]根据在本文中所公开的一个方面,提供了一种用于生成目标交易的二级交易标识符的计算机实现方法,所述二级交易标识符使查询用户能够确定所述目标交易是否包括候选数据字段;所述方法由生成用户执行,并且包括:标识所述目标交易的一组数据字段,每个数据字段包括所述交易的相应数据;生成交易哈希树,其中所述交易哈希树包括:i)叶层,所述叶层包括多个叶哈希值,其中对每个数据字段进行哈希处理以生成所述多个叶哈希值中的相应一个;ii)一个或多个内部层,所述一个或多个内部层中的每个内部层包括多个内部哈希值,其中每个内部层中的每个内部哈希值是通过对来自较低层的至少两个哈希值的级联进行哈希处理生成的,最低内部层的每个内部哈希值是通过对至少两个不同叶哈希值的级联进行哈希处理生成的;iii)根层,所述根层包括所述二级交易标识符,其中所述二级交易标识符是通过对所述一个或多个内部层中最高内部层的所述内部哈希值的级联进行哈希处理生成的。
[0012]本公开认识到另一种可以利用默克尔树或更一般的哈希树来允许节点(即查询用户)验证交易的各个数据字段的方式。交易被拆分(或解析)为用于生成哈希树的一组数据字段,即交易的不同部分被标识为单独的数据字段。哈希树的根用作交易的新颖二级标识符。查询用户(例如,可以仅操作轻量级客户端)可以使用所述二级标识符来执行证明,以证明交易中存在(小)数据字段,而无需获取完整交易数据并对其进行哈希处理。
[0013]二级交易标识符可以由有权访问完整交易数据的任何用户生成。例如,所述生成用户可以是已经接收交易的矿工、区块链网络的用户(例如,已经生成交易的爱丽丝),或者实际上是已经提供给区块链外部或能够查看交易的用户。
[0014]根据在本文中所公开的另一方面,提供了一种用于使查询用户能够确定区块链的区块内的目标交易是否包括候选数据字段的方法;所述方法由提交用户执行,并且包括:获取所述目标交易的二级交易标识符;将所述二级交易标识符提交给交易以包括在所述区块链的区块内,其中所述二级交易标识符已通过以下步骤生成:标识所述目标交易的一组数据字段,每个数据字段包括所述交易的相应数据;生成交易哈希树,其中所述交易哈希树包括:i)叶层,所述叶层包括根据一组有序的数据字段排序的多个叶哈希值,其中对每个数据
字段进行哈希处理以生成所述多个叶哈希值中的相应一个;ii)一个或多个内部层,所述一个或多个内部层中的每个内部层包括多个内部哈希值,其中每个内部层中的每个内部哈希值是通过对来自较低层的至少两个哈希值的级联进行哈希处理生成的,所述一个或多个内部层中的最低内部层的每个内部哈希值是通过对至少两个不同叶哈希值的级联进行哈希处理生成的;iii)根层,所述根层包括所述二级交易标识符,其中所述二级交易标识符是通过对所述一个或多个内部层中最高内部层的所述内部哈希值的级联进行哈希处理生成的。
[0015]所述二级交易标识符可以在链上存储以供所述查询用户访问本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于生成目标交易的二级交易标识符的计算机实现方法,所述二级交易标识符使查询用户能够确定所述目标交易是否包括候选数据字段;所述方法由生成用户执行,并且包括:标识所述目标交易的一组数据字段,每个数据字段包括所述交易的相应数据;生成交易哈希树,所述交易哈希树包括:i)叶层,所述叶层包括多个叶哈希值,其中对每个数据字段进行哈希处理以生成所述多个叶哈希值中的相应一个;ii)一个或多个内部层,所述一个或多个内部层中的每个内部层包括多个内部哈希值,其中每个内部层中的每个内部哈希值是通过对来自较低层的至少两个哈希值的级联进行哈希处理生成的,所述一个或多个内部层中最低内部层的每个内部哈希值是通过对至少两个不同叶哈希值的级联进行哈希处理生成的;iii)根层,所述根层包括所述二级交易标识符,其中所述二级交易标识符是通过对所述一个或多个内部层中最高内部层的所述内部哈希值的级联进行哈希处理生成的。2.根据权利要求1所述的方法,所述方法包括以下各项中的一项、一些或全部:将所述二级交易标识符提交给交易以包括在区块链的区块内;将所述二级交易标识符提交给生成交易以包括在所述区块链的区块内;将所述二级交易标识符传输给区块链网络的节点;将所述二级交易标识符存储在生成用户的计算装置的存储器中。3.根据权利要求1或2所述的方法,所述方法包括将所述二级交易标识符提交给所述区块链。4.一种用于使查询用户能够确定区块链的区块内的目标交易是否包括候选数据字段的计算机实现方法;所述方法由提交用户执行,并且包括:获取所述目标交易的二级交易标识符;将所述二级交易标识符提交给交易以包括在所述区块链的区块内,其中所述二级交易标识符已通过以下步骤生成:标识所述目标交易的一组数据字段,每个数据字段包括所述交易的相应数据;生成交易哈希树,所述交易哈希树包括:i)叶层,所述叶层包括根据一组有序的数据字段排序的多个叶哈希值,其中对每个数据字段进行哈希处理以生成所述多个叶哈希值中的相应一个;ii)一个或多个内部层,所述一个或多个内部层中的每个内部层包括多个内部哈希值,其中每个内部层中的每个内部哈希值是通过对来自较低层的至少两个哈希值的级联进行哈希处理生成的,所述一个或多个内部层中最低内部层的每个内部哈希值是通过对至少两个不同叶哈希值的级联进行哈希处理生成的;iii)根层,所述根层包括所述二级交易标识符,其中所述二级交易标识符是通过对所述一个或多个内部层中最高内部层的所述内部哈希值的级联进行哈希处理生成的。5.根据权利要求4所述的方法,其中所述获取包括以下各项中的至少一项:生成所述二级交易标识符;从区块链网络的节点接收所述二级交易标识符;从所述区块链网络外部的节点接收所述二级交易标识符。
6.根据权利要求4或5所述的方法,其中所述提交包括将所述二级交易标识符提交给所述区块链的区块内的生成交易。7.根据前述任一项权利要求所述的方法,其中所述交易哈希树是二进制哈希树,其中所述最低内部层中的每个内部哈希值是通过对两个不同叶哈希值的级联进行哈希处理生成的,每个内部层中的每个内部哈希值是通过对来自较低层的两个哈希值的级联进行哈希处理生成的,并且其中所述最高内部层包括两个内部哈希值。8.根据前述任一项权利要求所述的方法,所述方法包括将所述候选数据字段的认证路径传输给所述查询用户,其中所述认证路径包括一组有序的哈希值,并且其中所述一组有序的哈希值包括至少一个叶哈希值和一组或多组内部哈希值,每组内部哈希值属于所述交易哈希树的所述内部层中的相应一层。9.根据前述任一项权利要求所述的方法,所述方法包括将所述候选数据字段或其哈希值而不是所述目标交易的至少一个其他数据字段传输给所述查询方。10.根据前述任一项权利要求所述的方法,其中所述一组数据字段包括:i)至少一个包括所述目标交易的输入数据的数据字段;ii)至少一个包括所述目标交易的输出数据的数据字段;iii)至少一个包括所述目标交易的非输入数据和非输出数据的数据字段。11.根据前述任一项权利要求所述的方法,其中所述一组数据字段包括:i)至少一个包括所述目标交易的脚本输入数据的数据字段;ii)至少一个包括所述目标交易的非脚本输入数据的数据字段;iii)至少一个包括所述目标交易的脚本输出数据的数据字段;iv)至少一个包括所述目标交易的非脚本输出数据的数据字段。12.根据前述任一项权利要求所述的方法,其中以下两项中的一项或两项:所述目标交易包括对应于多个输入的数据,并且其中对于所述输入中的每一个输入,所述一组数据字段包括:至少一个包括所述输入的脚本数据的数据字段;至少一个包括所述输入的非脚本数据的数据字段;和/或所述目标交易包括对应于多个输出的数据,并且其中对于所述输出中的每一个输出,所述一组数据字段包括:至少一个包括所述输出的脚本数据的数据字段;至少一个包括所述输出的非脚本数据的数据字段。13.根据前述任一项权利要求所述的方法,其中所述一组数据字段包括:i)至少一个包括一个或多个签名的数据字段;ii)至少一个包括除签名之外的所述目标交易的脚本输入数据的数据字段;iii)至少一个包括一个或多个公钥哈希值的数据字段;iv)至少一个包括除公钥哈希值之外的所述目标交易的脚本输出数据的数据字段。14.根据前述任一项权利要求所述的方法,其中所述一组数据字段中的至少一个数据字段包括所述目标交易的初级交易标识符,和/或所述数据字段中的至少一个数据字段附加有所述目标交易的所述初级交易标识符。15.根据权利要求14所述的方法,其中所述初级交易标识符是通过对所述目标交易进行哈希处理生成的。16.根据前述任一项权利要求所述的方法,其中所述标识包括标识一组固定数目的数
据字段。17.根据权利要求1至15中任一项所述的方法,其中所述标识包括标识一组数据字段,每个数据字段包括固定量的数据。18.根据前述任一项权利要求所述的方法,其中所述目标交易包括内容数据,并且其中所述候选数据字段包括所述内容数据的至少一部分。19.根据权利要求18所述的方法,其中所述内容数据包括以下各项中的一项、一些或全部:

图像数据;

声音数据;

视频数据;

文本数据。20.一种供生成用户使用的计算机设备,所述设备包括:存储器,所述存储器包括一个或多个存储器单元;和处理装置,所述处理装置包括一个或多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上时,执行根据权利要求1至3、和/或8至19中任一项所述的方法。21.一种计算机程序,所述计算机程序包含在计算机可读存储器上,并且被配置为当在所述生成用户的计算机设备上运行时,执行根据权利要求1至3和/或8至19中任一项所述的方法。22.一种供提交用户使用的计算机设备,所述设备包括:存储器,所述存储器包括一个或多个存储器单元;和处理装置,所述处理装置包括一个或多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上时,执行根据权利要求4至19中任一项所述的方法。23.一种计算机程序,所述计算机程序包含在计算机可读存储器上,并且被配置为当在所述提交用户的计算机设备上运行时,执行权利要求4至19中任一项所述的方法。24.一种用于验证是否已经根据指定协议生成区块链的区块内的目标交易的候选二级交易标识符的计算机实现方法,所述方法由验证用户执行,并且包括:获取所述候选二级交易标识符;标识所述目标交易的一组数据字段,每个数据字段包括所述交易的相应数据;生成交易哈希树,所述交易哈希树包括:i)叶层,所述叶层包括多个叶哈希值,其中对每个数据字段进行哈希处理以生成相应的叶哈希值;ii)一个或多个内部层,所述一个或多个内部层中的每个内部层包括多个内部哈希值,其中每个内部层中的每个内部哈希值是通过对来自较低层的至少两个哈希值的级联进行哈希处理生成的,最低内部层的每个内部哈希值是通过对至少两个不同叶哈希值的级联进行哈希处理生成的;iii)根层,所述根层包括所述二级交易标识符,其中所述二级交易标识符是通过对最高内部层的所述内部哈希值的级联进行哈希处理生成的;
验证所述二级交易标识符是否与所述候选二级交易标识符匹配。25.根据权利要求24所述的方法,其中所述获取包括以下各项中的一项或多项:从区块链网络的节点接收所述候选二级交易标识符;从所述区块链网络外部的节点接收所述候选二级交易标识符;从所述区块链的区块内的交易中提取所述候选二级交易标识符。26.一种供验证用户使用的计算机设备,所述设备包括:存储器,所述存储器包括一个或多个存储器单元;和处理装置,所述处理装置包括一个或多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上时,执行根据权利要求24和25中任一项所述的方法。27.一种计算机程序,所述计算机程序包含在计算机可读存储器上,并且被配置为当在所述验证用户的计算机设备上运行时,执行权利要求24和25中任一项所述的方法。28.一种用于确定区块链的区块内的目标交易是否包括候选数据字段的计算机实现方法,所述方法由查询用户执行,并且包括:获取候选叶哈希值,其中所述候选叶哈希值为所述候选数据字段的哈希值;获取所述目标交易的候选二级交易标识符,其中所述二级交易标识符是通过标识所述目标交易的一组数据字段生成的,每个数据字段包括所述交易的相应数据,并生成交易哈希树,其中所述交易哈希树的根层包括所述二级交易标识符;获取所述候选数据字段的认证路径,其中所述认证路径包括一组有序的哈希值,并且其中所述一组有序的哈希值包括至少一个叶哈希值和一组或多组内部哈希值,每组内部哈希值属于所述交易哈希树的相应内部层;利用所述获取的候选叶哈希值、所述获取的候选二级交易标识符以及所述获取的候选数据字段的认证路径进行哈希树证明,所述执行生成二级交易标识符;其中所述确定基于所述二级交易标识符是否与所述候选二级交易标识符匹配。29.根据权利要求28所述的方法,其中所述执行所述哈希树证明包括:对所述候选叶哈希值与所述一组有序的哈希值中的所述至...

【专利技术属性】
技术研发人员:杰克
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:

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

1