Proposer MEV-Protect
Register exclusively with a bloXroute relay in return for a guaranteed 80% of block value
Currently on Ethereum, proposers either take the most favorable block they are given by the relays, or offer a self-made block. By default, there is generally nothing stopping builders from keeping as much block value as they can for themselves, as long as other builders provide less favorable blocks. To overcome this, bloXroute relays offer the option for proposers to refuse blocks that offer less than 80% of the block value to the proposer. This means that the validator will only be served blocks where the validator is entitled to over 80% of block profit. A 2% fee will be taken from the block builder if the block value is less than 90% of block profit.
Validator Reward <80% Block Profit
Block will be rejected by relay
Validator Reward >80% of Block Profit and Validator Reward <90% of Block Profit
Block will be accepted by relay and a 2% fee will be taken from the builder
Validator Reward >90% of Block Profit
Block will be accepted by relay and no fee will be taken from the builder
This feature can only be activated when using a subset of relays that will guarantee to reject blocks that don't meet the 80% rule. Currently the bloXroute relays are the only relays that offer that but we expect other relays to follow. This feature is based on the idea discussed in the paper "Decentralizing Monopolistic Power in DeFi" by Sarit Markovich. If the validator registers with any non-supporting relay then a builder will not be forced to pay at least 80% of the block value.
The more validators opt to use the Proposer MEV-Protect feature, the more builders and relays will support it as well.
Validators
In order to utilize this feature, a validator must only register with a subset of relays that offer this feature, currently just bloXroute relays. Once you have ensured that your validator is not registering with any non supporting relay, add a query parameter proposer_mev_protect=true
to the relay URLs you use to connect with bloXroute relays. These are the URLs that are passed in with the -relays
flag.
For example to run mev-boost
with bloxroute's mev-protect feature:
./mev-boost -relay-check -relay https://0x8b5d2e73e2a3a55c6c87b8b6eb92e0149a125c852751db1422fa951e42a09b82c142c3ea98d0d9930b056a3bc9896b8f@bloxroute.max-profit.blxrbdn.com?proposer_mev_protect=true&id=validator-name
Builders
As a builder, in order to submit blocks for slots protected by MEV-Protect, there are a couple of steps that must be taken.
Tracking which slots are protected by MEV-Protect
When querying the validator data from the relay endpoint
/relay/v1/builder/validators
the builder receives a JSON array of GetValidatorRelayResponse
objects.
type GetValidatorRelayResponse []struct {
Slot uint64 `json:"slot,string"`
Entry struct {
Message struct {
FeeRecipient string `json:"fee_recipient"`
GasLimit uint64 `json:"gas_limit,string"`
Timestamp uint64 `json:"timestamp,string"`
Pubkey string `json:"pubkey"`
} `json:"message"`
Signature string `json:"signature"`
} `json:"entry"`
ComplianceList string `json:"compliance_list"`
EnforcedProfitRatio uint64 `json:"enforced_profit_ratio"`
}
The enforced_profit_ratio
64-bit unsigned integer represents the percent of the block value required to be given to the proposer in the block.
Building MEV-Protect compliant blocks
In order for a block to be valid as an MEV-Protect block, it must meet the proposer profit threshold for that block which is 80%, as represented enforced_profit_ratio
. Note that slots not protected by MEV-Protect will have an enforced_profit_ratio
value of 0. The enforced_profit_ratio
64-bit unsigned integer represents the percent of the block value required to be given to the proposer in the block. Block Profit is calculated as follows:
BlockValue = Value Transferred to Validator's Fee Recipient
BlockProfit = (Coinbase Balance @ Block n) - (Coinbase Balance @ Block n-1) + BlockValue
If the BlockValue is between 80% and 90% of the BlockProfit, builders will be required to transfer at a later period a 2% fee to bloXroute. Only whitelisted block builders will be allowed to submit blocks within this range, non-whitelisted builders with blocks in this range will be rejected. Please contact bloXroute to be added to the whitelist.
Optimistic MEV-Protect compliant blocks
When submitting a block to a bloXroute relay, for a slot protected by MEV-Protect, you must signal that the block is an MEV-Protect block in order to maintain optimistic relaying.
When submitting via HTTP: attach a
proposer-mev-protect
header, with the value set totrue
.When submitting via websocket: attach a
proposer-mev-protect
header, with the value set totrue
.When submitting via gRPC*: you must set the
ProposerMevProtect
field of theSubmitBlockRequest
struct to true.
*Note: the code required to use gRPC with bloXroute relays is publicly available at https://github.com/bloXroute-Labs/relay-grpc
Last updated