Bitcoin Cash May 15th Hard Fork 32MB Upgrade

On the 15th May 2018, Bitcoin Cash will go through a hard fork where its block size will be increased to 32MB, and several changes will be made potentially introducing smart contracts to Bitcoin Cash.

This guide will explain the lead up to this hard fork, where Bitcoin Cash’s price surged over 100% in mid-April and then dipped; we’ll also explain what’s going to happen in the hard fork on the 15th May.

Hard Fork vs Software Upgrade

Before we explain the changes in this upcoming hard fork, it’s important to compare it against Bitcoin’s hard fork that created Bitcoin Cash originally.

So when a coin hard forks, it generally happens for two reasons:

The development team/community around a coin disagrees on planned changes. When a hard fork takes place in this scenario, one group makes the changes to the existing coin, and the other creates new coin without those changes. This scenario leads to 2 coins after the hard fork.

The development team/community agree with a set of changes, and hard forks to implement these changes. In this scenario where there’s consensus, no new coin is created and the hard fork is essentially a software upgrade.

Back when Bitcoin Cash was originally created on the 1st August 2017, the first scenario occured, leading to two coins after the hard fork (BTC and BCH). This upcoming hard fork on the 15th May 2018 looks to be in the second scenario, where the community around Bitcoin Cash agrees with the planned changes. If there’s consensus when the hard fork takes places, this will essentially be a software upgrade with no new coin being created.

Bitcoin Cash vs Bitcoin ABC

While researching this upcoming hard fork there seemed to be confusion around what Bitcoin ABC is; is this a new coin arising from the 15th May 2018 hard fork, is it an existing coin, etc.

So Bitcoin ABC is not a new coin created after the upcoming hard fork, it’s just software to run a Bitcoin Cash node. Based on Bitcoin ABC’s announcement, this other node software is also likely to support the upcoming hard fork.

Block Size Increase

Disagreements in how to scale Bitcoin were a factor leading to Bitcoin Cash’s creation, where increasing the size of a block increases the total network capacity of the associated coin (in this case Bitcoin Cash). Bitcoin for example uses technologies like the Lightning Network instead to keep blocks smaller.

Be aware that although the block size is now 32MB, this doesn’t mean every block will be that big. Currently the block size is 8MB, but recent blocks look to be around 0.075MB, so this just increases the maximum size – not the size of every block.

The higher the block size, the more transactions can fit in each block; this aspect leads to transaction fees being lower (as there’s less competition to fit transactions into these blocks).

Op Codes Adding Smart Contract Support

Interestingly in Bitcoin ABC’s announcement for this network upgrade, these op code changes aren’t the focus. They state that the “most notable change is the increase of the maximum blocksize to 32 MB“. So although making these op code changes potentially allows smart contracts to be built on Bitcoin Cash later on, maybe this suggests that it’s in very early stages at the moment/not a priority yet (that instead scaling is their focus).

Some op code-related things to be aware of:

We’ve seen speculation that this potential for smart contracts on Bitcoin Cash caused recent price increases (as it could potentially compete with Ethereum).

These op codes were originally disabled by Satoshi Nakamoto 7 years ago because there were vulerabilities in them. Steve Shadders suggests that “7 years have passed and the edge cases around these op codes are much better understood now”.

Not all of the disabled op codes are being enabled, only a few of them (to limit the risks and allow more attention to be paid to each).

OP_Return allows extra data to be stored on the blockchain, this combined with the other op codes potentially allows smart contracts on Bitcoin Cash similar to Ethereum.