Smart Contract Vulnerabilities, Tools, and Benchmarks: An Updated Systematic Literature Review

Gerardo Iuliano,Dario Di Nucci
2024-12-03
Abstract:Smart contracts are self-executing programs on blockchain platforms like Ethereum, which have revolutionized decentralized finance by enabling trustless transactions and the operation of decentralized applications. Despite their potential, the security of smart contracts remains a critical concern due to their immutability and transparency, which expose them to malicious actors. The connections of contracts further complicate vulnerability detection. This paper presents a systematic literature review that explores vulnerabilities in Ethereum smart contracts, focusing on automated detection tools and benchmark evaluation. We reviewed 1,888 studies from five digital libraries and five major software engineering conferences, applying a structured selection process that resulted in 131 high-quality studies. The key results include a hierarchical taxonomy of 101 vulnerabilities grouped into ten categories, a comprehensive list of 144 detection tools with corresponding functionalities, methods, and code transformation techniques, and a collection of 102 benchmarks used for tool evaluation. We conclude with insights on the current state of Ethereum smart contract security and directions for future research.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the security of smart contracts, especially the vulnerabilities in Ethereum smart contracts and the evaluation of their automated detection tools and benchmark tests. Specifically, the paper aims to: 1. **Identify and classify vulnerabilities in smart contracts**: Through a systematic literature review (SLR), the paper organizes and classifies the known vulnerabilities in smart contracts and proposes a hierarchical taxonomy containing 101 vulnerabilities, which are divided into ten categories. 2. **Analyze automated detection tools**: The paper collects and analyzes 144 automated tools for detecting smart contract vulnerabilities, describes in detail the functions, methods, and code transformation techniques of these tools, and provides the mapping relationship between tools and vulnerabilities. 3. **Evaluate and compare detection tools**: The paper organizes 102 benchmark test sets for tool evaluation, providing a comprehensive reference framework for researchers and developers to better evaluate and compare the performance of different tools. 4. **Provide future research directions**: Through a comprehensive analysis of existing research, the paper points out the deficiencies in the current smart contract security field and provides directions and suggestions for future research. By updating the previous systematic literature review, the paper overcomes the limitations of previous research, such as the lack of a structured snowballing process and the failure to cover unnamed or pre - print tools, thus providing a more comprehensive and up - to - date perspective for smart contract security research. ### Formula Example In the security analysis of smart contracts, some mathematical models are often involved to assess risks and detect vulnerabilities. For example, Bayes' formula is used to calculate the probability that a specific vulnerability is successfully exploited: \[ P(\text{vulnerability exploited} \mid \text{vulnerability exists})=\frac{P(\text{vulnerability exists} \mid \text{vulnerability exploited}) \cdot P(\text{vulnerability exploited})}{P(\text{vulnerability exists})} \] where: - \( P(\text{vulnerability exploited} \mid \text{vulnerability exists}) \) represents the probability that the vulnerability is successfully exploited given that the vulnerability exists. - \( P(\text{vulnerability exists} \mid \text{vulnerability exploited}) \) represents the probability that the vulnerability exists given that the vulnerability is exploited. - \( P(\text{vulnerability exploited}) \) represents the prior probability that the vulnerability is exploited. - \( P(\text{vulnerability exists}) \) represents the prior probability that the vulnerability exists. This formula can help researchers more accurately assess security risks in smart contracts.