Compositional Verification of Smart Contracts Through Communication Abstraction (Extended)

07/19/2021
by   Scott Wesley, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/28/2020

Verification of recursive Bitcoin contracts

Smart contracts - computer protocols that regulate the exchange of crypt...
research
05/24/2020

Tezla, an Intermediate Representation for Static Analysis of Michelson Smart Contracts

This paper introduces Tezla, an intermediate representation of Michelson...
research
11/26/2022

Safety Verification of Declarative Smart Contracts

Smart contracts manage a large number of digital assets nowadays. Bugs i...
research
07/20/2018

Specification Mining for Smart Contracts with Automatic Abstraction Tuning

Smart contracts are programs that manage digital assets according to a c...
research
05/13/2020

eThor: Practical and Provably Sound Static Analysis of Ethereum Smart Contracts

Ethereum has emerged as the most popular smart contract development plat...
research
04/10/2020

Resources: A Safe Language Abstraction for Money

Smart contracts are programs that implement potentially sophisticated tr...

Please sign up or login with your details

Forgot password? Click here to reset