Bitcoin Improvement Proposals

From Bitcoin Wiki
Revision as of 05:03, 14 January 2015 by Spaz926 (talk | contribs)
Jump to: navigation, search

A Bitcoin Improvement Proposal (BIP) is a design document for introducing features or information to Bitcoin. This is the standard way of communicating ideas since Bitcoin has no formal structure.

The first BIP (BIP 0001) was submitted by Amir Taaki on 2011-08-19 and described what a BIP is.

BIP Types

There are three types of BIPs:

  • Standards Track BIPs - Changes to the network protocol, block or transaction validation, or anything affecting interoperability.
  • Informational BIPs - Design issues, general guidelines. This type of BIP is NOT for proposing new features and do not represent community consensus
  • Process BIPs - Describes or proposes a change in process. Similar to Standards BIPs but apply outside the Bitcoin protocol.

BIP Workflow

As described in BIP 0001 the workflow of a BIP is as follows:

BIP Workflow.png

List of BIPs

Please do not modify this page. This is a mirror of the BIP from the source Git repository here.

People wishing to submit BIPs, first should propose their idea or document to the mailing list. After discussion they should email Greg Maxwell <>. After copy-editing and acceptance, it will be published here.

We are fairly liberal with approving BIPs, and try not to be too involved in decision making on behalf of the community. The exception is in very rare cases of dispute resolution when a decision is contentious and cannot be agreed upon. In those cases, the conservative option will always be preferred.

Having a BIP here does not make it a formally accepted standard until its status becomes Active. For a BIP to become Active requires the mutual consent of the community.

Those proposing changes should consider that ultimately consent may rest with the consensus of the Bitcoin users (see also: economic majority).

Number Title Owner Status
1 BIP Purpose and Guidelines Amir Taaki Active
10 Multi-Sig Transaction Distribution Alan Reiner Draft
11 M-of-N Standard Transactions Gavin Andresen Accepted
12 OP_EVAL Gavin Andresen Withdrawn
13 Address Format for pay-to-script-hash Gavin Andresen Final
14 Protocol Version and User Agent Amir Taaki, Patrick Strateman Accepted
15 Aliases Amir Taaki Withdrawn
16 Pay To Script Hash Gavin Andresen Accepted
17 OP_CHECKHASHVERIFY (CHV) Luke Dashjr Withdrawn
18 hashScriptCheck Luke Dashjr Draft
19 M-of-N Standard Transactions (Low SigOp) Luke Dashjr Draft
20 URI Scheme Luke Dashjr Replaced
21 URI Scheme Nils Schneider, Matt Corallo Accepted
22 getblocktemplate - Fundamentals Luke Dashjr Accepted
23 getblocktemplate - Pooled Mining Luke Dashjr Accepted
30 Duplicate transactions Pieter Wuille Accepted
31 Pong message Mike Hearn Accepted
32 Hierarchical Deterministic Wallets Pieter Wuille Accepted
33 Stratized Nodes Amir Taaki Draft
34 Block v2, Height in coinbase Gavin Andresen Accepted
35 mempool message Jeff Garzik Accepted
36 Custom Services Stefan Thomas Draft
37 Bloom filtering Mike Hearn and Matt Corallo Accepted
38 Passphrase-protected private key Mike Caldwell Draft
39 Deterministic key mnemonics Slush BIP number allocated
40 Stratum wire protocol Slush BIP number allocated
41 Stratum mining protocol Slush BIP number allocated
42 A finite monetary supply for Bitcoin Pieter Wuille Draft
43 Purpose Field for Deterministic Wallets Slush Draft
44 Multi-Account Hierarchy for Deterministic Wallets Slush Draft
50 March 2013 Chain Fork Post-Mortem Gavin Andresen Draft
60 Fixed Length "version" Message (Relay-Transactions Field) Amir Taaki Draft
61 "reject" P2P message Gavin Andresen Final
62 Non-malleable transactions Pieter Wuille Draft
63 Stealth Addresses Peter Todd BIP number allocated
64 getutxos message Mike Hearn Draft
70 Payment protocol Gavin Andresen Final
71 Payment protocol MIME types Gavin Andresen Final
72 Payment protocol URIs Gavin Andresen Final
73 Use "Accept" header with Payment Request URLs Stephen Pair Draft

Hardfork Wishlist