ethereum / ethereum/builder-specs

Per-slot unique RequestAuth vs Per-Builder unique RequestAuth

Open
#147 5 comments 0 reactions 0 assignees View on GitHub
glamsterdam
Dominant language
HTML
Stars
234
Forks
86
Avg merge
4d 1h
Merged PRs (30d)
2

Description

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](https://github.com/ethereum/builder-specs/pull/138/changes#diff-ab0a6003d6c396dca04b041791b443c0089537ec1172bccdc3b8fb5722fc7fbcR2).

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:
```python
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.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the builder-specs RequestAuth definition linked in the issue and the ePBS authentication flow. Compare per-builder and per-slot uniqueness, including sidecar signing and the two stated abuse cases. Done means the specification has an agreed direction and clearly defines the resulting RequestAuth behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.