If you missed it, we had some late Friday afternoon drama to close out the week. Ethereum failed to finalize for roughly 8 epochs. This is the first time it has ever failed to finalize for this long, and the first time the inactivity leak kicked in. This came on the heels of a smaller failure on Thursday afternoon where Ethereum failed to finalize for roughly 3 epochs.
Â
What is finality? Finality refers to the state where a super majority (>66%) of validators attest to the final state of a blockchain. On Ethereum, once an epoch is finalized, any block in that epoch cannot be changed. This means that as a user you can be sure that your transactions cannot be changed, altered, canceled, etc. in any way.
Â
Finality is important, even in the world outside of blockchains. You don’t want your bank wire sending through and then finding out 3 days later it got reverted. You don’t want to have bought a stock and then your broker suddenly tells you, oops we had a few errors so your transaction wasn’t actually executed.
Â
A short TLDR of what happened was that consensus clients, mainly Prysm and Teku, had to process older attestations from nodes that didn’t have the latest information, while trying to process new attestations. Along the way, it got a little too crazy and the clients couldn’t keep up, resulting in malfunction.
Â
Fortunately, Prysm and Teku have both released client hotfixes that should prevent a similar issue from occuring in the future. There’s a whole philosophical debate around Ethereum prioritizing liveness over safety, and whether Ethereum was truly down or not during those 8 epochs.Â
Â
In my opinion, Ethereum worked exactly as it should have. The Gasper consensus mechanism decoupled liveness from safety, allowing users to continue to submit transactions while offline validators either catch up to finalize blocks or get penalized enough so the network can achieve supermajority attestations again.Â
Â
-purplepill3m