
L'une des caractéristiques de Web3 est d'offrir aux utilisateurs un contrôle total sur la confidentialité et la manière dont ils interagissent avec ses plateformes. Découvrez comment gérer les approbations et les autorisations dans MetaMask.
Même si votre expérience d’interaction avec des blockchains comme Ethereum se limite à l’envoi de simples transactions entre portefeuilles, vous aurez approuvé, autorisé ou signé votre transaction. Cela signifie simplement que vous confirmez sa soumission à la blockchain.
Ce même processus s'applique également à l'interaction avec les dapps dans Web3 : il y a de nombreuses choses à consentir, à approuver et à autoriser. Mais que contient réellement une approbation MetaMask ?
Pour répondre à cette question, nous devons d’abord aborder certains aspects fondamentaux de la cryptographie.
Clés et cryptographie : qu'est-ce que l'approbation ?
Toute votre activité de cryptographie est basée sur la cryptographie à clé publique. Essentiellement, chaque portefeuille possède une « clé » publique et privée correspondante générée lors de la création du portefeuille. Imaginez une porte qui nécessite de déverrouiller un pêne et de tourner un loquet pour entrer, avec une clé différente pour chacun. Posséder une seule clé ne vous mène nulle part – vous avez besoin de la paire.
Bien que ce soit une simplification excessive, nous pouvons relever le défi de cette porte hypothétique et appliquer une logique similaire à votre portefeuille crypto. Vos clés privée et publique sont toutes deux nécessaires à la transaction : la clé privée pour démontrer que vous avez initié la transaction et la clé publique pour que le destinataire puisse en vérifier l'origine. Voici comment cela fonctionne:
Vous décidez d'envoyer des tokens à un contact.
Comme vous connaissez l’adresse du portefeuille du destinataire, vous détenez sa clé publique – la première est simplement une version hachée (cryptée) de la seconde. La clé publique est utilisée pour chiffrer la transaction.
Le destinataire, détenteur de la clé privée, reçoit la transaction. Puisque leurs clés vont ensemble, seule la clé privée correspondante – qu’eux seuls détiennent – peut déchiffrer la transaction envoyée par leur clé publique.
Jusqu’ici tout va bien : nous avons établi comment les paires de clés privées et publiques interagissent pour soutenir les transactions blockchain. Cependant, pour appliquer ces connaissances aux approbations/signatures, nous inversons les rôles des clés : à la place, l'expéditeur crypte le message avec sa clé privée. Étant donné que d’autres peuvent facilement trouver la clé publique de l’expéditeur (l’adresse de leur portefeuille), les clés peuvent se combiner pour déchiffrer le message, vérifiant ainsi l’identité de l’expéditeur. Seule une paire de clés correspondantes révélera le contenu du message, ce qui signifie que personne ne pourra en contester l’origine.
Imposer une sorte de signature sur chaque transaction garantit l'immuabilité, personne d'autre que vous – le détenteur de votre clé privée – ne pouvant vous imiter frauduleusement.
Autorisations Dapp
Le premier des deux principaux types d’approbation que vous rencontrerez consiste à connecter votre portefeuille à une dapp pour la première fois – qu’il s’agisse de DeFi, d’un service tel qu’Etherscan ou d’un marché NFT.
Cela implique d'autoriser le dapp à récupérer l'adresse de votre portefeuille et constitue une condition préalable pour interagir avec la plateforme. Cela explique également pourquoi vous le verrez appelé « une autorisation » ou « autorisations » ; des noms qui décrivent exactement ce que vous faites. Dans certains cas, les dapps vous invitent à donner automatiquement votre autorisation ; d'autres vous demandent de cliquer sur des boutons intitulés « connecter » ou similaires.
Donner votre autorisation ressemblera, dans notre cas, à ceci :

