We have proposed a system for electronic transactions without relying on trust.

Satoshi Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System”

In October of 2008, a pseudonymous individual by the name of Satoshi Nakamoto published a white paper to a cryptography mailing list describing a protocol for a secure decentralized digital currency. Since the launch of the Bitcoin network in 2009, the market cap of cryptocurrencies have risen into the hundreds of billions of dollars, and the Bitcoin protocol has spawned a wave of innovation and experimentation in the domains of distributed systems, cryptography, and economics.

Some claim that the ideas behind blockchains will be integral to the future of money, governments, and the Internet. Whether or not those claims turn out to be true, it’s clear that cryptocurrencies an important area of technological innovation. In this course we’ll discuss them, examine in detail how they work, and build one for ourselves.

This course is designed to be an introduction to the theory and mechanics behind cryptocurrencies. It is intended for professional software engineers, and assumes a basic knowledge of programming and computer science. Beyond merely blockchains, the study of cryptocurrencies is inherently multidisciplinary, touching concepts from computer science, security, economics, and history. Though our primary focus will be on computer science, we’ll also delve into each of those disciplines where appropriate.


  1. Cypherpunks, digital money, and the precursors to Bitcoin
  2. Decentralization, P2P networks, and gossip protocols
  3. Cryptography 101: public-key cryptography, digital identities, hashing, and Merkle trees
  4. Byzantine fault-tolerance, Nakamoto consensus, and building a blockchain
  5. Cryptoeconomics and incentive design
  6. Smart contracts, Ethereum, and decentralized computation
  7. Smart contract development
  8. Smart contract security and scaling cryptocurrencies

Projects and exercises

Because this course is designed for professional software engineers, we will be exploring the material through building software. We will be building out a Bitcoin-esque cryptocurrency and all of its requisite components (a blockchain, cryptography, P2P networking, and proof-of-work). We’ll also build some Ethereum smart contracts using Solidity and analyze them for potential attacks.

Assumed knowledge

This course assumes confident general programming abilities. Some familiarity with data structures and networking is required. Some basic knowledge of cryptography and distributed systems is helpful but not assumed.

Schedule and price

Cryptocurrencies will next run twice per week for 4 weeks in August 2019. The total price is $1800.

Apply now Still have questions? Contact us.

Haseeb did an amazing job introducing cryptocurrencies by approaching the principles behind the core disciplines involved. This led to an aha! moment in class where history and technology aligned into place for the creation of bitcoin. Though originally I was a bit of a skeptic, I couldn’t help but leave the class with respect and excitement towards the technology grounded on my new understanding.

Manoj Dayaram, Software Engineer at Square Manoj Dayaram, Software Engineer at Square

This course is a must for anyone interested in diving deeper into cryptocurrencies! Haseeb did an incredible job breaking the complexity of the topic down into digestible pieces, and building my own cryptocurrency really solidified my understanding. I also appreciated his ability to intertwine the technological components with relevant economic and poltical considerations. I walked away feeling confident not only in my understanding of the technology and its applications but of the entire cryptocurrency ecosystem.

Anna Neyzberg, Software Engineer at Carbon Five Anna Neyzberg, Software Engineer at Carbon Five