Ethereum’s ‘unannounced hard fork’ was trying to prevent the real inconvenience it had caused

[ad_2][ad_1]
  • Most of Ethereum’s DeFi ecosystem went dark today after a latent bug in Ethereum’s code split the network’s transaction history in two.
  • The split is the result of a code change that was covertly inserted in a previous Geth update and activated today; some operators of the Ethereum node ignored the update, which ironically was intended to prevent the same split from occurring.
  • Nodes that haven’t been updated were under the impression that the update was minor and didn’t know it included a change to the Ethereum consensus design.
  • A post mortem posted today by Geth indicates that a hard fork to push the update was intentionally activated today. The case is perhaps Ethereum’s biggest challenge since the 2016 DAO fork and raises questions about Ethereum’s often touted decentralization and the effectiveness of its developer coordination going into Ethereum 2.0.

At first, it was an obvious problem with Infura, the ConsenSys-managed servers that keep most decentralized finance (DeFi) applications on the Ethereum network in sync.

Infura went down around 8:00 UTC on Wednesday, and with it, some of Ethereum’s most popular applications such as Metamask, MakerDAO, Uniswap, Compound, and MyCrypto, among others. Soon after, Binance Ethereum trading stopped after noticing conflicting transactions on his Ethereum node. When other exchanges also suspended trading, the real problem became clear: a bug in the Go Ethereum client (Geth), whose code is the basis of 80% of Ethereum’s applications, had split the Ethereum blockchain in two.

Read more: Ethereum developers delay Berlin hard fork to stem customer centralization issues

The two conflicting transaction histories meant that Etheruem users were temporarily interacting with different versions of the Ethereum blockchain. Rather than causing delays, this puts users’ funds at risk by deleting most of Ethereum’s DeFi applications for a few hours.

Infura solved the problem, as did other service providers who were affected by the snafu, by updating their nodes. These stakeholders were running an older version of Geth and the split was caused by an “unannounced hard fork” that was included in a recent update (but has just been activated) that Infura and Blockchair, among others, have ignored.

In addition to these two service providers, other Ethereum users and wallet providers were also affected because they did not update their code, the developers told CoinDesk.

The fiasco has challenging critics The perceived decentralization of Ethereum, while stakeholders are wondering why the hard fork was pushed in secret without coordination between Geth and other development teams.

For some, splitting is the most pressing challenge facing Ethereum since 2016’s infamous DAO hack.

The division of the Ethereum chain: how it happened

In a newly published post-mortem, Péter Szilágyi, an Ethereum team leader, wrote that a hard fork “was (deliberately) activated on the Ethereum network.”

A representative of Optimism, an Ethereum downsizing project, recently published that the project was responsible for activating the hard fork.

A hard fork is an update that is not compatible with older versions of a blockchain’s software, so when the hard fork was activated today, it created two versions of Ethereum’s transaction log: one with updated Geth client transactions. and one with transactions from previous Geth customers (such as Infura).

“The fix was implemented several months ago and only today came a transaction that caused that split,” Nikitia Zhavoronkov, the lead developer of Blockchair, an Ethereum block explorer who was hit by the hard fork, told CoinDesk. , in a direct message.

Read More: Did Ethereum Learn Anything From the $ 55 Million DAO Attack?

Thinking the update was “a small code change”, Blockchair didn’t bother with the update because it wouldn’t be worth it downtime for their services. More than minor, the developers apparently also made a subtle change to Geth’s consensus mechanism in the update.

“The geth team actually changed the consensus implementation in version v1.9.17, however, the team did not create new rules that the Ethereum community did not know or accepted, “writes Szilágyi in the post, saying that these rules were established in an Ethereum improvement proposal three years ago.

“If you don’t consider accidentally introducing a bug as a ‘consent update’, then you shouldn’t even consider fixing that bug a few months after a ‘consent update’,” he said.

An appeal to transparency

Ironically, the hard fork itself was meant to solve the consensus problem that caused the split.

Ethereum’s bounty program recently acknowledged John Yang, a newcomer to the Ethereum open source community, for discovering this and another vulnerability. Geth developer and Ethereum security expert Martin Swende tweeted the changes in the update fix the disclosed problems, suggesting that the debacle is a “reminder to keep your nodes up to date!”

