This is the archived Spring 2015 version of the course. For the most recent version, see http://bitcoin-class.org.

Project Ideas

Below are some ideas for course projects. This is just a list meant to get you thinking about potential projects, not meant to limit or confine what you end up selecting for your project topic.

Blockchain Analysis. The blockchain contains information about every transaction that has ever been done with bitcoin. There are lots of interesting things that can be learned by analyzing the blockchain, such as investigating how people (including criminals) are using bitcoin, looking at how mining has changed over time, investigating transactions involving interesting bitcoin addresses, etc.

Better Bitcoin FAQ. The official bitcoin FAQ, https://bitcoin.org/en/faq, reads more like an advocacy document than an honest FAQ. Critique the answers given there, and write better answers for questions that need them, trying to provide a more balanced and sound perspective.

Money for Developing World. In their 2015 Annual Letter, Bill and Melinda Gates call out the development of mobile banking as one of the four key areas where breakthroughs over the next 15 years will dramatically improve the lives of the poor. Can cryptocurrencies be part of the solution to financial challenges in low-income areas? Compare existing approaches to mobile money such as M-Pesa (which charges transaction fees of 0.16% to 0.66%) to what could be done with cryptocurrency. Is bitcoin a suitable cryptocurrency for this purpose? If not, what would work better?

Weak Keys. Examine transactions in the blockchain for weak keys or mistakes in target addresses. Joppe W. Bos, J. Alex Halderman, Nadia Heninger, Jonathan Moore, Michael Naehrig, and Eric Wustrow. Elliptic Curve Cryptography in Practice, Financial Crypto 2014.

Predicting Bitcoin market price. What factors impact the price of Bitcoin? Devavrat Shah and Kang Zhang, Bayesian Regression and Bitcoin shows that this can be done over very short term. What about over longer time periods?

Novel uses of the Blockchain. Figure out other interesting things to do with the blockchain. Some examples: name registration, messaging and bitmessage, contracts, key-value store, etc.

Develop your own cryptocurrency. There are many possible ways to implement a cryptocurrency, with different advantages and trade-offs. Explore an interesting point in the design space.

Update Bitcoin Wiki Pages. Many of the Bitcoin Wiki pages are badly outdated (although it remains one of the most reliable sources for bitcoin information). As an example, when I prepared the class on mining pools (Feb 17), the largest mining pool was AntPool. But, the Pooled Mining page does not include it in the class of "Major" pools (9 top pools), and its own page has very little information. Pick a topic of importance and interest, and update and significantly improve the Bitcoin wiki pages on that topic.

Predicting Block 420,000. Predict what impact the halving of the subsidy at block 420,000 is likely to have. Analyze what happened when the previous subsidy halving happened, and how things have changed since then, to come up with a better idea what should happen at the next halving than we did in Class 11.

Committment-based Mining Pools. Are there better ways for mining pools to ensure members behave properly and get a fair share of proceeds than the current proof-of-work based approaches? That are the costs and benefits of alternate schemes.

More Sources

Nine awesome Bitcoin projects at Princeton (projects from Bitcoin and cryptocurrency technologies class at Princeton)

Look at things being discussed in /r/bitcoin and other bitcoin forums.

Cryptocurrency Startups