The previous part explained that following the robbery of the decentralized company called The DAO, Ethereum’s blockchain eventually permanently forked. This was not the original intention of the community. Instead, they wanted to decide with a live vote whether to save the virtual company’s shareholders in a unique and arbitrary move. They hoped that the miners of the version that received less support would soon stop building the blockchain rejected by the majority and start using the other one. It was a logical assumption, since mining uses a lot of electricity and is expensive, and if the ether resulting from it can’t be converted, it’s definitely unprofitable.
However, after those who voted for changing the set of rules won, the minority advocating the blockchain’s unmanipulability didn’t immediately give up mining after all. A few days after the divergence, stock exchanges started listing their currency as well, under the name “ether classic”. It turned out that they were in demand too, they had value, and their convertibility had begun. Mining became profitable and the continued existence of the blockchain became certain. The name is somewhat confusing, however, since it was the blockchain that operates according to the original set of rules that had to get a new name; it became Ethereum Classic. The block chain that was supported by the majority but whose set of rules was changed in the end got to keep the Ethereum name. The currency of the former is called ether classic (ETC) while that of the latter is called ether (ETH), a well known name by now. Their price ratio must more or less reflect the distribution of the calculating capacity behind them.
But what exactly is a diverged blockchain? Why are there different currencies in the two blockchains? To give an answer, it’s worth recalling the movie Sliding Doors. In this movie, the story goes on in a traditional manner for a while, until at one point Helen, the heroine, is running after the subway. Here the story diverges, and we can see in parallel what would’ve happened if she had reached the subway and also if she hadn’t. That small difference at the beginning soon grows larger, since the Helen that managed to get on the subway gets home earlier than expected and catches her boyfriend cheating on her. She breaks up with him. The Helen in the other, parallel world, on the other hand, gets home just that much later enough that her boyfriend avoids getting busted. The differently unfolding story is caused by increasingly bigger differences in the actual state of the two universes. What’s important for us about this is that the dollar in the heroine’s pocket that was there at the divergence of the story will be there in both universes, but later she can spend them at different times and she can pay others with them. And if she signs a contract in one of the stories, she doesn’t have to sign it in the other story.
This is exactly the situation in the parallel worlds of diverged Ethereum. At the moment of the fork, the ether are in exactly the same accounts in both worlds (not counting, of course, those that were once linked to The DAO company, since these are precisely the ones over which there’s disagreement). Those who originally had ether got an ether each in both worlds after the divergence, just like both Helens had a dollar each. The one ETH and one ETC resulting from the duplication of the one ether from before the divergence can be spent independently of each other later on. It’s similar with smart contracts too; we can enter into new contracts independently of each other in the two worlds. On the other hand, the contracts from before the divergence are valid in both universes, just like both Helens are bound by their mobile subscription contracts signed before the adventure in the subway. Therefore, parallel universes with a shared past emerged.
The question arises whether there’s a point to such complication. Should the minority get behind the majority decision and realize that maintaining Ethereum’s unity is a common interest? The answer is not quite clear to me. On one hand, life would definitely be much simpler if only one Ethereum existed; it doesn’t matter which. On the other hand, however, a situation could emerge in the future in which the divergence of the blockchain comes up again. Since there’s already been a precedent, it’s easier for it to happen. Or it will happen too often, and the frequent rewriting of the set of rules and the many forks will completely undermine the myth of the unmanipulability of the blockchain. In this case, it will be a very good thing that the original, non-manipulated chain that survived the critical periods still exists.
It follows from what I’ve written that the story of The DAO company also ended in two ways. The ending in the world supported by the majority is relatively simple. Everything went according to plan: the former ether that could be linked to the virtual company was arbitrarily credited to an account where, using a smart contract, shareholders could access their original investment. That story ends there.
The ending is somewhat more complex in the other strand, which operates according to the original rules. Following the release of the time lock at the beginning of September, the thief got his loot once and for all. An interesting feature of the public blockchain (ledger) is that they can be followed in real time; they’re mostly still in the account where the hacker transferred them at the time. We can find something interesting by following its account history. The hacker donated 1000 ETC from the stolen money to a group trying to advocate for Ethereum Classic. Perhaps not entirely without self-interest.
However, most of The DAO’s ether was stolen by the White Hat Group with the promise that it will return them to their rightful owners. This indeed happened at the end of August. The saved ETC were, as usual, transferred to an account from which shareholders could withdraw their respective shares with the help of a smart contract. The return ratio was 73%. In the contract for withdrawing the money, every shareholder could determine what percentage of the amount they would donate to White Hat Group in exchange for their work. The donation was entirely voluntary; anyone could decide not to donate at all. The DAO’s story thus ended on the classic blockchain. too.
All that is left is to draw conclusions. Were The DAO’s software engineers simply fools and this is why the faulty smart contract was created? And is it simply bad luck that no one noticed the fault in time afterwards? In all likelihood, we’re on the wrong track. Leading Ethereum experts checked and approved the smart contract. It was published months before the attack, so the community had time to check it too. It’s too simple an answer to say that everyone was simply careless and stupid.
It’s much closer to the truth that Ethereum’s being Turing-complete is the system’s strong, exciting, but at the same time dangerous feature. In a Turing-complete programming environment, a programming language must be provided that is sufficiently flexible and allows for many divergences and self-references by processes, so that all possible algorithms of an infinite number can be encoded with it. Thus algorithms can assume immensely varied forms, processes can diverge in a complex manner, fit together or invoke each other and themselves.
However, this infinite diversity also poses the danger that a complicated program becomes impenetrable and performs unintended actions, too. This is exactly the trap The DAO fell into with its smart contract. And finding the faults is not easy; it can take a long time. This is partly the reason we have to upgrade our computer’s older software again and again.
There’s no simple solution to the problem. Experience has to be gained and mistakes have to be learned from. At the same time, what has happened firmly calls our attention to the fact that Ethereum’s Turing-complete characteristic can well lead to further complications.