4 Commits

Author SHA1 Message Date
Jacek Sieka
5761fb4d97
update list of checks 2024-08-28 07:31:49 +02:00
Jacek Sieka
0b95012c2e
Separate type for unaggregated network attestations
As a complement to
https://github.com/ethereum/consensus-specs/pull/3787, this PR
introduces a `SingleAttestation` type used for network propagation only.

In Electra, the on-chain attestation format introduced in
[EIP-7549](https://github.com/ethereum/consensus-specs/pull/3559)
presents several difficulties - not only are the new fields to be
interpreted differently during network processing and onchain which adds
complexity in clients, they also introduce inefficiency both in hash
computation and bandwidth.

The new type puts the validator and committee indices directly in the
attestation type, this simplifying processing and increasing security.

* placing the validator index directly in the attestation allows
verifying the signature without computing a shuffling - this closes a
loophole where clients either must drop attestations or risk being
overwhelmed by shuffling computations during attestation verification
* the simpler "structure" of the attestation saves several hash calls
during processing (a single-item List has significant hashing overhead
compared to a field)
* we save a few bytes here and there - we can also put stricter bounds
on message size on the attestation topic because `SingleAttestation` is
now fixed-size
* the ambiguity of interpreting the `attestation_bits` list indices
which became contextual under EIP-7549 is removed

Because this change only affects the network encoding (and not block
contents), the implementation impact on clients should be minimal.
2024-08-26 15:54:59 +02:00
0xTylerHolmes
80092b1b14 remove beacon_attestation_subnet from global topics 2024-07-19 12:52:59 -04:00
Alex Stokes
e4068b5391
Merge EIP-7549 into Electra 2024-04-05 13:56:57 -06:00