MAS.S62 Spring 2018
Cryptocurrency Engineering and Design
NOTE: This document is a draft and is subject to change.
Information
Instructors: Tadge Dryja ([email protected]) and Neha Narula ([email protected])
Time: MW 10-11:30 AM
Place: E14-341
Contact: [email protected]
You are welcome to contact us via email. However, if you think your question would be useful for others to see, please file it as an issue in this repository!
Description:
Bitcoin and other cryptographic currencies have gained attention over the years as the systems continue to evolve. This course looks at the design of Bitcoin and other cryptocurrencies and how they function in practice, focusing on cryptography, game theory, and network architecture. Future developments in smart contracts and privacy will be covered as well. Programming assignments in the course will give practical experience interacting with these currencies, so some programming experience is required.
Office hours: 4-6 PM Tuesdays
Office hours location: The big table outside E15-357
Office hours 2018-05-08 are in Koch Cafe -- all spaces in the Media Lab building are taken by the event this day.
TA: James Lovejoy [email protected]
Schedule
NOTE: The schedule is in flux and subject to change.
# | Date | Lecturer | Topic | Readings | Lecture Notes | Labs |
---|---|---|---|---|---|---|
1 | 2018-02-07 | Neha and Tadge | Introduction. Signatures, hashing, hash chains, e-cash, and motivation | Untraceable Electronic Cash | tadge's slides, neha's slides | |
2 | 2018-02-12 | Neha and Tadge | Proof of Work and Mining | Bitcoin | tadge's slides | |
3 | 2018-02-14 | Tadge | Signatures | Simple Schnorr Multi-Signatures with Applications to Bitcoin | tadge's slides | LAB 1 DUE |
4 | 2018-02-20 | Neha | Transactions and the UTXO model | Bitcoin Transactions | neha's slides | |
5 | 2018-02-21 | Tadge | Synchronization process, pruning | tadge's slides | ||
6 | 2018-02-26 | Tadge | SPV and wallet types | tadge's slides | NOTE: No office hours 2018-02-27 ! | |
7 | 2018-02-28 | Alin Tomescu | OP_RETURN and Catena | alin's slides, Catena paper, Catena code | LAB 2 DUE | |
8 | 2018-03-05 | Neha | Forks | neha's slides | ||
9 | 2018-03-07 | Sharon Goldberg | Peer-to-peer networks | |||
10 | 2018-03-12 | Tadge | PoW recap, other fork types | tadge's slides | ||
11 | 2018-03-14 | Tadge | Fees | tadge's slides | Note: Office hours on Thursday the 15th, 4-6 usual place | |
12 | 2018-03-19 | Tadge | Transaction malleability and segregated witness | tadge's slides | ||
13 | 2018-03-21 | Tadge | Payment channels and Lightning Network | tadge's slides | ||
14 | 2018-04-02 | Tadge | Lightning Network and Cross-chain Swaps | tadge's slides | ||
15 | 2018-04-04 | Tadge | Discreet Log Contracts | tadge's slides | ||
16 | 2018-04-09 | Tadge | MAST, Taproot, Graftroot | tadge's slides | ||
17 | 2018-04-11 | Tadge | Anonimity, Coinjoin and Signature Aggregation | tadge's slides | ||
18 | 2018-04-18 | Tadge | Confidential Transactions | tadge's slides | ||
19 | 2018-04-23 | Joseph Bonneau | Ethereum and smart contracts | |||
20 | 2018-04-25 | Tadge | More about Ethereum NOTE: Class is in E15-359 | |||
21 | 2018-04-30 | David Vorick | Proof of Work at Industrial Scales (note: no video will be taken) | |||
22 | 2018-05-02 | Tadge | Alternative consensus mechanisms | tadge's slides | ||
23 | 2018-05-07 | Tadge | New Directions in Crypto* | tadge's slides | ||
24 | 2018-05-09 | Neha | zkLedger NOTE: Class is in E15-359 | neha's slides | ||
25 | 2018-05-14 | Final Presentations Day 1 | ||||
26 | 2018-05-16 | NOTE: Class is in E15-359 Final Presentations Day 2 |
Labs and Problem Sets
# | Due Date | Assignment |
---|---|---|
1 | 2018-02-14 | Hash-based signature schemes. Code your own signatures and sign with them! In the pset01 |
2 | 2018-02-28 | Mine your name |
3 | 2018-03-21 | UTXOhunt |
All labs are due by 11:59 PM on the day specified.
Final Projects
You may form groups of 1-4 students and prepare a presentation and a ~4 page paper on one of the following:
Project proposals are due 2018-04-18 29:59 EDT - submit them via github repo. (e-mail is also OK if you can get git to work)
- Design and implement an application or system
- Add a new feature to an existing system like Bitcoin, Ethereum, or another cryptocurrency or shared ledger implementation
- Propose a formalization in this space for a topic that has not been formalized yet
- Pose and solve an interesting problem
Final Project Submission
Fork this repo on github and add your materials to the projects folder. Make a subfolder with the name of your project so that it's organized. Also, please include a LISCENSE file describing the license for the source code of the project material, as people out there on the internet may be insterested in using this code and / or collaborating. Please submit PRs but Wednesday night, and I'll merge them.