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/28ASAP
Lab 1: Introduction to Go 1/292/11
Homework 1: Blockchains 1/292/04
Project 1: Chain 2/052/25
Homework 2: Bitcoin 2/122/22
Project 2: Coin 3/043/22
Homework 3: Ethereum & Solidity 3/123/17
Project 3: Lightning 4/094/24
Lab 2: Introduction to Solidity 4/154/29
Project 4: Swap 4/275/06
Homework 4: Cross-Chain, Wallets, Byzantine, & Privacy 4/295/06
Written: White Paper 5/045/16

Lectures

Lectures will take place Tuesdays and Thursdays from 2:30pm-3:50pm ET in Kassar House FOX. Recordings will be available soon after lecture ends.

Zoom Meeting ID (for remote synchronous viewing): 919 8997 8325

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

Course Staff

Maurice Herlihy
Professor | he/him | mherlihy

I like figuring out how to make things sync.

Brian Sutioso
HTA | he/him | bsutioso

Hi! I'm a senior studying Computer Science. I love hiking and playing tennis!

Abhyudaya Sharma
HTA | he/him | ashar161

Hi, I’m a Masters student studying CS! When I’m not writing code, you can find me gaming, swimming or playing tennis.

Sam Devorsetz
UTA | he/him | adevorse

I'm a senior from New York studying Math & CS. Outside of school, I like to play the bass and spend time outside.

Copyright © 2024 CSCI 1951L at Brown University