Specification Mining for Smart Contracts with Automatic Abstraction Tuning

07/20/2018
by   Florentin Guth, et al.
0

Smart contracts are programs that manage digital assets according to a certain protocol, expressing for instance the rules of an auction. Understanding the possible behaviors of a smart contract is difficult, which complicates development, auditing, and the post-mortem analysis of attacks. This paper presents the first specification mining technique for smart contracts. Our technique extracts the possible behaviors of smart contracts from contract executions recorded on a blockchain and expresses them as finite automata. A novel dependency analysis allows us to separate independent interactions with a contract. Our technique tunes the abstractions for the automata construction automatically based on configurable metrics, for instance, to maximize readability or precision. We implemented our technique for the Ethereum blockchain and evaluated its usability on several real-world contracts.

READ FULL TEXT

page 1

page 2

page 3

page 4

09/06/2020

DEFECTCHECKER: Automated Smart Contract Defect Detection by Analyzing EVM Bytecode

Smart contracts are Turing-complete programs running on the blockchain. ...
03/26/2022

A Runtime Environment for Contract Automata

Realising contract-based applications from formal specifications with fo...
04/10/2020

Resources: A Safe Language Abstraction for Money

Smart contracts are programs that implement potentially sophisticated tr...
07/19/2021

Compositional Verification of Smart Contracts Through Communication Abstraction (Extended)

Solidity smart contracts are programs that manage up to 2^160 users on a...
08/15/2022

Smart Contract Synthesis Modulo Hyperproperties

Smart contracts are small but highly security-critical programs that imp...
05/31/2021

Composing Networks of Automated Market Makers

Automated market makers (AMMs) are automata that trade electronic assets...
01/25/2022

Scalable Typestate Analysis for Low-Latency Environments

Static analyses based on typestates are important in certifying correctn...