Specification Mining for Smart Contracts with Automatic Abstraction Tuning

by   Florentin Guth, et al.

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.


page 1

page 2

page 3

page 4


DEFECTCHECKER: Automated Smart Contract Defect Detection by Analyzing EVM Bytecode

Smart contracts are Turing-complete programs running on the blockchain. ...

A Runtime Environment for Contract Automata

Realising contract-based applications from formal specifications with fo...

Resources: A Safe Language Abstraction for Money

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

Compositional Verification of Smart Contracts Through Communication Abstraction (Extended)

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

Smart Contract Synthesis Modulo Hyperproperties

Smart contracts are small but highly security-critical programs that imp...

Composing Networks of Automated Market Makers

Automated market makers (AMMs) are automata that trade electronic assets...

Scalable Typestate Analysis for Low-Latency Environments

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