Course information for 6.892 (Spring 2017)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

6.892 Spring 2017

Shared Public Ledgers: Cryptocurrencies, Blockchains, and Other Marvels

NOTE: This document is a draft and is subject to change.


Instructors: Neha Narula ( and Silvio Micali (

Time: Fridays 1-4 PM

Place: 36-155 4-163


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.

course announcement


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

Labs and Problem Sets

Submission instructions: For problem sets, email your solutions to

Final Projects

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:

  1. Design and implement an application or system (project ideas)
  2. Add a new feature to an existing system like Bitcoin, Ethereum, or another cryptocurrency or shared ledger implementation
  3. Propose a formalization in this space for a topic that has not been formalized yet
  4. Pose and solve an interesting problem

Readings and Resources