SECRAug 26, 2019

Slither: A Static Analysis Framework For Smart Contracts

arXiv:1908.09878v1905 citations
AI Analysis

This provides a tool for developers and auditors to improve security and efficiency in smart contracts, though it is incremental as it builds on existing static analysis techniques.

The paper tackles the problem of analyzing Ethereum smart contracts for vulnerabilities and optimizations by introducing Slither, a static analysis framework that converts Solidity code into an intermediate representation. It shows that Slither outperforms other tools in speed, accuracy, and balance of detection and false positives on real-world contracts.

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.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes