Block scoring for mev-boost relays

Inclusion of withdrawal amounts in bid values are currently causing incorrect bids to be selected.

Example is slot 7914991: the bid was 0.466032380614827 ETH but the actual payment outside of withdrawals was 0.0268737436148266 ETH. A rival bid that didn’t include withdrawals but came in around the same time offered 0.0777436185616146 ETH, so the proposer lost out on 0.050869874946788 ETH by the relay giving it an incorrect bid.

I think that the arguments for using balance delta ultimately fail because they aren’t providing the expected number, which is the value of the execution transactions in the payload to the proposer. Transaction-based value is the only solution here that provides a useful number for proposers.

Tracing the block and working through each transaction to obtain the actual value to the proposer isn’t very difficult, and if it takes too long to do this during the slot it could be done after the fact if relays are prepared to ban builders that report incorrect bids. But at the moment the field is distorted, relays are providing non-optimal bids, and this should be addressed as soon as possible so that bids provided by relays can start to be trusted again.

2 Likes