EIP-7716 · anti-correlation penalties · proposed for Hegotá

What will correlated downtime
actually cost you?

Ethereum punishes correlated slashing. In 2027, it will punish correlated downtime too. Fail alone and you pay exactly today’s rates. Fail alongside 10% of the network and the first hours are charged at ~78×. Short-term pain, for long-term gain: that outage costs ~0.021 ETH per validator, while a correlated slashing of the same 10% would take ~9.66 ETH. The penalty pays you to leave a crowded client before a critical bug does it for you. See it to scale ↓

1×uncorrelated failures — same as today, always
256×target-penalty cap, binding at ⅓ of stake offline
0.75%of principal per day — the worst-case ceiling, and it halves every ~6 days
share of the network newly failing together, on top of the ~0.3% offline in normal times
10.0%78× target penalty
If your client stack fails:

Client shares are node-count estimates from clientdiversity.org (Sept 2026); stake-weighted shares differ. A client bug is the classic correlated failure — but only validators missing both source and target flags are scaled, so partial failures score smaller than these shares.

how long the correlated group stays down
6 h
how long your validators stay down
24 h
You stay down after the cohort recovers — the extra hours are charged at today's 1× rate.
ETH
≈ 1 × 32-ETH validators
$
Today’s rules
$8.11
0.0033 ETH
1.5 days of rewards to re-earn
6.3×
today’s cost
EIP-7716 revised78×
$51.0
0.0208 ETH
9.2 days of rewards to re-earn
Per 32 ETH, earning ≈ $5.52/day (2.57% APR incl. EL, September 2026) · ETH at $2,450 · 41.8M ETH staked

The multiple falls as recovery stretches

Fast responders bear the deterrent; stragglers converge back toward today's rules. Bigger nominal bill, smaller relative one.

0×10×20×0h12h24h36h48h60h72hhours you stay offlinecohort recovers1× = today’s rules
EIP-7716 revised today’s rules you

Short-term pain, to scale

Each square is 1 ETH of a 32-ETH validator. The first grid is what the revised rules charge for your outage. The second is what the protocol already charges if the same 10% of stake gets slashed together, say by a shared signing bug. The downtime penalty grows so that the slashing never happens.

Down 24 h alongside 10% of stake0.021 ETH$51.0
With EIP-7716: 0.021 ETH ($51.0)Today: 0.0033 ETH ($8.11)

with EIP-7716 today (0.0033 ETH). Both are the circled speck in the top-left corner.

Slashed alongside 10% of stake9.66 ETH$23,665
Correlated slashing: 9.66 ETH ($23,665)

30% of principal: 3 × the share slashed, plus small fixed penalties. Everything, from ⅓.

The slashing figure is the correlation penalty (3 × the share slashed within ~36 days) plus the 1/4096 initial penalty and ~36 days of missed duties. It’s pre-existing and EIP-7716 doesn’t change it. Worse still is a bug that carries ⅔ of stake onto a wrong fork. See below.

How real incidents would have scored

Measured by replaying the revised mechanism over actual mainnet participation data — event-window mean cost per 32 ETH, expressed as time-to-re-earn.

Loading a preset sets the sliders to an approximate reconstruction. The calculator then shows the worst case — a validator fully down at peak size for the whole window. Measured event means above are gentler: outages ramp in, many validators kept their source flag (exempt from scaling), and most recovered quickly.

Short-term pain, long-term gain

Why make downtime more expensive at all?

Correlated downtime and correlated safety failures have the same cause: too much stake running the same software. Downtime is common and survivable. A safety failure is rare and it destroys principal. EIP-7716 charges for crowding through the cheap failure, so stake spreads out before the expensive one arrives. What decides the expensive one is how much stake ends up on the same wrong view, measured against two thresholds.

under ⅓

Contained

The chain keeps finalizing. The affected cohort pays downtime penalties: pennies today, tens to hundreds of dollars per validator under EIP-7716. Fix, rejoin, done.

