Skip to content

Per-slot unique RequestAuth vs Per-Builder unique RequestAuth #147

Description

@bharath-123

With ePBS, builders don't have to relay their bids through relayers and can directly connect to proposers.

The builder-specs currently specifies the proposer to sign a per-builder unique RequestAuth.

Having a per-builder unique RequestAuth can make sidecar consolidation trickier if we want to make sidecars optional with ePBS.

With ePBS, clients can absorb MEV-Boost functionality and make the need of a sidecar like MEV-Boost redundant. It would be ideal to make sidecars optional rather than a requirement like today so that innovation and experimentation can happen externally without requiring CL changes.

A per-builder unique RequestAuth will require the sidecars to access validator keys and sign the requests to get the bid.

If instead we have a per-slot RequestAuth which is unique across slots but common across builders, which can be defined like the following:

class RequestAuth(Container):
    parent_hash: Hash32
    parent_root: Root
    pubkey: BLSPubkey
    slot: Slot

The CL can just proxy the signature as a header to the sidecar and the sidecar can send requests to builders with the signature as needed.

A per-slot unique RequestAuth might be a reasonable tradeoff given the below 2 angles as to why we would want an auth:

  1. Builder wants to query other builder's valuations: In this case, A builder gets a request for an ExecutionPayloadBid, the builder takes the signature and queries other builders. Now the builder needs to update their latest bid if they find a bid with a higher valuation than the ones they have, they would have to update the payment tx, recompute state root etc which seems to be generally high latency and the proposer will just timeout their request by then. So IMO it doesn't seem like a very harmful situation?
  2. Builders want to cause DOS to reduce quality of service of a builder: I think Builders should have general DOS protection in this case.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions