Définition
Upgradeability risks : définition
Les upgradeability risks désignent les dangers liés à la possibilité de modifier le code d'un smart contract après son déploiement : pouvoir concentré entre quelques clés, failles introduites par une mise à jour ou règles modifiées au détriment des utilisateurs.
Thème : Sécurité et arnaques
Un smart contract est en principe immuable. Pour pouvoir corriger des bugs ou ajouter des fonctions, de nombreux protocoles utilisent un schéma de proxy : les utilisateurs interagissent avec un contrat fixe qui délègue l'exécution à un contrat de logique remplaçable. Celui qui contrôle le droit de mise à jour peut donc changer entièrement le comportement du protocole, y compris la manière dont sont gérés les fonds déposés.
Le premier risque est donc la confiance : si une seule clé ou un petit multisig détient ce pouvoir, son vol ou un détenteur malveillant suffit à détourner le protocole. Le second est technique : une mise à jour mal conçue peut corrompre le stockage du contrat ou introduire une faille. Les bonnes pratiques incluent un timelock qui laisse le temps de réagir, une gouvernance transparente, des audits de chaque nouvelle version et, parfois, la renonciation définitive au droit de mise à jour.
Un exemple concret
Imaginons un protocole de prêt dont le contrat est mis à jour par un multisig de trois personnes, sans délai. Si deux de ces clés sont compromises, l'attaquant peut déployer une nouvelle version qui transfère tous les dépôts vers son adresse, et les utilisateurs n'ont aucun moyen de retirer leurs fonds à temps.
Les risques à connaître
Les dangers concrets sont le vol par une clé d'administration compromise, la modification unilatérale des règles, les erreurs de stockage lors d'une mise à jour et les fonctions d'initialisation laissées accessibles. À l'inverse, un contrat totalement figé ne peut plus être corrigé en cas de faille.
Questions fréquentes sur Upgradeability risks
Comment savoir si un smart contract est modifiable ?
Les explorateurs de blocs signalent souvent les contrats proxy et indiquent l'adresse de la logique. La documentation et les audits précisent qui détient le droit de mise à jour.
Un contrat modifiable est-il forcément dangereux ?
Non, la possibilité de corriger des bugs est utile. Le risque dépend de qui contrôle la mise à jour, de l'existence d'un délai de préavis et de la transparence du processus.