Project Description

The goal of this project is to detect contracts on the Ethereum blockchain that implement known scams, for example, Ponzi schemes. A Ponzi scam (or pyramid scheme) is a type of investment scam in which top-level participants in a hierarchical network recruit and profit from an expanding base of defrauded newer participants. Ponzi schemes have existed for a long time, but they have recently emerged in a new form: as smart contracts on blockchains such as Ethereum. Smart contracts are a great medium for scams. Blockchains are decentralized systems, and hence, they cannot easily be dismantled by law enforcement agencies. They can instantaneously ingest and distribute payments from victims across the globe. And they provide privacy protection for criminals in the form of pseudonymous addresses. Unsurprisingly, there are hundreds of Ponzi contracts on the Ethereum blockchain, and studies have estimated that they are responsible for tens of millions of dollars of annual losses for victims.

The first task will be to find known scam contracts in the wild. For this, the students will have to familiarize themselves with the Ethereum ecosystem and understand how to use online resources such as Etherscan and DAppRadar. The second task will be to obtain information about these contracts and related transactions. Accessing the code for smart contracts is relatively straightforward since they are publicly stored on the blockchain and easily available via tools such as Etherscan. However, getting access to all transactions related to a specific contract is more involved. For this, students will have to develop a scanner that lists the entire history of transactions on the blockchain and then filter those that involve the contracts that they had identified in the previous step. The final task is to build a classifier for contracts. For this, students will have to come up with interesting features that one could use for our machine learning approach. This includes features of the code itself but also features related to the transactions on the blockchain. Students will develop code that ingests transaction data from the database and computes feature values for each contract. These feature values then serve as the inputs to a standard machine learning algorithm, which we will use to build a classifier.

Team Members

  • James Fu
  • Michelle Zimmermann
  • Jacey Buchner

Professor and Mentors

  • Prof. Christopher Kruegel and Prof. Giovanni Vigna
  • Grad mentor: Fabio Gritti and Nicola Ruaro

Links to Proposals and Presentation

Individual Logs