It is with some lament that I write this. If everyone agreed on a path forward, then there would be no need for this post, but here we are. There is a strong likelihood that we will need to know what will happen if Bitcoin forks (again). There is a chance that the protocol of Bitcoin will fork, which will cause a chain fork as well. (I discussed hard forks & soft forks from my perspective in a previous post.)
Some Bitcoin miners are signaling that they would accept one of two competing Bitcoin protocol changes: one protocol is Bitcoin Unlimited (BU), which would increase the maximum transactions that Bitcoin can process by 100%. The other protocol, called Segregated Witness (SegWit), is expected to increase this maximum by 70%. As of this writing, 35.9% of blocks are signaling for Bitcoin Unlimited while 26.8% are signaling for SegWit.
Bitcoin blocks found by miners signaling Bitcoin Unlimited support vs. miners signalining SegWit support
Bitcoin Unlimited vs. SegWit: Abstractly, what is happening?
Let’s make a hypothetical situation where the proportion of Bitcoin Unlimited to SegWit votes stays the same, but is extrapolated out so that ALL Bitcoin miners MUST choose either Bitcoin Unlimited or SegWit. That would mean around 55% of miners would be supporting Bitcoin Unlimited and 45% of miners would be supporting SegWit. (There is an incentive to go with the “winning” majority chain, so this division of hashing power could be even more severe at the time of a hard fork.)
If Bitcoin Unlimited activated and a block over 1MB was mined, then the SegWit part of the network would reject this block and build off the previous block. With a drastic drop in hashing power but no change in the difficulty target, it would take the Bitcoin network longer to find the winning solution that confirms a new block to the blockchain. With our hypothetical numbers, blocks for Bitcoin Unlimited would come out approximately every 18.2 minutes and SegWit blocks would come out approximately every 22.2 minutes. Any transaction capacity increase promised by Bitcoin Unlimited and SegWit would be delayed until the difficulty target adjustment shakes out. As more blocks were found, the difficulty of each chain would adjust and after about a month (a little longer for SegWit), the 10-minute block time target would be restored.
How would this hard fork affect Bitcoin users?
A Bitcoin user with coins before the hard fork would then be considered to have a positive balance on both ledgers/blockchains after the hard fork. (The Ethereum blockchain forked after last year’s DAO debacle, yielding ETH tokens and ETC tokens (Ethereum Classic) for users who owned ETH before the fork.) But without taking care, a user could intend to spend coins on one chain and unintentionally spend on both chains; this is known as a replay attack, though it’s really not an attack if it’s done unintentionally. Maybe that should be called a replay error so as to not be confused with an intentional replay attack meant to defraud.
How does one guard against a replay attack after a hard fork?