So, we have a decentralized network, that no one entity can control. How do we make changes and upgrades to that network?
How are changes made on a network that no one controls? This dilemma we call governance.
While governance solutions have been built into some blockchain protocols, Bitcoin is fairly simple in this regard. There are only a few built-in methods for decisions making. Let’s take a look at how things get done.
BIP stands for Bitcoin Improvement Proposal. This is a process for submitting changes to the repo.
A description of the process and a complete list of BIP’s can be found here.
Proposed changes should first be discussed on the mailing list, then a pull request submitted.
Once a proposed change becomes a BIP it goes through peer review and the below process.
After a BIP is accepted, then the real fun of network implementation begins.
How difficult the process is depends a lot on the type of change or BIP that is being implemented.
It’s very important to note the difference between a simple code change and a consensus change. Any change affecting the consensus rules on the network will require either a soft fork or a hard fork.
A soft fork is a network upgrade which can be thought of a non-mandatory. Nodes running old versions of the software will still be able to interact with and maintain consensus on the network.
A hard fork is a network upgrade or change that either forces nodes on the network to upgrade or results in a permanent split in the network.
The process of transitioning to new consensus rules is called activation.
There have been a number of methods used in Bitcoin to activate a change:
The above is a rough summary as this is a rather complicated situation. Other networks employ more sophisticated methods for determining consensus and activating changes. The Decred project has an interesting model which you can read about here.
There has been an evolution of methods used to bring about change in Bitcoin. The well-distributed balance of power in the ecosystem has done a good job of preventing any hostile takeovers, it has also made the system very conservative with only the most tried and test and overwhelmingly approved of changes making it to activation.
The activation process on the bitcoin network is a complicated and constantly evolving process.
Further reading can be found here:
Forks, Signaling, and Activation
UASF: User Driven Protocol Development
In the next section we’ll get into technical specifics starting with setting up a node.