Talvez um dos tópicos mais confusos para nossos estudantes é entender por que precisamos do Wrapped ETH (wETH) e como ele se diferencia do ETH. Uma das coisas que nós gostaríamos de esclarecer para os estudantes é como os tokens realmente funcionam. Padrões de Token, marketplaces e softwares de carteiras ofuscam o que realmente está acontecendo quando você interage com um token. Mesmo aplicativos como Revoke.Cash confundem usuários e eles ficam constantemente perguntando questões como “por que não podemos revogar todas essas aprovações de uma só vez?”. Espero poder responder algumas dessas perguntas e ainda mais neste artigo!

Imagem retirada do agora extinto weth.io ilustrando o processo de wrapping/unwrapping.
O Que É o Wrapped Ethereum (wETH)?
O Wrapped Ethereum é a versão ERC-20 compatível do ETH que utiliza um contrato com cinco funções básicas não modificáveis: Aprovar, Transferir, TransferirDe (TransferFrom), Depositar & Retirar. Todo token na rede Ethereum é apenas um contrato inteligente que pode ou não estar conforme a um conjunto de padrões. É importante notar que quando você interage com um token na sua carteira, você só pode fazer com ele o que o contrato desse token permitir. Portanto, sempre que você gasta, move ou dá permissões para um de seus tokens, esta permissão deve acontecer no próprio contrato. Por isso insistimos para sempre usar os Contatos da sua carteira para contratos de tokens na sua carteira, já que isso te alertará caso alguém esteja tentando interagir com o contrato de um token específico na sua carteira! Para mais informações sobre isso, cheque nosso artigo: Tudo Sobre Aprovações.
| Nome da Função | Descrição |
|---|---|
| Aprovar | Permite que contratos ou EOAs (carteiras normais) utilizem o wETH da sua carteira como se fosse propriedade do endereço aprovado. Isto é comumente utilizado por marketplaces para permitir ofertas, etc. |
| Transferir | Quando se está movendo tokens de uma carteira para outra, é recomendado chamar/utilizar a função de transferir. |
| TransferFrom | TransferFrom pode utilizar o método de Aprovação acima. Se uma carteira possui uma Aprovação para utilizar os tokens na sua carteira, o método TransferFrom é utilizado para facilitar a ação de Transferir. A diferença é explicada um pouco mais detalhadamente neste artigo. Você também pode utilizar este método ao transferir tokens e muitas vezes marketplaces irão pedir a utilização deste método, mesmo se tratando de transferências únicas. |
| Depositar | A função de depósito, deposita ETH no contrato do Wrapped Ethereum e minta(cunha) ao depositante a mesma quantidade em wETH. |
| Retirar | A função de retirada, retira wETH do contrato do Wrapped Ethereum e o retorna o ETH que estava no contrato. |
Envelopar ETH em wETH dá ao ETH a compatibilidade ERC-20, deixando assim o ETH interoperável com outros tokens ERC-20 na rede da Ethereum, também permitindo que eles possam ser trocados facilmente e tratado com os mesmo métodos em protocolos Defi como Uniswap, GMX ou Aave. O termo “wrapping” (envelopamento) não é realmente o termo correto, já que apenas se refere a troca do seu ETH por wETH (ou vice-versa) por meio do contrato para que haja um token que pode ser integrado entre plataformas DeFi e para a realização de ofertas on Marketplaces de NFT como a Opensea.

Imagem retirada do agora extinto weth.io ilustrando a troca sem atritos de tokens e do WETH nos Contratos Inteligentes.
Infelizmente não podemos fazer com o próprio ETH, já que ele foi criado antes mesmo do padrão ERC-20. Nós chamamos o ETH de “Prototoken da Rede Ethereum”. Houve uma proposta para transformar o ETH em compatível com o ERC-20 (o que deixaria o wETH desnecessário), mas com os desafios com a UI/UX das carteiras que temos hoje e a proliferação de golpes que drenam a carteira, é uma benção que isto ainda não aconteceu! Mais sobre isso em breve…
ERC-20s e Observado o Etherscan
Como mostrado acima, sempre que interagimos com um token nós estamos simplesmente interagindo com o contrato inteligente que o controla. Abra o etherscan e olhe para alguns dos métodos disponíveis nos seus tokens ERC-20 favoritos. Notou algo interessante ao observá-los?
- Apecoin: Note que neste contrato há alguns métodos que não estão presentes no contrato do wETH. Diversos tokens ERC-20 possuem um método chamado “IncreaseAllowance”(Incrementar Limite). Funcionalmente é a mesma coisa que o método Aprovar para contratos ERC-20 e já foi utilizado em diversos hacks & golpes em DeFi, incluindo o infame hack ao BadgerDAO que enganou nosso fundador em 2021. Mesmo após um ano do incidente, a Metamask ainda mostra o método Increase Allowance desta forma (Imagem abaixo), deixando complicado para usuários entenderem o que está acontecendo na transação. Nós falamos mais sobre isso no nosso artigo Tudo Sobre Aprovações.

