• Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
  • Created over 7 years ago
  • Updated over 7 years ago

Reviews

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

Repository Details

Course information for 6.892 (Spring 2017)

6.892 Spring 2017

Shared Public Ledgers: Cryptocurrencies, Blockchains, and Other Marvels

NOTE: This document is a draft and is subject to change.

Information

Instructors: Neha Narula ([email protected]) and Silvio Micali ([email protected])

Time: Fridays 1-4 PM

Place: 36-155 4-163

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: This course is about the principles and core techniques of shared public ledgers, with an emphasis on Bitcoin and distributed consensus. Topics include Bitcoin, Byzantine agreement, authenticated data structures, Lightning networks, proof of stake, and new techniques to implement a shared public ledger.

course announcement

Schedule

NOTE: The schedule is in flux and subject to change.

We are occasionally providing our lecture notes in the interest of transparency. Note that they are rough, probably have mistakes, and are almost definitely incomplete. In addition, they might not accurately reflect what happened in class. Use at your own risk!

# Date Lecturer Topic Readings Lecture Notes
1 2/10 Neha and Silvio Introduction. Signatures, hashing, hash chains, e-cash, and motivation Untraceable Electronic Cash lecture 1 notes
2 2/17 Neha Bitcoin: how it works whitepaper, SoK sections 1, 2, and 4, how it works, script scribed lecture 2 notes
3 2/24 Neha Bitcoin: SPV, mining, and forks SoK sections 3 and 5, pooled mining, hardware scribed lecture 3 notes
4 3/3 Maurice Herlihy and Tadge Dryja Concurrency in smart contracts, payment channels and the Lightning Network Adding Concurrency to Smart Contracts
5 3/10 Joe Bonneau Proof-of-stake and alternatives to proof-of-work On Stake and Consensus
6 3/17 abhi shelat and Rafael Pass Analysis of Bitcoin, Fruitchains Analysis of the Blockchain Protocol in Asynchronous Networks, Fruitchains
7 3/24 Alessandro Chiesa and Madars Virza SNARKs and Zerocash Zerocash: conference version, more detailed full version snarks slides, zerocash slides
- 3/31 Spring Break -- no class
8 4/7 Silvio Byzantine Agreement Byzantine General's Problem Homework
9 4/14 Silvio Byzantine Agreement Byzantine Agreement Made Trivial, Aloni's proof of the need for unpredictable coins, Homework
10 4/21 Silvio Algorand, Graded Consensus Homework, Homework2
11 4/28 Silvio Algorand
12 5/5 Special topics
13 5/12 Neha Correlated failures. Final project presentations

Labs and Problem Sets

Submission instructions: For problem sets, email your solutions to [email protected]

Final Projects

A final project is encouraged, but not required, as this is an experimental course. You may form groups of 1-4 students and prepare a presentation and a 4 page paper on one of the following:

  1. Design and implement an application or system (project ideas)
  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

Readings and Resources

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

mas.s62

MAS.S62 Spring 2018 course website
Go
331
star
4

utreexo

accumulator for bitcoin utxo set
Go
317
star
5

opencx

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

CryptoKernel

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

tangled-curl

IOTA's hash function curl is broken
Python
173
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