⅓ to ⅔

Finality lost, still recoverable

Finality stops and the inactivity leak starts. It’s expensive, but the wrong fork can’t justify with under ⅔ behind it. So the cohort can return to the canonical chain with no slashable votes once the bug is fixed.

⅔ or more

Locked out

The wrong fork justifies. Voting on the canonical chain now means a surround vote, so returning early means being slashed alongside ≥⅓ of stake, which takes 100%. Staying out means leaking until the honest side is ⅔ of active stake again. That costs ~72% of balance at ⅔ trapped and ~96% at 95%, over 30–52 days.

Which client combinations get there

The smallest sets of clients whose shared failure crosses each threshold. Having no single client above ⅔ isn’t enough: two can get there together.

≥⅔: lockout

  • EL×CLGeth × Lighthouse
    76%~81% lost leaking out
  • ELGeth + Nethermind
    75%~81% lost leaking out
  • CLLighthouse + Prysm
    72%~78% lost leaking out
  • CLLighthouse + Nimbus + Teku
    68%~75% lost leaking out
  • ELGeth + Besu + Reth
    67%~72% lost leaking out

⅓–⅔: finality lost

  • CLLighthouse
    51%
  • ELGeth
    50%
  • EL×CLNethermind × Prysm
    41%
  • ELNethermind + Besu
    34%

Node-count survey data (clientdiversity.org). Stake share differs, so read these as rough. EL × CL pairs mean a bug in each that takes the same wrong view. They trap anyone running either client, assuming EL and CL choice are independent. Lockout losses come from an epoch-by-epoch leak simulation (today’s rules, honest side online) and are approximate.

When separate bugs add up

  • They fail toward the same answer. A missing setting falls back to an empty list, a zero address or mainnet’s value. There are few defaults, so different mistakes land on the same wrong result.
  • They trip on the same block. Every client that wrongly accepts one invalid block is on one fork by construction, whatever its bug.
  • They share an input. Spec text, network config, a crypto library.

When they don’t

  • Different wrong values. Two different bad state roots are two different forks, each too small to justify.
  • Crashes. A crashed node votes for nothing. Crashes add up toward ⅓ (finality) but never toward ⅔: nothing can justify a chain nobody votes for. Stopping when unsure is safer than carrying on.

A bug should be able to stop you, never steer you

The network is a ⅔-threshold system, and your setup can be one too. The number that matters isn’t how many clients you run. It’s how many of your nodes must agree before you sign.

Validator Beat grades setups on the same two failure modes: Stage 1 means no single failure can get you slashed, and Stage 2 means no single failure can get you slashed or take you offline. Stage 1 is the “stop, don’t steer” property. Stage 2 adds staying live through a failure as well.

  • Primary + fallback beacon nodes use whichever node answers. No agreement is needed, so a buggy primary steers you onto the wrong fork with everyone else. It covers a node going offline but not a node being wrong, so a single client bug can still carry you to a slashable position: short of Stage 1.
  • Threshold or majority setups (e.g. distributed validators, where nodes run different clients and check each attestation candidate against their own beacon node’s view before agreeing on it) sign only when enough independent nodes agree. Take a 3-of-4 setup on four different execution clients:
    • One buggy client: the other three still agree, and you keep attesting. Neither slashed nor offline: Stage 2.
    • Two sharing a bug (the Holesky shape): 2 vs 2, and you halt. Offline but not slashable, so you keep the Stage 1 property even beyond a single failure.
    • Halting costs you a downtime penalty. You never signed the bad chain, so once the fix ships you resume on the canonical chain, which a validator that followed the crowd can’t do.
  • The trade-off: higher agreement thresholds halt more often (more liveness risk) in exchange for rarely signing something wrong. EIP-7716 makes that halt a bit more expensive. It’s still a rounding error next to the loss it protects you from.

