Introduction | White Paper | Bitcoin: A Peer-to-Peer Electronic Cash System |
Introduction | If I'd Known What We Were Starting (2017) | If I'd Known What We Were Starting |
Introduction | Bitcoin's Academic Pedigree (2017) | Bitcoin's Academic Pedigree |
Introduction | Intro to Blockchain | What is blockchain anyway? |
Introduction | Intro to Blockchain | Electronic cash explained for developers video |
Introduction | The Economic Limits of Bitcoin and the Blockchain | The Economic Limits of Bitcoin and the Blockchain |
Introduction | Proof of work | The Anatomy of Proof-of-Work, Bitcoin Developer Reference |
Introduction | Difficulty adjustment | What keeps the average block time at 10 minutes? |
Introduction | Byzantine generals problem | The Byzantine Generals Problem |
Introduction | Running a full node | Full Node Question |
History & Philosophy of Bitcoin | History of Bitcoin Development | The Incomplete History of Bitcoin Development |
History & Philosophy of Bitcoin | What is consensus? | Consensus Algorithms, Blockchain Technology and Bitcoin |
Soft Forks & protocol overview | On Unstoppability of Softforks | On Unstoppability of Softforks |
Soft Forks & protocol overview | Example soft forks | Softfork wiki page |
Soft Forks & protocol overview | Forking signaling and Activation | Forks, Signaling, and Activation |
Soft Forks & protocol overview | Fork categorization (soft, hard, evil, etc.) | Better Fork Terminology, Forced Soft Forks |
Soft Forks & protocol overview | Flag day upgrades | UASF: User Driven Protocol Development |
Soft Forks & protocol overview | IsSuperMajority signaling | BIP 65 |
Soft Forks & protocol overview | BIP9 signaling | BIP9: versionbits In a Nutshell, BIP 9 |
Soft Forks & protocol overview | BIP148 and BIP149 | BIP 148, BIP 149, UASF BIP148 Scenarios and Game Theory, User Activated Soft Forks: the BIP 148 alternative |
Soft Forks & protocol overview | BIP91 | BIP 91 |
Security Models | Overview | Security models seminar video, Overview of Security Concerns, Danger! Bitcoin Threat Models, Bitcoin’s Security Model: A Deep Dive, Weaknesses, Speed-Security Tradeoffs in Blockchain Protocols, The Onion Model of Blockchain Security |
Security Models | Checkpoints, assumevalid, minimumchainwork | Bitcoin's Diversity of Use-Cases and Security Models, Dave Harding Tweet on assumed valid blocks and minimum chainwork |
Security Models | Defining SPV and lightclients | Light Clients |
Security Models | BIP 37 (bloom filters) | BIP 37, On the Privacy Provisions of Bloom Filters in Lightweight Bitcoin Clients |
Security Models | Neutrino | BIP 157, Neutrino: The Lighter Side of Lightning, Index for BIP 157 block filters, Exploring Neutrino |
Security Models | Committed bloom filters | Committed bloom filters for improved wallet performance and SPV security |
Security Models | Fraud proofs | Fraud Proofs (2018), Fraud Proofs: Improving the ability of SPV clients to detect invalid chains (gist), Improving SPV security with PoW fraud proofs |
Security Models | Committed UTXO hashes | UTXO set commitment hash |
Security Models | Assume UTXO | Assume UTXO FAQs, Assume UTXO (video) |
Security Models | Utreexo | ELI5: Utreexo, A description of research by Thaddeus Dryja |
Security Models | Alternative UTXO Set Proposals | Alternative UTXO Set Proposals seminar video |
Mining | Poisson distribution/Progress-free-ness | The Poisson Distribution and Poisson Process Explained |
Mining | Block arrivals in the Bitcoin blockchain | Block arrivals in the Bitcoin blockchain |
Mining | Fee Sniping | nSequence and opt-in ReplaceByFee |
Mining | Selfish Mining | On the Instability of Bitcoin Without the Block Reward, Majority is not Enough: Bitcoin Mining is Vulnerable, How to Mine Bitcoin Profitably - 2015, Why Bitcoin Mining Pools Aren’t Incentivized to Broadcast Blocks Quickly, Optimal Selfish Mining Strategies in Bitcoin, If There Is an Answer to Selfish Mining, Braiding Could Be It |
Mining | 51% attacks | Bitcoin’s Attack Vectors: 51% Attacks |
Mining | BetterHash | BetterHash Mining Protocol(s) |
Mining | No Reward Mining Overview | On the Instability of Bitcoin Without the Block Reward |
Mining | Pool overview | Analysis of Bitcoin Pooled Mining Reward Systems |
Mining | Pool Hopping | Pay Per Last (luck) N Shares - PPLNS |
Mining | PPS As a Real-World Business Solution | Pooled mining |
Mining | Trustless Pools | P2Pool |
Mining | Payment Channel Payouts | Payment Channel Payouts: An Idea for Improving P2Pool Scalability |
Mining | ASICBoost | AsicBoost: A Speedup for Bitcoin Mining, The Problem with ASICBOOST, Inhibiting a covert attack on the Bitcoin POW function |
Mining | BCH Mining/Difficulty Adjustment | Bringing Stability to Bitcoin Cash Difficulty Adjustments, Bitcoin Cash Difficulty Adjustments, Difficulty Adjustment Algorithm Update |
Mining | Tumblebit | TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub |
Attacks | Dust attacks | Dust Attacks |
Consensus approaches | Overview | On Consensus |
Consensus approaches | GHOST | The GHOSTDAG protocol, Secure High-Rate Transaction Processing in Bitcoin, Modified GHOST Implementation |
Consensus approaches | Braiding | Braiding the blockchain |
Consensus approaches | Byzantine Fault Tolerance | Byzantine Fault Tolerance |
Consensus approaches | Bitcoin-NG/PoW+BFT | Bitcoin-NG: A Scalable Blockchain Protocol |
Consensus approaches | Proof of Stake | Proof of Work & Proof of Stake, Proof-of-Stake & the Wrong Engineering Mindset |
Consensus approaches | Sidechains | Enabling Blockchain Innovations with Pegged Sidechains, Sidechains, Proof-of-Work Sidechains |
Consensus Changes & Hard Forks | History | A complete history of Bitcoin’s consensus forks, March 2013 Chain Fork Post-Mortem |
Consensus Changes & Hard Forks | Extension blocks | Auxiliary block: Increasing max block size with softfork, How Bitcoin Extension Blocks Are Backward Compatible — and How They’re Not |
Consensus Changes & Hard Forks | Hard forks: Potential dangers | Network Partitioning |
Consensus Changes & Hard Forks | Replay protection | Replay Attacks Explained, How to Protect Against Replay Attacks, 2017_optin_replay code on btc1 |
Consensus Changes & Hard Forks | Wipeout protection | |
Consensus Changes & Hard Forks | Light nodes | Lightweight node wiki page |
Consensus Changes & Hard Forks | Current research (spoonnet, etc) | Spoonnet: another experimental hardfork |
Cryptography | The 3 Seminal Events In Cryptography | The 3 Seminal Events In Cryptography |
Cryptography | An Overview of Public Key Cryptography | An Overview of Public Key Cryptography |
Cryptography | Finite fields, Elliptic Curves, ECDSA, Schnorr | Finite fields, Elliptic Curves, ECDSA, Schnorr Cryptography, Elliptic Curve Cryptography Explained |
Cryptography | Bitcoin, Chance and Randomness | Bitcoin, Chance and Randomness |
Cryptography | On Bitcoin Security in the Presence of Broken Crypto Primitives | On Bitcoin Security in the Presence of Broken Crypto Primitive |
Cryptography | Signatures and zero-knowledge proofs | State of Cryptography - beyond ECDSA and sha256 |
Cryptography | zero knowledge proofs | Introduction to SNARKs |
Cryptography | Bulletproofs | How Bulletproofs Could Make Bitcoin Privacy Less Costly, Bulletproofs: Faster Rangeproofs and Much More, Building on Bulletproofs |
Cryptography | Commitment schemes; pedersen commitments | Commitment schemes, Non-Interactive and Information- Theoretic Secure Verifiable Secret Sharing |
Cryptography | Schnorr | Introduction to Schnorr Signatures (video), Simple Schnorr Multi-Signatures with Applications to Bitcoin, Liars, cheats, scammers and the Schnorr signature |
Cryptography | Diffie-Hellman | Diffie-Hellman Key Exchange: A Non-mathematician’s explanation |
Cryptography | Ring Signatures | Ring signatures |
Cryptography | RSA | How RSA Works With Examples |
Transactions | Understanding a Raw Bitcoin Transaction | Understanding a Raw Bitcoin Transaction |
Transactions | Understanding a Raw Bitcoin Transaction the hard way | Bitcoins the hard way: Using the raw Bitcoin protocol |
Transactions | Working with Transactions | Working with transactions (bitcoinj) |
Transactions | Transaction format | IsMine function in Bitcoin Core |
Transactions | Script | Bitcoin Developer Reference, Advanced Bitcoin Scripting: Transactions & Multisig |
Transactions | Signing transactions | Why the signature is always 65 (1+32+32) bytes long? |
Transactions | Standardness | Bitcoin Developer Reference, The Bitcoin Non-standard, Definition of Standardness |
Transactions | 0-conf transactions | Support for zero-confirmation transactions at Bitcoin ATM, Solving the 0-conf problem using forfeits |
Transactions | Partially Signed Bitcoin Transactions | Partially Signed Bitcoin Transactions (video), BIP 174, Partially Signed Bitcoin Transactions, PSBT Howto for Bitcoin Core, Partially Signed Bitcoin Transaction (PSBT) format |
Transactions | SIGHASH_NOINPUT | BIP sighash_noinput |
Transactions | Compacted Transactions | |
Transactions | Mempool | How the Mempool Works, Transaction Pools, Bitcoin Peer-to-Peer Network |
Blocks | Merkle Trees | Bitcoin Developer Reference, Weaknesses in Bitcoin’s Merkle Root Construction |
Blocks | Data structures in validation | Validation costs and incentives |
Blocks | Re-orgs | Handling Re-orgs & Forks |
Blocks | Pruning | Block file pruning, Add autoprune functionality PR #5863 |
SegWit | SegWit background and history | Understanding Segregated Witness, Segregated Witness, Bitcoin Protocol Design: Segregated Witness Revisited, Segwit, Segregated Witness Benefits, Segregated Witness Costs and Risks, The Long Road to SegWit: How Bitcoin’s Biggest Protocol Upgrade Became Reality |
SegWit | Advanced SegWit | Advanced SegWit seminar video |
SegWit | SegWit and scalabilty | Segregated Witness and deploying it for Bitcoin (2015) |
SegWit | Tx malleability | Transaction Malleability Explained, Transaction Malleability Explained, 2014, The Who, What, Why and How of the Ongoing Transaction Malleability Attack, Dealing with malleability, Bitcoin Transaction Malleability and MtGox |
SegWit | Tx malleability | Malleation code exercise repo |
SegWit | SegWit and blocksize | Understanding Segwit Block Size |
SegWit | Bech32 | New address type for segwit addresses |
SegWit | Wallet Development | Segregated Witness Wallet Development Guide |
Wallet | Wallet Development in Bitcoin Core | Wallet Development in Bitcoin Core seminar video |
Wallet | HD wallet | Hierarchical Deterministic Wallets, Multi-Account Hierarchy for Deterministic Wallets, HD Wallets Explained: From High Level to Nuts and Bolts |
Wallet | Native Descriptor Wallets | Native Descriptor Wallets |
Wallet | Wallet BerkeleyDB key value store, data file, environment, logs, flushing | Migration from Berkeley DB to LevelDB, (also see BIP 50) |
Wallet | Wallet key types: Regular, watch-only, hd | Wallets and Accounts and Keys, Oh My! |
Wallet | Wallet key management: Keypools, key metadata, address metadata | Understanding keypool in Bitcoin Core, Understanding the Gap Limit |
Wallet | Wallet rescan | How to rescan / reindex wallet? |
Wallet | Fees | The Fee Market Explained, How wallets can handle transaction fees |
Wallet | Fee estimation | Fee estimation code exercise |
Wallet | Replace by Fee | Opt-in Full Replace-by-Fee Signaling, Support for zero-confirmation transactions at Bitcoin ATM |
Wallet | Coin selection | Unspent Management and Coin Selection, Coin Selection, Coin Selection (Scaling 2016), An Evaluation of Coin Selection Strategies |
Wallet | Hardware wallets with Bitcoin core | Using your hardware wallet with Bitcoin Core |
Scripts & Contracts | Scripting & Transactions | Scripts - general & simple video |
Scripts & Contracts | Scripting & Transactions | Bitcoin Script: Past and Future video |
Scripts & Contracts | Scripting & Transactions - P2PKH, P2SH, P2WPKH, P2WSH, Bech32 | P2PKH, P2WPKH, P2SH, P2WSH, Dissecting a P2PKH Bitcoin Transaction down to the last Byte, Bitcoin Multisig and P2SH Transactions |
Scripts & Contracts | Script Descriptors | Script descriptors, Support for Output Descriptors in Bitcoin Core |
Scripts & Contracts | P2EP | Improving Privacy Using Pay-to-EndPoint |
Scripts & Contracts | Smart Contracts on a Dumb Chain; MimbleWimble | Behind MimbleWimble |
Scripts & Contracts | Smart Contracts on a Dumb Chain; scriptless scripts | ElementsProject/scriptless-scripts, Scriptless Scripts, Scriptless scripts, adaptor signatures and their applications |
Scripts & Contracts | Payment Channels | Understanding Payment Channels, Bitcoin Protocol Design: Payment Channels Revisited, Bitcoin script v2.0 |
Scripts & Contracts | MAST | What is a Bitcoin Merklized Abstract Syntax Tree (MAST)?, Merkleized abstract syntax trees (MAST), MAST Discussion |
Scripts & Contracts | ZK SNARKS | SNARKS, Introduction to SNARKs, STARKs: Proofs with Polynomials |
Scripts & Contracts | ZK STARKS | Scalable, transparent, and post-quantum secure computational integrity, STARKs: Thank Goodness It's FRI-day, STARKs: Into the Weeds, ZK-STARKs — Create Verifiable Trust, even against Quantum Computers |
Scripts & Contracts | Discreet Log Contracts | Discreet Log Contracts, Discreet Log Contracts: invisible smart contracts on the Bitcoin blockchain |
Scripts & Contracts | Miniscript | Miniscript, Policy to Miniscript compiler |
Scripts & Contracts | State of script | The State of Script (2018) |
Fungibility & Scalability | Overview | The current state of Bitcoin fungibility (2019) |
Fungibility & Scalability | On Scaling Decentralized Blockchains | The fundamental tradeoff, On Scaling Decentralized Blockchains |
Fungibility & Scalability | Why fungibility is important | Fungibility And Scalability, Fungibility overview, Fungibility as an Attack Vectors: |
Fungibility & Scalability | Privacy | Different Approaches to Privacy on the Blockchain, Privacy, Privacy, How much privacy is enough? Threats, scaling, and trade-offs in blockchain privacy protocols, Privacy surrounding the Blockchain |
Fungibility & Scalability | Chain analysis | Chainalysis Live Demo, Let's talk about ChainAnalysis |
Fungibility & Scalability | Wallet fingerprinting | Wallet Fingerprinting (wiki) |
Fungibility & Scalability | Transaction origin analysis | A Fistful of Bitcoins: Characterizing Payments Among Men with No Names |
Fungibility & Scalability | Coinjoin | Coinjoin wiki page |
Fungibility & Scalability | Confidential Transactions | Bitcoins with Homomorphic Value, Confidential Transactions, A Primer to Confidential Transactions |
Fungibility & Scalability | Tumblebit | TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub, Tumblebit |
Fungibility & Scalability | Coin Jumble | Coin Jumble |
Fungibility & Scalability | Schnorr | Schnorr Signatures for Bitcoin - BPASE '18, Flipping the scriptless script on Schnorr, Schnorr Signatures |
Fungibility & Scalability | Bellare-Neven | Multi-Signatures in the Plain Public-Key Model and a General Forking Lemma |
Fungibility & Scalability | Threshold Schemes | Threshold cryptosystem, Threshold signatures and accountability |
Fungibility & Scalability | Signature aggregation | Signature aggregation for improved scalablity, Schnorr signatures and signature aggregation, BLS Multi-Signatures With Public-Key Aggregation |
Fungibility & Scalability | MuSig | Key Aggregation for Schnorr Signatures, MuSig: A New Multisignature Standard, Simple Schnorr Multi-Signatures with Applications to Bitcoin |
Fungibility & Scalability | Taproot | Taproot and Policy (video), Taproot and graftroot, Taproot: SegWit version 1 output spending rules |
Fungibility & Scalability | Graftroot | Graftroot: Private and efficient surrogate scripts under the taproot assumption |
The P2P Network | Overview of the p2p network | Bitcoin Peer-to-Peer Network |
The P2P Network | Overview of the p2p network | Adversarial Thinking in the Peer-to-Peer Network - first 41:29 |
The P2P Network | P2P Design | Undocumented P2P Design of Bitcoin Core |
The P2P Network | Transaction propagation | On Bitcoin and Red Balloons (incentives) |
The P2P Network | Headers-first sync'ing | Headers-First Sync (wiki) |
The P2P Network | Advances in Block propagation | Advances in block propagation |
The P2P Network | Compact blocks | Compact Blocks FAQ, Compact Block Relay |
The P2P Network | Relay networks, FIBRE | Relay networks, The Future of The Bitcoin Relay Network, What is FIBRE? |
The P2P Network | Deanonymization in the Bitcoin P2P Network | Deanonymization in the Bitcoin P2P Network |
The P2P Network | Dandelion | Dandelion: Redesigning the Bitcoin Network for Anonymity, Dandelion++: Lightweight Cryptocurrency Networking with Formal Anonymity Guarantees, What is the tradeoff between privacy and implementation complexity of Dandelion? |
The P2P Network | Peer discovery | Network Discovery |
The P2P Network | Topology Discovery | Discovering Bitcoin’s Public Topology and Influential Nodes, TxProbe: Discovering Bitcoin's Network Topology Using Orphan Transactions |
The P2P Network | Peer connectivity | |
The P2P Network | BGP Hijack | Hijacking Bitcoin: Routing Attacks on Cryptocurrencies |
The P2P Network | Network partitioning & network level privacy attacks | Network partitioning & network level privacy attacks seminar video |
The P2P Network | Researching P2P privacy attacks | Researching P2P privacy attacks seminar video |
The P2P Network | Eclipse Attacks on Bitcoin’s Peer-to-Peer Network (2015) | Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Eclipse Attacks on Bitcoin’s Peer-to-Peer Network (video) |
The P2P Network | Denial-of-Service concepts | Denial of Service (DoS) attacks wiki, Network Splits, "High horsepower" attacks |
The P2P Network | Denial-of-Service Prevention | Denial of Service (DoS) Prevention, DoS countermeasures may facilitate network fragmentation attacks |
The P2P Network | SPV nodes | Future of SPV tech |
The P2P Network | MiniSketch | Minisketch: Reducing Bitcoin Node Bandwidth Requirements, Minisketch: an optimized library for BCH-based set reconciliation |
Chain Forks and Failures | BIP 66 Fork and spy mining | Strict DER signatures, What is SPV mining, and how did it (inadvertently) cause the fork after BIP66 was activated? |
Bitcoin Core Architecture | Architecture overview | An overview of Bitcoin Core architecture (video) |
Bitcoin | Learning-Bitcoin-from-the-Command-Line | Programming with Bitcoin Core and Lightning |
Bitcoin Core Contribution | Contributing to Core | Contributing to Bitcoin Core, Introduction to Bitcoin Development, Contributing to Bitcoin Core, a personal account, Onboarding to Bitcoin Core |
Bitcoin Core Contribution | Debugging Bitcoin Core | Debugging Bitcoin Core (video) |