A Bitcoin User’s Guide to the August 1st Fork — Version 1.25

Last updated: 2017–07–29

There are interesting things afoot in the Bitcoin community, and a lot of people seem to be making a lot of noise and bluster. If you’re reading this, you are someone who wants to actually understand how the fork affect you as a Bitcoin user.

At this time, the two most likely blockchains that will fork from each other on August 1st, 12:20 PM UTC, are what we will call Bitcoin Cash and Segwit Coin. To make sure we’re all on the same page, we’ll start off with a quick recap on what the two forks are, and then proceed from there.

Table of Contents

Introducing Segwit Coin
Introducing Bitcoin Cash
What happens to my addresses?
Why do transactions need replay protection?
Why don’t I need replay protection in this case?
What wallet do I use for a given blockchain fork?
My wallet does not support Bitcoin Cash!
What if I leave my coin on an exchange?
I hear ViaBTC allow users to split the coin already?
Which coin is Bitcoin? Are both coins forks?
Different exchanges, different symbols?! BCC, BCH and BMC?
Can I help Bitcoin Cash?
How has this document changed?

Introducing Segwit Coin

The Segwit Coin fork is being driven by the Segwit2X agreement, and is the result of an arrangement where at first, Segwit is added to Bitcoin, and then three months later, the block size is increased from the current limit of 1 megabyte to 2 megabytes.

Complicating things is the presence of a vocal faction of Bitcoin Core developers and community members who have stated that 1 megabyte is enough, and it’s dangerous to increase the block size. Given the factions involved, there’s concern that politics and bullying will create problems for the delayed block size increase.

And when will the network adopt the Segwit2x(tm) block size hardfork?
 — DeathScythe676 (Some random poster)
 I estimate that will happen at roughly the same time as hell freezing over.
 — nullc (Gregory Maxwell, Core Developer, Blockstream CTO)

Can anyone really rely on the block size increase happening?

  • Will the block size increase ever happen?
  • Will it get delayed?
  • If it does get increased to 2 megabyte, given the stalemate that has persisted for over two years, how will it ever get increased further?

If someone only went along with the Segwit2X agreement and the activation of Segwit, because they were desperate to increase the block size and allow more people to do transactions, they might start to feel a little nervous.

Introducing Bitcoin Cash

The Bitcoin Cash fork was originally driven by Bitmain’s intention to keep a non-Segwit fork alive as a form of protection against the UASF. With this at worst minimal mining commitment in place for a non-Segwit fork, it presented the opportunity to make an actual big block fork.

The Bitcoin ABC project was created by independent Bitcoin developers inspired by Bitmain’s announcement, as a minimally and safely enhanced Bitcoin client which would allow both mining, and spending of Bitcoin on a big block fork. It adds replay protection which we’ll get to later, and a few other changes.

By requiring that the first block of it’s forked blockchain be larger than the previous limit of 1 Megabyte, it and anyone who participates in it commit to larger block sizes.

What happens to my addresses?

You have a wallet with addresses. It connects to a blockchain, and you make transactions, perhaps sending and receiving coins to and from an exchange. La de dah, good times. But a blockchain fork is coming, and you’re not sure what this means for your address.

The crucial point in time is when the fork happens. The blockchain you are using, will diverge creating two blockchains with the same history up until that point in time. Your then addresses and balances will exist in both blockchains separately, with the same initial balance from the shared historical blockchain at the time of the fork. After the time of the fork, you can then in theory perform transactions on one blockchain for your addresses, and it will not affect those addresses on the other blockchain.

Let’s say you have an address 123456 and with 10 bitcoins, and you send them into the Lightning Network or a similar off-chain system, so you can take advantage of the newly added Segwit functionality. You would be doing this on the Segwit Coin blockchain, and the address 123456 there would become 0 bitcoins. On the Bitcoin Cash blockchain, the balance in address 123456 would however still be 10 bitcoins.

