在可信执行环境下处理和存储区块链数据制造技术

技术编号:23632398 阅读:30 留言:0更新日期:2020-04-01 00:44
本文公开了用于在可信执行环境(TEE)下处理区块链数据的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括区块链节点接收用于在TEE中执行一个或多个软件指令的请求,所述TEE在所述区块链节点上执行;TEE中的虚拟机确定与一个或多个区块链账户相关联的数据,以基于所述请求执行一个或多个软件指令;虚拟机遍历存储在TEE中的内部高速缓存哈希值表,以确定数据是否被包括在内部高速缓存哈希值表中;以及响应于确定所述数据被包括在内部高速缓存哈希值表中,虚拟机通过从内部高速缓存哈希值表中检索数据来执行一个或多个软件指令。

【技术实现步骤摘要】
【国外来华专利技术】在可信执行环境下处理和存储区块链数据
本文涉及在可信执行环境下处理和存储区块链数据。
技术介绍
分布式账本(DLS),也可称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并且该联盟区块链网络包括访问控制层。区块链网络可以在诸如以太坊的分布式计算平台操作。以太坊区块链可以被视为基于交易的状态机。以太坊可以拥有被称为世界状态的全局共享状态。以太坊的世界状态可以包括由以太坊账户形成的对象。每个账户都可以具有状态和相应的地址。世界状态包括账户地址和账户状态之间的映射。所述映射被存储在称为默克尔帕特里夏树(MerklePatriciaTree,MPT)的数据结构中。在一些情况下,区块链网络的节点和/或与区块链网络通信的节点可以使用可信执行环境(TEE)来操作。TEE可以包括与硬件的操作环境(例如,操作系统(OS)、基础输入/输出系统(BIOS))隔离的硬件(一个或多个处理器、存储器)内的飞地可信计算基(TCB)。TCB可以包括用于处理来自飞地外部的应用的调用的以太坊虚拟机(EVM)。在一些情况下,EVM检索存储在TCB外部的世界状态MPT的一个或多个值以处理TCB内的调用。在处理之后,从TCB输出调用的处理结果以更新世界状态MPT。在可信环境和不可信环境之间传输数据的数据处理可能消耗额外的计算资源并损害数据处理效率。期望至少部分地基于存储在TCB中的数据来处理调用,以减少可信环境和不可信环境之间的数据通信,从而减少计算资源消耗并提高数据处理效率。
技术实现思路
本文描述了用于处理和存储区块链数据的技术。这些技术通常涉及接收用于在可信执行环境(TEE)中执行一个或多个软件指令的请求,所述TEE在所述区块链节点上执行;确定与一个或多个区块链账户相关联的数据,以基于所述请求执行所述一个或多个软件指令;遍历存储在所述TEE中的内部高速缓存哈希值表,以确定所述数据是否被包括在所述内部高速缓存哈希值表中;以及响应于确定所述数据被包括在所述内部高速缓存哈希值表中,通过从所述内部高速缓存哈希值表中检索所述数据来执行所述一个或多个软件指令。本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。本文还提供了用于实施本文提供的所述方法的系统。所述系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。以下在附图和描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显现。附图说明图1是示出了可用于执行本文的实施例的环境的示例的图。图2是示出根据本文的实施例的架构的示例的图。图3是示出根据本文的实施例的可信执行环境(TEE)的结构和TEE外部的存储器的示例的图。图4是根据本文的实施例的用于处理和存储区块链数据的处理的示例的流程图。图5描绘了根据本文的实施例的装置的模块的示例。各附图中相同的附图标记和名称表示相同的元件。具体实施方式本文描述了用于处理和存储区块链数据的技术。这些技术通常涉及接收用于在可信执行环境(TEE)中执行一个或多个软件指令的请求,所述TEE在所述区块链节点上执行;确定与一个或多个区块链账户相关联的数据,以基于所述请求执行所述一个或多个软件指令;遍历存储在所述TEE中的内部高速缓存哈希值表,以确定所述数据是否被包括在所述内部高速缓存哈希值表中;以及响应于确定所述数据被包括在所述内部高速缓存哈希值表中,通过从所述内部高速缓存哈希值表中检索所述数据,执行所述一个或多个软件指令。为本文实施例提供进一步的背景,并且如上所述,分布式账本系统(DLS),又可称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。尽管术语区块链通常与特定网络和/或用例相关联,但在不参考任何特定用例的情况下,本文使用“区块链”来一般地指代DLS。区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographichash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。默克尔树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处连接。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。可通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。本文中参考联盟区块链网络进一步详细描述了本文的实施例。然而,可以预期,本文实施例可以在任何适当类型的区块链网络中实现。通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识处理由经授权的一组节点控制,所述节点可以被称为共识节点,一个或多个共识节点由各自的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。在一些示例中,在联盟区块链网络内,全局区块链作为跨所有节点复制的区块链被提供。也就是说,所有共识节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(PBFT)共识,下面将进一步详细描述。图1是示出了可用于执行本文的实施例的环境100的示例的图。在一些示例中,环境100使得实体能够参与联盟区块链网络102。环境100包括计算设备106、108以及网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后端系统。在一些示例中,本文档来自技高网
...

