login

Subject to Change

This page is a preview of different topics and possible weeks to cover them. I might move stuff around or add/drop topics!

Dec 11-17: Final Exams

Week 15: Dec 9
Week 14: Dec 2 (coming off of Thanksgiving recess)
Week 13: Nov 19-25: Blockchain applications

Week 13: (Nov 19-25)

Reference

Week 12: Nov 12-18: Scripting topics

Reference

Week 11: Nov 5 - 11: No class (Veteran’s day) CryptoZombies Week 2

Week 10: Oct 29 - Nov 4: No class (Election Day) CryptoZombies Week 1

Week 9: Oct 22-28 Ethereum-family Scripting, Bitcoin-family Scripting, Tokens

Tools

Reference material

Week 8: Oct 15-21 Midterm

Week 7: Oct 8-14 Byzantine Generals Problem (not on midterm)

Byzantine Generals Video Lecture
Byzantine Fault Tolerance vs Proof Of Work Video Lecture

Vukolic paper: Proof-of-work vs. BFT Replication

Reference

Byzantine Generals Video Lecture Notes
FLP, CAP, BFT Comparison lecture notes

(optional) Impossibility Of Distributed Consensus (original FLP paper)

Week 6: Oct 1-7 Block Propagation

Efficient Block Propagation Lecture Video
Bloom Filter Lecture Notes
Invertible Bloom Lookup Table (IBLT)
(661) Graphene Paper
(461) Graphene short paper

Week 5: Sept 24-30 Bitcoin Networking, Eclipse Attacks, and Distributed Clock Synchronization

We are going to use short excerpts from “Distributed Systems: Principles and Paradigms” by Andrew S. Tanenbaum and Maarten Van Steen. Fortunately, the entire text is available for free! Just give any email address to the author’s web site and they’ll send you a PDF.

Please read:

  • Section 6.1: Clock Synchronization (no need to read the Berkeley algorithm or about wireless networks)
  • Section 6.2: Logical clocks

Later in the semester, we’ll use the text for another topic.

Reference

Purely optional reading for the course, but if you are interested, here is the original Lamport paper:


Week 4: (Sept 17-23) Elliptic Curve Crypto

Reference

(Optional) elliptic-curve-cryptography-a-gentle-introduction
(Optional) ECC part 2
(Optional) Chapter 8, Paar and Pelzl
(Optional) Chapter 9, Paar and Pelzl

661 only
Review this paper Attacks against Autofinalization and Parking.
Understand:

  • That a variety of “tweaks” can be invented to modify Satoshi’s algorithm to choose the “main chain”
  • What two proposed tweaks: “autofinalization” and “parking” actually do
  • There seems to be no description of this consensus change, except for the source code located in this function (reading just the comments may be helpful).

Week 3: (Sep 9 - 16) Selfish Mining, Sybil Attack

Please skim the papers, watch the videos, and then read the papers carefully.

Reference


Week 2: (Sep 3-9) Cryptography Overview, Doublespend Attacks

We continue our investigation into basic blockchain architecture.

λ=zqp\lambda = \frac{zq}{p}
1k=0z+1(λkeλk!)(1(q/p)z+1k),ifq<p1- \sum_{k=0}^{z+1} (\frac{\lambda^ke^{-\lambda}}{k!})(1-(q/p)^{z+1-k}), if q < p

Reference


Week 1: Introduction

These are the materials for our first week.

Reference