Compositional verification of smart contracts through communication abstraction
From MaRDI portal
Publication:2145351
Abstract: Solidity smart contracts are programs that manage up to 2^160 users on a blockchain. Verifying a smart contract relative to all users is intractable due to state explosion. Existing solutions either restrict the number of users to under-approximate behaviour, or rely on manual proofs. In this paper, we present local bundles that reduce contracts with arbitrarily many users to sequential programs with a few representative users. Each representative user abstracts concrete users that are locally symmetric to each other relative to the contract and the property. Our abstraction is semi-automated. The representatives depend on communication patterns, and are computed via static analysis. A summary for the behaviour of each representative is provided manually, but a default summary is often sufficient. Once obtained, a local bundle is amenable to sequential static analysis. We show that local bundles are relatively complete for parameterized safety verification, under moderate assumptions. We implement local bundle abstraction in SmartACE, and show order-of-magnitude speedups compared to a state-of-the-art verifier.
Recommendations
Cites work
- scientific article; zbMATH DE number 1701752 (Why is no real title available?)
- scientific article; zbMATH DE number 3485178 (Why is no real title available?)
- All for the price of few (parameterized verification through view abstraction)
- An axiomatic proof technique for parallel programs
- Model Checking Software
- On Reasoning About Rings
- Parameterized compositional model checking
- Reasoning about systems with many processes
- Towards efficient parameterized synthesis
- Verification, Model Checking, and Abstract Interpretation
- Verification, Model Checking, and Abstract Interpretation
Cited in
(5)- Formal verification of Ethereum smart contracts using Isabelle/HOL
- Formal verification of atomicity requirements for smart contracts
- SSCalc: a calculus for Solidity smart contracts
- Verification-Led Smart Contracts
- \textit{CCOM}: cost-efficient and collusion-resistant oracle mechanism for smart contracts
This page was built for publication: Compositional verification of smart contracts through communication abstraction
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2145351)