【技术保护点】
1.一种计算机实现的用于在可信执行环境TEE下处理区块链数据的方法,所述方法包括:/n区块链节点接收用于在TEE中执行一个或多个软件指令的请求,所述TEE在所述区块链节点上执行;/n所述TEE中的虚拟机确定与一个或多个区块链账户相关联的数据,以基于所述请求执行所述一个或多个软件指令;/n所述虚拟机遍历存储在所述TEE中的内部高速缓存哈希值表,以确定所述数据是否被包括在所述内部高速缓存哈希值表中;以及/n响应于确定所述数据被包括在所述内部高速缓存哈希值表中,所述虚拟机通过从所述内部高速缓存哈希值表中检索所述数据来执行所述一个或多个软件指令。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于在可信执行环境TEE下处理区块链数据的方法,所述方法包括:
区块链节点接收用于在TEE中执行一个或多个软件指令的请求,所述TEE在所述区块链节点上执行;
所述TEE中的虚拟机确定与一个或多个区块链账户相关联的数据,以基于所述请求执行所述一个或多个软件指令;
所述虚拟机遍历存储在所述TEE中的内部高速缓存哈希值表,以确定所述数据是否被包括在所述内部高速缓存哈希值表中;以及
响应于确定所述数据被包括在所述内部高速缓存哈希值表中,所述虚拟机通过从所述内部高速缓存哈希值表中检索所述数据来执行所述一个或多个软件指令。


2.如权利要求1所述的计算机实现的方法,还包括:
响应于执行所述一个或多个软件指令,所述虚拟机更新所述内部高速缓存哈希值表;以及
所述区块链节点将所述内部高速缓存哈希值表与包括与所述一个或多个区块链账户相关联的数据的外部高速缓存哈希值表同步,其中所述外部高速缓存哈希值表被存储在与所述TEE分离的高速缓存存储器中。


3.如前述任一权利要求所述的计算机实现的方法,其中,
与所述一个或多个区块链账户相关联的数据是一个或多个键值对KVP,并且
所述内部高速缓存哈希值表存储与区块链的多个账户的被频繁访问的存储内容相关联的多个KVP。


4.如权利要求3所述的计算机实现的方法,还包括:
如果所述一个或多个KVP中的至少一部分未被包括在所述内部高速缓存哈希值表中,所述区块链通过直接存储器存取来遍历所述外部高速缓存哈希值表,以确定所述一个或多个KVP是否被包括在所述外部高速缓存哈希值表中;
如果所述一个或多个KVP的所述至少一部分被包括在所述外部高速缓存哈希值表中,所述虚拟机通过从所述外部高速缓存哈希值表中检索所述一个或多个KVP的所述至少一部分来执行所述一个或多个软件指令;
响应于执行所述一个或多个软件...

【专利技术属性】
技术研发人员:魏长征闫莺赵博然宋旭阳杜华兵
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1