Abstract interpretation of Michelson smart-contracts

10/11/2022
by   Guillaume Bau, et al.
0

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, stack-based, and has a strict execution model leaving few opportunities for implicit runtime errors. We present a work in progress static analyzer for Michelson based on Abstract Interpretation and implemented within MOPSA, a modular static analyzer. Our tool supports the Michelson semantic features, including inner calls to external contracts. It can prove the absence of runtime errors and infer invariants on the persistent storage over an unbounded number of calls. It is also being extended to prove high-level numerical and security properties. CCS Concepts: ∙ Security and privacy → Logic and verification; ∙ Software and its engineering → Automated static analysis.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/08/2023

Capturing Smart Contract Design with DCR Graphs

Smart contracts manage blockchain assets. While smart contracts embody b...
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
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
01/31/2023

HoRStify: Sound Security Analysis of Smart Contracts

The cryptocurrency Ethereum is the most widely used execution platform f...
research
06/08/2023

SmartBugs 2.0: An Execution Framework for Weakness Detection in Ethereum Smart Contracts

Smart contracts are blockchain programs that often handle valuable asset...
research
12/03/2018

Debugging Smart Contract's Business Logic Using Symbolic Model-Checking

Smart contracts are a special type of programs running inside a blockcha...
research
01/21/2018

Static and Dynamic Verification of Relational Properties on Self-Composed C Code

Function contracts are a well-established way of formally specifying the...

Please sign up or login with your details

Forgot password? Click here to reset