As the Core Bitcoin client is currently implemented, there is nothing to mark a transaction as only valid for one specific blockchain. This would be what we call replay protection, which if used prevents a node for another blockchain from accepting the transaction.

Why do transactions need replay protection?

As you know by this point, the blockchain address you had at the time of a fork with an amount of coins in it, will exist simultaneously and separately on any blockchains that fork at that point. So if you make a transaction on that address, normally there’s nothing to suggest it should only work on one particular forked blockchain.

Any transaction you make on blockchain A can therefore be sent to blockchain B, and it will get processed there. As long as you still have at least the same amount of coins in the same address on blockchain B, your coins there will be moved in the same way as they were on blockchain A. Now, if you sent someone coins on blockchain A, they might resend the transaction on blockchain B to get paid twice — once on each blockchain. But it’s more likely to be someone unhinged who might do this to strangers to interfere with a blockchain they didn’t like.

This is why replay protection is needed. It means that a transaction will only be compatible with the specific blockchain it was sent to. If it is sent to another blockchain, either by mistake or maliciously, it will be ignored.

If either of the blockchains involved implements bi-directional replay protection, then a user can just send a transaction to one blockchain and it will not be valid for the other. This is the case with Bitcoin Cash, which took the high road and implemented this to make things safer for both users and the exchanges they use.

Why don’t I need replay protection in this case?

Bitcoin Cash makes minor backwards compatible changes to the protocol, to allow replay protection to be used in transactions on both forked blockchains.

A Segwit Coin wallet could possibly opt to make a transaction on the Segwit Coin blockchain, and it would then not be able to be replayed on the Bitcoin Cash blockchain. Conversely, a Bitcoin Cash wallet can make a transaction on the Bitcoin Cash blockchain, and it will inherently never be able to be replayed on the Segwit Coin blockchain.

On the Bitcoin Cash side of things, this comes for free having been built into the standard expected Bitcoin Cash transaction. A Bitcoin Cash transaction must include a custom marker indicating it belongs to the Bitcoin Cash blockchain. This is SIGHASH_FORKID, and it’s presence indicates transaction has been signed using a modified algorithm.

Segwit Coin nodes do not understand this custom marker, or know how to calculate transaction signatures in this way. The result is that they have no option but reject the transaction as invalid.

Between these two situations, replay protection is provided for both blockchains, and the user and exchanges can without undue complication participate in both blockchains safely.

What wallet do I use for a given blockchain fork?

The Segwit Coin functionality has been lying dormant in it’s host, the Bitcoin Core client, for several years now. This is what a soft fork does, you add the code in what is supposed to be a backwards-compatible way, and hope it gets activated. It just hasn’t been triggered into full blown Segwit yet, because push comes to shove, it’s somewhat of a mess and there’s a load of politics and it was really unappealing in the way it was done. This is partly caused because of an irrational fear of hard forks, that has been cultivated in the Bitcoin community.

In any case, the Segwit support is already there in Core client, and the wallets that work with it. This means that all existing wallets that currently work with the current yet-to-be-forked blockchain, will continue to work for Segwit Coin. As long as that wallet is connected to a server or node connected in turn with the Segwit Coin blockchain. What it also means, is those wallets will not have replay protection and your Segwit Coin can be stolen or gifted as you do transactions from them. But if you don’t care, or plan to care about Bitcoin Cash, then this won’t matter to you. That would be strange however, as even before the fork, it is possible to sell Bitcoin Cash for at least hundreds of US dollars.

If you do want to sell off your split Bitcoin Cash coins, what can you do? How can you make a transaction on the Segwit Coin blockchain that has the added extra to make it invalid on the Bitcoin Cash blockchain? How can you make a Bitcoin Cash transaction with the other added extra that makes it valid on the Bitcoin Cash blockchain, and invalid on the Segwit Coin blockchain?

You need a wallet that supports it. One is Electron Cash.

