具有高效世界状态数据结构的区块链系统技术方案

技术编号:32100078 阅读:19 留言:0更新日期:2022-01-29 18:36
本文公开了用于处理与一个或多个区块链相关联的世界状态信息的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:提供包括多个分片的群组世界状态,每个分片包括世界状态数据库。世界状态数据库包括多个世界状态,每个世界状态存储有关与世界状态相关联的用户账户的状态的信息,每个分片与区块链数据库相关联,该区块链数据库包括包含一个或多个区块的区块链,该一个或多个区块存储与关联于区块链的用户账户相关联的交易数据。该方法包括基于一个或多个标准来动态修改群组世界状态中的分片数量,包括以下至少一项:(i)将多个分片之一划分为两个或更多个分片、(ii)将两个或更多个分片合并为一个分片、(iii)将一个或多个新分片添加至群组世界状态、或(iv)从群组世界状态中移除一个或多个分片;以及生成群组世界状态的根哈希值。以及生成群组世界状态的根哈希值。以及生成群组世界状态的根哈希值。

【技术实现步骤摘要】
【国外来华专利技术】具有高效世界状态数据结构的区块链系统


[0001]本文涉及具有高效世界状态数据结构的区块链系统。

技术介绍

[0002]分布式账本系统(DLS),也可以被称为共识网络和/或区块链网络,使得参与实体能够安全地且不可篡改地存储数据。区块链网络的类型示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选定的实体组群提供,该实体组群控制共识处理,并且所述联盟区块链网络包括访问控制层。
[0003]基于区块链的程序可以由分布式计算平台执行。例如,分布式计算平台可以包括提供用于执行智能合约的运行环境的虚拟机。区块链计算平台可以被看作是基于交易的状态机。平台中的状态数据可以组合成被称为世界状态的全局共享状态。世界状态包括账户地址和账户状态之间的映射。世界状态可以被存储在例如默克尔帕特里夏树(Merkle Patricia tree,MPT)的内容寻址树结构中。
[0004]内容寻址状态树本质上是增加的。即,通过添加新的树结构而不是更新现有状态树的值来反映账户状态的变化。因此,随着新交易不断进入区块链,内容寻址状态树的大小可能会增长得非常大。在一些DLS中,每个节点都存储世界状态的整个副本,这会占用大量存储空间,因为所有区块数据和状态数据都被存储,追溯至记录到区块链的第一笔交易,即使与历史区块相关联的一些状态数据很少被访问。
[0005]由于每个区块链节点负责处理整个区块链网络的交易量,因此对于具有大量节点的区块链网络,每个区块链节点的计算和存储负担会非常高。
[0006]在不影响系统性能和数据完整性的情况下,改进默克尔树的处理以使其更快、更高效,这是所希望的。根据所描述的实施例,可以基于用于处理世界状态和默克尔树的高效数据结构来改进默克尔树的处理。

技术实现思路

