TL;DR
Slither is a static analysis framework for Ethereum smart contracts that converts Solidity code into an SSA-based intermediate form, enabling efficient vulnerability detection, optimization suggestions, and improved understanding.
Contribution
It introduces SlithIR, an SSA-based intermediate representation, and demonstrates its effectiveness in fast, accurate vulnerability detection and analysis of real-world smart contracts.
Findings
Outperforms existing tools in speed and accuracy
Effective at detecting vulnerabilities and optimization opportunities
Validated on large dataset of popular contracts
Abstract
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,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