Now you might go to the Electron Cash website (it’s being renamed from Electrum Cash because the Electrum developer favours segwit and dislikes the name being reused) and think, “Hey, there’s nothing there. What the..?” But the code is ready, and has been written by an active developer (Kyuupichan) within the Electrum community. It’s pending release this week, and will be ready for the August 1st deadline. And better yet, it’s not that many changes to the original Electrum wallet. Thomas Voegtlin, the developer of Electrum has been preparing, testing and polishing the support in Electrum for multiple forks for over a month or so now.

What Kyuupichan has added, is the replay protection and a few small other changes, allowing it to be used on both Bitcoin Cash and Segwit Coin blockchains, safely.

My wallet does not support Bitcoin Cash!

Check first! Other wallets than Electron Cash have stated they will run Bitcoin Cash nodes and support it’s blockchain, in addition to supporting the Segwit Coin blockchain.

  • Trezor: Hardware wallet maker Trezor have stated they will be support Bitcoin Cash.
  • Hardware wallet maker Ledger also.

Otherwise, talk to them. Make your voice heard. They’re reasonable people. Unless they are politically biased towards Segwit, and don’t support the notion that Bitcoin is the longest Blockchain — not just the one they like better — they should be open-minded to supporting Bitcoin Cash.

What if I leave my coin on an exchange?

If your coin is on an exchange, it is on the address belonging to the exchange. This means that unless they explicitly state they will give you your split Bitcoin Cash, you will lose it and they can sell it for their own profit. This is why it is recommended that people withdraw their coins from an exchange, when a fork is near.

Some exchanges will split the coin and safely give you the coin for each fork, and allow you to send them to yourself with replay protection.

I hear ViaBTC allow users to split the coin already?

Anyone who registers with ViaBTC, can transfer BTC there now / pre-fork, and find several options available to them.

Option 1: Trading BTC solely for Bitcoin Cash

If the user wants to sell their BTC for CNY (Chinese Yuan), they can then buy BCC (the Bitcoin Cash symbol used on ViaBTC) with it. This allows them to divest themselves of their future Segwit Coin, and buy more Bitcoin Cash which is selling at a lower price.

ViaBTC after a day of offering the BCC/CNY trading pair, have also added the BCC/BTC trading pair. This gives a foreign user who has no use for Chinese Yuan, the opportunity to buy Bitcoin Cash directly with the BTC they’ve moved onto the exchange. Or a Segwit-favoring user the chance to sell their Bitcoin Cash, and withdraw BTC, without having to go through Chinese Yuan.

There is a possibility that Bitcoin Cash will never happen. Much the same as we cannot guarantee an asteroid won’t hit the Earth and end all life on this planet. In the unlikely event the Bitcoin Cash fork were to mysteriously stop in it’s tracks and not occur, anyone who buys BCC using CNY, will lose their money. Similarly, anyone who sells the BCC will get to keep the results of their gamble that the initial pre-fork price would be worth it.

But the popularity of BCC on the ViaBTC exchange, where it has double the volume traded of the current BTC, already proves there will be both mining profit and demand for Bitcoin Cash.

Option 2: Trade BTC for both Bitcoin Cash and BTC_FROZEN2

Someone who transfers BTC onto the ViaBTC exchange, can then redeem as many as they want at 1 BTC for one each of both 1 BTC_FROZEN2 and 1 BCC (the Bitcoin Cash symbol used on ViaBTC). On August 1st, the BTC_FROZEN2 will be made available as the new BTC (which is now Segwit Coin). And the BCC will be unfrozen after the Bitcoin Cash blockchain starts up.

Making things more interesting, ViaBTC have added a market for the BCC/CNY currency pair. This means that people who don’t think Bitcoin Cash will turn into anything, or harbour some sort of hysteria or resentment towards it, can sell their right to their split coins on it and make some money. And people who see it’s potential, can obtain CNY (Chinese Yuan) and buy it cheaper than it would likely be when the Bitcoin Cash blockchain is created on August 1st.

