ECE/CS 598AM: Cryptocurrency Security, Fall 2016

Instructor Andrew Miller soc1024@illinois.edu
Location ECEB 4070
Lecture Times
Tuesday and Thursday, 11:00am - 12:15pm
Office CSL 461
Office Hours
Wednesdays 2pm-3pm or by appointment
Piazza [piazza link]

Decentralized cryptocurrencies, such as Bitcoin and Ethereum, have gained rapid popularity, attracting the attention of academics, entrepreneurs, economists, and policy-makers. They promise to create new disruptive markets, and revolutionize how we think of money and financial infrastructure.

The goal of this course is to introduce students to current research in cryptocurrencies. We’ll cover the technical background of applied cryptography and incentive mechanisms. The bulk of the course will consist of reading and discussion of recent research papers from top security conferences. Assignments will involve hands-on practice with cryptocurrency tools, such as sending and receiving cryptocurrency payments, and programming smart contracts. The course will culminate with an original research project.

The first few classes will consist of lectures from the instructor, especially intended to establish the necessary background. Thereafter, we will read and discuss research papers, especially from computer security conferences, Financial Cryptography, and the Bitcoin Research workshop, PETS, WEIS, etc.

This class is primarily intended for students who would like to conduct research on cryptocurrencies. It will also appeal to students with a casual interest in this hot topic, or who want to do research in computer security generally.

Syllabus [google doc]

The information in the syllabus and on this course website is subject to change.

Calendar

