Blockchain et technologie Guide 6 sur 6
Comment vérifier un smart contract avant d’interagir avec lui
Les vérifications pratiques qu’un non-développeur peut faire avant d’approuver une transaction — statut de vérification, fonctions privilégiées, portée de l’approbation et révocation.
En bref
Tu n’as pas besoin de lire du Solidity pour éviter la plupart des désastres liés aux contrats. Vérifie que le contrat est vérifié, cherche les fonctions privilégiées du propriétaire, comprends exactement ce qu’accorde une approbation, et révoque régulièrement les anciennes allocations.
Notions clés
- Un contrat non vérifié doit être considéré comme hostile
- Les fonctions du propriétaire comme mint, pause et blacklist sont des signaux d’alerte
- Une approbation de jeton n’est pas une connexion — elle peut être illimitée et permanente
- Révoque les anciennes approbations ; elles persistent indéfiniment
- « Audité » est un signal faible, pas une garantie
Tu n’as pas besoin de lire du code pour éviter la majorité des désastres liés aux contrats. La plupart des pertes viennent d’un petit nombre de conditions vérifiables.
1. Le contrat est-il vérifié ?
Un contrat vérifié a publié son code source, et un explorateur de blocs a confirmé qu’il se compile vers le bytecode déployé. Non vérifié signifie que personne, à part le déployeur, ne sait ce qu’il fait.
Considère un contrat non vérifié comme hostile. Il n’y a aucune raison légitime pour qu’un projet qui te demande de l’argent cache son code source. Cette seule vérification en élimine énormément.
2. Que peut faire le propriétaire ?
Même dans du code vérifié, un non-développeur peut chercher les fonctions qui comptent. Cherche :
mint— le propriétaire peut-il créer des jetons illimités ? Cela te dilue jusqu’à zéro à volonté.pause/blacklist— peuvent-ils t’empêcher de vendre, ou bloquer ton adresse spécifique ? Les jetons « honeypot » fonctionnent exactement ainsi : tu peux acheter, mais plus vendre ensuite.setFee/setTax— les frais de transfert peuvent-ils être modifiés après ton achat ? Des frais relevés à 99 % sont un piège.onlyOwner— combien de fonctions sont réservées à une seule adresse, et cette adresse est-elle une clé unique ou un multisig ?
De nombreux explorateurs affichent désormais cela automatiquement. Si le propriétaire peut créer, suspendre ou taxer à volonté, les règles du jeton sont ce qu’il décidera demain.
3. Comprends ce que tu approuves
C’est là que se produisent la plupart des vidages de wallet. Pour permettre à un contrat de déplacer tes jetons, tu accordes une allocation (allowance). Deux choses surprennent les gens :
- Les allocations sont fréquemment illimitées. De nombreuses interfaces approuvent par défaut le montant maximum possible, si bien que le contrat peut déplacer tous les jetons de ce type que tu détiens — maintenant et ceux que tu acquerras plus tard.
- Elles persistent indéfiniment. L’approbation reste active après ton opération, jusqu’à ce que tu la révoques. Un protocole compromis un an plus tard peut toujours agir sur une allocation que tu as accordée aujourd’hui.
Lis l’écran d’approbation. Ton wallet indique quel contrat et quel montant. S’il indique illimité et que tu fais un échange ponctuel, indique plutôt un montant précis.
4. Reconnaître une demande de signature malveillante
Toute signature n’est pas une transaction. Certaines demandes te demandent de signer un message qui accorde des permissions hors chaîne — une technique très utilisée sur les faux sites de mint et d’airdrop.
Signaux d’alerte : une demande de signature que tu n’as pas initiée ; une demande apparaissant immédiatement après avoir cliqué sur un lien reçu par message privé ou publicité ; une demande dont ton wallet ne peut pas décoder le contenu en quelque chose de lisible ; ou toute demande sur un site atteint depuis une source non sollicitée. En cas de doute, refuse. Une action légitime peut toujours être refaite.
5. Révoque les anciennes approbations
Fais-en une habitude. Utilise un outil de révocation réputé — atteint en tapant directement l’adresse, car de faux sites de révocation existent et sont exactement le genre de piège qui attrape les utilisateurs soucieux de leur sécurité — et supprime les allocations dont tu n’as plus besoin, en particulier les illimitées et celles accordées à des protocoles que tu n’utilises plus.
6. Traite « audité » avec prudence
Un audit est un examen ponctuel réalisé par des personnes faillibles, souvent sur une version qui a changé par la suite. De nombreux protocoles audités ont été exploités.
Questions utiles à se poser : qui l’a réalisé, le rapport est-il public, quels problèmes de gravité ont été trouvés, ont-ils été corrigés, et le contrat a-t-il été modifié depuis ? « Audité par » sans rapport en lien est du marketing.
7. Privilégie les contrats éprouvés par le temps
Le signal le plus fort disponible, c’est la survie. Un protocole qui détient une valeur importante depuis des années sans exploit a subi des attaques continues d’adversaires bien financés, et a tenu bon. C’est un test plus dur que n’importe quel audit.
Les nouveaux contrats n’ont, par définition, encore rien prouvé, quelle que soit la qualité apparente du code.
Une checklist avant le décollage
- Contrat vérifié sur un explorateur de blocs
- Aucune fonction de création illimitée, de pause, de liste noire ou de frais modifiables — ou propriété renoncée
- Portée de l’approbation comprise, et limitée dans la mesure du possible
- Demande de signature initiée par moi, sur un site auquel j’ai accédé directement
- Le protocole a un historique de fonctionnement significatif et une valeur en jeu
- J’utilise un wallet ne contenant que ce que je peux me permettre de perdre
À lire ensuite
Tu as terminé le parcours Gains et DeFi — et les quatre parcours. Le glossaire couvre tous les termes que tu veux revoir, et le centre d’apprentissage affiche ta progression.
Participer à la discussion
Une question, ou une erreur repérée ?
Les commentaires sont ouverts aux membres et modérés avant publication. Les questions et corrections sont toujours bienvenues ; la promotion et les prévisions de cours ne le sont pas.
S’inscrire Se connecter