Advanced Topics in Computer Science:
Bitcoin and Cryptocurrency Technologies (Fall 2014)

« Teaching — Arvind Narayanan

Monday/Wednesday 3:00–4:20 pm, 306 Sherrerd.

Undergrads welcome; you'll need to get this form signed by me on the first day of class.

Sign up on Piazza.


Underlying the widespread public interest in Bitcoin is an intricate balance of technology, market forces, and social norms. Bitcoin serves as an excellent case study for learning many core CS concepts — cryptography, distributed systems, game theory, programming languages, and system security.

Topics: first-generation cryptocurrencies, how Bitcoin achieves decentralization, mechanics of Bitcoin, Bitcoin as a currency, mining, anonymity, community and politics, Altcoins, Bitcoin as a platform, the future of Bitcoin.

The first half of the course will be "flipped:" students will watch online lectures and class time will be used for discussion.

Activities: critical discussion of lectures and readings, student presentations, programming assignments, final project on a topic of your choosing.


The online lectures are by Joseph Bonneau, Edward Felten, and me, with Andrew Miller guest lecturing. The videos will be online soon.

  1. Intro to Crypto and Cryptocurrencies (Felten)
  1. How Bitcoin Achieves Decentralization (Narayanan)
  1. Mechanics of Bitcoin (Bonneau)
  1. How to Store and Use Bitcoins (Felten)
  1. Bitcoin mining (Bonneau)
  1. Bitcoin and anonymity (Narayanan)
  1. Community, Politics, and Regulation (Felten)
  1. Alternative Mining Puzzles (Miller)
  1. Bitcoin as a platform (Bonneau)
  1. Altcoins and the Cryptocurrency Ecosystem (Miller)
  1. The future of Bitcoin? (Narayanan)