I propose the following alternative, which would make MEV very hard for block proposers:
- Block proposers can pick which transactions to include or not to include in advance. The hash of all these transactions is computed. Let these be the initial
order
s for those transactions. - A block is only valid if the following is true:
- The transaction with a median
order
(treated as binary numbers) is the next transaction included in a block. The median can be efficiently found in O(n) time with a selection algorithm. - The
order
s of the remaining transactions are XOR’d with the above hash. - Rinse and repeat.
- The transaction with a median
The above is O(n^2)
to compute, but a lot more complicated to front run/MEV extract since a transaction needs to be generated so that it and the next transaction are medians. This is computationally infeasible.