Practical Cryptography and Distributed Ledgers
- Pablo Deymonnaz
- Diego Kingston
- Federico Carrone
Disclaimer: We're still organizing everything. Some links might be in an incorrect section. We will finish organizing everything in the next 8 weeks.
1. Foundations of Cryptography
- Groups, Rings and Fields
- Finite Fields
- Modular Arithmetic
- Polynomials over a Field
- P versus NP problem
- Computationally Hard Problems: Factorization and the Discrete Logarithm
- Elliptic Curves
- Elliptic Curves Pairings and Field Extensions
Readings
- Chapter entitled Cryptography: Sections on Symmetric Crypto Primitives - Anderson Security Engineering
- A (Relatively Easy To Understand) Primer on Elliptic Curve Cryptography - Nick Sullivan
- Exploring Elliptic Curve Pairings - Vitalik Buterin
- Pairing
- Ben Lynn's notes on cryptography, abstract algebra and number theory
- Reed Solomon
- Reed–Solomon codes for coders
Exercises
2 Symmetric encryption
- Stream ciphers and block ciphers
- AES
- ChaCha20
3. Asymmetric encryption
- Diffie-Hellman Key Exchange
- ECDH
- ElGamal
- RSA
Readings
4. Hash Functions and Signatures
- MD5
- SHA1
- Keccak - SHA3
- ECDSA signature
- Schnor signature
- BLS signature
Readings
- What is a Cryptographic Hash Function? - Alin Tomescu
- What is the BLS signature scheme? - David Wong
- BLS Signatures - Remco Bloemen
5. What is Money?
- A Brief History of Money
- Shelling Out: The Origins of Money - Nick Szabo
- What is Money anyway - Lyn Alden
- Money in the modern economy: an introduction
- Money creation in the modern economy
- The Cypherpunks
6. Introduction to blockchains and cryptocurrencies
- What is a blockchain?
- State Machines
- Consensus
- Merkle Trees
Readings
- Why cryptocurrencies are interesting?
- Cancelled Nickel Trades on the LME
- What is a Blockchain - Ittai Abraham
- How does everything tie together?
- Blockchains as Cryptographic Data Structures - Pramod Viswanath
- Hash functions
- Merkle Tree
- What is a Merkle Tree
- What is Consensus? - Kartik Nayak, Ittai Abraham
- Flavours of State Machine Replication - Ittai Abraham
- Consensus for State Machine Replication - Kartik Nayak, Ittai Abraham
- From Single-Shot Agreement to State Machine Replication
Videos
7. Bitcoin
- Two general's Problem
- What Is the Byzantine Generals Problem?
Readings
- The Byzantine Generals Problem
- Blockchain Basics & Consensus - MIT 15.S12 Blockchain and Money - Gary Gensler
- Paxos(etcd) vs. Nakamoto(Bitcoin): consensus
- Nakamoto's Longest-Chain Wins Protocol
- Learning-Bitcoin-from-the-Command-Line
- Bitcoin: A Peer-to-Peer Electronic Cash System
- But how does bitcoin actually work?
- Cryptoeconomics In 30 Minutes by Vitalik Buterin
8. Ethereum
- Solidity
- ERC20
- ERC721
- ERC-1155
- Merkle Patricia Trie Tree
Readings
- DEVCON1: Understanding the Ethereum Blockchain Protocol - Vitalik Buterin
- Ethereum Whitepaper
- Learn Solidity in Y Minutes
- Getting Started with Solidity
- OpenZeppelin
- Go Ethereum
- Trie, Merkle, Patricia: A Blockchain Story
- Ethereum development made easy with Foundry
- scaffold-eth:
🏗 forkable Ethereum dev stack focused on fast product iterations - Scaffold-Eth Challenges
9. Wallets, Dapps and DeFi
- DEX: Uniswap
- Lending: Aave
- Stablecoin: Maker/DAI
- dYdX
- Metamask and other wallets
- DEMO: Uniswap, Curve, OpenSea NFTs, Maker/Oasis, Multisig
- lil web3: Small, focused, utility-based smart contracts
- Programming DeFi: Uniswap V2. Part 1
- The Problems with DeFi & Crypto
- Programming DeFi: Uniswap V2. Part 1
- Programming DeFi: Uniswap V2. Part 2
- Programming DeFi: Uniswap V2. Part 3
- Uniswap V3 Development Book
9. Oracles, Bridges and Rollups
- Oracles
- Bridges
- An Incomplete Guide to Rollups
10. EVM
- EVM codes
- EVM: From Solidity to byte code, memory and storage
- Ethereum Virtual Machine
- EVM Deep Dives: The Path to Shadowy Super Coder
🥷 💻 - Part 1 - ABI
11. Security
- Capture the Ether
- Ethernaut
- Damn Vulnerable DeFi
- Solidity Security: Comprehensive list of known attack vectors and common anti-patterns
Tools
- echidna - Ethereum smart contract fuzzer
- manticore - Symbolic execution tool
- mythril - Security analysis tool for EVM bytecode
12. MEV
- MEV
- How To Get Front-Run on Ethereum mainnet
- Video: Honeypots in Ethereum And How To Avoid Them With Tenderly.co Transaction Simulation
13. Zcash, SNARKs and Privacy in blockchains**
14. Scaling blockchains
- Data Availability
- Optimistic versus Zero Knoweledge Rollups
- Circom, Cairo, Noir
Readings
- Data, Consensus, Execution: Three Scalability Bottlenecks for State Machine Replication - Ittai Abraham
- Understanding Blockchain Latency and Throughput - Lefteris Kokoris-Kogias
- (Almost) Everything you need to know about Optimistic Rollup - Georgios Konstantopoulos
- Why rollups + data shards are the only sustainable solution for high scalability - Polynya
- Volitions: best of all worlds - Polynya
15. Tendermint, HotStuff and Narwhal
- What is the difference between PBFT, Tendermint, SBFT and HotStuff? - Ittai Abraham
- DAG Meets BFT - The Next Generation of BFT Consensus - Ittai Abraham
16. Bitcoin: SegWit, Taproot, Lightning Network and Covenants
- Segregated Witness
- Taproot: SegWit version 1 spending rules
- Covenants: CHECKTEMPLATEVERIFY
- A Look at the Lightning Network - Lyn Alden
- The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments
Books
- Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction - Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, and Steven Goldfeder
- Security Engineering — Ross Anderson
Blockchain
Cryptography
Abstract Algebra and Number Theory
- An Introduction to Mathematical Cryptography - Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman
- A Course in Number Theory and Cryptography - Neal Koblitz
- Algebra for Applications - Arkadii Slinko
- A Computational Introduction to Number Theory and Algebra - Victor Shoup
- Elliptic Curves Number Theory and Cryptography - Lawrence C. Washington
- The prime number conspiracy - Thomas Lin
Courses
- Practical Cryptographic Systems - Matthew Green
- Cryptocurrency Class 2022 - Patrick McCorry
- Principles of Blockchains - Pramod Viswanath
- Blockchain And Money - Gary Gensler
- Decentralized Finance MOOC - Dan Boneh, Arthur Gervais, Andrew Miller, Christine Parlour and Dawn Song
- Stanford CS 251 Blockchain Technologies - Dan Boneh
- Stanford EE374 Blockchain Foundations - David Tse, Dionysis Zindros
- ECE595 Foundations of Blockchain Systems - Sreeram Kannan
- CS598CAL Consensus Algorithms - Ling Ren
Missing topics
- Light Clients
- UTXO vs Account model
- The Blockchain Trilemma
- PoS vs PoW
- Soft Forks vs Hard Forks
- Onchain vs offchain computation
- Chinese remainder theorem
- One Time Pad
- MAC
- Account Abstraction (argent x)
- Finality
- muun, non custodial wallets
- life depends onl https://twitter.com/argentHQ/status/1513488734498525184
Links to add
- https://crypto.stanford.edu/~dabo/courses/OnlineCrypto/
- https://www.youtube.com/channel/UCqeIoMMTKl9PK9O8BcEpNhQ
- https://youtu.be/-6BtBUbiUIU
- https://github.com/decrypto-org/blockchain-papers
- https://blog.ethereum.org/2016/05/09/on-settlement-finality/
- https://medium.com/mechanism-labs/finality-in-blockchain-consensus-d1f83c120a9a#:~:text=In%20the%20blockchain%20setting%2C%20finality,be%20arbitrarily%20changed%20or%20reversed
- https://github.com/Mechanism-Labs/MetaAnalysis-of-Alternative-Consensus-Protocols
- https://www.youtube.com/watch?v=O1Iq27ItGGg
- https://medium.com/@lightcoin/the-differences-between-a-hard-fork-a-soft-fork-and-a-chain-split-and-what-they-mean-for-the-769273f358c9
- https://dspace.mit.edu/handle/1721.1/127476
- https://medium.facilelogin.com/the-mystery-behind-block-time-63351e35603a
- https://dankradfeist.de/ethereum/2021/05/20/what-everyone-gets-wrong-about-51percent-attacks.html
- https://dinhtta.github.io/flpcap/
- https://www.the-paper-trail.org/post/2012-03-25-flp-and-cap-arent-the-same-thing/
- https://youtu.be/mDyBbGCiBUU
- https://medium.com/@alxlpsc/critical-privacy-vulnerability-getting-exposed-by-metamask-693c63c2ce94
- https://www.cnbc.com/2021/08/23/people-are-paying-millions-of-dollars-for-digital-pictures-of-rocks.html
- https://mudit.blog/miso-war-room/
- https://github.com/ConsenSys/surya
- https://youtu.be/DlNDYMNJ5zQ
- Hayden Adams Explains Uniswap and the Rise of DeFi
- https://cryptomarketpool.com/getting-started-with-solidity/
- https://www.youtube.com/watch?v=U6q5gBnxgS0&list=PL9lJNCwSDOhVEf0ajBHkNNICFqNnoGx7r&index=4
- https://twitter.com/guiltygyoza/status/1447641997012082693?s=12
- https://blog.zkga.me/announcing-darkforest
- https://github.com/Rari-Capital/solmate
- https://youtu.be/7Kq3YWsysc0
- https://youtu.be/RxL_1AfV7N4
- https://dune.xyz/queries/1161
- https://www.youtube.com/watch?v=B2iNXMiGEms
- https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb
- https://jacob-eliosoff.medium.com/whats-the-simplest-possible-decentralized-stablecoin-4a25262cf5e8
- https://writings.flashbots.net/writings/the-anatomy-of-an-inspector/
- https://twitter.com/siegerhino2/status/1445024119112835073?s=21
- https://app.umbra.cash/faq#how-does-umbra-compare-to-tornado-cash-and-aztec
- https://www.samchepal.com/the-hidden-world-of/
- https://www.youtube.com/watch?v=cizLhxSKrAc&t=215s
- https://www.youtube.com/watch?v=Ehm-OYBmlPM
- https://github.com/Mikerah/awesome-foundations-of-DeFi