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

一种结合GRU和SVM的智能合约漏洞检测方法技术

技术编号:32279214 阅读:16 留言:0更新日期:2022-02-12 19:46
本发明专利技术公开了一种结合GRU和SVM的智能合约漏洞检测方法,包括,将原始智能合约转换为合约片段,并对合约片段进行标记;解析标记的合约片段,并将解析结果转换为向量;利用任意值初始化学习参数权值和偏差,基于向量和学习参数权值计算门控循环神经网络的单元状态,根据单元状态和支持向量机构建检测网络;通过优化策略最小化检测网络的损失值,根据损失值调整检测网络的权重和偏差,以训练检测网络;若检测网络达到设定精度,则停止训练,将智能合约输入至训练后的检测网络,以判断是否存在重入漏洞;本发明专利技术在针对解决智能合约的安全问题上结合了深度学习技术,并且通过最终实验数据证实该发明专利技术能更高效地检测智能合约重入漏洞。证实该发明专利技术能更高效地检测智能合约重入漏洞。证实该发明专利技术能更高效地检测智能合约重入漏洞。

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


[0001]本专利技术涉及智能合约漏洞检测的
,尤其涉及一种结合GRU和SVM的智能合约漏洞检测方法。

技术介绍

[0002]智能合约是一段计算机程序,由开发者用高级语言编写后被编译为字节码,运行在以区块链为存储基础的虚拟机上。智能合约以数字规则的形式来表示合约双方的交易需求,通常包含有一组预定义的状态。当区块链上的用户进行交易对合约地址进行调用时合约可以在交易的驱动下进行状态转移,在交易的过程中存在着多种潜在的安全漏洞威胁。
[0003]传统的智能合约自动漏洞挖掘的方法有很多。对于具有明确模式的已知漏洞而言常用的检测方法有动态分析方法和静态分析方法。其中动态分析方法包含模糊测试法和动态污点分析,静态分析方法包含符号执行、静态污点分析和形式化验证。以上方法现已被应用于各类漏洞检测工具且取得了较为显著的效果,但仍存在一些局限性:对智能合约的分析主要基于形式化的分析和专家定义的逻辑规则,当新的漏洞产生并被发现时,需要开发人员更新逻辑规则来更新漏洞检测系统,这种被定义的逻辑规则在面对新发生的漏洞问题时无法自动解决,整个检测过程人工成本较高。以上提及的不足最终会导致漏洞检测工具的准确性和精度不够。

技术实现思路

[0004]本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。
[0005]鉴于上述现有存在的问题,提出了本专利技术。
[0006]为解决上述技术问题,本专利技术提供如下技术方案:包括,将原始智能合约转换为合约片段,并对所述合约片段进行标记;解析标记的合约片段,并将解析结果转换为向量;利用任意值初始化学习参数权值和偏差,基于所述向量和学习参数权值计算门控循环神经网络的单元状态,根据所述单元状态和支持向量机构建检测网络;通过优化策略最小化检测网络的损失值,根据所述损失值调整检测网络的权重和偏差,以训练所述检测网络;若检测网络达到设定精度,则停止训练,将智能合约输入至训练后的检测网络,以判断是否存在重入漏洞。
[0007]作为本专利技术所述的结合GRU和SVM的智能合约漏洞检测方法的一种优选方案,其中:所述合约片段由关键程序语句组成。
[0008]作为本专利技术所述的结合GRU和SVM的智能合约漏洞检测方法的一种优选方案,其中:所述标记包括,删除空白行和注释,将用户定义的函数和变量映射到符号名,完成合约片段的符号化表示。
[0009]作为本专利技术所述的结合GRU和SVM的智能合约漏洞检测方法的一种优选方案,其
中:转换所述解析结果包括,将所述标记的合约片段进行解析,获得代码令牌;将所述代码令牌和标记的合约片段通过合约片段word2vec工具转换成所述向量,同时生成标签。
[0010]作为本专利技术所述的结合GRU和SVM的智能合约漏洞检测方法的一种优选方案,其中:计算门控循环神经网络的单元状态包括,
[0011]r
t
=σ(x
t
W
xr
+h
t
‑1W
hr
+b
r
)
[0012]z
t
=σ(x
t
W
xz
+h
t
‑1W
hz
+b
z
)
[0013][0014][0015]其中,x
t
∈R
n*d
为第t个时间步的输入向量,r
t
表示重置门状态,W表示权重,W
xr
表示当前时间步的输入和重置门连接的权重,W
hr
表示隐藏层与重置门连接的权重,b
r
表示重置门的偏置,σ为sigma函数;z
t
表示更新门状态,W
xz
表示当前时间步的输入和更新门连接的权重,W
hz
表示隐藏层与更新门连接的权重,b
z
表示更新门的偏置;W
xh
表示当前时间步的输入与隐藏层连接的权重,W
hh
表示隐藏层间连接的权重;b
h
表示隐藏层的偏置,表示第t个时间步的临时隐藏状态;h
t
表示第t个时间步的隐藏状态,

