CSE 610 Distributed Consensus, Decentralized Ledgers, and Blockchains

This semester I am teaching a small research course on Distributed Consensus, Decentralized Ledgers, and Blockchains.

Blockchains! You?

One should be able to call bullshit when one sees bullshit. In this blog, I did that several times for certain claims about blockchains technology. 

But, just because of some stupid/hyped-up claims and some first-generation inefficient implementations, it is unacceptable to make fun of and ridicule the entire blockchains field. (Yes, it is definitely a field, when a Turing Award winner and a strong candidate for Turing Award publishes papers on the topic.) A researcher should not use a broad brush to paint. Truth is multidimensional.

Even when parts of a field is impractical right now, that doesn't justify putting the entire field down. P2P was impractical. It lost to the centralized model. But the best ideas from those work found their way to traditional datacenter computing. The distributed hash table idea got adopted for distributed key-value stores. Bittorrent saw some use in datacenter application-layer networking.
In this two minute video Bertram Gilfoyle makes this point very well. Here is the entire set of slides he used in the presentation, they are hilarious. I will show these to my class tomorrow.

Course content

My blockchains course starts with classical distributed consensus problem definition and algorithms, and then considers the decentralized consensus problem in permissioned/permissionless setting with Byzantine participants.

The course covers the fundamental concepts for the design and analysis of such distributed consensus algorithms including: Paxos, PBFT, Tendermint, HotStuff, Nakamoto consensus algorithms. It also discusses formal verification of smartcontracts using TLA+ specification language and model checker. Finally, it reviews state-of-the-art blockchain systems and applications.

1. Distributed consensus: consensus problem, synchronous and asynchronous setups, Paxos, Ben-Or, Texel, PBFT

2. Blockchain protocols: blockchain basics, Nakamoto, Tendermint, HotStuff, QSCAvalanche

3. Blockchain systems: Bitcoin, Ethereum, Libra, Hyperledger, DFinity, ConcordBFT

4. Smartcontracts: Smartcontract basics, creating safe smartcontracts, formal specification of smartcontracts, crosschain deals and adversarial commerce

5. Applications: Internet of value, blockchaindb, multiparty collaboration

The class will have one midterm, several assignments, and one project. The project qualifies as MS project. Two students can form a team and choose a project that involves (1) TLA+ modeling and Paxi implementation of a blockchain protocol or (2) TLA+ modeling and deployment of a smartcontract on a blockchain platform.

There is no required textbook for the course, however ample reading material (i.e., research papers) will be assigned. A suitable reference book that covers the blockchain basics is https://bitcoinbook.cs.princeton.edu (free preprint at https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf)

Comments

Popular posts from this blog

Hints for Distributed Systems Design

Learning about distributed systems: where to start?

Making database systems usable

Looming Liability Machines (LLMs)

Foundational distributed systems papers

Advice to the young

Linearizability: A Correctness Condition for Concurrent Objects

Scalable OLTP in the Cloud: What’s the BIG DEAL?

Understanding the Performance Implications of Storage-Disaggregated Databases

Designing Data Intensive Applications (DDIA) Book