CS 251: Bitcoin and Cryptocurrencies

Course syllabus and readings

Fall 2020

Every lecture is accompanied by readings that support and expand on what was covered in the lecture. In the listings below we use NBFMG to refer to the course textbook Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction.

 
Lecture 1:
Mon 9/14/20
(DB)
Intro to cryptography & cryptocurrencies   [pdfpptx]
References:
  • NBFMG Chapter 1

Bitcoin mechanics
 
Lecture 2:
Wed 9/16/20
(DB)
Bitcoin nuts and bolts   [pdfpptx]
References:
 
Lecture 3:
Mon 9/21/20
(DB)
Wallets: managing and protecting crypto assets   [pdfpptx]
References:

Consensus protocols
 
Lecture 4:
Wed 9/23/20
(BB)
Consensus: network models, corruption tolerance, sybil resistance   [pdfpptx]
References:
 
Lecture 5:
Mon 9/28/20
(BB)
Nakamoto Consensus: security, attacks and incentives   [pdfpptx]
References:
 
Lecture 6:
Wed 9/30/20
(BB)
Randomness beacons, VDFs, and applications to consensus   [pdfpptx]
References:

Ethereum and decentralized applications
 
Lecture 7:
Mon 10/ 5/20
(DB)
Ethereum: Decentralized Apps, EVM, and the Ethereum blockchain   [pdfpptx]
References:
 
Lecture 8:
Wed 10/ 7/20
(DB)
Programming in solidity   [pdfpptx]
References:

Decentralized finance and economics
 
Lecture 9:
Mon 10/12/20
(Guest)
Stablecoins and oracles (Dan Robinson, Georgios Konstantopoulos, Paradigm)   [pdf]
References:
 
Lecture 10:
Wed 10/14/20
(Guest)
Decentralized exchanges and lending (Ali Yahya, Eddy Lazzarin, a16z)   [pdf]
References:
 
Lecture 11:
Mon 10/19/20
(Guest)
Legal aspects and regulation (Marvin Ammori, Protocol Labs)   [pdf]
References:

Scaling the blockchain
 
Lecture 12:
Wed 10/21/20
(BB)
Scaling the blockchain: payment channels and state channels   [pdfpptx]
References:
 
Lecture 13:
Mon 10/26/20
(BB)
Scaling the blockchain using optimism and using SNARKs   [pdfpptx]
References:

Privacy on a public blockchain
 
Lecture 14:
Wed 10/28/20
(BB)
Privacy: de-anonymizing the blockchain and mixing   [pdfpptx]
References:
 
Lecture 15:
Mon 11/ 2/20
(DB)
zkSNARKs: what they are and how they are used   [pdfpptx]
References:
 
Lecture 16:
Wed 11/ 4/20
(DB)
zkSNARK applications: confidential transactions and Zcash   [pdfpptx]
References:
 
Lecture 17:
Mon 11/ 9/20
(DB)
Constructing a preprocessing SNARK   [pdfpptx]
References:
 
Lecture 18:
Wed 11/11/20
(BB)
Recursive SNARKs   [pdfpptx]
References:
  • zkzkRollup: private proof-based Rollup using one level of recursion.
  • Mina, compressing the blockchain using many levels of recursion.

Final topics
 
Lecture 19:
Mon 11/16/20
(DB)
Crypto tricks: Signature aggregation, Taproot, Accumulators   [pdfpptx]
References:
 
Lecture 20:
Wed 11/18/20
(Guest)
The future of blockchains (Fred Ehrsam and Matt Huang, Paradigm)
 
Holiday:   
Mon 11/23/20
Thanksgiving
 
Holiday:   
Wed 11/25/20
Thanksgiving