Compositional verification of smart contracts through communication abstraction

From MaRDI portal
Publication:2145351

DOI10.1007/978-3-030-88806-0_21zbMATH Open1497.68321arXiv2107.08583OpenAlexW3206384689MaRDI QIDQ2145351FDOQ2145351


Authors: Scott Wesley, Maria Christakis, Richard Trefler, Valentin Wüstholz, Arie Gurfinkel, Jorge Navas Edit this on Wikidata


Publication date: 17 June 2022

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.


Full work available at URL: https://arxiv.org/abs/2107.08583




Recommendations



Cites Work


Cited In (5)

Uses Software





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)