Il transforme 2,5 millions d’USDC en 0,05 dollar en 3 clics malheureux
Les gueules cassées du depeg de l’USDC – En fin de semaine dernière, le stablecoin USDC de Circle s’est éloigné de son étalon au dollar suite à des incertitudes quant à ses réserves. En effet, une partie du cash de Circle est stocké auprès de la banque en déclin : Silicon Valley Bank. Malheureusement, cette conjoncture a entraîné des situations pas toujours agréables pour les utilisateurs.
2 millions de dollars en USDC évaporés
Ce weekend fut haut en couleur pour les détenteurs de cryptomonnaies et plus particulièrement les détenteurs d’USDC.
En effet, le stablecoin de Circle a rencontré une haute volatilité qui a entraîné le cours de l’USDC à 0.87$, soit 13 centimes en dessous de l’étalon au dollar.
Face à cette situation de crise, de nombreux investisseurs ont tenté de fuir l’USDC au profit d’autres stablecoins tels que l’USDT.
Malheureusement, pour certains utilisateurs la manœuvre ne s’est pas passée comme prévu.
Samedi 11 mars, @BowTiedPickle a dévoilé une tentative de fuite qui s’est soldée par un vilain rekt.
« Face aux craintes d’insolvabilité de l’USDC, les utilisateurs se réfugient dans d’autres écuries. Mais tous n’y parviendront pas en un seul morceau. Voici comment un utilisateur malchanceux a payé 2 080 468,85 $ pour recevoir 0,05 $ en USDT. »
Ainsi, un utilisateur a tenté de convertir 2 080 468 USDC en USDT. Malheureusement, rien ne s’est passé comme prévu et l’internaute s’est retrouvé avec 0,05 USDT en fin de course, soit une perte nette de plus de 2 millions de dollars.
Une erreur de configuration
Voici comment s’est déroulée la manœuvre qui a entraîné la perte massive de 2 millions de dollars.
Suite au depeg, l’utilisateur a souhaité convertir une grande quantité de jetons 3CRV LP. Pour rappel, 3CRV est une pool du protocole Curve qui comporte du DAI, de l’USDC et de l’USDT.
L’utilisateur est passé par le routeur d’agrégation de Kyberswap pour réaliser son échange.
« Il s’agit déjà d’une décision discutable puisqu’il est possible de retirer le LP en USDT pour un slippage de 6 %, mais il était peut-être désespéré. »
Lors de sa transaction, l’utilisateur a oublié de configurer correctement le slippage. Malheureusement pour lui, le routeur de Kyberswap va envoyer la transaction vers la pool 3CRV/USDC d’Uniswap V2. Pool qui en pratique détenait environ 2$ de liquidités.
Pas besoin d’avoir fait Polytechnique pour se rendre compte que les calculs ne seront pas bons pour notre internaute.
« 2 millions de 3CRV tombent dans la piscine avec la force d’un millier de soleils, et x * y = k fait son sinistre travail. Exactement 54182 unités d’USDC, d’une valeur d’environ 5 cents, quittent le contrat pour le deuxième volet de l’échange, où elles sont heureusement échangées contre des USDT, et sont remises à l’échangeur. »
Après ce trade, la pool se retrouve évidemment déséquilibrée avec bien trop de 3CRV comparé aux USDC présents dans la pool. C’est là qu’entre en jeu un bot de MEV.
Ce bot a détecté le déséquilibre et a entrepris de le rétablir en échangeant 1,45 USDC contre 2 millions de 3CRV.
« Le bot a payé 45 $ en gaz et 39 000 $ en pots-de-vin MEV, pour un bénéfice de 2,045 millions de dollars. Ce bot n’était pas particulièrement complexe. Backrun, flashbots, plus la capacité d’unwrap les 3CRV. C’est tout. Opportunités égales, résultats inégaux. »
Bug du côté de Kyberswap ou inattention de l’utilisateur ?
Rapidement, de nombreux observateurs se demandent comment cela a été possible. En effet, il ne s’agit pas d’une attaque sandwich ou autre stratégie peu morale de MEV.
Ainsi, peu après le swap, les équipes de KyberSwap ont publié un post-mortem sur Twitter afin de clarifier la situation.
Face à la volatilité du marché, l’agrégateur de KyberSwap n’a pas réussi à estimer le gas de la plupart des routes pour effectuer le swap. La seule qui a pu être estimée fut celle de 0x protocol, avec taux de change déplorable.
« Nous avons affiché le taux de 0x à l’utilisateur dans une fenêtre contextuelle. Cependant, l’utilisateur a procédé à l’échange sans remarquer le faible rendement de l’opération. L’utilisateur a signé avec les nouvelles données correspondantes en cliquant sur Confirmer l’échange, et l’échange a été exécuté par l’intermédiaire de 0x. »
Bien que cela ne soit pas intrinsèquement la faute de KyberSwap, les équipes du protocole envisagent tout de même des évolutions afin qu’une telle situation ne se reproduise plus :
- Amélioration de l’interface utilisateur ;
- Création d’une fonction pour reverser la transaction si le prix est trop bas par rapport au prix attendu.
En parallèle, KyberSwap est également entré en contact avec l’utilisateur lésé, le créateur et l’utilisateur du bot qui a empoché le gros lot, afin de trouver un arrangement sur la situation.
Finalement, le weekend se finit plutôt bien pour l’USD. En effet, les opérations d’USDC ont repris le 13 mars au matin avec la réouverture des banques US. De surcroît, les 3,3 milliards de dollars, déposés à la Silicon Valley Bank, devraient entièrement être récupérés par Circle.
L’hiver est une période idéale pour construire et apprendre ! Inscrivez-vous sur la plateforme Binance et profitez d’une académie gratuite et d’un site intégralement en français pour faire vos premiers pas en toute sécurité. Vous économiserez 10 % sur vos frais de trading en suivant ce lien (lien commercial).