Stuck in No Man’s Land
When bitcoin forked leading to the creation of bitcoin cash, woeful tales of funds sent to the wrong chain abounded. With bitcoin and bitcoin cash addresses indistinguishable, it’s an easy mistake to make. Provided the user holds the private keys to the destination wallet, however, retrieving the coins is relatively straightforward.
Sending BCH to a BTC address on an exchange is a different matter. Without private keys, the customer is reliant on the goodwill and patience of the exchange to remedy the mishap. Some exchanges have done their best to help; some have shrugged it off as not being their problem; and then there’s Bittrex, who said they would consider looking into such cases, but there would be an admin fee of at least 0.1 BTC.
Uncovering the Secret Segwit Addresses
Sending BCH to a regular BTC address is unfortunate but not always fatal. But what happens when bitcoin cash is sent to a segwit bitcoin address? That’s when things get complicated. Legacy bitcoin addresses start with a 1, whereas segwit addresses generally start with a 3. (There are also segwit addresses that start with bc1, but we’ll ignore them for now.) The trouble is that while segwit addresses start with a 3, not all addresses that start with a 3 are segwit compatible. And there’s the rub.
It’s easy to send bitcoin cash to a 3-address without realizing that it’s actually a segwit address. Le Calvez claims that at least 478 BCH, worth over half a million dollars, is trapped in this manner due to the ambiguity of segwit addresses. There is some good news though for affected parties: at least one victim has successfully recovered 100 BCH that were thought to be lost.
Segwit or Not Segwit?
The technicals behind the segwit debacle go as follows: BCH supports P2SH addresses – i.e. ones that start with a 3 – but it doesn’t support P2SH-P2WPKH addresses – i.e segwit addresses – which also start with a 3. At present, there’s no easy way to distinguish between the two. The only means of determining whether a 3- address is segwit-enabled is once a transaction has been sent from that address. At that stage, it’s possible to enter the transaction ID into the blockchain.info explorer, select ‘Advanced view’ from the bottom right corner and then view the segwit input data which should look like this:
Le Calvez cites the following address as having received a total of 100 BCH in error. This is borne out by examining the transaction data. Officially, those funds should be lost forever, but unofficially, it’s still possible to recover them. For those who are intrigued by such matters, the workaround is explained in detail by redditor btctroubador here under “More Problems”.
The simplified version goes as follows:
1. Contact the mining pool who found the block in which the fatal transaction occurred.
2. Ask them nicely to assist (offering a share of the spoils may help your case).
3. The miners must then mine the transaction but not broadcast it, to prevent the risk of someone else double spending the coins.
This solution isn’t foolproof, and relies on the honesty of the miners, who could just as easily retain the coins for themselves if they were feeling greedy. In the case of the 100 BCH sent to a segwit address, BTC.com rode to the rescue and saved the day. Not all miners can be counted upon to act so benevolently however.
If the proposed new address format for bitcoin cash is introduced next year, such problems should be eliminated. Until then, when sending BCH to an unfamiliar address, double check before you hit that button. As for the remaining 400-odd BCH still stuck in segwit addresses, they seem destined to remain there unless the miners and the senders can work out a deal.