Imaginez que vous passez une commande au marché. Avant que le vendeur ne vous serve, quelqu'un achète tout le stock devant vous, fait grimper le prix, puis vous revend les produits plus cher. En quelques secondes, vous payez davantage sans même vous en rendre compte. C'est exactement le principe d'une sandwich attack en finance désintermédiée.
Ce type d'attaque exploite une caractéristique fondamentale de la blockchain : toutes les transactions sont visibles avant d'être validées. Un acteur malveillant peut observer votre ordre d'échange en attente, passer sa propre transaction juste avant la vôtre pour faire monter le prix, puis revendre immédiatement après. Vous subissez un surcoût, il empoche la différence. Le tout en quelques blocs.
Pour qui participe à des pools de liquidité Uniswap ou effectue des échanges réguliers sur d'autres protocoles, comprendre ce risque n'est pas optionnel. Les sandwich attacks représentent plusieurs millions d'euros de pertes annuelles pour les utilisateurs. Pourtant, des méthodes concrètes de MEV protection permettent de réduire significativement cette exposition. Comme pour tout placement, comprendre les risques réels avant d'agir reste la première ligne de défense.
Comment fonctionne une sandwich attack sur Uniswap
Le mécanisme repose sur trois étapes successives, d'où le nom de « sandwich ». Prenons un exemple concret : vous souhaitez échanger 10 ETH contre des USDC sur Uniswap.
Votre transaction arrive dans la mempool, cette zone d'attente où toutes les transactions non validées sont visibles publiquement. Un bot spécialisé détecte votre ordre et analyse son impact potentiel sur le prix du pool de liquidité. Si votre transaction est suffisamment importante pour faire bouger le prix, l'attaque se déclenche.
Première transaction : le bot place un ordre d'achat d'USDC juste avant le vôtre, avec des frais de transaction (gas fees) légèrement plus élevés pour passer en priorité. Cette transaction fait grimper le prix de l'USDC dans le pool.
Votre transaction : elle s'exécute au nouveau prix, désormais défavorable. Vous recevez moins d'USDC que ce que vous auriez dû obtenir au prix initial. C'est le slippage trading crypto forcé par l'attaquant.
Troisième transaction : immédiatement après, le bot revend ses USDC au prix gonflé que vous venez de créer. Il empoche la différence entre son prix d'achat (avant votre transaction) et son prix de vente (après votre transaction).
Ces trois opérations se déroulent dans le même bloc ou en l'espace de quelques blocs. Pour vous, le résultat ressemble à un slippage élevé. Mais ce n'est pas de la volatilité naturelle du marché : c'est une manipulation orchestrée qui vous coûte directement.
L'impact réel sur vos opérations DeFi
Les sandwich attacks Uniswap touchent principalement deux profils d'utilisateurs : ceux qui effectuent des échanges de tokens, et ceux qui ajoutent ou retirent de la liquidité dans des pools.
Pour un échange simple, la perte dépend de la taille de votre transaction et de la profondeur du pool. Sur un pool peu liquide, même un échange de quelques milliers d'euros peut subir un prélèvement de 2 à 5 % via une sandwich attack. Sur les pools les plus utilisés comme ETH/USDC, l'impact est généralement plus faible (0,5 à 1 %), mais il reste significatif pour des volumes importants.
Prenons un cas documenté : un utilisateur échange 50 ETH contre des USDC sur Uniswap V2, en acceptant un slippage de 3 %. Une sandwich attack se déclenche. Au lieu de recevoir 98 500 USDC (prix attendu avec 1,5 % de slippage naturel), il reçoit 96 200 USDC. La différence, 2 300 USDC, part dans la poche de l'attaquant. Le surcoût réel atteint 2,3 %.
Pour le yield farming, l'impact est double. D'abord, chaque ajout ou retrait de liquidité peut être attaqué, ce qui grignote les rendements visés. Ensuite, certains utilisateurs automatisent leurs opérations (rebalancing de positions, harvest de récompenses), ce qui les expose de manière répétée. Sur une stratégie avec plusieurs interventions par mois, les pertes cumulées peuvent réduire le rendement annuel visé de plusieurs points. Tout comme avec d'autres vulnérabilités techniques, la vigilance doit être constante.
Les protocoles eux-mêmes ne sont pas responsables de ces attaques. Uniswap, comme les autres DEX, fonctionne exactement comme prévu : les transactions sont exécutées dans l'ordre défini par les gas fees. C'est cette logique même qui permet les sandwich attacks, sans qu'aucun code malveillant ne soit impliqué.
Détecter une sandwich attack après coup
Identifier une attaque après qu'elle s'est produite permet de comprendre ce qui s'est passé et d'ajuster son comportement pour les prochaines opérations.
Vérifiez l'historique des transactions : rendez-vous sur Etherscan (ou l'explorateur correspondant à la blockchain utilisée) et recherchez votre transaction. Regardez les transactions qui l'ont immédiatement précédée et suivie. Si vous constatez qu'une adresse a acheté le même token juste avant vous, puis l'a revendu juste après, avec des montants cohérents, il s'agit probablement d'une sandwich attack.
Un indice caractéristique : les trois transactions (achat du bot, votre transaction, revente du bot) proviennent souvent du même bloc ou de blocs consécutifs. L'attaquant utilise des gas fees légèrement supérieurs aux vôtres pour garantir son positionnement.
Comparez le prix exécuté au prix attendu : si l'écart dépasse significativement le slippage que vous aviez accepté, ou si vous observez un slippage maximal alors que le marché était stable, une manipulation a probablement eu lieu.
Des outils spécialisés facilitent cette détection. EigenPhi propose une analyse visuelle des sandwich attacks sur Ethereum. Vous entrez l'adresse de votre transaction, et le service vous indique si elle a été prise dans une attaque, avec le montant prélevé. Bloxroute offre des services similaires, avec un focus sur la visualisation des flux de MEV (Maximal Extractable Value, la catégorie technique à laquelle appartiennent les sandwich attacks).
Cette analyse rétrospective sert avant tout à calibrer vos futures opérations. Si vous constatez des attaques répétées sur un pool spécifique ou à certains horaires, vous pouvez adapter votre stratégie.
Méthodes pratiques de front-running prevention
Réduire son exposition aux sandwich attacks ne demande pas de compétences techniques avancées. Quelques ajustements dans la manière d'opérer suffisent.
Limiter le slippage toléré
Le slippage est l'écart de prix que vous acceptez entre le moment où vous validez une transaction et celui où elle s'exécute. Par défaut, de nombreuses interfaces proposent 2 à 3 % de slippage. C'est une porte ouverte aux attaques.
En réduisant le slippage toléré à 0,5 % ou 1 %, vous forcez votre transaction à échouer si le prix s'éloigne trop du moment de validation. Certes, votre transaction peut être rejetée si le marché bouge légèrement. Mais vous évitez de payer un surcoît important à un attaquant. C'est un arbitrage : préférer l'échec à la spoliation.
Cette méthode fonctionne particulièrement bien sur les pools liquides, où les mouvements de prix naturels sont limités. Sur un pool moins profond, vous devrez parfois accepter un slippage légèrement supérieur pour que la transaction passe, ce qui augmente le risque.
Fractionner les grosses transactions
Les sandwich attacks sont rentables pour l'attaquant quand la transaction ciblée est suffisamment importante pour faire bouger le prix. En fractionnant un gros échange en plusieurs petites opérations, vous réduisez l'attractivité de chaque transaction individuelle.
Exemple : au lieu d'échanger 50 ETH en une seule fois, divisez l'opération en 5 ou 10 transactions de 5 à 10 ETH. Chaque transaction aura un impact moindre sur le pool, ce qui rend l'attaque moins intéressante économiquement pour le bot (les gas fees qu'il doit payer pour exécuter l'attaque peuvent dépasser le gain potentiel sur une petite transaction).
Attention : cette méthode a un coût. Vous payez des frais de transaction pour chaque opération. Sur Ethereum en période de forte congestion, cela peut vite devenir prohibitif. L'arbitrage entre fractionnement et coût des gas dépend du contexte de marché.
Utiliser des RPC privés pour la MEV protection DeFi
Les RPC (Remote Procedure Call) sont les relais qui transmettent vos transactions à la blockchain. Par défaut, votre transaction passe par un RPC public, ce qui signifie qu'elle est visible dans la mempool publique avant validation. C'est cette visibilité que les bots exploitent.
Certains services proposent des RPC privés qui envoient votre transaction directement aux validateurs, sans passer par la mempool publique. Votre transaction reste invisible jusqu'à son inclusion dans un bloc. Les bots ne peuvent pas l'anticiper, donc pas de sandwich attack.
Flashbots Protect est le service le plus connu. Il s'intègre facilement à MetaMask et fonctionne sur Ethereum. Vous modifiez simplement le RPC utilisé dans les paramètres de votre wallet. Vos transactions sont ensuite routées via Flashbots, qui les transmet directement aux mineurs (ou validateurs) partenaires.
Cette solution est gratuite et efficace. Elle présente toutefois un inconvénient : si votre transaction échoue pour une raison technique (erreur de contrat, solde insuffisant), vous ne payez pas de gas fees. Cela peut encourager des comportements où l'on teste des transactions sans être certain de leur succès, sachant qu'un échec ne coûte rien. C'est un point d'attention, mais cela reste la méthode la plus robuste contre les sandwich attacks.
Passer par des agrégateurs avec protection MEV
Des agrégateurs comme CowSwap intègrent nativement une protection contre les sandwich attacks. Le principe : au lieu d'envoyer votre transaction directement sur un DEX, vous la soumettez à un groupe de solveurs qui cherchent le meilleur prix possible et regroupent plusieurs ordres. Les transactions sont ensuite exécutées par batch, ce qui complique l'attaque.
CowSwap utilise également un système d'ordres en attente (intent-based trading) : vous signez un ordre avec un prix limite, et le protocole ne l'exécute que si ce prix peut être atteint. Pas d'exécution, pas de perte. Le trade-off : l'exécution peut prendre un peu plus de temps qu'un échange direct sur Uniswap.
Ce qu'il faut retenir sur les risques des pools de liquidité
Les sandwich attacks sont un risque structurel de la finance désintermédiée, inhérent à la transparence de la blockchain. Elles touchent tous les utilisateurs qui effectuent des échanges ou gèrent des positions dans des pools de liquidité Uniswap et autres DEX. L'impact varie selon la taille des transactions et la profondeur des pools, mais il n'est jamais négligeable.
Se protéger demande de comprendre comment ces attaques fonctionnent, puis d'adopter des pratiques simples : limiter le slippage, fractionner les gros volumes, utiliser un RPC privé ou passer par un agrégateur avec protection MEV DeFi. Aucune méthode n'offre une immunité totale, mais leur combinaison réduit drastiquement le risque.
Pour qui vise un rendement via le yield farming ou la participation à des pools de liquidité, négliger ce risque revient à laisser s'éroder une partie du rendement visé. Le risque de perte en capital existe également à travers ces attaques techniques, en plus des fluctuations de marché. La vigilance sur ces aspects techniques fait partie intégrante de la gestion du risque en finance désintermédiée. La question n'est pas de savoir si l'on sera un jour victime d'une sandwich attack, mais de mesurer combien cela nous coûtera et comment limiter cette exposition.