Last day of class before final exams
Week 1: Introduction
Tuesday, Aug 23 Course introduction, syllabus, introduction to Bitcoin
- [Slides]
- Textbook: Bitcoin and Cryptocurrency Technologies [free pdf]
- Systemization-of-Knowledge paper: SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies
Homework:
- Read the SoK paper
- Skim the list of papers in the syllabus
- Log in to Piazza and post or reply to something
Thursday, Aug 25 Fun with applied cryptography: hashes and signatures
How to use Bitcoin
- [Slides]
Reading:
-Section 1.1 and 1.3 from Bitcoin and Cryptocurrency Technologies
Homework:
- Spend the Bitcoins in your paper wallet
- Create and verify a signed message
Week 2: More Bitcoin
Aug 30 Lecture: Bitcoin Mining, Authenticated Data Structures
- [Slides]
Reading:
- Section 1.2 from Bitcoin and Cryptocurrency Technologies
- Chapter 5 from the above
Sep 1 Lecture: Bitcoin mining and game theory
- [Slides]
Reading:
-The Economics of Bitcoin Mining, or Bitcoin in the Presence of Adversaries (WEIS)
-Majority is Not Enough (FC)
Week 3: Smart Contract Programming
Sep 6 Lecture: smart contract programing and Ethereum
- [Slides]
***Smart Contract Programming Assignment announced.*** [instructions]
Reading:
- Ethereum Whitepaper
- A Programmer’s Guide to Ethereum and Serpent
Sep 8 Reading: (discussion questions due 24 hrs prior)
[-*-] Step by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab[paper]
[-*-] Making Smart Contracts Smarter. [eprint] CCS 2016
Week 4: Consensus Protocols
Sep 13 Lecture: Network models and timing assumptions, two generals problem
- [Slides]
Reading:
- 100 impossibility proofs for distributed computing.
Sep 15 Reading:
[-*-] Centrally banked cryptocurrencies. Danezis and Meiklejohn. NDSS ‘16.
[-*-] Enhancing Bitcoin Security and Performance with Strong Consistency via Collective Signing (ByzCoin) 2016
Week 5: Privacy
Sep 20 Reading:
[-*-] An analysis of anonymity in the bitcoin system. Reid and Harrigan. SPSN’13
[-*-] A Fistful of Bitcoins. Meiklejohn et al. IMC '13.
Sep 22 Lecture: Zero Knowledge Proofs [notes] Reading:
[-*-] Auditable, Anonymous Electronic Cash. Sander and Ta Shma. CRYPTO '99
Week 6: More Privacy
Sep 27 [Slides] Reading:
[-*-] Untraceable electronic cash. Chaum, Fiat, Naor. CRYPTO, 1988
[-*-] CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin. Ruffing+. ESORICS ‘14
- how digicash blew everything
- Bitcoin SF Dev's talk: Bryan Vu - A Deep Dive into CoinShuffle (youtube)
Sep 29 Lecture: Zerocash and Cryptonote
- Zcash slides
- Kevin's Guide to installing Monero
Reading:
- Zerocash: Decentralized Anonymous Payments from Bitcoin S&P '15
- CryptoNote v2.0 Nicolas van Saberhagen. 2013
**Smart contract projects are due!!**
Week 7: Peer-to-peer networking in Bitcoin
Oct 4 Short Lecture: The Bitcoin P2P network (slides) (youtube) Reading:
[-*-] Decker, Christian, and Roger Wattenhofer. Information propagation in the bitcoin network. IEEE P2P 2013.
[-*-] Two Bitcoins at the Price of One? Double-Spending Attacks on Fast Payments in Bitcoin. Karame, Androulaki, and Capkun. CCS 2012
Oct 6 Demo of Bitcoin+Tor **Project proposals due - 7 weeks to complete final project**
[-*-] Bitcoin over Tor isn’t a good idea. Biryukov et al. S&P ‘15
[-*-] Eclipse attacks on Bitcoin's peer-to-peer network. Heilman et al. USENIX ‘15
Week 8: Crypto Protocol Applications
- Oct 11 Reading:
[-*-] A Fast and Scalable Payment network with Bitcoin Duplex micropayment channels. Decker and Watenhofer, SSS’15
[-*-] Liar, Liar, Coins on Fire! Ruffing et al. CCS ‘15
- Oct 13 [-*-] Secure multiparty computations on bitcoin. Andrychowicz et al. S&P’14
[-*-] How to Use Bitcoin to Design Fair Protocols. Bentov and Kumaresan. CRYPTO’14
Week 9: Security Fail
Oct 18 Reading:
[-*-] The Bitcoin Brain Drain: A Short Paper on the Use and Abuse of Bitcoin Brain Wallets. Vasek, Bonneau, et al. FC'16
[-*-] On the malleability of Bitcoin transactions BITCOIN'15
(optional) Bitcoin Transaction Malleability and MtGox
Oct 20 (Andrew is gone, for NDSS Committee Meeting) Remote guest lecture: Patrick McCorry Reading:
[-*-] Anonymous voting by two-round public discussion
Week 10: (Andrew is gone for CCS)
Oct 25 Remote guest lecture: Ethan Heilman Reading:
[-*-] TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub
- Oct 27 Remote guest lecture: Joseph Chow Reading: TBA
Week 11: Economic measurement
Nov 1 Reading:
[-*-] The bitcoin market potential index. Hileman. BITCOIN ‘15
[-*-] Beware the Middleman: Empirical Analysis of Bitcoin-Exchange. Moore and Christin. FC '13
-(optional) Competition in the Crypto-Currency Market. Gandal and Halaburda. WEIS ‘14.
- Nov 3 **Project checkpoint presentations**
Week 12: Cryptocurrency Engineering
- Nov 8 Lecture: Governance, soft forks, hard forks
(slides)
Reading:
[-*-] The invisible politics of Bitcoin: governance crisis of a decentralised infrastructure
-(optional) Textbook, Section 3.6, pages 95-98
-(optional)
On Scaling Decentralized Blockchains. Croman et al. BITCOIN '16
- Nov 10 Lecture: More Zero-Knowledge Proofs (code) (slides) Reading:
- ZKPDL
- Pinocchio
Week 13: More Cryptocurrency Engineering
- Nov 15 Lecture: Sidechains and Embedded consensus Reading:
[-*-] Proofs of proofs of work with sublinear complexity. Kiayias et al. BITCOIN ‘16.
- Nov 17: Lecture: Multi-Party Computation (slides) Reading:
THANKSGIVING November 19 -28
Week 14:
- Nov 29 Reading:
[-*-] Have a Snack, Pay with Bitcoins. Bamert et al. P2P '13
[-*-] BlueWallet: The Secure Bitcoin Wallet Decker and Wattenhofer. Security and Trust Management 2014.
- Dec 1 Reading:
[-*-] Travelling the Silk Road. Christin. WWW ‘14.
[-*-] The Ring of Gyges: Investigating the Future of Criminal Smart Contracts. CCS
Week 15: Blockchain and cryptocurrency companies
- Dec 6 Reading:
[-*-] the Augur whitepaper
[-*-] Truthcoin
- Dec 8 Guest Lecture (Utsav Shah): storage coins
(READING DAY, NO CLASS)
-(optional) Inter-Planetary File System (IPFS)
Finals Week: Dec 9+
** Final Project Reports Due: Sunday, December 11, 11:59pm
** Final Project Presntations: Thursday, December 15, 7:00pm - 9:30pm

Texts, books, resources

Grading

Grading (4 credits):

Academic Integrity

https://www.ece.illinois.edu/academics/grad/overview/general-info.asp "The faculty of the Department of Electrical and Computer Engineering expects all students to maintain academic integrity at all times in the classroom and the research laboratory and to conduct their academic work in accordance with the highest ethical standards of the engineering profession. Students are expected to maintain academic integrity by refraining from academic dishonesty, and by refraining from conduct which aids others in academic dishonesty or which leads to suspicion of academic dishonesty. Violations of academic integrity will result in disciplinary actions ranging from failing grades on assignments and courses to probation, suspension or dismissal from the University."

Ethics statement

This is a course in computer security, and as such we will discuss several "attack" techniques that, if applied in the real world, could be used to compromise the security of others. This course also involves hands-on interaction with peer-to-peer computer networks and virtual currency systems, to which numerous laws and regulations are applicable. It is your responsibility not to run afoul of laws, regulations, or ethical standards. If in doubt please contact me (the instructor). Some guidelines:
This class accepts cryptocurrency donations: [Ethereum: 0xe5a541787debecea930e0502085b23dbb5b8dd53] [Bitcoin: 32Z5mRnHDJUYBnAk7EVagPJkwW7nbS2ieB]
The above information is subject to change.