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  常需要将输入的行为序列的长度进行标准化处理, 确保序列的长度相同. 于是对行为序列的长度进
   453   454   455   456   457   458   459   460   461   462   463