Le piratage de 15 millions $ de Eminence.finance expliqué de A à Z !
Voici le mécanisme permettant de hacker Eminence – Le protocole Eminence n’a pas encore été lancé qu’il a déjà été hacké. L’attaquant a réussi à dérober l’intégralité des 15 millions de dollars déposés dans les pools du protocole. Retour sur les détails de cet événement.
Eminence.finance
Eminence.finance est le nouveau projet développé par Andre Cronje, le créateur de yEarn.finance. En pratique, Eminence est un jeu de cartes à collectionné crypto fonctionnant grâce à des NFT (Non Fungible Tokens).
Suite à la publication de 3 teasers sur Twitter, certains internautes ont réussi à trouver le smart contract du projet et ont décidé d’y déposer des fonds. Au total, le projet comptabilisait 15 millions de DAI, alors qu’il ne dispose même pas d’interface utilisateur et qu’il n’a fait l’objet d’aucun audit.
Évidemment, le pire devait arriver. Un hacker a réussi à trouver une faille dans le protocole lui permettant de siphonner les 15 millions de DAI.
Retour sur le hack
Quelques jours après les faits, Bartek Kiepuszewski est revenu sur le hack en apportant une explication détaillée de son déroulement.
If you are confused how the hacker managed to drain $EMN contract, here’s the exact mechanics of what happened:
— bartek.eth (@bkiepuszewski) September 29, 2020
Dans un premier temps, il faut comprendre comment Eminence fonctionne et comment son jeton EMN est créé.
Comment Eminence fonctionne ?
Le smart contract d’Eminence permet de générer des EMN grâce à du DAI. Le DAI est utilisé comme monnaie de réserve pour le jeton EMN. De ce fait, le prix de l’EMN est déterminé par le montant en DAI présent dans les réserves.
En plus de l’EMN, il existe un second jeton : le eAAVE. À l’inverse du EMN, le eAAVE utilise une réserve virtuelle en EMN et non en DAI. Dans les faits, lorsqu’un utilisateur envoie des jetons EMN sur le contrat dans le but de générer des eAAVE, celui-ci va détruire les EMN en question au moment de la création des eAAVE. À l’inverse, si l’on envoie des jetons eAAVE le smart contract créera en échange des jetons EVM.
L’attaque
Maintenant que le fonctionnement d’Eminence n’a plus de secret, passons au détail de l’attaque. Celle-ci s’est déroulée en plusieurs étapes, qui en pratique ont été réalisées de manière atomique au sein d’une seule et même transaction.
- L’attaquant a contracté un flash loan de 15.00.000 DAI sur Uniswap.
- Il a acheté autant de EMN que possible avec les DAI.
- Il a dépensé la moitié de ses EMN pour acheter des eAAVE. Cela a brûlé les EMN et réduit l’offre totale, ce qui a eu comme conséquence d’augmenter le prix des EMN.
- Il a ensuite vendu la deuxième moitié des EMN dont le prix a augmenté pour 10 024 579 DAI (soit un montant supérieur à 7,5 millions de DAI).
- Il a vendu ses eAAVE pour récupérer la première moitié des EVM. Les EVM sont créés en échange des eAAVE et cela a fait baisser le prix des EVM (offre totale qui augmente).
- Finalement, il a revendu ses EVM contre 6 649 057 DAI.
Une fois le flash loan de 15 000 000 DAI remboursé, l’attaquant s’est retrouvé avec 1,6 million de DAI de profits. Ce dernier a répété l’opération 3 fois pour vider entièrement la pool d’Eminence.
Une fois de plus, cette attaque a visé un protocole non audité. Il est primordial pour les investisseurs de se sensibiliser à la nécessité d’utiliser des protocoles audités. Dans le cas contraire, leurs fonds sont à risque et une attaque peut potentiellement siphonner les pools, comme ce fut le cas pour Eminence.