摘要:近年来, 智能合约因其不可篡改性和可执行性在金融领域得到了广泛的应用. 与此同时, 智能合约引发的安全事件不断增多, 往往造成大规模的经济损失. 因此, 大多数研究人员致力于开发智能合约漏洞检测工具来检测智能合约的安全性. 然而, 不同的合约漏洞检测工具可能因为数据集的不一致使得研究人员无法客观评估其性能. 构建一个新的数据集, 并在统一的标准下系统地测试9个候选工具. 该数据集不仅包含真实世界的智能合约, 且涵盖了5类常见的智能合约漏洞. 从5个方面对工具进行细致的评估, 并提出一种新的智能合约分类方法来验证工具的鲁棒性. 实验结果表明: 1)多数现有工具易于安装, 但同时存在停止维护等问题. 2)静态检测工具在实际检测过程中仍然面临漏报率和误报率高的问题, 且依赖于智能合约不同版本的分析. 3)静态检测工具的时间开销较小, 而基于符号执行的工具容易因状态爆炸而导致时间开销较大. 4)部分静态检测工具不支持具有复杂继承关系的合约. 5)采用多种漏洞检测技术融合的方式, 可以有效提高检测的精确率和召回率.