Ethereum: The Battle Of The Chains

There is a growing “battle of the chains” in the Ethereum world. Initially, the hard fork executed on July 19th, 2016, appeared to have worked well. The vast majority of the miners switched to the new chain, still known as Ethereum (ETH). But it soon became apparent that there was a substantial dissident movement. Within a day or two of the fork, the “old chain” had been rebranded “Ethereum Classic” (ETC) and was being actively mined and traded. It was quickly listed on the Poloniex exchange, and as its market cap climbed, other exchanges followed suit: the latest, Kraken, opened ETC trading on July 27th after previously saying it would not support it. Currently, ETC market cap is about $150m – which for a chain that was supposed to have shriveled and died soon after the hard fork, is a remarkable achievement.

This was not what the Ethereum developers intended. They were so certain that the old fork would quickly disappear that they neglected to separate the two chains properly. Because the two chains are the same up to the point of the fork, ether on the ETH chain prior to the fork is also on the ETC chain. And because the developers failed to create any mechanism to distinguish between transactions from a pre-existing ETH balance and transactions from an ETC balance, transactions involving ETH from prior to the fork are automatically valid for ETC on the other chain, unless the user takes steps to separate ETH from ETC. Predictably – since anyone who is only interested in ETH is hardly likely to bother to separate out ETC - there is an awful lot of ether moving around because of what we might call “replay attacks”, where a ETH transaction on the new chain is “replayed” to drain ETC from the old.

Poloniex, the exchange that listed first, realized that this would be a problem and created a smart contract to separate ETH and ETC cleanly:

As soon as the fork occurred, Poloniex took steps to secure all ETH and ETC balances by separating them into different addresses. A replay attack on a withdrawal from these addresses will now fail, because each address has a balance on only one of the two blockchains.

Though it’s not wholly foolproof:

If you send a deposit to Poloniex, it can still be replayed if you have not taken steps to separate your ETH and ETC. However, our system funnels all ETH and ETC deposits through a smart contract that separates both currencies, directing each balance to a different wallet address. This protects both balances and allows us to credit your account with both deposits. If you did not intend to deposit one of the currencies, you may withdraw it separately without fear that the withdrawal will be replayed.

Kudos to Poloniex for their valiant attempt to solve a problem not of their making.

The Ethereum developers are well aware of the replay attack problem. But they have no intention of doing anything about it. Indeed, they seem to want to make life as difficult as possible for ETC users. On July 26th, Vitalik Buterin posted this on the Ethereum blogsite (my emphasis):

Users who are interested in taking any actions with their ETC, including creating and participating in applications, converting to another asset, etc are advised to use the splitter contract at address0xaa1a6e3e6ef20068f7f8d8c835d2d22fd5116444 to move their ETC to a separate newly created account so as to avoid replay attacks; we also encourage the ETC community to consider adopting a secondary hard fork to change transaction formats to make further replay attacks impossible. Until and unless that happens, once ETH and ETC are “split” they should be managed via separate wallets.

So it is up to individual ETC users to protect themselves from replay attacks by keeping their ETC in a different wallet from their ETH. And if keeping separate wallets is too much of a faff, then it is up to them to persuade the whole ETC community to agree to a second hard fork separating ETC from ETH.

Buterin can say this in the certain knowledge that the ETC community will not agree to any such thing, since the whole reason for their existence is that they object to the Ethereum hard fork, as the opening statement on their website shows (my emphasis):

We believe in decentralized, censorship-resistant, permissionless blockchains. We believe in the original vision of Ethereum as a world computer you can't shut down, running irreversible smart contracts. We believe in a strong separation of concerns, where system forks are only possible in order to correct actual platform bugs, not to bail out failed contracts and special interests. We believe in censorship-resistant platform that can be actually trusted - by anyone.

Although I am a firm believer in Hanlon’s Razor – “never attribute to malice that which can be adequately explained by stupidity” – I am struggling to see how the incomplete hard fork can be simply due to poor code and/or thoughtlessness, since it is clearly severely disadvantageous to those who chose to remain on the “old chain”. To me, it looks extraordinarily like a passive attack on the “old chain”. And this view is supported by the behavior of Coinbase, whose co-founder is a strongly vocal supporter of Ethereum.

Coinbase did not trade Ethereum prior to the fork. It launched trading on 20th July, the day after the fork. And it chose to trade only ETH. It does not support ETC trading and warns customers not to deposit ETC – which is somewhat disingenuous, given that (as this blogpost explains) the majority of ETC deposits on Coinbase seem to arise from replay attacks.

Coinbase’s chief developer, Charlie Lee, said that they were advised by the Ethereum Foundation to ignore replay attacks involving ETC:

So Coinbase did absolutely nothing to prevent replay attacks. And it is still doing nothing. Despite the growing evidence of substantial ETC losses due to replay attacks and arbitrage via Coinbase, it insists that it is “not supporting or storing any incoming ETC” and refuses to guarantee that customers can withdraw any ETC except what existed on the chain prior to the hard fork (image from Twitter, seriously that is the only source):

In other words, any ETC that ends up on Coinbase because of a replay attack or arbitrage will effectively be seized to subsidize ETH users who would otherwise be charged for receiving both ETH and ETC. More pressure on the ETC community to do a hard fork to fix a problem caused by a hard fork that none of them wanted……

Admittedly, Ethereum trading on Coinbase's GDAX is small beer compared to Poloniex. But it appears the Ethereum Foundation also tried to persuade Poloniex not to support ETC (my emphasis):

Despite repeated assurances from representatives of the Ethereum foundation that the community had little to no interest in Ether on the unforked chain (ETC), demand for a market grew rapidly, as did over-the-counter trading between private sellers and buyers.

What business does the Ethereum Foundation have attempting to influence decisions by exchanges as to which currency pairs to trade?

Of course, Ethereum devs are financially invested in their own product. I took this link down from my previous post because it did not prove that devs were planning an attack – but I’m putting it back up here because it clearly shows their financial involvement. These people stood to gain from the hard fork, and therefore have a vested interest in ensuring that the “old chain” dies – as the leaked “chat” clearly shows. Not that I am alleging anything, mind…..

Anyway, the present situation is that both ETH and ETC are falling in price. But hey, according to the CEO of Coinbase, that’s no problem, because if you add them together the market cap is higher than before. So we effectively have three coins – ETH (the original coin), ETC (its clone), and ETC+ETH (the new post-fork coin whose value is the sum of both). What a mess.

And a second hard fork to separate ETC and ETH would make matters worse. Since there is no way the entire ETC community is going to agree to that, the effect would be to split ETC in much the same way as ETH. Welcome to a brave new world of fragmented chains and arguments about which is the true faith.

But Buterin himself seems to have moved on. As the battle rages, his latest post blithely soars over the carnage as if nothing had ever happened. Onwards and upwards, soldiers of Ethereum…..

I used to work for banks. Now I write about them, and about finance and economics generally. Although I originally trained as a musician and singer, I worked in banking for 17 years and did an MBA at Cass Business School in London, where I specialized in financial risk mana...