用于区块链的方法和系统与流程
未命名
10-28
阅读:103
评论:0
1.本发明涉及用于在区块链中生成区块的方法和系统。尤其地,这些方法和系统提供了一种用于对待包括在区块链的区块中的事务进行选择和排序的方法。
背景技术:
2.区块链包括电子分类账,该分类账分布在节点网络上。这些区块的链接方式是,下一个区块依赖于上一个区块的数据。在不修改链中随后出现的后续区块的情况下,任何给定区块中的数据都不能追溯更改。这就创建了一个设计安全的链。
3.区块链技术在越来越广泛的环境中采用。区块链可以用于提供各方之间事务的记录。例如,比特币等加密货币是基于区块链技术的。参与节点通过区块链客户端执行事务,新区块是根据区块链协议创建的。每个区块包括具有一些附加数据的事务集。区块链是可公开验证的,参与节点可以根据区块链协议确定其事务已记录在区块链中。
技术实现要素:
4.本发明的一个目的是提供一种用于生成区块链的区块的方法。
5.上述和其它目的通过独立权利要求的特征实现。其它实现方式在从属权利要求、说明书和附图中显而易见。
6.根据第一方面,提供了一种包括多个节点的区块链网络的方法。所述方法包括:在区块链网络的第一节点处,接收区块链事务集,生成数据值的第一矢量,其中,所述第一矢量的每个条目根据来自所述事务集的相应事务确定,生成数据值的第二矢量,所述第二矢量包括所述第一矢量的所述数据值的有序列表,将所述第二矢量发送到所述区块链网络的一个或多个其它节点,所述一个或多个其它节点根据所述第二矢量生成数据值的第三矢量,将所述第三矢量发送到所述节点中的每个,所述一个或多个其它节点发送与所述第三矢量的生成关联的数据,在所述第一节点处生成用于区块链的包括事务的有序列表的区块。事务在所述事务的有序列表中的位置对应于与所述事务关联的数据值在所述第三矢量中的位置。
7.根据第一方面的方法以防止恶意方攻击的方式生成区块链的区块。
8.根据第二方面,提供了一种用于区块链网络的节点。所述节点包括处理器和与所述处理器通信耦合的存储器。所述存储器存储指令,当所述指令在所述处理器上实现时,所述指令使所述处理器访问区块链事务集,生成数据值的第一矢量,其中,所述第一矢量的每个条目根据所述事务集中的相应事务确定,生成数据值的第二矢量,所述第二矢量包括所述第一矢量的所述数据值的有序列表,将所述第二矢量发送到所述区块链网络的一个或多个其它节点,从所述一个或多个其它节点中的一个接收数据值的第三矢量,所述第三矢量由所述一个或多个其它节点根据所述第二矢量确定,从所述一个或多个其它节点接收与所述第三矢量的所述生成关联的数据,根据第三矢量生成用于区块链的包括所述事务的有序列表的区块。事务在所述事务的有序列表中的位置对应于与所述事务关联的数据值在所述
第三矢量中的位置。
9.根据第三方面,提供了一种包括多个节点的区块链网络中的节点。所述节点包括处理器和与所述处理器通信耦合的存储器。所述存储器存储指令,当所述指令在处理器上实现时,所述指令使处理器访问从所述区块链网络的所述多个节点中的第二节点接收的数据值的矢量,根据从所述第二节点接收的所述矢量生成另一数据值的矢量,对所述另一矢量进行重新排序,将重新排序的数据值的矢量发送到所述区块链网络的所述多个节点中的第三节点。
10.在一种实现方式中,所述区块包括所述第三矢量和与所述第三矢量的所述生成关联的数据。
11.这提供了一种包括数据的区块,以使节点能够验证事务是否应包括在区块中及其在所述区块中的位置。
12.在另一种实现方式中,生成区块包括根据与所述区块链关联的区块大小确定待包括在所述区块中的包括所述事务的有序列表的第一条目的子集。
13.这提供了一种确保事务数量保持在区块链的区块大小范围内的方法。
14.在另一种实现方式中,生成第一矢量的数据值包括对输入评估密码安全函数,所述输入包括与所述相应事务关联的数据。
15.在另一种实现方式中,所述密码安全函数包括哈希函数。
16.这些实现方式提供了用于从事务数据安全地生成哈希值的方法。
17.在另一种实现方式中,所述输入还包括随机生成的数据值。
18.这可以用于防止区块链受到恶意方攻击。
19.在另一种实现方式中,生成所述第三矢量包括所述一个或多个其它节点按顺序确定数据值的矢量。
20.在另一种实现方式中,所述第三矢量包括节点序列中的最终节点输出的数据值的矢量。
21.在另一种实现方式中,确定数据值的矢量包括,在所述一个或多个其它节点中的每个处,从所述一个或多个其它节点中的前一节点接收数据值的矢量,根据所接收的矢量生成数据值的另一矢量,对所述另一矢量进行重新排序,将重新排序的数据值的矢量发送到所述一个或多个其它节点的后一节点。
22.在另一种实现方式中,生成数据值的另一矢量包括对输入评估密码安全函数,所述输入包括从前一节点接收的矢量的数据值。
23.在另一种实现方式中,所述输入包括随机生成的数据值,所述密码安全函数包括哈希函数。
24.在另一种实现方式中,与所述第三矢量的所述生成关联的数据包括一个或多个哈希函数和/或与所述一个或多个其它节点关联的一个或多个随机生成的数据值。
25.这些实现方式提供了用于安全地按顺序对事务进行重新排序的方法。
26.在另一种实现方式中,确定所述第三矢量包括在所述一个或多个其它节点中的两个或更多个之间执行多方协议,以安全地生成所述第三矢量。
27.这提供了安全地对事务进行重新排序的替代方法。
28.在另一种实现方式中,对矢量的数据值进行重新排序包括对所述矢量应用
fisher-yates洗牌。
29.在另一种实现方式中,生成所述区块包括按顺序重新计算所述相应节点的所述数据值的矢量,根据重新计算的矢量和所述数据值的第三矢量,确定事务在所述有序列表中的所述位置。
30.在另一种实现方式中,根据所述事务的有序列表和与所述第三矢量的所述生成关联的数据验证区块。
31.在另一种实现方式中,验证所述区块包括根据与所述第三矢量的所述生成关联的所述数据,按顺序重新计算所述相应节点的所述数据值的矢量;确定与事务关联的数据值在所述第三矢量中的位置;验证所述事务在所述事务的有序列表中的位置与所述第三矢量中的所述位置对应。
32.这些实现方式支持节点根据排序验证事务是否包括在区块中的正确位置。
33.根据下文描述的实施例,本发明的这些和其它方面是显而易见的。
附图说明
34.为了更完整地理解本发明及其优点,现在参考以下结合附图的描述。
35.图1示出了根据示例的节点网络的示意图。
36.图2示出了根据示例的节点网络的示意图。
37.图3示出了根据示例的节点网络的示意图。
38.图4示出了根据示例的节点网络的示意图。
39.图5示出了根据示例的区块链中的区块的示意图。
40.图6示出了根据示例的用于在区块链中生成区块的方法的框图。
41.图7示出了根据示例的计算系统的简化示意图。
具体实施方式
42.下面详细描述示例性实施例,以使本领域普通技术人员能够体现和实现本文描述的系统和过程。重要的是要理解,实施例可以通过许多替代形式提供,并且不应解释为限于本文所阐述的示例。
43.因此,虽然实施例可以通过各种方式修改并采取各种替代形式,但其具体实施例在附图中示出,并在下文作为示例详细描述。无意限制所公开的特定形式。相反,应包括属于所附权利要求范围内的所有修改、等价物和替代方案。示例性实施例的元件在整个附图中一致地用相同的附图标记表示,并在适当的情况下详细描述。
44.本文用于描述实施例的术语并不旨在限制范围。“一”、“一个”和“所述”是单数的,因为它们具有单一的指代物,但是,本文件中使用单数形式不应排除存在一个以上的指代物。换句话说,单数中提到的元件可以编号一个或多个,除非上下文中另有明确说明。还将理解,本文所使用的术语“包括”表示存在所陈述的特征、项目、步骤、操作、元件和/或组件,但是不排除存在或添加一个或多个其它特征、项目、步骤、操作、元件、组件和/或它们的组合。
45.除非另有定义,否则本文使用的所有术语(包括技术和科学术语)均应解释为本领域的惯例。还将理解,除非本文明确定义,否则通常用法中的术语也应解释为相关领域中的
惯例,而不是理想化或过于形式化的意义。
46.区块链是一种分布式电子分类账,包括一系列数据区块。这些区块被链接在一起,以便下一个区块依赖于前面的区块的数据。在不修改链中随后出现的后续区块的情况下,任何给定区块中的数据都不能追溯更改。
47.在公共区块链中,区块链网络的节点持有每个区块的相同副本,每个区块中的事务以相同的顺序出现。这可以防止双重支付。例如,在加密货币的区块链中,如果在第一事务trx1中,第一币被给予a方,并且在第二事务trx2中,相同的币被给予b方,则必须使在区块中随后出现的事务无效,因为与该事务关联的币不再属于发起后一个事务的一方的所有权。如果区块链的两个副本以不一致的顺序进行这两个事务,则一些节点可能会将a方记录为该币的新所有者,而其它节点则会将b方记录为该币的新所有者。
48.区块链中事务排序的方法不一定要与事务的时间排序相匹配,因为它们是及时发生的。由于网络的不同步性,暂时排序事务实际上可能会导致差异。而是,无论使用哪种方法,节点持有的区块链副本中事务的排序必须在节点之间一致。
49.在分布式公共区块链(例如比特币)中,任何节点都可以参与创建新区块的过程。该过程可以基于共识协议。在基于工作量证明的区块链中,根据其它节点的共识,完成计算任务的第一个节点将获得决定区块中包括哪些事务以及顺序的权利。在比特币的情况下,获胜节点被授予币,因此节点被激励参与新区块的生成。在基于权益证明的系统中,节点被授予基于其“权益”生成新区块的权利。在加密货币的背景下,权益可以包括它们持有的加密货币的金额。具有较大权益的节点更有可能被授予生成新区块的权利。
50.在许可的区块链中,本文称为排序器或排序器节点的专用节点子集负责创建新区块。事务在节点级别被接受和执行,然后传输到排序器节点,以包括在新区块中。主排序器可以从排序器节点中选择。主排序器选择待包括在新区块中的事务,并确定它们出现的顺序。
51.在许可的区块链中,如果不采取进一步的安全措施,恶意的主排序器可能会为了其利益篡改事务的排序。例如,它可以按它认为合适的任何顺序对事务进行排序,以优先考虑主排序器组织的事务。或者,它可能导致竞争组织的事务无效。
52.为了解决这个问题,可以针对一轮事务轮换主排序器。在参与组织中轮换主排序器可以减轻每个排序器固有的偏差。偏差随着时间的推移均匀分布,最终平衡。但是,每个特定轮次仍然容易被主排序器操纵。此外,事务可能会反复被审查出区块,直到受益组织成为主排序器。这可能会对事务提交时延产生负面影响。
53.或者,待处理事务的排序可以由节点委员会执行。可以根据衡量节点遵守协议指引的信誉评级,在每轮中从潜在节点池选出一个新的委员会。不幸的是,为节点建立信誉评级需要大量时间。此外,基于信誉的评级不能防止恶意节点的侵害,因为在机会激励恶意节点不诚实地行事之前,恶意节点的行为是诚实的。
54.在一些许可的区块链中,事务使用阈值加密方案加密。事务排序以任意方式完成,区块使用加密事务创建。一旦创建区块,事务将由排序器使用阈值加密方案联合解密。分析事务,并将有效事务提交到区块。
55.在阈值加密区块链中,由于事务数据是加密的,所以排序器无法检查背书、事务有效性或事务重复。提交事务的节点需要跳过无效的事务,但整个区块将在网络上被复制。这
就会产生很大的存储占用空间。此外,区块的大小有限,无效或重复的事务会导致其它事务在以后的区块中提交,从而导致提交时延增加和吞吐量低。此外,实现阈值加密方案需要执行附加密钥管理功能所需的专门客户端应用程序。
56.图1是根据示例的用于实现区块链的节点网络100的简化示意图。网络100包括用户节点和本文称为排序器的排序器节点。网络100的用户节点实现区块链客户端。客户端可以是通过处理节点中的硬件可执行的软件程序。客户端将用户节点与区块链网络100中的其它节点连接,并为网络100实现区块链协议。客户端可以提供多种功能,包括处理事务、获取与网络状态相关的信息、与网络同步以及密钥管理和密码功能等安全功能。
57.事务是根据区块链协议定义的。当用户执行事务时,数据由用户的客户端发送到其排序器。在图1中,有四个排序器110、120、130、140,但在替代实现方式中可以使用或多或少的排序器。排序器110从两个用户111、112接收事务。排序器120从用户121接收事务。排序器130从三个用户131、132、133接收事务。排序器140从两个用户141、142接收事务。
58.根据本文描述的示例,排序器110、120、130、140实现排序机制。排序机制是一种用于对用于存储在区块链中的事务进行排序的协议。排序器110、120、130、140确定哪些事务被放置在区块中,以及事务被放置在区块中的顺序。区块链本身是一种分类账,提供区块链事务的记录。区块链可以由每个排序器110、120、130、140验证:每个排序器110、120、130、140可以检查他们期望出现在区块链中的事务是否以预期的顺序出现在区块链中。
59.图2为网络100的排序器110、120、130、140的简化示意图200。在图2中,每个排序器110、120、130、140聚合来自其相应用户的待处理事务。排序器110从用户111、112接收事务集210。排序器120从用户121接收事务集220。排序器130从用户131、132、133接收事务集230。排序器140从用户141、142接收事务集240。
60.根据在区块创建周期期间的示例,排序器组110、120、130、140中的主排序器从其它排序器中的每个接收事务集。主排序器从所有排序器获取所有待处理事务集,即使该集超过单个区块的大小,并合并它们以避免重复。在图2中,排序器110是主排序器,其从排序器120、130、140中的每个接收待处理事务集220、230、240,以及从用户111、112接收事务集210。例如,在生成预定数量的新区块之后,主排序器可以更改为不同的排序器。
61.图3为根据示例的排序器的示意图300。在图3中,主排序器110具有通过排序器110、120、130、140来自用户的t个待处理事务trx1……
trx
t
的集310。t个待处理事务可以由主排序器最初按任何顺序布置。这由图3中的框320表示。
62.主排序器110创建新的空列表hl并生成随机数据值s0。对于列表320中的每个事务trxi,主排序器通过将函数f应用于trxi和随机生成的数据值s0来计算数据值。所得数据值添加到列表hl中。根据示例,该函数可以是哈希函数,例如sha-256。哈希函数从任意长度输入生成固定长度输出。
63.在示例中,主排序器将该函数应用于事务与随机生成的数据值的级联,以输出新的数据值:
64.f(trxi||s0)
65.该值被添加到列表hl中。主排序器110可以通过应用以下过程,使用fisher-yates洗牌等对列表hl进行重新排序:
66.for i from t-1downto 1do:
67.j
←
randominteger such that 0≤j≤i
68.exchange hl[j]and hl[i]
[0069]
所得列表330包括从事务trx和随机数据值s0生成并以随机顺序洗牌的t个数据值的矢量,其中,t是待处理事务的数量。
[0070]
图4为根据示例的网络100的排序器110、120、130、140的简化示意图400。在图4中,列表hl 330被广播到其它排序器120、130、140。排序器120、130、140对列表hl进行重新排序,并生成数据值的新矢量。根据本文描述的示例,这可以以几种不同的方式完成。例如,排序器120、130、140可以执行多方洗牌。多方洗牌有利地确保没有单个排序器可以影响列表的最终顺序。或者,可以应用顺序洗牌。
[0071]
在图4所示的示例中,排序器120、130、140执行顺序洗牌。第i排序器首先生成随机数据值si。对于从前一排序器接收的数据值的矢量中的每个数据值,排序器通过将sha-256等函数应用于数据值和随机生成的数据值si来计算数据值。所得数据值将替换前一矢量中的前一数据值。一旦所有新的数据值都由排序器确定,排序器就将之前描述的fisher-yates洗牌等洗牌应用于数据值,以生成新矢量。
[0072]
新矢量被传递到下一个排序器。例如,排序器120输出从列表hl 330确定的数据值420的新矢量,排序器130输出从矢量420确定的新矢量430,排序器140输出从矢量430确定的新矢量440。在一些示例中,策略可以指定在1至n
–
1之间的某个值k发生了多少次再哈希和/或重新洗牌操作,其中,n是排序器的总数。
[0073]
最后排序器140将数据值的最终洗牌矢量广播到所有其它排序器110、120、130。每个排序器120、130、140执行以下操作:首先,广播其在顺序再哈希和重新洗牌过程中的位置,其次,广播输入到生成新矢量的函数的随机生成的数据值si。主排序器110根据待处理事务320的原始列表在最终hl列表中的哈希位置对待处理事务320的原始列表进行重新排序。以下伪代码实现位置确定:
[0074][0075]
也就是说,对于每个待处理事务trxk,主排序器110使用随机生成的数据值si重新计算哈希值,然后使用从排序器140接收的列表hl和重新计算的哈希值来确定事务trxk在新列表btl中的位置loc。主排序器110可以按顺序遍历btl,并确定定义满足区块大小限制的事务{btl[1],
…
,btl[ind]}子集btl’的最大索引ind。
[0076]
主排序器110根据事务集btl’生成待添加到区块链的区块。该区块包括以与btl中相同顺序排序的集btl’中所有事务的事务列表。该区块还包括从排序器140接收的哈希列表hl和随机生成的数据值si的列表,这些随机生成的数据值si按它们在序列中的使用顺序排列。该区块还可以包括区块链实现和协议特定的数据。主排序器根据区块链协议将创建的区块分发到各方。
[0077]
图5示出了根据示例的区块链的区块500。图5中所示的区块500包括根据主排序器110接收的洗牌哈希列表排序的事务510的列表。区块500还包括在洗牌阶段之后接收的事务哈希的有序列表520。区块500还包括用于创建哈希列表520的哈希方法的有序列表530。列表530包括哈希函数(sha-256)的规范和在每个洗牌阶段随机生成的数据值si。在一些情况下,不同的排序器可能使用不同的哈希函数。
[0078]
每个排序器120、130、140可以通过以与主排序器110类似的方式重新计算来验证列表510中的区块500中的每个事务位置匹配其在列表520中的哈希位置。排序器可以验证没有待处理事务被审查出区块500。然后,排序器110、120、130、140可以继续根据区块链协议接受区块500到区块链的过程。
[0079]
图6为根据示例的方法600的框图。方法600可以与本文描述的任何方法和系统结合使用。具体地,方法600可以在之前描述的节点100的网络上实现。
[0080]
在框610中,方法600包括接收区块链事务集。根据示例,该集可以包括来自区块链网络的其它排序器节点的待处理事务的集合,如图2所示。在框620中,该方法包括生成数据值的第一矢量。第一矢量的每个条目是根据事务集中的相应事务确定的。在示例中,生成第一矢量的数据值包括对与相应事务关联的数据评估密码安全函数,例如哈希函数。输入可以包括随机生成的数据值。例如,如以上所描述,第一矢量的数据值可以包括函数f的f(trxi||s0)、随机生成的数据值s0和事务trxi。
[0081]
在框630中,方法600包括生成数据值的第二矢量。根据示例,第二矢量包括第一矢量的数据值的有序列表。例如,可以使用fisher-yates洗牌来确定数据值列表的排序。在框640中,第二矢量被发送到一个或多个其它节点。例如,在图4中,节点110向节点120、130、140广播列表330。
[0082]
在步骤650中,一个或多个其它节点根据第二矢量生成数据值的第三矢量。根据示例,生成第三矢量可以包括按顺序确定相应节点处的数据值的矢量。确定数据值的矢量可以包括从一个或多个其它节点中的前一节点接收数据值的矢量,根据所接收的矢量生成数据值的另一矢量,对所述另一矢量进行重新排序,将重新排序的数据值的矢量发送到所述一个或多个其它节点的后一节点。生成数据值的另一矢量可以包括对输入评估密码安全函数,例如哈希函数,其中,输入包括从前一节点接收的矢量的数据值。在一些情况下,输入包括随机生成的数据值。
[0083]
在框660中,第三矢量可以被发送到节点。例如,在节点110、120、130、140执行顺序洗牌的情况下,节点140可以将所得数据值的第三矢量发送到其它节点。在框670中,每个节点发送与第三矢量的生成关联的数据。例如,节点120、130、140中的每个可以发送随机生成的数据值si和用于计算数据值的中间矢量的哈希函数。在框680中,第一节点生成用于区块链的区块。该区块包括事务的有序列表。事务在所述事务的有序列表中的位置对应于与所述事务关联的数据值在所述第三矢量中的位置。图5示出了这种区块的示例。该区块包括数据值的第三矢量和与第三矢量的生成关联的数据。根据示例,生成区块包括按顺序重新计算相应节点的数据值的矢量,并根据重新计算的矢量和第三数据值的矢量确定事务在有序列表中的位置。
[0084]
根据示例,方法600还可以包括根据与所述第三矢量的所述生成关联的所述数据,按顺序重新计算所述相应节点的所述数据值的矢量;确定与事务关联的数据值在所述第三
矢量中的位置;验证所述事务在所述事务的有序列表中的位置与所述第三矢量中的所述位置对应。这支持节点通过检查区块是否包括事务以及事务出现在正确的位置来验证事务区块。
[0085]
本文描述的方法提供了许多优点。事务以未加密的方式提交。因此,事务可以在排序之前验证和执行。所描述的排序过程是防止恶意篡改的。具体地,任何排序器或排序器联盟都不能确定事务是否包括在区块中或事务在区块中的位置。本文描述的方法不需要特殊的客户端向区块链节点提交事务。具体地,不需要附加的密钥管理或密码功能。
[0086]
此外,使用本文描述的方法,主排序器的选举只需要具有崩溃容忍性,就可以实现拜占庭容错排序机制。除非主排序器不再正常工作,否则不需要重新选举。这可以节省每轮的时间,并提高事务吞吐量。这还降低了主排序器选举的网络时延,并提高了可扩展性。
[0087]
参考根据本发明的示例的方法、设备和系统的流程图和/或框图来描述本发明。尽管上面描述的流程图示出了特定的执行顺序,但执行顺序可以与所描述的顺序不同。关于一个流程图描述的框可以与另一个流程图的框组合。在一些示例中,流程图的一些框可能不是必要的和/或可以添加其它的框。应理解,流程图和/或框图中的每个流程和/或框,以及流程图和/或框图中的流程和/或图表的组合可以通过机器可读指令实现。
[0088]
例如,机器可读指令可以由通用计算机、专用计算机、嵌入式处理器或其它可编程数据处理设备的处理器执行,以实现描述和图表中描述的功能。具体地,处理器或处理装置可以执行机器可读指令。因此,装置的模块可以由执行存储在存储器中的机器可读指令的处理器或根据嵌入在逻辑电路中的指令操作的处理器来实现。术语“处理器”应广义地解释为包括cpu、处理单元、逻辑单元或可编程门组等。这些方法和模块都可以由单个处理器执行,也可以由多个处理器共同执行。这种机器可读指令也可以存储在计算机可读存储器中,该计算机可读存储器可以引导计算机或其它可编程数据处理设备在特定模式下操作。
[0089]
这种机器可读指令还可以加载到计算机或其它可编程数据处理设备上,使得计算机或其它可编程数据处理设备执行一系列操作以产生计算机实现的处理,因此,在计算机或其它可编程设备上执行的指令提供了用于实现流程图中的流程和/或框图中的框指定的功能的操作。
[0090]
图7为可以用于实现本文公开的方法、设备和系统的计算系统700的框图。特定设备可以使用所示的所有组件或仅使用组件的子集,并且集成级别会因设备而异。此外,设备可以包括组件的多个实例,例如多个处理单元、处理器、存储器、发送器、接收器等。计算系统700包括处理单元702。处理单元包括中央处理单元(central processing unit,cpu)714、图形处理单元(graphics processing unit,gpu)716、存储器708,还可以包括大容量存储设备704、视频适配器710和连接到总线718的i/o接口712。
[0091]
总线718可以是包括存储器总线或存储器控制器、外围总线或视频总线的任何类型的几种总线体系结构中的一个或多个。cpu 714和gpu 716可以包括任何类型的电子数据处理器。存储器708可以包括任何类型的非瞬态系统存储器,例如静态随机存取存储器(static random access memory,sram)、动态随机存取存储器(dynamic random access memory,dram)、同步dram(synchronous dram,sdram)、只读存储器(read-only memory,rom)或其组合。在一个实施例中,存储器708可以包括在启动时使用的rom以及用于存储程序和数据的dram,该dram在执行程序时使用。
[0092]
大容量存储器704可以包括任何类型的非瞬时性存储设备,用于存储数据、程序和其它信息,并使数据、程序和其它信息通过总线718可存取。例如,大容量存储器704可以包括固态驱动器、硬盘驱动器、磁盘驱动器或光盘驱动器中的一个或多个。
[0093]
视频适配器710和i/o接口712的接口可以将外部输入和输出设备耦合到处理单元702。如图所示,输入和输出设备的示例包括耦合到视频适配器710的显示器720和耦合到i/o接口712的鼠标、键盘或打印机722。其它设备可以耦合到处理单元702,并且可以使用更多的或更少的接口卡。例如,通用串行总线(universal serial bus,usb)(未示出)等串行接口可以用于为外部设备提供接口。
[0094]
处理单元702还包括一个或多个网络接口706,一个或多个网络接口706可以包括到接入节点或不同网络的有线链路(例如以太网电缆)或无线链路。网络接口706使得处理单元702可以通过网络与远程单元通信。例如,网络接口706可以通过一个或多个发送器/发送天线和一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单元702耦合到局域网724或广域网,以进行数据处理和与远程设备(例如其它处理单元、互联网或远程存储设施)通信。
[0095]
尽管已经详细描述了本发明及其优点,但应理解,在不脱离所附权利要求所定义的公开内容精神和范围的情况下,本文可以进行各种改变、替换和修改。
[0096]
本发明可以体现在其它特定装置和/或方法中。所描述的实施例在所有方面均被视为是说明性的而非限制性的。具体地,本发明的范围由所附权利要求而不是由本文的描述和附图指示。所有属于权利要求的等同含义和范围内的变更都应纳入其范围。
技术特征:
1.一种用于包括多个节点的区块链网络的方法,其特征在于,所述方法包括:在区块链网络的第一节点处:接收区块链事务集;生成数据值的第一矢量,其中,所述第一矢量的每个条目根据所述事务集中的相应事务确定;生成数据值的第二矢量,所述第二矢量包括所述第一矢量的所述数据值的有序列表;将所述第二矢量发送到所述区块链网络的一个或多个其它节点;所述一个或多个其它节点根据所述第二矢量生成数据值的第三矢量;将所述第三矢量发送到所述节点中的每个节点;所述一个或多个其它节点发送与所述第三矢量的所述生成关联的数据;在所述第一节点处生成用于区块链的包括事务的有序列表的区块;其中,事务在所述事务的有序列表中的位置对应于与所述事务关联的数据值在所述第三矢量中的位置。2.根据权利要求1所述的方法,其特征在于,所述区块包括所述第三矢量和与所述第三矢量的所述生成关联的所述数据。3.根据权利要求2所述的方法,其特征在于,生成区块包括:根据与所述区块链关联的区块大小确定待包括在所述区块中的包括所述事务的有序列表的第一条目的子集。4.根据权利要求1至3中任一项所述的方法,其特征在于,生成所述第一矢量的数据值包括对输入评估密码安全函数,所述输入包括与所述相应事务关联的数据。5.根据权利要求4所述的方法,其特征在于,所述密码安全函数包括哈希函数。6.根据权利要求4或5所述的方法,其特征在于,所述输入还包括随机生成的数据值。7.根据权利要求1至6中任一项所述的方法,其特征在于,生成所述第三矢量包括所述一个或多个其它节点按顺序确定数据值的矢量。8.根据权利要求7所述的方法,其特征在于,所述第三矢量包括节点序列中的最终节点输出的数据值的矢量。9.根据权利要求7或8所述的方法,其特征在于,确定数据值的矢量包括,在所述一个或多个其它节点中的每个处:从所述一个或多个其它节点中的前一节点接收数据值的矢量;根据所接收的矢量生成数据值的另一矢量;对所述另一矢量进行重新排序;将重新排序的数据值的矢量发送到所述一个或多个其它节点的后一节点。10.根据权利要求9所述的方法,其特征在于,生成数据值的另一矢量包括对输入评估密码安全函数,所述输入包括从前一节点接收的矢量的数据值。11.根据权利要求10所述的方法,其特征在于,所述输入包括随机生成的数据值,所述密码安全函数包括哈希函数。12.根据权利要求1至11中任一项所述的方法,其特征在于,与所述第三矢量的所述生成关联的数据包括一个或多个哈希函数和/或与所述一个或多个其它节点关联的一个或多个随机生成的数据值。13.根据权利要求1至12中任一项所述的方法,其特征在于,确定所述第三矢量包括在
所述一个或多个其它节点中的两个或更多个之间执行多方协议,以安全地生成所述第三矢量。14.根据权利要求1至13中任一项所述的方法,其特征在于,对矢量的数据值进行重新排序包括对所述矢量应用fisher-yates洗牌。15.根据权利要求1至10中任一项所述的方法,其特征在于,生成所述区块包括:按顺序重新计算所述相应节点的所述数据值的矢量;根据重新计算的矢量和所述数据值的第三矢量,确定事务在所述有序列表中的所述位置。16.根据权利要求1至15中任一项所述的方法,其特征在于,包括根据所述事务的有序列表和与所述第三矢量的所述生成关联的数据验证区块。17.根据权利要求16所述的方法,其特征在于,验证所述区块包括:根据与所述第三矢量的所述生成关联的所述数据,按顺序重新计算所述相应节点的所述数据值的矢量;确定与事务关联的数据值在所述第三矢量中的位置;验证所述事务在所述事务的有序列表中的位置与所述第三矢量中的所述位置对应。18.一种区块链网络中的节点,其特征在于,所述节点包括:处理器;与所述处理器通信耦合的存储器,所述存储器存储指令,当所述指令在所述处理器上实现时,所述指令使所述处理器:访问区块链事务集;生成数据值的第一矢量,其中,所述第一矢量的每个条目根据所述事务集中的相应事务确定;生成数据值的第二矢量,所述第二矢量包括所述第一矢量的所述数据值的有序列表;将所述第二矢量发送到所述区块链网络的一个或多个其它节点;从所述一个或多个其它节点中的一个接收数据值的第三矢量,所述第三矢量由所述一个或多个其它节点根据所述第二矢量确定;从所述一个或多个其它节点接收与所述第三矢量的所述生成关联的数据;根据第三矢量生成用于区块链的包括所述事务的有序列表的区块,其中,事务在所述事务的有序列表中的位置对应于与所述事务关联的数据值在所述第三矢量中的位置。19.根据权利要求18所述的节点,其特征在于,所述区块包括所述第三矢量和与所述第三矢量的所述生成关联的所述数据。20.根据权利要求18或19所述的节点,其特征在于,所述节点用于根据与所述区块链关联的区块大小确定待包括在所述区块中的包括所述事务的有序列表的第一条目的子集。21.根据权利要求18至20中任一项所述的节点,其特征在于,为了生成所述第一矢量的数据值,所述节点用于对输入评估密码安全函数,所述输入包括与所述相应事务关联的数据。22.根据权利要求18至21中任一项所述的节点,其特征在于,与所述第三矢量的所述生成关联的数据包括一个或多个哈希函数和/或与所述一个或多个其它节点关联的随机生成
的数据值。23.一种包括多个节点的区块链网络中的节点,其特征在于,所述节点包括:处理器;与所述处理器通信耦合的存储器,所述存储器存储指令,当所述指令在所述处理器上实现时,所述指令使所述处理器:访问从所述区块链网络的所述多个节点中的第二节点接收的数据值的矢量;根据从所述第二节点接收的所述矢量生成数据值的另一矢量;对所述另一矢量进行重新排序;将重新排序的数据值的矢量发送到所述区块链网络的所述多个节点中的第三节点。24.根据权利要求23所述的节点,其特征在于,为了生成数据值的另一矢量,所述节点用于对输入评估密码安全函数,所述输入包括从所述第二节点接收的所述矢量的数据值和随机生成的数据值。25.根据权利要求23或24所述的节点,其特征在于,所述节点用于访问区块,包括验证包括所述事务的有序列表的区块,以根据所述事务的有序列表验证所述区块。
技术总结
一种用于区块链网络的方法,包括:在区块链网络的第一节点处,接收区块链事务集,生成数据值的第一矢量,其中,所述第一矢量的每个条目根据来自所述事务集的相应事务确定,生成数据值的第二矢量,所述第二矢量包括所述第一矢量的所述数据值的有序列表,将所述第二矢量发送到所述区块链网络的一个或多个其它节点,所述一个或多个其它节点根据所述第二矢量生成数据值的第三矢量,将所述第三矢量发送到所述节点中的每个,所述一个或多个其它节点发送与所述第三矢量的生成关联的数据,在所述第一节点处生成用于区块链的包括事务的有序列表的区块。的区块。的区块。
技术研发人员:阿维盖尔
受保护的技术使用者:华为云计算技术有限公司
技术研发日:2021.03.05
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/