Colgate students are sharing their experiences conducting research with faculty members on campus and in the field. This post is by computer science major Michael McConville ’16, of Hingham, Mass.

I spent this summer researching the Bitcoin protocol with computer science professor Vijay Ramachandran. Bitcoin is an electronic cryptocurrency that has recently exploded in popularity. The total market cap is over $1 billion, spurred largely by speculation and illicit activity.

One of the most novel aspects of Bitcoin is that everyone has access to a ledger of every transaction ever made. This is a massive amount of data: more than 20 million transactions constituting over 11 GB of data.

Our first challenge was to turn this raw, unreadable data into something we could read, reason about, and analyze.

The second challenge, and the main focus of our work, is testing the limits of Bitcoin’s anonymity. Every transaction is publicly recorded, but the people participating in the transactions are represented by addresses like “19CA9fVwuEVSBa8WJkYg8cx2ydFbV3sjR5”.

Moreover, most people own more than one address. The first step in deanonymizing Bitcoin users is determining which addresses are owned by the same user.

There was an algorithm published that does this by analyzing transaction behavior. We added additional logic to this algorithm in order to improve it. There are about 15 million addresses in the Bitcoin market, which we have been able to condense into about 3.3 million users.

Now that we can more accurately model the market, we can begin to answer many interesting questions.

Bitcoin’s price recently peaked and crashed due to speculation; can we measure how user behavior changed during this period? Can we see where illegally obtained bitcoins are stored or sold? Can we predict the market price using transaction data?

This project has been both fascinating and a valuable learning experience. Bitcoin has interested me for years, and I now get to study it full-time in a paid research position.

Collaborating with Professor Ramachandran has taught me a lot about computer science and helped me develop fruitful research ideas.

Last spring, I took a class with him that focused largely on writing fast, efficient code. We are now working together to analyze a large amount of data, discussing and employing the same techniques we studied in class.

Applying the theory that I had learned in the classroom to solve real-world problems has strengthened my appreciation of its importance and made me excited to learn more.