Abstract interpretation of Michelson smart-contracts
Guillaume Bau, Antoine Min\'e, Vincent Botbol, Mehdi Bouaziz

TL;DR
This paper introduces a static analysis tool for Michelson smart-contracts using Abstract Interpretation, capable of proving absence of runtime errors and inferring invariants, addressing the challenges posed by blockchain-specific execution models.
Contribution
The work presents a novel static analyzer for Michelson smart-contracts based on Abstract Interpretation, supporting complex features and extending to security property verification.
Findings
Proves absence of runtime errors in Michelson contracts.
Infers invariants on persistent storage over multiple calls.
Supports analysis of external contract calls.
Abstract
Static analysis of smart-contracts is becoming more widespread on blockchain platforms. Analyzers rely on techniques like symbolic execution or model checking, but few of them can provide strong soundness properties and guarantee the analysis termination at the same time. As smart-contracts often manipulate economic assets, proving numerical properties beyond the absence of runtime errors is also desirable. Smart-contract execution models differ considerably from mainstream programming languages and vary from one blockchain to another, making state-of-the-art analyses hard to adapt. For instance, smart-contract calls may modify a persistent storage impacting subsequent calls. This makes it difficult for tools to infer invariants required to formally ensure the absence of exploitable vulnerabilities. The Michelson smart-contract language, used in the Tezos blockchain, is strongly typed,…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
