Slither: A Static Analysis Framework for Smart Contracts
By Josselin Feist, Gustavo Grieco, Alex Groce. International Workshop on Emerging Trends in Software Engineering for Blockchain, 2019
950 citations recorded by the source corpus.
This paper describes Slither, a static analysis framework designed to provide rich information about Ethereum smart contracts. It works by converting Solidity smart contracts into an intermediate representation called SlithIR. SlithIR uses Static Single Assignment (SSA) form and a reduced instruction set to ease implementation of analyses while preserving semantic information that would be lost in transforming Solidity to bytecode. Slither allows for the application of commonly used program analysis techniques like dataflow and taint tracking. Our framework has four main use cases: (1) automated detection of vulnerabilities, (2) automated detection of code optimization opportunities, (3) improvement of the user's understanding of the contracts, and (4) assistance with code review. In this paper, we present an overview of Slither, detail the design of its intermediate representation, and evaluate its capabilities on real-world contracts. We show that Slither's bug detection is fast, accurate, and outperforms other static analysis tools at finding issues in Ethereum smart contracts in terms of speed, robustness, and balance of detection and false positives. We compared tools using a large dataset of smart contracts and manually reviewed results for 1000 of the most used contracts.
Subfields: Artificial Intelligence, Information Systems, Signal Processing
View Paper: https://www.semanticscholar.org/paper/81aec3c1c0eb0b842216fe4d22077d688f8c64e6
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
In Information Systems
In Signal Processing
Citations in the corpus
- Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts (2019, methodology): “tic information about the contract using the Souffle Datalog solver. It then checks compliance and violation patterns that capture sufficient conditions for proving if a property holds or not. Slither[16], developed by TrailOfBits, is a static analysis framework that converts Solidity smart contract”
- Combining Graph Neural Networks With Expert Knowledge for Smart Contract Vulnerability Detection (2021, methodology): “Slither [53]: A static analysis framework designed to find issues in Ethereum smart contracts by convert-”