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.
Blockchain Splits
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?
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.
Follow this link to see the BTC company support for the SegWit scaling solutions. Click here to see the political section of Coin.Dance which also details company support for the various options.