“I recover slower than the pros. Am I ruined?”

No — and this is the most misunderstood part of the proposal. The charge is front-loaded: you pay for joining the correlated failure, not for how long your fix takes. Once the cohort recovers, the moving-average baseline has absorbed the event and every extra hour you stay down is charged at today’s plain 1× rate. A slow recoverer’s bill is bigger, but their multiple over today’s rules is smaller — the deterrent lands on the correlation itself, which no amount of pager-speed can dodge.

1.5× vs 4.7×

In the Prysm post-Fusaka replay, operators who took 24–36 hours to recover paid 1.5× what the 6–8 hour crowd paid under the revised rules. Today’s rules charge 4.7× for that same spread — today’s proportional bleed punishes slow fixes harder than EIP-7716 does.

57× → 9×

The multiple over today’s cost falls with recovery time: the fastest responders in that event paid ~57× today’s rate for their short window; the slowest stragglers converged to ~9×.

10× longer, 2.1× the cost

Being down ten times longer cost about twice as much — not ten times. The flat tail after the cohort recovers is what makes the mechanism a correlation deterrent rather than a downtime tax.

How the revised mechanism works

Each slot’s offline balance is compared to a slow-moving average of itself (half-life ≈ 6.3 days). The timely-target penalty is scaled by the excess: factor = min(1 + 765 × excess ⁄ committee_balance, 256).

⚡

Front-loaded, not proportional

Severity scales with event size and lands at outage onset: 1% of stake failing together → ~9×, 10% → ~78×, ⅓ or more → the 256× cap. As the moving average absorbs the event, the factor decays back — stragglers’ extra hours are charged at ~1×.

🛡️

Solo stakers pay today’s rates

The factor is never below 1× and there are no discount windows. A validator failing alone — hardware, ISP, a botched update — pays exactly what it pays today, to the gwei. Only failing together with a meaningful share of stake costs more.

🎯

Only the “offline signature”

Scaling applies only to validators missing both the timely-source and timely-target flags. Attested with a wrong target but a live source — late epoch-boundary block, minority client during a majority-client bug, relay outage — and you pay today’s unscaled penalty.

🔥

Burned, not redistributed

Extra penalties are burned, exactly like today’s penalties. Nobody earns more when a competitor goes down, so there is no incentive to attack or DoS other operators — the mechanism only reshapes who pays for correlated risk.

📉

Above ⅓, the leak takes over

Past one-third offline, finality stops and the pre-existing inactivity leak — unchanged by this EIP — activates and grows quadratically, crossing the revised mechanism’s ~0.75%/day ceiling around day 2.5. Most of a multi-day finality-loss bill is the leak, not EIP-7716.

🧩

Why: decentralization pays

Diverse setups — different clients, infrastructure, and geographies — rarely fail together, so they rarely see a factor above 1×. Concentrated setups carry correlated risk that today is priced at zero — this EIP prices it.

Frequently asked questions

Why make correlated downtime more expensive at all?#

Short-term pain for long-term gain. The crowding that makes a client’s outage a correlated one also makes its bugs dangerous. A signing bug in a client with 25% of stake slashes ~75% of every affected validator’s principal. A consensus bug shared by clients with ⅔ of stake carries them onto a fork they can’t leave without losing most or all of it. Those failures are rare and the protocol prices them only after they happen. Downtime is common, so pricing it (a few hundred dollars per validator in a large event, around 1/100th of a correlated slashing or less) is how the protocol nudges stake to spread out before the rare failure. The tiers and client combinations are above.

Why does a slow recoverer pay a bigger bill but a smaller multiple?#

Two forces move in opposite directions. Nominally, more hours down always costs more — the bill grows monotonically. But the scaled hours are only the ones where the cohort is still down with you; after that, the baseline has absorbed the event and you’re back to ~1× while today’s rules keep charging linearly. So the ratio of revised-to-today shrinks the longer you take. Flip the chart above to “× today” to watch it fall. Practically: a fast responder might pay 30× today’s rate on a small bill, while a straggler pays 5× on a bigger one.

