The reasoning is Ethereum is an early project, its design is highly centralized like a startup because very few people have the convictions and breadth of knowledge that Vitalik and co. possess. It's aspirations are not the same as Bitcoin: Bitcoin wants to provide value by being irrefutable property. Ethereum wants to be the world computer.
Ethereum's technical complexity makes Bitcoin look like a Ford Model T, while Ethereum is trying to be a space ship with warp speed capability. Obviously it is not the within the spirit of blockchains to conduct a rollback to save people's funds from hackers. But at that early stage, it might hurt adoption more than help if people get burned so badly. If we look at the tradeoffs, I think its worth it. If people prefer absolute immutability, they can use Ethereum Classic.
Bitcoin people will object and say that was a bug with the blockchain itself. However, sample code on ethereum.org had vulnerabilities similar to TheDAO's bug, so arguably it was a platform issue on Ethereum as well.
There have been large thefts from contracts since then, including a >$100M theft from Parity, the most popular client at the time. Parity made several attempts to get another fork to recover their funds, and they were roundly rejected by the community.
>Bitcoin people will object and say that was a bug with the blockchain itself. However, sample code on ethereum.org had vulnerabilities similar to TheDAO's bug, so arguably it was a platform issue on Ethereum as well.
I think the main difference here was that bitcoin never had a "code is law" belief, whereas ethereum did.
It was also necessary for success, but the Bitcoin community has little grounds for moral superiority here.
1) There wasn't a rollback of the blockchain - the method to fix this was an irregular state change (I.e - at block z, change balance at address x to address y). This was only possible because the nature of the attack left all of the compromised funds locked in place for 30 days. Arguably, if it required a rollback of the blockchain, people probably wouldn't have gone along with it. (Though node operators and miners may still have as evidenced by the bitcoin supply bug and rollback in 2010)
2) The funds in the DAO at the time were roughly 14% of the total supply at the time. This is ~1.5x the amount of ether currently custodied by the largest ether custodians today.
3) The common argument of this event being a slippery slope and that it would lead to frequent recovery of hacked funds has turned out to be false.
4) Since the state change was introduced as a software upgrade, node operators (mining pools & infrastructure providers) all had to opt into the change - which a large majority did. This would indicate that most organizations and individuals were either in favor of this solution or were apathetic to the solution
The reasons for it, even on their own, all make a lot of sense:
- Ethereum has always wanted to move to Proof of Stake, a move that would have been impossible if 25% of the networks funds were suddenly in the hands of a nefarious actor.
- The DAO was intended to seed development into projects that would benefit ethereum and the blockchain space as a whole. It was an incredible amount of capital that was all intended to help evolve the network. Losing all this capital and momentum would have been detrimental to that goal.
- The DAO was arguably an unlicensed security and losing the funds of that many investors would have been a problem for many who had a hand in building it. By returning investments, they basically made this a non-issue.
So again, do I agree with the choice? Absolutely not, you should not proclaim "code is law!" until it's inconvenient for you. Did they have a choice? No, the roll-back was inevitable as soon as the DAO contract was deployed.