Context Ethereum's Casper FFG finality mechanism is designed so that once a block is finalized, it becomes irreversible — at least without burning at least 1/3 of the total staked ETH. But what if the block that gets finalized is invalid? This is not merely a theoretical curiosity. It sits at the intersection of consensus safety, execution correctness, and social coordination, and the answer is far less clean than "the chain just rolls back." This runbook explores the scenario end-to-end: how it could happen, what the immediate consequences are, what options the community has, and what the trade-offs of each response look like. How Could This Happen? An invalid block reaching finalization requires a cascading failure across multiple layers of defense. No single bug is enough — it takes a combination. Possible contributing factors:
2/23/2026List of known bugs - potential fixes Post mainnet release bugs: Prysm mainnet bug. Follow up posts from potuz and prysm team. Rbuilder reth dependencies were not updated for Buildernet, causing a bit of a hiccup (simulation failed: invalid excess blob gas: got 82878256, expected 83053018; parent excess blob gas: 82747184, parent blob gas used: 917504) in blob delivery for blob gas fee calculation post BPO1. Updating the reth dependencies resolved the issue. Found a bug in Nimbus SSZ DataColumnSidecar: object dynamic portion starts at invalid offset fixed in 7794 Found a bug in Nimbus for setting BPO 0 at genesis. Fixed in 7788. Found a peering bug in Nethermind - statusMessage calculation incorrect and other peers rejecting connection due to Incorrect message. Nethermind can't peer with geth or reth. Fix still pending. Found a peering bug in prysm. Caused by 16100
12/17/2025Network Fork Name Time UTC Epoch Start Slot Unix Timestamp Hex Timestamp Fork ID Holesky
10/31/2025:::info :mega: 4844 requires a trusted setup file, Please ensure that there is a way for us to specify the file through a runtime flag such as --trusted-setup-file (or similar). If the file is baked in during compile, please ensure that the flag would indeed override the file. This is a MUST requirement for devnet 6. If your client does not support the override, we can't include it in the devnet. ::: :::info :mega: The c-kzg trusted setup file has been updated since devnet 5. Please make sure you use the correct values. This can be found here. ::: Consensus Specs @ Commit 0682b22 aka v1.4.0-alpha.3 :heavy_check_mark:
6/14/2023