As mentioned above, the volume exchanged of BCC is at the time of writing, double that being exchanged of BTC. Segwit Coin however, is not tradeable yet, so whatever that is worth is still to be determined. Note that anyone who holds BTC is holding pre-split Bitcoin, and come August 1st, they will get it exchanged at 1BTC for 1 each of Segwit Coin and Bitcoin Cash.

Which coin is Bitcoin? Are both coins forks?

The question of which coin is Bitcoin is tricky.

The correct answer is that Bitcoin is supposed to fork, and that the longest blockchain is Bitcoin. Now consider businesses that deal in Bitcoin, and how practical it is for them to change what they call Bitcoin or trade under the symbol BTC.

Fortunately, Blockchain forks more often than not are short term and due to the way that we wait for multiple confirmations to ensure a transaction will be as good as final, do not last long enough to make it an issue for the businesses. But an intentional fork like that of Segwit Coin and Bitcoin Cash, is another story. It is going to create two blockchains that are likely to co-exist in the longer term.

Which contender is the fork?

There’s an argument that the real Bitcoin is the one that continues onward, without introducing new incompatibilities. An incompatible fork forces whatever makes it’s blockchain different on whoever decides to follow it, requiring custom changes to the code of the client’s used to connect to it.

In the case of Segwit Coin, the incompatible changes have been buried in the Bitcoin Core client code, and have sat there waiting to be activated for several years. And now that they are being activated, something called BIP91 has come into effect. BIP91 requires that every mined block must now be changed to reflect the activation of Segwit, and if the miner doesn’t do this their mining efforts will be wasted with their block being rejected.

Bitcoin Cash by design has incompatible changes. The biggest of these, is the replay protection which we talked about earlier.

Both of these are intentional forks to the blockchain. There’s no one true Bitcoin any more, we’re veering off into uncharted waters.

Different exchanges, different symbols?! BCC, BCH and BMC?

Knowing that two incompatible forks are happening, we can understand that businesses like exchanges are likely to keep using the Bitcoin and the BTC symbol, for the one that is being forced on the most people through the Segwit2X agreement — Segwit Coin.

So what symbol does Bitcoin Cash get? There’s a lot of symbols in use for a lot of different coins, and even coin futures. And along with some politics, and acting out, this has resulted in Bitcoin Cash getting a few different symbols.

The following exchanges have indicated they will allow trading, and any symbol they have stated they will use shown:

  • Bitfinex: BCH.
  • Bitpoint: unknown.
  • Bitsquare: BMC.
  • Bit Trade (Japan): BCC.
  • Kraken: BCH.
  • OKCoin: BCC (on hold).
  • ViaBTC: BCC.

For the most up-to-date list of exchanges, check out the Bitcoin Cash web site.

Bitfinex

Bitfinex have decided that Bitcoin Cash is a spurious fork. And they’ve already used the symbol BCC for Bitcoin Core, so they’re using BCH for Bitcoin Cash. Also, they’ve made a strange decision to label Bitcoin Cash “BCash” because it might be confused with Bitcoin. Of course, they didn’t label Ethereum Classic “EClassic”, so the likelihood of this just being part of their partisan bias for Segwit along with the “spurious” claim is pretty high.

Bitpoint

Anecdotally, Bitpoint intend to allow trading. However a primary source for this has yet to be located.

Bitsquare

Bitsquare seems to have taken a petty and childish approach, and has decided to associate it with Bitmain, despite any real known substance to that claim. You can see that Bitsquare is partisan to the Segwit aligned User Activated Soft Fork (UASF), and has changed their Twitter handle to include UASF to indicate the extent to which their preference is held.

Bitmain have made clear they are not associated with Bitcoin Cash, or the UAHF.

Bitsquare’s announcement

Bit Trade (Japanese)

Anecdotally, they are supposed to allow BCC/JPY and BCC/BTC trading. However, a primary source for this has yet to be located.

