I’ll keep this short to not waste any time, since I do not consider myself an expert, and I do consider the time of the experts here to be highly valuable.
An Idiot’s Dumb Idea to Hinder MEV Efficiency
The way that blocks are produced does not enforce any kind of ordering behavior. I think that during block production, miners could order transactions by sorting them from least to greatest, according to their transaction hashes casted as an unsigned integer.
Sorting by Tx Hash as a Uint256
Under this model, a newly proposed block would only be valid given that the transactions within the block are sorted least to greatest by their transaction hash (in addition to its other constraints). In this way, MEV would gain uncertainty. As far as I can tell, this would be a relatively low overhead way to improve transaction fairness. Verifying that blocks are properly ordered would only require to carry a single transaction hash value between transactions, and it would be compared to the next transaction hash in the proposed block, and if at any point a previous transaction hash is greater than its next transaction hash, then the block would be rejected. (Then again, this is the idiot’s dumb idea… if it’s immediately obviously impossible because of something that I do not understand, then you can just ignore the rest.)
Frontrunning Doesn’t Go Away
The way that frontrunning could occur under this new model would require that a malicious actor vary the maximum gas they are willing to pay (to produce a new transaction hash), using it as a kind of nonce to find a lower valued transaction hash than the hash of the target transaction they want to frontrun. Also, in order to exit the position after their target transaction, they would need to mine for a second value that is greater than their target transaction hash. It doesn’t seem like that big of a deal to do, maybe just a minor inconvenience (pun intended).
Currently, the default ordering that geth uses is by descending gas price. Because of that fact, frontrunning has been a function only of submitting a higher gas price than the target transaction. Under this model, we introduce a second parameter, which is actually enforced at the block / consensus level. Gas price bidding wars don’t go away, but it should make frontrunning less efficient, because of the presence of other transactions within the block. A malicious actor might be able to find a hash that is lower than their target transaction, but then again another malicious actor might have a closer hash in between the target’s hash and the first malicious actor’s hash. This uncertainty should make frontrunners less willing to play these games against the users of Ethereum.
Another benefit seems to be that as frontrunners would need to alter their gas value, it could potentially require them to have more ETH on hand, because although any extra gas submitted to the transaction is refunded, by increasing the gas limit to find a better hash they temporarily use more of their own funds, increasing the up-front costs of this attack vector. This increase in cost could be negligible, though.
Lastly, miners should still accept transactions according to the highest gas prices, because the only constraint the block cares about is that these transactions are sorted by transaction hash. They would start by grabbing the highest gas priced transactions from the mempool, and then submit these in order, according to their transaction hashes. Although this doesn’t eliminate MEV, it might slow it down considerably. It could buy us time to eliminate it altogether, which would be the best thing for Ethereum imo.
I have little clue what kind of far reaching consequences this idea could have. It might make MEV auctions practically impossible (imagine finding the correct hashes for every frontrun transaction in a block, in addition to finding the best “arbitrage” opportunities). Yet, even if this is completely wrong, I still hope that it inspires some insight, and if anything I could see this post being beneficial in that it conveys that there are other people out there contemplating this problem. Thanks for your time!