一种基于专家知识的智能合约细粒度漏洞检测方法,其方法包括:S1:利用大语言模型,构造提示词,分析智能合约源代码,为智能合约数据集打标签;通过静态分析智能合约源代码语句,通过将源代码元素表示成向量获取源代码细粒度特征初步表示,并且通过将抽象语法树子树合并到控制流图节点的代码图,得到源代码的图表示;S2:获取同一智能合约的异构代码特征和源代码细粒度特征,输入到BGSCVul模型中进行迭代融合,构建深度学习分类器;S3:通过构造专家知识分类器,实现以针对特定专家知识做出决策;S4:使用压栈方法融合各个子分类器的输出,输出最终预测。
背景技术
自区块链诞生以来,区块链技术在商业、金融、医疗保健等多个领域获得了广泛关注和应用。去中心化理念及其在金融和日常生活中的实际可行性,引领了密码学研究的新方向。以以太坊为代表的区块链2.0推动了智能合约的广泛应用,不仅为去中心化应用开启了无限可能,还促进了计算机科学基础的进步。然而,智能合约的安全隐患与区块链自身的性能瓶颈,如容量限制、延迟问题以及可扩展性挑战,成为大规模推广的主要障碍。因此,智能合约漏洞检测成为学术界研究的重点问题。
现有基于深度学习检测方法主要依赖智能合约源代码的单一维度分析,难以全面捕捉合约的复杂语义和结构信息。为此,本发明提出了一种基于专家知识的智能合约细粒度漏洞检测方法——BGSCVul。
BGSCVul通过静态分析智能合约源代码语句,同时,将抽象语法树子树合并到控制流图节点的代码图,用于异构代码特征表示,通过注意力机制进行细粒度特征结合,同时结合专家知识分类器,提取更为全面的漏洞特征表示,BGSCVul能够更精确地识别智能合约中的潜在漏洞。
实现思路