How Ethereum's" unannounced hard fork " caused the split it was supposed to prevent
The Ethereum cryptocurrency network experienced a massive failure on Wednesday. Initially, it was assumed that it was caused by Infura - servers supported By the Ethereum Studio ConsenSys to ensure the functioning of most applications in the field of decentralized Finance (DeFi) and other services.
Infura stopped working around 11: 00 Moscow time, along with which the functionality of such popular applications as Metamask, MakerDAO, Uniswap, Compound and MyCrypto was disrupted. Shortly after, the Binance exchange discovered conflicting transactions and stopped withdrawing funds.
Gradually, it became clear that the real reason lies in the bug of the Go Ethereum client (Geth), used by 80% of applications, which caused the network to split into two separate chains. The presence of different transaction histories indicates that users have been interacting with different versions of the Ethereum blockchain for some time.
Later, Infura and others updated their clients, which allowed them to restore the functionality of most services, but it took several hours to find out the reasons and transfer the infrastructure to the current SOFTWARE. All of them used old versions of Geth and were separated from users of the new client as a result of an "unannounced hard fork".
Against the background of the incident, users began to ask questions about the decentralization of Ethereum and why the Geth developers did not cooperate with other teams to smoothly pass the update. Nikita Zhavoronkov, developer of the blockchain reviewer Blockchair, considers the" failure of consensus " on Wednesday to be the most serious incident in Ethereum since the fork of the DAO in 2016.
What was it like
Lead Ethereum developer Peter siladyi published a report on the incident, confirming that the hard fork "was launched intentionally". A representative of the Optimism project, which specializes in scaling Ethereum, announced that his team is behind the launch of the hard fork.
"We looked at Etherscan and saw that almost all nodes have updated to the version with support for the fix. Then we decided to test the bug. Now it's clear that it was stupid. We did not realize the impact of the small number of nodes that were not updated," said Optimism.
A hard fork is an update that is incompatible with an earlier version of the blockchain. Thus, the activation of the last update in the Ethereum network naturally led to the emergence of two chains. One contained users and services that installed the updated version of Geth, while the other did not.
"The fix was implemented a few months ago, and only today a transaction was made that caused a split," Zhavoronkov said in a conversation with CoinDesk.
Blockchair believed that the new version of Geth software contains "a small code change" and did not install it, as this would require stopping the service.
"The Geth team did change the implementation of consensus in the v1.9.17 release, however, the team did not create any new rules that the Ethereum community did not know about or disagree with," siladyi wrote, adding that the rules were set in the Ethereum improvement proposal (EIP) three years ago.
Unintended consequence
It is noteworthy that the hard fork was originally conceived to solve the problem in the consensus, which it caused. Developer John young, who recently joined the Ethereum ecosystem, was rewarded for discovering this and another vulnerability. Geth developer Martin Holst Svende announced that they did not warn the community about the changes, as they did not want to draw attention to the vulnerability.
"Every major project should have contacts for security notifications, which helps to conduct updates smoothly and smoothly. When hard forks occur without warning, everyone who creates on Ethereum, including us, can lose money, " said Thesis founder Matt Luongo.
Thesis is behind the development of the tokenized bitcoin tBTC. Luongo said that the fork put the assets of tBTC users at risk, but not because of a split in the chain, but because of the service's inactivity, as a result of which token holders could unwittingly violate their financial obligations.
Despite the problems caused by the fork, the price of ether increased by 4.6% after the news appeared, indicating that traders do not see the event as a threat to the long-term well-being of Ethereum.
Debriefing
larks States that the developers of Geth did not expect such a development of the situation and, if they could have foreseen a large-scale split, they would certainly have announced a hard fork. Luongo shares this view, calling the Geth team "good developers who lack experience in infrastructure maintenance and funding."
Zhavoronkov also noted that the developers had no hostile intentions. "If Geth knew this could happen, they would have prepared a guide for node operators," he added.
Community members continue to wonder why even Infura, which is a key element of the Ethereum ecosystem, did not know about the bug before activating the fork to fix it.
"This is, in a way, a grey area. Individual discussion is required on a case – by-case basis, " siladyi wrote. – We agree that transparency is necessary and should be pursued as much as possible, but it is also important to understand all the details before heads roll. In the case of Ethereum, it takes a long time (weeks, months) for node operators to update even to the planned hard fork. By emphasizing that the release contains important fixes for consensus or DoS attacks, we risk attracting attackers who will try to disable the network."
Ultimately, the Geth team decided that exposing the vulnerability would involve too much risk, and kept it a secret. "We affirm that it worked, although the upgrade and took an unexpected turn during yesterday's split network," added Szilagyi.
Now developers will have to learn a lesson from what happened with regard to customer coordination against the background of the upcoming release of Ethereum 2.0.
"The most important thing is that the guys are transparent, admit mistakes and grow," Luongo said. - Monero has dealt well with consensus bugs in the past, as bitcoin and Zcash did. There are many examples. Coordinating an entire industry is always difficult, but avoiding coordination is extremely dangerous. I hope this fork will lead to stronger relationships and a rethinking of how Ethereum-based projects interact with client developers."