Difference between revisions of "Bitcoin Improvement Proposals"

From Bitcoin Wiki
Jump to: navigation, search
(Update)
(expand)
(10 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
The first BIP ([[BIP 0001]]) was submitted by Amir Taaki on 2011-08-19 and described what a BIP is.
 
The first BIP ([[BIP 0001]]) was submitted by Amir Taaki on 2011-08-19 and described what a BIP is.
  
= BIP Types =
+
== Types ==
 
There are three types of BIPs:
 
There are three types of BIPs:
 
* '''Standards Track BIPs''' - Changes to the network protocol, block or transaction validation, or anything affecting interoperability.
 
* '''Standards Track BIPs''' - Changes to the network protocol, block or transaction validation, or anything affecting interoperability.
Line 9: Line 9:
 
* '''Process BIPs''' - Describes or proposes a change in process. Similar to Standards BIPs but apply outside the Bitcoin protocol.
 
* '''Process BIPs''' - Describes or proposes a change in process. Similar to Standards BIPs but apply outside the Bitcoin protocol.
  
= BIP Workflow =
+
== Layers ==
 +
[[BIP 0123]] established four layers for Standards BIPs:
 +
# '''Consensus'''<ref>Further divided into [[hardfork|hard]] and [[softfork]]s.</ref>
 +
# '''Peer Services'''
 +
# '''API/RPC'''
 +
# '''Applications'''
 +
 
 +
== Workflow ==
 
As described in [[BIP 0001]] the workflow of a BIP is as follows:
 
As described in [[BIP 0001]] the workflow of a BIP is as follows:
  
 
[[File:BIP Workflow.png]]
 
[[File:BIP Workflow.png]]
  
= List of BIPs =
+
== List of BIPs ==
 
{{BipMoved|README.mediawiki|README}}
 
{{BipMoved|README.mediawiki|README}}
  
People wishing to submit BIPs, first should propose their idea or document to [http://sourceforge.net/p/bitcoin/mailman/bitcoin-development/ the mailing list]. After discussion they should email Greg Maxwell <gmaxwell@gmail.com>. After copy-editing and acceptance, it will be published here.
+
== Notes ==
 
+
<references />
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]]).
 
 
 
<!-- Mostly generated by:
 
perl -e 'while(<>){ s/bip-(\d+)\.mediawiki/BIP $1/; if (m/^\|\-\s*(style=".*")?$/) { print $a; $a = ""; } $a .= $_; if (m/^\| (Active|Accepted|Final)/) { $a=~s/^(\|\-)\s*(style=".*")?$/$1 style="background-color: #cfffcf"/m; } elsif(m/^\| (Withdrawn|Deferred|Replaced)/){$a=~s/^(\|\-)\s*(style=".*")?$/$1 style="background-color: #ffcfcf"/m; } }; print $a' README.mediawiki
 
-->
 
{| class="wikitable sortable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
 
!Number
 
!Title
 
!Owner
 
!Type
 
!Status
 
|- style="background-color: #cfffcf"
 
| [[BIP 0001|1]]
 
| BIP Purpose and Guidelines
 
| Amir Taaki
 
| Standard
 
| Active
 
|- style="background-color: #ffcfcf"
 
| [[BIP 0010|10]]
 
| Multi-Sig Transaction Distribution
 
| Alan Reiner
 
| Informational
 
| Withdrawn
 
|- style="background-color: #cfffcf"
 
| [[BIP 0011|11]]
 
| M-of-N Standard Transactions
 
| Gavin Andresen
 
| Standard
 
| Accepted
 
|- style="background-color: #ffcfcf"
 
| [[BIP 0012|12]]
 
| OP_EVAL
 
| Gavin Andresen
 
| Standard
 
| Withdrawn
 
|- style="background-color: #cfffcf"
 
| [[BIP 0013|13]]
 
| Address Format for pay-to-script-hash
 
| Gavin Andresen
 
| Standard
 
| Final
 
|- style="background-color: #cfffcf"
 
| [[BIP 0014|14]]
 
| Protocol Version and User Agent
 
| Amir Taaki, Patrick Strateman
 
| Standard
 
| Accepted
 
|- style="background-color: #ffcfcf"
 
| [[BIP 0015|15]]
 
| Aliases
 
| Amir Taaki
 
| Standard
 
| Deferred
 
|- style="background-color: #cfffcf"
 
| [[BIP 0016|16]]
 
| Pay To Script Hash
 
| Gavin Andresen
 
| Standard
 
| Final
 
|- style="background-color: #ffcfcf"
 
| [[BIP 0017|17]]
 
| OP_CHECKHASHVERIFY (CHV)
 
| Luke Dashjr
 
| Standard
 
| Withdrawn
 
|-
 
| [[BIP 0018|18]]
 
| hashScriptCheck
 
| Luke Dashjr
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0019|19]]
 
