区块链智能合约攻击行为检测方法、存储介质和电子设备技术

技术编号:35497407 阅读:19 留言:0更新日期:2022-11-05 16:57
本发明专利技术提供了一种区块链智能合约攻击行为检测方法、存储介质和电子设备,该方法包括以下步骤:获取调用智能合约的交易数据,对所述交易数据进行预执行,得到交易调用路径信息;对所述交易调用路径信息进行验证,若验证不通过则构造阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行阻断。上述方案通过对交易数据进行预执行,再对预执行得到的交易调用路径信息来对当前交易数据进行验证,若验证不通过则进行阻断。由于预执行是在当前交易数据被正式执行之前发生的,因而可以及时对存在潜在攻击行为的交易数据进行防御预警,提升智能合约交易的安全性。性。性。

【技术实现步骤摘要】
区块链智能合约攻击行为检测方法、存储介质和电子设备


[0001]本专利技术涉及区块链
,具体为一种区块链智能合约攻击行为检测方法、存储介质和电子设备。

技术介绍

[0002]当前,区块链智能合约的生态发展越来越好,互联网公司和金融机构也开始进入区块链行业,而智能合约安全是众多公司及机构重点关注的一个领域。同时,使用智能合约来开发区块链上的金融产品的项目越来越多,并且各个金融产品之间采用智能合约进行交互,由于不同金融产品的协议之间的合约交互的复杂度很高,这对于智能合约安全审计的挑战越来越大。且区块链上的黑客也时刻关注这各类金融产品协议之间的安全性,一旦发现有可以利用的漏洞就会发起攻击,盗取智能合约中的数字资产。因此,基于智能合约攻击行为的检查和防御是区块链
亟需解决的问题。
[0003]黑客对智能合约的攻击行为一般采用黑白名单的机制对攻击者的地址进行限制,即预先将恶意地址存储于地址库中,通过比对当前交易的账户地址与地址库中的地址是否匹配来判断是否存在攻击行为,由于这种方式需要预先将恶意地址存储入地址库中,如果采用的未知攻击地址则在拦截本次交易数据之前攻击行为已然发生,将会造成智能合约中数字资产损失。

技术实现思路

