CS590.01: Blockchains, Cryptocurrencies, and Smart Contracts (2022 Fall)
Updated on: Mar 30, 2022
Many of you asked for more information about CS590.01 so I’m sharing this flyer.
Pre-reqs
- A significant part of homework and lab is about Solidity programming – we will provide learning materials for Solidity but prior programming experiences with Solidity or other languages certainly will help.
- You will need to write, e.g., Python scripts to run simulations.
- Working knowledge of discrete math and probability is recommended (e.g., to understand Bitcoin mining, we will use facts like “what is the distribution of the min of two exponential random variables?”).
Tentative syllabus
- Course Intro
- Bitcoin Overview
- Bitcoin Overview II
- Basic Crypto I
- Basic Crypto II
- UTXOs
- Classic Consensus
- Nakamoto Consensus
- Advanced Scripts
- Bitcoin Blocks and Mining
- Payment channels I
- Payment channels II
- Smart Contract Intro
- Smart Contract Bugs
- Key Management
- Oracles
- Decentralized Exchanges (DEXes)
- DeFi (Finance)
- Selected topics (TBD Maybe: privacy-preserving techniques)
- Selected topics (TBD Maybe: stateless smart contracts
Workload
Note
I’ve taught a seminar course last year on related topics (https://crypto-n-crypto.netlify.app/), but note that the 2022 Fall version will be very different in terms of the scope and depth.