Decentralized systems engineering
CS-438
Lectures in-person: every Monday 10:15-12:00 in INF 1 (except September 16)
Exercise in-person: every Friday 15:15-17:00 in INJ218 (lecture on September 13, in CM1 3)
Unsupervised collaboration: every Monday, 13:15-15:00 in INM200
Contact: cs438@groupes.epfl.ch
Office hours: For in-person questions about the course in general, Pierluca Borsò will be available Mondays 13:00-13:30 in BC 217 (subject to prior appointment)
- Announcements (Forum)
- SpeakUp link (URL)
- Grading Description (File)
- Class, theory & lectures (Forum)
- Homework 0 forum (Forum)
- Homework 1 forum (Forum)
- Homework 2 forum (Forum)
- Homework 3 Forum (Forum)
- Project forum (Forum)
- Group Project descriptions (File)
September 9 - September 15
Week 1.
Monday, September 9: Introduction to course and homework
The Monday lecture will be at the regular time and location, 10:15-12:00 in INF 1.
Exceptionally, Friday lecture:
Friday, September 13: Decentralized communication: Usenet, broadcast, and gossip algorithms
The Friday lecture will be in CM1 3, 15:15-17:00
- Lecture 1 - slides (File)
- Lecture 1 - video (URL)
- Lecture 2 - slides (File)
- Lecture 2 - video (URL)
- Weekly hours (Choice)
September 16 - September 22
No class on Monday (jeûne fédéral).
Exercise session on Friday.
- Assigned reading: "Randomized Rumor Spreading" (File)
- Optional reading: "Epidemic Algorithms for Replicated Database Maintenance" (File)
- Weekly hours (Choice)
September 23 - September 29
Week 3: Flooding, Search and Routing
ATTENTION: Additional engineering lecture: Go Thinking and Best Practices (CM1 4, Monday, 13h15 - 15h00)
- Lecture 3 - Gossip & Unstructured Search (File)
- Lecture 3 - video (URL)
- "Go" lecture - video (URL)
- Assigned reading: "BubbleStorm: Resilient, Probabilistic, and Exhaustive Peer-to-Peer Search" (File)
- Weekly hours (Choice)
September 30 - October 6
Week 4: structured search and compact routing
- Lecture 4 - Routing & Structured Search (File)
- Lecture 4 - video (URL)
- Assigned reading: "Ad-hoc On-Demand Distance Vector Routing" (File)
- Assigned reading: "Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications" (File)
- Optional reading: "DSDV Routing over a Multihop Wireless Network of Mobile Computers" (File)
- Optional reading - The Babel Routing Protocol (RFC 8966) (URL)
- Optional reading; "Kademlia: A Peer-to-Peer Information System Based on the XOR Metric" (File)
- Optional reading: "A Survey and Comparison of Peer-to-Peer Overlay Network Schemes" (File)
- Optional reading: "Compact routing schemes" (File)
- Optional reading: "Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems" (File)
- Weekly hours (Choice)
October 7 - October 13
Week 5: distributed storage: BitTorrent, IPFS and CRDTs
- Lecture notes - Decentralized Storage (File)
- Lecture 5 - video (URL)
- Mandatory reading: "Incentives Build Robustness in BitTorrent" (File)
- Mandatory reading: CAP Twelve Years Later: How the "Rules" Have Changed (URL)
- Mandatory reading: "Ivy: A Read/Write Peer-to-Peer File System" (File)
- Optional reading: IPFS - Content Addressed, Versioned, P2P File System (File)
- Optional reading: Peritext: A CRDT for Rich-Text Collaboration (URL)
- Optional reading: "SplitStream: High-Bandwidth Multicast in Cooperative Environments" (File)
- Optional reading: "Storage management and caching in PAST, a large-scale, persistent peer-to-peer storage utility" (File)
- Optional reading: "Wide-area cooperative storage with CFS" (File)
- Optional reading: "Secure Untrusted Data Repository (SUNDR)" (File)
- Weekly hours (Choice)
- Choose your group (Group choice)
October 14 - October 20
Week 6: replication and consensus
- Lecture 6 - video (URL)
- Lecture notes - Replication & Consensus (File)
- Assigned reading: "Paxos Made Simple" (File)
- Understanding Raft - Visually (URL)
- Optional reading: "Replicated Data Consistency Explained Through Baseball" (File)
- Optional reading: "In Search of an Understandable Consensus Algorithm" (File)
- Optional reading: "Que Sera Consensus: Simple Asynchronous Agreement with Private Coins and Threshold Logical Clocks" (File)
- Optional reading: Spanner - Google's Globally-Distributed Database (File)
- Optional reading: "Dynamo: Amazon’s Highly Available Key-value Store" (File)
- Weekly hours (Choice)
October 21 - October 27
October 28 - November 3
Week 7: Threat modelling & threshold cryptography
- Lecture notes - Threat modeling & threshold crypto (File)
- Lecture 7 - video (URL)
- ArsTechnica Primer on Elliptic Curve Cryptography (URL)
- Weekly hours (Choice)
November 4 - November 10
Week 8: Anonymous communication
- Lecture notes - Anonymous Communication (File)
- Lecture 8 - video (URL)
- Assigned reading: "Tor: The Second-Generation Onion Router" (File)
- Assigned reading: "The Dining Cryptographers Problem: Unconditional Sender and Recipient Untraceability" (File)
- Optional reading: "Proactively Accountable Anonymous Messaging in Verdict" (File)
- Optional reading: "Riposte: An Anonymous Messaging System Handling Millions of Users" (File)
- Optional reading: "Atom: Horizontally Scaling Strong Anonymity" (File)
- Optional reading: "Yodel: Strong Metadata Security for Voice Calls" (File)
- Optional reading: "AnonRep: Towards Tracking-Resistant Anonymous Reputation" (File)
- Weekly hours (Choice)
November 11 - November 17
Week 9: Sybil attacks and resistance
- Lecture notes - Sybil Attacks & Resistance (File)
- Lecture 9 - video (URL)
- Assigned reading: "The Sybil Attack" (File)
- Assigned reading: "An Offline Foundation for Online Accountable Pseudonyms" (File)
- Optional reading: "Pricing via Processing or Combatting Junk Mail" (File)
- Optional reading: "SybilLimit: A Near-Optimal Social Network Defense against Sybil Attacks" (File)
- Optional reading: "Sybil-Resilient Online Content Voting" (File)
- Optional reading: "Whanau: A Sybil-proof Distributed Hash Table" (File)
- Optional reading: "DSybil: Optimal Sybil-Resistance for Recommendation Systems" (File)
- Optional reading: "Who Watches the Watchmen? A Review of Subjective Approaches for Sybil-resistance in Proof of Personhood Protocols" (URL)
- Optional reading: "Identity and Personhood in Digital Democracy: Evaluating Inclusion, Equality, Security, and Privacy in Pseudonym Parties and Other Proofs of Personhood" (URL)
- Weekly hours (Choice)
November 18 - November 24
Week 10: permissionless consensus, distributed ledgers, and cryptocurrencies
- Lecture 10 - video (URL)
- Lecture notes - TLC, BFT & Bitcoin (File)
- Optional reading: Cloudflare - A Byzantine failure in the real world (URL)
- Optional reading: "Practical Byzantine Fault Tolerance" (File)
- Optional reading: "HotStuff: BFT Consensus with Linearity and Responsiveness" (File)
- Assigned reading: "Efficient Data Structures for Tamper-Evident Logging" (File)
- Assigned reading: "Bitcoin: A Peer-to-Peer Electronic Cash System" (File)
- Optional reading: "Untraceable electronic cash" (File)
- Optional reading: "Zerocash: Decentralized Anonymous Payments from Bitcoin" (File)
- Optional reading: "The State of Cryptocurrency Mining" (URL)
- Weekly hours (Choice)
November 25 - December 1
Week 11: smart contracts and applications
- Lecture 11 - video (URL)
- Lecture notes - smart contracts (File)
- Optional reading: "Ethereum: A Secure Decentralised Generalised Transaction Ledger" (URL)
- Optional reading: "The Law and Legality of Smart Contracts" (File)
- Optional reading: "Making Smart Contracts Smarter" (File)
- Optional reading: "Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts" (File)
- Optional reading: "Experiments in Algorithmic Governance: A history and ethnography of “The DAO,” a failed Decentralized Autonomous Organization" (File)
- Optional reading: "Ethereum is a Dark Forest" (URL)
- Optional reading: "Flash Boys 2.0: Frontrunning in Decentralized Exchanges, Miner Extractable Value, and Consensus Instability" (File)
- Optional reading: "Rethinking General-Purpose Decentralized Computing" (File)
- Weekly hours (Choice)
December 2 - December 8
Week 12: advanced blockchain architectures
- Lecture notes - advanced blockchain architectures (File)
- Lecture notes - design patterns (Page)
- Lecture 12 - part 1: video (URL)
- Lecture 12 - part 2: design patterns - video (URL)
- Assigned reading: "Algorand: Scaling Byzantine Agreements for Cryptocurrencies" (File)
- Assigned reading: "OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding" (File)
- Optional reading: "CALYPSO: Private Data Management for Decentralized Ledgers" (File)
- Optional reading: "Enhancing Bitcoin Security and Performance with Strong Consistency via Collective Signing" (File)
- Optional reading - Chainiac: Proactive Software-Update Transparency via Collectively Signed Skipchains and Verified Builds (File)
- Optional reading; "Fast and secure global payments with Stellar" (File)
- Optional (engineering) reading - Scalog: Seamless Reconfiguration and Total Order in a Scalable Shared Log (File)
- Optional (engineering) reading - Spanner: Google’s Globally-Distributed Database (File)
- Weekly hours (Choice)
December 9 - December 15
- Lecture 13 - Quality (File)
- Lecture 13 - video (URL)
- Jepsen - Distributed Systems Safety Testing (URL)
- Weekly hours (Choice)
December 16 - December 22
Week 14: democratic decentralization: online voting and deliberation
- Lecture 14 - video (URL)
- Assigned reading: "Scantegrity: End-to-End Voter-Verifiable Optical-Scan Voting" (File)
- Optional reading: "STAR-Vote: A Secure, Transparent, Auditable, and Reliable Voting System" (File)
- Optional reading: "Verifiable Internet Voting in Estonia" (File)
- Optional reading: "Coercion-Resistant Electronic Elections" (File)
- Optional reading: "Civitas: Toward a Secure Voting System" (File)
- Optional reading: "A new approach towards coercion-resistant remote e-voting in linear time" (File)
- Optional reading: "Efficient Vote Authorization in Coercion-Resistant Internet Voting" (File)
- Optional reading: "A Smart Contract for Boardroom Voting with Maximum Voter Privacy" (File)
- Optional reading: "Statement Voting" (File)
- Optional reading: "On-Chain Vote Buying and the Rise of Dark DAOs" (URL)
- Optional reading: "On EOS Blockchain, Vote Buying Is Business as Usual" (URL)
- Weekly hours (Choice)