Bitcoin & Data Science
Bitcoin is many things. It is a at once a monetary network, computer network, accounting system, digital commodity, open source software project, and arguably, a philosophical school of thought and social movement. In this post I will focus on the Bitcoin open source software project, how the code is upgraded, and the history and data around past upgrades.
Any piece of software that is open source can by its nature be copied and altered to make a new version. This process is called forking the codebase and is essential to upgrading and experimenting with new versions and features in open source systems. The best example of this by far is the Linux project. Hundreds of different versions of Linux, often called Distributions or Distros for short, are actively worked on and used by people who are seeking different features and user experiences. The image below shows a history of the most widely used Linux Distributions.
In Bitcoin, having different “Distributions” is undesirable as it is a monetary good. Forking the code and creating a new version would dilute the supply and therefore value of the Bitcoin token. This has happened many times over the course of Bitcoin’s history and created alternative, competing networks commonly called Altcoins. This forking process is called hard forking because the two networks are no longer compatible with each other.
Hard forks can be done purposefully by anyone trying to create an altcoin (such as Litecoin $LTC), or as the consequence of a disagreement in the direction of the Bitcoin software project (such as BCash $BCH). In the latter case, a small group wanted to increase the blocksize limit which would greatly increase transaction throughput but also increase the computational and storage requirements to run a Bitcoin Node. I discussed this tradeoff earlier in this series in Run the Numbers #04: Bitcoin System Requirements. In the end, the market against the BCash supporters. The forked $BCH token is traded for a small fraction of Bitcoin itself $BTC, and the BCash network has a far less hashpower securing it.
Above we can see the amount of hashrate on Bitcoin (orange) and its two most popular forks, BCash $BCH and BCashSV $BSV. The hashrate on the competing networks in negligible in comparison. In order to avoid the network splitting, Bitcoin developers must be extremely cautious that they have consensus among a majority of the network to introduce any upgrades in the system. For this reason, the preferred method for upgrades are what are known as soft forks which does not prevent the two forks from interacting as one network. It often takes years to upgrade the Bitcoin network because all players involved – users, miners, businesses – need a chance to weigh in on if they support it. That said, we are hoping to finally activate the Taproot soft fork in 2021.