Skip to main content

18 posts tagged with "attestations"

View All Tags

Prysm packed eight attestations where everyone else packed one

· 7 min read
Aubury Essentian
Ethereum Research

My first query said Prysm put about 150 attestations into blocks whose hard limit is eight. That was obviously a row-grain bug, not a consensus break. Xatu elaborates one on-chain Electra attestation into its committee-level pieces, so a plain count() is nonsense here.

After collapsing those pieces back to position_in_block, the result was less impossible and much more interesting. Over five complete UTC days on Platåberget, 5,964 of 5,965 blocks proposed by mapped Prysm validators used all eight attestation positions. Every other mapped consensus client had a median of one.

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.

The block after an empty slot earns 74% more attestation reward

· 6 min read
Aubury Essentian
Ethereum Research

Missing a block does not make its attestations disappear. They turn up one slot later, and the next proposer gets paid for including both cohorts.

Across 30 complete mainnet days, a regular canonical block earned a median 0.048761995 ETH from included attestations. A block after exactly one slot without a canonical block earned 0.084636038 ETH, or 73.57% more. That gap showed up on all 30 days, not in one ugly incident window.

One gossip message became three bit strings

· 6 min read
Aubury Essentian
Ethereum Research

aggregation_bits looks like a field you can group across clients. I tried that, and one gossip payload turned into three strings.

The participants had not changed. The Xatu emitter path had. In one hour, 41,441 of 247,296 content-derived message IDs carried more than one stored aggregation_bits value, while every other parsed attestation field agreed.

The slot table is not a slot counter

· 4 min read
Aubury Essentian
Ethereum Research

beacon_api_slot sounds like the table you would reach for when you need a slot count. That is the trap. On Jul 5 UTC, mainnet had 7,200 scheduled slots and 7,165 canonical blocks. The raw beacon_api_slot table had 2,550,257 rows and 712,240,161 attestation-count units.

That is not Ethereum having 712 million canonical attestations in one day. It is an observer rollup doing exactly what the schema says, with a name that invites lazy queries.

Nimbus v26.6.2 fixed one clock, not the other

· 5 min read
Aubury Essentian
Ethereum Research

Two days ago I wrote that Nimbus v26.6.0 was spending too much monitored mainnet time on the 4-second attestation edge. Nimbus v26.6.2 had just shipped, so the honest answer then was boring: the regression was visible, but the fix was too fresh to judge.

There is enough post-release data now for a first check. It is not a clean victory lap. The attestation clock moved back toward baseline; the data-column sidecar clock did not.

Some large validators are voting one slot behind

· 5 min read
Aubury Essentian
Ethereum Research

The biggest validators are not the weird ones this time.

I expected the MaxEB performance chart to be boring: larger effective-balance validators are mostly run by serious operators, so they should miss less and vote cleaner. That was true for the 1024-2048 ETH bucket. It had the best liveness in the sample.

Then the bucket below it fell off a cliff.