Page 458 - 《软件学报》2026年第3期
P. 458
宁小勇 等: 融合 TextCNN 和对抗训练的以太坊庞氏骗局检测模型 1421
文件反编译为操作码文件, 并使用算法 1 对其进行处理, 进而得到智能合约的行为序列. 本文将智能合约的行为序
列作为数据集, 并按照 7:1:2 的比例划分成训练集、验证集和测试集. 其中训练集用于模型训练, 验证集用于评估
模型训练效果, 测试集用于对训练好的模型进行分类测试.
为了准确评估该模型的性能, 并方便与其他检测庞氏骗局智能合约的方法进行性能比较, 我们提出使用 3 个
指标, 即精确度 (Precision)、召回率 (Recall) 和 F1 分数 (F1-score), 这 3 个指标均是取值越高, 模型的性能越好.
这 3 个指标的具体定义如下所示:
TP
Precision = (4)
TP+ FP
TP
Recall = (5)
TP+ FN
Precision×Recall
F1-score = 2× (6)
Precision+Recall
其中, TP 表示被正确识别为正样本的数量, TN 表示被正确识别为负样本的数量, FP 表示负样本被识别为正样本
的数量, FN 表示正样本被识别为负样本的数量.
ROC 曲线用于可视化分类模型性能, 它显示了在不同分类阈值下, 真正阳率 (TPR, 也称召回率) 与假正阳率
(FPR) 之间的权衡关系. ROC 曲线的横轴是 FPR, 纵轴是 TPR. TPR 和 FPR 的具体定义如公式 (7) 和公式 (8) 所示.
ROC 曲线下的面积 (AUC), 用于量化分类模型性能. AUC 的取值范围通常在 0–1 之间, 其中 1 表示完美分类器,
0.5 及其以下表示模型性能等同于随机猜测. AUC 值越大, 说明模型在不同阈值下的分类性能越好.
TP
TPR = (7)
TP+ FN
FP
FPR = (8)
FP+TN
4.2 基准模型
(1) 对抗训练算法: 本文使用 TextCNN 作为分类器, 但在模型的训练过程中发现存在梯度消失的问题, 同时容
易受到对抗攻击. 因此为了提高模型的鲁棒性, 将引入对抗训练算法进行模型训练. 将当前流行的 3 种对抗训练算
法 FGM、FreeAT 和 PGD 与改进之后的动态步长投影梯度算法 (DSPGD) 分别用于模型训练.
(2) 庞氏骗局检测方法: 在以往的研究中, 机器学习方法广泛应用于庞氏骗局检测, 其中最常用的方法包括
XGBoost [37] 、LightGBM [38] 、RF [39] 等. 然而前两者是经典的梯度提升算法, 存在梯度偏差引起的过拟合问题, 会影
响模型的泛化性能. 深度学习方法也被广泛用于异常检测, 如卷积神经网络 (CNN) [40] 、文本卷积神经网络
(TextCNN) 和 LSTM [13] 等. 此外, 动态符号执行方法 SADPonzi 进行庞氏骗局智能合约检测, 能够输出具有庞氏骗
局类别的检测报告.
在选择庞氏骗局检测基准模型时综合考虑了多种因素, 选择了一系列具有代表性的模型和方法. 其中, 机器学
习领域的 XGBoost、LightGBM、RF 以及神经网络范畴的 CNN、TextCNN、LSTM 等被纳入基准模型, 归因于
它们在数据处理、特征提取及序列建模等方面具有广泛的实践应用和代表性优势, 能够从多个维度全面、精准地
评估我们所提新方法的性能表现. 而 SADPonzi 作为基准模型之一, 因其基于动态符号执行技术, 能依据庞氏骗局
关键特征进行语义感知检测, 为我们提供独特对比视角. 而相关工作中的其他技术, 如 PonziGuard 资源耗费大且
通用性受限, Ponzi-Conv1D-Z3 依赖特定工具且针对性过强, 部分基于特定特征工程或数据集处理的方法稳定性
和通用性不足, 故而未被选作基准模型. 通过严谨的基准模型选择与分析过程, 便于更加精准评估我们所提出的检
测方法的性能与价值.
4.3 实验结果与分析
4.3.1 鲁棒性验证
TextCNN 常需要将输入的行为序列的长度进行标准化处理, 确保序列的长度相同. 于是对行为序列的长度进

