一种基于代码切片和神经网络的智能合约漏洞检测方法技术

技术编号:44819966 阅读:14 留言:0更新日期:2025-03-28 20:09
本发明专利技术提供了一种基于代码切片和神经网络的智能合约漏洞检测方法,涉及合约漏洞检测技术领域,具体包括如下步骤:对智能合约代码进行静态分析;通过深度优先遍历控制流图检查程序执行路径,检测时间戳依赖漏洞以及未检查的外部调用漏洞,并根据漏洞语句对应节点在控制流图中定位漏洞路径;对智能合约代码规范化,去除智能合约代码注释,统一变量和函数命名,不重命名相关状态信息相关变量,将智能合约代码语句转化为向量表示,并训练更新向量;构建多层图卷积神经网络作为训练和检测漏洞的神经网络模型;由多层图卷积神经网络输出检测结果。本发明专利技术的技术方案克服现有技术中不能够准确有效地检测智能合约漏洞的问题。

【技术实现步骤摘要】

本专利技术涉及合约漏洞检测,具体涉及一种基于代码切片和神经网络的智能合约漏洞检测方法


技术介绍

1、区块链具有去中心化、数据不可篡改等特性,最初用于实现加密货币。以太坊的出现推动了区块链技术的发展,以太坊平台支持智能合约,其编程语言solidity使开发者能在区块链上执行复杂程序逻辑,扩展了区块链的应用场景。基于区块链的不可篡改特性,智能合约可作为分布式账本,且其数据不可篡改的特性使其在金融、物联网、法律等多个领域得到应用。

2、智能合约存在一些安全问题。首先,智能合约编写和运行耦合性强,不同合约代码间存在依赖关系,增加了开发难度,容易导致逻辑漏洞和意料之外的代码执行。其次,solidity智能合约底层代码采用c++编写,运行在计算机平台上,采用二进制格式存储数据,因此c++语言的传统漏洞和计算机语言通用漏洞会在智能合约中复现,如整数溢出漏洞。再者,区块链数据不可篡改,智能合约部署后若存在漏洞,无法通过传统打补丁方式修复,只能通过停止交易或分叉来减少损失。最后,智能合约源码透明,大部分主流区块链和公链上的项目源码公开,且基于栈的虚拟机实现相对本文档来自技高网...

【技术保护点】

1.一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,具体包括如下步骤:

2.根据权利要求1所述的一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,步骤S1具体包括如下步骤:

3.根据权利要求1所述的一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,步骤S2具体包括如下步骤:

4.根据权利要求3所述的一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,步骤S2.2中,对于时间戳依赖漏洞,检测两种情况:

5.根据权利要求1所述的一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,步骤S3...

【技术特征摘要】

1.一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,具体包括如下步骤:

2.根据权利要求1所述的一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,步骤s1具体包括如下步骤:

3.根据权利要求1所述的一种基于代码切片和神经网络的智能合约漏洞检测方法,其特征在于,步骤s2具体包括如下步骤:

4.根据权利要求3所...

【专利技术属性】
技术研发人员:王政文
申请(专利权)人:中国石油大学华东
类型:发明
国别省市:

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

1