ethereum / ethereum/builder-specs
Per-slot unique RequestAuth vs Per-Builder unique RequestAuth
- 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