[0007]所描述的主题的实施方案可以包括单独或组合的一个或多个特征。例如,在一个实施例中,提供了一种计算机实现的用于处理与一个或多个区块链相关联的世界状态信息的方法。所述方法包括:提供包括多个分片的群组世界状态,其中,每个分片包括一个或多个世界状态,每个世界状态存储关于与该世界状态相关联的用户账户的状态的信息,并且每个分片与包括一个或多个区块的区块链相关联,所述一个或多个区块存储与关联于所述区块链的用户账户相关联的交易数据。所述方法包括基于一个或多个标准动态修改所述群组世界状态中的分片数量,包括以下至少一项:(i)将所述多个分片之一划分为两个或更多个分片,(ii)将两个或更多个分片合并为一个分片,(iii)将一个或多个分片添加至所述群组世界状态,或(iv)从所述群组世界状态中移除一个或多个分片。所述方法包括生成群组世界状态的根哈希值,其中,所述根哈希值表示与所述群组世界状态中的分片中的世界状态相关联的用户账户的状态的数字指纹。
[0008]在一些实施例中,这些一般和特定方面可以使用系统、方法或计算机程序,或系统、方法和计算机程序的任何组合来实现。可选地,前述和其他所述的实施例可以各自包括以下一个或多个方面:
[0009]在一些实施例中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括将第一分片划分为第二分片和第三分片,所述第二分片包括所述第一分片的世界状态的第二子集,所述第三分片包括所述第一分片的世界状态的第三子集。
[0010]在一些实施例中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括合并第二分片和第三分片以生成第一分片,其中,所述第一分片包括所述第二分片的一个或多个世界状态和所述第三分片的一个或多个世界状态。
[0011]在一些实施例中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括将一个或多个新分片添加到所述群组世界状态中,其中,所述一个或多个新分片包括先前不包括在所述群组世界状态中的一个或多个世界状态。
[0012]在一些实施例中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括从所述群组世界状态中移除一个或多个分片,包括移除从所述群组世界状态中移除的一个或多个分片中的一个或多个世界状态。
[0013]在一些实施例中,所述方法包括:在包括处于一个或多个位置的一个或多个计算机的系统处评估所述一个或多个标准,并在确定满足所述一个或多个标准时将所述多个分片之一划分为两个或更多个分片。
[0014]在一些实施例中,所述方法包括:在包括处于一个或多个位置的一个或多个计算机的系统处评估所述一个或多个标准,并且在确定满足一个或多个标准时将两个或更多个分片合并为一个分片。
[0015]在一些实施例中,所述方法包括基于所述群组世界状态中的分片数量动态修改分配至所述群组世界状态的资源。
[0016]在一些实施例中,所述方法包括响应于所述群组世界状态中的分片数量增加,向所述群组世界状态分配更多资源。
[0017]在一些实施例中,所述方法包括响应于所述群组世界状态中的分片数量减少,向所述群组世界状态分配更少资源。
[0018]在一些实施例中,所述资源包括算力、存储器、数据存储容量或数据带宽中的至少一个。
[0019]在一些实施例中,所述一个或多个条件包括服务质量度量、算力要求、存储器容量要求、数据存储容量要求或数据带宽要求中的至少一个。
[0020]在一些实施例中,所述方法包括确定以下至少一项:(i)服务质量度量低于阈值、(ii)算力要求不满足、(iii)存储器容量要求不满足、(iv)数据存储容量要求不满足、或(v)数据带宽要求不满足。所述方法包括:响应于所述确定,将所述多个分片之一划分为两个或更多个分片,以及与分配至所述多个分片之一的资源相比,将更多资源分配至所述两个或更多个分片的组合,其中,所述资源包括算力、存储器容量、数据存储容量或数据带宽中的至少一个。
[0021]在一些实施例中,所述方法包括确定以下至少一项:(i)服务质量度量值高于阈值、(ii)空闲或多余的算力高于阈值、(iii)可用存储器容量高于阈值、(iv)可用数据存储
器容量高于阈值、或(v)可用数据带宽高于阈值。所述方法包括:响应于所述确定,将两个或更多个分片合并为一个分片,以及与分配至所述合并前的两个或更多个分片的资源相比,将更少的资源分配至所述合并后的单个分片,其中,所述资源包括算力、存储器容量、数据存储容量或数据带宽中的至少一个。
[0022]在一些实施例中,使用默克尔树、帕特里夏树、默克尔帕特里夏树、修改的默克尔帕特里夏树或桶树中的至少一种来维护每个世界状态。
[0023]在一些实施例中,将所述多个分片之一划分为两个或更多个分片包括将第一分片划分为第二分片和第三分片,所述第一分片包括第一世界状态数据库,所述第一世界状态数据库包括第一组世界状态。将所述第一分片划分为所述第二分片和所述第三分片,包括:生成所述第一分片的第一快照,其中,所述第一快照包括第一世界状态数据库的快照;缩减(trim)所述第一分片以生成所述第二分片,包括移除所述第一世界状态数据库中的一个或多个世界状态以生成第二本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于处理与一个或多个区块链相关联的世界状态信息的方法,所述方法包括:提供包括多个分片的群组世界状态,其中,每个分片包括一个或多个世界状态,每个世界状态存储有关与该世界状态相关联的用户账户的状态的信息,并且每个分片与包括一个或多个区块的区块链相关联,所述一个或多个区块存储与关联于所述区块链的所述用户账户相关联的交易数据;基于一个或多个标准动态地修改所述群组世界状态中的分片数量,包括以下至少一项:(i)将所述多个分片之一划分为两个或更多个分片、(ii)将两个或更多个分片合并为一个分片、(iii)将一个或多个新分片添加至所述群组世界状态、或(iv)从所述群组世界状态中移除一个或多个分片;以及生成所述群组世界状态的根哈希值,其中,所述根哈希值表示与所述群组世界状态中的所述多个分片中的世界状态相关联的用户账户的状态的数字指纹。2.根据权利要求1所述的方法,其中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括:将第一分片划分为第二分片和第三分片,所述第二分片包括所述第一分片的世界状态的第二子集,所述第三分片包括所述第一分片的世界状态的第三子集。3.根据权利要求1所述的方法,其中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括:合并第二分片和第三分片以生成第一分片,其中,所述第一分片包括所述第二分片的一个或多个世界状态和所述第三分片的一个或多个世界状态。4.根据权利要求1至3中任一项所述的方法,其中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括:将一个或多个新分片添加至所述群组世界状态,其中,所述一个或多个新分片包括先前不包括在所述群组世界状态中的一个或多个世界状态。5.根据权利要求1至4中任一项所述的方法,其中,基于一个或多个标准动态地修改所述群组世界状态中的分片数量包括:从所述群组世界状态中移除一个或多个分片,包括移除从所述群组世界状态中移除的所述一个或多个分片中的一个或多个世界状态。6.根据权利要求1至5中任一项所述的方法,包括:在包括处于一个或多个位置的一个或多个计算机的系统处,评估所述一个或多个标准,并在确定满足所述一个或多个标准时将所述多个分片之一划分为两个或更多个分片。7.根据权利要求1至6中任一项所述的方法,包括:在包括处于一个或多个位置的一个或多个计算机的系统处,评估所述一个或多个标准,并在确定满足所述一个或多个标准时将两个或更多个分片合并为一个分片。8.根据权利要求1至7中任一项所述的方法,包括:基于所述群组世界状态中的分片数量,动态地修改分配至所述群组世界状态的资源。9.根据权利要求8所述的方法,包括:响应于所述群组世界状态中的分片数量增加,向所述群组世界状态分配更多资源。10.根据权利要求8或9所述的方法,包括:响应于所述群组世界状态中的分片数量减少,向所述群组世界状态分配更少资源。11.根据权利要求8至10中任一项所述的方法,其中,所述资源包括算力、存储器、数据存储容量或数据带宽中的至少一个。12.根据权利要求1至11中任一项所述的方法,其中,所述一个或多个标准包括服务质
量度量、计算能力要求、存储器容量要求、数据存储容量要求或数据带宽要求中的至少一个。13.根据权利要求12所述的方法,包括:确定以下至少一项:(i)所述服务质量度量低于阈值、(ii)所述算力要求不满足、(iii)所述存储器容量要求不满足、(iv)所述数据存储容量要求不满足、或(v)所述数据带宽要求不满足,响应于所述确定,将所述多个分片之一划分为两个或更多个分片,以及与分配至所述多个分片之一的资源相比,将更多资源分配至所述两个或更多个分片的组合,其中,所述资源包括算力、存储器容量、数据存储容量或数据带宽中的至少一个。14.根据权利要求12或13所述的方法,包括:确定以下至少一项:(i)服务质量度量值高于阈值、(ii)空闲或多余的算力高于阈值、(iii)可用存储器容量高于阈值、(iv)可用数据存储容量高于阈值、或(v)可用数据带宽高于阈值,响应于所述确定,将两个或更多个分片合并为一个分片,以及与分配至所述合并前的两个或更多个分片的资源相比,将更少的资源分配至所述合并后的单个分片,其中,所述资源包括算力、存储器容量、数据存储容量或数据带宽中的至少一个。15.根据权利要求1至14中任一项所述的方法,其中,使用默克尔树、帕特里夏树、默克尔帕特里夏树、修改的默克尔帕特里夏树或桶树中的至少一种来维护每个世界状态。16.根据权利要求1至15中任一项所述的方法,其中,将所述多个分片之一划分为两个或更多个分片包括:将第一分片划分为第二分片和第三分片,所述第一分片包括第一世界状态数据库,所述第一世界状态数据库包括第一组世界状态,将所述第一分片划分为所述第二分片和所述第三分片包括:生成所述第一分片的第一快照,其中,所述第一快照包括第一世界状态数据库的快照;缩减所述第一分片以生成所述第二分片,包括:移除所述第一世界状态数据库中的一个或多个世界状态以生成第二世界状态数据库,所述第二世界状态数据库包括所述第一分片中的一个或多个世界状态的第二子集;以及缩减所述第一分片的第一快照以生成所述第三分片,包括:移除所述第一世界状态数据库中的一个或多个世界状态以生成第三世界状态数据库,所述第三世界状态数据库包括所述第一分片中的一个或多个世界状态的第三子集,其中,所述一个或多个世界状态的第三子集不同于所述一个或多个世界状态的第二子集。17.根据权利要求1至16中任一项所述的方法,其中,将所述多个分片之一划分为两个或更多个分片包括将所述多个分片之一划分为三个或更多个分片。18.根据权利要求1至17中任一项所述的方法,其中,将两个或更多个分片合并为一个分片包括:将第二分片和第三分片合并为第一分片,所述第二分片包括第二世界状态数据库,所述第二世界状态数据库包括存储与第二组用户账户相关联的状态信息的第二组世界状态,所述第三分片包括第三世界状态数据库,所述第三世界状态数据库包括存储与第三组用户账户相关联的状态信息的第三组世界状态,
所述第一分片包括第一世界状态数据库,所述第一世界状态数据库包括第一组世界状态,所述第一组世界状态包括所述第二组世界状态和所述第三组世界状态,所述第一组世界状态存储与第一组用户账户相关联的状态信息,所述第一组用户账户包括所述第二组用户账户和所述第三组用户账户。19.根据权利要求1至18中任一项所述的方法,其中,将所述多个分片之一划分为两个或更多个分片包括将第一分片划分为第二分片和第三分片,所述第一分片与第一组用户账户相关联,所述第二分片与第二组用户账户相关联,所述第三分片与第三组用户账户相关联,所述第二组用户账户是所述第一组用户账户的第二子集,所述第三组用户账户是所述第一组用户账户的第三子集,所述第一组用户账户的第三子集不同于所述第一组用户账户的第二子集。20.根据权利要求1至19中任一项所述的方法,包括:基于用户账户的特征将所述用户账户与所述世界状态相关联,其中,每个用户账户仅与所述世界状态之一相关联。21.根据权利要求20所述的方法,其中,所述用户账户基于用户账户标识的特征与所述世界状态相关联。22.根据权利要求21所述的方法,其中,所述用户账户基于所述用户账户标识的预定字节或字节字与所述世界状态相关联。23.根据权利要求22所述的方法,其中,所述群组世界状态支持最多2
n
个世界状态,并且其用户账户标识的预定字节或字节字等于m的用户账户与第m个世界状态相关联,1≤m≤2
n
。24.根据权利要求23所述的方法,其中,所述群组世界状态支持最多2
16
=65536个世界状态,并且其用户账户标识的前两个字节字等于m的用户账户与第m个世界状态相关联,1≤m≤65536。25.根据权利要求20所述的方法,其中,所述用户账户基于用户账户的优先级与所述世界状态相关联。26.根据权利要求1至24中任一项所述的方法,包括:提供第一组一个或多个规则,所述第一组一个或多个规则指定要增加所述群组世界状态中的分片数量的一个或多个条件。27.根据权利要求1至26中任一项所述的方法,包括:提供第二组一个或多个规则,所述第二组一个或多个规则指定要减少所述群组世界状态中的分片数量的一个或多个条件。28.一种计算机实现的用于处理与一个或多个区块链相关联的世界状态信息的方法,所述方法包括:提供与第一组用户账户相关联的第一分片,其中,所述第一分片包括第一区块链数据库和第一世界状态数据库,所述第一区块链数据库包括由第一区块链网络管理的第一区块链,其中,通过所述第一区块链网络的区块链节点的共识将区块链数据存储在所述第一区块链上,所述第一世界状态数据库包括多个世界状态,每个世界状态与多个用户账户相关联,每个世界状态存储与所述世界状态相关联的所述用户账户的当前状态;以及将所述第一分片划分为第二分片和第三分片,包括:生成所述第一分片的第一快照,其中,所述第一快照包括所述第一区块链数据库的快
照和所述第一世界状态数据库的快照;缩减所述第一分片以生成所述第二分片,包括:移除所述第一分片的第一世界状态数据库中的一个或多个世界状态以生成第二世界状态数据库,所述第二世界状态数据库包括所述第一分片中的一个或多个世界状态的第二子集;以及缩减所述第一分片的所述第一快照以生成所述第三分片,包括:移除所述第一快照的第一世界状态数据库中的一个或多个世界状态以生成第三世界状态数据库,所述第三世界状态数据库包括所述第一分片中的一个或多个世界状态的第三子集,其中,所述一个或多个世界状态的第三子集不同于所述一个或多个世界状态的第二子集。29.根据权利要求28所述的方法,包括:与分配至所述第一分片的资源相比,在将所述第一分片划分为所述第二分片和所述第三分片之后,向所述第二分片和所述第三分片的组合分配更多的资源。30.根据权利要求28或29所述的方法,其中,所述第一世界状态数据库与所述第一组用户账户相关联,所述第二世界状态数据库与第二组用户账户相关联,所述第三世界状态数据库与第三组用户账户相关联,并且所述第一组用户账户包括所述第二组用户账户和所述第三组用户账户的总和。31.根据权利要求28至30中任一项所述的方法,其中,所述第一世界状态数据库与所述第一组用户账户相关联,所述第二世界状态数据库与第二组用户账户相关联,所述第三世界状态数据库与第三组用户账户相关联,所述第二组用户账户与所述第三组用户账户不重叠。32.根据权利要求29至31中任一项所述的方法,其中,分配更多的资源包括:分配更多的算力、存储器、数据存储容量或数据带宽中的至少一个。33.根据权利要求28至32中任一项所述的方法,其中,生成所述第一分片的快照包括:使用与所述第一分片相关联的虚拟机生成所述第一分片的所述快照。34.根据权利要求28至33中任一项所述的方法,其中,所述第一区块链网络包括共识区块链网络,所述共识区块链网络包括参与用以确定是否将数据写入所述第一区块链的共识处理的验证对等节点和不参与所述共识处理的非验证对等节点,以及生成所述第一分片的所述快照包括使用所述非验证对等节点生成所述快照。35.根据权利要求34所述的方法,其中,所述共识区块链网络包括:参与用以确定是否将数据写入所述第一区块链的共识处理的验证对等节点和不参与所述共识处理的非验证对等节点,以及生成所述第一分片的所述快照包括增加验证对等节点的数量,以及使用所述验证对等节点生成所述快照。36.根据权利要求28至35中任一项所述的方法,其中,所述第一世界状态数据库的多个世界状态中的每个世界状态包括根节点,所述第一区块链数据库的第一区块链包括第一区块,所述第一区块包括区块头和区块体,所述区块头存储第一哈希值,所述第一哈希值是从所述第一世界状态数据库的多个世界状态的根节点的哈希值的哈希处理得出的,并且所述第一哈希值表示与所述第一世界状态数据库的多个世界状态相关联的用户账户的当前状态的数字指纹。
37.根据权利要求28至35中任一项所述的方法,其中,所述第一世界状态数据库的多个世界状态中的每个世界状态均包括根节点,所述第一区块链数据库的第一区块链包括第一区块,所述第一区块包括区块头和区块体,所述区块头存储所述第一世界状态数据库中的世界状态的根节点的哈希值。38.根据权利要求36或37所述的方法,其中,所述第二分片包括包含第二区块链的第二区块链数据库,所述第二区块链存储与关联于所述第二分片的用户账户相关联的交易数据,所述第二区块链包括第一区块,所述第二区块链的第一区块包括存储有关交易的信息的区块体,以及缩减所述第一分片包括:针对不与所述第二世界状态数据库中的一个或多个世界状态的第二子集相关联的用户账户,移除有关所述用户账户所关联的交易的信息。39.根据权利要求36至38中任一项所述的方法,其中,所述第三分片包括包含第三区块链的第三区块链数据库,所述第三区块链存储与关联于所述第三分片的用户账户相关联的交易数据,所述第三区块链包括第一区块,所述第三区块链的第一区块包括存储有关交易的信息的区块体,以及缩减所述第一分片的第一快照包括:针对不与所述第三世界状态数据库中的一个或多个世界状态的第三子集相关联的用户账户,移除有关所述用户账户所关联的交易的信息。40.根据权利要求28至39中任一项所述的方法,其中,所述第三分片包括包含第三区块链的第三区块链数据库,所述第三区块链存储与关联于所述第三分片的用户账户相关联的交易数据,所述方法包括将所述第三分片划分为第四分片和第五分片,包括:生成所述第三分片的第二快照,其中,所述第二快照包括所述第三区块链数据库的快照和所述第三世界状态数据库的快照;缩减所述第三分片以生成所述第四分片,包括:移除所述第三分片的第三世界状态数据库中的一个或多个世界状态以生成第四世界状态数据库,所述第四世界状态数据库包括所述第三分片中的一个或多个世界状态的第四子集;以及缩减所述第三分片的所述第二快照以生成所述第五分片,包括:移除所述第二快照的第三世界状态数据库中的一个或多个世界状态以生成第五世界状态数据库,所述第五世界状态数据库包括所述第三分片中的一个或多个世界状态的第五子集,其中,所述一个或多个世界状态的第五子集不同于所述一个或多个世界状态的第四子集。41.根据权利要求40所述的方法,包括:与分配至所述第三分片的资源相比,向所述第四分片和所述第五分片的组合分配更多的资源。42.根据权利要求28至41中任一项所述的方法,其中,使用包括默克尔树、帕特里夏树、默克尔帕特里夏树、修改的默克尔帕特里夏树或桶树中的至少一种的数字树维护每个世界状态。43.根据权利要求42所述的方法,包括:基于维护所述第一分片和所述第二分片的世界状态的数字树的根节点的哈希值,生成表示所述第一分片和所述第二分片的世界状态的群组世界状态哈希值。44.根据权利要求43所述的方法,包括:通过以...

【专利技术属性】
技术研发人员:卓海振
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1