We have proposed a system for electronic transactions without relying on trust.
— Satoshi Nakamoto
“Bitcoin: A Peer-to-Peer Electronic Cash System”
Since the launch of the Bitcoin network in 2009, blockchain technology has created an industry worth hundreds of billions of dollars and launched a wave of innovation in distributed systems, cryptography, and economics. Some believe that blockchains will be integral to the future of money, governments, and the Internet. Others claim that this is a transient bubble, and cryptocurrencies will be relegated to a footnote in history.
Whatever your opinion, this course is founded on the belief that cryptocurrencies are a subject worthy of rigorous study. In this course, we’re going to look at the history of cryptocurrencies, examine how they work, explore their applications, and ultimately build a blockchain and smart contracts for ourselves.
This course is designed to be an introduction to the many disciplines behind cryptocurrencies. It’s intended for programmers, and most of the lessons assume a basic knowledge of computer science. But cryptocurrencies are inherently multidisciplinary, touching concepts from computer science, economics, politics, and history. So even if you’re not a programmer, you can still get some value out of this course. You’ll probably get lost from time to time, but if I'm doing my job, you’ll still get the gist of it.
The course will be divided into nine modules, each with multiple lessons. The first three chapters are available now, and we will update the links below as new content goes live.
- The History of Bitcoin
- Cryptography 101
- P2P Networking
- Decentralized computation
- Smart contracts
Follow us at twitter.com/nakamoto to be notified when new content is available!
Who am I
You'll naturally want to know who I am and why I'm qualified to teach you about this whole crypto thing.
Before I got into crypto, I used to be a software engineer at Airbnb. I'd known about crypto for a long time, but it never really clicked it until after I played around with Ethereum in 2017. It was then that I realized: this is an entirely new paradigm of what money can be. Money is now software. I was sure that it would change the world. Ever since then, I've been chasing the blockchain.
After I caught the crypto bug, I worked at Earn.com (acquired by Coinbase), discovered an attack against a prominent token, and started a small crypto startup. I've taught a course on cryptocurrencies at the Bradfield School of Computer Science, have given many technical talks at developer meetups, and have helped inform people on the basics of crypto through my writings. Now I'm a managing partner at a crypto venture capital firm called Dragonfly Capital—meaning in my day job I read a lot of white papers, evaluate technical crypto projects, and decide which ones to invest in.
You'll notice this course is completely free, and there's a specific reason why I want it to be free. When I first got into crypto, I remember how hard it was to just learn what all this stuff was. All of the information was fragmented, there was so much jargon and history, and it wasn't clear in what order to even start. It took me a long time to finally get up to speed, but to this day this space still lacks high-quality, free, up-to-date materials. I wanted to fix that and make the educational resource that I wish I had when I started. That turned into this course.
How this course works
Although we’ll be learning about technology, this course will not be about learning any particular software. We won’t teach you how to format transactions or parse the logs of any specific blockchain. Those are just APIs, specifications, and libraries—so long as you understand the core ideas behind how they work, you'll be able to figure out the details on your own. But in order to compose or debug these systems, it is imperative that you deeply understand what they are doing underneath the hood.
Blockchains are rich and complex systems. But this course is not designed to be primarily academic—it is a course for builders. We're going to occasionally work with partial fictions and slowly build up toward a more complete picture. It's easier to see the elephant if you start with one limb and slowly zoom out. We will also tend to avoid academic jargon in favor of intelligibility, although we'll include links to more technical readings for those who want to dive deeper.
Most of the coding examples and assignments will be in Python. If you've never used Python, it may be worth going through some introductory material first to familiarize yourself.
Each lesson will have self-serve assignments tied to the course, both coding assignments and multiple choice questions to test your comprehension. If you want to get the most value out of this course, you should do the assignment after finishing each lesson. The term project will be to create your own fully-fledged cryptocurrency. Be sure to save your coding assignments along the way, as they will prove useful for your term project!
Thanks to Balaji S. Srinivasan, EJ Jung, Akash Khosla, Julian Koh, Daniel Kim, Ashwin Ramachandran, Pramod Viswanath, Georgios Konstantopoulos, and Frank Topbottom for their feedback on course materials.