Mastering Bitcoin: Programming the Open Blockchain (2017)
Appendix C. Bitcoin Improvement Proposals
Bitcoin Improvement Proposals are design documents providing information to the bitcoin community, or for describing a new feature for bitcoin or its processes or environment.
As per BIP-01 BIP Purpose and Guidelines, there are three kinds of BIPs:
Standard BIP
Describes any change that affects most or all bitcoin implementations, such as a change to the network protocol, a change in block or transaction validity rules, or any change or addition that affects the interoperability of applications using bitcoin.
Informational BIP
Describes a bitcoin design issue, or provides general guidelines or information to the bitcoin community, but does not propose a new feature. Informational BIPs do not necessarily represent a bitcoin community consensus or recommendation, so users and implementors may ignore informational BIPs or follow their advice.
Process BIP
Describes a bitcoin process, or proposes a change to (or an event in) a process. Process BIPs are like standard BIPs but apply to areas other than the bitcoin protocol itself. They might propose an implementation, but not to bitcoin’s codebase; they often require community consensus; and unlike informational BIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in bitcoin development. Any meta-BIP is also considered a process BIP.
BIPs are recorded in a versioned repository on GitHub: https://github.com/bitcoin/bips. Table C-1 shows a snapshot of the BIPs in April 2017. Consult the authoritative repository for up-to-date information on existing BIPs and their contents.
BIP# |
Title |
Owner |
Type |
Status |
BIP-1 |
BIP Purpose and Guidelines |
Amir Taaki |
Process |
Replaced |
BIP-2 |
BIP process, revised |
Luke Dashjr |
Process |
Active |
BIP-8 |
Version bits with guaranteed lock-in |
Shaolin Fry |
Informational |
Draft |
BIP-9 |
Version bits with timeout and delay |
Pieter Wuille, Peter Todd, Greg Maxwell, Rusty Russell |
Informational |
Final |
BIP-10 |
Multi-Sig Transaction Distribution |
Alan Reiner |
Informational |
Withdrawn |
BIP-11 |
M-of-N Standard Transactions |
Gavin Andresen |
Standard |
Final |
BIP-12 |
OP_EVAL |
Gavin Andresen |
Standard |
Withdrawn |
BIP-13 |
Address Format for pay-to-script-hash |
Gavin Andresen |
Standard |
Final |
BIP-14 |
Protocol Version and User Agent |
Amir Taaki, Patrick Strateman |
Standard |
Final |
BIP-15 |
Aliases |
Amir Taaki |
Standard |
Deferred |
BIP-16 |
Pay to Script Hash |
Gavin Andresen |
Standard |
Final |
BIP-17 |
OP_CHECKHASHVERIFY (CHV) |
Luke Dashjr |
Standard |
Withdrawn |
BIP-18 |
hashScriptCheck |
Luke Dashjr |
Standard |
Proposed |
BIP-19 |
M-of-N Standard Transactions (Low SigOp) |
Luke Dashjr |
Standard |
Draft |
BIP-20 |
URI Scheme |
Luke Dashjr |
Standard |
Replaced |
BIP-21 |
URI Scheme |
Nils Schneider, Matt Corallo |
Standard |
Final |
BIP-22 |
getblocktemplate - Fundamentals |
Luke Dashjr |
Standard |
Final |
BIP-23 |
getblocktemplate - Pooled Mining |
Luke Dashjr |
Standard |
Final |
BIP-30 |
Duplicate transactions |
Pieter Wuille |
Standard |
Final |
BIP-31 |
Pong message |
Mike Hearn |
Standard |
Final |
BIP-32 |
Hierarchical Deterministic Wallets |
Pieter Wuille |
Informational |
Final |
BIP-33 |
Stratized Nodes |
Amir Taaki |
Standard |
Draft |
BIP-34 |
Block v2, Height in Coinbase |
Gavin Andresen |
Standard |
Final |
BIP-35 |
mempool message |
Jeff Garzik |
Standard |
Final |
BIP-36 |
Custom Services |
Stefan Thomas |
Standard |
Draft |
BIP-37 |
Connection Bloom filtering |
Mike Hearn, Matt Corallo |
Standard |
Final |
BIP-38 |
Passphrase-protected private key |
Mike Caldwell, Aaron Voisine |
Standard |
Draft |
BIP-39 |
Mnemonic code for generating deterministic keys |
Marek Palatinus, Pavol Rusnak, Aaron Voisine, Sean Bowe |
Standard |
Proposed |
BIP-40 |
Stratum wire protocol |
Marek Palatinus |
Standard |
BIP number allocated |
BIP-41 |
Stratum mining protocol |
Marek Palatinus |
Standard |
BIP number allocated |
BIP-42 |
A finite monetary supply for Bitcoin |
Pieter Wuille |
Standard |
Draft |
BIP-43 |
Purpose Field for Deterministic Wallets |
Marek Palatinus, Pavol Rusnak |
Informational |
Draft |
BIP-44 |
Multi-Account Hierarchy for Deterministic Wallets |
Marek Palatinus, Pavol Rusnak |
Standard |
Proposed |
BIP-45 |
Structure for Deterministic P2SH Multisignature Wallets |
Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia |
Standard |
Proposed |
BIP-47 |
Reusable Payment Codes for Hierarchical Deterministic Wallets |
Justus Ranvier |
Informational |
Draft |
BIP-49 |
Derivation scheme for P2WPKH-nested-in-P2SH based accounts |
Daniel Weigl |
Informational |
Draft |
BIP-50 |
March 2013 Chain Fork Post-Mortem |
Gavin Andresen |
Informational |
Final |
BIP-60 |
Fixed Length “version” Message (Relay-Transactions Field) |
Amir Taaki |
Standard |
Draft |
BIP-61 |
Reject P2P message |
Gavin Andresen |
Standard |
Final |
BIP-62 |
Dealing with malleability |
Pieter Wuille |
Standard |
Withdrawn |
BIP-63 |
Stealth Addresses |
Peter Todd |
Standard |
BIP number allocated |
BIP-64 |
getutxo message |
Mike Hearn |
Standard |
Draft |
BIP-65 |
OP_CHECKLOCKTIMEVERIFY |
Peter Todd |
Standard |
Final |
BIP-66 |
Strict DER signatures |
Pieter Wuille |
Standard |
Final |
BIP-67 |
Deterministic Pay-to-script-hash multi-signature addresses through public key sorting |
Thomas Kerin, Jean-Pierre Rupp, Ruben de Vries |
Standard |
Proposed |
BIP-68 |
Relative lock-time using consensus-enforced sequence numbers |
Mark Friedenbach, BtcDrak, Nicolas Dorier, kinoshitajona |
Standard |
Final |
BIP-69 |
Lexicographical Indexing of Transaction Inputs and Outputs |
Kristov Atlas |
Informational |
Proposed |
BIP-70 |
Payment Protocol |
Gavin Andresen, Mike Hearn |
Standard |
Final |
BIP-71 |
Payment Protocol MIME types |
Gavin Andresen |
Standard |
Final |
BIP-72 |
bitcoin: uri extensions for Payment Protocol |
Gavin Andresen |
Standard |
Final |
BIP-73 |
Use “Accept” header for response type negotiation with Payment Request URLs |
Stephen Pair |
Standard |
Final |
BIP-74 |
Allow zero value OP_RETURN in Payment Protocol |
Toby Padilla |
Standard |
Draft |
BIP-75 |
Out of Band Address Exchange using Payment Protocol Encryption |
Justin Newton, Matt David, Aaron Voisine, James MacWhyte |
Standard |
Draft |
BIP-80 |
Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets |
Justus Ranvier, Jimmy Song |
Informational |
Deferred |
BIP-81 |
Hierarchy for Colored Voting Pool Deterministic Multisig Wallets |
Justus Ranvier, Jimmy Song |
Informational |
Deferred |
BIP-83 |
Dynamic Hierarchical Deterministic Key Trees |
Eric Lombrozo |
Standard |
Draft |
BIP-90 |
Buried Deployments |
Suhas Daftuar |
Informational |
Draft |
BIP-99 |
Motivation and deployment of consensus rule changes ([soft/hard]forks) |
Jorge Timón |
Informational |
Draft |
BIP-101 |
Increase maximum block size |
Gavin Andresen |
Standard |
Withdrawn |
BIP-102 |
Block size increase to 2MB |
Jeff Garzik |
Standard |
Draft |
BIP-103 |
Block size following technological growth |
Pieter Wuille |
Standard |
Draft |
BIP-104 |
Block75 - Max block size like difficulty |
t.khan |
Standard |
Draft |
BIP-105 |
Consensus based block size retargeting algorithm |
BtcDrak |
Standard |
Draft |
BIP-106 |
Dynamically Controlled Bitcoin Block Size Max Cap |
Upal Chakraborty |
Standard |
Draft |
BIP-107 |
Dynamic limit on the block size |
Washington Y. Sanchez |
Standard |
Draft |
BIP-109 |
Two million byte size limit with sigop and sighash limits |
Gavin Andresen |
Standard |
Rejected |
BIP-111 |
NODE_BLOOM service bit |
Matt Corallo, Peter Todd |
Standard |
Proposed |
BIP-112 |
CHECKSEQUENCEVERIFY |
BtcDrak, Mark Friedenbach, Eric Lombrozo |
Standard |
Final |
BIP-113 |
Median time-past as endpoint for lock-time calculations |
Thomas Kerin, Mark Friedenbach |
Standard |
Final |
BIP-114 |
Merkelized Abstract Syntax Tree |
Johnson Lau |
Standard |
Draft |
BIP-120 |
Proof of Payment |
Kalle Rosenbaum |
Standard |
Draft |
BIP-121 |
Proof of Payment URI scheme |
Kalle Rosenbaum |
Standard |
Draft |
BIP-122 |
URI scheme for Blockchain references / exploration |
Marco Pontello |
Standard |
Draft |
BIP-123 |
BIP Classification |
Eric Lombrozo |
Process |
Active |
BIP-124 |
Hierarchical Deterministic Script Templates |
Eric Lombrozo, William Swanson |
Informational |
Draft |
BIP-125 |
Opt-in Full Replace-by-Fee Signaling |
David A. Harding, Peter Todd |
Standard |
Proposed |
BIP-126 |
Best Practices for Heterogeneous Input Script Transactions |
Kristov Atlas |
Informational |
Draft |
BIP-130 |
sendheaders message |
Suhas Daftuar |
Standard |
Proposed |
BIP-131 |
“Coalescing Transaction” Specification (wildcard inputs) |
Chris Priest |
Standard |
Draft |
BIP-132 |
Committee-based BIP Acceptance Process |
Andy Chase |
Process |
Withdrawn |
BIP-133 |
feefilter message |
Alex Morcos |
Standard |
Draft |
BIP-134 |
Flexible Transactions |
Tom Zander |
Standard |
Draft |
BIP-140 |
Normalized TXID |
Christian Decker |
Standard |
Draft |
BIP-141 |
Segregated Witness (Consensus layer) |
Eric Lombrozo, Johnson Lau, Pieter Wuille |
Standard |
Draft |
BIP-142 |
Address Format for Segregated Witness |
Johnson Lau |
Standard |
Deferred |
BIP-143 |
Transaction Signature Verification for Version 0 Witness Program |
Johnson Lau, Pieter Wuille |
Standard |
Draft |
BIP-144 |
Segregated Witness (Peer Services) |
Eric Lombrozo, Pieter Wuille |
Standard |
Draft |
BIP-145 |
getblocktemplate Updates for Segregated Witness |
Luke Dashjr |
Standard |
Draft |
BIP-146 |
Dealing with signature encoding malleability |
Johnson Lau, Pieter Wuille |
Standard |
Draft |
BIP-147 |
Dealing with dummy stack element malleability |
Johnson Lau |
Standard |
Draft |
BIP-148 |
Mandatory activation of segwit deployment |
Shaolin Fry |
Standard |
Draft |
BIP-150 |
Peer Authentication |
Jonas Schnelli |
Standard |
Draft |
BIP-151 |
Peer-to-Peer Communication Encryption |
Jonas Schnelli |
Standard |
Draft |
BIP-152 |
Compact Block Relay |
Matt Corallo |
Standard |
Draft |
BIP-171 |
Currency/exchange rate information API |
Luke Dashjr |
Standard |
Draft |
BIP-180 |
Block size/weight fraud proof |
Luke Dashjr |
Standard |
Draft |
BIP-199 |
Hashed Time-Locked Contract transactions |
Sean Bowe, Daira Hopwood |
Standard |
Draft |
Table C-1. Snapshot of BIPs |