BitcoinForks-200

I have had a few questions about protecting bitcoin in a hard fork from friends and colleagues recently. I have also read people asking this question in various bitcoin forums throughout the internet and while I have seen a lot of good advice out there, I have also seen some terrible advice.

Protecting your bitcoin has come to a head recently with a new bitcoin fork about to happen at block 494,784. I will try to spare you my opinion as to what fork is ‘right or wrong’ or any of the politics involved, I will just tell you how to protect your bitcoin by splitting them, as safely as possible, if that is what you chose to do.

I mostly want to help you understand how and why this method of spiting works so you can make the best-informed decision you can. My hope is that if you have already decided to split your coins I can point you to a method that is (relatively) safe and easy to follow so you don't end up being forked.

For the two blockchains I am talking about I will use the semi-neutral labels that have been assigned to them by others, they are:

I have tried to make the process as generic as possible. There are so many wallets, exchanges, block explorers, hot wallets, cold wallets, hardware wallets, paper wallets and permutations of them there is no possible way I can cover them all. The important thing is that you understand how it is done and the steps involved so you can apply it to your own situation.

What's Happening

Within the next few weeks at block 494,784 bitcoin will probably split in two in what we call a hard fork. The exact time and date are a bit hard to estimate with blocks times fluctuating as they do but there is a countdown clock available if you want to keep an eye on it.

The essence of the hard fork is that there will be the S1X chain that follows the current rules and the S2X chain that has an altered rule that allows the transaction space to be twice as large as it was before going from 1 MB to 2 MB.

While the S2X forks rules will be compatible with S1X rules, the unchanged rules in the S1X blockchain will reject any block that uses in excess of 1 MB purely for transactions in the S2X fork. I am careful to say ‘purely for transactions’ because either chain can contain up to an additional 3 times their original capacity by storing the transactions in a slightly different format.

Why would you split your coins

Because there is currently no replay protection, if you don’t split your coins it is quite possible that the next time you transfer your coins to a third party on one blockchain you may inadvertently transfer the coins on the other blockchain. This is often called a transaction replay or a replay attack. It removes the opportunity for you to choose what you do with your coins because you don't own them anymore.

There is also an opportunity, if you have a strong preference for either side of the upcoming hard fork you can sell the coins you don’t want and buy the coins you do.

As an example, in the recent Bitcoin Cash fork on the 1st of August those users that split their coins early and decided to support Bitcoin Cash managed to receive 5 times the amount of Bitcoin they sold as Bitcoin Cash. Those that sold Bitcoin Cash managed to gain an extra 20% Bitcoin. There is no guarantee you will actually get those rates or what the value of that 5x or 20% will be so choose carefully if you decide to go down that route.

What side of the fork to chose

I am not going to tell you because if it did it would just be my opinion. If you are reading this you have probably formed an opinion of your own and I would suggest that you follow your own counsel and do what you are comfortable with.

I need to point out that splitting your coins and then doing nothing with them is also a valid option. Choosing to do nothing and preventing others from choosing for you gives you time to decide exactly what you want to do.

The Risks of Hard Forks

Unfortunately, in a hard fork, there is a real risk in unintentionally losing either side of your forked coins or in more extreme circumstances both.

The primary risk in losing your coins on one side of the fork is by transferring the other side of the fork to a third party. It is likely that the transaction you make will be replaced (i.e. submitted) to the other side of the fork transferring the coins on the other chain as well. If that happens, unless you can convince the third party to transfer them back, you have lost them.

Additionally, some of the other methods to split coins (I will list some at the end) either require technical abilities that not everyone has or excessive counterparty risk that may, if things go wrong, leave you with no coins on either chain.

Finally, protecting bitcoin in a hard fork requires you to make a few bitcoin transactions. Make sure you are comfortable moving your bitcoin.

Replay Protection

Now the doom and gloom part is over I have to point out that all these risks may never eventuate. It is quite possible that the S2X hard fork will include something called replay protection.

Replay protection makes it so that a transaction on one blockchain is incompatible with transactions on the other blockchain so your transaction cannot be replayed. There are many ways to implement replay protection, some are mandatory, some are optional.

Since the S2X fork has yet to implement replay protection [1] I can't comment on how it may work if implemented at all. Regardless, the below spitting method only involves a small amount of risk that can be quickly mitigated if replay protection is implemented.

Since you cannot implement replay protection without forking the S1X blockchain is unable to protect your transactions from replays.

When Bitcoin Cash forked it implemented strong replay protection and that is why users were able to safely make the choice as to what to do with their coins on either blockchain.

The Method

Now I have covered the bases as to why you would want to split your coins and what the potential risks may be here are the simplified steps to split your coins:

Pre-Fork

  1. Make absolutely sure you have read and understood what you are about to do.
  2. Open your S1X wallet and make sure you are familiar with how it works.
  3. Find an exchange that will support both sides of the fork.
  4. Transfer a tiny amount of bitcoin to the exchange.
  5. Move/Consolidate all of your bitcoin into a single address in your wallet.

You can do all of the above now if you wish.

Fairly much any wallet that lets you transact in Bitcoin today should work as long as it allows you to consolidate all of your bitcoin into a single address in step 5. There are wallets that won't let you transfer all of your bitcoin into a single address [2]. If that is the case you will need to move all your bitcoin to another wallet in order to consolidate all of your bitcoin into a single address.

