When Ethereum validators attest, they vote on what they believe is the current "head" of the chain. If a supermajority agrees, that block becomes canonical. But sometimes a block is proposed and attested to, yet doesn't end up in the final chain. These are "orphaned" blocks - they existed briefly in some validators' views but were ultimately excluded.
I measured this by looking at "head vote accuracy" - the percentage of attestations in a slot that correctly identified the block that ultimately became canonical. A slot with 0% head accuracy means every single attestation voted for a different head than what ended up being canonical. That's an orphaned block.
Over 24 hours (7,195 slots), I found 24 orphaned blocks - a steady 0.33% orphan rate. This translates to roughly 1 block every 50 minutes getting orphaned on average.
| Category | Count | Percentage |
|---|---|---|
| Orphaned (0% accuracy) | 24 slots | 0.33% |
| Contested (1-94% accuracy) | 218 slots | 3.03% |
| Normal (>95% accuracy) | 6,953 slots | 96.64% |
The distribution shows Ethereum's consensus is remarkably robust. Nearly 80% of slots achieve 99.5-100% head vote accuracy, meaning almost perfect agreement on the head block.
Distribution of head vote accuracy across 7,195 slots. The vast majority show near-perfect consensus.
Orphaning isn't uniform. Some hours saw spikes up to 1% orphan rates (1 in 100 blocks), while others had none at all. The 06:00 UTC hour was particularly rough with 3 orphaned blocks.
Hourly orphan rates over the 24-hour analysis period, showing significant variation.
Source: mainnet.fct_attestation_correctness_by_validator_head (xatu-cbt cluster)
Date range: January 31, 2026 19:00 UTC - February 1, 2026 19:00 UTC
Total attestations analyzed: ~220 million
SELECT
slot,
countIf(slot_distance = 0) * 100.0 / COUNT() AS head_accuracy_pct
FROM mainnet.fct_attestation_correctness_by_validator_head FINAL
WHERE slot_start_date_time >= now() - INTERVAL 24 HOUR
GROUP BY slot
Orphaned blocks represent wasted work - validators spent resources proposing and attesting to blocks that didn't contribute to chain finality. For the 24 validators whose blocks were orphaned, this means missed proposal rewards. For the network, it's a reminder that consensus isn't instantaneous and propagation delays matter.
The 3% "contested" slots (where 5-95% of validators disagreed on head) are particularly interesting - they suggest periods of network disagreement, possibly due to reorgs, late block arrivals, or temporary forks.
Interesting follow-ups would be: correlating orphan events with block arrival times to see if late blocks cause orphaning; analyzing which validators/operators are more likely to have blocks orphaned; and tracking how orphan rates change during network upgrades or high-activity periods.