In the last days of July 2017, the Bitcoin miners have unanimously decided to signal for Segregated Witness, ending a years long scaling debate discussion. However a few participants decided to reject this decision and create their own Bitcoin fork, Bitcoin Cash (also known as BCC, ABC or UAHF).
As a result, all Bitcoin holders will be granted a new duplicated Bitcoin Cash balance (literally airdropped free money) if the fork activates — this post and the follow ups will describe how you can best secure this new balance, then decide to trade it, hold it or sell it as you wish.
If you don’t care about free money (in the form of a new BCC balance, equivalent to your pre-fork BTC balance), you can stop reading here — your regular Bitcoin balance is safe and you don’t have anything to do.
Otherwise you’ll need to stop transacting when the fork activate then perform a few operations to split your assets and guarantee the safety of your new free funds.
The fork is supposed to activate on Unix timestamp 1501590000 (1st of August 2017, 12:20 pm UTC — countdown available on https://timeanddate.com/s/3ayn), providing all participants have access to a synchronized and reliable time source.
If your Bitcoin funds are on a Ledger hardware wallet device, you will automatically get an additional BCC balance (same amount than your BTC balance) after the activation of the fork. Our Chrome app will provide in time a BTC/BCC selector.
The replay problem
When two chains fork, they share a common history — thus any transaction valid on one chain can also be valid on the other chain depending on the rules of both chains. Even if both chains are not connected to each other, it is trivial for a third party to do so.
Therefore you have to be careful and split your assets before transacting — otherwise each transaction you perform could end up duplicated on both chains, which is not what you wanted to do in the first place.
Splitting basically just means sending your assets to a different address on each side of the fork — once split, each asset is independent and not vulnerable to replay attacks anymore.
Avoiding replays from Bitcoin to Bitcoin Cash
Transactions containing the fixed string “Bitcoin: A Peer-to-Peer Electronic Cash System” in an OP_RETURN are forbidden on Bitcoin Cash chain until block 530000, creating a simple way for all wallets to generate transactions that cannot be replayed on the Bitcoin Cash chain.
However this comes with several drawbacks :
- It clutters the Bitcoin blockchain with large OP_RETURN outputs for no specific reason, generating larger transactions and bumping up fees for everybody else in the process
- It is not applicable for transactions already containing an OP_RETURN (used by notarization services, Colored Coins, Counterparty Assets and other high level applications), since only a single OP_RETURN output per transaction is valid
- This scheme requires you to trust that the rules will not change on the Bitcoin Cash chain, which is kind of a gamble today as its mining power is unknown and its difficulty can be reajusted every few hours.
Avoiding replays from Bitcoin Cash to Bitcoin
Avoiding replays from Bitcoin Cash to Bitcoin is slightly more complicated for wallets which have to support a signature scheme similar to BIP 143, but guarantee that the transaction will not be replayable on the Bitcoin chain as it uses a specific HashType.
Optimal splitting strategy
The optimal splitting strategy, when supported, is to split from the Bitcoin Cash side as it doesn’t impact the Bitcoin blockchain and offers higher non replayability guarantees.
We’ll provide a tool to assist our Nano S and Blue users in doing so shortly. Owners of older generation products (Nano and HW.1) will also be able to split their coins using the OP_RETURN strategy.
In any case, no action has to be taken on your side before the Bitcoin Cash fork activates.