What Is a Bitcoin Improvement Proposal?
A Bitcoin Improvement Proposal (BIP) is a formal proposal to change Bitcoin. As a piece of software, Bitcoin is always undergoing upgrades—bugs need to be fixed, algorithms can be made more efficient, code can be simplified, compatibility with other software must be maintained, and new features can be added.
In the case of normal software belonging to centralized projects, a manager or lead developer might simply assign tasks and dictate the changes that need to be implemented. However, Bitcoin is an open source, consensus-based system. There is no leader. The BIP process organizes the Bitcoin community in the absence of a central leader.
As a new monetary system, Bitcoin’s reputation is still being established, and the security of the network is paramount to maintaining trust. Thus, Bitcoin’s development process is intentionally slow and deliberate. The process from an initial proposal, to a formalized BIP, to an activated change, is lengthy.
How Are Bitcoin Improvement Proposals Created?
Bitcoin is a truly open system. Anyone can propose a BIP, regardless of credentials or reputation. Typically, BIPs begin as informal proposals on the Bitcoin email list or some other communication channel, such as IRC or Slack. A developer can email their idea to the email list, and anyone who is interested will respond with feedback. Some ideas remain at this discussion stage for many years, either because the community cannot find consensus, because the idea requires fine tuning, or because Bitcoin is not yet ready for the proposed changes.
Once a proposal has been fine-tuned, it is assigned a BIP number and published to the Bitcoin Core GitHub repository of BIPs. At this point, the BIP is official, but it is not yet approved or implemented.
How Are Bitcoin Improvement Proposals Approved?
When a BIP is published, it is discussed by both the developer community and the broader community of Bitcoin users. In the background, if the BIP necessitates code changes to Bitcoin Core, developers will work on writing, testing, and integrating that code.
If legitimate arguments are raised by a significant portion of users, the BIP will likely be withdrawn or rejected, and the proposal process must be abandoned or restarted.
If the community achieves rough consensus, and no legitimate drawbacks of the proposal are found, the community will choose an activation path and begin activating the BIP. This process takes different forms depending on the type of BIP at hand.
The Different Kinds of Bitcoin Improvement Proposals
Some BIPs propose changes to Bitcoin’s consensus rules—called forks. Others propose community standards, which are suggestions meant to encourage interoperability of different Bitcoin related software. Finally, some BIPs propose process guidelines. Each BIP type is treated and activated differently.
Bitcoin is a network governed by rules. These rules are independently enforced by tens of thousands of Bitcoin nodes, who must all establish consensus by following the same rules. If half of Bitcoin nodes follow one rule set and the other half follow a different rule set, the network would fracture.
Consensus BIPs are carefully constructed to remain backwards compatible to the greatest extent possible. This allows old nodes that choose not to upgrade to remain full members of the network.
Consensus changes require explicit activation on the Bitcoin network. Several process BIPs exist which define possible activation paths for consensus changes.
The SegWit upgrade was a major consensus upgrade, and the changes to Bitcoin’s rule set were proposed in BIP 141. Included in BIP 141 was a description of the witness field, a new part of Bitcoin transactions, and two new script types, P2WPKH and P2WSH. These changes required acceptance by nodes on the network, making BIP 141 a consensus BIP.
Some BIPs do not propose code changes to Bitcoin Core directly, but rather establish standards to be used by other Bitcoin software, such as wallets and exchanges. These BIPs might propose encoding schemes or best practices for securing bitcoin. Since Bitcoin is an open system, every software provider can choose whether or not they will adopt these standards.
Some standards require universal adoption in order to guarantee interoperability. For example, a wallet which cannot interpret a Bitcoin address will be completely useless, and a wallet which uses different address formats from the rest of the Bitcoin community will lose money for its users.
Other standards, such as BIP 39 and BIP 174, are more optional. In fact, mnemonic backup phrases as defined in BIP 39 have been adopted by many wallet providers, but are not used by Bitcoin Core itself. Likewise, not all wallets have adopted the PSBT standard defined in BIP 174. Although this lack of universal adoption is inconvenient, it does not eliminate the utility or security of the software.
Standards BIPs often accompany consensus changes. In the case of SegWit, BIP 142 established a standard format for SegWit addresses, but it did not directly change the rules of the Bitcoin network. Thus, although BIP 142 was part of the SegWit upgrade, it is a standards BIP rather than a consensus BIP.
Finally, some BIPs are created to streamline Bitcoin development or community discussion. These BIPs usually do not require any code changes to Bitcoin Core or other Bitcoin software. For example, BIP 1 and BIP 2 specify the lifecycle and format of future BIPs, and how their activation should be handled.
BIP 8 & 9
Two of the most important process BIPs are BIP 8 and BIP 9. These proposals outline two potential processes for activating soft fork upgrades to the Bitcoin consensus. They are not consensus BIPs, because they do not propose changes to the Bitcoin consensus. Rather, they set out rules for how consensus changes should be introduced to Bitcoin, in order to avoid conflict and a potential fracture in the network.
BIPs and Bitcoin’s Consensus
The Bitcoin Improvement Proposal mechanism organizes Bitcoin’s development process and maximizes transparency and community decision-making, keeping Bitcoin as open and decentralized as possible. While a smaller group of Core developers write most of Bitcoin’s code and propose BIPs, the activation of these proposals is entirely decided by the nodes of the network, and any individual can run a node.
- A Bitcoin Improvement Proposal (BIP) is a formal proposal to change Bitcoin.
- The BIP process organizes the Bitcoin community in the absence of a centralized leader.
- BIPs can propose changes to Bitcoin's consensus layer, community standards, or the development process.