一种区块链去中心化金融的安全检测方法和装置

文档序号:36995956发布日期:2024-02-09 12:37阅读:15来源:国知局
一种区块链去中心化金融的安全检测方法和装置

本发明属于计算机网络安全,尤其涉及一种区块链去中心化金融的安全检测方法和装置。


背景技术:

1、在区块链系统中,区块链去中心化金融(defi)是以智能合约为功能代码的区块链金融协议,定义了链上资产的交易操作;本发明主要关注与以太坊兼容的区块链上的defi协议;作为建立在区块链系统上重要的生态系统,defi的安全问题是关乎其能否正确稳定运行的关键。

2、作为区块链上的金融系统,defi系统的交易信息会不可逆转地存储在区块链中;而区块链交易信息分为以下两种形式,外部交易和内部交易;外部交易记录外部账户发起的交易调用过程,内部交易记录合约中发生的状态转移操作;然而,内部交易中的状态转移操作是合约内部逻辑的运行结果;因此,通过构建合约中的控制流程图即可获取数据可能的运行路径;

3、现有区块链去中心化金融安全检测方法,通过不同的技术模拟defi智能合约中的运行逻辑,并以专家知识为基础,总结攻击事件的样式规律;然后在规律中建立检测方法,监测交易中是否存在安全问题;

4、而对于深度学习的检测方法,从defi攻击事件中的智能合约中自动学习漏洞的脆弱样式,以识别攻击事件;但是现如今的深度学习方法都只关注单个合约,defi协议中多个合约交互的情况并不能充分考虑到;因此,深度学习在defi协议中的检测效果并不理想;

5、在defi的背景下,与传统静态分析方法相比,基于深度学习的漏洞检测技术存在以下空缺:

6、基于深度学习的defi攻击事件检测方法没有考虑多方交互的情况;传统静态分析方法,例如模糊测试,已有研究从单个合约的内部逻辑流延伸至调用外部合约的情况;虽然这些静态分析方法考虑到了外部调用流,但是由于根据专家先验知识构建检测方法的特性,随着攻击的进化,这些检测方法也需要重新设计。


技术实现思路

1、本发明要解决的技术问题是,提供一种区块链去中心化金融的安全检测方法和装置,对defi背景下多账户,即智能合约和外部账户,之间的交互调用模式进行学习;有效地利用了交易数据中的外部调用流和智能合约中的内部逻辑流,并实现了defi协议安全检测。

2、为实现上述目的,本发明采用如下的技术方案:

3、一种区块链去中心化金融的安全检测方法,包括:

4、步骤s1、获取恶意交易调用流并收集相关智能合约;

5、步骤s2、构建相关智能合约的控制流程图并模拟调用关系来连接关联图;

6、步骤s3、收集关联图中的数据流路径并验证路径可达性;

7、步骤s4、将收集到的可达路径构建为数据集,并输入defitail模型训练;

8、步骤s5、通过训练好的defitail模型监测交易中是否存在恶意行为。

9、作为优选,步骤s1中,通过分析rekt数据集中的去中心化金融的权限控制事件和闪贷攻击事件,收集包含攻击账户和被攻击的脆弱合约的恶意交易调用流,并提取恶意交易调用流中的相关智能合约。

10、作为优选,骤s2具体包括:

11、步骤21、通过构建相关智能合约的控制流程图,获取各个合约中的控制流向;

12、步骤22、模拟交易的调用流向,获取多个合约间的数据流向;

13、步骤23、连接控制流向和数据流向,形成关联图。

14、作为优选,步骤s3具体包括:

15、步骤31、通过将调用者合约的函数入口作为起点,在关联图中收集数据流路径;

16、步骤32、利用符号执行记录每条数据流进行的栈操作,通过验证每次栈操作所需的栈元素是否足够,以验证数据流中的每次分支条件判断是否可达;

17、步骤33、通过判断所有数据流的可达性,收集所有的可达的数据路径。

18、作为优选,步骤s4具体包括:

19、步骤41、独热编码化可达数据路径中所有操作码数据作为数据路径嵌入向量,将数据路径嵌入向量作为输入,以训练defitail模型;

