Given the current Ethereum state and a set of bundles, we want to use MPC to do the following:
In order to achieve this, we need do have MPC programs for:
where
: bundle score used to sort bundles.
: ordered list of transactions in a bundle.
: set of transactions in the mempool.
: gas used by transaction .
: gas price of transaction .
: fee cap per gas of transaction .
: priority fee per gas of transaction .
: effective fee per gas of transaction equal (, BASEFEE + ).
: miner fee per gas of transaction equal - BASEFEE.
: coinbase difference from direct payment.
In a basic version of this, the relayers can run the nodes. However, we don't get full privacy because the miners can still see the bundles after the fact.
Ideally, the miners run the MPC amongst themselves. That way searchers can send their bundles directly to miners as private inputs into the MPC computation and don't see a priori what the bundles are. We still have a problem though that after the MPC computation is done,
The bundle scoring and the modified auction can be implemented today with current MPC tooling. However, verifying the Ethereum state within an MPC will be a challenge. This may potentially be remediated, initially with some cryptoeconomics. Ideally, though, we can verify the validity of the Ethereum state against a set of bundles within a ZKP.