Page 240 - 《软件学报》2025年第10期
P. 240

黄静 等: 基于代码控制流图的庞氏骗局合约检测                                                         4637


                                                                    (  T  )
                                                                     QK
                                               Attention(Q,K,V) = Softmax √  V                        (2)
                                                                      d k
                                                                                              √
                 其中,  Q ∈ R d×d ,  K  (k)  ∈ R d×d   分别是  Query  权重矩阵和  Key  权重矩阵,  V  (k)  ∈ R d×d  是值投影权重矩阵,   d k  是缩放因
                       (k)
                 子. 公式表示通过权重有针对性的捕获特征, 大大简化了神经网络的复杂度.
                    通过利用    Transformer 构建堆叠在一起的多个层, 这个过程可以用如下公式表示:

                                                  (k)
                                                 x t,v = Normal(h (k)  +ATT(h (k)  ))                 (3)
                                                            t−1,v    t−1,v

                                                                     (k)
                                                  (k)
                                                             (k)
                                                 h t,v = Normal(x t,v +Trans(x t,v ))                 (4)
                 其中,  h (k)   表示第  k 个隐藏层   的特征向量,  Normal 表示层归一化操作. 这里的      Trans 和  ATT  分别表示多层感知机
                                        v
                      t−1,v
                 网络和自注意力层.
                    权重矩阵在所有位置和时间步长上的自注意力参数和转换函数                       Transition  都是共享的. 特别的是, 在第    k  层,
                                            t
                 对于给定节点     v ∈ V, 在每个时间步   中, 本文引入基于      Transformer 的函数来聚合所有节点的向量表示. 注意力层
                 特征提取的过程如下式:

                                                           ∑
                                                                  (k) (k)
                                                               (k)
                                                  ATT(h (k)  ) =  α (V h  )                           (5)
                                                       t−1,v   v    t−1,v
                 其中,  V  (k)  ∈ R d×d  是值投影权重矩阵,  α (k)  是注意力权重, 它的具体计算方法如下:
                                             v
                                                                T       
                                                                    (k) (k)
                                                            k (k)
                                                           (Q h  ) (K h  ) 
                                                (k)           t−1,v  t−1,v   
                                               α = Softmax     √                                  (6)
                                                v
                                                                  d
                                                                        
                    完整的注意力层操作可以用如下公式表示:

                                                         (                 )
                                                                    (k)
                                              (k)
                                                           (k)
                                                              (k)
                                                                 (k)
                                                                       (k)
                                             H t = Attention H Q ,H K ,H V  (k)                       (7)
                                                           t−1   t−1   t−1
                    为了充分利用智能合约中节点之间的依赖关系, 本文采用图卷积网络                       (GCN) 来聚合节点之间传递的消息, 这
                 样可以更有效地学习节点表示, 即通过公式              (8) 来构建相应函数.

                                                               (    )
                                                     H (k+1)  = GCN A,H (k)                           (8)
                       k
                 其中,   H  是第  k 层数据的隐藏特征,   A 是邻接矩阵.
                    图卷积网络和      Transformer 的这种结合使得模型能够在合约图中有效地学习到庞氏骗局的关键特征, 并提高
                 了对庞氏骗局合约的识别性能.
                  2.4   合约分类模块
                    在实现对庞氏骗局合约分类的过程中, 本文使用多层感知机学习上述图                        Transformer 模型提取的高维特征之
                 间的非线性关系, 并将这些特征映射到低维空间, 以实现合约的二分类. MLP                     是一种常见的人工神经网络结构, 由
                 一个或多个全连接的隐藏层和一个输出层组成.
                    具体实现过程如图       7  所示, MLP  的输入是从图    Transformer 模型中提取的高维特征, 这些特征是对智能合约
                 控制流图特征向量的嵌入表示. 这些特征向量被送入                 MLP  的输入层. 随着特征向量在隐藏层之间的传递, MLP             学
                 习到特征之间的复杂关系. 每个隐藏层由一组神经元组成, 每个神经元都与上一层的所有神经元相连, 通过权重连
                 接进行信息传递. 在隐藏层中, 每个神经元接收来自前一层的输入, 并对其进行加权和求和后通过激活函数处理,
                 以产生输出.
                    在经过隐藏层的一系列非线性变换后, MLP               将特征映射到一个更低维的空间. 最后, MLP              的输出层采用
                 Sigmoid  函数作为激活函数, 如公式     (9) 所示, 将输出值映射到      [0, 1] 的范围内, 实现对合约的二分类. Sigmoid     函数
                 能够将输入值映射到概率值, 表示合约属于正例               (庞氏骗局) 的概率. 最终, 基于输出概率的阈值设定, 可以对合约
                 进行分类, 即将其归类为庞氏骗局合约或正常合约.

                                                                 1
                                                     Sigmoid(x) =                                     (9)
                                                               1+e −x
   235   236   237   238   239   240   241   242   243   244   245