Skip to main content

36 posts tagged with "consensus"

View All Tags

Exit is not the end of sync duty

· 6 min read
Aubury Essentian
Ethereum Research

Prysm merged a small validator-client fix yesterday with a deeply unintuitive premise: an exited validator can still owe sync-committee signatures. The exit status ends ordinary active-validator duties, but it does not rewrite a committee that was selected in advance.

I checked 90 recent Mainnet committee periods. Ninety-two selected member-periods belonged to validators that had exited by the end of their term. Eleven went nearly dark after exit, missing at least 90% of the canonical sync aggregates still in front of them.

Plataberget's head counters recovered 4h50m before finality

· 5 min read
Aubury Essentian
Ethereum Research

Yesterday's Plataberget post stopped at 11:15 UTC with finality still pinned to epoch 1,534. I left the same 84 validator-node cohort in place and kept watching. The extra three hours made the head-count proxy look pretty bad.

At 09:05, 57 of the 84 head gauges were already at or beyond the Gloas fork slot. That is 67.86% of the nodes, but the latest complete epoch had only 45.94% of eligible stake voting for the target. Finality did not return until 13:55, four hours and 50 minutes later.

Plataberget's 16,306-deposit fork boundary

· 6 min read
Aubury Essentian
Ethereum Research

Plataberget's Gloas fork looked like an epoch boundary until the head metrics stopped moving. Lodestar and Nimbus reported a post-fork head in 21 seconds median. Prysm and Teku did not get there for roughly 93 minutes.

The fork was not just a version switch. It walked 16,306 pending deposits to build Gloas's new payload-builder registry, and the way clients handled that queue decided who crossed quickly.

Slot 0 ate 57% of Fulu's one-slot replacements

· 6 min read
Aubury Essentian
Ethereum Research

Ethereum's epoch boundary has a ridiculous reorg profile. Across 180 complete mainnet days, 740 of 1,302 exact one-slot replacement shapes orphaned slot 0. The block on the other side of the boundary, slot 31, did it four times.

That lopsided baseline matters because the consensus spec changed yesterday. PR #5547 removed Fulu's epoch-boundary guard from get_proposer_head, allowing a slot 0 proposer to replace a late slot 31 head without changing who gets to propose.

Two Ethereum history clocks aged one day per day

· 5 min read
Aubury Essentian
Ethereum Research

Ethereum has a five-month block-history rule. It does not have one five-month history clock.

A new draft EIP-8383 proposes cutting the minimum block-serving range from 33,024 epochs to 8,192, or from 146.8 days to 36.4 days at today's 12-second slots. I expected the current five-month boundary to roll forward with the chain. For most Lighthouse and Prysm peers in Xatu, it did not move at all.

Hash-chain RANDAO would reserve 46 MB for dead validator indices

· 5 min read
Aubury Essentian
Ethereum Research

EIP-8321 sounds almost suspiciously cheap. Replace the BLS RANDAO reveal with a hash chain, then store only the validator's current 32-byte commitment. The per-validator number is tiny. The validator registry is not.

Backcast against mainnet at finalized epoch 469,034, the proposed list body is 74.75 MB in raw SSZ. Of that, 45.98 MB points at validator indices that have already exited and can never propose again. The fork transition would initialize every one of those entries to zero, and the old indices have no proposal duty that needs a commitment.

Slot zero owns 96% of target-vote misses

· 5 min read
Aubury Essentian
Ethereum Research

The first committee of an Ethereum epoch has an awkward job. Its FFG target is the block being proposed in the same slot, so some validators vote before that block reaches them and some vote after.

That little race owns almost the entire target-miss surface. Across the first 14 complete UTC days of August, slot zero carried 3.12% of attested validator duties and 96.13% of incorrect target votes.