Elements of Decentralized Finance

Instructor

Prof. Pramod Viswanath, Princeton, pramodv@princeton.edu

Teaching assistants

  • Viraj Nadkarni, viraj@princeton.edu
  • Mahsa Bastankhah, mhs.bastankhah@princeton.edu
  • Niusha Moshrefi, niusha@princeton.edu

Course Material

Lecture
Date
Theme Topic Lecture material Lab instructions Lecture video Assignments
01/29 Introduction Intro to Course Slides Instructions Video  
01/31 Blockchain Primer Slides Instructions Video  
02/05 Smart Contracts and Solidity Slides Instructions Video  
02/07 DeFi marketplaces Exchanges 1: DEXs Slides Instructions Video  
02/12 Exchanges 2: Bonding curves and CFMMs Slides Instructions Video Crypto Zombies 1
02/14 Exchanges 3: Improving CFMMs Slides Instructions Video  
02/19 Exchanges 4: MEV Deep dive Slides Instructions Video Crypto Zombies 2
02/21 Banking in DeFi Oracles Slides Instructions Video  
02/26 Borrow/Lending protocols Slides Instructions Video Assignment1
02/28 Stablecoins Slides Instructions Video  
03/05 Flash loans Slides Instructions Video Assignment2
03/07 Financial attacks using lending Slides Instructions Video  
03/19 Bridges and Synthetic tokens Wrapped tokens and bridges Slides Instructions Video Assignment3
03/26 Synthetics Slides Instructions Video Assignment4
03/26 Derivatives Slides Instructions Video Assignment4
03/28 NFT NFT1 Slides Instructions Video  
04/02 NFT2 Slides Instructions Video  
04/04 Governance DAOs Slides Instructions Video  
04/09 Open Hedge Funds in DeFi Slides Instructions Video  
04/11 Advanced Staking Slides Instructions Video  
04/16 EigenLayer Slides Instructions Video  
04/18 Project presentations   Slides Instructions Video  
04/23   Slides Instructions Video  
04/25   Slides Instructions Video  

Course Outline

Blockchains are digital platforms whose consistency and liveness are maintained by a decentralized set of participants. The popular blockchain platforms are programmable (i.e., support applications defined via a Turing complete programming language) and are permissionless (i.e., transactions on the platform are open to anyone; the bar to participate is very lightweight). The combination of programmability, permissionless access and the financial nature of the underlying token (e.g., ETH in the Ethereum blockchain) has led to tremendous innovation in financial products on the blockchain, broadly covered under the rubric of decentralized finance or simply DeFi.

The purpose of this course is to introduce the various novel types of financial instruments enabled by blockchains, classified as “elements” of DeFi. The course is interdisciplinary since it covers both finance and computer science topics. Finance terms are introduced on a need-to-know basis and no hard prerequisites in financial engineering are needed. Basic background in computer science (programming) is expected. The course covers a technical discipline that is developing at a fast pace – course material in the form of slides and notes are provided for each lecture, but the students will be encouraged to read a diverse range of reference material (source codes, whitepapers, web forum discussions). Nine elements of DeFi are discussed:

  1. Token transfers: native blockchain transactions
  2. Market making via smart contracts
  3. Oracles: importing external data
  4. Borrow/Lending: banking functionality
  5. Cross border finance: bridges, wrapped tokens
  6. Stable coins: tying tokens to fiat
  7. Synthetics and Perpetuals: self-adapting financial instruments
  8. NFTs : digital collectibles
  9. DAOs : tokenized governance

The pedagogical style is designed to provide a hands-on experience with the material. Each class will be divided into two parts: the first part will be a lecture designed to highlight the conceptual and algorithmic aspects of the material. the second part will be a lab activity designed to provide a hands-on experience and highlight the practical aspects of interacting with a permissionless public blockchain (Ethereum testnet).

Course Notes

  • Lecture videos, slides, lab instructions, and supplementary reading material will be provided for each lecture.
  • Supplemental reading:

Pre-requisites

The basis prerequisites are a maturity with algorithms (COS 226), probability (ORF 245) and computer systems (COS 316). Background in blockchains (ECE/COS 470 and COS 495) and financial mathematics (ORF 335) will be helpful.

Assignments

We will have a 2 part Crypto Zombies tutorial and a 4 part programming assignment series to build smart contracts in Solidity programming language through which students explore the core elements of DeFi.

Final Project

In-depth study of one of the elements of DeFi covered in the course. Or conducting hands-on research at the intersection of AI and Defi. The final project report will serve as the final exam of the course.

Assignments and Grading

The course is evaluated in four formats:

  • [30% of the grade] Programming Assignments – This includes completing two Crypto Zombies modules (Introduction to Solidity) and four programming assignments in Solidity. Through these tasks, students gain hands-on experience in coding in DeFi.
  • [28% of the grade] In-class labs – Hands-on activity for students to get a feel for interacting with each element and exploring the action space. Students need to attend any 14 out of the 21 lectures to do that.
  • [17% of the grade] Paper Reading + Agentic AI Challenge – Students will read and analyze DeFi research papers, then curate technically challenging questions from these papers to test and challenge the capabilities of state-of-the-art AI agents.
  • [25% of the grade] Final project – Students will do an in-depth study of one of the elements of DeFi covered in the course or conduct hands-on research on the intersection of AI and DeFi. Prompts on potential project topics shall be provided by us. The final project report will serve as the final exam of the course.