The great scaling debate
The Bitcoin scaling debate that has been ongoing for almost 4 years may be approaching an uncertain decision this Summer. Some groups including the Bitcoin Core development team wish to improve Bitcoin’s scalability via a soft fork upgrade call Segregated Witness or ‘SegWit’. Segwit doesn’t increase the blocksize but it does allow more transactions to fit inside 1MB blocks by counting withness data in a different way. It also solves the issue of transaction malleability which allows for the implementation of second layer payment channels like the Lightning network which comes as an off chain scaling solution.
Litecoin soft forked and upgraded to SegWit earlier this year which led to a significant price rally. However, other groups in the Bitcoin ecosystem want to see increased block sizes via a hard fork. Bitcoin Unlimited and BTC1 development groups have written code that will support larger blocks. This is primarily favoured by the mining communities.
What are hard forks and soft forks?
A hard fork occurs when blocks that would have previously been considered invalid are now valid. Whereas a soft fork occurs when blocks that would have previously been considered valid are now invalid. Essentially soft forks are increasing the rules and hard forks are relaxing the rules. Which means that in a hard fork event any Bitcoin users, miners, exchanges etc. who want to stay in consensus with the network must upgrade their software during a hard fork; otherwise, some new block that the network accepts will appear as invalid to them. Whereas it is not essential for users to upgrade software in soft forks, if a user would like to use the new features in the upgrade they must update but they are not obliged to do so. However, 51% of the miners must upgrade to adopt the soft fork otherwise it will become an orphaned chain.
In the case of an hard fork, it is possible for the blockchain to be split in two when miners stay on both blockchains. It is important to remember that the BTC in your wallet is simply unspent transaction outputs (UTXO’s). So a splitting of BTC would allow the private key holder to unlock coins that are held at the time of the fork on both chains. The table below shows all the times Bitcoin, Ethereum and Ethereum Classic have forked.
Splits can occur during a contentious hard fork, a user-activated soft fork (UASF) which lacks a majority of mining power but has support from the community.
Similar to when Ethereum hard forked last summer ETH owners had the ability to spend ETH and ETC. Likewise BTC holders could have BTC and the new forked version of BTC. However not all wallets will know that it can spend the potential second BTC type. This opens the door for replay attacks whereby BTC owners only send one type of BTC and leave the UTXO’s unsent on the other chain. We will cover how to avoid this at the end. However first let's take a look at perhaps the two most prominent questions in a Bitcoin split scenario.
1. Which is the real Bitcoin?
2. What happens to the value?
- This is actually quite a tricky question that has many variables so its answer is highly subjective at this stage. The most important factor is which currency will the community use (investors, exchanges, businesses, individuals, miners etc). For example even if there is a majority of hash power on a chain if 95% of the ecosystem are using the other chain then that will likely be considered the ‘valid chain’. Some people feel that two Bitcoins can both be equally valid but it is likely one version will attract a majority user base as it is in everyone’s best interests to focus and innovate around one version. In Ethereum’s case a minority of the hashing power, economy and innovation remained with Ethereum classic because of the immutability and ‘code is law’ arguments. Despite that it is clear that Ethereum is considered the ‘valid chain’.
- Based on the simple laws of demand and supply if the supply of Bitcoins double then price will decrease. However there are a spectrum of price scenarios that could occur. Firstly, a clear ‘winner’ emerges and one Bitcoin is swiftly adopted as the primary chain, in this case expect a decrease in price but with a more bullish outlook long term whereby the total market cap of both Bitcoins will be similar to the pre split market cap. When Ethereum split there was an initial price decline but the combined value of both chains swiftly overvalued Ethereum's pre split market cap. On the other side of the spectrum where there is prolonged uncertainty and no clear winning chain the price will almost certainly decrease and remain low until one version has the majority of support.
What is a UASF (User Activated Soft Fork)
A UASF takes place in a scenario where users (nodes) want to push miners into supporting a certain proposal, in the case of BIP 148, the activation of SegWit. The UASF sees a new version of the node software released in which a predetermined block height is chosen to activate the fork.
Once the predetermined block height is reached, the nodes (who validate transactions) will stop accepting blocks that do not support the wanted update, which in this case is SegWit. This system forces miners to mine the blocks that are valid, otherwise the coins mined will be on a blockchain that is not considered as the valid one by most nodes. The UASF proposal counts on the participation of exchanges, which are expected to choose the Segwit enabled blockchain as the valid one. As so, the coins mined on another blockchain are worthless.
There are, however, a few risks. If the majority of miners don’t start mining SegWit blocks after the UASF is activated, a chain split will take place. In this case, nodes have not upgraded to the UASF client will see the blockchain without SegWit because in the event of two blocks, the node will choose the one with the most PoW done. The upgraded nodes will see the blockchain that supports SegWit.
When could a split occur and what to do?
Currently, the earliest a split could take place would be August 1st 2017 midnight UTC which would be the BIP 148 UASF. The UASF would implement SegWit but not require a majority of mining hash power. Which presents a difficult situation where there is a possibility of having the minority of hash power on the UASF leading to slow confirmations and significant delays in the network.
The main thing to be sure of is whether you have control over your private keys. Removing all Bitcoins from exchanges, banks, ‘hosted wallets’ is recommended. This reduces the chances of your exchange, wallet provider etc losing some of the newly forked BTC through replay attacks. Also avoid sending transactions 12 hours prior to a potential split and for a few days after the split. Coins that aren’t spent are not at risk of replay attacks.
Once a split has taken place you will likely need to download software that will allow you to recover your coins on both chains with no replay attack risk. Unless you are sure of the exact steps when this option is available it may be better to wait and not send transactions until a majority coin is clear and replay protection software is tried and tested.
Update: Given the intrusive nature of the BIP 148 UASF, voting for Segwit2X (BIP 91) has been pushed forward. The proposal quickly reached the necessary 80% miner approval. If BIP 91 is able to maintain this same level of support for 336 blocks or roughly 56 hours, SegWit will be activated on the Bitcoin network. Click here to follow the support level.
SegWit2X voting was meant to start on the 21st of July, however, the proposal was put up for voting as a means to prevent the activation of BIP 148 UASF (User Activated Soft Fork) on August 1st, as the BIP is sure to cause a blockchain split due to the measures implemented by Bitmain, who launched an alternative Bitcoin client, dubbed Bitcoin ABC. This alternative client would ensure that SegWit would remain inactive in one blockchain while the BIP148 would see SegWit activate on the original Bitcoin blockchain.
What proposals are on the table and who supports what?
There are currently three main options available to the community, Segwit2X (BIP 91) which is relatively new and has gained significant support from miners both when signalling intention and when signaling approval.
There is also the SegWit BIP141 solution that appears to have had peaked interest at around 50%.
Finally the BIP 148 Segwit UASF, the signalling for BIP148 UASF will start on Aug 1st. This is where nodes update to BIP 148 and do not need a mining majority to split Bitcoin and implement Segwit. So if the economic majority is signalling as of August 1st, miners have an incentive to follow along with BIP 148.
The Bitcoin wiki page shows the company and core dev support for the various options. This is shown in the table below. Despite the overwhelming support for Segwit BIP 141 and the total rejection of Segwit2x, the mining hash power appears to be moving in the opposite direction which has made it very difficult to establish a clear outcome.