| M-of-N Standard Transactions (Low SigOp)
 
| Luke Dashjr
 
| Standard
 
| Draft
 
|- style="background-color: #ffcfcf"
 
| [[BIP 0020|20]]
 
| URI Scheme
 
| Luke Dashjr
 
| Standard
 
| Replaced
 
|- style="background-color: #cfffcf"
 
| [[BIP 0021|21]]
 
| URI Scheme
 
| Nils Schneider, Matt Corallo
 
| Standard
 
| Accepted
 
|- style="background-color: #cfffcf"
 
| [[BIP 0022|22]]
 
| getblocktemplate - Fundamentals
 
| Luke Dashjr
 
| Standard
 
| Accepted
 
|- style="background-color: #cfffcf"
 
| [[BIP 0023|23]]
 
| getblocktemplate - Pooled Mining
 
| Luke Dashjr
 
| Standard
 
| Accepted
 
|- style="background-color: #cfffcf"
 
| [[BIP 0030|30]]
 
| Duplicate transactions
 
| Pieter Wuille
 
| Standard
 
| Final
 
|- style="background-color: #cfffcf"
 
| [[BIP 0031|31]]
 
| Pong message
 
| Mike Hearn
 
| Standard
 
| Accepted
 
|- style="background-color: #cfffcf"
 
| [[BIP 0032|32]]
 
| Hierarchical Deterministic Wallets
 
| Pieter Wuille
 
| Informational
 
| Accepted
 
|-
 
| [[BIP 0033|33]]
 
| Stratized Nodes
 
| Amir Taaki
 
| Standard
 
| Draft
 
|- style="background-color: #cfffcf"
 
| [[BIP 0034|34]]
 
| Block v2, Height in coinbase
 
| Gavin Andresen
 
| Standard
 
| Accepted
 
|- style="background-color: #cfffcf"
 
| [[BIP 0035|35]]
 
| mempool message
 
| Jeff Garzik
 
| Standard
 
| Accepted
 
|-
 
| [[BIP 0036|36]]
 
| Custom Services
 
| Stefan Thomas
 
| Standard
 
| Draft
 
|- style="background-color: #cfffcf"
 
| [[BIP 0037|37]]
 
| Bloom filtering
 
| Mike Hearn and Matt Corallo
 
| Standard
 
| Accepted
 
|-
 
| [[BIP 0038|38]]
 
| Passphrase-protected private key
 
| Mike Caldwell
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0039|39]]
 
| Mnemonic code for generating deterministic keys
 
| Slush
 
| Standard
 
| Draft
 
|-
 
| 40
 
| Stratum wire protocol
 
| Slush
 
| Standard
 
| BIP number allocated
 
|-
 
| 41
 
| Stratum mining protocol
 
| Slush
 
| Standard
 
| BIP number allocated
 
|-
 
| [[BIP 0042|42]]
 
| A finite monetary supply for Bitcoin
 
| Pieter Wuille
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0043|43]]
 
| Purpose Field for Deterministic Wallets
 
| Slush
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0044|44]]
 
| Multi-Account Hierarchy for Deterministic Wallets
 
| Slush
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0045|45]]
 