Kraken

It doesn’t get more unbiased and straightforward than Kraken’s announcement. They’ll split the coin for all users. They’ll allow trading. They’ll use BCH. It’s all laid out without the spin and vacuous claims included with some of the other exchanges.

OkCoin

OkCoin, which bills itself as the fourth largest exchange, stated that it will use the symbol BCC for Bitcoin Cash and BCS for Segwit Coin futures. It would offer futures in both Bitcoin Cash and Segwit Coin, and after the fork the Segwit Coin future will change symbols from BCS to BTC.

However, they have since put out another statement reconsidering this.

ViaBTC

ViaBTC is using the symbol BCC for Bitcoin Cash. This likely seemed like a good option at the time, but as Bitsquare rightfully point out, it was already in use.

ViaBTC’s announcement

Can I help Bitcoin Cash?

There are many ways you can help Bitcoin Cash out.

Run a node

The following clients support Bitcoin Cash:

A healthy Bitcoin blockchain does not have a centralised group of developers like Bitcoin Core, trying to control where Bitcoin is headed, and when it doesn’t head there, stalling promised block size increases until people give them what they want.

There should instead be multiple groups of developers, each representing different Bitcoin client implementations, who have to work with miners and the community. And this is the direction Bitcoin Cash is headed. The different clients give the network a resilience that comes from the reduced likelihood that problems existing in one client, also exist in another.

Buy a mining contract

Various organizations have talked about allowing their users to buy BCC mining contracts, but only ViaBTC has followed through so far.

Bitcoin.com Mining Contract

Roger Ver has stated several times, both in interviews and in Reddit comments, that if possible Bitcoin.com will allow members of their mining pool to choose what blockchain to mine. Their current public service announcement makes this promise official.

ViaBTC Mining Contract

Up to the fork, the mining contract will mine BTC, and after the fork it will start to mine BCC. Preparing for all eventualities, if an asteroid should hit the earth and it should take out all Bitcoin Cash nodes, leaving Segwit Coin nodes intact, the contracts will switch over to Segwit Coin. This means worst comes to worst, anyone who purchases a BCC mining contract knows they have a trustworthy partner to buy it from.

ViaBTC BCC mining announcement

How has this document changed?

2017/07/23:

  • I’ll update this document with changes, or relevant details in any upcoming news. And I’ll list the changes down here, so you can get a good idea of what is changed without having to read through the whole thing again, attempting to guess.

2017/07/24:

  • Gregory Maxwell must have noticed the link to his comment, as he has edited it and softened it.
  • Corrected the information about Bitmain and their original plan for a non-Segwit fork. It was originally intended to counter UASF, not to hedge against the 2 megabyte blocks of Segwit2X not eventuating.

2017/07/25

  • Reworked the introduction to reflect the rest of the document, that it’s primary focus is the fork of Bitcoin Cash and Segwit Coin.
  • Added new “Which coin is Bitcoin? Are both coins forks?” section.
  • Removed Bitfinex BCU symbol details, as it was misconstrued old out of date information.
  • Added OKCoin exchange with BCC and BCS symbols to the “Different exchanges, different symbols?! BCC, BCU and BMC?” section. Qualified OKCoin section, as changing again.
  • Added Bit Trade and Bitpoint Japanese exchanges as supporting BCC.
  • Added the Bitcoin.com mining contract choice of blockchain public service announcement.

2017/07/28

  • Bitcoin Cash has changed to support mandatory bi-directional replay. Updated these sections.
  • Updated exchanges and symbols for Bitfinex and Kraken.

2017/07/29

  • Electrum Cash is being renamed to Electron Cash in the “What wallet do I use for a given blockchain fork?” section.
  • Updated Bitcoin Unlimited and Bitcoin Classic as available in the “Can I help Bitcoin Cash?” section.
  • Added Bitcoin XT as an available client in the “Can I help Bitcoin Cash?” section.

That’s all for now!