Skip to content

Latest commit

 

History

History
183 lines (182 loc) · 37.6 KB

README.md

File metadata and controls

183 lines (182 loc) · 37.6 KB

Bitcoin Curriculum

Subject Topic Sources
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