一种智能合约漏洞检测方法、系统、设备、介质、终端技术方案

技术编号:30762008 阅读:10 留言:0更新日期:2021-11-10 12:16
本发明专利技术属于区块链安全技术领域,公开了一种智能合约漏洞检测方法、系统、设备、介质、终端,所述智能合约漏洞检测方法包括:将大规模智能合约漏洞数据集作为基础训练数据集;使用新类数据进行增量学习训练;将所有类测试数据分为支持集和测试集,使用支持集数据输入已训练好的模型,获得每种新漏洞类型对应的全连接网络参数;将已有漏洞类型和新漏洞类型对应的全连接网络参数作为网络节点,使用图注意力网路建立观察旁路;使用测试集计算,并预测结果的计算交叉熵损失;使用交叉熵损失对观察旁路中的图注意力网络进行参数更新,并继续训练下一批新的数据集。本发明专利技术能够在基于旧有数据集进行训练学习漏洞检测能力的同时,也能够训练模型的持续学习能力。模型的持续学习能力。模型的持续学习能力。

【技术实现步骤摘要】
一种智能合约漏洞检测方法、系统、设备、介质、终端


[0001]本专利技术属于区块链安全
,涉及智能合约安全检测检测领域,尤其涉及一种智能合约漏洞检测方法、系统、设备、介质、终端。

技术介绍

[0002]目前,智能合约是运行在区块链平台上的一段程序,与普通软件一样,智能合约也面临各种风险,区块链平台上的智能合约大都涉及数字资产或加密货币的交易和处理,由于利用智能合约的漏洞对区块链平台进行攻击,可以获取巨大的收益,导致针对智能合约漏洞的攻击层出不穷。近年来,有研究人员开始使用深度学习对智能合约进行安全检测,并取得了不错的效果。当前基于深度学习的智能合约检测模型,只能基于数据集中固定类型漏洞进行检测,实际应用场景中,不可避免地会遇到新发现的漏洞,这种情况下,当前的深度学习检测模型,需要把新发现的漏洞数据集和原来的已有的数据集合并到一起进行训练,这种训练方式效率较低,在计算资源有限的情况下,不利于深度学习模型快速更新。人类具有持续学习的能力,在学习新知识时,不需要重新学习旧知识,最后能够同时拥有新旧两种知识,受此启发,相关领域的研究人员提出了增量学习的方法,但增量学习应用到深度学习模型上,会导致灾难性遗忘的问题。在增量学习过程中,只使用新类别的数据集对深度学习模型进行训练,新知识会干扰旧知识,导致旧的知识丢失,会影响模型的性能,甚至完全丢失对就有类别的分类能力。因此,亟需一种新的智能合约漏洞检测方法,以弥补现有技术缺陷,增强智能合约的安全性能。
[0003]通过上述分析,现有技术存在的问题及缺陷为:
[0004](1)当前基于深度学习的智能合约检测模型,只能基于数据集中固定类型漏洞进行检测,不符合实际应用场景。
[0005](2)当在实际应用场景中遇到新发现的漏洞时,当前深度学习检测模型需要把新发现的漏洞数据集和原来的已有的数据集合并到一起进行训练,该训练方式效率较低,在计算资源有限的情况下,不利于深度学习模型快速更新。
[0006](3)将增量学习应用到深度学习模型上会导致灾难性遗忘的问题;在增量学习过程中,只使用新类别的数据集对深度学习模型进行训练,新知识会干扰旧知识,导致旧的知识丢失,影响模型性能,甚至完全丢失对类别的分类能力。
[0007]解决以上问题及缺陷的难度为:如何克服灾难性遗忘,一方面希望模型还可以表现出从新数据中整合新知识和提炼已有知识的能力,另一方面也必须防止新输入对已有知识的显著干扰。这两个互相冲突的需求就是所谓的稳定性

可塑性困境。从头训练模型无疑可以解决灾难性遗忘问题,但这种方法效率非常低,极大地阻碍了模型实时地学习新数据。如何在计算和存储资源有限的条件下,在稳定性

可塑性困境中寻找效用较大的平衡点成为主要的难题。此外,现阶段的增量学习对研究者的经验要求比较高。因为在模型有效之前,不仅需要进行大量的训练,而且增量学习方法十分复杂,训练周期也很长。
[0008]解决以上问题及缺陷的意义为:通过使用增量学习的方式可以有效的利用新增数
据来对模型进行训练和进一步完善。此外,利用增量学习方法可以从系统层面上更好地理解和模仿人脑学习方式,为模型开发和算法学习提供技术基础。

技术实现思路

