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 |
What is blockchain anyway? |
SF Bitcoin Devs Seminar: A Special Presentation By Matt Corallo of Blockstream |
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 |
What is consensus? (Consensus Algorithms, Blockchain Technology and Bitcoin UCL (2016)) |
Consensus Algorithms, Blockchain Technology and Bitcoin UCL - by Andreas M. Antonopoulos |
Soft Forks & protocol overview |
On Unstoppability of Softforks |
On Unstoppability of Softforks |
Soft Forks & protocol overview |
Upgrading the protocol |
|
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 |
overview-of-security-concerns,Danger! Bitcoin Threat Models Bitcoin’s Security Model: A Deep Dive, Weaknesses, Speed-Security Tradeoffs in Blockchain Protocols |
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 #14121,Exploring Neutrino |
Security Models |
Committed bloom filters |
Committed bloom filters for improved wallet performance and SPV security |
Security Models |
Fraud proofs |
fraud-proofs, fraud proofs.md, Bitcoin Wizards Fraud Proof thread, Improving SPV security with PoW fraud proofs |
Security Models |
Committed UTXO hashes |
UTXO set commitment hash |
Security Models |
Assume UTXO |
Assume UTXO FAQ |
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 |
Default next-block selection |
|
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 -> PPLNS |
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 |
Network partitioning attacks and network level privacy attacks |
|
Mining |
Tumblebit |
TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub |
Attacks |
Dust attacks |
Bitcoin’s Attack Vectors: Dust Attacks |
Consensus approaches |
On consensus |
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 |
BFT |
Understanding Blockchain Fundamentals: Byzantine Fault Tolerance |
Consensus approaches |
Bitcoin-NG/PoW+BFT |
Bitcoin-NG: A Scalable Blockchain Protocol |
Consensus approaches |
PoS |
Understanding Blockchain Fundamentals, 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 |
Fork categorization |
A complete history of Bitcoin’s consensus forks |
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 - John Newbery |
Cryptography |
Bitcoin, Chance and Randomness |
Bitcoin, Chance and Randomness |
Cryptography |
libsecp |
State of Cryptography |
Cryptography |
State of cryptography for blockchains beyond ECDSA and sha256 |
State of cryptography for blockchains beyond ECDSA and sha256 |
Cryptography |
On Bitcoin Security in the Presence of Broken Crypto Primitives |
On Bitcoin Security in the Presence of Broken Crypto Primitive |
Cryptography |
zero knowledge proofs |
Introduction to SNARKs |
Cryptography |
Bulletproofs |
How Bulletproofs Could Make Bitcoin Privacy Less Costly, Bulletproofs: Faster Rangeproofs and Much More, Bulletpoints on bulletproofs, From Zero Knowledge Proofs to Bulletproofs Paper,Building on Bulletproofs |
Cryptography |
Commitment schemes; pedersen commitments |
Cryptography, Non-Interactive and Information- Theoretic Secure Verifiable Secret Sharing |
Cryptography |
Schnorr |
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 |
Cryptography |
MORE.... accumulators, etc |
|
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 |
https://bitcoinj.github.io/working-with-transactions |
Transactions |
Transaction format |
bitcoin/src/script/ismine.cpp |
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 |
Data structures and serialization |
|
Transactions |
Softforks using the script language |
|
Transactions |
Standardness |
Bitcoin Developer Reference, The Bitcoin Non-standard, The Bitcoin Non-standard |
Transactions |
Standard transaction types |
|
Transactions |
0-conf transactions |
0-conf series: Support for zero-confirmation transactions at Bitcoin ATM. To be, or not to be., Solving the 0-conf problem using forfeits |
Transactions |
PSBT |
Andrew Chow: Partially Signed Bitcoin Transactions 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 |
Compacted Transactions |
Transactions |
Mempool |
How the Mempool Works, Transaction Pools, Bitcoin Peer-to-Peer Network - John Newbery |
Blocks |
Blocks overview |
|
Blocks |
Merkle Trees |
Bitcoin Developer Reference, Weaknesses in Bitcoin’s Merkle Root Construction |
Blocks |
Data structures in validation |
Validation costs and incentives |
Blocks |
On disk data structures |
|
Blocks |
Re-orgs |
Handling Re-orgs & Forks - Bryan Bishop |
Blocks |
Pruning |
Block file pruning, Add autoprune functionality PR #5863 |
SegWit |
SegWit |
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 |
SegWit and scalabilty |
segregated witness (segwit) and deploying it for Bitcoin |
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 |
SegWit and blocksize |
Understanding Segwit Block Size |
SegWit |
Bech32 |
New address type for segwit addresses |
SegWit |
Wallet Development |
Segregated Witness Wallet Development Guide |
Wallet |
HD wallet |
Hierarchical Deterministic Wallets, Multi-Account Hierarchy for Deterministic Wallets, HD Wallets Explained: From High Level to Nuts and Bolts |
Wallet |
Wallet BerkeleyDB key value store, data file, environment, logs, flushing |
Migration from Berkeley DB to LevelDB |
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 |
Wallet |
Wallet transaction tracking, mempool and block notifications |
|
Wallet |
Wallet rescan |
How to rescan / reindex wallet? |
Wallet |
Wallet transaction creation: ATMP |
|
Wallet |
Wallet transaction metadata, getbalance, time received, confirmations, IsTrusted |
|
Wallet |
Wallet upgrade |
|
Wallet |
SegWit wallet development |
Segregated Witness Wallet Development Guide |
Wallet |
Fees, fee estimation |
The Fee Market Explained, How wallets can handle transaction fees |
Wallet |
RBF |
Opt-in Full Replace-by-Fee Signaling, 0-conf series: Support for zero-confirmation transactions at Bitcoin ATM. To be, or not to be. |
Wallet |
Coin selection |
Coin Selection, Coin Selection - Milan 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 with John Newbery |
Scripts & Contracts |
Scripting & Transactions - P2PKH, P2SH, P2WPKH, P2WSH, Bech32 |
P2PKH, P2WPKH, P2SH, P2WSH - Greg Sanders, Bitcoin Multisig and P2SH Transactions with Andreas Antonopoulos |
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 |
Scriptless Scripts, Scaling Bitcoin Kaizen Workshops - 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 |
Malleability |
See SegWit Section |
Scripts & Contracts |
MAST |
What is a Bitcoin Merklized Abstract Syntax Tree (MAST)?, Merkleized abstract syntax trees (MAST), MAST stuff |
Scripts & Contracts |
Signature aggregation |
|
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 |
Miniscripts - SBC '19, Miniscript,Policy |
Scripts & Contracts |
State of script |
Restrictive endorsements |
Fungibility & Scalability |
The current state of Bitcoin fungibility (2019) |
Restrictive endorsements |
Fungibility & Scalability |
On Scaling Decentralized Blockchains |
Summary / The fundamental tradeoff, On Scaling Decentralized Blockchains |
Fungibility & Scalability |
Why fungibility is important |
fungibility-and-scalability, Fungibility overview |
Fungibility & Scalability |
Fungibility as an attack vector |
Bitcoin’s Attack Vectors: Fungibility |
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 - NY Demo Day - Empire Startups, Let's talk about ChainAnalysis, The Bitcoin Big Bang |
Fungibility & Scalability |
P2P fingerprinting |
|
Fungibility & Scalability |
tx origin analysis |
A Fistful of Bitcoins: Characterizing Payments Among Men with No Names |
Fungibility & Scalability |
Coinjoin |
Coinjoin wiki page |
Fungibility & Scalability |
Confidential Transactions |
Confidential Transactions,Bitcoins with Homomorphic Value,Confidential Transactions,A Primer to Confidential Transactions, Finessing Commitments |
Fungibility & Scalability |
Tumblebit |
TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub, Tumblebit,Tumblebit for the Tumble Curious |
Fungibility & Scalability |
Coin Jumble |
Coin Jumble |
Fungibility & Scalability |
Mixnets |
This Binance Labs-Backed Crypto Startup Wants to Anonymize Everything |
Fungibility & Scalability |
Schnorr |
EVERYTHING about Schnorr Signatures with Jonas Nick, 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., Technology roadmap - 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 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 - John Newbery |
The P2P Network |
Re-Introduction to net/net_processing |
|
The P2P Network |
Threading Model |
|
The P2P Network |
CConnman, CNode -> CNodeState Migration, CNode Future |
|
The P2P Network |
Network magic and handshake (version, service bits, feefilter, sendcmpct, etc.), service bits |
|
The P2P Network |
Transaction propagation |
On Bitcoin and Red Balloons (incentives) |
The P2P Network |
Headers-first sync'ing |
|
The P2P Network |
Advances in Block propagation |
Advances in block propagation |
The P2P Network |
Compact blocks |
Compact Blocks FAQ, Greg Maxwell: Advances in Block Propagation, 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 (BIP156) |
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 |
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 |
The P2P Network |
DoS concepts (net splits, etc) |
(https://en.bitcoin.it/wiki/Weaknesses#Denial_of_Service_.28DoS.29_attacks), (https://bitcoin.stackexchange.com/questions/1738/what-would-happen-if-a-portion-of-the-bitcoin-network-was-separated-from-the-res), (https://bitcoin.stackexchange.com/questions/8738/feasibility-of-a-high-horsepower-attack-based-on-difficulty-4x-adjustments) |
The P2P Network |
Denial-of-Service Prevention |
Denial of Service (DoS) attacks, 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 |
OP_EVAL, OP_CHV and Taproot |
|
Chain Forks and Failures |
A history of consensus changes in Bitcoin |
|
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 - James O'Beirne |
Bitcoin |
Learning-Bitcoin-from-the-Command-Line |
The best way to learn to learn deeply about bitcoin is to avoid GUIs (even bitcoin-qt), and instead learn it from the command line. |
Bitcoin Core Contribution |
Contributing to Core |
Contributing to Bitcoin Core,Introduction to Bitcoin Development, Contributing to Bitcoin Core, a personal account |