(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210710381.7
(22)申请日 2022.06.22
(71)申请人 东北大学
地址 110819 辽宁省沈阳市和平区文化路3
号巷11号
(72)发明人 信俊昌 刘红飞 郝琨 姚钟铭
姜吉宁 王之琼
(74)专利代理 机构 沈阳东大知识产权代理有限
公司 21109
专利代理师 李珉
(51)Int.Cl.
G06F 21/57(2013.01)
G06F 21/62(2013.01)
G06K 9/62(2022.01)
G06N 3/04(2006.01)G06N 3/08(2006.01)
(54)发明名称
一种基于局部与序列特征融合的智能合约
漏洞检测方法
(57)摘要
本发明提供一种基于局部与序列特征融合
的智能合约漏洞检测方法, 涉及区块链安全技术
领域。 该方法首先从区块链平台收集多个智能合
约字节码, 并筛选去除不满足长度、 时间和调用
频率要求的智能合约字节码, 构成智能合约数据
集; 再对智能合约数据集中的智能合约进行标
注, 通过预处理得到整个智能合约数据集所对应
的操作码编码序列; 然后构建基于深度学习的智
能合约漏洞检测模型, 并使用操作码序列对模型
进行训练; 最后使用训练好的智能合约漏洞检测
模型对区块链平台待检测的智能合约进行漏洞
分类检测。 该方法构建了一个智能合约漏洞检测
模型, 面向字节码, 能在不依赖智能合约源代码
任何信息的情况下, 快速、 准确地检测智能合约
漏洞。
权利要求书2页 说明书5页 附图2页
CN 115080981 A
2022.09.20
CN 115080981 A
1.一种基于局部与序列特 征融合的智能合约漏洞检测方法, 其特 征在于:
收集智能合约字节码, 构成智能合约数据集;
对智能合约数据集中的智能合约数据进行 标注, 通过 预处理得到操作码编号序列;
构建基于深度学习的智能合约漏洞检测模型;
使用操作码编号序列训练智能合约漏洞检测模型;
使用训练好的智能合约漏洞检测模型对待检测的智能合约进行漏洞分类 检测。
2.根据权利要求1所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述方法包括以下步骤:
步骤1: 从区块链平台收集M个智能合约字节码, 并筛选去除不满足长度、 时间和调用频
率要求的智能合约字节码, 构成智能合约数据集;
步骤2: 对智能合约数据集中的智能合约进行标注, 通过预处理得到整个智能合约数据
集对应的操作码编号序列;
步骤3: 构建基于深度学习的智能合约漏洞检测模型, 并使用步骤2得到的已标注的操
作码编号序列对 模型进行训练;
所述基于深度学习的智能合约漏洞检测模型包括依次连接的嵌入层、 卷积层、 分块最
大池化层、 双向门控单 元、 注意力层和全连接网络;
步骤4: 使用步骤3训练好的智能合约漏洞检测模型对区块链平台待检测的智能合约进
行漏洞分类 检测。
3.根据权利要求2所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述 步骤2的具体方法为:
步骤2.1: 对智能合约数据集进行 标注, 组成已标注智能合约数据集;
步骤2.2: 将智能合约字节码通过反汇编工具转为操作码, 并去除操作数, 形成操作码
序列;
步骤2.3统计已标注智能合约数据集中操作码长度的平均数、 中位数和众数, 作为将每
个智能合约操作码截断或填充至等长的依据, 并将操作码处理至等长; 统计智能合约正负
类比例, 当正负类比例超过设定比例时使用平衡算法平衡正负类比例;
步骤2.4: 将整个已标注智能合约数据集的所有操作码按照出现频率使用十进制数进
行编号, 形成词频表, 并将步骤2.2的操作码序列替换为词频表中对应的编号, 得到操作码
编号序列。
4.根据权利要求3所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述 步骤2.1的具体方法为:
采用多种面向字节码的智能合约漏洞检测工具同时对智能合约数据集标注漏洞标签,
并去除标注结果有差异的智能合约, 将剩余的智能合约以合约地址、 漏洞标签和合约字节
码构成的三元组形式保存, 组成已标注智能合约数据集。
5.根据权利要求4所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述智能合约漏洞检测模型中嵌入层的构建方法为:
采用Word2Vec模型预训练操作码, 得到操作码对应 的词向量; Word2Vec模型的输入为
整个已标注智能合约数据集的操作码序列, 输出为操作码和其对应词向量组成的键值对;
将操作码对应的词向量按编号顺序排列, 构成嵌入矩阵E, 作为嵌入层; 嵌入层输入为操作权 利 要 求 书 1/2 页
2
CN 115080981 A
2码编号序列, 利用嵌入矩阵E, 将操作码编号转化为对应词向量序列输出, 作为下一层卷积
层的输入。
6.根据权利要求5所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述智能合约漏洞检测模型通过构建卷积层, 以提取智能合约操作码的局部特
征, 具体方法为:
采用m个宽为 d, 高为hi, i∈1,2, …,n的卷积核对操作码进行卷积运算, d为操作码对应
的词向量维度, n为采用的不同尺寸的卷积核的种数, 对操作码的局部特征进行组合和筛
选, 得到特 征向量Vj, j∈1,2, …,s, s=m*n, 作为下一层最大池化层的输入。
7.根据权利要求6所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述智能合约漏洞检测模型通过分块最大池化层将每个特征向量Vj分成k块, 每
块仅保留最大的特征值, 然后保序拼接每个最大局部特征值, 所有 特征向量按列组合, 形成
列为s, 行为 k的特征矩阵M, 作为下层 双向门控单 元的输入。
8.根据权利要求7所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述智能合约漏洞检测模型将分块最大池化层得到的特征矩阵M按行顺序输入
双向门控单元, 通过双向门控单元中的循环结构提取合约序列特征, 双向结构提取智能合
约当前时刻完整的过去和未来的上下文信息; 双向门控单元 的每个时间步输入一个s维向
量, 共k个时间步, 输出向量作为下一层注意力层的输入。
9.根据权利要求8所述的一种基于局部与序列特征融合的智能合约漏洞检测方法, 其
特征在于: 所述智能合约漏洞检测模型的注意力层将双向门控单元的输出向量通过自注意
力机制进行加权, 得到注意力向量。
10.根据权利要求9所述的一种基于局部与序列 特征融合的智能合约漏洞检测方法, 其
特征在于: 所述智能合约漏洞检测模型将注意力层得到的注意力向量输入全连接网络进 行
分类, 得到漏洞分类结果。权 利 要 求 书 2/2 页
3
CN 115080981 A
3
专利 一种基于局部与序列特征融合的智能合约漏洞检测方法
文档预览
中文文档
10 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-07 12:38:33上传分享