Instructors: Neha Narula ([email protected]) and Silvio Micali ([email protected])
Time: Fridays 1-4 PM
Place: 36-155 4-163
Contact: [email protected]
You are welcome to contact us via email. However, if you think your question would be useful for others to see, please file it as an issue in this repository!
Description: This course is about the principles and core techniques of shared public ledgers, with an emphasis on Bitcoin and distributed consensus. Topics include Bitcoin, Byzantine agreement, authenticated data structures, Lightning networks, proof of stake, and new techniques to implement a shared public ledger.
NOTE: The schedule is in flux and subject to change.
We are occasionally providing our lecture notes in the interest of transparency. Note that they are rough, probably have mistakes, and are almost definitely incomplete. In addition, they might not accurately reflect what happened in class. Use at your own risk!
# | Date | Lecturer | Topic | Readings | Lecture Notes |
---|---|---|---|---|---|
1 | 2/10 | Neha and Silvio | Introduction. Signatures, hashing, hash chains, e-cash, and motivation | Untraceable Electronic Cash | lecture 1 notes |
2 | 2/17 | Neha | Bitcoin: how it works | whitepaper, SoK sections 1, 2, and 4, how it works, script | scribed lecture 2 notes |
3 | 2/24 | Neha | Bitcoin: SPV, mining, and forks | SoK sections 3 and 5, pooled mining, hardware | scribed lecture 3 notes |
4 | 3/3 | Maurice Herlihy and Tadge Dryja | Concurrency in smart contracts, payment channels and the Lightning Network | Adding Concurrency to Smart Contracts | |
5 | 3/10 | Joe Bonneau | Proof-of-stake and alternatives to proof-of-work | On Stake and Consensus | |
6 | 3/17 | abhi shelat and Rafael Pass | Analysis of Bitcoin, Fruitchains | Analysis of the Blockchain Protocol in Asynchronous Networks, Fruitchains | |
7 | 3/24 | Alessandro Chiesa and Madars Virza | SNARKs and Zerocash | Zerocash: conference version, more detailed full version | snarks slides, zerocash slides |
- | 3/31 | Spring Break -- no class | |||
8 | 4/7 | Silvio | Byzantine Agreement | Byzantine General's Problem | Homework |
9 | 4/14 | Silvio | Byzantine Agreement | Byzantine Agreement Made Trivial, Aloni's proof of the need for unpredictable coins, Homework | |
10 | 4/21 | Silvio | Algorand, Graded Consensus | Homework, Homework2 | |
11 | 4/28 | Silvio | Algorand | ||
12 | 5/5 | Special topics | |||
13 | 5/12 | Neha | Correlated failures. Final project presentations |
Submission instructions: For problem sets, email your solutions to [email protected]
- Lab 1: Bitcoin treasure hunt
- Problem set 1: Byzantine Agreement, Dolev-Strong, definitions
- Problem set 2: April 14
- Problem set 3: April 21, Parallel BBA*
A final project is encouraged, but not required, as this is an experimental course. You may form groups of 1-4 students and prepare a presentation and a 4 page paper on one of the following:
- Design and implement an application or system (project ideas)
- Add a new feature to an existing system like Bitcoin, Ethereum, or another cryptocurrency or shared ledger implementation
- Propose a formalization in this space for a topic that has not been formalized yet
- Pose and solve an interesting problem
- Untraceable Electronic Cash
- Universal Electronic Cash
- Bitcoin whitepaper
- How the Bitcoin Protocol Actually Works
- Bitcoin Systemization of Knowledge
- Princeton textbook (pre-published online verison)
- Princeton class
- Stanford class
- UIUC class
- Byzantine General's Problem
- Bitcoin Mining Pools: A Cooperative Game Theoretic Analysis
- The Economics of Bitcoin Mining, or Bitcoin in the Presence of Adversaries
- Analysis of the Blockchain Protocol in Asynchronous Networks
- Fruitchains
- On Stake and Consensus