Aller au contenu
Boring Security
Profil
Signatures et approbations

Pourquoi avons-nous besoin de WETH?

Un des sujets les plus perturbants pour nos élèves est probablement, pourquoi avons-nous besoin de Wrapped ETH (wETH) et comment se différencie-t-il de l’ETH. L’une des premières choses que nous aimons éclaircir est comment les tokens fonctionnent réellement. Les standards des tokens, les marketplaces et les portefeuilles logiciels cachent ce qui se passe réellement quand vous interagissez avec un token. Meme des applications comme Revoke.cash rendent les gens confus et ces même personnes posent constamment des questions comme “pourquoi ne peut-on pas révoquer toutes les approbations en une fois ?” J'espère répondre à certaines de ces questions, et bien d'autres, dans cet article.

WETH_04.gif

Image tirée de l'ancien site weth.io illustrant le processus de wrapping/unwrapping (emballage/déballage).

Qu’est que le Wrapped Ethereum (wETH)?

Le Wrapped Ethereum (l’ETH enveloppé) est la version ERC-20 compatible de l’ETH qui utilise un contrat disposant de 5 fonctions de base et ne pouvant pas être mis à niveau: Approve, Transfer, TransferFrom, Deposit & Withdraw. Chaque token sur le réseau Etherum est simplement un smart contract (contrat autonome) pouvant ou pas se conformer à certaines normes. C’est important de noter que quand vous interagissez avec un token dans votre portefeuille, vous ne pouvez faire avec celui-ci que ce que le contrat permet de faire. Par conséquent, que vous dépensiez, déplaciez ou donniez des permissions sur un de vos tokens, il vous faut interagir avec le contrat lui-même. C’est pour cela que nous insistons pour que les gens utilisent des signets dans leur portefeuille pour les contrats de token, permettant ainsi d’être alerté lorsque vous essayez d'interagir avec un contrat et qu’il ne correspond pas à votre signet! Pour plus d’information sur cela, n’hésitez pas à lire notre article: Tout sur les approbations !

Nom des fonctionsDescription
ApprovePermet aux adresses de contrat ou à d'autres adresses EOA d'utiliser le wETH dans votre portefeuille comme s'il appartenait à l'adresse approuvée. Ceci est couramment utilisé par les marketplaces pour permettre aux utilisateurs d'enchérir, etc…
TransferLorsque vous transférez des tokens de votre propre portefeuille vers un autre, appeler la fonction Transfer est l'action recommandée.
TransferFromTransferFrom peut utiliser la méthode d'approbation Approve mentionnée ci-dessus. Si un portefeuille à une approbation pour utiliser des tokens dans votre portefeuille, la méthode TransferFrom est appelée pour faciliter le transfert. La différence est expliquée plus en détail dans cet article. Vous pouvez également utiliser cette méthode lors d’un transfert de tokens, et souvent les marketplaces vous demanderont d'utiliser cette méthode, même lorsque vous ne faites pas un transfert de plusieurs tokens en une fois.
Deposit La fonction Deposit dépose des ETH dans le contrat de Wrapped Ethereum et crée une quantité équivalente de wETH pour celui à l’origine de l’action.
WithdrawLa fonction Withdraw retire des wETH du contrat Wrapped Ethereum et renvoie les ETH qui se trouvaient dans le contrat.

Envelopper de l'ETH en wETH donne à l'ETH la compatibilité ERC-20, ce qui rend l'ETH interopérable avec d'autres tokens ERC-20 sur le réseau Ethereum et permet de les échanger de manière transparente, et d’être traités avec les mêmes méthodes dans des protocoles DeFi populaires comme Uniswap, GMX ou Aave. Le terme "envelopper" est un peu trompeur, car il s'agit simplement d'échanger votre ETH contre du wETH (ou vice versa) via ce contrat pour obtenir un token pouvant être utilisé plus facilement sur les plateformes DeFi, et pour faire des enchères ou des offres sur les marketplaces NFT telles qu'Opensea.
 

WETH_03.gif

Image tirée de l'ancien site weth.io illustrant l'échange sans friction de tokens et de WETH dans les smart contracts.

