当前位置: 首页 > 专利查询>长春大学专利>正文

一种基于特征交叉的智能交叉合约漏洞检测方法技术

技术编号:35188253 阅读:18 留言:0更新日期:2022-10-12 18:01
本发明专利技术公开了一种基于特征交叉的智能合约漏洞检测方法,包括:通过以太坊智能合约和维特链智能合约,标注智能合约标签,将智能合约源码转换成对应的合约图,提取智能合约源码中对应数据;通过前馈神经网络提取合约图特征C

【技术实现步骤摘要】
一种基于特征交叉的智能交叉合约漏洞检测方法


[0001]本专利技术涉及一种基于特征交叉的智能合约漏洞检测方法,属于区块链智能合约安全领域。

技术介绍

[0002]智能合约使区块链具备了较高的可编程性,图灵完备的区块链网络允许开发人员在区块链上进行开发并部署特定的代码和应用,但智能合约的代码在开发过程中无法避免存在一些缺陷。与此同时,智能合约部署后便不可更改,从而导致漏洞也无法进行修复,这给区块链网络带来了安全隐患。因此,在部署之前对智能合约进行有效的漏洞检查是必不可少的。
[0003]智能合约中常见漏洞包括整数溢出、时间戳依赖攻击、调用深度攻击、误操作异常攻击、重入攻击。针对这些漏洞检测方式又分为形式化验证法、符号执行法、模糊测试法、中间表示法、深度学习法。
[0004]传统的智能合约漏洞检测方式存在检测时间长、准确率低等问题。经典的静态分析或动态执行技术根本上是依赖于专家定义的模式,这种模式容易出错且复杂模式下难以分析,简单的使用严格定义的模式会导致高误报率,攻击者也可以容易地绕过检查。
[0005]目前,已经开始采用深度神经网络进行智能合约漏洞检测以提高准确性。利用基于LSTM的网络顺序处理源代码,而将源代码建模为控制流图。建立了一个序列模型来分析以太坊操作代码。然而,这些方法要么将源代码或操作代码视为文本序列而不是语义块,要么未能突显出智能合约抽象出的数据特征,导致语义建模不足和向量特征缺失。

技术实现思路

[0006]本专利技术设计开发了一种基于特征交叉的智能合约漏洞检测方法,基于合约图向量和专家模式特征向量,利用特征交叉技术,通过AutoInt网络和深度交叉网络构造高维非线性特征向量,训练分类器模型,从而实现智能合约漏洞的自动化检测;减少智能合约在区块链应用中引入的安全问题,保证用户信息的隐私性及资产的安全性。
[0007]本专利技术提供的技术方案为:
[0008]一种基于特征交叉的智能合约漏洞检测方法,包括:
[0009]通过以太坊智能合约和维特链智能合约,标注智能合约标签,将智能合约源码转换成对应的合约图,提取智能合约源码中对应数据;
[0010]通过前馈神经网络提取合约图特征C
r
,通过连接层提取智能合约中专家模式特征S
r
,将合约图特征C
r
与专家模式特征S
r
同时输入到AutoInt网络和DCN网络中;
[0011]在AutoInt网络和DCN网络中进行特征交叉,构建高维特征向量,将经AutoInt网络的输出向量与DCN网络的输出向量结合在一起,输入到分类网络模型中进行训练,训练完成后输出漏洞检测结果。
[0012]优选的是,所述标注智能合约标签通过开源漏洞检测工具以及人工审计方式进行
标注;
[0013]其中,标签为1表示该合约存在漏洞,标签为0表示不存在漏洞。
[0014]优选的是,在特征交叉网络中前插入嵌入层。
[0015]优选的是,所述将合约图特征C
r
和专家模式特征S
r
输入到嵌入层生成嵌入向量E=[e1,......,e
M
]。
[0016]优选的是,所述AutoInt网络的核心为多头注意力机制,基于多头注意力机制的AutoInt网络,将低维的嵌入向量输入到AutoInt网络中。
[0017]优选的是,输入的嵌入向量分别经交叉网络和深度神经网络处理后进行向量结合得到融合特征A
o
∪D
o

[0018]优选的是,所述训练过程中采用Sigmoid激活函数输出检测结果。
[0019]优选的是,在所述嵌入层中,对单值离散特征、多值离散特征以及连续特征的处理包括:
[0020]对于单值离散特征,通过嵌入词表得到对应的嵌入向量e
sd
表示:
[0021]e
sd
=V
i
x
i

[0022]其中,V
i
是特征组V
i
对应的嵌入矩阵,x
i
是特征组的one

