Passer au contenu principal

La déconnexion d’une DApp révoque-t-elle les autorisations existantes ?

U
Écrit par UKey Wallet

Confidentialité, Autorisations et sécurité de signature

Cet article utilise les réseaux EVM et le standard ERC-20 Autorisations comme exemples. La déconnexion d'un DApp met uniquement fin à la connexion locale entre le site Web et le portefeuille. L'interface wallet qui gère cette connexion porte le nom technique: Provider. La déconnexion ne modifie pas le montant des dépenses approuvées enregistré sur le chaîne de blocs (Allowance). La révocation de l'autorisation nécessite une transaction. Le montant approuvé est réduit ou remis à zéro uniquement une fois la transaction réussie sur le bon réseau. D'autres jetons cryptographiques, NFT et systèmes d'autorisation peuvent suivre des règles différentes.

1. Quelle est la différence entre déconnecter un site Web et révoquer une autorisation ?

Comparaison

Déconnexion du site Web

Révocation de l'autorisation ERC-20

Quels changements

La connexion locale enregistrée par le portefeuille

Le montant des dépenses approuvées enregistrées par le contrat jeton (Allowance)

Nécessite une transaction chaîne de blocs

Non

Oui

Encourt généralement des frais de réseau

Non

Oui. Le compte soumettant la transaction de révocation paie les frais dans l'actif natif du réseau.

Peut modifier le montant approuvé (Allowance)

Non

Oui. Une transaction réussie peut le réduire ou le remettre à zéro.

Portée

La connexion actuelle entre le portefeuille et le site Web

Seuls le réseau, le compte, jeton et la partie approuvée sélectionnés (Spender)

Après la déconnexion, le site Web ne peut normalement pas envoyer de requêtes au portefeuille via la connexion précédente. Cependant, il peut toujours interroger une adresse publique qu'il connaît déjà et demander à se reconnecter. Pour une comparaison complète de quatre actions courantes sur le portefeuille, voir Quelle est la différence entre connecter un portefeuille, signer des messages, signer des transactions et autoriser l’utilisation de jetons ?.

2. Où est stockée une autorisation ERC-20 ?

Un enregistrement d'autorisation ERC-20 standard est identifié par cinq valeurs : le propriétaire de l'actif (Owner), le contrat jeton (Token), la partie agréée (Spender), le montant des dépenses approuvées (Allowance), et le réseau. Après une transaction qui exécute la fonction approbation (approve) réussit, le nouveau montant approuvé est inscrit dans le contrat jeton sur le chaîne de blocs. Il n'est pas stocké dans le navigateur cache ou le client portefeuille.

Si le montant approuvé, le solde jeton du propriétaire de l'actif et les règles du contrat jeton le permettent, la partie approuvée peut utiliser une fonction contractuelle, par exemple transferFrom, pour transférer des jetons cryptographiques. Celui qui soumet cette opération contractuelle doit envoyer une transaction et payer les frais de réseau. Le propriétaire de l'actif n'a normalement pas besoin de fournir une autre signature pour cela. transferFrom opération. La fermeture du site Web, la suppression de l'enregistrement de connexion, le changement de téléphone ou la réinstallation du portefeuille ne modifient pas le montant approuvé sur le chaîne de blocs.

Remarque sur la portée : Une autorisation pour un NFT, une autorisation pour tous les NFT (setApprovalForAll), Permit2 et les réseaux non-EVM peuvent utiliser différents modèles d'autorisation et méthodes de révocation. Ne présumez pas que chaque autorisation peut être révoquée en définissant un montant approuvé ERC-20 sur zéro.

