Blockchains form a key infrastructure for decentralizing trust from a single entity to multiple different entities. Many fields such as finance, supply chain industry, and the design of central bank digital currencies today are considering the use of blockchains to decentralize trust. A critical component that underlies blockchain technology is consensus among a group of parties running it despite some of them being malicious. In this course, we will study classical results and recent advances in the design of consensus protocols that underlie blockchain technology today.

We will study the different problem formulations — Byzantine Broadcast, Byzantine Agreement, and state machine replication (or blockchains); different settings such as the permissionless and permissioned model; different modeling assumptions related to types of faults, network timing, use of cryptography, setup, adversarial adaptivity, and other assumptions (proof-of-work, proof-of-stake), and lower bounds under some of these settings. We will discuss different approaches (such as Nakamoto-style and classical BFT) to design scalable and practical protocols in terms of confirmation latency, transaction throughput, finality, energy consumption, and accountability for misbehaving participants. At the end of this course, you should understand the similarities and differences that underlie blockchain designs such as Paxos, PBFT, HotStuff (underlies Diem blockchain), BitcoinEthereumInternet Computer, and Algorand, among others.

Instructor: Kartik Nayak (
When: Tuesdays and Thursdays: 10.15 AM – 11.30 AM
Where: Physics 259
Office hours: Thursdays 11.30 AM – 12.30 PM, or by appointment
Office hour location: LSRC D340

Teaching assistant: Sravya Yandamuri (
Office hours: Tuesdays 1.00 PM – 2.00 PM, or by appointment
Office hour location: Zoom

Piazza: We will be using Piazza for discussions
Gradescope: Assignments will be shared through Gradescope.
Warpwire: Lectures will be uploaded on Warpwire.

Textbooks and resources

The following textbooks and resources will be helpful:
Decentralized thoughts: a decentralized blog
Bitcoin and cryptocurrency technologies
Foundations of blockchains

Evaluation criteria (subject to change):

Class participation: 15%
Assignments: 30%
Class presentation: 20%
Project: 35%
Blog post: 5% (extra credit)