一种智能合约漏洞检测方法技术

技术编号:33377628 阅读:28 留言:0更新日期:2022-05-11 22:45
本发明专利技术公开了一种智能合约漏洞检测方法,包括如下步骤:构建与智能合约训练样本对应的训练操作码,滑动窗口对训练操作码进行遍历截取以获得多个训练操作码片段,生成与训练操作码对应的训练操作码片段集;将Transformer模型作为智能合约漏洞检测模型,采用训练操作码片段集对Transformer模型进行训练;对待检测智能合约进行预处理生成待检测操作码,滑动窗口对待检测操作码进行截取生成待检测操作码片段集,将待检测操作码片段集输入至Transformer模型;由分类器输出智能合约漏洞检测结果。Transformer模型会对具体训练操作码片段和其他所有训练操作码片段之间的相关性进行计算,因此最终训练完成的Transformer模型在实际使用的时候能够输出充分展现智能合约漏洞线索的结果。合约漏洞线索的结果。合约漏洞线索的结果。

【技术实现步骤摘要】
一种智能合约漏洞检测方法


[0001]本专利技术涉及一种智能合约漏洞检测方法,属于数据漏洞检测领域。

技术介绍

[0002]智能合约是区块链技术中的一个重要的新兴分支,其语言尚未成熟,开发人员水平有限,因此现有的绝大部分已有的智能合约或多或少都有漏洞,且智能合约的数据量也相对不足。
[0003]针对智能合约漏洞检测现阶段主要依靠训练完成的CNN,并采用分词器对智能合约操作码以操作码单元为基本单元的方式进行拆分,但是CNN本质上是一个n

gram模型,这就导致在对智能合约中特定操作码单元计算关联分数的时候只会考虑该特定操作码单元之前的操作码单元,这就导致CNN的训练效果很差,不能很好地识别智能合约漏洞。
[0004]也因此,大部分情况下CNN更多地只适用于视觉图像以及自然语言处理,在对智能合约漏洞检测上的应用存在很大的局限性。

技术实现思路

[0005]本专利技术所要解决的技术问题在于克服现有技术的不足而提供一种智能合约漏洞检测方法。
[0006]解决上述技术问题,本专利技术采用如下技术本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种智能合约漏洞检测方法,其特征在于,包括如下步骤:步骤S1:构建与智能合约训练样本对应的训练操作码,以窗口大小为n的滑动窗口对训练操作码进行遍历截取以获得多个训练操作码片段,每个训练操作码片段包含多个训练操作码单元,选取部分或全部训练操作码片段生成与训练操作码对应的训练操作码片段集;步骤S2:将Transformer模型作为智能合约漏洞检测模型,采用训练操作码片段集对Transformer模型进行训练,直至损失函数达到最小值,以使Transformer模型训练完成;步骤S3:对待检测智能合约进行预处理,以生成待检测操作码,以窗口大小为n的滑动窗口对待检测操作码进行遍历截取,以生成待检测操作码片段集,将待检测操作码片段集输入至Transformer模型;步骤S4:Transformer模型将结果输出至分类器,由分类器输出智能合约漏洞检测结果。2.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,步骤S1中,同一个训练操作码对应的训练操作码片段集有多个,训练操作码片段集分为正训练操作码片段集和负训练操作码片段集;其中,训练操作码经过滑动窗口的遍历截取后依次生成x1,x2,......,x
m
,x1,x2,......,x
m
均为由滑动窗口截取的训练操作码片段,锁定x1,x2,......,x
m
中的无漏洞训练操作码片段,选取若干无漏洞训练操作码片段作为正训练操作码片段集,选取无漏洞训练操作码片段上下文...

【专利技术属性】
技术研发人员:张莹顾晔徐天天陈甜妹岑雷扬
申请(专利权)人:国网浙江浙电招标咨询有限公司
类型:发明
国别省市:

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

1