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. At a high-level, blockchain consists of stack of three key layers:

  • Layer 1 – Consensus: agreement among a group of parties running it despite some of them being malicious. 
  • Layer 2 – Scalability: Solutions for scaling beyond layer 1 techniques
  • Layer 3 – Application layer: Decentralized applications

In the course, we will discuss these layers of the blockchain stack. A brief outline of tentative topics to cover (subject to change):

  • Permissioned consensus
    • Different problem formulations
    • Different networking models and adversarial models
    • Different assumptions wrt cryptography and network timing
    • Classical protocols and impossibility results
  • Permissionless consensus
    • Nakamoto’s longest chain consensus, committee based protocols
    • Mechanisms for sybil resistance: proof of work, proof of stake
    • Other aspects: difficulty adjustment, selfish mining, VRFs,
  • Approaches to improve layer 1
    • Metrics: transaction throughput, latency, communication complexity, finality, energy consumption
    • Accountability: detecting and punishing misbehaving participants
    • Fairness and MEV
    • Tentative: Privacy mechanisms in Zcash
  • Case studies for some layer 1 protocols: some subset of PBFT, HotStuff (underlies Diem blockchain), Tendermint, BitcoinEthereumInternet Computer, Avalanche, Solana, and Algorand.
  • Layer 2 solutions in Bitcoin and Ethereum
    • Payment channels, HTLC, lightning network, light clients
    • Optimistic and zk-rollups
  • Decentralized finance primitives and applications
    • Stablecoins, oracles, automated market makers

Instructor: Kartik Nayak (kartik@cs.duke.edu)
When: Tuesdays and Thursdays: 10.15 AM – 11.30 AM
Where: LSRC D106
Office hours: Monday 2.00 PM – 3.00 PM, or by appointment
Office hour location: https://duke.zoom.us/j/98259428542

Teaching assistant: Sarisht Wadhwa (sarisht.wadhwa@duke.edu)
Office hours: Tuesday/Thursday 5.00 PM – 6.00 PM
Office hour location: D309 (Tuesday) / https://duke.zoom.us/j/93131567874

Piazza: We will be using Piazza for discussions
Gradescope: Assignments will be shared through Gradescope


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%