一种基于可信执行环境的智能合约执行方法及相关装置制造方法及图纸

技术编号:37974870 阅读:15 留言:0更新日期:2023-06-30 09:50
本发明专利技术公开了一种基于可信执行环境的智能合约执行方法及相关装置,该方法具体为:获取交易发起方发出的交易请求后,为交易请求分配一个空闲状态的可信执行环境,并将交易请求的合约执行参数传入该可信执行环境,以及根据交易请求的合约ID,从该可信执行环境对应的智能合约库中选择对应智能合约的加密源码传入该可信执行环境;然后,在该可信执行环境中对智能合约的加密源码进行解密,获取智能合约的源码,接着在可信执行环境中,运行智能合约的源码并执行该执行参数对应的交易,得到相应的交易数据。因此,本发明专利技术通过在可信执行环境中完成智能合约的解密与执行,可避免用户的交易隐私泄露。隐私泄露。

【技术实现步骤摘要】
一种基于可信执行环境的智能合约执行方法及相关装置


[0001]本专利技术涉及区块链
,特别涉及一种基于可信执行环境的智能合约执行方法及相关装置。

技术介绍

[0002]区块链技术的去中心化、可追溯、不可篡改等特点使其在金融、供应链管理、医疗等众多领域发挥着重要的作用,但区块链交易记录的公开透明性也为用户的交易隐私带来了威胁;虽然一些区块链应用借助密码学技术为用户的交易隐私提供了保障,不过基于目前区块链网络的防篡改机制,交易是通过智能合约在区块链网络上完成的,由于区块链网络的共识节点均拥有获取智能合约的合约源码权限,一旦不法分子监听共识节点并盗取智能合约执行过程中的源码,造成用户的交易隐私的泄露。

技术实现思路

