Abstract:In recent years, smart contracts have been widely used in the financial field due to their immutability and enforceability. At the same time, the number of security incidents caused by smart contracts has continued to increase, often causing large-scale economic losses. Therefore, most researchers focus on developing vulnerability detection tools to assess the security of smart contracts. However, the performance of different vulnerability detection tools cannot be objectively evaluated due to the use of inconsistent datasets. This study constructs a new dataset and systematically tests nine candidate tools under a unified benchmark. The dataset includes real-world smart contracts and covers five common types of vulnerabilities. This study evaluates the tools from five aspects and proposes a new smart contract classification method to verify the robustness of the tools. The experimental results are as follows. 1) Most existing tools are easy to install, but there are also problems such as discontinued maintenance. 2) Static detection tools still face the problem of high false positive and false negative rates in the actual detection process, and rely on the analysis of different versions of smart contracts. 3) Static detection tools have a small time overhead, while tools based on symbolic execution are prone to large time overhead due to state explosion. 4) Some static detection tools do not support contracts with complex inheritance relationships. 5) The integration of multiple vulnerability detection technologies can effectively improve the detection precision and recall.