Finding The Greedy, Prodigal, and Suicidal Contracts at Scale

Ivica Nikolic, Aashish Kolluri, Ilya Sergey, Prateek Saxena, Aquinas Hobor
2/16/2018
cs.CR

Official code: ivicanikolicsg/MAIAN (565 stars, MIT, last commit 2023-10-22).

Abstract

Smart contracts---stateful executable objects hosted on blockchains like Ethereum---carry billions of dollars worth of coins and cannot be updated once deployed. We present a new systematic characterization of a class of trace vulnerabilities, which result from analyzing multiple invocations of a contract over its lifetime. We focus attention on three example properties of such trace vulnerabilities: finding contracts that either lock funds indefinitely, leak them carelessly to arbitrary users, or can be killed by anyone. We implemented MAIAN, the first tool for precisely specifying and reasoning about trace properties, which employs inter-procedural symbolic analysis and concrete validator for exhibiting real exploits. Our analysis of nearly one million contracts flags 34,200 (2,365 distinct) contracts vulnerable, in 10 seconds per contract. On a subset of3,759 contracts which we sampled for concrete validation and manual analysis, we reproduce real exploits at a true positive rate of 89%, yielding exploits for3,686 contracts. Our tool finds exploits for the infamous Parity bug that indirectly locked 200 million dollars worth in Ether, which previous analyses failed to capture.

View on arXivView PDF

Code Implementations(1)

MIT

MAIAN: automatic tool for finding trace vulnerabilities in Ethereum smart contracts

565160Python, SolidityMar 12, 20183 years agoMIT

Similar Papers

Cite this paper

@article{nikolic2018finding,
  title  = {Finding The Greedy, Prodigal, and Suicidal Contracts at Scale},
  author = {Ivica Nikolic and Aashish Kolluri and Ilya Sergey and Prateek Saxena and Aquinas Hobor},
  year   = {2018},
  eprint = {1802.06038},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1802.06038}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1802.06038.svg)](https://codeofpaper.com/paper/1802.06038)

Discussion