Obtaining a meaningful consensus within the community is the first step in the process. Sometimes even the most interesting proposals can take years to be approved or rejected as the community fails to come to an agreement.
Once a BIP is submitted as a draft to the BIP GitHub, the proposal is reviewed and worked on transparently so that everyone can see its progress and subsequent testing results. As the Bitcoin blockchain is code-based, protocol changes will need to be reflected in the code, and miners will need to add a reference to their hashed block to signal that they accept or reject their implementation.
Due to the serious implications some changes could inflict on minors, a change to the code requires acceptance by a large majority of approximately 95%, unless reasonable cause is given for a lower threshold. Ninety-five percent support will need to be reported by the last 2,016 miners (approximately 14 days of mining with 10-minute blocks).
As an example, we’ll be using the recent Taproot soft-fork implementation, labeled BIP 341. merged into Bitcoin Core.
Over the next two weeks, at least 90% of the blocks mined (1,815 blocks mined out of 2,016) included a coded reference indicating that the miners who mined those blocks were in favor of the upgrade. This paved the way for the stunning consensus reached in the following months, leading to final approval in November 2021.
Final, official approval of a BIP happens automatically when users (node operators) choose which version of Bitcoin Core to download and run a node that reflects that change. Then all upgraded nodes can recognize and accept transactions made using this upgraded protocol.
In summary, here are the main steps in the approval process:
Anyone can submit a BIP to change the Bitcoin core;
An editor must pass the BIP;
The BIP must be approved by ∼95% of miners; and
The community must upgrade to the new version of the software.
Here is a graphic of the BIP approval process: