The modern internet is viewed in some circles as a corporate corruption of the principles that the platform was founded on. Openness and freedom have given way to censorship and restriction. The ongoing debate about Net Neutrality is just one example of this existential crisis. To some, Bitcoin, the blockchain based cryptocurrency, was a return to those early principles. As the transactions are stored on the blockchain — a peer to peer register of historical transactions — in theory it is incorruptible and secure, and free from the interference (and fees) of middlemen.
Bitcoin’s phenomenal success has been a surprise to many, especially those early adopters of the system. Its popularity has grown at an astonishing rate, and in some people’s eyes, has begun to push the technical boundaries originally set out by Bitcoin’s mysterious creator Satoshi Nakamoto. This perceived boundary caused a divide in the Bitcoin community and culminated in a Bitcoin fork — but what exactly is that?
The Great Bitcoin Slowdown
Since its inception, Bitcoin aimed to tackle the economic incentives and downfalls that may have otherwise prematurely ended the cryptocurrency. To incentivize miners to join the network there are two rewards: Bitcoin for mining blocks, and fees for processing transactions. In order to prevent spam transactions from clogging the network, Bitcoin was created with a blocksize of 1MB.
However, as Bitcoin’s popularity has grown there has been a rise in transactions, causing blocks to be filled faster. Since producing blocks takes time, and during that downtime transactions can’t be processed, a backlog starts to emerge. This has seen the median time to confirm a transaction rise from around 8 minutes to almost 14 minutes in the 24 months from September 2015. This is made even more challenging as the difficulty to mine a block increases.
Increasing demand but with a limited supply caused a new model to emerge known as replace-by-fee. Suppose you attempted a transaction with a standard miner’s fee, but it gets stuck in the backlog. In order to increase the incentive to the miners to process the transaction you could perform another transaction but with a higher processing fee. The miner may choose to prioritize the higher fee transaction, and add it to the block — reducing your wait time.
However, this mechanism has drawn criticism from some members of the Bitcoin community as it effectively means that transactions from those that are unable to afford the increased fees are deemed less important. This issue can be compared to the debate around Net Neutrality — the person with the deepest pockets is able to prioritize their traffic.
The Great Fork Debate
Since Bitcoin was developed to be open source, it’s software can be thought of in the same light as any other open source project. While many view the open source community as a group of people working towards a common goal who all agree on everything, this isn’t always the case.
When a proposal to increase the block size to 2MB was made it caused a large rift in the Bitcoin community. This debate culminated in a discussion about whether Bitcoin should be forked in order to navigate this issue. Even then, there are two choices available: hard or soft?
If the decision is made to fork the software, a soft fork is seen as the least disruptive of the two choices. In a soft fork, the underlying software is similar, but with new or additional features only available to those using the soft fork. A soft fork changes the rules rather than rewriting them, to ensure forwards compatibility.
The alternative to the forwards-compatible soft option is the hard fork. This is where the offshoot either changes the underlying technology or adds features that aren’t compatible with previous or alternative versions of the software. Users then have to choose to switch to the hard fork, rather than be upgraded to it.
The Emergence of SegWit and Bitcoin Cash
The resulting discussions led to three mainstream proposals:
- Leave Bitcoin as it is while accepting the new economic incentives
- A soft fork known as SegWit
- The hard fork of Bitcoin Cash
Bitcoin’s blockchain is a distributed ledger, with each transaction replicated on all nodes on the network. It is this replication that makes Bitcoin a secure and traceable system. The nodes process each transaction with a series of inputs and outputs. The output includes the public address of the recipient, while the input includes the address of the sender and their signature. The signature is used to verify that the sender has the available funds to complete the transaction. The signature accounts for around 65 percent of the data in every transaction.
One of the proposals to remedy Bitcoin’s slowdown is to remove the signature from the block, allowing for more transactions per block. This is known as Segregated Witness, or SegWit. The SegWit protocol places the signatures into an extended block which only holds witness data. It also transitions away from block size to a new measure known as block weight. Each block is counted as one million units, rather than bytes. Each byte of witness data only counts for a quarter of a unit. This means that the block size only increases up to 1.8MB. By removing signatures from the transaction data, it makes it impossible to modify the transaction ID, improving the security of transactions.
While discussions around the world continued about SegWit, some members of the Bitcoin community had a different idea. They felt that SegWit was a hack and didn’t approve of its implementation. In their eyes, it favoured those who viewed Bitcoin as a digital investment, rather than a currency. Instead, they felt the only solution to the problem was to increase the block size.
However, a block size increase would go against the principles of Bitcoin, leaving a hard fork as the only option. The proposed fork became known as Bitcoin Cash (BCH). Bitcoin Cash proposed a block size increase to 8MB. It also dropped the requirement to implement SegWit, and proposed a new SigHash type. While this does nothing to modify the block size, it does improve the security of each transaction.
At the point of the fork, there would be two identical blockchains. One is the Bitcoin blockchain up to the moment of the split, which would become Bitcoin Cash. The second was the original, and continuing, Bitcoin blockchain. As both blockchains have the same historical transactions stored, there is potential for transactions to be repeated on both blockchains — without the sender’s authorization. Fortunately the developers behind Bitcoin Cash foresaw this, and created a signature hashing algorithm to prevent these replay transactions.
Forking All Over the World
On August 1, 2017 at 18:24:41 UTC, Bitcoin Cash was launched into the world with the creation of its first 1.9MB block. As a User-Activated Hard Fork (UAHF), the success of the fork was entirely dependent on miners choosing to switch to the new blockchain. Since its inception, BCH has continued to create blocks and process transactions, proving that — at least for now — BTC and BCH can operate alongside each other.
After reaching the minimum 95 percent consensus requirement, SegWit was implemented on the Bitcoin blockchain on August 24, 2017. By September 20, 2017, almost 4 percent of all Bitcoin transactions were processed using the SegWit soft fork. Alongside the SegWit proposal was SegWit2x. This proposal considers extending the block with the witness data as per SegWit, but also that the original block size should increase to 2MB, forcing a hard fork in the process. Support for SegWit2x has been muted, suggesting that the future of the hard fork is in question.
SegWit, Bitcoin Cash, and SegWit2x are all forks of the current Bitcoin blockchain, aimed at improving the transaction speed. However, they aren’t the only Bitcoin forks. Litecoin, Bitcoin XT, Bitcoin Classic, and Bitcoin Unlimited have all hard forked from Bitcoin. The earliest of these hard forks was Litecoin in 2011, and its continued operation shows that there is support for multiple versions of the Bitcoin blockchain. However, a key difference is that Bitcoin Cash has forked and kept all existing records from Bitcoin. This allowed anyone switching to Bitcoin Cash to receive the same value of BCH as they had of BTC at the time of the fork.
The underlying mechanism behind the blockchain is an open-sourced, secure, distributed database. Although it was originally devised by Satoshi Nakamoto for Bitcoin, there are now many proposed uses. Ethereum uses the blockchain to create smart contracts. Steemit is a blockchain based social network and cryptocurrency. Swarm and Koinify provide decentralized crowdfunding platforms. With so many potential uses, the blockchain is fast becoming a critical technology. Bitcoin laid out the template of how a successful blockchain could operate. It’s large user base, positive coverage, and incredible market success have driven many people to the platform.
That influx of users has made decision making difficult, as many voices jostle for attention. The scalability issue exposed fundamental differences in the community on the political and economic standing of Bitcoin. The end results of these disagreements has been forks, both soft and hard. Following the BCH split, both currencies have seen positive growth, with BTC prices even rising above their pre-fork levels. It remains to be seen whether BCH’s increased block size does enough to keep the currency from failing. The beauty of the blockchain is that by storing the blocks on nodes all over the world, even if miners abandon the fork, the data lives on.
What do you think about the Great Bitcoin Fork? Was Bitcoin Cash a good decision? Do you think forking is the right way to settle disputes? Let us know in the comments!