Curriculum
  /  
Descriptions
ELEC_ENG/COMP_ENG 334: Fundamentals of Blockchains and Decentralization


VIEW ALL COURSE TIMES AND SESSIONS

Prerequisites

COMP_SCI 212 or ELEC_ENG 302 or equivalent or graduate standing

Description

ELEC_ENG/COMP_ENG 334 Fundamentals of Blockchains and Decentralization

Course Coordinator: Prof. Dongning Guo

This course is partly an introduction to the fundamentals of blockchains and decentralized
applications and partly a springboard toward deeper understanding and further exploration. The
course explains how blockchains work; teaches the underlying fundamentals of distributed
consensus; touches upon economic and policy issues; and also provides hands-on experience
through computer assignments.

PREREQUISITES
1. COMP_SCI 212 or ELEC_ENG 302 or equivalent or graduate standing.
2. Basic programming skills.

REFERENCE TEXTBOOK
A. Narayanan, J. Bonneau, E. Felten, A. Miller, and S. Goldfeder, Bitcoin and Cryptocurrency
Technologies: A Comprehensive Introduction, Princeton University Press, 2016.
A. M. Antonopoulos, Mastering Bitcoin: Programming the Open Blockchain, 2nd ed., O'Reilly
Media, Inc., 2017.

ASSIGNMENT AND ASSESSMENT
Problem sets. Some of the problems require good understanding of basic probabilities.
Midterm project. This project consists of several assignments. An initial assignment will
introduce you to the Rust programming language. You will eventually implement a primitive
Bitcoin client in Rust and test it out internally.
Final project. You have a choice between to study some blockchain properties via computer
simulation and to work on a mathematical analysis of some blockchain properties.

MODULES
1. How Bitcoin works:
Cryptography, blockchain data structures, Nakamoto consensus;
Mathematical model and analysis of blockchain safety and liveness.
2. Scaling blockchain:
Scaling throughput, latency, and storage;
Proof of stake.
3. Other distributed consensus protocols:
Byzantine fault tolerance;
Streamlet, Hotstuff, Algorand.
4. Decentralization technologies:
Smart contracts, decentralized finance.