Approbation du jeton
Que vous soyez ou non un natif expérimenté en cryptographie ou un débutant total, pour interagir avec n'importe quel contrat intelligent – du type qui exécute des dapps (y compris DeFi, les jeux blockchain, les achats NFT) – vous devez approuver son accès à vos jetons.
Ce processus est diversement appelé, sans surprise, sous le nom d’approbation symbolique. Ce que vous faites ici, c'est :
Autoriser le contrat intelligent à accéder à votre solde de jetons. Considérez cela comme la « étape du contrat intelligent ». MetaMask indiquera clairement à ce stade le niveau d'accès que vous cédez : certains dapps peuvent spécifier une quantité finie de jetons, tandis que d'autres demandent un accès illimité.
Confirmer que vous souhaitez finaliser la transaction en question : c'est-à-dire « l'étape blockchain », où vous autorisez le contrat intelligent à soumettre la transaction au réseau en votre nom.
Supposons que vous souhaitiez effectuer un échange de jetons sur Uniswap, la plus grande bourse décentralisée (DEX) en termes de volume de transactions. Lorsque vous lancez un échange sur une paire de jetons pour la première fois, il vous sera demandé d'approuver les contrats intelligents pour la paire de jetons ERC-20 que vous négociez (mais pas pour l'ETH lui-même, qui n'a pas besoin d'approbation). Bien que cela ne se produise que la première fois que vous tradez cette paire, l'étape suivante – c'est-à-dire la deuxième étape ci-dessus – sera requise à chaque fois, ce qui signifie que les protocoles d'Uniswap exécuteront votre transaction sur demande.
Ce processus ressemblera à celui ci-dessous :
Tout d’abord, la plateforme vous demandera d’approuver le jeton. Cliquez sur l'invite et MetaMask entrera en action.
MetaMask vous montrera l'adresse contractuelle du jeton, confirmant qu'il demande la possibilité d'accéder et de déplacer vos fonds. Pour vous assurer que vous autorisez le bon contrat, il vaut la peine de comparer l’adresse du jeton avec celle indiquée sur le site Web de la dapp – elle peut généralement être trouvée dans son centre d’aide, sa base de connaissances ou sa documentation. Vous avez même la possibilité de spécifier jusqu'où vous souhaitez que cette autorisation aille – pour ce faire, cliquez sur « Modifier l'autorisation ».
Cette option vous permet de voir précisément le niveau d’accès que vous autorisez. Dans ce cas, Uniswap souhaite accéder à une quantité pratiquement illimitée de stETH (1,1659), mais nous pouvons limiter cette autorisation si nécessaire, en utilisant le champ « Limite de dépenses personnalisée ».
Avec cette fonctionnalité, MetaMask vous permet de garder le contrôle de vos approbations de jetons : vous n'avez jamais besoin d'autoriser aveuglément une dapp à accéder à plus que vous ne le souhaitez, ni de prendre des risques indésirables pour le plaisir d'essayer une nouvelle plate-forme.
C'est dans la demande d'échange elle-même qu'intervient votre paire de clés : vous signez la transaction avec votre clé privée. Pensez à signer sur la ligne pointillée avec un stylo ; bien qu'avec la cryptographie à clé publique, le risque de fraude d'identité soit négligeable. Dans notre exemple, consentir signifie que vous avez autorisé un contrat intelligent Uniswap à déplacer ce jeton vers et depuis votre portefeuille en votre nom. Chaque fois que vous essayez de lancer un échange, le contrat intelligent est capable de vérifier votre « message » – c’est-à-dire l’instruction pour effectuer l’échange – et de vérifier que vous, en tant que seule personne ayant accès à votre clé privée, en êtes l’initiateur.
Comment puis-je gérer les approbations et les autorisations ?
L'une des caractéristiques de Web3 est d'offrir aux utilisateurs un contrôle total sur la confidentialité et la manière dont ils interagissent avec ses plateformes. La conception non privative de MetaMask reflète cela. Cependant, ses principes s'étendent à d'autres fonctionnalités ; la possibilité d’afficher et de gérer les approbations de dapp et de contrats intelligents en fait partie.
Affichage des sites connectés dans MetaMask
MetaMask inclut une fonctionnalité native permettant de vérifier à quels sites votre portefeuille est connecté. Cela s’appelle « Sites connectés » (comme vous pouvez probablement le constater, nous n’aimons pas trop compliquer). La méthode pour les supprimer est tout aussi simple.
Affichage des approbations de jetons
Etherscan a récemment implémenté un vérificateur d'approbations de jetons qui vous permet d'afficher et de révoquer, eh bien… les approbations de jetons.
Une liste des approbations de jetons s'affiche une fois que vous connectez MetaMask et autorisez Etherscan à consulter votre portefeuille – familier ? Vous êtes alors libre de vérifier leur pertinence et de les révoquer en conséquence. Utile, vous pouvez également afficher l'actif spécifique impliqué, qui vous avez approuvé (par exemple quelle dapp, référencée par son nom) et la quantité de jetons auxquels vous avez approuvé l'accès.

