Une sandwich attack (attaque sandwich) est une forme de MEV (Maximal Extractable Value) où un bot malveillant encadre la transaction d’un utilisateur entre deux transactions propres pour en extraire un profit. L’attaquant « front-run » (passe devant) et « back-run » (passe derrière) la transaction victime, comme les deux tranches de pain d’un sandwich.
Le mécanisme exploite la transparence du mempool (la file d’attente des transactions en attente). Quand un utilisateur soumet un swap important sur un DEX (par exemple, acheter pour 100 000$ de ETH sur Uniswap), le bot détecte cette transaction dans le mempool et : (1) achète du ETH juste avant, faisant monter le prix (front-run), (2) laisse la transaction victime s’exécuter à un prix plus élevé, (3) revend son ETH immédiatement après au prix gonflé (back-run). Le profit du bot correspond au slippage supplémentaire subi par la victime.
Les sandwich attacks sont extrêmement courantes sur Ethereum et les DEX EVM : des études estiment que des centaines de millions de dollars sont extraits annuellement des utilisateurs DeFi. Les bots utilisent des services comme Flashbots pour soumettre des bundles de transactions garantissant l’ordre d’exécution, et paient des tips élevés aux validateurs pour prioritiser leurs transactions.
Plusieurs protections existent : les RPC privés (comme Flashbots Protect, MEV Blocker) cachent les transactions du mempool public, empêchant les bots de les détecter. Réduire le slippage tolerance sur les DEX limite le profit extractible mais risque de faire échouer les transactions. Des DEX comme CoW Swap utilisent des enchères par lots (batch auctions) qui rendent les sandwich attacks impossibles.
Les sandwich attacks soulèvent un débat éthique dans la communauté crypto : certains considèrent que c’est une taxe invisible sur les utilisateurs DeFi qui nuit à l’adoption, tandis que d’autres argumentent que c’est une conséquence naturelle des marchés transparents et qu’elles contribuent à l’efficience des prix.