After the major DAO hack, the Ethereum team and all its users and developers have been joining together to try to find a way to get back the stolen funds. There’s been an uproar about the code being flawed, faith in the code wavering, and other misinformation circulating internet forums and Slack channels.
After all the action of attack vs. counterattack, it was realized that it was up to the DAO and Ethereum community to solve the problem and they had about two weeks to do so before the attacker would be able to touch the money they siphoned from the DAO. This is when the consensus for the soft fork would take place.
After efforts were put in place for the soft fork, it became apparent that the code is still vulnerable, thanks to Ethereum’s lead application developer, Fabian Vogelstellar taking to Twitter with:
“With the soft fork being vulnerable there are two options left: a hardfork only affecting The DAOs or doing nothing.”
Therefore votes for the hard fork are coming into play. Adversely, if a hard fork does not occur, this could mean that the attacker’s child DAO funds will remain frozen forever, therefore neither the hacker nor anyone else will receive those funds totalling up to $56 million in USD. With doing nothing, it could also mean that the person who used the DAO’s code to move those funds to a separate account will have the ability to profit at the expense of the 23,000 token-holding members of the organization. This is exactly why the community is being forced to take action.
So what does this hard fork do exactly? And why are some people so against it?
With a hard fork, the entire community of Ethereum has to make a vote: Miners, clients, users, merchants, and developers. And if they update a block from one to another, this results in two different chains (hence the fork). What makes this a hard fork as opposed to a soft fork, the community will have to make a distinct choice between the two chains by deciding which one they want to transact on. For the developers, votes are cast in a way where they choose which chain they are developing apps for.
Now, many people are upset with the proposal of the hard fork and are worried that by rolling back a transaction, ALL transactions will be rolled back… This can’t be farther than the truth. People are mistakenly assuming that Ethereum takes similar aspects and mechanisms from Bitcoin’s forks. Unlike Bitcoin, Ethereum’s hard fork doesn’t involve a rollback of the blockchain state. What it WILL do is convert the DAO to a “withdrawal only” contract, allowing the DAO tokens to be redeemed for Ether. This hard fork action also cannot be done by one or just a couple people in the Ethereum foundation or Ethcore, or Slock.it. This has to be reached on a major consensus- and once the consensus is reached, all other forks will not have valid transactions working from them and miners and everyone else will be forced to switch over to where the action is. In essence, both forks won't "coexist" for very long, as the losing fork will be "starved out" for finding compatible clients by an overwhelming number of clients on the other fork.
As the child DAO begins to mature, it’s clear that action will need to happen soon. Stay tuned to see how it all develops.