首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块头 / 用于分区区块链和增强被许可的区块链的隐私的方法和系统

用于分区链和增强被许可的区块链的隐私的方法和系统

阅读:1011发布:2020-08-03

专利汇可以提供用于分区链和增强被许可的区块链的隐私的方法和系统专利检索,专利查询,专利分析的服务。并且一种用于生成分区 区 块 链 的区块的方法,包括:存储包括分区区块链的区块,其中,每个区块包括块头和交易条目;接收用于多个子网中的每个子网的至少一个交易数据条目;生成包括在最新接收到的区块中的块头的散列值;生成新块头,其中,该新块头包括生成的散列值、时间戳和对序列,其中,该对序列包括用于多个子网中的每个子网的对,每个对包括与相应的子网相关联的子网标识符和接收到的用于该相应的子网的每一个交易数据条目的merkle根;生成新区块,其中,该新区块包括生成的新块头和用于多个子网中的每个子网的至少一个交易数据条目;以及将该新区块 电子 地发送到与该分区区块链相关联的多个 节点 。,下面是用于分区链和增强被许可的区块链的隐私的方法和系统专利的具体信息内容。

1.一种用于生成分区链的区块的方法,包括:
将构成分区区块链的至少一个区块存储到处理服务器存储器中,其中,所述至少一个区块包括最新添加的区块,所述最新添加的区块至少包括区块头和一个或多个交易条目;
由所述处理服务器的接收设备为多个子网中的每个子网接收至少一个交易数据条目;
由所述处理服务器的散列模块通过将一个或多个散列算法至少应用于包括在所述最新添加的区块中的区块头来生成散列值;
由所述处理服务器的生成模块生成新区块头,其中,所述新区块头至少包括生成的散列值、时间戳和对序列,其中,所述对序列包括所述多个子网中的每个子网的对,每个对至少包括与相应的子网相关联的子网标识符和为所述相应的子网接收的所述至少一个交易数据条目中的每一个交易数据条目的merkle根;
由所述处理服务器的所述生成模块生成新区块,其中,所述新区块至少包括生成的新区块头和所述多个子网中的每个子网的所述至少一个交易数据条目;以及由所述处理服务器的发送设备至少将生成的新区块电子地发送到与所述分区区块链相关联的多个节点
2.根据权利要求1所述的方法,还包括:
由所述处理服务器的所述散列模块通过将一个或多个散列算法应用于为所述相应的子网接收的所述至少一个交易数据条目中的每一个交易数据条目,来生成所述多个子网中的每个子网的所述merkle根。
3.根据权利要求1所述的方法,其中,为所述多个子网中的每个子网接收所述至少一个交易数据条目还包括为所述多个子网中的每个子网接收所述merkle根。
4.根据权利要求1所述的方法,还包括:
由所述处理服务器的所述生成模块通过将生成的新区块添加到所述分区区块链来生成更新的分区区块链,其中
发送生成的所述新区块包括:发送包括生成的所述新区块的生成的更新的分区区块链。
5.根据权利要求1所述的方法,其中,所述多个子网中的每个子网的所述至少一个交易数据条目中的每一个交易数据条目至少包括与所述相应子网相关联的所述子网标识符。
6.根据权利要求1所述的方法,还包括:
将多个子网简档存储在所述处理服务器的子网数据库中,其中,每个子网简档都包括与子网相关的结构化数据集,其至少包括子网标识符和一个或多个语义规范。
7.根据权利要求6所述的方法,其中,基于包括在子网简档中的所述一个或多个语义规范来格式化为子网接收的所述至少一个交易数据条目中的每一个交易数据条目,其中,所述子网简档包括相关联的子网标识符。
8.根据权利要求6所述的方法,其中,基于包括在子网简档中的所述一个或多个语义规范,使用一个或多个散列算法来生成与子网相关联的所述merkle根,其中,所述子网简档包括相关联的子网标识符。
9.根据权利要求1所述的方法,其中,生成的新区块头还包括版本号、难度目标和随机数。
10.根据权利要求9所述的方法,其中,从与所述分区区块链相关联的所述多个节点中的一个节点接收所述随机数。
11.一种用于生成分区区块链的区块的系统,包括:
处理服务器的存储器,其被配置为存储构成分区区块链的至少一个区块,其中,所述至少一个区块包括最新添加的区块,所述最新添加的区块至少包括区块头和一个或多个交易条目;
所述处理服务器的接收设备,被配置为为多个子网中的每个子网接收至少一个交易数据条目;
所述处理服务器的散列模块,被配置为通过将一个或多个散列算法至少应用于包括在所述最新添加的区块中的所述区块头来生成散列值;
所述处理服务器的生成模块,其被配置为
生成新区块头,其中,所述新区块头至少包括生成的散列值、时间戳和对序列,其中,所述对序列包括所述多个子网中的每个子网的对,每个对至少包括与相应的子网相关联的子网标识符和为所述相应的子网接收到的所述至少一个交易数据条目中的每一个交易数据条目的merkle根;以及
生成新区块,其中,所述新区块至少包括生成的新区块头和所述多个子网中的每个子网的所述至少一个交易数据条目;以及
所述处理服务器的发送设备,被配置为至少将生成的新区块电子地发送到与所述分区区块链相关联的多个节点。
12.根据权利要求11所述的系统,其中,所述处理服务器的所述散列模块还被配置为:
通过将一个或多个散列算法应用于为所述相应的子网接收的所述至少一个交易数据条目中的每一个交易数据条目,来生成所述多个子网中的每个子网的所述merkle根。
13.根据权利要求11所述的系统,其中,为所述多个子网中的每个子网接收所述至少一个交易数据条目还包括为所述多个子网中的每个子网接收所述merkle根。
14.根据权利要求11所述的系统,其中,
所述处理服务器的所述生成模块还被配置为通过将生成的新区块添加到所述分区区块链来生成更新的分区区块链,并且
发送所述生成的新区块包括:发送包括所述生成的新区块的所生成的更新的分区区块链。
15.根据权利要求11所述的系统,其中,所述多个子网中的每个子网的所述至少一个交易数据条目中的每一个交易数据条至少包括与所述相应子网相关联的所述子网标识符。
16.根据权利要求11所述的系统,还包括:
所述处理服务器的子网数据库,被配置为存储多个子网简档,其中,每个子网简档都包括与子网相关的结构化数据集,其至少包括子网标识符和一个或多个语义规范。
17.根据权利要求16所述的系统,其中,基于包括在子网简档中的所述一个或多个语义规范来格式化为子网接收的所述至少一个交易数据条目中的每一个交易数据条目,其中,所述子网简档包括相关联的子网标识符。
18.根据权利要求16所述的系统,其中,基于包括在子网简档中的所述一个或多个语义规范,使用一个或多个散列算法来生成与子网相关联的所述merkle根,其中,所述子网简档包括相关联的子网标识符。
19.根据权利要求11所述的系统,其中,生成的新区块头还包括版本号、难度目标和随机数。
20.根据权利要求19所述的系统,其中,从与所述分区区块链相关联的所述多个节点中的一个节点接收所述随机数。

