Instructors: Neha Narula (narula@media.mit.edu) and Silvio Micali (silvio@csail.mit.edu)
Time: Fridays 1-4 PM
Place: 36-155
Contact: 6.892-sp17-staff@mit.edu
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 | |
3 | 2/24 | Neha | Bitcoin: mining and incentives | SoK sections 3 and 5, pooled mining, hardware | |
4 | 3/3 | Tadge Dryja and Maurice Herlihy | Payment channels and the Lightning Network, concurrency in smart contracts | 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 | ||
- | 3/31 | Spring Break -- no class | |||
8 | 4/7 | Silvio | Byzantine Agreement | Byzantine General's Problem | |
9 | 4/14 | Silvio | Algorand | ||
10 | 4/21 | Silvio | Algorand | ||
11 | 4/28 | Silvio | Algorand | ||
12 | 5/5 | Special topics | |||
13 | 5/12 | Special topics |
- Lab 1: Bitcoin treasure hunt
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