Ethereum Blockchain Finality Issues Investigated
Ethereum's finality issues may have been caused by bugs in two popular clients.
Last Thursday, May 11, Ethereum mainnet experienced loss of finality. Transactions remaining unconfirmed for a period of around 25 minutes, starting just after 4pm Eastern Time. Blocks were still being proposed on the Beacon Chain, but were not being finalized.
Finality typically takes around 15 minutes. After this time, the chances of a block being altered fall dramatically, and an attack would cost significantly more. According to the Ethereum Foundation:
In Ethereum's proof-of-stake based consensus mechanism, finality refers to the guarantee that a block cannot be altered or removed from the blockchain without burning at least 33% of the total staked ETH. This is 'crypto-economic' security because confidence comes from the extremely high cost associated with changing the order or content of the chain that would prevent any rational economic actor from trying it.
The issue ultimately resolved, apparently without intervention, by 4.40 ET, but developers were unclear exactly what had happened.
A second glitch occurred on Friday, when the network was unable to finalize blocks for over an hour.
When this issue occurs, transactions are still processed and there is no obvious disruption to end users. However, pending transactions may be dropped or reordered, potentially raising security concerns.
It's possible that a lack of client diversity could have contributed to the problems. Ethereum core developers released patches for Prysm Labs and Teku clients, two popular clients (Prysm is currently used by around 38% of the network, Teku by 18%).
As the Ethereum Foundation notes, "Client diversity is extremely important for the network health of Ethereum: A bug in a client with a share of over 33% can cause Ethereum to go offline. If the client has a supermajority (>66%), a bug could cause the chain to incorrectly split, potentially leading to slashing."
Ethereum mainnet has spent the last fortnight being hammered by transactions, as a frenzy of memecoin trading drove gas fees above 100 gwei, and sometimes as high as 200 gwei, for sustained periods.
While gas has now fallen somewhat, fees have remained above the threshold required for ETH to be deflationary for more than 230,000 blocks in a row, or over a month.
The TL;DR from these episodes appears to be that decentralization matters; relying too much on any single client has risks, just as relying on too few validators does.