利索能及
我要发布
收藏
专利号: 2024103936958
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.基于多特征融合的智能合约漏洞检测方法,其特征在于,方法包括以下步骤:接收待测智能合约,分别提取待测智能合约的专家模式特征和全局图特征;

将待测智能合约的专家模式特征和全局图特征输入至预先建立的自注意力编码器网络模型内进行进一步特征提取,输出得到二次专家模式特征和全局图特征;

将二次专家模式特征和全局图特征输入至预先建立的交叉注意力编码器网络模型内进行特征融合,输出得到融合特征,将融合特征输入至预先建立的多层感知器分类模型内,输出得到待测智能合约的检测结果。

2.根据权利要求1所述的基于多特征融合的智能合约漏洞检测方法,其特征在于,所述提取待测智能合约的专家模式特征的过程:获取待测智能合约的功能代码,功能代码的信息包括:变量和状态管理、条件和控制流程、数据操作和计算、事件触发和通知、资产转移和交易处理、权限控制、时间处理、异常处理和错误检测;

设定不同类型的智能合约漏洞的漏洞特征定义和规则,对于三种智能合约漏洞定义三种不同专家模式,三种智能合约漏洞包括:可重入漏洞、时间戳依赖漏洞和无限循环漏洞;

提取专家模式,使用一个one‑hot向量来表示每个专家模式,并附加一个数字0/1来指示被测函数是否具有专家模式;

采用多个多层感知器MLP,每个MLP负责一个专家模式,将提取的局部专家模式编码作为待测智能合约的专家模式特征。

3.根据权利要求1所述的基于多特征融合的智能合约漏洞检测方法,其特征在于,所述提取待测智能合约的全局图特征的过程包括:获取待测智能合约的功能代码;

将待测智能合约的功能代码转换为全局语义图,定义不同的节点和边来表示不同的程序元素和语义关系,并将全局语义图进行归一化以突出重要节点;

采用临时消息传递TMP图神经网络模型,将归一化的全局语义图转换为全局图特征,作为待测智能合约的全局图特征。

4.根据权利要求1所述的基于多特征融合的智能合约漏洞检测方法,其特征在于,所述预先建立的自注意力编码器网络模型如下:其中, 表示注意力机制, , , 分别表示查询向量、键向量和值向量,为键向量的维度, 是一种用于多类别分类问题的激活函数, 表示转置。

5.根据权利要求1所述的基于多特征融合的智能合约漏洞检测方法,其特征在于,所述预先建立的交叉注意力编码器网络模型如下:其中, 表示注意力机制, 和 分别表示输入序列, , , 分别表示查询向量、键向量和值向量, 、  和 是线性变换的权重矩阵, 是键向量的维度,是一种用于多类别分类问题的激活函数, 表示转置。

6.根据权利要求3所述的基于多特征融合的智能合约漏洞检测方法,其特征在于,所述TMP图神经网络模型如下:消息传播阶段,用于让每个节点接收和发送信息,以学习和更新每个节点的状态,公式如下:其中, 表示当前节点的状态, 表示起始节点的隐藏状态, 表示边的类型, 表示网络参数, 表示偏置项;

其中, 为双曲正切激活函数, 是一种用于多类别分类问题的激活函数, 为过度系数, 表示权重矩阵, 表示结束节点的隐藏状态, 表示更新后的结束节点的隐藏状态, 、 表示偏置项;

读出阶段,用于生成最终预测标签,检测是否存在漏洞,公式如下:其中, 表示最终预测标签, 是一种激活函数, 表示主节点的数量, 是节点 在处理结束后的状态, 是节点 最开始的状态, 和 是简化的模型参数。

7.根据权利要求1所述的基于多特征融合的智能合约漏洞检测方法,其特征在于,所述将二次专家模式特征和全局图特征输入至预先建立的交叉注意力编码器网络模型内进行特征融合,输出得到融合特征,将融合特征输入至预先建立的多层感知器分类模型内,输出得到待测智能合约的检测结果的过程包括:将三种局部专家模式特征全局图特征进行拼接得到250维的特征,作为融合特征;

