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

技术编号:32615584 阅读:23 留言:0更新日期:2022-03-12 17:44
本文公开了用于处理与区块链相关联的世界状态信息的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述系统之一包括:区块链数据库,配置为存储由区块链网络管理的区块链,通过区块链网络的区块链节点的共识将区块链数据存储在区块链上,该区块链包括存储与关联于区块链的用户账户相关联的交易数据的一个或多个区块;世界状态数据库,配置为存储包括多个数字树的世界状态数据结构,世界状态存储关于用户账户的状态的信息;智能合约数据库,配置为存储与区块链相关联的多个智能合约,多个智能合约中的第一智能合约包括第一代码,该第一代码标识第一状态数据和多个数字树中的用于存储第一状态数据的第一数字树;以及虚拟机,与对应于所述第一智能合约的区块链相关联,该虚拟机被配置为执行第一智能合约以使第一状态数据被存储在第一数字树中。以使第一状态数据被存储在第一数字树中。以使第一状态数据被存储在第一数字树中。

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


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

技术介绍

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

技术实现思路

[0007]所描述的主题的实施例可包括单独或组合的一个或多个特征。例如,在一个实施例中,提供了一种用于处理与区块链相关联的世界状态信息的方法。所述方法包括提供与多个用户账户相关联的多个智能合约,其中,每个智能合约与由对应区块链网络管理的对应区块链相关联,并且通过区块链网络的区块链节点的共识将区块链数据存储在区块链上。所述方法包括:提供多个数字树以维护与智能合约和用户账户相关联的一个或多个世界状态,其中,每个世界状态存储与用户账户或智能合约中的至少一个相关联的状态数据。所述多个智能合约中的第一智能合约包括第一代码,所述第一代码标识第一状态数据和多个数字树中的用于存储第一状态数据的第一数字树。所述方法还包括:提供与对应于所述第一智能合约的区块链相关联的虚拟机,其中,所述虚拟机被配置为执行所述第一智能合约以使所述第一状态数据存储在第一数字树中。
[0008]在一些实施例中,所述虚拟机可以包括智能合约编译器,该智能合约编译器被配
置为将所述第一智能合约编译为可以由所述虚拟机执行的第一字节码,其中,所述编译器被配置为识别并编译所述第一代码,使得所述第一字节码在由所述虚拟机执行时使得所述第一状态数据存储在所述第一数字树中。
[0009]在一些实施例中,所述方法可以包括提供智能合约编译器,该智能合约编译器被配置为将所述第一智能合约编译为可以由所述虚拟机执行的第一字节码,其中,该编译器被配置为识别并编译所述第一代码,使得所述第一字节码在由所述虚拟机执行时使得所述第一状态数据存储在所述第一数字树中。
[0010]在一些实施例中,由所述第一代码标识的所述状态数据可以包括以下至少一项:(i)关于与所述第一智能合约相关联的用户账户的状态的数据,或者(ii)关于所述第一智能合约的状态的数据。
[0011]在一些实施例中,所述第一智能合约可以包括第二代码,所述第二代码标识第二状态数据和所述多个数字树中的用于存储所述第二状态数据的第二数字树。编译器可以被配置为识别和编译所述第一代码和所述第二代码,以使所述第一字节码在由所述虚拟机执行时使得所述第一状态数据被存储在所述第一数字树中,并且所述第二状态数据被存储在所述第二数字树中。
[0012]在一些实施例中,所述第一数字树和所述第二数字树可以组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态。
[0013]在一些实施例中,所述第一代码可以指定与第一地理区域中的用户账户相关联的状态数据将被存储在所述第一数字树中,并且所述第二代码可以指定与第二地理区域中的用户账户相关联的状态数据将被存储在所述第二数字树中。
[0014]在一些实施例中,所述第一智能合约可以包括第三代码,所述第三代码标识第三状态数据和所述多个数字树中的用于存储所述第三状态数据的第三数字树。所述第一数字树、所述第二数字树和所述第三数字树可以组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态。所述编译器可以被配置为识别并编译所述第一代码、所述第二代码和所述第三代码,以使所述第一字节码在由所述虚拟机执行时使得所述第一状态数据将存储在所述第一数字树中,所述第二状态数据将存储在所述第二数字树中,所述第三状态数据将存储在所述第三数字树中。
[0015]在一些实施例中,所述第一数字树、所述第二数字树和所述第三数字树可以组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态。
[0016]在一些实施例中,所述第一代码可以指定与第一地理区域中的用户账户相关联的状态数据将存储在所述第一数字树中,所述第二代码可以指定与第二地理区域中的用户账户相关联的状态数据将存储在所述第二数字树中,以及所述第三代码可以指定与第三地理区域中的用户账户相关联的状态数据将存储在所述第三数字树中。
[0017]在一些实施例中,所述多个智能合约中的第二智能合约可以包括第四代码,所述第四代码标识第四状态数据和所述多个数字树中的用于存储所述第四状态数据的第四数字树。所述第一智能合约和所述第二智能合约可以与同一区块链相关联,并且所述第一数字树和所述第四数字树可以组合地维护存储与所述第一智能合约和所述第二智能合约相关联的用户账户的状态数据的世界状态。所述编译器可以被配置为将所述第二智能合约编译为第二字节码。所述编译器可以被配置为识别并编译所述第四代码,以使所述第二字节
码在由所述虚拟机执行时使得所述第四状态数据被存储在所述第四数字树中。
[0018]在一些实施例中,所述第一代码可以包括所述第一数字树的第一地址,所述编译器可以被配置为将所述第一智能合约编译成所述第一字节码,使得所述第一字节码在由所述虚拟机执行时使得所述第一状态数据将被存储在具有所述第一地址的第一数字树中。
[0019]在一些实施例中,所述第一地址可以由恒定值表示。
[0020]在一些实施例中,所述第一地址可以由布尔函数确定。
[0021]在一些实施例中,所述第一地址可以由数学函数确定。
[0022]在一些实施例中,所述第一地址可以由包括一个或多个规则的规则集确定。
[0023]在一些实施例中,所述第一地址可以在编译所述第一智能合约的第一时间段确定。
[0024]在一些实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于处理与区块链相关联的世界状态信息的系统,所述系统包括:区块链数据库,配置为存储由区块链网络管理的区块链,其中,通过所述区块链网络的区块链节点的共识将区块链数据存储在所述区块链上,并且所述区块链包括一个或多个区块,所述一个或多个区块存储与关联于所述区块链的用户账户相关联的交易数据;世界状态数据库,配置为存储包括多个数字树的世界状态数据结构,其中,所述世界状态存储关于所述用户账户的状态的信息;智能合约数据库,配置为存储与所述区块链相关联的多个智能合约,其中,所述多个智能合约中的第一智能合约包括第一代码,所述第一代码标识第一状态数据和所述多个数字树中的用于存储所述第一状态数据的第一数字树;以及虚拟机,与对应于所述第一智能合约的区块链相关联,其中,所述虚拟机被配置为执行所述第一智能合约以使所述第一状态数据被存储在所述第一数字树中。2.根据权利要求1所述的系统,其中,所述虚拟机包括智能合约编译器,该智能合约编译器被配置为将所述第一智能合约编译为能够由所述虚拟机执行的第一字节码,所述编译器被配置为识别并编译所述第一代码,使得所述第一字节码在由所述虚拟机执行时,使得所述第一状态数据被存储在所述第一数字树中。3.根据权利要求1所述的系统,包括智能合约编译器,该智能合约编译器被配置为将所述第一智能合约编译为能够由所述虚拟机执行的第一字节码,所述编译器被配置为识别并编译所述第一代码,使得所述第一字节码在由所述虚拟机执行时,使得所述第一状态数据被存储在所述第一数字树中。4.根据权利要求1至3中任一项所述的系统,其中,由所述第一代码标识的所述状态数据包括以下至少一项:(i)关于与所述第一智能合约相关联的用户账户的状态的数据,或者(ii)关于所述第一智能合约的状态的数据。5.根据权利要求2或3所述的系统,其中,所述第一智能合约包括第二代码,所述第二代码标识第二状态数据和所述多个数字树中的用于存储所述第二状态数据的第二数字树;所述编译器被配置为识别和编译所述第一代码和所述第二代码,使得所述第一字节码在由所述虚拟机执行时使所述第一状态数据被存储在所述第一数字树中,并使所述第二状态数据被存储在所述第二数字树中。6.根据权利要求5所述的系统,其中,所述第一数字树和所述第二数字树组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态。7.根据权利要求5或6所述的系统,其中,所述第一代码指定与第一地理区域中的用户的账户相关联的状态数据将被存储在所述第一数字树中,以及所述第二代码指定与第二地理区域中的用户的账户相关联的状态数据将被存储在所述第二数字树中。8.根据权利要求5所述的系统,其中,所述第一智能合约包括第三代码,所述第三代码标识第三状态数据和所述多个数字树中的用于存储所述第三状态数据的第三数字树;所述第一数字树、所述第二数字树和所述第三数字树组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态;所述编译器被配置为识别并编译所述第一代码、所述第二代码和所述第三代码,使得所述第一字节码在由所述虚拟机执行时使得所述第一状态数据将存储在所述第一数字树中,所述第二状态数据将存储在所述第二数字树中,所述第三状态数据将存储在所述第三
数字树中。9.根据权利要求8所述的系统,其中,所述第一数字树、所述第二数字树和所述第三数字树组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态。10.根据权利要求8或9所述的系统,其中,所述第一代码指定与第一地理区域中的用户的账户相关联的状态数据将存储在所述第一数字树中,所述第二代码指定与第二地理区域中的用户的账户相关联的状态数据将存储在所述第二数字树中,以及所述第三代码指定与第三地理区域中的用户的账户相关联的状态数据将存储在所述第三数字树中。11.根据权利要求2至10中任一项所述的系统,其中,所述多个智能合约中的第二智能合约包括:第四代码,所述第四代码标识第四状态数据和所述多个数字树中的用于存储所述第四状态数据的第四数字树;所述第一智能合约和所述第二智能合约与同一区块链相关联,并且所述第一数字树和所述第四数字树组合地维护存储与所述第一智能合约和所述第二智能合约相关联的用户账户的状态数据的世界状态;所述编译器被配置为将所述第二智能合约编译为第二字节码;以及所述编译器被配置为识别并编译所述第四代码,使得所述第二字节码在由所述虚拟机执行时使得所述第四状态数据被存储在所述第四数字树中。12.根据权利要求2至11中任一项所述的系统,其中,所述第一代码包括所述第一数字树的第一地址,并且所述编译器被配置为将所述第一智能合约编译成所述第一字节码,使得所述第一字节码在由所述虚拟机执行时使得所述第一状态数据被存储在具有所述第一地址的所述第一数字树中。13.根据权利要求12所述的系统,其中,所述第一地址由恒定值表示。14.根据权利要求12所述的系统,其中,所述第一地址通过布尔函数或数学函数中的至少一个确定。15.根据权利要求12所述的系统,其中,所述第一地址由包括一个或多个规则的规则集确定。16.根据权利要求12所述的系统,其中,所述第一地址在编译所述第一智能合约的第一时间段或者在执行所述第一字节码的第二时间段确定。17.根据权利要求5至16中任一项所述的系统,其中,所述第二代码包括所述第二数字树的第二地址,并且所述编译器被配置为将所述第一智能合约编译为所述第一字节码,使得所述第一字节码在由所述虚拟机执行时使得所述第二状态数据将存储在具有所述第二地址的所述第二数字树中。18.根据权利要求17所述的系统,其中,以下至少一项:(i)所述第二地址由恒定值表示;(ii)所述第二地址由布尔函数确定;(iii)所述第二地址由数学函数确定;(iv)所述第二地址由包括一个或多个规则的规则集确定;(v)所述第二地址在编译所述第二智能合约时的第一时间段确定;或(vi)所述第二地址在执行所述第二字节码的第二时间段确定。
19.根据权利要求8至18中任一项所述的系统,其中,所述第三代码包括所述第三数字树的第三地址,并且所述编译器被配置为将所述第一智能合约编译成所述第一字节码,使得所述第一字节码在由所述虚拟机执行时使得所述第三状态数据被存储在具有所述第三地址的所述第三数字树中。20.根据权利要求11至19中任一项所述的系统,其中,所述第四代码包括所述第四数字树的第四地址,并且所述编译器被配置为将所述第二智能合约编译为所述第二字节码,使得所述第二字节码在由所述虚拟机执行时使所述第四状态数据将存储在具有所述第四地址的所述第四数字树中。21.根据权利要求5至18中任一项所述的系统,包括处于一个或多个位置的一台或多台计算机,并被配置为:确定所述第一数字树的第一根哈希值;确定所述第二数字树的第二根哈希值;以及基于所述第一根哈希值和所述第二根哈希值,确定世界状态根哈希值。22.根据权利要求21所述的系统,其中,所述一个或多个计算机被配置为:确定所述第三数字树的第三根哈希值;以及基于所述第一根哈希值、所述第二根哈希值和所述第三根哈希值,确定所述世界状态根哈希值。23.根据权利要求21或22所述的系统,其中,所述世界状态根哈希值表示关联于所述世界状态的用户账户、一个智能合约或多个智能合约的所述一个或多个状态的数字指纹。24.根据权利要求5至23中任一项所述的系统,其中,所述第一智能合约指定将所述第一数字树存储在第一存储设备处,并将所述第二数字树存储在第二存储设备处。25.根据权利要求5至24中任一项所述的系统,其中,所述第一智能合约指定将所述第一数字树和所述第二数字树二者都存储在所述第一存储设备处。26.根据权利要求25所述的系统,包括处于一个或多个位置的一个或多个计算机,并被配置为生成存储在所述第一存储设备中的所述数据的索引,并将所述索引存储在所述第一数字树和所述第二数字树中。27.根据权利要求1至26中任一项所述的系统,其中,每个数字树包括默克尔树、帕特里夏树、默克尔帕特里夏树、修改的默克尔帕特里夏树或桶树中的至少一种。28.一种用于处理与区块链相关联的世界状态信息的方法,所述方法包括:提供与多个用户账户相关联的多个智能合约,其中,每个智能合约与由对应区块链网络管理的对应区块链相关联,并且通过所述区块链网络的区块链节点的共识将区块链数据存储在所述区块链上;提供多个数字树以维护与所述智能合约和所述用户账户相关联的一个或多个世界状态,其中,每个世界状态存储与用户账户或智能合约中的至少一个相关联的状态数据;其中,所述多个智能合约中的第一智能合约包括:第一代码,标识第一状态数据和多个数字树中的用于存储所述第一状态数据的第一数字树;以及提供与对应于所述第一智能合约的区块链相关联的虚拟机,其中,所述虚拟机被配置为执行所述第一智能合约以使所述第一状态数据存储在所述第一数字树中。
29.根据权利要求28所述的方法,其中,所述虚拟机包括智能合约编译器,所述智能合约编译器被配置为将所述第一智能合约编译为能够由所述虚拟机执行的第一字节码,所述编译器被配置为识别并编译所述第一代码,使得所述第一字节码在由所述虚拟机执行时,使得所述第一状态数据被存储在所述第一数字树中。30.根据权利要求28所述的方法,包括提供智能合约编译器,所述智能合约编译器被配置为将所述第一智能合约编译为能够由所述虚拟机执行的第一字节码,所述编译器被配置为识别并编译所述第一代码,使得所述第一字节码在由所述虚拟机执行时,使得所述第一状态数据被存储在所述第一数字树中。31.根据权利要求28至30中任一项所述的方法,其中,由所述第一代码标识的所述状态数据包括以下至少一项:(i)关于与所述第一智能合约相关联的用户账户的状态的数据,或者(ii)关于所述第一智能合约的状态的数据。32.根据权利要求29至31中任一项所述的方法,其中,所述第一智能合约包括第二代码,所述第二代码标识第二状态数据和所述多个数字树中用于存储所述第二状态数据的第二数字树;所述编译器被配置为识别和编译所述第一代码和所述第二代码,使得所述第一字节码在由所述虚拟机执行时,使得所述第一状态数据被存储在所述第一数字树中,并且所述第二状态数据被存储在所述第二数字树中。33.根据权利要求32所述的方法,其中,所述第一数字树和所述第二数字树组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态。34.根据权利要求32或33所述的方法,其中,所述第一代码指定与第一地理区域中的用户的账户相关联的状态数据将被存储在所述第一数字树中,并且所述第二代码指定与第二地理区域中的用户的账户相关联的状态数据将被存储在所述第二数字树中。35.根据权利要求32所述的方法,其中,所述第一智能合约包括第三代码,所述第三代码标识第三状态数据和所述多个数字树中的用于存储所述第三状态数据的第三数字树;所述第一数字树、所述第二数字树和所述第三数字树组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态;所述编译器被配置为识别并编译所述第一代码、所述第二代码和所述第三代码,使得所述第一字节码在由所述虚拟机执行时,使得所述第一状态数据将存储在所述第一数字树中,所述第二状态数据将存储在所述第二数字树中,所述第三状态数据将存储在所述第三数字树中。36.根据权利要求35所述的方法,其中,所述第一数字树、所述第二数字树和所述第三数字树组合地维护与关联于所述第一智能合约的用户账户相关联的世界状态。37.根据权利要求35或36所述的方法,其中,所述第一代码指定与第一地理区域中的用户的账户相关联的状态数据将存储在所述第一数字树中,所述第二代码指定与第二地理区域中的用户的账户相关联的状态数据将存储在所述第二数字树中,以及所述第三代码指定与第三地理区域中的用户账户相关联的状态数据将存储在所述第三数字树中。38.根据权利要求29至37中任一项所述的方法,其中,所述多个智能合约中的第二智能合约包括:第四代码,标识第四状态数据和所述多个数字树中的用于存储所述第四状态数据的第
四数字树;所述第一智能合约和所述第二智能合约与同一区块链相关联,并且所述第一数字树和所述第四数字树组合地维护存储与所述第一智能合约和所述第二智能合约相关联的用户账户的状态数据的世界状态;所述编译器被配置为将所述第二智能合约编译为第二字节码;以及所述编...

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

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

1