Timelines

Assignment 1: Released on 14th September, due on 6th October, 12pm (noon ET)
Project proposal: Due on 29th September, 12 pm (noon ET)
Presentation topic preference: Submit by 18th October, EOD
Assignment 2: Released on 12th October, due on 29th October, EOD
Interim project report: Due on 8th November, EOD
Assignment 3: Released on 7th November, due on 23rd November, EOD

Lecture Schedule

Lecture 1, 30th August: Introduction to Blockchains
Presenter: Kartik Nayak
Notes, Slides

Lecture 2, 1st September: Bitcoin and Nakamoto Consensus
Presenter: Kartik Nayak
Reference reading: Bitcoin white paperBlog post on Nakamoto consensusHash functions (Katz-Lindell Chapter 6, Blog post)
Notes

Lecture 3, 6th September: Bitcoin and Nakamoto Consensus (continued)
Presenter: Kartik Nayak
Reference reading: same as lecture 2
Notes

Lecture 4, 8th September: Bitcoin and Nakamoto Consensus (continued), Defining Byzantine Broadcast
Presenter: Kartik Nayak
Reference reading: same as lecture 2 + Defining Consensus
Notes

Lecture 5, 13th September: Defining State Machine Replication, Dolev-Strong Protocol
Presenter: Kartik Nayak
Reference reading: Defining Consensus, SMR, Dolev-Strong paper, Dolev-strong blog post
Notes

Lecture 6, 15th September: Dolev-Strong (continued), An O(1)-round Byzantine Agreement Protocol for t < n/2
Presenter: Kartik Nayak
Reference reading: same as lecture 2 + paper
Notes, Slides

Lecture 7, 20th September: An O(1)-round Byzantine Agreement Protocol for t < n/2
Presenter: Kartik Nayak
Reference reading: Paper
Slides

Lecture 8, 22nd September: Communication Complexity of Byzantine Broadcast (Dolev-Reischuk bound)
Presenter: Kartik Nayak
Reference reading: Paper, Blog post
Notes

[Canceled] Lecture 9, 27th September: Setup assumptions, differences between synchrony, partial synchrony and asynchrony, DLS lower bound
Presenter: Kartik Nayak
Reference reading: setup assumptionsnetwork model, partial synchronyDLS paper, DLS blog post, FLP paper 

Lecture 10, 29th September: Continued from previous class
Presenter: Kartik Nayak
Reference reading: Same as previous class

Lecture 11, 4th October: Practical Byzantine Fault Tolerance
Presenter: Kartik Nayak
Reference reading: Paper, Video
Notes

Lecture 12, 6th October: Continued from previous class
Presenter: Kartik Nayak
Reference reading: Same as previous class
Notes

11th October: Fall Break

Lecture 13, 13th October: PBFT continued, HotStuff
Presenter: Kartik Nayak
Reference reading: Same as previous class, HotStuff, Blog post on variants

Lecture 14, 18th October: Solidity programming
Presenter: Sarisht Wadhwa
Slides

Lecture 15, 20th October: Player Replaceability
Presenter: Kartik Nayak
Reference reading: Algorand 
Notes

Lecture 16, 25th October: Player Replaceability contd + PoS
Presenter: Kartik Nayak
Reference reading: same as previous class
Notes

Lecture 17, 27th October: PoS continued, Prism
Presenter: Kartik Nayak, Pavan Chaudhari, Colin Birkenstock
Reference reading: Prism
Slides

Lecture 18, 1st November: Selfish Mining and Miner’s Dilemma
Presenter: Jason Liu, Alice Wu
Reference reading: Selfish Mining (paper, blog post), The Miner’s Dilemma – paper
Slides-SelfishMining, Slides-MinersDilemma

Lecture 19, 3rd November: Fruitchains
Presenter: Hannah Kubik
Reference reading: Fruitchains
Slides

Lecture 20, 8th November: MEV and Order Fairness
Presenter: Doug Macintosh, Zhitong Su
Reference reading: FlashBoys 2.0, Order Fairness
Slides-FlashBoys2.0Slides-OrderFairness

Lecture 21, 10th November: HTLC
Presenter: Yi Ying, Theo Chan
Reference reading: MAD-HTLCHe-HTLC, Blog post
Slides