区块链系统中的交易执行方法、节点和区块链系统技术方案

技术编号:34639054 阅读:17 留言:0更新日期:2022-08-24 15:13
一种区块链系统中的交易执行方法、节点和区块链系统。区块链系统中的第一节点可以在其TEE中预执行第一交易,获得资源消费信息和基于该资源消费信息生成的预执行读写集;并在其TEE中基于该资源消费信息生成可信数据后,向区块链系统中的第二节点发送该可信数据和预执行读写集。第二节点可以基于来自第一节点的资源消费信息执行第一交易,获得第一交易的执行读写集;并根据执行读写集第一交易的预执行读写集验证该第一节点在预执行第一交易的过程中是否作恶,如果否则将执行读写集的执行写集作为第一交易的状态数据。集作为第一交易的状态数据。集作为第一交易的状态数据。

【技术实现步骤摘要】
区块链系统中的交易执行方法、节点和区块链系统


[0001]本说明书实施例属于区块链
,尤其涉及一种区块链系统中的交易执行方法、节点和区块链系统。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。

技术实现思路

[0003]本专利技术的目的在于提供一种区块链系统中的交易执行方法、节点和区块链系统。
[0004]第一方面,提供了一种区块链系统中的交易执行方法,所述区块链系统包括第一节点和第二节点,所述方法由所述第一节点执行。方法包括:在可信执行环境(trusted execution environment,TEE)中预执行第一交易,获得资源消费信息和基于所述资源消费信息生成的预执行读写集;在所述TEE中基于所述资源消费信息生成可信数据;向所述第二节点发送所述可信数据和所述预执行读写集。
[0005]第二方面,提供了一种一种区块链系统中的交易执行方法,所述区块链系统包括第一节点和第二节点,所述方法由所述第一节点执行。方法包括:从所述第一节点接收可信数据和第一交易的预执行读写集,所述可信数据由所述第一节点在其TEE中基于第一交易的资源消费信息生成,所述资源消费信息和所述预执行读写及由所述第一节点在其TEE中对所述第一交易进行预执行以获得;基于所述资源消费信息执行所述第一交易,获得所述第一交易的执行读写集;根据所述执行读写集和所述预执行读写集确定所述第一节点在预执行所述第一交易的过程中是否作恶,如果否则将所述执行读写集的执行写集作为所述第一交易的状态数据。
[0006]第三方面,提供了一种区块链系统中的第一节点,所述区块链系统中还包括第二节点。所述第一节点包括:预执行进程,部署在所述第一节点的TEE中,配置为预执行第一交易,获得资源消费信息和基于所述资源消费信息生成的预执行读写集;以及配置为在所述TEE中基于所述资源消费信息生成可信数据;网络进程,配置为向所述第二节点发送所述可信数据和所述预执行读写集。
[0007]第四方面,提供了一种区块链系统中的第二节点,所述区块链系统中还包括第一节点。所述第二节点包括:网络进程,配置为从所述第一节点接收可信数据和第一交易的预执行读写集,所述可信数据由所述第一节点在其TEE中基于第一交易的资源消费信息生成,所述资源消费信息和所述预执行读写及由所述第一节点在其TEE中对所述第一交易进行预执行以获得;计算进程,配置为基于所述资源消费信息执行所述第一交易,获得所述第一交易的执行读写集;以及,配置为根据所述执行读写集和所述预执行读写集确定所述第一节
点在预执行所述第一交易的过程中是否作恶,如果否则将所述执行读写集的执行写集作为所述第一交易的状态数据。
[0008]第五方面,提供了一种区块链系统,包括第一节点和第二节点。其中:所述第一节点用于在可信执行环境TEE中预执行第一交易,获得资源消费信息和基于所述资源消费信息生成的预执行读写集;在所述TEE中基于所述资源消费信息生成可信数据;并向所述第二节点发送所述可信数据和所述预执行读写集;所述第二节点用于基于所述资源消费信息执行所述第一交易,获得所述第一交易的执行读写集;根据所述执行读写集和所述预执行读写集确定所述第一节点在预执行所述第一交易的过程中是否作恶,如果否则将所述执行读写集的执行写集作为所述第一交易的状态数据。
[0009]上述实施例中,第二节点在执行交易的过程中,无需再次计算该交易的资源消费信息,而是使用来自第一节点的该交易的资源消费信息来执行该交易,即使用来自第一节点的该交易的资源消费信息生成该交易的执行写集。当第二节点确定该交易的执行读写集和预执行读写集确定出节点n1在执行该交易的过程中没有作恶的情况下,即可将该交易的执行写集作为该交易的状态数据而完成对该交易的执行。如此,第二节点因无需再次计算交易的资源消费信息而可以更为快速的完成对交易的执行。
附图说明
[0010]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1为本说明书实施例中示例性提供的区块链系统的示意图;
[0012]图2为本说明书实施例中示例性提供的区块链数据存储的结构示意图;
[0013]图3为本说明书实施例中示例性提供的区块链系统中任意两个节点的结构示意图;
[0014]图4为本说明书实施例中提供的一种交易执行方法的流程图;
[0015]图5为本说明书实施例中提供的一种区块链节点的结构示意图之一;
[0016]图6为本说明书实施例中提供的一种区块链节点的结构示意图之二。
具体实施方式
[0017]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0018]图1为本说明书实施例中示例性提供的区块链系统的示意图。如图1所示,区块链系统是通过多个节点(Node)来建立的分布式网络,其包含任意两个节点间通过点对点(Peer

to

Peer,P2P)网络实现在应用层的通信连接,例如其包含的节点n1~节点n5中的任意两个节点间均可通过P2P网络实现在应用层的通信连接。区块链系统利用链式区块结构
构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上,因此区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。鉴于此,区块链系统的每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,将交易打包成区块并基于相同交易的执行结果更新世界状态。其中当前主流的共识机制包括但不限于:工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法,蜜獾拜占庭容错(HoneyBadgerBFT)算法等等。
[0019]区块链系统中的账户通常被划分为用户账户/外部账户(Externally owned ac本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统中的交易执行方法,所述区块链系统包括第一节点和第二节点,所述方法由所述第一节点执行,所述方法包括:在可信执行环境TEE中预执行第一交易,获得资源消费信息和基于所述资源消费信息生成的预执行读写集;在所述TEE中基于所述资源消费信息生成可信数据;向所述第二节点发送所述可信数据和所述预执行读写集。2.根据权利要求1所述的方法,所述第一交易用于调用智能合约;所述在可信执行环境TEE中预执行第一交易,包括:在所述TEE中基于所述第一交易执行所述智能合约,获得所述资源消费信息。3.根据权利要求1所述的方法,所述资源消费信息基于所述第一交易的数据量计算得到。4.根据权利要求1所述的方法,所述可信数据通过对所述资源消费信息进行加密而得到。5.根据权利要求1所述的方法,所述可信数据包括所述资源消费信息以及与所述资源消费信息对应的签名。6.根据权利要求1

5中任一项所述的方法,所述可信数据和所述预执行读写集位于所述第一节点向所述第二节点发送的共识提议中,所述共识提议中还包括所述第一交易或用于指示所述第一交易的指示信息。7.一种区块链系统中的交易执行方法,所述区块链系统包括第一节点和第二节点,所述方法由所述第一节点执行,所述方法包括:从所述第一节点接收可信数据和第一交易的预执行读写集,所述可信数据由所述第一节点在其TEE中基于第一交易的资源消费信息生成,所述资源消费信息和所述预执行读写及由所述第一节点在其TEE中对所述第一交易进行预执行以获得;基于所述资源消费信息执行所述第一交易,获得所述第一交易的执行读写集;根据所述执行读写集和所述预执行读写集确定所述第一节点在预执行所述第一交易的过程中是否作恶,如果否则将所述执行读写集的执行写集作为所述第一交易的状态数据。8.根据权利要求7所述的方法,所述资源消费信息基于所述第一交易的数据量计算得到。9.根据权利要求7所述的方法,所述可信数据通过对所述资源消费信息进行加密而得到;所述方法还包括:对所述可信数据进行解密以获得所述资源消费信息。10.根据权利要求7所述的方法,所述可信数据包括所述资源消费信息以及与所述资源消费信息对应的签名;所述方法还包括:对所述签名进行验证。11.根据权利要求7

10中任一项所述的方法,所述第一交易是来自所述第一节点的共识提议所包括或指示的多个交易中的任一交易;所述方法还包括:根据所述多个交易各自的预执行读写集将所述多个交易划分为M个交易分组,并确定M个所述交易分组各自对应的计算进程;所述基于所述资源消费信息执行所述第一交易,获得所述第一交易的执行读写集,具体包括:通过所述计算进程基于其对应的各个交易分组中的每个交易各自的资源消费信
息,执行其对应的各个交易分组中的每个交易,获得其对应的各个交易分组中的每个交易各自的执行读写集。12.根据权利要求7

10中任一项所述的方法,所述可信数据和所述预执行读写集位于所述第一节点向所述第二节点发送的共识提议中,所述共识提议中还包括所述第一交易或用于指示所述第一交易的指示信息。13.一种区块链系统中的第一...

【专利技术属性】
技术研发人员:林鹏曹蓉
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

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

1