Malheureusement, nous ne pouvons pas faire cela avec l'ETH lui-même, car il existait avant la création de la norme ERC-20. Nous appelons l'ETH  « le token prototype du réseau Ethereum ». Il y a eu une proposition pour rendre l'ETH compatible ERC-20 (ce qui rendrait le wETH inutile), mais avec les défis d'interface et d’expérience utilisateur des portefeuilles que nous avons aujourd'hui, ainsi que la prolifération des arnaques visant à siphonner les portefeuilles, nous sommes heureux que cela ne se soit pas encore produit ! Nous en parlerons plus en détail plus tard…

Les tokens ERC-20 et un aperçu d’Etherscan

Comme nous l'avons mentionné plus haut, chaque fois que nous interagissons avec un token, nous interagissons simplement avec le smart contract qui le contrôle. Ouvrez Etherscan et examinez certaines des méthodes disponibles sur quelques-uns de vos tokens ERC-20 préférés. Remarquez-vous quelque chose d'intéressant ?

  1. Apecoin: Remarquez que celui-ci a quelques méthodes que le contrat wETH n'a pas. Beaucoup de tokens ERC-20 ont une méthode appelée « Increase Allowance ». Cette méthode est identique dans son fonctionnement à la méthode Approve des contrats ERC-20 et a été à l'origine de nombreux hacks et arnaques dans la DeFi, y compris l'infâme piratage de BadgerDAO qui a dupé notre fondateur en 2021. Même plus d'un an après, Metamask continuait de faire apparaître la méthode « Increase Allowance » de cette manière (capture d'écran ci-dessous), ce qui rend difficile pour les utilisateurs de comprendre ce qui se passe. Nous en parlons davantage dans notre article Tout sur les approbations !

increaseallowance2.png

  1. USDC: Vous remarquerez que ce contrat est ce que nous appelons un contrat « Proxy ». Nous abordons cela plus en détail dans notre cours 102 et dans notre article intitulé « Tout sur les contrats Proxy », alors n'hésitez pas à les consulter. Notez simplement que ce sont des contrats qui peuvent être « mis à niveau » et dont la logique peut être exécutée en dehors du contrat principal.

  2. Consultez Coingecko et cliquez sur certains noms de crypto-monnaies que vous connaissez ou non. Vous verrez en haut, sous l'onglet Info, que s'il s'agit d'un token ERC-20, il y aura un contrat avec un lien Etherscan à cet endroit ! N’hésitez pas à explorer pour en découvrir davantage !

Mais pourquoi ne peut-on pas juste utiliser l’ETH?

Un défi que j'aime donner à nos étudiants est : « Si vous vouliez aller directement au "Contrat ETH" pour manipuler l'ETH sur Etherscan, où iriez-vous ? » Ce contrat, bien sûr, n'existe pas, et tout ce que l'ETH peut faire est intégré au code source d'Ethereum lui-même. L'ETH est limité dans ce qu'il peut faire. Vous pouvez le transférer, l'utiliser pour payer les frais de transaction, et l'ajouter comme coût pour une méthode (pensez à l’action de Mint, par exemple). Au-delà de cela, vous ne pouvez pas faire des choses trop compliquées avec l’ETH. 
 

WETH_02.gif

Cette infographie a été tirée de l'ancien site weth.io, démontrant l'incompatibilité ERC-20 de l'ETH.

Si nous n'avions pas le Wrapped Ethereum (wETH), comment les marketplaces NFT fonctionneraient-elles ? Eh bien vous ne pourriez pas avoir des enchères ouvertes sur plusieurs plateformes avec le même montant d'ETH. Quiconque a déjà fait des offres sur Blur sait exactement de quoi je parle ! Sur cette plateforme, vous devez déposer de l'ETH, ce qui vous « bloque » dans cet écosystème. L'avantage du wETH est que je peux faire des offres sur plusieurs marketplaces NFT en même temps, et l'argent n'est débité de mon portefeuille qu'une fois qu'une offre est acceptée sur la plateforme en question.

L’idée clé est que vous ne pouvez pas utiliser la méthode Approve sur l'ETH, donc il ne serait pas possible de faire chacune de ces offres en même temps. Vous devriez bloquer cet argent, ce qui est effectivement le système que Superrare et Foundation utilisent pour leur mécanisme d'enchères. L'avantage de cette méthode pour la plateforme est qu'elle sait que vos offres ne peuvent pas être invalidées à la dernière minute en révoquant l'accès de votre wETH à celle-ci, éliminant ainsi la possibilité de fausses enchères. Mais pour l'utilisateur lambda, pouvoir faire des enchères simplement en signant hors chaîne(off-chain) est bien plus avantageux d'un point de vue économique que d'envoyer de l'ETH à chaque fois. Pas d'argent bloqué, et une fois l'approbation faite, plus besoin de payer de frais de transaction!

Quels avantages en matière de sécurité d’avoir de l’ETH ou du wETH ?

Le fait d'avoir du wETH représente un énorme obstacle à l'utilisation et à la sécurité pour le web3 et pour la blockchain Ethereum en général. Chez Boring Security, au début de nos cours 102, qui sont gratuits, nous posons toujours la question suivante : « Quelqu'un peut-il me dire ce qu'est le wETH et pourquoi nous en avons besoin ? ». Nous recevons une multitude de réponses allant de « parce que les marketplaces l'utilisent » à « c'est moins cher à utiliser » en passant par « je ne sais pas, dis-le-moi ». Ce n’est que très rarement qu’un étudiant donne la bonne réponse avant que nous ne l'expliquions. Gardez à l'esprit que ces étudiants sont généralement des utilisateurs et acheteurs de NFT relativement expérimentés. Cela représente un énorme défi pour l'écosystème.

Cela ayant été dit, savoir comment utiliser efficacement les approbations, les signatures et plusieurs portefeuilles peut vous aider à protéger votre wETH et tout autres tokens tels que les NFT, Apecoin, etc… De plus, il est important de noter que l'ETH ne PEUT PAS être retiré de votre portefeuille, sauf si vous a) manipulez les paramètres avancés de votre portefeuille et signez un type de signature obsolète, b) perdez votre phrase de récupération, ou c) payez de l'ETH dans le cadre de frais de transaction (pour une méthode comme « Mint/Redeem [arnaque courante] / Security Update [arnaque courante] »). Alors, comment utiliser correctement le wETH ? Eh bien :

1) 1) N'approuvez qu'un petit montant de wETH lorsque vous utilisez un marketplace. Vous pouvez modifier le montant de wETH que vous pouvez utiliser (voir l'article lié). Faire des approbations illimitées est une mauvaise pratique!

2) Gardez la majeure partie de vos fonds en ETH, car ils ne peuvent pas être retirés de votre portefeuille avec des approbations et votre ETH est en sécurité tant que votre phrase de récupération l’est aussi!

3) Revoke.Cash et Approvals.xyz sont de bons outils à vérifier périodiquement, non seulement pour vos wETH, mais aussi pour tous vos tokens. Les deux services mettront à jour vos montants approuvés restants (donc, si vous avez initialement approuvé 5 wETH sur une plateforme et dépensé 3 wETH, il affichera 2 wETH approuvés), alors que le vérificateur d'approbation de tokens d'Etherscan ne le fait pas.

  1. Comprenez comment fonctionnent les signatures. Il est possible de signer du wETH sans même le savoir si vous ne faites pas attention à ce que vous signez et où vous signez des messages. Apprenez-en plus à ce sujet dans notre article Signature Sécurisée 101.

image.png

Vous voulez plus d'infos sur le wETH ?

Cet article de Cointelegraph explique comment en obtenir, et son fonctionnement.

Un article d'Opensea qui explique le wETH avec des captures d'écran détaillées sur comment l'utiliser et en obtenir sur leur marketplace.

Avez-vous des questions ou souhaitez-vous en savoir plus sur la sécurité Web3 et rester à jour sur les informations de sécurité les plus récentes, les escroqueries et les tactiques ? Rejoignez-nous sur notre serveur Discord à l'adresse https://discord.gg/boringsecurity .

Articles