说明书全文

用于分区链和增强被许可的区块链的隐私的方法和系统

[0001] 相关申请的交叉引用
[0002] 本申请要求2016年7月15日提交的美国申请No.15/211,111的权益和优先权。通过引用的方式将上述申请的全部公开内容合并于此。

技术领域

[0003] 本公开涉及分区区块链(partitioned blockchain)的区块的生成,更具体地,涉及使用捕获子网信息的成对序列,以使得被许可的或没被许可的区块链能够存储具有多种格式和类型的交易,以用于具有更大效用的更鲁棒的区块链。

背景技术

[0004] 已经开发了区块链以提供分散的分布式数据库来记录电子交易。在许多情况下,区块链已用于使用基于数字的、虚拟的、加密货币的交易。在其他情况下,区块链可用于仅在不同时间记录数据,例如,用于文件的确认和时间戳。在任何情况下,区块链通常由区块组成,其中,每个区块都包括头和单个系列的交易记录
[0005] 然而,存储在构成区块链的区块中的交易记录通常被要求具有相同的数据格式并且包括相同数据类型,有时甚至需要数据的大小相同。在实体想要使用多种类型的区块链的情况下,例如,针对若干不同货币的不同区块链,该实体必须部署和操作每个不同的区块链,这可能需要大量资源和处理能。类似地,实体可能想要操作被许可的区块链,其中,可以使用不同级别的许可来参与到区块链,例如,通过限制可以向区块链添加新区块的节点。但是,由于传统区块链中的所有交易的格式都相似,因此,可能不会将许可扩展进入到区块链中的实际交易。
[0006] 因此,需要一种提供分区区块链的技术解决方案,其能够在单个区块链中存储多种交易格式和类型,减少了部署和操作区块链所需的计算资源和处理能力,同时还提供了对被许可的区块链的许可的增强使用。发明内容
[0007] 本公开提供了用于生成分区区块链的区块的系统和方法的描述。分区区块链的使用可以使单个区块链能够存储多个不同区块链的交易记录,从而将实现多个区块链所需的部署减少到单个分区区块链。此外,由于能够在每个分区中不同地格式化交易记录,因此区块链中的交易记录的分区可以限制对交易记录的访问
[0008] 一种用于生成分区区块链的区块的方法,包括:将构成分区区块链的至少一个区块存储到处理服务器存储器中,其中,所述至少一个区块包括最新添加的区块,所述最新添加的区块至少包括区块头和一个或多个交易条目;由所述处理服务器的接收设备接收用于多个子网中的每个子网的至少一个交易数据条目;由所述处理服务器的散列模块通过将一个或多个散列算法至少应用于包括在所述最新添加的区块中的区块头来生成散列值;由所述处理服务器的生成模块生成新区块头,其中,所述新区块头至少包括生成的散列值、时间戳和对序列,其中,所述对序列包括所述多个子网中的每个子网的对,每个对至少包括与相应的子网相关联的子网标识符和接收到的所述相应的子网的至少一个交易数据条目中的每一个交易数据条目的merkle根;由所述处理服务器的生成模块生成新区块,其中,所述新区块至少包括生成的新区块头和所述多个子网中的每个子网的所述至少一个交易数据条目;由所述处理服务器的发送设备至少将生成的新区块电子地发送到与所述分区区块链相关联的多个节点。
[0009] 一种用于生成分区区块链的区块的系统,包括:处理服务器的存储器,其被配置为存储构成分区区块链的至少一个区块,其中,所述至少一个区块包括最新添加的区块,所述最新添加的区块至少包括区块头和一个或多个交易条目;所述处理服务器的接收设备,其被配置为接收多个子网中的每个子网的至少一个交易数据条目;所述处理服务器的散列模块,其被配置为通过将一个或多个散列算法至少应用于包括在所述最新添加的区块中的区块头来生成散列值;所述处理服务器的生成模块,其被配置为:生成新区块头,其中,所述新区块头至少包括生成的散列值、时间戳和对序列,其中,所述对序列包括多个子网中的每个子网的对,每个对至少包括与相应的子网相关联的子网标识符和接收到的所述相应的子网的至少一个交易数据条目中的每一个交易数据条目的merkle根,并且所述生成模块生成新区块,其中,所述新区块至少包括生成的新区块头和用于所述多个子网中的每个子网的所述至少一个交易数据条目;以及所述处理服务器的发送设备,其被配置为至少将生成的新区块电子地发送到与所述分区区块链相关联的多个节点。附图说明
[0010] 当结合附图阅读时,从以下示例性实施例的详细描述中可以最好地理解本公开的范围。附图中包括以下各图:
[0011] 图1是示出根据示例性实施例的用于生成和实现分区区块链的高级系统架构的框图
[0012] 图2是示出根据示例性实施例的图1的处理服务器的框图,用于在分区区块链中生成区块和加入区块;
[0013] 图3是示出根据示例性实施例的使用图2的处理服务器生成用于具有多个子网的分区区块链的区块头的过程的流程图
[0014] 图4是示出根据示例性实施例的使用图2的处理服务器生成分区区块链的区块的过程的流程图;
[0015] 图5是示出根据示例性实施例的生成用于分区区块链的区块的示例性方法的流程图;
[0016] 图6是示出根据示例性实施例的计算机系统架构的框图。
[0017] 根据下文提供的详细描述,本公开的其他应用领域将变得显而易见。应当理解,示例性实施例的详细描述仅用于举例说明目的,因此,并不旨在必然限制本公开的范围。