将融合特征输入预先建立的多层感知机分类模型,得到待测智能合约的检测结果。

8.基于多特征融合的智能合约漏洞检测系统,其特征在于,包括:模式图提取模块,用于接收待测智能合约,分别提取待测智能合约的专家模式特征和全局图特征;

特征提取模块,用于将待测智能合约的专家模式特征和全局图特征输入至预先建立的自注意力编码器网络模型内进行进一步特征提取,输出得到二次专家模式特征和全局图特征;

分类模块,用于将二次专家模式特征和全局图特征输入至预先建立的交叉注意力编码器网络模型内进行特征融合,输出得到融合特征,将融合特征输入至预先建立的多层感知器分类模型内,输出得到待测智能合约的检测结果。

9.根据权利要求8所述的基于多特征融合的智能合约漏洞检测系统,其特征在于,所述模式图提取模块内提取待测智能合约的专家模式特征的过程:获取待测智能合约的功能代码,功能代码的信息包括:变量和状态管理、条件和控制流程、数据操作和计算、事件触发和通知、资产转移和交易处理、权限控制、时间处理、异常处理和错误检测;

设定不同类型的智能合约漏洞的漏洞特征定义和规则,对于三种智能合约漏洞定义三种不同专家模式,三种智能合约漏洞包括:可重入漏洞、时间戳依赖漏洞和无限循环漏洞;

提取专家模式,使用一个one‑hot向量来表示每个专家模式,并附加一个数字0/1来指示被测函数是否具有专家模式;

采用多个多层感知器MLP,每个MLP负责一个专家模式,将提取的局部专家模式编码作为待测智能合约的专家模式特征;

模式图提取模块内提取待测智能合约的全局图特征的过程包括:获取待测智能合约的功能代码;

将待测智能合约的功能代码转换为全局语义图,定义不同的节点和边来表示不同的程序元素和语义关系,并将全局语义图进行归一化以突出重要节点;

采用临时消息传递TMP图神经网络模型,将归一化的全局语义图转换为全局图特征,作为待测智能合约的全局图特征;

特征提取模块内预先建立的自注意力编码器网络模型如下:其中, 表示注意力机制, , , 分别表示查询向量、键向量和值向量,为键向量的维度, 是一种用于多类别分类问题的激活函数, 表示转置;

分类模块内预先建立的交叉注意力编码器网络模型如下:

其中, 表示注意力机制, 和 分别表示输入序列, , , 分别表示查询向量、键向量和值向量, 、  和 是线性变换的权重矩阵, 是键向量的维度,是一种用于多类别分类问题的激活函数, 表示转置;

模式图提取模块内TMP图神经网络模型如下:

消息传播阶段,用于让每个节点接收和发送信息,以学习和更新每个节点的状态,公式如下:其中, 表示当前节点的状态, 表示起始节点的隐藏状态, 表示边的类型, 表示网络参数, 表示偏置项;

其中, 为双曲正切激活函数, 是一种用于多类别分类问题的激活函数, 为过度系数, 表示权重矩阵, 表示结束节点的隐藏状态, 表示更新后的结束节点的隐藏状态, 、 表示偏置项;

读出阶段,用于生成最终预测标签,检测是否存在漏洞,公式如下:其中, 表示最终预测标签, 是一种激活函数, 表示主节点的数量, 是节点 在处理结束后的状态, 是节点 最开始的状态, 和 是简化的模型参数;

分类模块内将二次专家模式特征和全局图特征输入至预先建立的交叉注意力编码器网络模型内进行特征融合,输出得到融合特征,将融合特征输入至预先建立的多层感知器分类模型内,输出得到待测智能合约的检测结果的过程包括:将三种局部专家模式特征全局图特征进行拼接得到250维的特征,作为融合特征;

将融合特征输入预先建立的多层感知机分类模型,得到待测智能合约的检测结果。

10.一种设备,其特征在于,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当一个或多个所述程序被一个或多个所述处理器执行,使得一个或多个所述处理器实现如权利要求1‑7中任一所述的基于多特征融合的智能合约漏洞检测方法。