Décompilation du byte-code de la machine virtuelle Ethereum et détection de motifs.
Objectifs
Le projet Argos [1] cherche à construire des outils d'analyse et de traçabilité de blockchains [2]. Ces analyses des flux transactionnels nécessitent de construire le graphe des transactions à partir des adresses que l'on désire tracer. Ce graphe peut être de très grande taille selon la qualité du regroupement des adresses. De plus certaines transactions sont engendrées à partir de smart contrats. Pour cela on s'intéresse à la machine virtuelle Ethereum( EVM)[3] vers laquelle sont compilés de nombreux smart contrats, en particulier ceux écrits dans le langage solidity [4, 5]. Ceux-ci déclenchent des transactions en consommant une ressource, appelée gas. On cherche alors à décompiler le byte-code de l'EVM pour faciliter la traçabilité des smart contrats.
L'objectif de ce stage est de comprendre le mécanisme d'exécution des smart contrats dans l'environnement d'exécution EVM pour construire un outil de décompilation de ce byte-code et de pouvoir ensuite effectuer la détection de certains motifs de byte-code correspondant à des programmes spécifiques.
Tâches à réaliser
On partira de l'analyse effectuée l'an passé dans le cadre d'un stage de décompilation [6] à l'université Paris Saclay pour comparer les différents outils [7, 8, 9] et soit en choisir un, soit en construire un spécifique, pour dans un deuxième temps pouvoir rechercher certains motifs de suites d'instructions correspondant à des familles de programmes/contrats à étudier.
Prérequis
- avoir des bases de programmation en C, en Python et en OCaml
- connaissance des mécanismes de block chains pour les crypto-monnaies
- la connaissance de la programmation de smart contrats est un plus
Références
- Functori. Introduction to Argos. https://www.functori.com/blog/introduction-to-argos.html. 2024.
- cours sur les blockchains - M2 STL) 2021/2022.
- https://ethereum.org/fr/developers/docs/evm/
- https://www.soliditylang.org/
- https://github.com/pre-vert/solidity-fr
- Ramy Sail. Décompilation du Bytecode Ethereum Virtual Machine (EVM). Rapport de stage - Magistère Université Paris Saclay. 2025
- N. Grech, L. Brent, B. Scholz and Y. Smaragdakis, "Gigahorse: Thorough, Declarative Decompilation of Smart Contracts," 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), Montreal, QC, Canada, 2019, pp. 1176-1186, doi: 10.1109/ICSE.2019.00120.
- Neville Grech, Sifis Lagouvardos, Ilias Tsatiris, and Yannis Smaragdakis. 2022. Elipmoc: advanced decompilation of Ethereum smart contracts. Proc. ACM Program. Lang. 6, OOPSLA1, Article 77 (April 2022), 27 pages. https://doi.org/10.1145/3527321
- Sifis Lagouvardos, Yannis Bollanos, Neville Grech, and Yannis Smaragdakis. 2025. The Incredible Shrinking Context... in a Decompiler Near You. Proc. ACM Softw. Eng. 2, ISSTA, Article ISSTA060 (July 2025), 24 pages. https://doi.org/10.1145/3728935
Le stagiaire devra être d'accord pour que ses contributions soient distribuées sous licence libre.
Contacts : Emmanuel Chailloux & Boubacar Sall
IRILL - Research and Innovation on Free Software