表示同或运算符。
[0016]作为本专利技术所述的结合GRU和SVM的智能合约漏洞检测方法的一种优选方案,其中:所述检测网络包括,通过TensorFlow中的GRUcell类搭建门控循环神经网络,且门控循环神经网络的输出层为支持向量机,从而构建所述检测网络。
[0017]作为本专利技术所述的结合GRU和SVM的智能合约漏洞检测方法的一种优选方案,其中:所述损失值包括,
[0018][0019]其中,L为所述损失值,w为输出层的权重,n表示输出向量长度,即标签个数,y
i
表示独热编码的事实标签,x
i
表示输入,b
i
表示偏置,C为错误样本的惩罚程度,T为转置符。
[0020]作为本专利技术所述的结合GRU和SVM的智能合约漏洞检测方法的一种优选方案,其中:还包括,根据支持向量机的决策函数f(x)=sign(wx+b),获得数据的预测标签predicted
class

[0021]predicted
class
=argmax(sign(wx+b))
[0022]其中,b为偏置。
[0023]本专利技术的有益效果:本专利技术在针对解决智能合约的安全问题上结合了深度学习技术,并且通过最终实验数据证实该专利技术能更高效地检测智能合约重入漏洞。
附图说明
[0024]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0025]图1为本专利技术第二个实施例所述的结合GRU和SVM的智能合约漏洞检测方法的检测
网络与GRU

Softmax的ROC对比图;
[0026]图2为本专利技术第二个实施例所述的结合GRU和SVM的智能合约漏洞检测方法的检测网络与现有的应用于智能合约漏洞检测方法的ROC对比图。
具体实施方式
[0027]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本专利技术的具体实施方式做详细的说明,显然所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术的保护的范围。
[0028]在下面的描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种结合GRU和SVM的智能合约漏洞检测方法,其特征在于:包括,将原始智能合约转换为合约片段,并对所述合约片段进行标记;解析标记的合约片段,并将解析结果转换为向量;利用任意值初始化学习参数权值和偏差,基于所述向量和学习参数权值计算门控循环神经网络的单元状态,根据所述单元状态和支持向量机构建检测网络;通过优化策略最小化检测网络的损失值,根据所述损失值调整检测网络的权重和偏差,以训练所述检测网络;若检测网络达到设定精度,则停止训练,将智能合约输入至训练后的检测网络,以判断是否存在重入漏洞。2.如权利要求1所述的结合GRU和SVM的智能合约漏洞检测方法,其特征在于:所述合约片段由关键程序语句组成。3.如权利要求2所述的结合GRU和SVM的智能合约漏洞检测方法,其特征在于:所述标记包括,删除空白行和注释,将用户定义的函数和变量映射到符号名,完成合约片段的符号化表示。4.如权利要求3所述的结合GRU和SVM的智能合约漏洞检测方法,其特征在于:转换所述解析结果包括,将所述标记的合约片段进行解析,获得代码令牌;将所述代码令牌和标记的合约片段通过合约片段word2vec工具转换成所述向量,同时生成标签。5.如权利要求2或3所述的结合GRU和SVM的智能合约漏洞检测方法,其特征在于:计算门控循环神经网络的单元状态包括,r
t
=σ(x
t
W
xr
+h
t
‑1W
hr
+b
r
)z
t
=σ(x
t
W
xz
+h
t
‑1W
hz
+b
z
))其中,x
t
∈R
n*d
为第t个时间步的输入向量,r
t
...

【专利技术属性】
技术研发人员:李媛张乐君
申请(专利权)人:扬州大学
类型:发明
国别省市:

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

1