Does this hurt solo stakers or small operators?#

A validator whose downtime is uncorrelated with the rest of the network pays exactly today’s penalties — the factor is never below 1× and never above it for lone failures. The mechanism only bites when a meaningful share of total stake fails simultaneously, which is characteristically a large-operator, shared-infrastructure, or majority-client failure mode. Small diverse setups are the beneficiaries, not the targets.

My client attested with the wrong target during someone else’s bug — am I scaled?#

No. Scaling requires the “offline signature”: missing both the timely-source and timely-target flags. If your node was live but voted a wrong target — a late epoch-boundary block, running a minority client while a majority client splits the chain, a relay outage — you keep the source flag and pay only today’s unscaled penalty. This deliberately protects minority-client operators during majority-client incidents.

What is the absolute worst case?#

While roughly a third of stake is newly offline and your validator is fully down, the revised mechanism bleeds at most ~0.75% of principal per day — and that rate requires the cap to bind continuously. Below the cap it’s proportionally less, and it decays as the moving average catches up. Crucially, that daily rate cannot run for long: summed over any outage, however endless, the total extra cost is hard-bounded at ~0.2× the event’s size — about 2.6 years of rewards in the absolute worst case (a ⅓ outage you never return from). The next question walks through why. Principal-scale losses remain exclusive to the (pre-existing) inactivity leak and slashing; this EIP touches neither.

Could 0.75%/day run for weeks if a bug takes that long to fix?#

No — the moving average is the built-in bound. The factor prices the excess over a reference that chases any persistent outage with a 6.3-day half-life, so the penalty rate halves every ~6 days even if nobody patches anything. Suppose something ugly took 30% of the network down for a month (below ⅓, so no inactivity leak): the bleed starts at ~0.66%/day — the full 0.75% needs a ⅓-of-stake event — is down to ~0.33%/day by day 6 and ~0.06%/day by day 25. Integrated over forever, the extra cost above today’s rules converges to about 0.2× the event’s size: ~6% of principal for a 30% event, ~2% for a 10% event — roughly 2.6 years of rewards even in the absolute worst case (a ⅓ outage, never recovering). Coming back online stops the scaling instantly, and half the lifetime total lands in the first week. And a consumer-scale nightmare bounds itself further: solo and home stakers are collectively a low single-digit percent of stake, so even a failure hitting every home setup at once is a small event here — a ~3% cohort draws a ~24× onset and a lifetime bound near 0.6% of principal, months of rewards, however hard it is to fix. For scale: if the same scenario crossed ⅓ and finality broke, the pre-existing inactivity leak alone takes ~50% of principal in 18 days. This mechanism’s worst multi-week trajectory stays far below the protocol’s existing crisis pricing.

Does the normal background offline rate change these numbers?#

No — and that’s by design, not by omission. Around 0.3% of stake is offline at any given moment in normal operation, and the mechanism’s moving average sits at that level in steady state. An event is measured as the excess above it: with a 0.3% baseline and a 10% outage, the offline share is 10.3%, the reference is 0.3%, and the factor prices exactly the 10% spike. This calculator models it that way explicitly (see BASELINE_OFFLINE_FRACTION in the source), and every number is identical to a zero-baseline assumption because the slope is normalized by total stake, not by the moving average — a design chosen precisely so the curve doesn’t drift as network participation changes.

Where do the extra penalties go?#

They’re burned, like all attestation penalties today — not redistributed to online validators. Your competitor going down earns you nothing, which removes any incentive to attack other operators’ infrastructure.

I run a large share of stake. How should I read these numbers?#

