• Stars
    star
    331
  • Rank 127,323 (Top 3 %)
  • Language
    Go
  • Created almost 7 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

MAS.S62 Spring 2018 course website

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)

  1. Design and implement an application or system
  2. Add a new feature to an existing system like Bitcoin, Ethereum, or another cryptocurrency or shared ledger implementation
  3. Propose a formalization in this space for a topic that has not been formalized yet
  4. 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.

More Repositories

1

opencbdc-tx

A transaction processor for a hypothetical, general-purpose, central bank digital currency
C++
899
star
2

lit

Lightning Network node software
Go
551
star
3

utreexo

accumulator for bitcoin utxo set
Go
317
star
4

opencx

An open-source cryptocurrency exchange toolkit for implementing experimental exchange features
Go
201
star
5

CryptoKernel

A SDK for implementing blockchain-based digital currencies
C++
173
star
6

tangled-curl

IOTA's hash function curl is broken
Python
173
star
7

6.892-public

Course information for 6.892 (Spring 2017)
110
star
8

zkledger

Privacy-preserving auditing for distributed ledgers
Go
65
star
9

rustreexo

Utreexo in rust
Rust
43
star
10

resources

Resources for getting started
42
star
11

zksigma

A library for generating non-interactive proofs of knowledge without trusted setup
Go
29
star
12

litpay

Lightning Network Payment Gateway
JavaScript
21
star
13

libutreexo

library for utreexo accumulator in c++
C++
20
star
14

Dictionary

A lisiting of terminology for internal consistent use at the DCI, but published to serve as reference externally. PR's welcome!
17
star
15

dlc-oracle-nodejs

A library for making Discreet Log Contracts oracles in NodeJS
TypeScript
14
star
16

utxohunt

utxohunt assignment for 6.892
Go
12
star
17

CryptoCurrency

Uses the CryptoKernel library to create a modular cryptocurrency.
C++
12
star
18

dlcspec

specification for discreet log contracts
11
star
19

pooldetective

Go
10
star
20

artistry

direct artist payments using blockchain
JavaScript
9
star
21

SmartSolar

Smart contracts to finance and orchestrate energy payments of solar PV systems.
C++
9
star
22

dlcoracle

Go
7
star
23

dlc-oracle-go

Library for making Discreet Log Contract Oracles in Go
Go
7
star
24

terraform-aws-opencbdc-tctl

terraform infrastructure for opencbdc-tctl
HCL
6
star
25

opencbdc-tctl

A large-scale, on-demand test orchestrator for opencbdc-tx
Go
6
star
26

Smart-Property

JavaScript
6
star
27

firmitas

A cryptocurrency market conditions simulator for testing algorithmic interest rate, quantitative easing and block reward changes
C++
5
star
28

cash-disclosure

5
star
29

dlc-oracle-go-samples

Samples of using the Discreet Log Contracts Oracle library
Go
4
star
30

research-guide

3
star
31

go-bverify

B-Verify in Go
Go
3
star
32

ck-wallet

React-native CK wallet
JavaScript
3
star
33

dlc-oracle-nodejs-samples

JavaScript
3
star
34

opencbdc-js

node-js module to interact with opencbdc-tx
JavaScript
2
star
35

lit-rpc-client-dotnet

Client for LIT's RPC server in .NET Core
C#
2
star
36

dlc-oracle-dotnet

Library for making Discreet Log Contract Oracles in .NET Core
C#
2
star
37

TransThunder

music streaming with micropayments
2
star
38

opencbdc-ui

a demo, browser-based wallet for opencbdc
Vue
1
star
39

lit-rpc-client-nodejs-samples

Samples of using the LIT RPC Client for NodeJS
JavaScript
1
star
40

lit-tracker

A node tracker for lit
JavaScript
1
star
41

config-files-archive

Archive of config files used for OpenCBDC instantiation, and tests
1
star
42

poolmonitor

Mining pool monitor
1
star
43

litvending

Making old vending machines Lit compliant
Python
1
star
44

lit-rpc-client-go-samples

Samples of using the LIT RPC Client for Go
Go
1
star
45

lit-rpc-client-nodejs

Client for LIT's RPC server in NodeJS (Typescript)
TypeScript
1
star