摘 要:智能合约控制着区块链上巨额资产的流动,因此确保其安全性至关重要。基于此,提出一种基于数据流图和混合深度学习模型的方法,即DFG-HDP,用于检测智能合约的漏洞。该方法首先对智能合约源码进行清洗和变量规范;其次从源码中提取数据流特征,将其与源码结合作为输入;最后将不同的词嵌入模型与不同的深度学习模型结合,对输入进行学习检测。实验结果表明,该方法在智能合约漏洞检测中的F1值高达89.90%,优于之前的漏洞检测方法CBGRU。这一结果证明了该方法的有效性和优越性。
关键词:智能合约;漏洞检测;数据流图;混合模型
中图分类号:TP309 文献标志码:A
0 引言(Introduction)
智能合约是运行在区块链上的计算机程序,通常由Solidity语言编写[1],与传统程序一样,其中可能包含开发者有意或无意写入的编程漏洞,这些漏洞一旦被利用,将可能引发比传统程序更严重的后果。据统计,截至2023年7月,由智能合约引起的经济损失已超200亿美元。
为解决智能合约带来的安全问题,QIAN等[2]专注于检测智能合约可重入漏洞,构建了带有注意力机制的BiLSTM 模型,实现了对可重入漏洞的自动检测;WANG等[3]首先根据规则对智能合约操作码进行统一化,其次从中提取双元特征并进行检测。然而,这些研究仍存在一定的局限性:一方面,多数研究只能针对少数几种漏洞进行检测,例如可重入漏洞和时间戳漏洞;另一方面,在检测精度上仍有提升空间。基于此,本文提出一种基于数据流图和混合深度学习模型的方法,用于检测智能合约漏洞,能对5种漏洞进行检测且可扩展到其他漏洞,同时在准确率和F1值上有较大的提升。