Swende continues to do so say in the tweet thread that the developers did not announce the big change to avoid drawing attention to the flaw. In his explanation, Szilágyi said that the “silent” bug fix required fewer “interruptions”.

However, other Ethereum stakeholders are wondering why the bug may not have been disclosed in private with the teams building on Geth.

Read More: ‘High’ Severity Bug in Bitcoin Software Revealed 2 Years After Fix

“Every large project that the development team is in close contact with should have a security contact who can help manage and coordinate an update smoothly, and we should work together,” Matt Luongo, founder of Thesis, told CoinDesk. .

“When hard forks are surprised, anyone who has built on Ethereum like us could lose money,” he continued.

Thesis builds the Keep Network, which issues tBTC, a form of tokenized bitcoin for the Ethereum blockchain. Luongo said the fork put tBTC user funds at risk, but not because of the chain split, which was resolved after Infura and others updated their geth customers.

It is because the downtime meant that users staking Ethereum in Keep Network could not coordinate with the main Ethereum chain; as a result, they risked a portion of their stakes being “cut” for not meeting their fiduciary requirements.

Despite the problems caused by the split, prices for ether, the native cryptocurrency of the Ethereum blockchain, rose 4.6% Wednesday after the news broke out, suggesting that traders see little systemic or long-term threat from snafu. .

Picking up the pieces

Zhavoronkov said the split was undoubtedly “unexpected” by the geth developers, who he said would have announced the hard fork (for earlier) if they thought it would cause problems. Luongo shared a similar sentiment, saying that the geth team are “good developers” but have “no experience running infrastructure” and are “underfunded”.

Both Zhavoronkov and Luongo said they will wait for Geth’s autopsy before intervening with a definitive takeaway.

Why the main question – because hardfork has been activated – has yet to be answered. It may have been activated accidentally, or maybe Geth, assuming users activated it, manually flipped the switch on the update.

The autopsy “will shed more light on things,” Szilágyi told CoinDesk.

Read more: The Ethereum 2.0 countdown begins with the release of the deposit agreement

Zhavoronkov said the mess was not harmful, but that “if [Geth] they knew such a thing could happen, they should have prepared a guide for node operators. “Luongo shared similar frustrations, saying that the geth team is” good developers “but that they have” no experience running infrastructure “and are” underfunded. “

The comments reveal a frustration some Ethereum stakeholders share about why Geth kept the hard fork a secret. Going further, because Infura, the backbone of Ethereum’s decentralized financial ecosystem, among others, is unaware of a consensus-breaking bug in Ethereum’s code before had a hard fork been activated to solve it?

“This is a bit of a gray area and requires case-by-case discussion,” explains Szilágyi in the post. “We all agree that transparency is king and that we should try as hard as we can to get it, but it’s also important to go through all the details before heads start to turn.

“In the case of Ethereum, it takes a long time (weeks, months) for node operators to upgrade to even a scheduled hard fork. Pointing out that a release contains important consents or DoS fixes always runs the risk of someone trying to beat the updaters to the punchline and take down the net. Security through obscurity is definitely not something to aim for, but delaying a potential attack enough to make most node operators immune may be worth “hitting” transparency temporarily, “he continued.

Eventually, Geth’s team believed that there was too much risk in disclosing the vulnerability, so they decided that pushing the update covertly invited minimal risk.

“We would like to argue that it actually worked,” says Szilágyi. Even though the update “took an unexpected turn with yesterday’s network split,” Geth’s team still believes keeping silent “was the right choice”

As Ethereum approaches its largest ever update in Eth 2.0, the case could be a critical study in customer coordination for the Ethereum ecosystem.

“The most important thing here IMO is that the people who made this call are transparent about the reasoning, admit any mistakes and grow up,” Luongo said. “Monero dealt with [consensus bugs] well in the past, as well as Bitcoin and Zcash. There are many examples, and while it is always difficult to coordinate in one area, avoiding any kind of coordination is extremely dangerous.

“I hope this fork will lead to closer relationships and to rethink the way Ethereum projects interact with customer development.”

[ad_2]Source link