本申请涉及区块链和智能合约,尤其涉及一种基于以太坊虚拟机的区块链链上攻击拦截方法及装置。
背景技术:
1、近年来,区块链技术应用范围日益增多,覆盖金融领域、公共服务领域、信息安全领域、物联网领域、供应链领域、汽车领域等,应用场景包含数字货币、数字藏品、金融资产、数字政务、存证防伪数据服务领域等。以太坊是一种基于区块链技术的智能合约平台,而以太坊虚拟机(ethereum virtual machine,evm)是其核心部分,负责执行智能合约的代码。在智能合约的执行过程中,存在着一些安全漏洞和攻击方式,例如重入攻击、溢出攻击等,这些攻击可能导致合约的异常行为和资金安全问题,因此,亟需一种用于以太坊虚拟机链上攻击的拦截方法。
技术实现思路
1、本申请提供了一种基于以太坊虚拟机的区块链链上攻击拦截方法及装置,能够实现基于以太坊虚拟机的区块链链上攻击的拦截。
2、为达到上述目的,本申请采用如下技术方案:
3、本申请实施例第一方面,提供了一种基于以太坊虚拟机的区块链链上攻击拦截方法,应用于本地设备,所述本地设备上部署有以太坊虚拟机,所述方法包括:
4、获取区块链网络中缓存的交易信息,所述交易信息属于区块链上以太坊虚拟机执行的交易信息;
5、从区块链上读取所述交易信息对应的原始智能合约;
6、在确定所述交易信息中存在攻击行为后,生成所述原始智能合约对应的类智能合约,所述类智能合约与所述原始智能合约具有相同的代码执行路径和代码变量;
7、将所述类智能合约部署于区块链上,并控制执行所述类智能合约,以及控制将执行所述类智能合约产生的损失返回至对应的第三方设备。
8、作为一种可能的实现方式,所述生成所述原始智能合约对应的类智能合约,包括:
9、获取执行所述原始智能合约的变量值以及跳转指令;
10、根据所述跳转指令确定所述类智能合约的代码执行路径;
11、根据所述变量值和所述代码执行路径,生成所述类智能合约。
12、作为一种可能的实现方式,所述控制执行所述类智能合约,包括:
13、若所述本地设备有执行区块链上智能合约的权限,则所述本地设备执行所述类智能合约;
14、若所述本地设备没有执行区块链上智能合约的权限,则向目标设备发送执行指令,以使所述目标设备根据所述执行指令后,执行区块链上的所述类智能合约。
15、作为一种可能的实现方式,所述控制将执行所述类智能合约产生的损失返回至对应的第三方设备,包括:
16、获取所述类智能合约执行过程中攻击的其他智能合约;
17、根据所述其他智能合约的身份信息和地址信息,向所述其他智能合约对应的设备返回损失信息,所述损失信息为所述类智能合约执行过程中攻击的其他智能合约产生的损失信息。
18、作为一种可能的实现方式,所述从区块链上读取所述交易信息对应的原始智能合约之后,所述方法还包括:
19、根据所述交易信息中的费用信息、交互地址、资金来源以及所述交易信息对应的智能合约的公开性,确定所述交易信息是否存在攻击行为。
20、作为一种可能的实现方式,所述获取执行所述原始智能合约的变量值以及跳转指令,包括:
21、利用污点追踪技术获取执行所述原始智能合约的变量值以及跳转指令。
22、作为一种可能的实现方式,获取区块链网络中缓存的交易信息,包括:
23、从区块链网络的内存池中,获取区块链网络缓存的交易信息。
24、本申请实施例第二方面,提供了一种基于以太坊虚拟机的区块链链上攻击拦截装置,位于本地设备,所述本地设备上部署有以太坊虚拟机,所述装置包括:
25、获取模块,用于获取区块链网络中缓存的交易信息,所述交易信息属于区块链上以太坊虚拟机执行的交易信息;
26、读取模块,用于从区块链上读取所述交易信息对应的原始智能合约;
27、生成模块,用于在确定所述交易信息中存在攻击行为后,生成所述原始智能合约对应的类智能合约,所述类智能合约与所述原始智能合约具有相同的代码执行路径和代码变量;
28、控制模块,用于将所述类智能合约部署于区块链上,并控制执行所述类智能合约,以及控制将执行所述类智能合约产生的损失返回至对应的第三方设备。
29、本申请实施例第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现本申请实施例第一方面中的基于以太坊虚拟机的区块链链上攻击拦截方法。
30、本申请实施例第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例第一方面中的基于以太坊虚拟机的区块链链上攻击拦截方法。
31、本申请实施例提供的技术方案带来的有益效果至少包括:
32、本申请实施例提供的基于以太坊虚拟机的区块链链上攻击拦截方法,应用于本地设备,该本地设备上部署有以太坊虚拟机,通过获取区块链网络的内存池中缓存的交易信息,交易信息属于区块链上以太坊虚拟机执行的交易信息;从区块链上读取交易信息对应的原始智能合约;在确定交易信息中存在攻击行为后,生成原始智能合约对应的类智能合约,类智能合约与原始智能合约具有相同的代码执行路径和代码变量;将类智能合约部署于区块链上,并控制执行类智能合约,以及控制将执行类智能合约产生的损失返回至对应的第三方设备。本申请通过在确定交易信息有攻击行为的情况下,先将与原始智能合约具有相同的代码执行路径和代码变量的类智能合约部署在区块链上,然后执行该类智能合约,最后将执行该类智能合约产生的损失返回至对应的第三方设备,这样可以避免第三方执行原始智能合约时产生损失,实现了监测并拦截基于以太坊虚拟机的区块链链上攻击交易,防止恶意行为对智能合约和区块链系统造成损害。
1.一种基于以太坊虚拟机的区块链的链上攻击拦截方法,其特征在于,应用于本地设备,所述本地设备上部署有以太坊虚拟机,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述生成所述原始智能合约对应的类智能合约,包括:
3.根据权利要求1所述的方法,其特征在于,所述控制执行所述类智能合约,包括:
4.根据权利要求1所述的方法,其特征在于,所述控制将执行所述类智能合约产生的损失返回至对应的第三方设备,包括:
5.根据权利要求1所述的方法,其特征在于,所述从区块链上读取所述交易信息对应的原始智能合约之后,所述方法还包括:
6.根据权利要求2所述的方法,其特征在于,所述获取执行所述原始智能合约的变量值以及跳转指令,包括:
7.根据权利要求1所述的方法,其特征在于,获取区块链网络中缓存的交易信息,包括:
8.一种基于以太坊虚拟机的区块链链上攻击拦截装置,其特征在于,位于本地设备,所述本地设备上部署有以太坊虚拟机,所述装置包括:
9.一种本地设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现权利要求1至7任一项所述的基于以太坊虚拟机的区块链链上攻击拦截方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的基于以太坊虚拟机的区块链链上攻击拦截方法。
