Limitations of Ethereum. The DAO Hack
The options when it came to fixing the issue with “The DAO” included a soft fork and a hard fork. A soft fork would mean that the old Ethereum software would work as before, but would receive a software update that would prevent attackers from spending the stolen funds. A hard fork would mean that all the members of the Ethereum community would have to download and upgrade their software and that the new software would not be compatible with old software, yet this new software would fix the issue of “The DAO” completely and the network could keep working as if “The DAO” hack has never happened.
As the Ethereum community has been discussing the issue and the solutions to it, someone posted a letter from the attackers on the Internet. While the letter did sound like it came from the attackers, it is impossible to say so for sure. In the letter, the attackers argued that they didn’t actually do anything illegal. They found a loophole in the code and exploited the loophole, and there was no law that said that their actions were illegal. They have also claimed that because they did succeed in finding a vulnerability, they have deserved the funds that they have diverted from “The DAO” into the child dao.
The majority of members of the Ethereum community have voted for the hard fork and the fork has occurred on July 20, 2016, at the block #1,920,000 of the Ethereum blockchain. The proponents of the hard fork argued that the attack was too big and if there was no hard fork, the malicious actor would have ended up with too much in Ether funds for the community to keep functioning in the predictable manner. They have also stated that allowing the hackers to profits from their actions would be ethically wrong and members of the community had a right to decide through a voting process of what the actions of the community should be.
The commonalities between Ethereum’s “The DAO” hard fork and bank bailouts
It is impossible not to notice the commonalities between the behavior of the Ethereum community during the days of “The DAO” hack and the behavior of the governments during the 2007/2008 financial crisis. The world financial crisis has occurred because big banks were making their decisions about lending and properties based on erroneous assumptions. The main of these assumptions was that the property values would be always going up. Because of this assumption, banks in the United States and some other countries started giving mortgages to the people who could not have afforded the mortgages. Such people didn’t have good enough credit histories or jobs that could have allowed them to pay off the mortgages. The logic, however, was that even if a person can’t pay off a mortgage, the home is worth more today that it was worth yesterday because the property values would always be going up. The market started collapsing when too many people that could not afford to become homeowners actually did become homeowners. The people could not afford their mortgages and there were not enough new buyers in the market for all the homes that have been sold to unqualified buyers, and so the market started to collapse. The governments then decided to bail the banks and insurance companies out.
Similarly to that, the Ethereum community has decided to fix the natural flow of events and interfere by issuing an update. People that disagreed with the update claimed that the rules of “The DAO” smart contract were law and the fact that someone was able to use that law to their advantage doesn’t change the law. They have also argued that issuing an update meant that the community was entering a slippery slope and if there was a reason to issue an update once, it would set a precedent and there would be instances in the future when the community may want to issue more updates, which would go against the decentralized nature of the Ethereum blockchain.
While the hack of “The DAO” did end in a hard fork, it is important to notice that Solidity has not and is not broken. The permissiveness of the language is simply how to language works and it can warn developers when they are making calls to external functions. “The DAO” problem has happened because the developers made a mistake, not because there was something wrong with the Ethereum network.