Mev On Eth2
Discussion on MEV for Eth2, focusing on software stack inc. mev-boost, mev-relay, consensus client, etc.
Overview
Sequence Diagram
SignedValidatorRegistrationV1
ValidatorRegistrationV1
fee_recipient
gas_limit
timestamp
pubkey
signature
SignedBuilderBid
BuilderBid
header
value
pubkey
signature
class SignedBlindedBeaconBlock(Container):
BlindedBeaconBlock
slot
proposer_index
parent_root
state_root
BlindedBeaconBlockBody
...
eth1_data: Eth1Data
execution_payload_header
signature
Signing
…
Commitment
TODO: What prevents the validator, after receiving the full block contents from modifying the transaction order that came from the builder?
- “Validators receive the full block after they sent the signed blinded beacon block. Once that is done, they cannot propose any other block, otherwise they can and will get slashed.” - Discord
- Wouldn’t it be advantageous for the design to have the relay (which is already a point of trust) to broadcast the block since it already got the blind signature for the block? With this setup, the validator never actually sees the block contents. - Thinking out loud…
Fee Recipient
Steps:
- Block builder calls beacon client, asking for proposer for next slot which contains the fee recipient (source)
- Block builder sends bid to the Relay (mev-relay service)
- Relay forwards payload to the Block validation API service which simulates the block and ensures the fee recipient has been paid the amount stated in the
payload.value
field
Ongoing discussion about an “industry standard” way of doing payouts. For launch Flashbots is proceeding with proposer payment with a transaction from the builder at the end of the block. Relevant GH issue discussion
Wiki
Background Reading
- Original Architecture Proposal for MEV Boost by Flashbots
- “Unofficial” design proposal for MEV boost - good chunk made it into official implementation; provides backgound
- Beginners Guide to MEV Boost
- MEV-Boost Quickstart
Implementation Resources
- Builder Spec Schema and Builder Spec API - how Consensus Client (e.g. Prysm) communicates with MEV Boost
- Psuedo-code to construct
BeaconBlockBody
- Relay Spec API - from Flashbots, bit confusing of a document
- Source Code
Builder Spec Support
Project | Status |
---|---|
Teku - Java | Supported (#156) |
Prysm - Go | Supported (#158) |
Lighthouse - Rust | Supported (#160) |
Lodestar - TypeScript | Supported (#157) |
Nimbus - Nim | Supported (#159) |
Notes mentioning this note
There are no notes linking to this note.