Protection MEV : Comment éviter les attaques sandwich sur un DEX
— By Tony Rabbit in Tutorials

Un guide de défense pratique pour la protection MEV contre les attaques sandwich : ajustez correctement le slippage, routez via un RPC privé, divisez les ordres importants et confirmez si vous avez été "sandwiched".
La protection MEV contre une attaque sandwich signifie empêcher un bot d'acheter juste avant votre swap et de vendre juste après, empochant le mouvement de prix que votre propre transaction crée. Une attaque sandwich est une forme de valeur extractible maximale (MEV) où un bot repère votre transaction en attente dans le mempool public, la "front-run" pour faire monter le prix, laisse votre transaction se remplir à ce prix plus défavorable, puis vend pour un profit. La bonne nouvelle : c'est un problème soluble. Avec les bons paramètres de slippage, un routage de transaction privé et une taille d'ordre plus intelligente, vous pouvez rendre vos swaps non rentables à attaquer. Ce guide est un mode d'emploi actionnable, pas une autre définition, alors passons directement aux défenses.
Points clés à retenir
- Les bots sandwich ont besoin de deux choses : votre transaction visible dans le mempool public et suffisamment de marge de slippage pour extraire de la valeur.
- Définissez le slippage aussi serré que la transaction le permet. Un slippage élevé est une invitation ouverte, pas une marge de sécurité.
- Un RPC protégé ou privé masque votre swap en attente afin que les bots ne puissent pas le voir pour le "sandwicher".
- Diviser les ordres importants et éviter les pools peu profonds aux heures de pointe du gas supprime l'impact sur les prix dont les bots se nourrissent.
- Vous pouvez confirmer un "sandwich" passé en inspectant l'achat et la vente qui encadrent votre transaction dans le même bloc.
Comment vous êtes "sandwiched", en un diagramme
Une attaque sandwich se produit dans un seul bloc, en trois transactions ordonnées. Le bot surveille le mempool public, voit votre achat en attente d'être miné, et insère ses propres transactions de chaque côté de la vôtre. L'image ci-dessous montre la séquence exacte.
L'attaque ne fonctionne que parce que deux portes sont ouvertes simultanément : votre transaction est diffusée sur le mempool public où n'importe quel bot peut la lire, et votre tolérance au slippage est suffisamment large pour absorber le prix que le bot pousse. Fermez l'une ou l'autre porte et le calcul cesse de fonctionner pour l'attaquant. Pour les mécanismes complets, consultez ce qu'est une attaque sandwich en crypto et les risques MEV plus larges dans le trading DEX.
Ajustez correctement le slippage (et pourquoi un slippage trop élevé invite à l'attaque)
La tolérance au slippage est le mouvement de prix maximal que vous accepterez entre le moment où vous confirmez et le règlement du swap. Elle existe pour que les transactions volatiles n'échouent pas, mais chaque point de pourcentage que vous accordez est une marge qu'un bot sandwich peut voler. Si vous définissez un slippage de 10% sur une paire liquide, vous indiquez au réseau que vous accepterez un remplissage jusqu'à 10% plus défavorable, et un bot en profitera exactement autant qu'il le peut de manière rentable.
Définissez le slippage aussi serré que la transaction le permet plutôt que de choisir un nombre rond et confortable par défaut. Sur des pools profonds et liquides, 0,1% à 0,5% est souvent suffisant. Les tokens volatils ou nouvellement lancés peuvent réellement nécessiter plus en raison d'un mouvement de prix réel, mais traitez chaque point supplémentaire comme une exposition, pas une sécurité. Si un swap continue d'échouer avec un faible slippage, la solution honnête est généralement un pool plus mince ou un ordre trop important, et non d'augmenter la tolérance à 15%. Pour comprendre pourquoi les remplissages se passent mal, lisez comment le slippage, l'impact sur les prix et la profondeur du pool provoquent de mauvais remplissages.
Utilisez un RPC protégé ou privé pour rester hors du mempool public
La défense la plus efficace est d'arrêter de diffuser votre transaction là où les bots la surveillent. Un swap normal va d'abord dans le mempool public, y reste quelques secondes et est entièrement lisible pendant qu'il attend. Un RPC protégé ou privé achemine votre transaction via un relais qui la soumet directement aux constructeurs de blocs, de sorte qu'elle ne reste jamais dans le pool ouvert où un bot MEV "front-running" et "sandwiching" les transactions pourrait la trouver.
En pratique, vous ne changez qu'un seul paramètre. Dans la configuration réseau de votre portefeuille, remplacez le point de terminaison RPC par défaut par un point de terminaison résistant aux attaques sandwich proposé par des services conçus à cet effet, puis effectuez votre swap normalement. De nombreux portefeuilles et interfaces utilisateur proposent désormais la protection MEV par défaut, mais confirmez que le vôtre le fait réellement avant de supposer que vous êtes couvert. Un routage privé signifie également qu'une tentative d'attaque échouée ou annulée ne vous coûte rien, car le bot n'a jamais pu encadrer la transaction en premier lieu.
Divisez les ordres importants et utilisez des agrégateurs conscients du MEV; évitez les pools peu profonds aux heures de pointe du gas
La taille est ce qui fait de vous une cible. Un petit swap dans un pool profond ne fait pratiquement pas bouger le prix, il n'y a donc presque rien à extraire. Un swap important dans un pool peu profond fait beaucoup bouger le prix, et ce mouvement est exactement le profit qu'un bot sandwich capture. Deux habitudes réduisent cela.
Premièrement, divisez un ordre important en morceaux plus petits afin qu'aucune transaction unique ne crée un mouvement de prix suffisamment important pour être attaquée. Deuxièmement, routez via un agrégateur conscient du MEV qui répartit la transaction sur plusieurs pools et peut soumettre via un flux d'ordres privé. Des outils comme un agrégateur DEX tel que 1inch trouvent une liquidité combinée plus profonde que n'importe quel pool unique et incluent souvent une protection sur la route. Enfin, évitez d'exécuter de grosses transactions dans des pools peu profonds pendant les heures de pointe du gas, lorsque la congestion donne aux bots le plus de temps et le plus d'incitations à agir. Si vous tradez à des moments plus calmes, vous payez également moins, comme expliqué dans comment réduire les frais de gas sur un DEX.
Comment confirmer que vous AVEZ été "sandwiched" dans votre historique de transactions
Si un remplissage vous a semblé incorrect, vous pouvez vérifier un "sandwich" après coup. Ouvrez votre swap dans un explorateur de blocs et notez son numéro de bloc et sa position. Un "sandwich" laisse une signature claire : dans le même bloc, la même adresse de bot a un achat de votre token ordonné immédiatement avant votre transaction et une vente ordonnée immédiatement après.
Vérifiez-le en trois étapes. Premièrement, examinez les transactions entourant la vôtre dans ce bloc et trouvez un achat et une vente du même token par une seule adresse encadrant votre swap. Deuxièmement, comparez le prix que vous avez reçu au prix du pool juste avant le bloc; un remplissage nettement moins bon qui revient à la normale juste après est le signe révélateur. Troisièmement, confirmez que les transactions d'encadrement partagent un expéditeur ou sont clairement coordonnées. Si les trois correspondent, vous avez été "sandwiched", et les points clés ci-dessus (slippage plus serré plus un RPC privé) sont ce qui l'arrêtera la prochaine fois.
Cet article est à des fins éducatives uniquement et ne constitue pas un conseil financier.