[0009]针对现有技术存在的问题,本专利技术提供了一种智能合约漏洞检测方法、系统、设备、介质、终端,尤其涉及一种基于增量学习的智能合约漏洞检测方法、系统、设备、介质、终端。
[0010]本专利技术是这样实现的,一种智能合约漏洞检测方法,所述智能合约漏洞检测方法包括:
[0011]建立一个两阶段模型,第一阶段使用图神经网络建立特征提取模型,把智能合约转换成多个图,使用图神经网络,完成对智能合约特征提取;第二阶段使用卷积神经网络建立分类模型,把第一阶段提取的特征向量,输入分类模型,进行智能合约分类。
[0012]进一步,所述智能合约漏洞检测方法包括以下步骤:
[0013]步骤一,将大规模智能合约漏洞数据集作为基础训练数据集,称为基类数据;将新发现的漏洞数据集称为新类数据;以便使用基类数据来训练第一阶段图神经网络和第二阶段卷积神经网络的网络参数;
[0014]步骤二,训练完成后,使用新类数据进行增量学习训练;训练过程中,固定第一阶段图神经网络参数,图神经网络只提供特征提取功能,并输出智能合约特征向量,目的是将此特征向量作为下游神经网络的输入向量进行分类训练;
[0015]步骤三,将所有类测试数据分为两部分,分别称为支持集和测试集;使用支持集数据输入已训练好的模型,获得每种新漏洞类型对应的全连接网络参数,这样做是为了方便对分类效果进行测试,通过使用另一组训练样本作为测试集,进行试分类,以评价其代价函数的收敛程度;
[0016]步骤四,将已有漏洞类型和新漏洞类型对应的全连接网络参数,作为网络节点,使用图注意力网路建立一个观察旁路,并进行节点更新,通过动态地调整,以优化对输入数据的表达精度;
[0017]步骤五,将新的网络参数更新到分类模型中,使用测试集计算,并预测结果的计算交叉熵损失,因为可以很容易的通过求导计算来衡量模型的效果;
[0018]步骤六,使用步骤五获得的交叉熵损失对观察旁路中的图注意力网络进行参数更新,并继续训练下一批新的数据集,以稳定学习结果。
[0019]进一步,步骤一中,所述训练包括增量学习模型基类数据训练和增量学习模型新类数据训练;其中,所述增量学习模型基类数据训练,包括:
[0020](1)特征提取:使用基类数据,将智能合约转换成多个图,使用图神经网络完成对智能合约的特征提取;
[0021](2)分类训练:将提取的特征向量输入至分类模型进行分类训练。
[0022]进一步,所述增量学习模型新类数据训练,包括:
[0023](1)特征提取:使用新类数据,将智能合约转换成多个图,使用图神经网络完成对智能合约的特征提取,不更新网络参数;
[0024](2)分类训练:将提取的特征向量输入至分类模型进行分类训练。
[0025]进一步,所述智能合约漏洞检测方法,还包括增量学习模型分类参数融合,所述增量学习模型分类参数融合包括:
[0026]增量学习模型基类数据和增量学习模型新类数据特征提取后,分别聚合类向量节点信息,观察旁路图注意力网络,分别进行增量学习模型基类数据和增量学习模型新类数据的类训练。
[0027]本专利技术的另一目的在于提供一种应用所述的智能合约漏洞检测方法的智能合约漏洞检测系统,所述智能合约漏洞检测包括:
[0028]数据集获取模块,用于将大规模智能合约漏洞数据集作为基础训练数据集,称为基类数据;将新发现的漏洞数据集称为新类数据;
[0029]数据训练模块,用于使用基类数据训练第一阶段图神经网络和第二阶段卷积神经网络的网络参数;
[0030]增量学习训练模块,训练完成后,用于使用新类数据进行增量学习训练;训练过程中,固定第一阶段图神经网络参数,图神经网络只提供特征提取功能,并本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能合约漏洞检测方法,其特征在于,所述智能合约漏洞检测方法包括:建立一个两阶段模型,第一阶段使用图神经网络建立特征提取模型,把智能合约转换成多个图,使用图神经网络,完成对智能合约特征提取;第二阶段使用卷积神经网络建立分类模型,把第一阶段提取的特征向量,输入分类模型,进行智能合约分类。2.如权利要求1所述的智能合约漏洞检测方法,其特征在于,所述智能合约漏洞检测方法包括以下步骤:步骤一,将大规模智能合约漏洞数据集作为基础训练数据集,称为基类数据;将新发现的漏洞数据集称为新类数据;使用基类数据训练第一阶段图神经网络和第二阶段卷积神经网络的网络参数;步骤二,训练完成后,使用新类数据进行增量学习训练;训练过程中,固定第一阶段图神经网络参数,图神经网络只提供特征提取功能,并输出智能合约特征向量;步骤三,将所有类测试数据分为两部分,分别称为支持集和测试集;使用支持集数据输入已训练好的模型,获得每种新漏洞类型对应的全连接网络参数;步骤四,将已有漏洞类型和新漏洞类型对应的全连接网络参数,作为网络节点,使用图注意力网路建立一个观察旁路,并进行节点更新;步骤五,将新的网络参数更新到分类模型中,使用测试集计算,并预测结果的计算交叉熵损失;步骤六,使用步骤五获得的交叉熵损失对观察旁路中的图注意力网络进行参数更新,并继续训练下一批新的数据集。3.如权利要求2所述的智能合约漏洞检测方法,其特征在于,步骤一中,所述训练包括增量学习模型基类数据训练和增量学习模型新类数据训练;其中,所述增量学习模型基类数据训练,包括:(1)特征提取:使用基类数据,将智能合约转换成多个图,使用图神经网络完成对智能合约的特征提取;(2)分类训练:将提取的特征向量输入至分类模型进行分类训练。4.如权利要求3所述的智能合约漏洞检测方法,其特征在于,所述增量学习模型新类数据训练,包括:(1)特征提取:使用新类数据,将智能合约转换成多个图,使用图神经网络完成对智能合约的特征提取,不更新网络参数;(2)分类训练:将提取的特征向量输入至分类模型进行分类训练。5.如权利要求1所述的智能合约漏洞检测方法,其特征在于,所述智能合约漏洞检测方法,还包括增量学习模型分类参数融合,所述增量学习模型分类参数融合包括:增量学习模型基类数据和增量学习模型新类数据特征提取后,分别聚合类向量节点信息,观察旁...

【专利技术属性】
技术研发人员:董学文田文生沈玉龙丛雅倩张元玉杨凌霄徐扬郭校杰习宁
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

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

1