| Structure for Deterministic P2SH Multisignature Wallets
 
| Manuel Araoz
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0047|47]]
 
| Reusable Payment Codes for Hierarchical Deterministic Wallets
 
| Justus Ranvier
 
| Informational
 
| Draft
 
|-
 
| [[BIP 0050|50]]
 
| March 2013 Chain Fork Post-Mortem
 
| Gavin Andresen
 
| Informational
 
| Draft
 
<!-- 50 series reserved for a group of post-mortems -->
 
|-
 
| [[BIP 0060|60]]
 
| Fixed Length "version" Message (Relay-Transactions Field)
 
| Amir Taaki
 
| Standard
 
| Draft
 
|- style="background-color: #cfffcf"
 
| [[BIP 0061|61]]
 
| "reject" P2P message
 
| Gavin Andresen
 
| Standard
 
| Final
 
|-
 
| [[BIP 0062|62]]
 
| Dealing with malleability
 
| Pieter Wuille
 
| Standard
 
| Draft
 
|-
 
| 63
 
| Stealth Addresses
 
| Peter Todd
 
| Standard
 
| BIP number allocated
 
|-
 
| [[BIP 0064|64]]
 
| getutxos message
 
| Mike Hearn
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0065|65]]
 
| OP_CHECKLOCKTIMEVERIFY
 
| Peter Todd
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0066|66]]
 
| Strict DER signatures
 
| Pieter Wuille
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0067|67]]
 
| Deterministic P2SH multi-signature addresses
 
| Thomas Kerin
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0068|68]]
 
| Consensus-enforced transaction replacement signalled via sequence numbers
 
| Mark Friedenbach
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0069|69]]
 
| Lexicographical Indexing of Transaction Inputs and Outputs
 
| Kristov Atlas
 
| Standard
 
| Draft
 
|- style="background-color: #cfffcf"
 
| [[BIP 0070|70]]
 
| Payment protocol
 
| Gavin Andresen
 
| Standard
 
| Final
 
|- style="background-color: #cfffcf"
 
| [[BIP 0071|71]]
 
| Payment protocol MIME types
 
| Gavin Andresen
 
| Standard
 
| Final
 
|- style="background-color: #cfffcf"
 
| [[BIP 0072|72]]
 
| Payment protocol URIs
 
| Gavin Andresen
 
| Standard
 
| Final
 
|-
 
| [[BIP 0073|73]]
 
| Use "Accept" header with Payment Request URLs
 
| Stephen Pair
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0101|101]]
 
| Increase maximum block size
 
| Gavin Andresen
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0105|105]]
 
| Consensus based block size retargeting algorithm
 
| BtcDrak
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0111|111]]
 
| NODE_BLOOM service bit
 
| Matt Corallo and Peter Todd
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0113|113]]
 
| Median time-past as endpoint for lock-time calculations
 
| Thomas Kerin and Mark Friedenbach
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0120|120]]
 
| Proof of Payment
 
| Kalle Rosenbaum
 
| Standard
 
| Draft
 
|-
 
| [[BIP 0121|121]]
 
| Proof of Payment URI scheme
 
| Kalle Rosenbaum
 
| Standard
 
| Draft
 
|}
 
 
 
<!-- IMPORTANT!  See the instructions at the top of this page, do NOT JUST add BIPs here! -->
 
  
[[Hardfork Wishlist]]
+
== See also ==
 +
* [[Hardfork Wishlist]]
 +
* [[Protocol documentation]]
 +
* [[:Category:BIP]]
  
[[Category:BIP|Z]]
+
[[Category:BIP| ]]
  
 
[[es:Propuestas de mejora de Bitcoin]]
 
[[es:Propuestas de mejora de Bitcoin]]

Revision as of 01:43, 13 May 2020

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.

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.

Layers

BIP 0123 established four layers for Standards BIPs:

  1. Consensus[1]
  2. Peer Services
  3. API/RPC
  4. Applications

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.

Notes

  1. Further divided into hard and softforks.

See also