Ethereum: The glacier is melting, but parity is breaking away
The Muir Glacier in Alaska. Image by Eric E. Castro via flickr.com. License: Creative Commons
Wild end of the year at Ethereum: The second largest cryptocurrency started the new year with turbulence. There was a hard fork that prevented a new ice age from breaking out and an attack on parity clients that apparently took thousands of nodes off the network. Ethereum has survived the two dramas well – but a good start to the year looks different.
At Ethereum, hell was going on over the Christmas days. First, we had a very tightly timed hard fork that did something the developers had forgotten about at the last hard fork in early December. Secondly, an attack exploited a bug in parity that the network survived only because it had a second node software with Geth.
Let's bring some clarity to the events.
Muir Glacier: The glacial melt
The last hard fork of Ethereum, Constantinople, took place on December 8th. She introduced some small changes that were cryptic for laypeople but important for technicians. What is most striking is that the gas prices for some operations – i.e. the fees – have been partially readjusted by the developers, which expresses the pricing policy claim of the Ethereum developers. As so often, such an intervention in the price also had unintended side effects, for example that some smart contracts were put out of function.
With all these minor changes, the developers have forgotten to follow a ritual of all Ethereum hardforks: namely to defuse the Difficulty Bomb.
The difficulty bomb is relatively easy to explain: an algorithm in Ethereum increases the difficulty of mining exponentially from a certain point in time. Mining becomes slow and barely noticeable, but then becomes more and more difficult until the network always freezes in a new ice age. The mechanism can only be switched off by a hard fork, which is also the only reason for its existence: it forces the Ethereum developers to carry out hard forks at regular intervals until the network has reached the desired state. The Ethereum scene calls this goal Serenity or Ethereum 2.0.
A hard fork means a system-wide upgrade. All nodes in the network must import it, otherwise they are no longer part of the network after the hard fork. Because such an upgrade is extremely difficult to coordinate, and there is always a risk that many nodes will be left behind or that the network will be unintentionally split, the Bitcoin developers are afraid of a hard fork like hardly anything else.
Despite the usual fears, the Continentinople hard fork went well. A relatively large number of nodes failed to upgrade – the number of full nodes fell by a good 8. 600 temporarily 7. 000 – but who, like Bitcoin developer Peter Todd, criticizes it, overlooks the fact that the number of nodes is only End of November of 7. 500 to 8. 500 has risen. After the hard fork she swung at 7. 500 one, so it is exactly back where it was a month before. So everything is fine.
On the other hand, it was unfavorable that the Ethereum developers apparently forgot to disarm the Difficulty bomb. As expected, the result was that the interwalls between the blocks continued to increase until they ended at the end of the year 17 instead of 12, 5 seconds. This is also far from being so dramatic. Because things were relatively quiet over the end of the year, users hardly noticed the reduced capacity of the network, gas prices – i.e. fees – remained stable, and the miners could even afford not to fully exploit the gas limits per block.
But of course something had to happen to prevent Ethereum from icing over. So the Ethereum developers programmed the next hard fork: Muir Glacier. It could be a play on words; The Muir Glacier in Alaska is a relatively rapidly shrinking glacier, which means that the developers indicate that the Muir Glacier Hardfork is melting a glacier. The date was January 1st, less than a month after the last hard fork and just two weeks after the announcement. But the tight deadline apparently met with a disciplined and well-informed update. Shortly after January 1, the number of full nodes was again at the same level as before.
Everyone participated, so it went well once again.
Nice words for bad news
In the charts, however, you can see that around 3 for a short time on New Year. 000 the 7th 500 Nodes went offline. But that had less to do with the hard fork, but with another, not less dramatic event: There was a bug in parity.
Parity is an Ethereum client in the Rust language. Together with Geth in Go, he forms the backbone of Ethereum; Parity stands for performing better than Geth. When it 2016 / 2017 gave a bug in Geth, only the presence of Parity could save the network, which would otherwise (temporarily) be lubricated , This event was considered evidence that multiple implementations make a blockchain more secure.
Now it was time for Geth to save the network because parity failed. At the 31. December announced a bug in Parity: “We have been investigating some reports that Parity Nodes are out of sync and are assuming an attack is taking place.” Previously, there had been numerous reports on Github that Parity Nodes were the Ethereum blockchains cannot fully synchronize because they considered a block – which Geth and the block explorers considered valid – to be invalid. The result was that they got stuck.
Behind it was probably an attack. Bitcoin security researcher Sergio Lerner explained it with these words:
The attack is simple: you send to a Parity node a block with invalid transactions, but valid header (borrowed from another block)
The node will mark the block header as invalid and ban this block header forever but the header is still valid.
– Sergio Demian Lerner (@SDLerner) December 31, 2019
The attack is simple: “You send a block with invalid transactions to a parity node, but a valid header (which you take from another block). The node will then mark the block header as invalid and will always reject it. But the header itself is still valid in the network. ”That is, an attacker has managed to do it 3. 000 Pretend parity nodes that a block is invalid even though it was valid. Parity was that simple, a software on which 22 percent of all Ethereum nodes are running to take off the network.
Thanks to Geth, Ethereum continued to run, and the parity nodes had enough time to import the update published by Parity and to process the blockchain. Everything went well again. If you have multiple implementations, the network remains harmless even if one fails.
However, it remains to be seen whether Ethereum will have two full-fledged implementations for a long time to come. Because it looks like Parity wants to withdraw from Ethereum. This suggests a post with the inconspicuous title “The transition from parity to OpenEthereum DAO”. Parity, the post explains, started out as an Ethereum client, but started to become “token-agnostic” by developing clients for BTC, ETC, and ZEC, for example. With substrates, a blockchain and smart contracts framework as well as the Polkadot project, go Parity – the company! – one step further.
Under these circumstances, it is becoming increasingly difficult to obtain “such a large, extremely complex and now quite old code base” for Ethereum and to participate in decentralized decision-making at Ethereum. Therefore, “we unfortunately spend a lot of time on relatively mundane maintenance work that can be done better by others in the community.” It is becoming increasingly difficult to convey to stakeholders, which is why they use so much expertise to “legacy technology.” waiting.”
Now Parity takes the consequence: The company will no longer continue to work actively on the Parity client, but will pass the code on to a DAO who will wait for it. Parity is being “reborn as a new, decentralized project”, Parity says the decision nicely: “as OpenEthereum.” The developers themselves will focus on Polkadot in the future, and hence their official, paid mandate as a Serenity team with Ethereum – Lay down foundation.
In other words, Parity wants to do its own thing instead of struggling with the tedious node development for Ethereum. It is strange that this own thing with Polkadot is a platform for various blockchains that do not yet exist, and for which it is not even clear whether there will ever be market demand. From an active client of a very active blockchain, Parity catapults itself into the no man's land of theoretical development without an ecosystem.
The relationship between the core of Ethereum – the open geth published by the Ethereum Foundation – and Parity, a client published by a company, has often been difficult in recent months and years. Parity has made a great contribution to Ethereum when it was 2016 and 2017 became a system-preserving client; Without parity, the ICO wave of these years would probably never have come about.
However, at the latest with the Polkadot ICO, Parity made it clear that as a company they are planning to become chain-agnostic. Bugs in the multisig smart contract from Parity have not only caused a significant loss of reputation, but twice. It was particularly embarrassing that Parity also lost its own ether consumed at the ICO. The fact that the company later tried quietly and loudly to bring the salvage of the frozen tokens – which included the company's earnings from the ICO – into a hard fork has further darkened the relationship and triggered allegations of a conflict of interest. The situation then escalated when the Ethereum community suspected a new block stream in Parity, resulting in hostilities against the company that drove Berlin release manager Afri Schoedon to bid farewell to Ethereum.
It was therefore long foreseeable that Parity and Ethereum will go their separate ways. However, it is a loss for the second largest cryptocurrency.