Approbation infinie
Qu’est-ce que l’approbation infinie ?
L’approbation infinie est une pratique de programmation de contrats intelligents, souvent considérée comme problématique. Cette fonctionnalité de programmation permet à un contrat intelligent donné d'accéder (sur autorisation d'un utilisateur) à un nombre illimité de jetons dans le portefeuille de l'utilisateur au lieu du seul nombre réellement nécessaire.
Un exemple tristement célèbre de contrat intelligent programmé de cette manière est celui utilisé par la bourse décentralisée Bancor. Lorsqu'un utilisateur utilisait le système pour la première fois, il devait autoriser le contrat intelligent à retirer un nombre illimité de jetons de son portefeuille.
Les contrats intelligents de Bancor contenaient également une vulnérabilité qui aurait pu permettre à un pirate informatique de voler toutes les unités du jeton que l'utilisateur autorisait le contrat à gérer en exploitant cette vulnérabilité. Heureusement, les programmeurs de Bancor ont remarqué avant que des acteurs malveillants puissent voler les jetons et ont ensuite modifié leurs systèmes pour ne demander l'approbation que pour le nombre de jetons nécessaire. Les développeurs ont « volé » de manière préventive les fonds des utilisateurs pour les restituer plus tard afin d’éviter un piratage.
Après la controverse autour de Bancor, il est apparu que l’approbation infinie est une pratique très populaire parmi les programmeurs d’applications décentralisées. Une recherche menée par un chercheur du portefeuille crypto ZenGo a révélé que les applications décentralisées populaires comportent des approbations infinies ou extrêmement importantes.