Peeling the layers of blockchain forks
The Ethereum hard fork was quickly declared a success, but consensus has many complicated layers and I don’t think we’re done with the fork yet. The hard fork attempt provided a fascinating look into fork dynamics.
Decision to fork:
After the DAO hack of $50M, Ethereum developers had a tough decision to make: should they fork the blockchain and kill the DAO or should they let the DAO hacker get away with other people’s money?
This is similar to the classic trolley problem in ethics and the Ethereum developers picked the lesser evil, as most people would.
My original recommendation to the Ethereum developers was to do nothing.
The real lesson from the DAO hack should be to re-visit the design of Ethereum’s Solidity language and fix potential exploits, which are still there.
What makes Ethereum’s fork even more interesting is the fact that there was a similar trolley problem in Bitcoin as well. This variation of the problem has a fat man on a bridge who can be pushed onto the tracks to save the people.
It’s conceivable to fork the Bitcoin blockchain and return some money to people in the $460M Mt. Gox disaster. For Bitcoin developers and community that option was not even on the table, sending a strong signal that no party in this system has the power to rollback money allocation.
People lost money and, eventually, the market recovered.
Who has the ultimate power during a fork?
The US constitution divides the government into Legislative, Executive, and Judicial branches to ensure that no single individual or group gains too much control. All three branches exist to serve the people.
Blockchains have a similar dynamic. We have miners, exchanges, and developers. All three entities, at the end of the day, exist to serve the users.
Normally, when people think about blockchain forks they only think about miners. Most people believe that miners decide which fork of a blockchain will survive. That is partially true, but doesn’t give the full picture.
During a hard fork, developers & exchanges hold power in their own ways. Developers can change the hash function on the miners. Exchanges can support only one fork and not the other, reducing market value of a fork.
Real power stays in the hands of users. Ethereum Classic (ETC), the fork not supported by Ethereum developers and major exchanges, is refusing to die. If users want to buy/use ETC, then support from exchanges will follow. Miners and exchanges follow user demand and not the other way around.
These checks and balances on the power of developers, miners, and exchanges is what keeps the system truly decentralized.
Comments? Tweet them @muneeb.