There's a lot of chatter lately in the cryptosphere about Miner Extractable Value (MEV) in Ethereum. As I understand it, MEV is a property of the Ethereum blockchain where miners can (re)order/frontrun transactions when mining blocks to their own advantage. It seems very much like the phenomenon of hedge funds trying to get their servers as geographically close as possible to exchanges in traditional finance.

Does/will Cardano suffer from MEV? If so, why? If not, why not? Is there any talk of preventing the problems of MEV at a protocol level (assuming ADA does/will suffer from the problem)? At a higher level, to UTXO based protocols suffer from MEV?

2 Answers 2


The simple answer is yes, a Cardano pool operator could front-run a transaction in the mempool to their advantage. They would need to customize the haskell code to allow their node to order the transactions in the mempool as they wanted them.

That being said, there is some risk to the pool operator by doing this. There is a 5% chance that any block made by the pool operator ends up in a slot battle. If they lose that slot battle, their transaction that was supposed to front run would instead be executed AFTER by the other pool which ordered the transactions naturally. This would be exactly what the operator didn't want to have happen.

There's also some natural protection from this because... haskell is hard.

  • 4
    > "There's also some natural protection from this because... haskell is hard." Not sure if your answer is correct but this would just be security by obscurity which would be horrible in a global, decentralized financial system.
    – eddex
    Commented Jul 14, 2021 at 7:30
  • Thanks for the great answer! A few followup questions: 1) I assume eventually there will be validators written in languages other than Haskell, right? 2) TIL about slot battles, any chance you have a doc I can read to learn more? 3) Do you know if there's a way at a protocol level to disincentivize MEV? Commented Jul 14, 2021 at 15:13
  • If you're rigging your local node, you could probably prevent your transaction from being sent to other nodes so it would only be processed in the case you made the block? Commented Jul 15, 2021 at 18:12

There’s a pretty good write-up here:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.