Skip to content

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

Open
@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

No one assigned

    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