1
0
mirror of https://github.com/bitcoin/bips.git synced 2024-11-19 09:50:06 +01:00
bitcoin-bips/bip-0123.mediawiki

696 lines
16 KiB
Plaintext
Raw Normal View History

2015-08-30 04:13:20 +02:00
<pre>
BIP: 123
Title: BIP Classification
2016-02-03 08:02:36 +01:00
Author: Eric Lombrozo <elombrozo@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0123
Status: Active
2015-08-30 04:13:20 +02:00
Type: Process
Created: 2015-08-26
License: CC0-1.0
GNU-All-Permissive
2015-08-30 04:13:20 +02:00
</pre>
==Abstract==
This document describes a classification scheme for BIPs.
BIPs are classified by system layers with lower numbered layers involving more intricate interoperability requirements.
The specification defines the layers and sets forth specific criteria for deciding to which layer a particular standards BIP belongs.
==Copyright==
This BIP is dual-licensed under the Creative Commons CC0 1.0 Universal and GNU All-Permissive licenses.
2015-08-30 04:13:20 +02:00
==Motivation==
Bitcoin is a system involving a number of different standards. Some standards are absolute requirements for interoperability while others can be considered optional, giving implementors a choice of whether to support them.
In order to have a BIP process which more closely reflects the interoperability requirements, it is necessary to categorize BIPs accordingly. Lower layers present considerably greater challenges in getting standards accepted and deployed.
==Specification==
Standards BIPs are placed in one of four layers:
# Consensus
# Peer Services
# API/RPC
# Applications
Non-standards BIPs may be placed in these layers, or none at all.
2015-08-30 04:13:20 +02:00
===1. Consensus Layer===
The consensus layer defines cryptographic commitment structures. Its purpose is ensuring that anyone can locally evaluate whether a particular state and history is valid, providing settlement guarantees, and assuring eventual convergence.
The consensus layer is not concerned with how messages are propagated on a network.
Disagreements over the consensus layer can result in network partitioning, or forks, where different nodes might end up accepting different incompatible histories. We further subdivide consensus layer changes into soft forks and hard forks.
====Soft Forks====
In a soft fork, some structures that were valid under the old rules are no longer valid under the new rules. Structures that were invalid under the old rules continue to be invalid under the new rules.
====Hard Forks====
In a hard fork, structures that were invalid under the old rules become valid under the new rules.
===2. Peer Services Layer===
The peer services layer specifies how nodes find each other and propagate messages.
Only a subset of all specified peer services are required for basic node interoperability. Nodes can support further optional extensions.
It is always possible to add new services without breaking compatibility with existing services, then gradually deprecate older services. In this manner, the entire network can be upgraded without serious risks of service disruption.
===3. API/RPC Layer===
The API/RPC layer specifies higher level calls accessible to applications. Support for these BIPs is not required for basic network interoperability but might be expected by some client applications.
There's room at this layer to allow for competing standards without breaking basic network interoperability.
===4. Applications Layer===
The applications layer specifies high level structures, abstractions, and conventions that allow different applications to support similar features and share data.
==Classification of existing BIPs==
{| class="wikitable sortable" style="width: auto; text-align: center; font-size: smaller; table-layout: fixed;"
!Number
!Layer
!Title
!Owner
!Type
!Status
|- style="background-color: #cfffcf"
| [[bip-0001.mediawiki|1]]
|
2015-08-30 04:13:20 +02:00
| BIP Purpose and Guidelines
| Amir Taaki
| Process
2015-08-30 04:13:20 +02:00
| Active
|-
| [[bip-0002.mediawiki|2]]
|
| BIP process, revised
| Luke Dashjr
| Process
| Draft
|- style="background-color: #cfffcf"
2016-01-29 01:39:15 +01:00
| [[bip-0009.mediawiki|9]]
|
2016-01-29 01:39:15 +01:00
| Version bits with timeout and delay
| Pieter Wuille, Peter Todd, Greg Maxwell, Rusty Russell
| Informational
| Final
|- style="background-color: #ffcfcf"
2015-08-30 04:13:20 +02:00
| [[bip-0010.mediawiki|10]]
| Applications
| Multi-Sig Transaction Distribution
| Alan Reiner
| Informational
| Withdrawn
|- style="background-color: #cfffcf"
| [[bip-0011.mediawiki|11]]
| Applications
2015-08-30 04:13:20 +02:00
| M-of-N Standard Transactions
| Gavin Andresen
| Standard
| Final
2015-08-30 04:13:20 +02:00
|- style="background-color: #ffcfcf"
| [[bip-0012.mediawiki|12]]
| Consensus (soft fork)
| OP_EVAL
| Gavin Andresen
| Standard
| Withdrawn
|- style="background-color: #cfffcf"
| [[bip-0013.mediawiki|13]]
| Applications
| Address Format for pay-to-script-hash
| Gavin Andresen
| Standard
| Final
|- style="background-color: #cfffcf"
| [[bip-0014.mediawiki|14]]
| Peer Services
| Protocol Version and User Agent
| Amir Taaki, Patrick Strateman
| Standard
| Final
|-
2015-08-30 04:13:20 +02:00
| [[bip-0015.mediawiki|15]]
| Applications
| Aliases
| Amir Taaki
| Standard
| Deferred
|- style="background-color: #cfffcf"
| [[bip-0016.mediawiki|16]]
| Consensus (soft fork)
| Pay to Script Hash
2015-08-30 04:13:20 +02:00
| Gavin Andresen
| Standard
| Final
|- style="background-color: #ffcfcf"
| [[bip-0017.mediawiki|17]]
| Consensus (soft fork)
| OP_CHECKHASHVERIFY (CHV)
| Luke Dashjr
| Standard
2015-08-30 04:13:20 +02:00
| Withdrawn
|- style="background-color: #ffffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0018.mediawiki|18]]
| Consensus (soft fork)
| hashScriptCheck
| Luke Dashjr
| Standard
| Accepted
2015-08-30 04:13:20 +02:00
|-
| [[bip-0019.mediawiki|19]]
| Applications
2015-08-30 04:13:20 +02:00
| M-of-N Standard Transactions (Low SigOp)
| Luke Dashjr
| Standard
| Draft
|- style="background-color: #ffcfcf"
| [[bip-0020.mediawiki|20]]
| Applications
| URI Scheme
| Luke Dashjr
| Standard
| Replaced
|- style="background-color: #cfffcf"
| [[bip-0021.mediawiki|21]]
| Applications
| URI Scheme
| Nils Schneider, Matt Corallo
| Standard
| Final
2015-08-30 04:13:20 +02:00
|- style="background-color: #cfffcf"
| [[bip-0022.mediawiki|22]]
| API/RPC
| getblocktemplate - Fundamentals
| Luke Dashjr
| Standard
| Final
2015-08-30 04:13:20 +02:00
|- style="background-color: #cfffcf"
| [[bip-0023.mediawiki|23]]
| API/RPC
| getblocktemplate - Pooled Mining
| Luke Dashjr
| Standard
| Final
2015-08-30 04:13:20 +02:00
|- style="background-color: #cfffcf"
| [[bip-0030.mediawiki|30]]
| Consensus (soft fork)
| Duplicate transactions
| Pieter Wuille
| Standard
| Final
|- style="background-color: #cfffcf"
| [[bip-0031.mediawiki|31]]
| Peer Services
| Pong message
| Mike Hearn
| Standard
| Final
2015-08-30 04:13:20 +02:00
|- style="background-color: #cfffcf"
| [[bip-0032.mediawiki|32]]
| Applications
| Hierarchical Deterministic Wallets
| Pieter Wuille
| Informational
| Final
2015-08-30 04:13:20 +02:00
|-
| [[bip-0033.mediawiki|33]]
| Peer Services
2015-08-30 04:13:20 +02:00
| Stratized Nodes
| Amir Taaki
| Standard
| Draft
|- style="background-color: #cfffcf"
| [[bip-0034.mediawiki|34]]
| Consensus (soft fork)
| Block v2, Height in Coinbase
2015-08-30 04:13:20 +02:00
| Gavin Andresen
| Standard
| Final
2015-08-30 04:13:20 +02:00
|- style="background-color: #cfffcf"
| [[bip-0035.mediawiki|35]]
| Peer Services
| mempool message
| Jeff Garzik
| Standard
| Final
2015-08-30 04:13:20 +02:00
|-
| [[bip-0036.mediawiki|36]]
| Peer Services
| Custom Services
| Stefan Thomas
| Standard
| Draft
|- style="background-color: #cfffcf"
| [[bip-0037.mediawiki|37]]
| Peer Services
| Connection Bloom filtering
| Mike Hearn, Matt Corallo
2015-08-30 04:13:20 +02:00
| Standard
| Final
2015-08-30 04:13:20 +02:00
|-
| [[bip-0038.mediawiki|38]]
| Applications
| Passphrase-protected private key
| Mike Caldwell, Aaron Voisine
2015-08-30 04:13:20 +02:00
| Standard
| Draft
|- style="background-color: #ffffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0039.mediawiki|39]]
| Applications
| Mnemonic code for generating deterministic keys
| Marek Palatinus, Pavol Rusnak, Aaron Voisine, Sean Bowe
2015-08-30 04:13:20 +02:00
| Standard
| Accepted
2015-08-30 04:13:20 +02:00
|-
| [[bip-0042.mediawiki|42]]
| Consensus (soft fork)
| A finite monetary supply for Bitcoin
| Pieter Wuille
| Standard
| Draft
|-
| [[bip-0043.mediawiki|43]]
| Applications
| Purpose Field for Deterministic Wallets
| Marek Palatinus, Pavol Rusnak
| Informational
2015-08-30 04:13:20 +02:00
| Draft
|- style="background-color: #ffffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0044.mediawiki|44]]
| Applications
| Multi-Account Hierarchy for Deterministic Wallets
| Marek Palatinus, Pavol Rusnak
2015-08-30 04:13:20 +02:00
| Standard
| Accepted
|- style="background-color: #ffffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0045.mediawiki|45]]
| Applications
| Structure for Deterministic P2SH Multisignature Wallets
| Manuel Araoz, Ryan X. Charles, Matias Alejo Garcia
2015-08-30 04:13:20 +02:00
| Standard
| Accepted
|-
| [[bip-0047.mediawiki|47]]
| Applications
| Reusable Payment Codes for Hierarchical Deterministic Wallets
| Justus Ranvier
| Informational
2015-08-30 04:13:20 +02:00
| Draft
|-
| [[bip-0049.mediawiki|49]]
| Applications
| Derivation scheme for P2WPKH-nested-in-P2SH based accounts
| Daniel Weigl
2015-08-30 04:13:20 +02:00
| Informational
| Draft
|- style="background-color: #cfffcf"
| [[bip-0050.mediawiki|50]]
|
2015-08-30 04:13:20 +02:00
| March 2013 Chain Fork Post-Mortem
| Gavin Andresen
| Informational
| Final
2015-08-30 04:13:20 +02:00
|-
| [[bip-0060.mediawiki|60]]
| Peer Services
| Fixed Length "version" Message (Relay-Transactions Field)
| Amir Taaki
| Standard
| Draft
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0061.mediawiki|61]]
| Peer Services
| Reject P2P message
2015-08-30 04:13:20 +02:00
| Gavin Andresen
| Standard
| Final
|- style="background-color: #ffcfcf"
2015-08-30 04:13:20 +02:00
| [[bip-0062.mediawiki|62]]
| Consensus (soft fork)
| Dealing with malleability
| Pieter Wuille
| Standard
| Withdrawn
2015-08-30 04:13:20 +02:00
|-
| [[bip-0064.mediawiki|64]]
| Peer Services
| getutxo message
2015-08-30 04:13:20 +02:00
| Mike Hearn
| Standard
| Draft
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0065.mediawiki|65]]
| Consensus (soft fork)
| OP_CHECKLOCKTIMEVERIFY
| Peter Todd
| Standard
| Final
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0066.mediawiki|66]]
| Consensus (soft fork)
| Strict DER signatures
| Pieter Wuille
| Standard
| Final
|- style="background-color: #ffffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0067.mediawiki|67]]
| Applications
| Deterministic Pay-to-script-hash multi-signature addresses through public key sorting
| Thomas Kerin, Jean-Pierre Rupp, Ruben de Vries
2015-08-30 04:13:20 +02:00
| Standard
| Accepted
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0068.mediawiki|68]]
| Consensus (soft fork)
| Relative lock-time using consensus-enforced sequence numbers
| Mark Friedenbach, BtcDrak, Nicolas Dorier, kinoshitajona
2015-08-30 04:13:20 +02:00
| Standard
| Final
|- style="background-color: #ffffcf"
| [[bip-0069.mediawiki|69]]
| Applications
| Lexicographical Indexing of Transaction Inputs and Outputs
| Kristov Atlas
| Informational
| Accepted
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0070.mediawiki|70]]
| Applications
| Payment Protocol
| Gavin Andresen, Mike Hearn
2015-08-30 04:13:20 +02:00
| Standard
| Final
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0071.mediawiki|71]]
| Applications
| Payment Protocol MIME types
2015-08-30 04:13:20 +02:00
| Gavin Andresen
| Standard
| Final
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0072.mediawiki|72]]
| Applications
| bitcoin: uri extensions for Payment Protocol
2015-08-30 04:13:20 +02:00
| Gavin Andresen
| Standard
| Final
|- style="background-color: #cfffcf"
2015-08-30 04:13:20 +02:00
| [[bip-0073.mediawiki|73]]
| Applications
| Use "Accept" header for response type negotiation with Payment Request URLs
2015-08-30 04:13:20 +02:00
| Stephen Pair
| Standard
| Final
|-
| [[bip-0074.mediawiki|74]]
| Applications
| Allow zero value OP_RETURN in Payment Protocol
| Toby Padilla
| Standard
2015-08-30 04:13:20 +02:00
| Draft
|-
| [[bip-0075.mediawiki|75]]
2016-01-29 01:39:15 +01:00
| Applications
| Out of Band Address Exchange using Payment Protocol Encryption
| Justin Newton, Matt David, Aaron Voisine, James MacWhyte
| Standard
| Draft
|-
| [[bip-0080.mediawiki|80]]
|
2016-01-29 01:39:15 +01:00
| Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets
| Justus Ranvier, Jimmy Song
2016-01-29 01:39:15 +01:00
| Informational
| Deferred
|-
| [[bip-0081.mediawiki|81]]
|
| Hierarchy for Colored Voting Pool Deterministic Multisig Wallets
| Justus Ranvier, Jimmy Song
| Informational
| Deferred
2016-01-29 01:39:15 +01:00
|-
| [[bip-0083.mediawiki|83]]
| Applications
| Dynamic Hierarchical Deterministic Key Trees
| Eric Lombrozo
| Standard
| Draft
|-
| [[bip-0099.mediawiki|99]]
|
2016-01-29 01:39:15 +01:00
| Motivation and deployment of consensus rule changes ([soft/hard]forks)
| Jorge Timón
| Informational
2016-01-29 01:39:15 +01:00
| Draft
|- style="background-color: #ffcfcf"
2015-08-30 04:13:20 +02:00
| [[bip-0101.mediawiki|101]]
| Consensus (hard fork)
| Increase maximum block size
| Gavin Andresen
| Standard
| Withdrawn
2016-01-29 01:39:15 +01:00
|-
| [[bip-0102.mediawiki|102]]
| Consensus (hard fork)
| Block size increase to 2MB
| Jeff Garzik
| Standard
| Draft
|-
| [[bip-0103.mediawiki|103]]
| Consensus (hard fork)
| Block size following technological growth
| Pieter Wuille
| Standard
| Draft
|-
| [[bip-0105.mediawiki|105]]
| Consensus (hard fork)
| Consensus based block size retargeting algorithm
2016-01-29 01:39:15 +01:00
| BtcDrak
| Standard
| Draft
|-
| [[bip-0106.mediawiki|106]]
| Consensus (hard fork)
| Dynamically Controlled Bitcoin Block Size Max Cap
| Upal Chakraborty
| Standard
| Draft
|-
| [[bip-0107.mediawiki|107]]
| Consensus (hard fork)
| Dynamic limit on the block size
| Washington Y. Sanchez
| Standard
| Draft
|-
| [[bip-0109.mediawiki|109]]
| Consensus (hard fork)
| Two million byte size limit with sigop and sighash limits
| Gavin Andresen
| Standard
| Draft
|- style="background-color: #ffffcf"
2016-01-29 01:39:15 +01:00
| [[bip-0111.mediawiki|111]]
| Peer Services
| NODE_BLOOM service bit
| Matt Corallo, Peter Todd
| Standard
| Accepted
|- style="background-color: #cfffcf"
2016-01-29 01:39:15 +01:00
| [[bip-0112.mediawiki|112]]
| Consensus (soft fork)
| CHECKSEQUENCEVERIFY
| BtcDrak, Mark Friedenbach, Eric Lombrozo
| Standard
| Final
|- style="background-color: #cfffcf"
2016-01-29 01:39:15 +01:00
| [[bip-0113.mediawiki|113]]
| Consensus (soft fork)
| Median time-past as endpoint for lock-time calculations
2016-01-29 01:39:15 +01:00
| Thomas Kerin, Mark Friedenbach
| Standard
| Final
|-
| [[bip-0114.mediawiki|114]]
| Consensus (soft fork)
| Merkelized Abstract Syntax Tree
| Johnson Lau
| Standard
2016-01-29 01:39:15 +01:00
| Draft
|-
| [[bip-0120.mediawiki|120]]
| Applications
| Proof of Payment
| Kalle Rosenbaum
| Standard
| Draft
|-
| [[bip-0121.mediawiki|121]]
| Applications
| Proof of Payment URI scheme
| Kalle Rosenbaum
| Standard
| Draft
|-
| [[bip-0122.mediawiki|122]]
| Applications
| URI scheme for Blockchain references / exploration
| Marco Pontello
| Standard
| Draft
|-
| [[bip-0123.mediawiki|123]]
|
2016-01-29 01:39:15 +01:00
| BIP Classification
| Eric Lombrozo
| Process
2016-01-29 01:39:15 +01:00
| Draft
|-
| [[bip-0124.mediawiki|124]]
| Applications
| Hierarchical Deterministic Script Templates
| Eric Lombrozo, William Swanson
| Informational
2016-01-29 01:39:15 +01:00
| Draft
|- style="background-color: #ffffcf"
2016-01-29 01:39:15 +01:00
| [[bip-0125.mediawiki|125]]
| Applications
2016-01-29 01:39:15 +01:00
| Opt-in Full Replace-by-Fee Signaling
| David A. Harding, Peter Todd
2016-01-29 01:39:15 +01:00
| Standard
| Accepted
2016-01-29 01:39:15 +01:00
|-
| [[bip-0126.mediawiki|126]]
|
| Best Practices for Heterogeneous Input Script Transactions
| Kristov Atlas
| Informational
| Draft
|- style="background-color: #ffffcf"
2016-01-29 01:39:15 +01:00
| [[bip-0130.mediawiki|130]]
| Peer Services
| sendheaders message
| Suhas Daftuar
| Standard
| Accepted
2016-01-29 01:39:15 +01:00
|-
| [[bip-0131.mediawiki|131]]
| Consensus (hard fork)
| "Coalescing Transaction" Specification (wildcard inputs)
| Chris Priest
| Standard
| Draft
|- style="background-color: #ffcfcf"
2016-01-29 01:39:15 +01:00
| [[bip-0132.mediawiki|132]]
|
2016-01-29 01:39:15 +01:00
| Committee-based BIP Acceptance Process
| Andy Chase
| Process
| Withdrawn
|-
| [[bip-0133.mediawiki|133]]
| Peer Services
| feefilter message
| Alex Morcos
| Standard
| Draft
|-
| [[bip-0134.mediawiki|134]]
| Consensus (hard fork)
| Flexible Transactions
| Tom Zander
| Standard
2016-01-29 01:39:15 +01:00
| Draft
|-
| [[bip-0140.mediawiki|140]]
| Consensus (soft fork)
| Normalized TXID
| Christian Decker
| Standard
| Draft
|-
| [[bip-0141.mediawiki|141]]
| Consensus (soft fork)
| Segregated Witness (Consensus layer)
| Eric Lombrozo, Johnson Lau, Pieter Wuille
| Standard
| Draft
|-
| [[bip-0142.mediawiki|142]]
| Applications
| Address Format for Segregated Witness
| Johnson Lau
| Standard
| Deferred
2016-01-29 01:39:15 +01:00
|-
| [[bip-0143.mediawiki|143]]
| Consensus (soft fork)
| Transaction Signature Verification for Version 0 Witness Program
| Johnson Lau, Pieter Wuille
| Standard
| Draft
|-
| [[bip-0144.mediawiki|144]]
| Peer Services
| Segregated Witness (Peer Services)
| Eric Lombrozo, Pieter Wuille
| Standard
| Draft
|-
| [[bip-0145.mediawiki|145]]
| API/RPC
| getblocktemplate Updates for Segregated Witness
| Luke Dashjr
| Standard
| Draft
|-
| [[bip-0146.mediawiki|146]]
| Consensus (soft fork)
| Dealing with signature encoding malleability
| Johnson Lau, Pieter Wuille
| Standard
| Draft
|-
| [[bip-0147.mediawiki|147]]
| Consensus (soft fork)
| Dealing with dummy stack element malleability
| Johnson Lau
| Standard
| Draft
|-
| [[bip-0150.mediawiki|150]]
| Peer Services
| Peer Authentication
| Jonas Schnelli
| Standard
| Draft
|-
| [[bip-0151.mediawiki|151]]
| Peer Services
| Peer-to-Peer Communication Encryption
| Jonas Schnelli
| Standard
| Draft
|-
| [[bip-0152.mediawiki|152]]
| Peer Services
| Compact Block Relay
| Matt Corallo
| Standard
| Draft
2015-08-30 04:13:20 +02:00
|}