[0004]为此,需要提供一种区块链智能合约攻击行为检测的技术方案,用以解决现有技术无法有效地为智能合约提供及时有效保护的技术问题。
[0005]为实现上述目的,在第一方面,本专利技术提供了一种区块链智能合约攻击行为检测方法,所述方法包括以下步骤:
[0006]获取调用智能合约的交易数据,对所述交易数据进行预执行,得到交易调用路径信息;
[0007]对所述交易调用路径信息进行验证,若验证不通过则构造阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行阻断。
[0008]在一些实施例中,所述交易调用路径信息包括交易账户地址调用路径信息;
[0009]所述对所述交易调用路径信息进行验证包括:判断所述交易账户地址调用路径信息与预设的交易账户地址调用路径信息是否匹配,若判定为是则视为验证通过,否则视为验证不通过。
[0010]在一些实施例中,所述交易调用路径信息包括智能合约函数调用路径信息;
[0011]所述对所述交易调用路径信息进行验证包括:判断所述智能合约函数调用路径信息与预设的交易账户地址调用路径信息是否匹配,若判定为是则视为验证通过,否则视为验证不通过。
[0012]在一些实施例中,所述构造阻断交易信息,并根据所述阻断交易信息对当前所述
调用智能合约的交易数据进行阻断包括:
[0013]设置一个Gas价格高于当前交易数据并能够发起全局暂停的第一交易数据,将所述第一交易数据作为阻断交易信息列入待执行交易数据列表中,并将所述第一交易数据的执行顺序置于当前交易数据之前。
[0014]在一些实施例中,所述交易调用路径信息包括交易账户地址信息和地址调用顺序信息;
[0015]所述构造阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行阻断包括:
[0016]根据所述地址调用顺序信息对当前交易数据预执行时的各个交易账户地址信息进行替换,使得出块节点与当前交易数据预执行时调用的各个交易账户地址信息相剥离,构造出受节点程序控制的阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行阻断。
[0017]在一些实施例中,所述方法还包括:
[0018]通过所述受节点程序执行所述阻断交易信息并对执行结果进行分析,若阻断交易信息的执行结果是除当前交易数据的发起账户地址以外的其他账户地址的账户资产净增加,则将所述阻断交易信息列入待执行交易数据列表中,并将所述阻断交易信息的执行顺序置于当前交易数据之前。
[0019]在一些实施例中,所述方法还包括:
[0020]当所述交易调用路径信息验证不通过时,将当前交易数据添加至智能合约攻击列表中。
[0021]在一些实施例中,所述方法还包括:
[0022]采用机器学习算法对所述智能合约攻击列表中的所有交易数据进行训练,梳理并提炼出所述智能合约攻击列表中的部分或所有交易数据的共同属性特征;
[0023]在后续对新的交易数据进行验证时,对新的交易数据是否具有所述共同属性特征进行验证。
[0024]在第二方面,本专利技术提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被执行时实现如本专利技术第一方面所述的方法。
[0025]在第三方面,本专利技术还提供了一种电子设备,包括:
[0026]存储介质,为如本专利技术第二方面所述的存储介质;
[0027]处理器,与所述存储介质电连接,用于执行所述存储介质存储的计算机程序以实现如本专利技术第一方面所述的方法。
[0028]区别于现有技术,本专利技术具有以下特点:
[0029]本专利技术提供了一种区块链智能合约攻击行为检测方法、存储介质和电子设备,该方法包括以下步骤:获取调用智能合约的交易数据,对所述交易数据进行预执行,得到交易调用路径信息;对所述交易调用路径信息进行验证,若验证不通过则构造阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行阻断。上述方案通过对交易数据进行预执行,再对预执行得到的交易调用路径信息来对当前交易数据进行验证,若验证不通过则进行阻断。由于预执行是在当前交易数据被正式执行之前发生的,因而可以及时对存在潜在攻击行为的交易数据进行防御预警,提升智能合约交易的安全性。
附图说明
[0030]图1为本专利技术第一种实施方式涉及的区块链智能合约攻击行为检测方法的流程图;
[0031]图2为本专利技术第二种实施方式涉及的区块链智能合约攻击行为检测方法的流程图;
[0032]图3为本专利技术第三种实施方式涉及的区块链智能合约攻击行为检测方法的流程图;
[0033]图4为本专利技术第四种实施方式涉及的区块链智能合约攻击行为检测方法的流程图;
[0034]图5为本专利技术一实施方式涉及的计算机程序的模块架构示意图;
[0035]图6为本专利技术一实施方式涉及的电子设备的示意图。
具体实施方式
[0036]为详细说明本申请可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
[0037]在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本申请中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
[0038]除非另有定义,本文所使用的技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链智能合约攻击行为检测方法,其特征在于,所述方法包括以下步骤:获取调用智能合约的交易数据,对所述交易数据进行预执行,得到交易调用路径信息;对所述交易调用路径信息进行验证,若验证不通过则构造阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行阻断。2.如权利要求1所述的区块链智能合约攻击行为检测方法,其特征在于,所述交易调用路径信息包括交易账户地址调用路径信息;所述对所述交易调用路径信息进行验证包括:判断所述交易账户地址调用路径信息与预设的交易账户地址调用路径信息是否匹配,若判定为是则视为验证通过,否则视为验证不通过。3.如权利要求1所述的区块链智能合约攻击行为检测方法,其特征在于,所述交易调用路径信息包括智能合约函数调用路径信息;所述对所述交易调用路径信息进行验证包括:判断所述智能合约函数调用路径信息与预设的交易账户地址调用路径信息是否匹配,若判定为是则视为验证通过,否则视为验证不通过。4.如权利要求1所述的区块链智能合约攻击行为检测方法,其特征在于,所述构造阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行阻断包括:设置一个Gas价格高于当前交易数据并能够发起全局暂停的第一交易数据,将所述第一交易数据作为阻断交易信息列入待执行交易数据列表中,并将所述第一交易数据的执行顺序置于当前交易数据之前。5.如权利要求2所述的区块链智能合约攻击行为检测方法,其特征在于,所述交易调用路径信息包括交易账户地址信息和地址调用顺序信息;所述构造阻断交易信息,并根据所述阻断交易信息对当前所述调用智能合约的交易数据进行...

【专利技术属性】
技术研发人员:叶振强
申请(专利权)人:厦门慢雾科技有限公司
类型:发明
国别省市:

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

1