CS 251: Cryptocurrencies and Blockchain Technologies

Cryptocurrencies, blockchains, and smart contracts

Autumn 2020

The course covers all aspects of blockchains and cryptocurrencies, including distributed consensus, smart contracts, economics, scalability, and applications. We will focus on Bitcoin and Ethereum as case studies.


Course syllabus (and readings)
Course overview (grading, textbooks, coursework, exams)
CS251 Lectures: Monday, Wednesday:   2:30-3:50pm,   on Zoom
Sections: Friday:   14:30-15:20,   on Zoom.
CA mailing list: cs251ta@cs.stanford.edu


Homework #1:    [pdf]
Due: Monday, Sep. 28, 2020, via Gradescope (code: 92ZNG8)
Homework #2:    [pdf]
Due: Monday, Oct. 12, 2020, via Gradescope
Homework #3:    [pdf]
Due: Wedensday, Oct. 28, 2020, via Gradescope
Final exam:    [pdf]   [tex]  
Due: Wedensday, Nov. 18, 2020, via Gradescope


Project #1: Perform Bitcoin transactions using python-bitcoinlib
Assignment:    [instructions]   [starter code]
Due: Monday, Oct. 5, 2020
Project #2: Ethereum de-centralized app (Dapp)
Assignment:    [instructions]   [starter code]
Due: Wednesday, Oct. 21, 2020
Project #3: State channel battleship
Assignment:    [instructions]   [starter code]
Due: Wed, Nov. 4, 2020
Project #4: Using SNARKs
Assignment:    [instructions]   [starter code]
Due: Wed, Nov. 11, 2020

Course calendar