利索能及
我要发布
收藏
专利号: 2025102166917
申请人: 湖南工商大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-04
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于区块链的智能合约漏洞分析方法,其特征在于:所述方法包括以下步骤:步骤S1:访问智能合约漏洞库并采用数据增强技术制定智能合约漏洞数据集;

步骤S2:构建自然语言自编码器并使用智能合约漏洞数据集训练自然语言自编码器,自然语言自编码器包括Word2Vec预训练模型、自动编码器、瓶颈层和自动解码器;

步骤S3:加载Code2Vec预训练模型并使用自然语言自编码器对Code2Vec预训练模型进行迁移微调;

步骤S4:采用自然语言自编码器和Code2Vec预训练模型构建自然‑代码联合语义编码器并使用智能合约漏洞数据集进一步训练自然‑代码联合语义编码器;

步骤S5:使用自然‑代码联合语义编码器构建智能合约漏洞定位器并使用智能合约漏洞数据集训练智能合约漏洞定位器;

步骤S6:使用智能合约漏洞定位器以二分收敛迭代法对智能合约进行漏洞定位,得到目标漏洞代码段与目标漏洞代码段的漏洞类型;

步骤S7:使用自然‑代码联合语义编码器构建自然‑代码联合语义匹配器;

步骤S8:使用自然‑代码联合语义匹配器从智能合约漏洞库中查找与目标漏洞最接近的漏洞条目。

2.根据权利要求1所述的一种基于区块链的智能合约漏洞分析方法,其特征在于:所述步骤S1具体包括以下步骤:步骤S11:访问智能合约漏洞库,从智能合约漏洞库中采集每个智能合约漏洞条目对应的智能合约全部代码、漏洞代码段、漏洞类型和漏洞描述并汇总为原始漏洞实例;

步骤S12:采集不存在漏洞的智能合约,从不存在漏洞的智能合约中随机截取代码段,将不存在漏洞的智能合约的智能合约全部代码和随机截取得到的代码段汇总为负样本漏洞实例,对负样本漏洞实例的漏洞类型和漏洞描述进行0填充,为负样本漏洞实例增加漏洞属性,将负样本漏洞实例的漏洞属性标注为无漏洞代码段;

步骤S13:采用对原始漏洞实例和负样本漏洞实例的智能合约全部代码进行随机隐去的方法进行数据增强,生成数据增强漏洞实例;

步骤S14:将原始漏洞实例、负样本漏洞实例和数据增强漏洞实例整合成智能合约漏洞数据集。

3.根据权利要求2所述的一种基于区块链的智能合约漏洞分析方法,其特征在于:所述步骤S3具体包括以下步骤:步骤S31:将智能合约漏洞数据集等比例划分为不同批次,加载Code2Vec预训练模型并下载Code2Vec预训练数据集,从自然语言自编码器中截取自动解码器,将Code2Vec预训练模型连接至自动解码器,设置最大原任务准确度下降值,用Code2Vec预训练数据集测试Code2Vec预训练模型,得到最初原任务精准度;

步骤S32:指定智能合约漏洞数据集中的智能合约全部代码为输入,漏洞描述为目标输出,训练Code2Vec预训练模型,在训练过程中,每完成一批次的训练就用Code2Vec预训练数据集测试Code2Vec预训练模型,得到此批次训练完成后的原任务精准度和此批次训练造成的原任务精准度下降值;

步骤S33:若所有批次训练完成后的原任务精准度小于最初原任务精准度减去最大原任务准确度下降值得到的值,则回滚Code2Vec预训练模型的权重至训练开始前的状态并将原任务精准度下降值最高的批次从Code2Vec预训练模型之后的训练中禁用;

步骤S34:重复步骤S32和步骤S33直到所有批次训练完成后的原任务精准度高于最初原任务精准度减去最大原任务准确度下降值得到的值。

4.根据权利要求3所述的一种基于区块链的智能合约漏洞分析方法,其特征在于:所述步骤S4具体包括以下步骤:步骤S41:重置自然语言自编码器中自动编码器与自动解码器的权重,构建拼接融合层;

步骤S42:将自然语言自编码器截去自动解码器后连接至拼接融合层,将Code2Vec预训练模型连接至拼接融合层,构建自然‑代码联合语义编码器;

步骤S43:将拼接融合层连接至自动解码器,指定智能合约漏洞数据集中的智能合约全部代码指定为Code2Vec预训练模型和Word2Vec预训练模型的输入,将智能合约漏洞数据集中的漏洞代码段指定为自动解码器的目标输出,训练自然‑代码联合语义编码器。

5.根据权利要求4所述的一种基于区块链的智能合约漏洞分析方法,其特征在于:所述步骤S5具体包括以下步骤:步骤S51:构建第一多层感知机和第二多层感知机,解除拼接融合层与自动解码器间的连接,将拼接融合层连接至第一多层感知机和第二多层感知机,构建智能合约漏洞定位器;

步骤S52:对智能合约漏洞数据集的漏洞属性进行编码,有漏洞代码段取值为1,无漏洞代码段取值为0,对智能合约漏洞数据集的漏洞类型进行独热编码;

步骤S53:指定第一多层感知机的损失函数为bianry_crossentropy,指定第二多层感知机的损失函数为categorical_crossentropy,指定智能合约全部代码为Code2Vec预训练模型和Word2Vec预训练模型的输入,指定漏洞属性为第一多层感知机的目标输出,指定漏洞类型为第二多层感知机的目标输出,训练智能合约漏洞定位器。

6.根据权利要求5所述的一种基于区块链的智能合约漏洞分析方法,其特征在于:所述步骤S6具体包括以下步骤:步骤S61:使用智能合约漏洞定位器对智能合约全部代码进行初步检测,若第一多层感知机判定智能合约全部代码为有漏洞代码段,开始二分检测;

步骤S62:进行二分检测:将有漏洞代码段进行二分,对二分后的两个代码段分别输入智能合约漏洞定位器进行检测判定是否为有漏洞代码段,重复此步骤直到二分后的两个代码段都被第一多层感知机判定为无漏洞代码段;

步骤S63:将二分后的两个代码段进行拼接,生成拼接后代码段,将拼接后代码段的第一行指定为从顶至底收敛代码段;

步骤S64:从顶至底收敛检测;

步骤S65:将从顶至底收敛代码段的最后一行指定为从底至顶收敛代码段;

步骤S66:从底至顶收敛检测;

步骤S67:将底至顶收敛代码段作为目标漏洞代码段,此时的第二多层感知机的输出为目标漏洞代码段的漏洞类型。