Je faisais le ménage dans un vieux portefeuille aujourd’hui, en révoquant une bonne quantité d’autorisations de jetons que j’avais oubliées jusqu’à l’existence. L’une d’elles concernait un DEX que j’ai utilisé exactement une fois, il y a plus d’un an, pour un seul échange. L’autorisation de dépense illimitée était toujours là, en place, pendant tout ce temps. Ce n’est pas quelque chose de rare : le portefeuille de tout le monde contient trois ou quatre de ces “fantômes”.
Donc, pendant que je cliquais sur revoke.cash par simple paranoïa légère, je me suis mis à réfléchir au caractère étonnamment binaire des permissions dans la plupart des DeFi. Soit vous autorisez un contrat, soit vous ne l’autorisez pas. Une fois que vous l’avez approuvé, ce n’est pas “approuvé pour cette action-là seulement”, c’est généralement approuvé pour à peu près tout, pour toujours, jusqu’à ce que vous pensiez à revenir en arrière pour l’annuler. Et la plupart des gens ne le font pas.
Et c’est là que ça a “cliqué” pour moi : les pertes qui ravagent les gens ne viennent presque jamais d’un exploit génial. Elles viennent plutôt d’une permission beaucoup trop large, restée en place tranquillement pendant des mois, jusqu’à ce que personne ne se souvienne plus de l’avoir accordée. L’erreur n’est pas spectaculaire. Elle est petite. C’est juste… laissée ouverte.

Par curiosité, je suis retourné voir ce que Newton Protocol construit, puisque j’avais vu $NEWT apparaître dans un fil de discussion à propos exactement de ce problème. La différence n’est pas que Newton ajoute davantage de “théâtre” sécuritaire par-dessus : c’est que les permissions ne sont pas un simple interrupteur oui/non ponctuel. Chaque transaction est vérifiée par rapport à une politique au moment où elle se produit — plafonds de dépenses, bénéficiaires approuvés, limites de mandat — au lieu de s’en remettre à une approbation générale que vous aviez accordée il y a six mois et que vous avez oubliée.
Ce que les gens supposent : une fois qu’on fait confiance à un contrat, cette confiance doit simplement… persister, et c’est à vous de penser à révoquer. Ce qui se passe réellement avec une configuration comme celle-ci : la “confiance” n’est pas une approbation permanente qui attend d’être exploitée, elle est réévaluée à chaque transaction. Donc même si quelque chose tourne mal en amont, il n’y a pas une immense porte ouverte : il y a un contrôle à chaque fois.
Mais voilà la partie qui me dérange un peu. Ce n’est vraiment protecteur que si chaque transaction pertinente passe bien par cette vérification de politique. Dès que vous interagissez avec quelque chose en dehors de ce périmètre — un contrat aléatoire, une ancienne approbation que vous aviez accordée avant même de toucher à Newton, un dApp totalement sans rapport — vous retombez dans l’ancien modèle binaire d’autorisations. Ça ne corrige pas rétroactivement votre bazar existant. J’ai presque tendance à l’oublier, honnêtement : j’ai envie que ce soit un correctif “tout-en-un”, mais ce n’est pas le cas.
Au début, je pensais que c’était surtout une histoire de meilleure expérience utilisateur pour les institutions, les gestionnaires de coffre-forts, ce genre de choses. Mais en réalité, plus j’y réfléchis, plus ça ressemble à une question de taille de la zone de dégâts potentiels. Une petite erreur — une approbation un peu trop négligente, une permission trop large — pouvait autrefois rester là tranquillement et finir par tout vous coûter dans ce portefeuille. Réduire la taille de ce qu’une permission unique peut réellement faire, c’est un peu toute la stratégie ici, bien plus qu’une quelconque fonctionnalité “sécurité” en titre.
Ce qui compte le plus pour les comptes qu’on ne consulte pas souvent. Les portefeuilles de trésorerie, les coffres en mode automatique, tout ce qui a un agent ou un bot attaché qui prend des décisions sans que quelqu’un le regarde tous les jours. Ce qui reste silencieux pendant des mois, c’est précisément ce qui se fait “décortiquer” quand ça finit par mal tourner.
Quoi qu’il en soit. Je continue de parcourir mes anciennes validations : j’ai en fait trouvé deux autres que je ne me rappelle même pas avoir accordées. C’est assez déstabilisant à quel point c’est “normal”. Je vais probablement surveiller la manière dont le modèle de politique de Newton tient la route une fois que d’autres portefeuilles plus anciens et plus “mêlés” commencent à l’utiliser, au lieu de portefeuilles tout neufs.
@NewtonProtocol #Newt