Decentralized systems engineering
CS-438
All rooms are subject to last-minute changes due to the Double Deck construction project, always check the online schedule.
Lectures in-person: every Monday 10:15-12:00 in INF1 (except September 22)
Exercise in-person: every Friday 15:15-17:00 in SG0221
Unsupervised collaboration: every Monday, 13:15-15:00 in MEB331
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 209 (subject to prior appointment)
- SpeakUp link (URL)
- Grading Description (File)
- Mediaspace channel for recordings of past lectures (URL)
- Group Project descriptions (File)
- 2024 exam with solutions (File)
Week 1.
! Do check online for the latest room changes !
Monday, September 8: Introduction to course and homework
The Monday lecture will be at the regular time and location, 10:15-12:00 in INF 1.
Exceptionally, Monday afternoon lecture:
Monday, September 8: Decentralized communication: Usenet, broadcast, and gossip algorithms
The lecture will be in the Monday afternoon slot MEB331, 13:15-15:00
- Lecture 1 - slides (File)
- Lecture 1 - video (URL)
- Lecture 2 - slides (File)
- Lecture 2 - video (URL)
- RFC1036: Standard for Interchange of USENET Messages (URL)
- Weekly hours (Choice)
- Optional Reading: "I Remember UseNet" (URL)
Week 2: Flooding, Search and Routing
- Lecture 3 - Gossip & Unstructured Search (File)
- Lecture 3 - video (URL)
- Assigned reading: "Randomized Rumor Spreading" (File)
- Optional reading: "Epidemic Algorithms for Replicated Database Maintenance" (File)
- "Go" lecture - video (URL)
- Weekly hours (Choice)
- Assigned reading: "BubbleStorm: Resilient, Probabilistic, and Exhaustive Peer-to-Peer Search" (File)
- Weekly hours (Choice)
Week 4: structured search and compact routing
- Lecture 4 - Routing & Structured Search (File)
- Lecture 4 - video (URL)
- Lectures notes (for note taking) (File)
- 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)
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)
Week 6: replication and consensus
- Lecture notes - Replication & Consensus (File)
- Lecture 6 - video (URL)
- 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)
- Choose your group (Group choice)
- Weekly hours (Choice)
Week 7: Threat modelling & threshold cryptography
- Lecture notes - Threat modeling & threshold crypto (File)
- Lecture 7 - video (URL)
- Weekly hours (Choice)
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)
Week 9: Sybil attacks and resistance
- Lecture notes - Sybil Attacks & Resistance (File)
- Lecture 9 - video (URL)
- Assigned reading: "The Sybil Attack" (File)
- Optional 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)
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)
Week 11: smart contracts and applications
- Lecture 11 - video (URL)
- Lecture notes - cryptocurrencies and 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)
Week 12: advanced consensus and blockchain architectures
- Lecture notes - advanced consensus and blockchain architectures (File)
- Lecture 12: video (URL)
- Assigned reading - QuePaxa: Escaping the Tyranny of Timeouts in Consensus (File)
- Assigned reading: "Algorand: Scaling Byzantine Agreements for Cryptocurrencies" (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)
- Lecture 13 - Quality (File)
- Lecture 13.1 - video (URL)
- Lecture 13.2 - Video (URL)
- Jepsen - Distributed Systems Safety Testing (URL)
- Weekly hours (Choice)
Week 14: democratic decentralization: online voting and deliberation
+ Guest lecture by the Swiss Post E-Voting team
- Lecture 14 - video (incl. Swiss Post guest lecture) (URL)
- Guest Lecture - Swiss Post E-Voting (File)
- 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: "TRIP: Coercion-resistant Registration for E-Voting with Verifiability and Usability in Votegral" (File)
- Optional reading: "E-Vote Your Conscience: Perceptions of Coercion and Vote Buying, and the Usability of Fake Credentials in Online 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)