CSCI 1951L: Blockchains and Cryptocurrencies

Jump to main content

Welcome to CSCI1951L!

Introduction to modern blockchain-based systems. This timely course covers relevant topics such as consensus and distributed computing, example cryptocurrencies, programming smart contracts, privacy and secrecy, transfer networks, atomic swaps and transactions, non-currency applications of blockchains, and legal and social implications. Students will complete four programming projects, four homework assignments, one written assignment, and two labs.

Course Info

Assignments

Every project, homework, and lab should be turned in via Gradescope. Every assignment will be available by 11:59 pm ET on the day listed, and will be due at 11:59 pm ET on the due date listed. Written assignments should be submitted as PDFs. All assignment release and due dates are also available through the course calendar. The assignment dates currently listed are tentative and may change. If any dates are shifted, an EdStem announcement will be made informing you of the change.

AssignmentOutIn
Homework 0: Course Setup 1/26ASAP
Lab 1: Introduction to Go 1/302/12
Homework 1: Blockchains 1/302/05
Project 1: Chain 2/062/26
Homework 2: Bitcoin 2/132/23
Project 2: Coin 3/063/24
Homework 3: Ethereum & Solidity 3/133/19
Project 3: Lightning 4/114/26
Lab 2: Introduction to Solidity 4/144/28
Project 4: Swap 4/275/06
Homework 4: Cross-Chain, Wallets, Byzantine, & Privacy 5/015/08
Written: White Paper 5/065/18

Lectures

Lectures will take place Tuesdays and Thursdays from 2:30pm-3:50pm ET in 85 Waterman Street 130. Recordings will be available soon after lecture ends.

Zoom Meeting ID (for remote synchronous viewing): 996 8671 6687

Lecture Notes
TopicDateSlidesRecording
Course Introduction1/26SlidesRecording
Bitcoin Introduction1/31SlidesRecording
Bitcoin Mining2/2SlidesRecording
Bitcoin Data Structures2/7SlidesRecording
EVM2/9SlidesRecording
Solidity2/14SlidesRecording
Ethereum Data Structures2/16SlidesRecording
Gas2/23SlidesRecording
Solidity Pitfalls 12/28SlidesRecording
Solidity Pitfalls 23/2SlidesRecording
Solidity Pitfalls 33/7SlidesRecording
Solidity Pitfalls 43/9SlidesRecording
PoS in Algorand and Ethereum3/14SlidesRecording
Making Ethereum Scalable3/16SlidesRecording
Off-Chain Payment Channels3/21SlidesRecording
Concurrency3/23SlidesRecording
Privacy and Anonymity4/4SlidesRecording
Privacy Coins4/6SlidesRecording
Crosschain 14/11SlidesRecording
Crosschain 24/13SlidesRecording
Wallets and Light Clients4/18SlidesRecording
Decentralized Finance4/20SlidesRecording
Regulation and DeFi4/24SlidesRecording
Season Finale (Remote)4/27SlidesRecording

Course Staff

Maurice Herlihy
Professor | he/him | mherlihy

I like figuring out how to make things sync.

Nicholas Vadasz
HTA | he/him | nvadasz

Hi, I'm a junior studying CS. I love listening to and performing music (Brown U Orchestra 4 lyfe), art, gaming, philosophy, and starting projects that I will never finish.

Abhinav Sriram
HTA | he/him | asriram11

Hi! I'm a senior studying Computer Science and love traveling, watching (and making) films, learning about the past and thinking about what the future holds.

John Fay
UTA | he/him | jfay1

Hi! I'm a senior from Bristol, RI studying computer science. Outside of school, I like to ski and take long walks!

Jize Ning
UTA | he/him | jning3

I am a CS Master's student and I love watching football, gaming, and great food.

Pavani Nerella
STA | she/her | pnerella

Hey, my name is Pavani and I'm from India. I'm a first year CS Master's student, while not taking deep dives into papers and code , I enjoy cooking, finding new music and planning my next trip.

Copyright © 2023 CSCI 1951L at Brown University