[0003]本专利技术实施例提供一种基于可信执行环境的智能合约执行方法,以及相关装置,基于可信执行环境兼顾隐私保护和计算效率的优点,在可信执行环境中完成智能合约的执行,以防止不法分子通过监听区块链网络共识节点而盗取智能合约执行过程中的源码,避免用户的交易隐私泄露。
[0004]本专利技术的第一方面,提供了一种基于可信执行环境的智能合约执行方法,其包括以下步骤:获取交易发起方发出的交易请求,所述交易请求包括:用于执行交易的智能合约的合约ID以及执行参数;为所述交易请求分配一个空闲状态的可信执行环境,并将所述交易请求的合约执行参数传入所述可信执行环境,以及根据所述交易请求的合约ID,从所述可信执行环境对应的智能合约库中选择对应智能合约的加密源码传入所述可信执行环境;在所述可信执行环境中对所述智能合约的加密源码进行解密,获取所述智能合约的源码;以及,在所述可信执行环境中,运行所述智能合约的源码并执行所述执行参数对应的交易,得到相应的交易数据。
[0005]在一种具体的实施方式中,预先创建至少一个可信执行环境,并将可信执行环境的硬件固有密钥作为私钥,推导出所述可信执行环境对应的公钥;导出所述可信执行环境的公钥后,利用所述可信执行环境的公钥分别对每个智能合约的源码进行加密,得到每个智能合约的加密源码,并将每个智能合约的加密源码保存在所述可信执行环境对应的智能合约库中。
[0006]在一种具体的实施方式中,获取交易发起方发出的交易请求,若预先创建的可信执行环境均处于占用状态,则将获取的交易请求加入至先入先出队列,等待分配空闲的可信执行环境。
[0007]在一种具体的实施方式中,本专利技术基于可信执行环境的智能合约执行方法中,执
行所述执行参数对应的交易后,导出相应的交易数据,并在导出交易数据后,重置所述可信执行环境。
[0008]本专利技术的第二方面,提供一种区块链节点设备,其包括:可信执行环境管理模块,用于创建至少一个可信执行环境;交易请求获取模块,用于获取交易发起方发出的交易请求,所述交易请求包括:用于执行交易的智能合约的合约ID以及执行参数;调度模块,用于为获取的所述交易请求分配一个空闲状态的可信执行环境,并将所述交易请求的合约执行参数传入所述可信执行环境,以及根据所述交易请求的合约ID,从所述可信执行环境对应的智能合约库中选择对应智能合约的加密源码传入所述可信执行环境;而且,所述可信执行环境被配置为:对所述智能合约的加密源码进行解密,获取所述智能合约的源码;以及,运行所述智能合约的源码并执行所述执行参数对应的交易,得到相应的交易数据。
[0009]在一种具体的实施方式中,所述可信执行环境管理模块,用于在创建可信执行环境后,将可信执行环境的硬件固有密钥作为私钥,推导出所述可信执行环境对应的公钥;以及,在导出所述可信执行环境的公钥后,利用所述可信执行环境的公钥分别对每个智能合约的源码进行加密,得到每个智能合约的加密源码,并将每个智能合约的加密源码保存在所述可信执行环境对应的智能合约库中。
[0010]在一种具体的实施方式中,所述调度模块,用于在预先创建的可信执行环境均处于占用状态时,将获取的交易请求加入至先入先出队列,等待分配空闲的可信执行环境。
[0011]在一种具体的实施方式中,所述调度模块,用于执行所述执行参数对应的交易后,导出相应的交易数据;所述可信执行环境管理模块,用于在导出交易数据后,重置所述可信执行环境。
[0012]本专利技术第三方面,提供一种电子设备,其包括:至少一个处理器,其可被配置为提供至少一个可信执行环境;至少一个存储器,其存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现本专利技术第一方面提供的基于可信执行环境的智能合约执行方法。
[0013]本专利技术第三方面,提供一种计算机存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现本专利技术第一方面提供的基于可信执行环境的智能合约执行方法。
[0014]与现有技术相比,本专利技术的有益效果:本专利技术基于可信执行环境的智能合约执行方法,获取交易发起方发出的交易请求后,为交易请求分配一个空闲状态的可信执行环境,并将交易请求的合约执行参数传入该可信执行环境,以及根据交易请求的合约ID,从该可信执行环境对应的智能合约库中选择对应智能合约的加密源码传入该可信执行环境;然后,在该可信执行环境中对智能合约的加密源码进行解密,获取智能合约的源码,接着在可信执行环境中,运行智能合约的源码并执行该执行参数对应的交易,得到相应的交易数据。因此,本专利技术通过在可信执行环境中完成智能合约的解密与执行,能够防止不法分子通过监听区块链网络共识节点而盗取智能合
约执行过程中的源码,进而避免用户的交易隐私泄露。
附图说明
[0015]图1为本专利技术实施例中基于可信执行环境的智能合约执行方法的流程示意图;图2为本专利技术实施例中提供的区块链节点设备的结构示意图;图3为本专利技术实施例中提供的电子设备的结构示意图。
具体实施方式
[0016]下面结合附图及具体实施例对本专利技术作进一步的详细描述。但不应将此理解为本专利技术上述主题的范围仅限于以下的实施例,凡基于本
技术实现思路
所实现的技术均属于本专利技术的范围。
[0017]如图1所示,本专利技术提供一种基于可信执行环境的智能合约执行方法,其包括以下步骤:首先,获取交易发起方发出的交易请求,其中,交易请求包括:用于执行交易的智能合约的合约ID以及执行参数;具体的,部署在区块链网络上的每一个智能合约均具有一个唯一的合约ID,在交易方发起交易时,通过传入合约ID便可确定用于执行该交易的智能合约,同时,交易方在发起交易时,还要传入执行参数,比如交易目标对象、交易类型、交易内容等。
[0018]在获取到交易请求后,为交易请求分配一个空闲状态的可信执行环境,并将所述交易请求的合约执行参数传入所述可信执行环境,以及根据所述交易请求的合约ID,从所述可信执行环境对应的智能合约库中选择对应智能合约的加密源码传入所述可信执行环境;具体的,由于可信执行环境是一个由处理器直接管理的隔离区域,在可信执行环境中运行的代码将完全隔离于系统以及Hypervisor;目前,主流的芯片架构平台都有各自的可信执行环境(TEE技术),比如基于A本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可信执行环境的智能合约执行方法,其特征在于,包括以下步骤:获取交易发起方发出的交易请求,所述交易请求包括:用于执行交易的智能合约的合约ID以及执行参数;为所述交易请求分配一个空闲状态的可信执行环境,并将所述交易请求的合约执行参数传入所述可信执行环境,以及根据所述交易请求的合约ID,从所述可信执行环境对应的智能合约库中选择对应智能合约的加密源码传入所述可信执行环境;在所述可信执行环境中对所述智能合约的加密源码进行解密,获取所述智能合约的源码;以及,在所述可信执行环境中,运行所述智能合约的源码并执行所述执行参数对应的交易,得到相应的交易数据。2.如权利要求1所述的基于可信执行环境的智能合约执行方法,其特征在于,预先创建至少一个可信执行环境,并将可信执行环境的硬件固有密钥作为私钥,推导出所述可信执行环境对应的公钥;导出所述可信执行环境的公钥后,利用所述可信执行环境的公钥分别对每个智能合约的源码进行加密,得到每个智能合约的加密源码,并将每个智能合约的加密源码保存在所述可信执行环境对应的智能合约库中。3.如权利要求1所述的基于可信执行环境的智能合约执行方法,其特征在于,获取交易发起方发出的交易请求,若预先创建的可信执行环境均处于占用状态,则将获取的交易请求加入至先入先出队列,等待分配空闲的可信执行环境。4.如权利要求1所述的基于可信执行环境的智能合约执行方法,其特征在于,执行所述执行参数对应的交易后,导出相应的交易数据,并在导出交易数据后,重置所述可信执行环境。5.一种区块链节点设备,其特征在于,包括:可信执行环境管理模块,用于创建至少一个可信执行环境;交易请求获取模块,用于获取交易发起方发出的交易请求,所述交易请求包括:用于执行交易的智能合约的合约ID以及执行参数;调度模块,用于为获取的所述交易请求分配一个...

【专利技术属性】
技术研发人员:田经纬吕一新卢德刚田龙
申请(专利权)人:迅鳐成都科技有限公司
类型:发明
国别省市:

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

1