How Wallets & Exchanges Can Operate During the Hash Battle on Bitcoin Cash

There is a deep disagreement about what the Bitcoin Cash protocol rules should be starting November 15. There is going to be a hash battle and a temporary blockchain split. Many wallets and exchanges plan to pause service during this period of time. If the hash battle is prolonged, it would be a disaster to pause service indefinitely. Fortunately, there is a way for wallets and exchanges to continue to operate during the hash battle while being guaranteed to be on the winning side when that occurs.

We refer to this procedure as the “anti-split procedure.” The basic idea is to run both nodes simultaneously (ABC and SV) and only accept as valid transactions that are valid on both chains at the same time. Transactions valid only on one chain and not the other (split transactions) are held in stasis and cannot be spent until the hash battle is over.

Each deposit should be checked against both nodes. If the deposit is only valid on one node, it is regarded as “split”, and cannot be spent or withdrawn. For non-custodial wallets, payments are also validated against both nodes and only regarded as valid if it is valid on both nodes. Any split transactions are held in stasis until the hash battle resolves. After the hash battle, the transactions on the winning side can be removed from stasis and spent or withdrawn. The split transactions on the losing side vanish and have no value.

The insight behind the procedure is the idea that wallets and exchanges naturally produce transactions valid on both chains. There is no built-in replay protection in this fork and thus there is a naturally unified transaction history for unmodified wallets. This unified transaction history will appear on both blockchains simultaneously and thus it will ultimately be on whichever blockchain wins the hash battle. Your customer’s funds are safe on the unified transaction history.

Some wallets are choosing to add in replay protection with CDS or MUL. This is exactly the opposite of the anti-split procedure. Instead of guaranteeing that their users’ funds are valid on whichever chain wins, they are guaranteeing that their users’ funds will vanish if the other chain wins. We urge against splitting coins because it results in guaranteed loss of funds for one side. The anti-split procedure guarantees the safety of funds so long as one side ultimately wins the hash battle.

It is better if every wallet and exchange adopts the anti-split procedure because this ensures the existence of a functioning, interoperable ecosystem of payments during the hash battle. Any split transactions will only be accessible on one side. Anti-split transactions are accessible on both sides simultaneously. Split transactions cannot be accessed by anti-split wallets because it is too risky. Anti-split transactions can be safely accessed by any wallet.

If exchanges decide to list the two chains separately during the hash battle, then the price of anti-split coins is the sum of the coins on each chain:

price(BCH) = price(ABC) + price(SV)

After the hash battle resolves, there will be one blockchain and the price will no longer be broken into parts.

The anti-split procedure has the implication that coinbase transactions are considered split transactions and thus cannot be deposited or spent using any anti-split wallet. In other words, miners can’t sell their coins. This is only a temporary consequence that will last during the hash battle. When the hash battle is resolved, split coins on the winning chain can be accessed. Miners are incentivized to resolve the hash battle quickly so they can sell their coins on anti-split exchanges.

Leave a Reply