FLOC 2018: FEDERATED LOGIC CONFERENCE 2018
SMT-based Compile-time Verification of Safety Properties for Smart Contracts

Authors: Leonardo Alt and Christian Reitwiessner

Paper Information

Title:SMT-based Compile-time Verification of Safety Properties for Smart Contracts
Authors:Leonardo Alt and Christian Reitwiessner
Proceedings:SMT Informal Proceedings
Editors: Rayna Dimitrova and Vijay D'Silva
Keywords:Smart contracts, Formal verification, SMT, Ethereum, Blockchain, Safety properties
Abstract:

ABSTRACT. Ethereum smart contracts are programs that run inside a public distributed database called a blockchain. These smart contracts are used to handle tokens of value, can be accessed and analyzed by everyone and are immutable once deployed. Those characteristics make it imperative that smart contracts are bug-free at deployment time, hence the need to verify them formally. In this paper we describe our current efforts in building an SMT-based formal verification module within the compiler of Solidity, a popular language for writing smart contracts. The tool is seamlessly integrated into the compiler, where during compilation, the user is automatically warned of and given counterexamples for potential arithmetic overflow/underflow, unreachable code, trivial conditions, and assertion fails. We present how the component currently translates a subset of Solidity into SMT statements using different theories, and discuss future challenges such as multi-transaction and state invariants.

Pages:9
Talk:Jul 12 16:00 (Session 78E)
Paper: