A Tale Of Two Chains

Zsolt Felföldi
Decentralize.Today
Published in
4 min readJul 24, 2016

--

Blockchain is not just a huge pile of data created by miners and users. It’s also not just the specification describing valid state transitions and a genesis block describing initial state. What makes a blockchain valuable is human consensus, a widely held belief that creating machine consensus according to a certain set of rules is useful. In addition to an exactly specified genesis block, chains are also born with a set of ideas attached to them. Each user can have their own ideas about why the chain might be valuable and how valuable it is.

Unfortunately, one can have assumptions falsely perceived as widespread consensus. These false assumptions will remain undiscovered until an event happens that creates a disagreement about what should be done, whether a fork of the chain would be more valuable than the original one. At this point, it’s already too late to discuss core values and reach consensus, the damage is done. Where interests were aligned before, there is a conflict now. Everyone is biased and also everyone can assume that others are biased too. We believed in the existence of a “social contract” and suddenly realized there is none (or at least some people are breaking it according to our understanding, and we are breaking it according to their understanding). You cannot kill the other chain, but you wish it would die. Logical arguments get lost in the flow of hate. A war began.

Either you believe in the forked chain or the original one, war is not good. Surely a united community with a single chain would have been better, but we cannot have that since we don’t agree in core values. Not even inside the foundation. Not having a well-defined “blockchain social contract” at genesis time was a huge mistake. By the way I had a false assumption about it too, it was a shocking experience for me to find out that some people inside the foundation actually support the idea of intervention. I thought we all agree that there should be no higher “justice” than the result of EVM execution and the “stolen” money is the rightful property of the “thief” and we should be proud of creating a system that can protect his/her property even amidst public outrage. And I was definitely not alone with this belief in the Go development team. As it turns out, we were wrong, people still value their sense of justice higher than immutable law of code. This realization made me a bit sad, but whatever, being paid to develop the coolest software technology ever is still a dream job, even if (at the moment at least) the majority of people think about it in a different way. I will not call those people stupid. I don’t think they are trolling. I also don’t think they are right just because they are the majority. Truth doesn’t work that way. I intend to keep an open eye, perceive the events closely and learn as much as possible from the evolution of the current situation.

What I realized so far is that a blockchain without a well-defined social contract will sooner or later face serious problems. At this moment, interestingly, the old “classic” chain is the one that already has a better human consensus about this question. It’s the one that hasn’t been changed, but splitting off the majority of its value into a new chain changed its implied social contract. We can assume that whoever finds the old chain valuable believes that unintended smart contract behavior is no reason to fork. That chain will never face another crisis because of a similar event. On the other hand, ETH holders of the new chain might still disagree if this fork was a precedent for all similar cases or just a one-time disaster fix that shouldn’t happen ever again.

I’m not saying that the forked chain is doomed. What I’m saying is that it still lacks a strategy for such cases. Until the next major unintended event happens, we might still have time to figure out and reach a consensus about what to do in such a case, so that people can make their decisions in the sure knowledge of what can and what cannot happen to the chain they’re trusting their money with. In any case, I urge everyone to calm down and not be hostile towards the people of the other camp because what happens now hurts the project and both chains a lot. Everyone has a right, even moral obligation to follow their own set of values, and it would be really easy to do this in a civilized way. Maybe the old chain will survive, maybe not, the main reason I’d like to keep it alive is because it’s such an interesting and important experiment to see how two similar chains with different implied agreements will evolve. It might even increase the overall chance of success for the project (and your chances of not losing all your money in a potential next crisis if you’re keeping ETH on both chains).

P.S. it’s nice to see that the guys behind https://ethereumclassic.github.io/ stand behind keeping the old chain alive, but let’s make it clear that we (the Ethereum developers) have never abandoned it. We never forked the chain. We have implemented a switch in our client to give users a choice to fork if they want to and that’s all. The “Ethereum Classic” chain is just as much our child as the forked one and if both of them survive (which is the users’ choice, not ours), then I intend to take care of them equally in the future too.

--

--