Qu'est-ce qu'un metamorphic smart contract ?
Un metamorphic smart contract est une forme de smart contract qui se démarque par sa capacité à se transformer et à évoluer au fil du temps. Explorons plus en détail cette notion, en nous concentrant sur l'exemple de la blockchain Ethereum. Comment fonctionnent-ils ? Quels sont les risques associés et comment s’en protéger ?
C’est quoi un metamorphic smart contract ?
Les smart contracts sont devenus une brique essentielle des possibilités d’interaction avec la blockchain, offrant une manière sécurisée et décentralisée d'automatiser l'exécution de contrats. L'immuabilité est l'une des principales caractéristiques des smart contracts, ce qui signifie que leur code ne peut pas être altéré une fois déployé.
L'immuabilité des smart contracts présente plusieurs avantages. Tout d'abord, elle garantit la transparence et l'intégrité du code. Étant donné que le code est visible par tous les utilisateurs de la blockchain, toute tentative de modification serait immédiatement détectée, évitant ainsi les altérations malveillantes.
Ensuite, l'immuabilité assure que les termes du contrat restent fixes, ce qui nécessite le consentement de toutes les parties pour effectuer des modifications.
Enfin, l'immuabilité peut contribuer dans un sens à prévenir les erreurs et les bugs. Avant le déploiement d'un smart contract, il est soigneusement testé et audité pour s'assurer de son bon fonctionnement. Si des erreurs sont découvertes, une nouvelle version du contrat peut être déployée avec les corrections, mais la version originale du contrat reste immuable.
Cependant, cette immuabilité présente pour certains des inconvénients en termes de mise à jour. Par exemple, lorsque des vulnérabilités sont découvertes dans un smart contract, il est difficile de réagir rapidement pour les corriger. De même, les projets souhaitant ajouter de nouvelles fonctionnalités peuvent rencontrer des obstacles en raison de cette immuabilité.
Ce débat suscite des opinions divergentes, certains soutenant que l'immuabilité des smart contracts est un avantage, tandis que d'autres considèrent son manque d'évolutivité comme un inconvénient.
👉 Si vous n'êtes pas encore familiarisé avec le concept de smart contract
Essayez dYdX maintenant : le DEX préféré des traders crypto !Depuis l'introduction de l'EIP-1014, les règles du jeu ont changé avec l'apparition d'un nouvel opcode (primitive permettant de programmer des opérations spécifiques) appelé CREATE2. Il offre aux développeurs un plus grand contrôle sur le déploiement de leurs smart contracts par rapport à l'opcode CREATE d'origine.
CREATE est utilisé lors du déploiement d'un nouveau smart contract. C’est notamment l’un des plus coûteux sur l'Ethereum Virtual Machine (EVM). En effet, l'opcode CREATE pose souvent problème aux développeurs, car il leur est difficile de prédire l'adresse de destination d'un smart contract lors de son déploiement.
En revanche, avec CREATE2, les développeurs peuvent anticiper et contrôler l'adresse spécifique d'un smart contract avant de le déployer sur la blockchain. Cette capacité à connaître l'adresse à l'avance, combinée à des astuces, permet aux développeurs de créer des metamorphic smart contracts.
Auparavant, le déploiement d'un smart contract était généralement considéré selon trois états : « non déployé », « déployé » ou « détruit ». Cependant, avec l'introduction de cette mise à jour, un quatrième état, « redéployé », est maintenant possible.
Pour déployer un metamorphic smart contract sur la blockchain Ethereum, il est nécessaire de suivre une architecture spécifique. Cela implique la mise en place de 2 autres smart contracts en plus du smart contract principal. Ces 2 smart contracts sont responsables du déploiement et du stockage du code destiné au metamorphic smart contract.
Anatomie d'un metamorphic smart contract
Même si l’utilisation des metamorphic smart contracts permet par exemple de corriger des bugs ou des failles, cette nouveauté ouvre la porte à des utilisations malveillantes. Des individus malintentionnés pourraient par exemple exploiter cette technique avec un smart contract de staking de cryptomonnaies pour escroquer les utilisateurs du protocole.
Malheureusement, selon certains experts, la majorité des utilisateurs d’Ethereum ne sont pas conscients de ce changement. En ignorant cette possibilité, vous pourriez être à des risques non anticipés. Il est donc essentiel de se familiariser avec les concepts et les mécanismes des metamorphic smart contracts pour mieux se prémunir contre les éventuelles manipulations.
Cryptoast Academy : 75% de réduction avant le Black Friday pour fêter le bullrunQuels sont les risques et comment s’en protéger ?
Les metamorphic smart contracts peuvent être utilisés de manière légitime pour déployer des mises à jour pour corriger des bugs, mais ils peuvent également être exploités dans des tentatives d'escroquerie visant à subtiliser vos cryptomonnaies.
Avant la mise à jour EIP-1014 de la blockchain Ethereum, le risque potentiel était principalement lié à la destruction du smart contract avant que votre transaction ne soit validée par le réseau.
Après la mise à jour, le risque potentiel est le détournement de tous les actifs pour lesquels vous avez approuvé le smart contract. Un développeur malveillant peut détruire un smart contract et le remplacer par un autre qui détournent toutes vos cryptomonnaies.
Un exemple récent d'attaque via cette méthode concerne le protocole Tornado Cash, où l'attaquant a réussi à obtenir 1,2 million de votes provenant du système de gouvernance de Tornado Cash, d'une valeur de plusieurs millions de dollars, en utilisant un smart contract de proposition de gouvernance malveillant. Il est parvenu à modifier le code du smart contract en utilisant des metamorphic smart contracts et l'instruction Self Destruct.
👉 En savoir plus sur le hack de Tornado Cash
Heureusement, il existe désormais des outils pour analyser différents paramètres d'un smart contract afin de déterminer s'il peut être malveillant ou non, comme celui créé par Michael Blau, qui travaille pour la célèbre société de capital-risque a16z. Cependant, comme l’indique son créateur :
« Il est important de noter que cet outil n'est pas infaillible. Il ne pourra pas détecter toutes les situations problématiques et il existe des cas où de faux positifs peuvent se produire. Malgré cela, l'outil fournit des informations précieuses. Il peut susciter des soupçons et constituer une raison suffisante pour examiner de plus près un smart contract avant de s'y engager ».
Cet outil analyse six indicateurs de métamorphisme dans un smart contract :
- A-t-il été déployé avec un code métamorphique ?
- Peut-il faire appel à l’instruction Self-Destruct ?
- Contient-il la fonction DELEGATECALLs ?
- A-t-il été déployé par un autre smart contract ?
- Est-ce que le déployeur du contrat contient CREATE2 ?
- Le code a-t-il changé ?
👉 Cet outil de prévention vous intéresse ?
Source graphique : a16z Crypto
Recevez un récapitulatif de l'actualité crypto chaque jour par mail 👌
Certains liens présents dans cet article peuvent être affiliés. Cela signifie que si vous achetez un produit ou que vous vous inscrivez sur un site depuis cet article, notre partenaire nous reverse une commission.
Les investissements dans les crypto-monnaies sont risqués. Il n’existe pas de rendement élevé garanti, un produit présentant un potentiel de rendement élevé implique un risque élevé. Cette prise de risque doit être en adéquation avec votre projet, votre horizon de placement et votre capacité à perdre une partie de cette épargne. N’investissez pas si vous n’êtes pas prêt à perdre tout ou partie de votre capital