Resources¶
A curated list of primary sources, specifications, and books referenced throughout the book. Quality over quantity. This list favors original material over secondary summaries and blog posts.
Bitcoin¶
- Bitcoin: A Peer-to-Peer Electronic Cash System: the whitepaper
- Bitcoin Core repository
- Bitcoin Core developer documentation
- Bitcoin Improvement Proposals (BIPs)
- Satoshi Nakamoto Institute: archive of Satoshi's writings and related cypherpunk history
- Cryptography mailing list archive: where the whitepaper was first announced
- bitcointalk.org: the original Bitcoin forum, active since 2009
- BIP 16: Pay to Script Hash
- BIP 34: Block v2, Height in Coinbase
- BIP 125: Opt-in Full Replace-by-Fee
- BIP 141: Segregated Witness
- BIP 340/341/342: Taproot
- Cambridge Bitcoin Electricity Consumption Index
- BIP 9: Version bits with timeout and delay
- BIP 148: Mandatory activation of segwit deployment
- Crypto Open Patent Alliance v Craig Wright, UK High Court judgment, March 2024
Ethereum¶
- ethereum.org
- Ethereum Yellow Paper
- Ethereum execution specs
- Ethereum consensus specs
- Ethereum Improvement Proposals (EIPs)
- EIP-1559: Fee market change
- Ethereum JSON-RPC specification
- Casper the Friendly Finality Gadget: Buterin & Griffith, 2017
- Solidity documentation
viemdocumentation: used throughout this book's Web3 exampleswagmidocumentation- EIP-712: Typed structured data hashing and signing
- EIP-1193: Ethereum Provider JavaScript API
- WalletConnect documentation
Cryptography¶
- A Cypherpunk's Manifesto: Eric Hughes, 1993
- Security Without Identification: David Chaum, 1985
- Blind Signatures for Untraceable Payments: David Chaum, 1982
- Hashcash: Adam Back, 2002
- NIST FIPS 180-4: Secure Hash Standard
- SEC 2: Recommended Elliptic Curve Domain Parameters: Certicom Research
- New Directions in Cryptography: Diffie & Hellman, 1976
- BIP 340: Schnorr Signatures for secp256k1
- RFC 6979: Deterministic Usage of DSA and ECDSA
- The Knowledge Complexity of Interactive Proof Systems: Goldwasser, Micali, Rackoff, 1985
@noble/curves: the audited TypeScript library used in this book's cryptography examples@scure/bip39and@scure/bip32, used in the Wallets section's derivation examples- BIP 32: Hierarchical Deterministic Wallets
- BIP 39: Mnemonic code for generating deterministic keys
- BIP 44: Multi-Account Hierarchy for Deterministic Wallets
Distributed systems¶
- The Byzantine Generals Problem: Lamport, Shostak, Pease, 1982
- Practical Byzantine Fault Tolerance: Castro & Liskov, 1999
- The Part-Time Parliament: Leslie Lamport, 1998
- The Sybil Attack: John R. Douceur, 2002
- Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services: Gilbert & Lynch, 2002
Economics¶
- On the Origin of Money: Carl Menger, 1892
- The General Theory of Employment, Interest and Money: John Maynard Keynes, 1936
- A Monetary History of the United States, 1867–1960: Milton Friedman & Anna Schwartz, 1963
- Money Creation in the Modern Economy: Bank of England Quarterly Bulletin, 2014
- The Deficit Myth: Stephanie Kelton, 2020 (Modern Monetary Theory)
- The State Theory of Money: Georg Friedrich Knapp, 1905
Austrian economics¶
- On the Origin of Money: Carl Menger, 1892
- Principles of Economics: Carl Menger, 1871
- The Theory of Money and Credit: Ludwig von Mises, 1912
- Denationalisation of Money: The Argument Refined: Friedrich Hayek, 1976/1978
- What Has Government Done to Our Money?: Murray Rothbard, 1963
- Bitcoin, the Regression Theorem, and the Emergence of a New Medium of Exchange: Konrad Graf, 2013
- b-money: Wei Dai, 1998
- Bit gold: Nick Szabo, 2005
- Shelling Out: The Origins of Money: Nick Szabo
Smart contracts¶
- Solidity documentation
- Foundry Book
- OpenZeppelin Contracts
- EIP-1967: Standard Proxy Storage Slots
- EIP-2535: Diamonds, Multi-Facet Proxy
Tokens¶
- EIP-20: Token Standard
- EIP-721: Non-Fungible Token Standard
- EIP-1155: Multi Token Standard
- WETH9 (verified live on mainnet)
DeFi¶
- Uniswap v2 whitepaper
- Uniswap v3 whitepaper
- Uniswap v2 core contracts
- Curve StableSwap whitepaper: Michael Egorov
- Aave V2 whitepaper
- Aave documentation
- MakerDAO whitepaper
- Sky Protocol documentation
- Chainlink documentation: price feeds
Layer 2¶
- EIP-4844: Shard Blob Transactions
- EIP-7892: Blob Parameter Only Hardforks
- Ethereum: a rollup-centric roadmap: Vitalik Buterin, 2020
- Arbitrum Nitro whitepaper
- Arbitrum documentation
- OP Stack specification
- Optimism documentation
- Base documentation
- L2Beat: rollup stages framework
- zkSync documentation
- StarkNet documentation
- LayerZero documentation
- Wormhole documentation
Security¶
- Solidity security considerations
- Ethereum.org smart contract security
- Ethereum.org security and scam prevention
- OpenZeppelin Contracts documentation
- OpenZeppelin access control
- OpenZeppelin upgrades documentation
- Ethereum.org formal verification
- Solidity SMTChecker
- Flashbots documentation
- Ronin Network: Community Alert, Ronin Validators Compromised
- Wormhole incident report, 2 February 2022
- Verichains Ronin Bridge audit, June 2022
Infrastructure¶
- Ethereum nodes and clients
- Running an Ethereum node
- Ethereum archive nodes
- Ethereum JSON-RPC
- Bitcoin Core RPC
- Geth documentation
- The Graph subgraphs
- The Graph indexing overview
- Graph Node documentation
- CloudEvents specification
Governance¶
- BIP 3: Updated BIP Process
- Bitcoin Improvement Proposals repository
- Bitcoin Core contribution guidelines
- EIP-1: EIP Purpose and Guidelines
- Ethereum governance
- Ethereum execution specifications
- Ethereum consensus specifications
- OpenZeppelin governance documentation
Regulation and society¶
- FATF guidance for virtual assets and VASPs
- Regulation (EU) 2023/1114 on markets in crypto-assets
- Banco Central do Brasil: regulation of virtual assets
- BCB Resolution 520
- BIS CBDC publications
- IMF CBDC Virtual Handbook
- Ethereum privacy
Books¶
- Andreas M. Antonopoulos, Mastering Bitcoin, for Bitcoin transaction, script, wallet, and network mechanics
- Andreas M. Antonopoulos and Gavin Wood, Mastering Ethereum, for Ethereum accounts, transactions, the EVM, and smart contracts
- Ross Anderson, Security Engineering, for threat modeling, authentication, access control, and system failure analysis beyond blockchain-specific code
Papers¶
- Blind Signatures for Untraceable Payments: David Chaum, CRYPTO '82
- Pricing via Processing or Combatting Junk Mail: Dwork & Naor, CRYPTO '92
Specifications¶
Source-code repositories¶
- bitcoin/bitcoin: Bitcoin Core
- ethereum/go-ethereum: Geth, an Ethereum execution client