-
USDC: Você notará que este contrato é o que nós chamamos de contrato “Proxy”. Nós falamos em mais detalhes sobre isso na nossa aula 102 e no nosso artigo Tudo Sobre Contratos de Proxy. Apenas saiba que este tipo de contrato pode ser “melhorado” e têm a lógica do contrato executado fora do contrato primário.
-
Dê uma olhada no Coingecko e clique em alguns nomes de moedas que você reconhece ou não. Você verá que no topo, abaixo das Informações, que caso seja um token ERC-20 terá um contrato com um link do etherscan no local! Dê uma olhada e explore!
Mas Por Que Não Podemos Apenas Usar o ETH?
Um desafio que gosto de propor aos nossos estudantes é “Caso você quisesse ir diretamente ao “Contrato da ETH” para manipular o ETH no Etherscan, onde você iria?” Este contrato obviamente não existe, pois tudo que o ETH consegue fazer foi construído diretamente no código da própria Ethereum. O ETH tem aplicações limitadas. Você pode Transferir, usar para pagar as taxas (gás) e adicionar como custo de um método (pense em Mint, por exemplo). Ademais, não há nada muito complicado que dê para utilizá-lo.

Esta imagem foi retirada do agora extinto weth.io demonstrando a Incompatibilidade do ERC-20 com o ETH
Se o Wrapped Ethereum (wETH) não existisse, então como funcionaria os marketplaces de NFT? Então, primeiramente você não poderia fazer ofertas em múltiplas plataformas com a mesma quantidade de ETH. Qualquer pessoa que já fez ofertas na Blur sabe do que estou falando! Nessa plataforma você deve depositar o ETH nela, o que efetivamente faz com que te “tranque” naquele ecossistema. O benefício do wETH é que podemos fazer ofertas em múltiplos marketplaces de NFT ao mesmo tempo e apenas ter o valor debitado da minha carteira apenas após a oferta ser aceita no determinado marketplace.
A grande sacada é que você não pode fazer Aprovações no ETH, então as ofertas não podem ser feitas da mesma forma. Você teria que trancar aquele dinheiro, que é exatamente o sistema que o Superrare e Foundation utilizam no seu mecanismo de ofertas/leilões.O benefício deste método para a plataforma é que eles sabem que as ofertas não podem ser invalidadas de última hora ao Revogar o acesso da plataforma ao seu wETH, eliminando a possibilidade de ofertas falsas. Mas para o usuário normal, poder fazer ofertas apenas fazendo uma assinatura off-chain é preferível para não precisar mandar ETH toda vez. Desta forma o dinheiro não fica trancado e uma vez que a aprovação é feita, não há mais taxas(gás) a se pagar!
Benefícios de Segurança de Possuir ETH <> wETH?
O wETH representa um enorme obstáculo de usabilidade e segurança para web3 e para a blockchain ethereum em geral. No começo da nossa aula 102 gratuita no Boring Security, nós sempre perguntamos: “Alguém pode me falar que &*$%! é wETH e por que precisamos disso?”. Nós recebemos várias respostas, desde “é porque marketplaces usam isso”, “pois é barato para usar” ou até “não sei cara, me diga você”.
Raramente um estudante acerta a resposta antes de nós explicarmos. Tenha em mente que esses estudantes são normalmente compradores e usuários experientes com NFT. Isto representa um grande desafio para o ecossistema.
Dito isso, saber como utilizar aprovações, assinaturas e várias carteiras de forma eficaz pode ajudá-lo a proteger seu wETH e outros tokens, como NFTs, apecoin, etc. Além disso, é importante notar que o ETH NÃO PODE ser retirada da sua carteira a não ser que você esteja a) brincando com configurações avançadas de carteira e assine um tipo de assinatura descontinuado, b) você perca sua frase secreta, ou c) você pague ETH como parte de uma taxa de uma transação (para um método como “Mint/Resgatar”[Golpe Comum]/Atualização de Segurança[Golpe Comum]”). Então como usamos wETH corretamente?
Então:
1) Apenas aprove uma pequena quantidade de wETH no marketplace que você está usando. Você pode editar a quantidade de wETH que pode ser utilizado no artigo mencionado. Permitir quantidades infinitas é uma prática ruim!
2) Guarde a maior parte dos seus fundos em ETH, já que não é possível utilizar Aprovações para retirá-lo da sua carteira e o ETH estará seguro enquanto a sua frase secreta estiver!
3) É bom checar Revoke.Cash e Approvals.xyz periodicamente não apenas para o wETH, mas para todos os seus tokens. Ambos serviços irão atualizar a quantidade aprovada remanescente (então se originalmente você aprovou 5 wETH na plataforma, gastou 3 wETH, irá aparecer 2 wETH aprovado), já o checador de aprovações de token do etherscan não faz isso.
- Entenda como as assinaturas funcionam. É possível assinar uma aprovação do seu wETH mesmo sem saber, se você não tomar cuidado com o que e onde assina as mensagens. Saiba mais sobre isso em nosso artigo Assinando com Segurança 101.

Quer Mais Informações Sobre wETH?
Este artigo publicado pelo Cointelegraph explica como adquirir e também como o wETH funciona.
Um artigo da Opensea que explica sobre wETH em profundidade com capturas de tela em como usar e adquirir o wETH no marketplace deles.
Possui alguma questão ou gostaria de aprender mais sobre segurança na web3 e estar a par das informações de segurança, golpes e táticas? Junte-se a nós no discord em https://discord.gg/boringsecurity .


