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.

Cryptocurrencies is offered as a special guest course by Haseeb Qureshi. Haseeb is a blockchain engineer, formerly at (previously, and before that battled payments fraud at Airbnb. He is a top cryptocurrencies writer on Medium and is collaborating with researchers at Cornell on blockchain frontrunning attacks.


  1. Cypherpunks, digital currencies, and the precursors to Bitcoin
  2. Cryptography 101: public-key cryptography, hashing, and Merkle trees
  3. Decentralized P2P networks and gossip protocols
  4. Blockchains, consensus, and building our first cryptocurrency
  5. Cryptoeconomics and incentive design
  6. Ethereum and smart contracts
  7. Smart contract development
  8. Smart contract security and the future of 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

This course is being offered as a special guest course by Haseeb Qureshi, running 6:30pm-9:00pm Wednesdays and 10am-12:30pm Sundays from 7 February to 4 March.

All classes are conducted in person at Bradfield, in small group seminar style. As such, places are strictly limited.

The total cost of tuition is is $2,800.

Apply now Still have questions? Contact us.

[email protected]
576 Natoma St
San Francisco, California
© 2016 Bradfield School of Computer Science