L’histoire incroyable de ces robots qui se font des millions sur le dos d’Ethereum

Il semblerait que l’aspect entièrement publique des blockchains n’ait pas que des avantages. Certains utilisateurs malintentionnés utilise cette caractéristique à leur avantage grâce à des bots d’un nouveau genre.

« Un safari dans la forêt noire d’Ethereum »

Mardi 29 décembre, le chercheur de chez ZenGo, Alex Manuskin a publié les résultats d’une étude extrêmement intéressante à propos du business des bots sur Ethereum.

Dans cette étude, Manuskin s’est concentré sur les bots dits de « frontrunning ». Le frontrunning est une méthode qui vise à placer une transaction en tête de la file d’attente, juste avant une transaction future connue.

Pour illustrer ses propos, Manuskin a utilisé l’exemple suivant :

« Un exemple simple de « frontrunning » est une offre d’échange. Supposons que quelqu’un soit sur le point d’acheter une énorme quantité d’ETH sur Uniswap, suffisamment pour faire monter le prix de l’ETH. Une façon de tirer profit de ce scénario est de placer une transaction d’achat d’ETH juste avant l’achat de cette énorme quantité d’ETH, alors que le prix reste plus bas. Puis, juste après la flambée des prix, vendre l’ETH pour réaliser un bénéfice. »

Pour permettre de passer devant la transaction visée, les bots de frontrunning vont charger leur propre transaction d’un peu plus de gas, ce qui leur permet d’être inclus de manière prioritaire dans le bloc en question.

La chasse aux bots

Bien que leur existence soit assez largement connue, ces bots sont extrêmement difficiles à détecter. C’est pourquoi Alex Manuskin a décidé de partir à la chasse aux bots.

Pour se faire, ces derniers ont décidé de déployer un honeypot (un leurre, en informatique) visant à attirer les bots pour pouvoir étudier leur fonctionnement une fois que ces derniers ont mordu à l’hameçon.

Dans les faits, ils ont déployé un contrat disposant de 0.04 ETH. N’importe qui était alors en mesure de retirer les fonds du contrat s’il fournissait la bonne préimage du hash stocké dans le contrat.

Pour déclencher les bots, Manuskin a également publié une transaction qui tente de récupérer lesdits fonds avec la préimage du hash. L’objectif de cette transaction est qu’elle soit détectée par un bot, qui tentera de retirer les fonds avec les données présentes dans la transaction et de publier sa transaction avec plus de gas pour qu’elle passe en premier.

« Nous avons fait mouche. La transaction a été en suspens pendant environ 3 minutes avant d’être exploitée, sans que le contrat du honeypot n’ait eu de valeur. En regardant la transaction interne du contrat, nous avons pu voir que les fonds sont allés à quelqu’un d’autre. »

Cette touche leur a permis d’obtenir l’adresse de l’un de ses bots et d’étudier ses gains et ses différentes actions par la suite. En pratique, celui-ci est actif depuis mai 2018.

Au total, ce bot a récupéré un montant d’environ 17 ETH, soit environ 12 000$ au moment de la rédaction de cet article.

https://journalducoin-com.exactdn.com/app/uploads/2020/12/pasted-image-0.png?strip=all&lossy=1&quality=90&webp=90&resize=580%2C245&ssl=1
Fonds collecté par le bot en ETH depuis sa création – Source : étude ZenGo.

Des bots intelligents ?…

Par la suite, les chercheurs ont tenté d’étudier l’intelligence de ces bots en proposant des schémas plus complexes.

Ainsi, dans une seconde expérimentation, la transaction détenant la préimage du hash a été passée à travers un contrat proxy, visant à compliquer sensiblement la tâche d’un bot profiteur.

En bref, multiplier le nombre de contrats qui s’appellent entre eux pour complexifier les schémas de transaction.

« Cette fois, c’était beaucoup plus impressionnant. Non seulement le bot a été capable de détecter notre transaction d’extraction, mais il l’a identifiée à partir d’un appel interne, d’un contrat complètement différent ! »

Ainsi, cette expérience démontre la précision et la complexité des bots de frontrunning, qui sont capables de mener leurs attaques sur des schémas de transactions plus complexes.

… mais pas trop, quand même

Une dernière expérience a été menée, avec cette fois-ci le contrat de proxy était un contrat « owned » ou propriétaire, cela veut dire que seul son créateur peut transiter les transactions.

Dans ce cas, aucun bot n’a été en mesure de récupérer les fonds, même en ne mettant qu’une quantité de gas réduite.

« La combinaison d’un proxy propriétaire qui permettait uniquement au propriétaire de transmettre les transactions a empêché les deux bots d’analyser les données avec succès et de faire un profit indument. »

Bien qu’il semblerait que des méthodes existent pour limiter les cas de frontrunning, les bots quant à eux continuent de s’améliorer et pourraient d’ici peu être en mesure de contourner certaines protections.

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.