Scale linearly: the calculator’s per-32-ETH figures multiply by your validator count (the mechanism is balance-weighted, so per-32-ETH stays the right unit even with 2048-ETH validators). As an anchor: a 10%-of-stake event lasting 24 hours costs roughly 900 ETH per 1% of total stake an operator runs — around 9,000 ETH for a 10% operator. If your whole fleet shares one client, cloud, or team, your event size is your fleet size.

When would this go live?#

EIP-7716 is in Draft status and Proposed for Inclusion in the Hegotá fork (All Core Devs – Consensus #177, April 2026). Forkcast tracks its status as Hegotá’s scope is decided. The mechanism described here is the 2026 revision, now the published EIP text, which replaced the 2024 draft’s counter-based design after replays showed it barely differentiated correlated from uncorrelated failures. Nothing here is final — treat every number as an estimate of a proposal that can still change.

What happened on Holesky, and could it happen on mainnet?#

At Holesky’s Pectra upgrade on 24 February 2025, Geth, Nethermind and Besu each had a different wrong deposit-contract address in their Holesky config. Each fell back to an empty deposit list, so all three agreed on the same wrong result and accepted an invalid block that Erigon and Reth rejected. A supermajority of validators followed that chain and justified it. From then on, voting on the correct chain meant a surround vote, so their slashing protection refused. The choices were wiping it and getting slashed, or sitting out an inactivity leak. Finality came back on 10 March after two weeks of coordinated recovery. The exit queue was left full for over a year, and the testnet was replaced by Hoodi (post-mortem). Mainnet ran different, correct config for that fork. But the same three clients carry well over ⅔ of mainnet nodes today, and every hard fork activates new code for all of them in the same epoch. EIP-7716 doesn’t prevent a bug like that; it pays operators to make sure no bug is shared by that much stake.

I run a backup beacon node on a different client. Am I protected?#

From downtime, yes. From a wrong fork, no. A primary/fallback setup uses whichever node answers, so if your primary follows a bad chain, you sign it. Protection comes from requiring agreement: a majority or threshold rule across nodes running different clients, where each node checks what it’s asked to sign against its own view. When the nodes disagree, a setup like that halts instead of signing. Halting costs a downtime penalty; signing a justified wrong fork can cost the validator. The trade-off is liveness: the stricter the agreement rule, the more often a single node’s trouble stops you.

How do operators avoid correlated penalties?#

By failing alone, not together: run a minority client, avoid the most crowded cloud providers and regions, and stagger upgrades rather than rolling a whole fleet at once. Splitting a validator across independent nodes (distributed validators) is another option — if part of the cluster fails, the rest keeps attesting, and if the nodes disagree about the chain, the cluster halts rather than signing a fork only some of them see. Under a mechanism that prices correlation, anything that de-correlates your failures is the direct hedge.

Ask your AI about your own setup

Paste this into ChatGPT, Claude, or any assistant that can read a URL. Fill in the brackets first.

Read https://validatordowntime.obol.org/llms-full.txt (the reference for EIP-7716 anti-correlation attestation penalties: https://eips.ethereum.org/EIPS/eip-7716).

Then help me work out what correlated downtime would cost my Ethereum validators under EIP-7716. My setup:
- Validators / stake: [e.g. 40 validators, 1,280 ETH]
- Execution and consensus clients: [e.g. Geth + Lighthouse]
- Hosting: [e.g. one cloud provider, one region / home staking]

Tell me which correlated events I'm realistically exposed to (client bugs, cloud or region outages), roughly what share of total stake each would take down, what each would cost me per validator and in total, and what would reduce that exposure. Show your working, keep the EIP's own penalties separate from the inactivity leak, and give me a pre-filled calculator link for each scenario.

The scenario I was just looking at: https://validatordowntime.obol.org/
For agents: llms.txt · llms-full.txt · skill.md

This tool models a draft EIP using an approved simplification (exact within ~5% for events ≤48h) and network economics that drift daily. It is education, not financial advice. Exact-integer models, backtests and figures live in the research repo.