20、步骤42、在多个数据路径上构建异质图,并在邻接矩阵中获取所有操作码数据和数据路径之间的关系特征;

21、步骤43、通过transformer编码器结构,将单个数据路径嵌入向量的长度截断为固定大小,以获取每条数据路径的局部特征;

22、步骤44、将步骤43获取到的数据路径特征嵌入到邻接矩阵中,并补全步骤42所得的邻接矩阵,使用图卷积神经网络得到全局的数据路径特征;

23、步骤45、融合步骤44得到的全局特征和步骤43得到的局部路径,得到最后的数据路径特征;

24、步骤46、通过softmax层计算步骤45中得到的数据路径特征是否安全。

25、作为优选,步骤s5包括:

26、步骤51、收集特定时间区间内的所有交易数据;

27、步骤52、通过交易的时间戳属性来顺序构建交易流向,并利用步骤s2的方法构建相关合约的关联图;

28、步骤53、通过步骤s3的方法收集数据路径,并验证数据路径的可达性,获取可达的数据路径;

29、步骤54、将步骤53获取的数据路径独热编码化,并输入到defitail模型中,以判断数据路径是否安全。

30、本发明还提供一种区块链去中心化金融的安全检测装置,包括:

31、第一获取模块,用于获取恶意交易调用流并收集相关智能合约;

32、构建模块,用于构建相关智能合约的控制流程图并模拟调用关系来连接关联图;

33、第二获取模块,用于收集关联图中的数据流路径并验证路径可达性;

34、训练模块,用于将收集到的可达路径构建为数据集,并输入defitail模型训练;

35、检测模块,用于通过训练好的defitail模型监测交易中是否存在恶意行为。

36、作为优选,构建模块包括:

37、第一获取单元,用于构建相关智能合约的控制流程图,获取各个合约中的控制流向;

38、第二获取单元,用于模拟交易的调用流向,获取多个合约间的数据流向;

39、连接单元,用于连接控制流向和数据流向,形成关联图。

40、作为优选,第二获取模块包括:

41、第三获取单元,用于将调用者合约的函数入口作为起点,在关联图中收集数据流路径;

42、验证单元,用于验证数据流中的每次分支条件判断是否可达,其利用符号执行记录每条数据流进行的栈操作,通过验证每次栈操作所需的栈元素是否足够;

43、第四获取单元,用于判断所有数据流的可达性,收集所有的可达的数据路径。

44、作为优选,训练模块包括:

45、第一处理单元,用于独热编码化可达数据路径中所有操作码数据,将操作码数据作为数据路径嵌入向量,将数据路径嵌入向量作为输入,以训练defitail模型;

46、第五获取单元,用于在多个数据路径上构建异质图,并在邻接矩阵中获取所有操作码数据和数据路径之间的关系特征;

47、第六获取单元,用于将单个数据路径嵌入向量的长度截断为固定大小,并通过transformer编码器结构获取每条数据路径的局部特征;

48、第二处理单元,用于将获取到的数据路径特征嵌入到邻接矩阵中,并补全邻接矩阵,使用图卷积神经网络得到全局的数据路径特征;

49、融合单元,用于融合全局特征和局部路径,得到最后的数据路径特征;

50、计算单元,用于通过softmax层计算数据路径特征中是否安全。

51、与现有技术相比,本发明的有益效果为:

52、本发明在多方交互的情况下,能够实现更具优势的效果;本发明首次利用深度学习技术,联合外部交易调用流关系和智能合约内部逻辑流关系,以学习针对去中心化金融的攻击样式;另外,为了保证调用流和逻辑流连接的正确性,符号执行栈技术会被用于验证所有的栈操作;进一步地,由于defi协议具有多样且复杂的功能,其数据路径长度会远超其他正常合约;因此,为了能更好地学习到其特征,图卷积模型和transformer模型被共同应用于此模型中,分别用于学习全局特征和局部特征;最后,本发明通过加权结合两部分特征,得到最终的特征向量,并通过softmax层实现协议脆弱监测;本发明获取外部交易流和内部逻辑流数据,并将其连接为关联图;再获取其中的数据路径,通过transformer模型和图神经网络获取路径局部特征和全局特征,将局部和全局特征融合方式在一定程度上提升了恶意行为监测效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1