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

4636                                                      软件学报  2025  年第  36  卷第  10  期


                    概括来说, 本文利用       Word2Vec 算法对控制流图进行了特征提取. 具体地, 本文将每个控制流图节点的特征
                 表示为向量, 并将每个控制流图边的特征描述为两个相邻节点的平均特征. 通过这种方式, Word2Vec 生成的节
                 点表示包含了图的部分拓扑信息, 其中融入了一部分语义信息. Word2Vec 模型的运用实现了控制流图到特征向
                 量的转换, 这些特征向量捕捉了控制流图基本块之间的语义关系和上下文信息, 为后续的图分析任务提供了有
                 力支持.
                    (2) 特征对齐
                    因为每个智能合约的功能不同, 所以每个合约源代篇幅长短有很大差别, 自然生成的控制流图也会大小各异,
                 以及由此带来上述       Word2Vec 模型提取的特征向量维度不同的问题. 特征向量维度不同会给后续的分析和模型训
                 练带来困难, 因此, 本文对不同智能合约生成的特征向量进行了对齐, 使得所有的特征向量具有相同的维度.
                    具体来说, 本文通过遍历所有的特征向量, 确定对齐后的目标维度. 接下来, 对每个控制流图的特征向量进
                 行对齐操作, 将其调整到统一的维度. 其中, 对于维度较小的特性向量, 使用零向量进行填充; 对于维度较大的
                 特征向量, 根据向量分布进行截断. 最终实现特征向量维度的统一, 方便后续对特征数据的分析以及对模型的
                 训练.
                    (3) 特征表示
                    为了简单起见, 本文将构建的控制流图定义为                G = (V,E), 其中,  V = {v 1 ,...,v n }  表示控制流图的节点集,  E =
                 {e 1 ,...,e n }  表示控制流边集.
                  2.3   基于图卷积和  Transformer 的特征学习模块
                    在给定合约特征图       G  的基础上, 本节将进行进一步的模型处理, 旨在通过节点和边的特征学习识别庞氏骗局
                 的关键特征. Transformer [48] 是一种基于自注意力机制的模型, 适用于处理序列数据, 能够有效地捕捉序列中的全局
                 依赖关系, 而且在训练和推理时可以并行化处理. GCN                适用于处理图结构数据, 能够利用节点之间的连接关系进
                 行特征学习, 通过聚合节点邻居的信息来更新节点的特征表示, 从而实现对图结构的特征学习. 为了捕捉合约特征
                 中更细致的语义和结构关系, 本文将             Transformer 与  GCN  进行结合, 具体架构如图      6  所示. 在本模块引入了
                 Transformer 中的多头注意力机制     [49] , 多头注意力机制能捕捉更复杂的节点特征依赖关系, 而不需要遍历整个序
                 列. 同时, 为了丰富这种节点依赖, 还引入了图神经网络. 最终设计出一个基于多头注意力机制的图卷积神经网络
                 模块, 充分利用了图结构数据的局部连接信息和自注意力机制的全局关系学习能力, 用于学习合约代码控制流图
                 的隐藏特征. 具体来说, GCN      用于学习节点特征表示, 并且能够捕捉图结构中的局部特征; 而                    Transformer 则能够
                 在全局范围内建模节点之间的依赖关系. 这一创新点使得模型能够充分利用                         GCN  和  Transformer 的优势, 更好地
                 学习到图结构数据中的特征表示, 并且能够更准确地捕捉节点之间的复杂关系, 从而提高庞氏骗局合约的检测
                 效果.


                                               Multi-head attention
                                                     V
                                                                       Transition
                                                     K                       GCN


                                                     Q
                                                 图 6 特征学习模块的结构图

                    在第  2.2  节的特征对齐与提取模块得到了合约的特征表示. 在这些特征中, 每个节点                       v 都带有独特的嵌入特
                 征, 这些特征能够深入表达合约的语义信息. 为了更准确地捕获上下文之间的语义联系, 本文采用自注意力机制来
                 有效聚合节点特征. Transformer 中的多头注意力机制描述如下:
   234   235   236   237   238   239   240   241   242   243   244