As for what exchange to use, I believe both Bitfinex and HitBTC have plans to offer both. Unfortunately I do not keep all that up to date with exchanges (primarily because I am an awful trader but also because the last exchange I used extensively was MtGOX, I lost 0.00001227 bitcoin there!) so make sure you do your due diligence on your choice and definitely don't just take my word for it.

The part that involves risk is the small amount of bitcoin that you are storing on an exchange. I cannot recommend anyone keep bitcoin on an exchange that they cannot afford to lose so please, keep this amount to the minimum, there only needs to be enough to make sure you can transfer it off again and no more. Check the minimum withdrawal amount on your chosen exchange for a guide and remember to add any fees that they charge for withdrawals.

You are now setup to split your coins.

Post-Fork

  1. Make absolutely sure you have read and understood what you are about to do.
  2. Make sure that the fork has happened.
  3. Wait until your exchange allows you to withdraw the S1X coins.
  4. Transfer the S1X coins into the address that you consolidated your coins into in step 5 above.
  5. Wait until the transfer is confirmed.
  6. Check that the coins are indeed split.
  7. Make a transaction using your S1X wallet using ALL of your coins to another address in your wallet and wait for it to confirm.

It is important to note, even though the split will happen at block 494,784 it does not necessarily mean that the fork will happen at that block. It is quite possible that the S2X will not fork until a block with 1 MB+ pure transaction space in it is mined on it that will be rejected by the S1X chain. Fortunately using this method you won't have to worry about that because when your exchange allows you to transfer you can be fairly sure that the chain has been split.

It is also important to note that even once the chains have forked it may be a day or more before your exchange lets you transfer them as the exchange will need time to split their coins doing most of the work for you.

You can check that the coins are actually split after doing step 12 above with your S1X wallet by visiting the address on a block explorer that follows the S2X blockchain. What you are expecting to see is that the transaction is not on the S2X blockchain but confirmed in your S1X wallet. You should also see that the S2X coins are still in the address that you consolidated them into in step 5.

You are done, your coins are now split and are fully back under your control to do with what you will. Now is probably a good time to reclaim the S2X coins that will still be on the exchange into an S2X wallet along with your conciliated S2X coins.

Why this works

What we are doing here is getting an exchange to split a small amount of coins for you and then using those split coins to taint and split the rest of your coins.

The exchange will have their technical people working hard to make sure that they get the split using one (or most probably all) of the methods at the end of this article so you can be fairly sure that when you are able to withdraw from the exchange you will be only withdrawing from one side of the fork (the S1X side).

It means that when you do the final transaction in step 12 you are moving your consolidated S1X coins along with the tainted coins from the exchange. Because those tainted coins only exist on the S1X chain if it were replayed onto the S2X chain it will fail because those tainted coins don't exist on that chain. Conversely after step 12 when you transact with those consolidated coins on the S2X chain it cannot be replayed on the S1X chain because you have already moved the coins on the S1X chain.

The Result

You can now use your coins on both blockchains without the worry of it being replayed onto the other blockchain. There is literally no way to ever merge them again even if you wanted to (and I cannot see a single reason why you would want to).

Congratulations, you are now in control of your coins to do whatever you choose with them.

Final Notes

  • The primary risk of the above method it that it requires you to leave a tiny fraction of your bitcoin on an exchange. Exchanges get hacked, pull exit scams and sometimes they are even shut down by governments.
  • There is also the outside chance that the exchange will not split the coins correctly. Checking the blockchains in block explorers will mitigate that for you though.
  • There are also ways to shortcut some of the steps above. If you understand what you are doing feel free to modify the steps but realise, I cannot guarantee you have fully understood the steps so any modification you make to them is out of my control.
  • Securing your wallet from viruses, keyloggers and general internet nasties is as important as ever. If someone manages to steal from your wallet while you are splitting your coins all this effort is in vain.
  • The above method splits all your coins at once, if you are a bit wary of pooling all your bitcoin together like that you can actually do it a bit at a time by tainting your coins with coins you have already tainted. Be careful to make sure you keep track of your coins if you do it that way.
  • If you are unsure and don't understand something don't just take my word for it. Ask a friend or colleague who knows more than you do to help and advise you, ask your local bitcoin user group or even put out a question on reddit.
  • Finally, I cannot guaranty anything! Properly executed the above steps will work but things change and people make mistakes. As always in bitcoin, ultimately you are responsible for your bitcoin.

Alternate Methods

There are other ways to split your coins, I will list the main ones here (without links) so you can research them if you want. It is how the exchanges will be splitting their coins and with enough technical know how you could do it as well.

  • Tainting you coins with the help of a friendly miner.
  • N-Locktime splitting.
  • Replace By Fee & double spend splitting.
  • Leaving all of your coins on an exchange.

If you chose to use one of the above methods please make sure you understand what you are getting yourself into. Using the alternate methods will probably be quicker but most of them will be a lot more complex and the chance of error will be higher unless you know what you are doing. The option of leaving all of your coins on an exchange may seem the quickest of them all but also involves a huge amount of third-party risk and you probably won't be able to transfer your coins at all for at least a few days.

Footnotes

[1]Not strictly true, they did temporarily implement an optional replay protection but it was later reversed because flaws were discovered.
[2]I know bread for IOS as an example won't let you transfer to an address already in your wallet.


Comments

comments powered by Disqus