[发明专利]一种智能合约漏洞检测方法有效
申请号: | 202111662475.3 | 申请日: | 2021-12-31 |
公开(公告)号: | CN114462045B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 张莹;顾晔;徐天天;陈甜妹;岑雷扬 | 申请(专利权)人: | 国网浙江省电力有限公司物资分公司;国网浙江浙电招标咨询有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06K9/62 |
代理公司: | 浙江千克知识产权代理有限公司 33246 | 代理人: | 赵佳 |
地址: | 310000 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 漏洞 检测 方法 | ||
1.一种智能合约漏洞检测方法,其特征在于,包括如下步骤:
步骤S1:构建与智能合约训练样本对应的训练操作码,以窗口大小为n的滑动窗口对训练操作码进行遍历截取以获得多个训练操作码片段,每个训练操作码片段包含多个训练操作码单元,选取部分或全部训练操作码片段生成与训练操作码对应的训练操作码片段集;步骤S1中,同一个训练操作码对应的训练操作码片段集有多个,训练操作码片段集分为正训练操作码片段集和负训练操作码片段集;
其中,训练操作码经过滑动窗口的遍历截取后依次生成训练操作码片段x1,x2,......,xm,锁定训练操作码片段x1,x2,......,xm中的无漏洞训练操作码片段,选取若干无漏洞训练操作码片段作为正训练操作码片段集,选取无漏洞训练操作码片段上下文处的若干有漏洞训练操作码片段作为负训练操作码片段集;
有漏洞训练操作码片段生成负训练操作码片段集的过程中,保留有漏洞训练操作码片段在x1,x2,......,xm中的相对位置信息,以使Transformer模型在步骤S2中能够进行位置嵌入;
步骤S2:将Transformer模型作为智能合约漏洞检测模型,采用训练操作码片段集对Transformer模型进行训练,直至损失函数达到最小值,以使Transformer模型训练完成;
生成训练操作码片段集后,构建负训练操作码片段集对应的漏洞信息矩阵,漏洞信息矩阵中包含多种漏洞类型信息,步骤S2’:对训练完成后的Transformer模型输入负训练操作码片段集,使得Transformer模型输出分类器训练数据,利用漏洞信息矩阵和分类器训练数据对分类器进行训练;
步骤S3:对待检测智能合约进行预处理,以生成待检测操作码,以窗口大小为n的滑动窗口对待检测操作码进行遍历截取,以生成待检测操作码片段集,将待检测操作码片段集输入至Transformer模型;
步骤S4:Transformer模型将结果输出至分类器,由分类器输出智能合约漏洞检测结果。
2.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,正训练操作码片段集数量为负训练操作码片段集数量的1-1.5倍。
3.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,训练操作码的构建方法如下:爬取智能合约训练样本的Solidity源码,采用Solc编译器将Solidity源码编译成字节码,字节码根据以太坊黄皮书中的对应关系生成原始操作码,原始操作码经移除操作数后得到训练操作码。
4.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,Transformer模型中包含有用于进行特征降维的全连接层。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网浙江省电力有限公司物资分公司;国网浙江浙电招标咨询有限公司,未经国网浙江省电力有限公司物资分公司;国网浙江浙电招标咨询有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111662475.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能计算机外接电线理线设备
- 下一篇:一种实验兔培养用培养箱