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

Learning about distributed systems: where to start?

Hints for Distributed Systems Design

Foundational distributed systems papers

Metastable failures in the wild

The demise of coding is greatly exaggerated

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

The end of a myth: Distributed transactions can scale

SIGMOD panel: Future of Database System Architectures

Why I blog

There is plenty of room at the bottom