Skip to content

Skip KZG proof verification for blobs and proofs returned from the EL #7700

@jimmygchen

Description

@jimmygchen

Lighthouse currently verifies KZG proofs returned from the EL:

  • engine_getPayloadV5 (during block production, GET v3/validator/blocks)
  • engine_getBlobsV2 (during attestation window for data availability checks)

It was a good to have at the time it was implemented, because the verification is quite cheap at the current blob levels, but it grows as the blob count increases and could get quite significant for supernode after PeerDAS.

Both of these verifications are redundant and could be safely skipped, because the EL already verifies them as the blobs enter the mempool, and the EL is considered a trusted component (below from Francesco):

If the EL is malicious it could say that invalid payloads are valid, which is not something the CL can verify

Additionally we could also skip the KZG verification during block publishing (POST v2/beacon/blocks), ONLY for locally built blocks, as we can't assume builder blobs are valid.

Metadata

Metadata

Assignees

Labels

dasData Availability SamplingfuluRequired for the upcoming Fulu hard forkoptimizationSomething to make Lighthouse run more efficiently.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions