Page 459 - 《软件学报》2026年第3期
P. 459

1422                                                       软件学报  2026  年第  37  卷第  3  期


                 行分析, 绘制了概率分布直方图如图           5 所示, 智能合约的长度大多集中在          0–2 048 之间, 其中庞氏骗局中约有      58.7%
                 在此区间, 非庞氏骗局中约        56.05%. 为了评估  DSPGD  算法的有效性, 将    4 种对抗训练算法     (FGM、FreeAT、PGD、
                 DSPGD) 分别加入    TextCNN  模型中进行对抗训练, 并考虑不同嵌入长度            (1 024、1 536、2 048) 进行实验, 以保留
                 操作码行为序列的行为特征和语义特征.


                                                                0.000 5
                       0.000 35
                       0.000 30                                 0.000 4
                      Probability  0.000 25                    Probability  0.000 3
                       0.000 20
                       0.000 15
                                                                0.000 2
                       0.000 10
                                                                0.000 1
                       0.000 05
                            0                                       0
                               0                                       0
                                1 024  2 048  3 072  4 096  5 120  6 144  7 168  8 192  9 216 10 240  1 024  2 048  3 072  4 096  5 120  6 144  7 168  8 192
                                          Length                                   Length
                                     (a) 非庞氏骗局行为序列                            (b) 庞氏骗局行为序列
                                             图 5 行为序列长度的概率分布直方图

                    图  6  展示了  4  种对抗训练算法在不同嵌入长度下的精确度、召回率和                  F1  分数的表现. 与  FGM、FreeAT  和
                 PGD  相比, DSPGD  的精确度、召回率和       F1  分数获得最佳的效果, 且当嵌入长度为          1 536  时检测模型的性能最佳.
                 由此说明, DSPGD   与  TextCNN  结合之后能有效提升庞氏骗局的检测性能.


                      0.986                       0.986
                             FGM                         FGM                 0.985  FGM
                      0.984  FreeAT               0.984  FreeAT                     FreeAT
                             PGD                         PGD                 0.982  PGD
                      0.982  DSPGD                0.982  DSPGD               0.979  DSPGD
                      Precision  0.980           Recall  0.980              F1-score  0.976
                      0.978
                                                  0.978
                                                  0.976
                      0.976
                                                                             0.973
                      0.974                       0.974
                                                                             0.970
                      0.972                       0.972
                      0.970                       0.970                      0.967
                            1 024  1 536  2 048        1 024  1 536  2 048         1 024  1 536  2 048
                                (a) Precision                (b) Recall                (c) F1-score
                                              图 6 4  种对抗训练算法的性能对比图

                    为了进一步验证模型抗干扰能力, 后文图               7(a) 中绘制了  4  种对抗训练算法的      ROC  曲线, 其中   DSPGD  的
                 ROC  曲线  (红色) 更加接近左上角, AUC     为  0.985 5, 更接近  1, 由此说明加入  DSPGD  算法后的模型分类性能更好.
                 另一方面, 后文图     8  中展示了  4  种对抗训练算法在模型训练中的损失情况, 可以发现在                DSPGD  算法的训练下, 模
                 型的损失最快收敛且达到最小值. 损失与鲁棒性之间往往是负相关的, 而                       DSPGD  不仅获得更小的损失且有更好
                 的检测效果, 因此可以证明        DSPGD  算法能有效增强模型的鲁棒性.
                  4.3.2    检测方法的性能比较
                    针对第   4.2  节中提到的前   4  种庞氏骗局检测方法      RF、XGBoost、LightGBM  以及  CNN_RF  均使用   79  个操作
                 码频率特征和经过       Doc2vec 提取的  20  个操作码序列特征进行实验. 而        TextCNN、LSTM  使用操作码序列, SAD-
                 Ponzi 使用字节码文件进行实验. 另外, TextCNN_DSPGD        使用第   3.1  节提取的操作码行为序列作为输入进行实验.
                 实验结果见表     1.
   454   455   456   457   458   459   460   461   462   463   464