3. Autorisations expire-t-il automatiquement ? Que signifie un délai d'expiration Permit ?

  • Montant standard approuvé ERC-20 (Allowance): Il n'y a normalement pas de délai d'expiration par défaut. Il reste jusqu'à ce qu'il soit dépensé, remplacé par un nouveau montant, ou réduit ou remis à zéro par une transaction. Un contrat jeton particulier peut se comporter différemment.

  • Autorisation limitée : Une limite plafonne le nombre de jetons cryptographiques pouvant être utilisés ; il ne fixe pas de délai d'expiration.

  • Expiration de la signature (deadline): Dans des mécanismes tels que ERC-2612, ce champ limite normalement le moment où un message d'autorisation signé peut être soumis. Création du message signé (Permit) ne modifie pas immédiatement le montant approuvé sur le chaîne de blocs. Le message signé doit être soumis avec succès. A ce moment-là, sa valeur de séquence (nonce), délai d'expiration (deadline), et les autres conditions de validation doivent toujours être valables. Ce n'est qu'à ce moment-là que l'autorisation peut prendre effet. Une fois l'autorisation entrée en vigueur, son montant approuvé ne disparaît pas simplement parce que le message d'origine a expiré.

Autorisations de longue durée ou illimité peut augmenter l'exposition continue. Voir Qu'est-ce que Unlimited Approval ?.

4. Que dois-je vérifier lors de la révocation d'une autorisation ?

  1. Confirmez le réseau et le compte : La révocation d'une autorisation sur un réseau ne modifie pas Autorisations sur un autre réseau.

  2. Confirmez le jeton et la partie approuvée (Spender): Ne vous fiez pas uniquement aux noms ou aux icônes. Vérifiez l'adresse du contrat et la partie approuvée.

  3. Choisissez l'action de révocation correcte : Pour une autorisation ERC-20 standard, réduisez le montant approuvé ou définissez-le sur zéro, selon le cas. Suivez la norme contractuelle pertinente et les instructions officielles pour les autres types d'autorisation.

  4. Préparez les frais de réseau : La révocation d'une autorisation ERC-20 nécessite normalement une transaction chaîne de blocs. Le compte demandeur a besoin de l'actif natif du réseau pour payer les frais.

  5. Attendez une exécution réussie, puis vérifiez à nouveau : La signature ou la diffusion de la transaction ne signifie pas que la révocation prend effet. Recherchez le montant approuvé sur le chaîne de blocs (Allowance) à nouveau seulement après que la transaction a été incluse dans un bloc et exécutée avec succès.

Certains périphériques matériels ne peuvent pas décoder entièrement chaque paramètre de contrat ou de révocation. Vérifiez le réseau, le type de transaction, le contrat et les champs lisibles réellement affichés sur l'appareil. Si des informations essentielles sont manquantes, diffèrent de ce que vous attendez ou ne peuvent être signées qu'en aveugle, arrêtez et vérifiez à nouveau la demande. Voir Que dois-je vérifier avant de confirmer une transaction sur un portefeuille matériel ?.

5. Questions fréquemment posées

La fermeture du navigateur ou la désinstallation du portefeuille supprime-t-elle une autorisation chaîne de blocs existante ?
Non. Ces actions ne modifient pas l'état du contrat sur le chaîne de blocs.

Mon compte ne détient actuellement pas cette crypto jeton. Dois-je quand même réviser une ancienne autorisation ?
Réfléchissez à la manière dont le compte pourra être utilisé ultérieurement. Si le même crypto jeton est à nouveau envoyé à l'adresse, un montant approuvé valide peut toujours permettre à la partie approuvée d'origine d'utiliser transferFrom pour le transférer.

Une révocation couvre-t-elle tous les réseaux ?
Non. Les Autorisations sont normalement enregistrés séparément pour chaque réseau, compte, contrat jeton et partie approuvée. Vérifiez chacun individuellement.

Pourquoi une autorisation apparaît-elle toujours après que je l'ai révoquée ?
Confirmez que la transaction de révocation a été exécutée avec succès, que vous consultez le réseau et le compte corrects et si l'autorisation affichée est un montant approuvé par ERC-20, une autorisation d'opérateur pour les NFT (NFT Operator), ou un autre type d'autorisation.

Principe clé : Déconnectez les connexions locales qui ne sont plus utilisées. Si une autorisation chaîne de blocs n'est plus nécessaire, vérifiez d'abord le réseau, le compte, le contrat jeton et la partie approuvée. Supprimez ensuite cette autorisation conformément à la norme d'autorisation pertinente.

Avez-vous trouvé la réponse à votre question ?