hot编码表示向量;
[0023]对于多值离散特征,通过嵌入词表得到对应嵌入向量后,通过平均池化的方式对同一特征域的嵌入向量进行平均,得到嵌入向量e
md

[0024][0025]其中,q是多值离散特征中取值的个数,对于离散特征来说,x
i
是one

hot向量或者multi

hot向量,取值0或1。
[0026]设定连续特征为一个标量,将标量的取值与其对应的嵌入向量相乘:
[0027]e
m
=v
m
x
m

[0028]其中,v
m
是一个嵌入向量,x
m
是一个标量值。
[0029]优选的是,所述构建高维特征向量包括:
[0030]将多头注意力机制将特征投射到多个子空间中,在不同的子空间中捕获不同的特征交互模式,通过交互层的堆叠,捕获更高阶的交互特征;
[0031]高维特征向量,具体形式为:
[0032][0033]其中,x
l
和x
l+1
分别是第l层和第l+1层的输出,w
l
和b
l
是这两层之间的连接参数,式中变量均为列向量,f(x
l
,w
l
,b
l
)为在拟合该层输出和上一层输出的残差。
[0034]本专利技术所述的有益效果:
[0035]本专利技术以专家规则与智能合约图为基础,通过AutoInt网络和DCN网络采用不同的方式构建高维非线性特征,使模型的性能得到提升,实现利用深度学习的方式提高智能合约漏洞检测的准确率,为智能合约漏洞检测的改进提供了新的解决思路,具有良好的借鉴意义。具体的创新性表现在以下几个方面:
[0036]以合约图向量与专家安全模式向量为基础,探索对特征向量的重新构建,达到提高智能合约漏洞检测的精确率的可能性;
[0037]采用基于多头注意力机制的AutoInt网络,对输入的特征向量进行交叉重新构建,
使用多头注意力机制将特征投射到多个子空间中,在不同的子空间中可以捕获不同的特征交互模式。通过交互层的堆叠,可以捕获更高阶的交互模式;
[0038]采用深度交叉网络,学习合约图特征与专家模式特征组合的非线性高阶特征,高效地捕获多度有效特征的相互作用,不需要人工特征工程或遍历搜索,且具有较低的计算成本。
[0039]在实际应用中,与传统的智能合约漏洞检测方式相比,本专利技术实现了自动化检测功能,效率得到提高,节约了人力成本和时间成本,提高了智能合约开发的效率。与自动化的智能合约漏洞检测方式相比,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于特征交叉的智能合约漏洞检测方法,其特征在于,包括:通过以太坊智能合约和维特链智能合约,标注智能合约标签,将智能合约源码转换成对应的合约图,提取智能合约源码中对应数据;通过前馈神经网络提取合约图特征C
r
,通过连接层提取智能合约中专家模式特征S
r
,将合约图特征C
r
与专家模式特征S
r
同时输入到AutoInt网络和DCN网络中;在AutoInt网络和DCN网络中进行特征交叉,构建高维特征向量,将经AutoInt网络的输出向量与DCN网络的输出向量结合在一起,输入到分类网络模型中进行训练,训练完成后输出漏洞检测结果。2.根据权利要求1所述的基于特征交叉的智能合约漏洞检测方法,其特征在于,所述标注智能合约标签通过开源漏洞检测工具以及人工审计方式进行标注;其中,标签为1表示该合约存在漏洞,标签为0表示不存在漏洞。3.根据权利要求2所述的基于特征交叉的智能合约漏洞检测方法,其特征在于,在特征交叉网络前插入嵌入层。4.根据权利要求3所述的基于特征交叉的智能合约漏洞检测方法,其特征在于,所述将合约图特征C
r
和专家模式特征S
r
输入到嵌入层生成嵌入向量E=[e1,......,e
M
]。5.根据权利要求4所述的基于特征交叉的智能合约漏洞检测方法,其特征在于,所述AutoInt网络的核心为多头注意力机制,基于多头注意力机制的AutoInt网络,将低维的嵌入向量输入到AutoInt网络中。6.根据权利要求5所述的基于特征交叉的智能合约漏洞检测方法,其特征在于,输入的嵌入向量分别经交叉网络和深度神经网络处理后进行向量结合得到融合特征A
o
∪D
o
。7.根据权利要求6所述的基于特征交叉的智能合约漏洞检测方法,其特征在于,所述训练过程中采用Sigmoid激活函数输出检测结果。8.根据权利要求7所...

【专利技术属性】
技术研发人员:李丽娜刘阳李念峰王玉英
申请(专利权)人:长春大学
类型:发明
国别省市:

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

1