Il existe également plusieurs alternatives, notamment approved.zone, Revoke et Token Allowance Checker (TAC).
Ne soyez pas direct
L’agence personnelle associée à la gestion d’un portefeuille non dépositaire comme MetaMask est une arme à double tranchant. Tout comme la sécurité de votre phrase de récupération secrète relève de votre responsabilité personnelle et nécessite une vigilance contre les fraudeurs, vous êtes le seul à pouvoir gérer les autorisations dapp et les approbations de contrats intelligents. Ajoutez à cela la facilité avec laquelle il est de créer un nouveau jeton ERC-20 – il existe environ 485 000 jetons au moment de la rédaction – et les risques deviennent très évidents. Bien que la plupart soient réalisées de bonne foi, toutes pourraient être créées par un mauvais acteur.
Les approbations de jetons sont un vecteur d'attaque relativement courant pour les escroqueries – il suffit de consulter rekt.news pour avoir une idée de l'ampleur, et cet article de Finematics pour une idée des méthodes. Comme mentionné précédemment, les dapps doivent spécifier le nombre de jetons auxquels ils souhaitent accéder. MetaMask, par exemple, veillera à ce que ces informations soient affichées sur l'écran d'approbation avant de confirmer, vous donnant une image plus claire de ce à quoi vous vous inscrivez exactement.
Les demandes d'accès des dapps peuvent varier de quantités spécifiques et limitées jusqu'à être totalement non plafonnées, où le contrat intelligent peut tirer autant qu'il le souhaite de votre portefeuille. Fondamentalement, l'accès illimité n'est pas un problème ou un signal d'alarme en soi – de nombreuses plates-formes réputées telles que les principaux DEX le font afin de vous éviter d'avoir à réapprouver fréquemment si vous utilisez régulièrement la dapp. Le problème vient des dapps qui demandent un accès illimité à vos jetons avec l’intention expresse de voler.
Avant d’approuver l’accès d’un contrat intelligent à une quantité quelconque de jetons, vous devez parcourir une liste de contrôle mentale pour évaluer les risques. Vous verrez souvent l’acronyme « DYOR » mentionné en ligne : faire vos propres recherches avant d’autoriser l’accès est définitivement une bonne habitude à adopter. Par exemple:
Quelle est la notoriété du projet ?
Depuis combien de temps existe-t-il ?
Dispose-t-il d'une chaîne communautaire active sur Discord, Telegram ou Twitter ?
Les développeurs/propriétaires de la dapp sont-ils transparents et accessibles au public, par ex. sur Twitter ou Discord ?
A-t-il récemment subi une faille de sécurité ? Cela vaut la peine de chercher ici.
Ont-ils subi un audit de contrat intelligent par un tiers ?
Vérifiez l'adresse du contrat sur l'explorateur de blocs. Certains explorateurs, comme Etherscan, disposent d'un mécanisme de reporting piloté par l'utilisateur où les adresses frauduleuses (contrats ou portefeuilles) sont signalées. Même si elles ne sont pas signalées, recherchez les activités suspectes, telles que des entrées ou des sorties importantes d’argent sur de courtes périodes.
Résumer:
Plutôt qu'un simple geste symbolique indiquant le consentement, les approbations symboliques sont un aspect banal et essentiel de l'interaction avec Web3. Quelques points clés :
La cryptographie à clé publique est utilisée pour authentifier vos autorisations lorsque vous interagissez avec des dapps.
Les autorisations Dapp impliquent d'autoriser les dapps à consulter le solde de votre portefeuille.
Les approbations de jetons impliquent d'autoriser le contrat intelligent d'une dapp à accéder et à déplacer un jeton spécifique dans votre portefeuille.
Recherchez toujours les informations d’identification de la dapp et assurez-vous qu’elle est digne de confiance avant d’approuver son contrat intelligent.