具体实施方式

[0018] 专业术语
[0019] 区块链-基于区块链的货币的所有交易的分类账。一个或多个计算设备可以构成可以被配置为将交易处理和记录为区块链中的区块的一部分的区块链网络。一旦完成了区块,就将该区块添加到区块链中并从而更新交易记录。在许多情况下,区块链可以是按照时间顺序的交易分类账,或者可以以适于区块链网络使用的任何其他顺序呈现。在一些配置中,区块链中记录的交易可以包括目的地地址和货币量,以使得区块链记录有多少货币可归属于特定地址。在某些情况下交易是金融的,而在有些情况下交易不是金融的,或者可以包括附加或不同的信息,例如,源地址、时间戳等。在一些实施例中,区块链还可以包括或者作为另一种选择包括作为交易的形式的几乎任何类型的数据,该数据被放置在或者需要放置在无需许可的分布式数据库中,该数据库维护防止被篡改和修改的不断增长的数据记录列表,即使是数据的操作员也防止其篡改和修改数据记录列表,并且可以由区块链网络通过工作量证明和/或与其相关联的任何其他合适的验证技术来对区块链进行确认和验证。在某些情况下,与给定交易有关的数据可以进一步包括附加到交易数据的不直接作为交易的一部分的附加数据。在某些情况下,在区块链中包含此类数据可以构成交易。在这种情况下,区块链可以不直接与特定的数字货币虚拟货币法定货币或其他类型的货币相关联。
在某些情况下,可以在无需许可(例如,不受节制或不受限制)的情况下参与区块链(例如,作为提交和/或确认交易的节点)。在其他情况下,区块链可以是被许可的区块链,其中仅获得授权的计算设备可以作为节点操作,其中参与级别可以基于与其相关联的许可。
[0020] 用于生成和使用分区区块链的系统
[0021] 图1示出了用于在区块链网络中实现、生成和使用分区区块链的系统100。
[0022] 系统100包括处理服务器102。下面更详细地讨论的处理服务器102可以是区块链网络中的节点,被配置为生成区块并将区块添加到分区区块链。处理服务器102可以经由一个或多个通信网络连接与区块链网络中的多个其他区块链节点104(如图1所示的区块链节点104a和104b)连接。处理服务器102和区块链节点104可以利用工作量证明或其他合适类型的共识机制来确认和验证要使用相关的方法和系统添加到分区区块链的区块。
[0023] 处理服务器102可以被配置为从一个或多个计算设备106(如图1所示的计算设备106a和106b)接收交易记录。由处理服务器102接收的每个交易记录可以与多个不同子网中的一个子网相关联。如这里所使用的,术语“子网”可以指分区区块链中的分区,其表示分区区块链中的交易记录的类别、组或其他划分,该交易记录被格式化或服从与各子网相关联的语义规范。例如,分区区块链可以包括三个不同子网的交易记录,其中,与每个相应子网相关联的交易记录可以被不同地格式化,并且可以涉及与每个子网相关联的不同加密货币的转移。
[0024] 在一些实施例中,处理服务器102可以从单个计算设备106接收多个子网的交易记录。在其他实施例中,处理服务器102可以从计算设备106为单个子网接收交易记录,并且可以从多个不同计算设备106接收交易记录,其中每个计算设备106可以为多个不同子网中的一个子网提供交易记录。例如,计算设备106a可以为第一子网提供交易记录,而计算设备106b可以为第二子网提供交易记录。
[0025] 可以基于与对应子网相关联的语义规范来格式化交易记录。语义规范可以包括关于交易记录的格式和使用的规则或其他数据。例如,子网的语义规范可以包括关于哪些数据包含在交易记录中的规则、数据的排序的规则、每个数据值的大小的规则以及生成子网的merkle(梅克尔)根时使用的散列算法,下面将对其作更详细描述。例如,子网语义规范可能要求交易记录包括4字节的时间戳、16字节的交易量、16字节的源地址和相应的32字节的签名、4字节的目的地数量,以及对于多个目的地中的每个目的地来说,16字节的目的地地址和相应的32字节的签名,并且还可能需要特定的散列算法,例如,使用SHA-256算法的双重散列用于生成子网的merkle根。
[0026] 在一些实施例中,处理服务器102可以接收根据相应的子网的语义规范格式化的交易记录。在其他实施例中,处理服务器102可以接收每个交易的交易数据条目,其可以包括要包括在交易记录中的数据,其中,处理服务器102可以根据子网的语义规范生成交易记录,例如通过将接收到的数据相应地格式化。在某些情况下,处理服务器102可以接收格式化的交易记录和未格式化的交易数据的混合数据。例如,处理服务器102可以从计算设备106a接收对于第一子网的交易的数据,其可能需要根据第一子网的语义规范进行格式化,并且可以从计算设备106b接收用于第二子网的适当格式化的交易记录。
[0027] 一旦处理服务器102已经接收到和/或生成了交易记录,处理服务器102就可以生成新区块头,以将其包含在要添加到分区的区块链的新区块中。新区块头可以至少包括时间戳、与区块链中的前一区块相对应的散列值、以及对序列。时间戳可以由处理服务器102在生成新区块头时生成,并且可以基于与区块链的分区相关联的规则来格式化和表示。例如,时间戳可以是自UNIX纪元开始以来的秒数,或者可以是特定格式的日期和时间。可以通过将一个或多个散列算法应用于最新添加到所述区块链的先前区块的区块头来生成所述散列值。因此,该散列值可以充当对所述先前区块的指代符,其可以由区块链节点104使用以确保区块链中的各区块的正确排序。在生成散列值时使用的一个或多个散列算法可以专用于分区区块链,以使得区块链网络中生成新区块头的每个区块链节点104都使用相同的散列算法。
[0028] 包括在新区块头中的对序列可以由处理服务器102生成,并且可以包括分区区块链对应的每个子网的对。例如,在上面的例子中,对序列可以包括两对:一对用于第一和第二子网中的一个。对序列中的每对可以包括子网标识符和merkle根。子网标识符可以是与相应子网相关联的标识值。例如,子网标识符可以是整数、字母数字或其他合适的值。在一些情况下,子网标识符可以是特定格式,其可以与分区区块链相关联,以使得包括在对序列中的一对中的每个子网标识符被类似地格式化。
[0029] 可以通过对与相应子网相关联的每个交易记录进行散列来生成merkle根,所述每个交易记录要包括在要添加到分区区块链的新区块中。为多个数据值(例如,这里是指交易记录)生成merkle根的方法对于相关领域的技术人员将是显而易见的。在某些情况下,作为生成merkle根的一部分,各个交易记录可以按特定顺序排序。例如,可以对每个交易记录进行散列,然后通过自然排序(例如,升序数字顺序)对散列值进行排序,并通过以该顺序排列的交易记录散列生成merkle根。在某些情况下,用于子网的merkle根的排序和/或在merkle根中使用的散列算法可以是相应子网语义规范的一部分。在其他情况下,可以通过与分区区块链本身相关联的规则来指定排序和/或散列算法。
[0030] 在一些情况下,处理服务器102可以接收某些子网的交易记录,但是在生成新区块期间不接收一个或多个子网的任何交易记录。在这种情况下,可以使用预定义的值来生成那个子网的merkle根。例如,在一个示例中,可以使用与其他merkle根相同的散列算法通过对为“0”的值进行散列来生成merkle根。使用预定义值可以使得能够为没有接收到交易记录的子网生成merkle根,这方便了为区块生成区块头而不必等待交易记录,并且还可以用于指示此时区块不包含子网的任何交易记录,这是因为merkle根的值清楚地表明这种情况。
[0031] 一旦生成了新区块头,处理服务器102就可以生成新区块。新区块可以包括新区块头和为包括在新区块中而接收和/或生成的所有交易记录,每个交易记录都已经用于包括在新区块头中的相应的merkle根中。然后,处理服务器102可以将新区块添加到区块链,并且可以将新区块和/或更新的区块链电子地发送到与其连接的区块链网络中的每个区块链节点104。然后,区块链节点104可以使用合适的方法和系统来确认新区块,并且将新区块传播到整个区块链网络中的其他区块链节点104。
[0032] 在一些实施例中,生成的新区块的新区块头可以包括附加数据。附加数据可以基于分区区块链本身,例如,作为分区区块链的实现的一部分(例如,版本号)而需要该附加数据,或者该附加数据可以基于分区区块链的许可类型。例如,无需许可的区块链可以在新区块头中包括难度目标和随机数,作为在生成新区块头时使用的共识机制(例如,工作量证明)的一部分,可以由处理服务器102生成难度目标和随机数。在另一示例中,被许可的区块链可以在新区块头中包括一个或多个审计签名。
[0033] 这里讨论的方法和系统可以使得能够生成和实现分区区块链,其中,可以通过使用子网将多种格式的交易包括在单个区块链中。每个子网可以实现为对序列中的一对,其可以包括在要添加到分区区块链的区块的区块头中。对序列的使用可以使得将多个交易类型组合进分区区块链,而不会显著增加区块头的数据大小。另外,使用可以利用不同语义规范进行交易记录格式化的子网可以使分区区块链能够存储多个不同子网的交易记录的分布式数据库,其中,只有授权实体理解子网的交易记录。例如,子网的语义规范只能由授权实体知道,这可以使未授权实体不可理解该子网的交易记录。因此,这里讨论的分区区块链因为能够存储多种格式的交易记录,所以其不仅可以使区块链容量增加,而且还可以保持现有区块链格式的安全性和信任级别。
[0034] 处理服务器
[0035] 图2示出了系统100中的处理服务器102的实施例。对于相关领域的技术人员来说显而易见的是,图2中所示的处理服务器102的实施例仅作为举例说明而提供,并且可能不是穷举所有可能的用于执行如本文所讨论的功能的处理服务器102的配置。例如,图6所示的并且在下面更详细讨论的计算机系统600可以是处理服务器102的合适配置。
[0036] 处理服务器102可以包括接收设备202。接收设备202可以被配置为经由一个或多个网络协议在一个或多个网络上接收数据。接收设备202可以被配置为经由合适的通信网络和相应的网络协议从计算设备104和其他设备和系统接收数据。在一些实施例中,接收设备202可以包括多个设备,例如,通过不同网络接收数据的不同的接收设备(例如,通过局域网接收数据的第一接收设备和通过区块链网络接收数据的第二接收设备)。接收设备202可以接收电子传输的数据信号,其中,数据可以叠加或以其他方式编码到数据信号上,并且通过接收设备202接收数据信号来对数据信号进行解码、解析、读取或以其他方式获得所述数据。在一些情况下,接收设备202可以包括对接收到的数据信号进行解析以获得叠加在其上的数据的解析模块。例如,接收设备202可以包括解析器程序,其被配置为接收数据信号并且将接收到的数据信号变换成处理设备执行功能可用输入以完成本文描述的方法和系统。
[0037] 接收设备202可以被配置为接收由计算设备106电子地传输的数据信号,该数据信号上可以叠加或编码有交易记录和/或交易数据。每个交易记录或交易数据集可以伴随有与相应子网相关联的子网标识符。在一些情况下,由计算设备106电子传输并由接收设备202接收的数据信号可以叠加或编码有相应交易的merkle根。接收设备202还可以被配置为从区块链节点104接收数据信号,该数据信号可以叠加或编码有区块链数据,例如用于验证和添加到分区区块链的新区块。
[0038] 处理服务器102还可以包括通信模块204。通信模块204可以被配置为在模块、引擎、数据库、存储器和处理服务器102的其他组件之间传输数据,以用于执行本文所讨论的功能。通信模块204可以由一种或多种通信类型组成,并且利用各种通信方法在计算设备内的通信。例如,通信模块204可以包括总线、触针连接器、导线等。在一些实施例中,通信模块204还可以被配置为在处理服务器102的内部组件与处理服务器102的外部组件(例如,外部连接的数据库、显示设备、输入设备等)之间进行通信。处理服务器102还可以包括处理设备。处理设备可以被配置为执行本文所讨论的处理服务器102的功能,这对于相关领域的技术人员来说是显而易见的。在一些实施例中,处理设备可以包括专配置为执行处理设备的一个或多个功能的多个引擎和/或模块(例如,查询模块210、散列模块212、数据识别模块
214),和/或处理设备可以由上述引擎和/或模块组成。如本文所使用的,术语“模块”可以是被特别编程为接收输入、使用该输入执行一个或多个处理、并提供输出的软件硬件。基于本公开的内容,由各种模块执行的输入、输出和处理对于本领域技术人员将是显而易见的。
[0039] 处理服务器102可以包括子网数据库206。子网数据库206可以被配置为使用合适的数据存储格式和模式来存储多个子网简档208。子网数据库206可以是关系数据库,其利用结构化查询语言来存储、识别、修改、更新、访问存储在其中的结构化数据集等。每个子网简档208可以是被配置为存储与子网有关的数据的结构化数据集。每个子网简档208可以至少包括与相关子网相关联的子网标识符和语义规范数据。语义规范数据可以包括关于与相关子网相关联的交易记录的格式化的规则,并且还可以包括与相关子网相关联的附加规则和/或数据,例如,在为该相关子网的对生成merkle根时使用的散列算法和排序信息。
[0040] 处理服务器102可以包括查询模块210。查询模块210可以被配置为对数据库执行查询以识别信息。查询模块210可以接收一个或多个数据值或查询字符串,并且可以基于此在指示的数据库(例如,子网数据库206)执行字符串查询以识别存储在其中的信息。然后,查询模块210可以根据需要将识别出的信息输出到处理服务器102的适当的引擎或模块。查询模块210可以例如对子网数据库206执行查询以识别从计算设备106接收的多个交易数据条目的子网简档208,子网简档208可以由处理服务器102在将交易数据条目的格式化并将其作为交易记录包括在分区区块链的过程中使用。
[0041] 处理服务器102还可以包括散列模块212。散列模块212可以被配置为通过将一个或多个散列算法应用于提供给散列模块212的数据来生成散列值。散列模块212可以接收作为输入的要散列的数据,可以将一个或多个散列算法应用到该数据、并且可以将生成的散列值输出到处理服务器102的另一个模块或引擎。在一些情况下,可以向散列模块212提供要在生成散列值时使用的散列算法。在其他情况下,散列模块212可以识别要使用的散列算法,例如,通过生成查询并由查询模块210在子网数据库206和存储器218上执行该查询的来识别要使用的散列算法。例如,散列模块212可以被配置为生成区块头的散列值、生成交易记录的散列值、以及生成多组交易记录的Merkle根。
[0042] 处理服务器102还可以包括生成模块214。生成模块214可以被配置为生成交易记录、新区块头和新区块,以用于执行如本文所讨论的处理服务器102的功能。生成模块214可以接收请求、可以基于该请求生成数据、并且可以将生成的数据输出到处理服务器102的另一个模块或引擎。例如,可以指示生成模块214基于在相关子网简档208中包括的子网语义规范生成用于接收到的交易数据的交易记录。生成模块214还可以被配置为生成新区块头。新区块头可以至少包括时间戳、先前区块头的散列值(例如,由散列模块212生成),以及也由生成模块214生成的对序列。对序列可以包括:分区区块链中的每个子网的对,所述对包括子网标识符和要包括在相应的区块中的该子网的交易记录的Merkle根(例如,由散列模块212生成)。生成模块214还可以被配置为生成由新区块头和对应的交易记录组成的新区块。
[0043] 处理服务器102还可以包括发送设备216。发送设备216可以被配置为经由一个或多个网络协议在一个或多个网络上发送数据。发送设备216可以被配置为经由合适的通信网络和相应的网络协议将数据发送到计算设备106和其他实体。在一些实施例中,发送设备216可以包括多个设备,例如,通过不同网络发送数据的不同的发送设备(例如,通过局域网发送数据的第一发送设备和用于通过区块链网络发送数据的第二发送设备)。发送设备216可以电子地发送叠加有可以由接收计算设备解析的数据的数据信号。在一些情况下,发送设备216可以包括用于对数据进行叠加、编码或以其他方式将数据格式化为适合于传输的数据信号的一个或多个模块。
[0044] 发送设备216可以被配置为将数据信号电子地发送到处理服务器102所连接的区块链网络中的区块链节点104,该数据信号叠加或者编码有新区块和/或更新的区块链。发送设备216还可以被配置为将数据信号电子地发送到计算设备106和其他实体,以用于发送与本文所讨论的功能结合使用的数据。例如,发送设备216可以将语义规范数据发送到计算设备106,以用于格式化子网的交易记录。
[0045] 处理服务器102还可以包括存储器218。存储器218可以被配置为存储由处理服务器102使用以执行本文所讨论的功能的数据。存储器218可以被配置为使用合适的数据格式化方法和模式来存储数据,并且可以是任何合适类型的存储器,例如,只读存储器随机存取存储器等。存储器218可以包括,例如,加密密钥和算法、通信协议和标准、数据格式化标准和协议、处理设备的模块和应用程序的程序代码、以及可以适合于处理服务器102在执行本文公开的功能时使用的其他数据,这对于相关领域的技术人员来说是显而易见的。在一些实施例中,存储器218可以包括关系数据库或者由关系数据库组成,该关系数据库利用结构化查询语言来存储、识别、修改、更新、访问存储在其中的结构化数据集等。
[0046] 在分区区块链中生成新区块头的过程
[0047] 图3示出了用于生成要包括在分区区块链中的新区块头302的过程300,该分区区块链包括多个不同子网的数据。
[0048] 在过程300中,生成要添加到分区区块链304的新区块的新区块头302。分区区块链304可以包括多个区块306。包括在分区区块链304中的每个区块306可以至少包括区块头
308和多个交易记录310。处理服务器102的散列模块212可以被配置为通过将一个或多个散列算法应用于区块306中包括的区块头308来生成散列值312,该区块306是最新添加到分区区块链304中的区块。在一些实施例中,可以通过包括在区块头308中的时间戳来识别最新添加的区块。处理服务器102的生成模块214可以生成新的时间戳314以包括在新区块头302中,可以在生成新区块头302时生成新的时间戳314。
[0049] 作为过程300的一部分,处理服务器102的接收设备202可以接收多个不同子网318中的每一个子网的多个交易记录310。在一些情况下,接收设备202可以接收交易数据条目,可以由处理服务器102的生成模块214基于与相应子网318相关联的语义规范将接到的交易数据条目格式化为每个子网318的交易记录310,例如,可以通过存储在子网数据库206中的相应子网简档208来识别该语义规范。多个子网318中的每个子网都可以具有与其相关联的子网标识符320。子网标识符320可以伴随有每个交易记录310或与相应子网318相关联的交易数据条目,并且子网标识符320还可以存储在子网的相应子网简档208中。
[0050] 处理服务器102的散列模块212可以生成每个子网318的merkle根322。每个子网318的merkle根322都可以是merkle树中的根节点,其中,使用接收到的或者为相应的子网
318生成的交易记录310生成merkle树。在某些情况下,可以由处理服务器102的散列模块
212对交易记录进行散列,然后在生成merkle根322之前对各散列值进行排序。在某些情况下,排序和散列可以基于与子网318相关的语义规范,例如,该语义规范可以存储在相应的子网简档208中。
[0051] 处理服务器102的生成模块214可以被配置为生成每个子网318的对324。每个对324可以包括与相应子网318相关联的子网标识符320和生成的相应子网318的merkle根
322。生成模块214可以生成对序列316,其包括分区区块链304中包括的每个子网318的每个对324。生成模块214可以将生成的序列316包括在新区块头302中。包括散列值312、时间戳
314和对序列316的新区块头302可以包括在由处理服务器102的生成模块214生成的新区块
306中,以验证新区块并将其添加到分区区块链304中。
[0052] 生成区块并将其添加块到分区区块链的过程
[0053] 图4示出了用于生成新区块并将其添加到分区区块链的过程400,其中,该分区区块链包括多个不同子网的交易记录,基于与子网相关联的语义规范对交易记录进行格式化。
[0054] 在步骤402,处理服务器102的接收设备202可以接收用于多个子网的多个交易数据条目。每个交易数据条目与要包含在分区区块链中的交易相关,并且可以包括与交易相关的交易数据和与交易数据条目相关的子网的子网标识符。在步骤404,处理服务器102可以基于与各个子网相关联的语义规范来确定该交易数据条目是否已经被格式化为交易记录。可以基于交易数据条目的格式和该格式与相应的子网相关联的语义规范的比较进行该确定,其中,可以通过子网数据库206的查询(例如,通过处理服务器102的查询模块210来查询)以识别包括伴随的子网标识符的子网简档208,来识别与子网相关联的语义规范。
[0055] 如果在步骤404,处理服务器102确定一个或多个交易数据条目没有被正确地格式化为交易记录,则在步骤406,生成模块214可以为每个不正确的交易数据条目生成格式化的交易记录。可以基于与如在相关子网简档208中识别的相应子网相关联的语义规范来格式化每个交易记录。一旦在接收到每个交易数据条目时每个交易数据条目是被格式化的,或者一旦生成模块214格式化了每个交易数据条目,则在步骤408,处理服务器102可以确定是否为任何子网提供了merkle根。可以基于向处理服务器102提供交易数据条目的每个计算设备106提供的数据进行该确定。在一些情况下,处理服务器102可以接收一个子网的merkle根,而不是包含在分区区块链中的每个子网的merkle根。例如,计算设备106a可以为第一子网提供格式化的交易记录和相应的merkle根,而计算设备106b可以为第二子网提供未格式化的交易数据条目并且不为其提供merkle根。
[0056] 如果没有为每个子网提供merkle根,则在步骤410,处理服务器102的散列模块212可以通过将一个或多个散列算法应用于相关的交易记录来为每个必要的子网生成merkle根。在一些情况下,可以在子网语义规范中指定散列模块212使用的散列算法和/或在生成merkle根时的交易记录的排序,可以在相关的子网简档208中识别该子网语义规范。
[0057] 一旦处理服务器102通过接收或生成而具有每个子网的merkle根,则在步骤412,处理服务器102的散列模块212可以通过生成包括在分区区块链中的最新区块中的区块头的散列值来开始生成新区块的区块头。可以通过将一个或多个散列算法应用于区块头来生成散列值。在步骤414,处理服务器102的生成模块214可以生成新区块的新区块头。新区块头可以至少包括分区区块链中最新区块的区块头的散列值、以及时间戳和对序列(例如,也由生成模块214生成)。对序列可以包括分区区块链中包括的每个子网的对,其中,每个对包括相应子网的子网标识符和merkle根。
[0058] 在步骤416,处理服务器102的生成模块214可以生成要添加到区块链的新区块。新区块可以至少包括生成的新区块头和每个格式化的交易记录。在某些情况下,当格式化的交易记录包括在新区块中时,该格式化的交易记录可包括和/或附加有相关的子网标识符。在步骤418,处理服务器102的发送设备216可以将叠加或编码有新区块的数据信号电子地发送到与其连接的区块链网络中的其他区块链节点104。其他区块链节点104可以验证该区块并进而将新生成的区块添加到其区块链的副本,并且可以将新块传播到区块链网络中的其他区块链节点104。
[0059] 用于生成分区区块链的区块的示例性方法
[0060] 图5示出了用于生成新区块以将其添加到分区区块链的方法500,该新区块在区块头中包括对序列,该区块包括与多个子网相关的数据。
[0061] 在步骤502,可以将构成分区区块链的至少一个区块存储到处理服务器(例如,处理服务器102)的存储器(例如,存储器218)中,其中,该至少一个区块包括最新添加的区块,该最新添加的区块至少包括区块头和一个或多个交易条目。在步骤504,可以由处理服务器的接收设备(例如,接收设备202)接收用于多个子网中的每个子网的至少一个交易数据条目。
[0062] 在步骤506,可以由处理服务器的散列模块(例如,散列模块212)通过将一个或多个散列算法至少应用于包括在最新添加的区块中的区块头来生成散列值。在步骤508,可以由处理服务器的生成模块(例如,生成模块214)生成新区块头,其中,新区块头至少包括生成的散列值、时间戳和对序列,其中,对序列包括多个子网中的每个子网的对,每个对至少包括与相应的子网相关联的子网标识符和接收到的用于相应的子网的所述至少一个交易数据条目中的每一个交易数据条目的merkle根。
[0063] 在步骤510,可以由处理服务器的生成模块生成新区块,其中,新区块至少包括生成的新区块头和多个子网中的每个子网的所述至少一个交易数据条目。在步骤512,可以由处理服务器的发送设备(例如,发送设备216)至少将生成的新区块电子地发送到与分区区块链相关联的多个节点(例如,区块链节点104)。
[0064] 在一个实施例中,方法500还可以包括:由处理服务器的散列模块通过将一个或多个散列算法应用于接收到的用于相应的子网的至少一个交易数据条目中的每一个交易数据条目,来生成多个子网中的每个子网的merkle根。在一些实施例中,接收用于多个子网中的每个子网的至少一个交易数据条目还可以包括,接收多个子网中的每个子网的merkle根。在一个实施例中,方法500还可以包括:由处理服务器的生成模块通过将生成的新区块添加到分区区块链来生成更新的分区区块链,其中,发送生成的新区块包括:发送包括所述生成的新区块的所述生成的更新的分区区块链。
[0065] 在一些实施例中,所述多个子网中的每个子网的至少一个交易数据条目中的每一个交易数据条目可以至少包括与相应子网相关联的子网标识符。在一个实施例中,生成的新区块头还可以包括版本号、难度目标和随机数。在另一实施例中,可以从与分区区块链相关联的多个节点中的一个节点接收随机数。
[0066] 在一些实施例中,方法500还可以包括:将多个子网简档(例如,子网简档208)存储在处理服务器的子网数据库(例如,子网数据库206)中,其中,每个子网简档都包括与子网相关的结构化数据集,其至少包括子网标识符和一个或多个语义规范。在另一实施例中,可以基于包括在子网简档中的一个或多个语义规范来格式化接收到的用于子网的至少一个交易数据条目中的每一个交易数据条目,其中,该子网简档包括相关的子网标识符。在另一个实施例中,可以基于包括在子网简档中的一个或多个语义规范,使用一个或多个散列算法来生成与子网相关联的merkle根,其中,该子网简档包括相关的子网标识符。
[0067] 计算机系统架构
[0068] 图6示出了计算机系统600,其中本公开的实施例或其部分可以实现为计算机可读代码。例如,可以使用硬件、软件、固件、其上存储有指令的非暂时性计算机可读介质或其组合来在计算机系统600中实现图1的处理服务器102,并且图1的处理服务器102可以在一个或多个计算机系统或其他处理系统中实现。硬件、软件或其任何组合可以体现为用于实现图3-5的方法的模块和组件。
[0069] 如果使用可编程逻辑,则这种逻辑可以在由可执行软件代码配置成为专用计算机或专用设备(例如,可编程逻辑阵列、专用集成电路等)的商业上可获得的处理平台上执行。本领域普通技术人员可以理解,可以使用包括多核多处理器系统、小型计算机、大型计算机、具有分布式功能的链接或聚集的计算机以及几乎可以嵌入到任何设备中的通用或微型计算机的各种计算机系统配置来实践所公开的主题的实施例。例如,可以使用至少一个处理器设备和存储器来实现上述实施例。
[0070] 如本文讨论的处理器单元或设备可以是单个处理器、多个处理器或其组合。处理器设备可具有一个或多个处理器“核”。如本文所讨论的术语“计算机程序介质”、“非暂时性计算机可读介质”和“计算机可用介质”通常用于指代有形介质,例如,可移动存储单元618、可移动存储单元622以及安装在硬盘驱动器612中的硬盘。
[0071] 借助于该示例性计算机系统600描述了本公开的各种实施例。在阅读本说明书之后,如何使用其他计算机系统和/或计算机体系结构来实现本公开对相关领域的技术人员来说将显而易见。尽管可以将各个操作描述为顺序过程,但是一些操作事实上可以并行地、同时地和/或在分布式环境中执行,并且程序代码可以本地存储或远程存储以供单个或多个处理器的机器访问。另外,在一些实施例中,在不脱离所公开的主题的精神的情况下,可以重新排列操作的顺序。
[0072] 处理器设备604可以是被配置为执行本文公开的功能的专用或通用处理器设备。处理器设备604可以连接到通信基础设施606,例如,总线、消息队列、网络、多核消息传输方案等。网络可以是适合于执行本文公开的功能的任何网络,其可以包括局域网(LAN)、广域网(WAN)、无线网络(例如WiFi)、移动通信网络、卫星网络、因特网、光纤、同轴电缆、红外线、射频(RF)、或其任何组合。其他合适的网络类型和配置对于相关领域的技术人员来说将是显而易见的。计算机系统600还可以包括主存储器608(例如,随机存取存储器、只读存储器等),并且还可以包括辅助存储器610。辅助存储器610可以包括硬盘驱动器612和可移动存储驱动器614,例如软盘驱动器、磁带驱动器、光盘驱动器、闪存等。
[0073] 可移动存储驱动器614可以以公知的方式从可移动存储单元618读取和/或写入到可移动存储单元618。可移动存储单元618可以包括可由可移动存储驱动器614读取和写入的可移动存储介质。例如,如果可移动存储驱动器614是软盘驱动器或通用串行总线端口,则可移动存储单元618可以分别是软盘或便携式闪存驱动器。在一个实施例中,可移动存储单元618可以是非暂时性计算机可读记录介质。
[0074] 在一些实施例中,辅助存储器610可以包括允许将计算机程序或其他指令加载到计算机系统600的备选装置,例如可移动存储单元622和接口620。这样的装置的示例可以包括程序盒和盒式接口(例如,如视频游戏系统中所见到的)、可移动存储器芯片(例如,EEPROM、PROM等)和相关的插座以及其他可移动存储单元622和接口620,这对本领域技术人员来说是显而易见的。
[0075] 存储在计算机系统600中(例如,存储在主存储器608和/或辅助存储器610中)的数据可以存储在任何类型的合适的计算机可读介质上,例如,光学存储器(例如,光盘、数字通用光盘、蓝光光盘等)或磁带存储器(例如,硬盘驱动器)。可以以任何类型的合适的数据库配置(例如,关系数据库、结构化查询语言(SQL)数据库、分布式数据库、对象数据库等)来配置该数据。合适的配置和存储类型对本领域的技术人员来说将是显而易见的。
[0076] 计算机系统600还可以包括通信接口624。通信接口624可以被配置为允许软件和数据在计算机系统600和外部设备之间传输。示例性的通信接口624可以包括调制解调器、网络接口(例如,以太网卡)、通信端口、PCMCIA插槽和卡等。经由通信接口624传送的软件和数据可以是信号的形式,其可以是电子的、电磁的、光学的或其它信号,这对相关领域的技术人员来说是显而易见的。信号可以经由通信路径626行进,通信路径626可以被配置为承载信号并且可以使用电线、电缆、光纤、电话线、蜂窝电话链路、射频链路等来实现。
[0077] 计算机系统600还可以包括显示器接口602。显示器接口602可以被配置为允许数据在计算机系统600和外部显示器630之间传输。示例性的显示器接口602可以包括高清晰度多媒体接口(HDMI)、数字视频接口(DVI)、视频图形阵列(VGA)等。显示器630可以是用于显示经由计算机系统600的显示器接口602发送的数据的任何适当类型的显示器,包括阴极射线管(CRT)显示器、液晶显示器(LCD)、发光二极管(LED)显示器、电容式触摸显示器、薄膜晶体管(TFT)显示器等。
[0078] 计算机程序介质和计算机可用介质可以指存储器,例如主存储器608和辅助存储器610,其可以是存储器半导体(例如,DRAM等)。这些计算机程序产品可以是用于向计算机系统600提供软件的装置。计算机程序(例如,计算机控制逻辑)可以存储在主存储器608和/或辅助存储器610中。也可以经由通信接口624来接收计算机程序。当该计算机程序被执行时,可以使计算机系统600能够实现本文所讨论的本方法。特别地,当计算机程序被执行时,可以使得处理器设备604能够实现如本文所讨论的图3-5所示的方法。因此,该计算机程序可以表示计算机系统600的控制器。在使用软件实现本公开的情况下,可以将软件存储在计算机程序产品中,并使用可移动存储驱动器614、接口620、和硬盘驱动器612或通信接口624将软件加载到计算机系统600中。
[0079] 处理器设备604可以包括被配置为执行计算机系统600的功能的一个或多个模块或引擎。每个模块或引擎可以使用硬件来实现,并且在一些例子中也可以使用软件(例如,对应于存储在主存储器608或辅助存储器610中的程序代码和/或程序的软件)来实现。在该例子中,在由计算机系统的硬件执行程序代码之前,可以由处理器设备604(例如,通过编译模块或引擎)对程序代码进行编译。例如,程序代码可以是以编程语言编写的源代码,编程语言被编译成诸如汇编语言或机器代码之类的较低级别的语言以供处理器设备604和/或计算机系统600的任何附加硬件组件执行。编译过程可以包括使用词法分析、预处理、解析、语义分析、语法指导翻译、代码生成、代码优化、以及可适用于将程序代码翻译成适合于控制计算机系统600执行本文公开的功能的较低级别语言的任何其他技术。对相关领域的技术人员显而易见的是,该过程导致计算机系统600成为专门编程为执行上述功能的专门配置的计算机系统600。
[0080] 除了其他特性之外,与本公开一致的技术提供了一种用于为分区区块链生成区块的系统和方法。虽然上面已经描述了所公开的系统和方法的各种示例性实施例,但是应当理解,它们仅仅是为了示例的目的而提供的,而不是限制。这不是穷尽的并且不将披露的内容限制在所披露的确切形式上。在不背离广度或范围的情况下,可以根据上述教导作出修改和变化或者可以从本公开的实践获得修改和变化。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