WEB3DEV

Fatima Lima
Fatima Lima

Posted on • Atualizado em

O Selo de Aprovação: Saiba o Que Você está Consentindo Com Permissões e Aprovações na MetaMask

Uma das características da Web3 é fornecer aos usuários controle total de privacidade e de como eles interagem com suas plataformas. Aprenda como gerenciar as aprovações e permissões na MetaMask.

por Joel Willmore 26 de janeiro, 2022

Mesmo que sua experiência de interação com blockchains como Ethereum seja limitada a enviar transações simples entre carteiras, você terá aprovado, autorizado ou assinado sua transação. Isso simplesmente significa que você está confirmando sua assinatura no blockchain.

Esse processo se aplica igualmente à interação com dapps na Web3: há muito para consentir, aprovar e permitir. Mas, o que está realmente na aprovação da MetaMask?

Para quebrar essa pergunta precisamos, primeiramente, cobrir alguns aspectos centrais da criptografia.

Chaves e criptografia: o que é a aprovação?

Toda sua atividade de criptografia tem por base criptografia de chave pública. Essencialmente, cada carteira possui uma combinação de ‘chave’ pública e privada gerada quando a carteira é criada. Imagine uma porta que requer que você destranque-a com um trinco e vire uma trava para entrar, com uma chave diferente para cada um. Apenas uma chave não vai te levar a lugar nenhum – você precisa de um par.

Apesar de ser uma simplificação exagerada, podemos enfrentar o desafio de uma porta hipotética e aplicar a mesma lógica para a sua carteira de criptomoedas. Suas chaves pública e privada são necessárias para realizar a transação. A chave privada, para você demonstrar que iniciou a transação e a chave pública para o destinatário verificar a origem. Eis como funciona:

  1. Você decide enviar tokens para um contrato.
  2. Já que você conhece o endereço da carteira do destinatário, você mantém sua chave pública – o primeiro é simplesmente uma versão com hash (criptografada) do último. A chave pública é usada para criptografar a transação.
  3. O destinatário, que possui a chave privada, recebe a transação. Como suas chaves estão juntas, somente a chave privada correspondente - que somente eles possuem - pode descriptografar a transação enviada pela chave pública deles.

Até agora, tudo bem: definimos como os pares de chaves pública e privada interagem para sustentar as transações da blockchain. Entretanto, para aplicar esse conhecimento para aprovações/assinaturas, invertemos os papéis das chaves: em vez disso, o remetente criptografa a mensagem com a sua chave privada. Como a chave pública do remetente pode ser facilmente descoberta pelos outros (endereço da carteira), as chaves podem ser combinadas para descriptografar a mensagem, verificando a identidade do remetente. Apenas um par de chaves correspondentes vai revelar os conteúdos da mensagem, significando que ninguém pode contestar a origem.

A impressão de um tipo de assinatura em cada transação garante a imutabilidade, com ninguém, além de você – o titular de sua chave privada – capaz de imitá-lo fraudulentamente.

Permissões Dapp

O primeiro dos dois principais tipos de aprovação que você vai encontrar é conectar sua carteira a uma dapp pela primeira vez – seja DeFi, um serviço como o Etherscan ou um mercado de NFT.

Isso envolve dar permissão ao dapp para recuperar o endereço de sua carteira e é um pré-requisito para interação com a plataforma. Isso também explica porque você vai vê-la como “uma permissão” ou “permissões”; palavras que descrevem exatamente o que você está fazendo. Em alguns casos os dapps solicitam que você dê permissão automaticamente; outros requerem que você clique em botões rotulados com “conectar” ou semelhante.

Dar sua permissão, em nosso caso, vai parecer assim:

Aprovação do Token

Seja você ou não um nativo em criptografia, experiente ou um iniciante, para interagir com qualquer contrato inteligente – do tipo que executa dapps (incluindo DeFi, jogos blockchain, compras NFT) – você precisa aprovar o acesso dele aos seus tokens.

Esse processo é amplamente chamado, um tanto obviamente, de aprovação de token. O que você está fazendo aqui é:

  1. Permitir que o contrato inteligente acesse seu saldo de token. Pense nisso como o ‘estágio do contrato inteligente’. A MetaMask claramente indicará nesse momento o quanto de acesso você está cedendo: alguns dapps podem especificar uma quantidade finita de tokens, enquanto que outros solicitar acesso ilimitado.
  2. Confirmar que você quer completar a transação em questão: ou seja, o ‘estágio blockchain’, onde você permite que o contrato inteligente envie a transação à rede em seu nome.

Digamos que você queira realizar uma troca no Uniswap, a maior exchange descentralizada (DEX) por volume de negociação. Quando você inicia uma troca de um par de tokens pela primeira vez, você será chamado para aprovar os contratos inteligentes para o par de token ERC-20 que você está negociando (apesar de não ser para o próprio ETH, que não precisa de aprovação). Enquanto isso ocorre na primeira vez que você negociar esse par, o próximo passo – ou seja, o passo dois acima – será solicitado toda hora e significa que os protocolos da Uniswap vão executar sua negociação mediante solicitação.

Esse processo ficará semelhante a:

  • Primeiramente, você será solicitado pela plataforma para aprovar o token. Clique no prompt e a MetaMask vai entrar em ação.

  • A MetaMask vai te mostrar o endereço do contrato do token, confirmando que ele está solicitando a capacidade de acessar e movimentar seus fundos. Para se assegurar de que você está dando permissão para o contrato correto, vale a pena cruzar o endereço do token com aquele listado no site do dapp – ele pode ser normalmente encontrado em sua central de ajuda, base de conhecimento ou documentos. Você ainda tem a opção de especificar até onde você deseja que essa permissão vá – para fazer isso, clique em ‘Editar Permissão’.

  • Essa opção te permite ver com precisão o quanto de acesso você está permitindo. Nesse caso, a Uniswap quer um acesso a uma quantidade praticamente ilimitada stETH (1.1659), mas, se necessário, podemos colocar um limite nessa permissão usando o campo ‘Custom Spend Limit’ (Limite Gasto Personalizado).

Com esse recurso, a MetaMask te mantém no controle das aprovações de tokens – você nunca precisa permitir cegamente que um dapp acesse mais do que você queira ou assumir riscos indesejáveis para experimentar uma nova plataforma.

Na própria solicitação de negociação é onde entra seu par de chaves: você assina a transação com a sua chave privada. Pense em assinar na linha pontilhada com uma caneta; ainda que seja criptografia de chave pública, o risco de fraude de identidade é desprezível. Em nosso exemplo, consentir significa que você autorizou o contrato inteligente da Uniswap a mover esse token para e da sua carteira em seu nome. Cada vez que você tenta e inicia uma troca, o contrato inteligente é capaz de verificar sua ‘mensagem’ – ou seja, a instrução para realizar a troca - e verificar que você, como a única pessoa com acesso a sua chave privada, foi o autor.

Image description

Como eu posso lidar com aprovações e permissões?

Uma das marcas da Web3 é permitir aos usuários o total controle da privacidade e como eles interagem com suas plataformas. O design de não-custódia do MetaMask reflete isso. Contudo, seus princípios se estendem para outras características; a capacidade de visualizar e lidar com uma dapp e aprovações de contratos inteligentes está entre elas.

Visualizando sites conectados na MetaMask

A MetaMask inclui uma característica original para revisar a quais sites sua carteira está conectada. É chamado ‘Sites conectados’ (como você provavelmente diz, nós não queremos complicar excessivamente). Igualmente simples é o método para removê-los.

Visualizando aprovações de token

A Etherscan recentemente implantou um verificador de aprovações de token que te permite visualizar e cancelar, bem… aprovações de token.

Uma lista de aprovações de token é exibida uma vez que você conecta a MetaMask e dá permissão à Etherscan para visualizar sua carteira – familiar? Então, você fica livre para verificar sua relevância vigente e revogá-la adequadamente. De forma útil, você também pode visualizar o ativo específico envolvido, quem você aprovou (por exemplo, qual dapp, referenciado pelo nome) e a quantidade de tokens aos quais você aprovou acesso.

Há, também, várias alternativas, incluindo approved.zone, Revoke, e o Token Allowance Checker (TAC).

Não seja aniquilado

A agência pessoal que vem com o gerenciamento de uma carteira sem custódia como a MetaMask é uma faca de dois gumes. Assim como manter sua frase secreta de recuperação em segurança é de sua responsabilidade e requer vigilância contra golpistas, você é o único que pode gerenciar as permissões do dapp e aprovações dos contratos inteligentes. Ligue isso à facilidade de criar um novo token ERC-20 – existem aproximadamente 485,000 tokens no momento em que esse artigo está sendo escrito – e os riscos se tornam altamente aparentes. Enquanto a maioria será feita com boa fé, qualquer um pode ser criado por um mau autor.

As aprovações de token são um vetor de ataque para golpes, relativamente comum – verifique em rekt.news para ter ideia da dimensão e esse artigo Finematics para uma ideia dos métodos. Como mencionado anteriormente, os dapps devem especificar quantos tokens eles desejam acessar. A MetaMask, por exemplo, vai assegurar que essa informação seja exibida na tela de aprovação antes da confirmação, te dando uma imagem clara e exata do que você está assinando.

As solicitações de acesso dos dapps podem variar de quantidades específicas e limitadas até serem completamente ilimitadas, em que o contrato inteligente pode extrair o quanto quiser da sua carteira. Fundamentalmente, o acesso ilimitado não é um problema ou bandeira vermelha por si só – muitas plataformas respeitáveis como as principais DEXs fazem isso para poupá-lo da dor de ter que reaprovar frequentemente o dapp no caso de você usar o dapp com regularidade. O problema surge com os dapps que solicitam acesso ilimitado para seu(s) token(s) com a intenção expressa de roubar.

Antes de aprovar o acesso de um contrato inteligente a qualquer quantidade de tokens, você deve fazer um check list mental para avaliar o risco. Você, muitas vezes, verá o acrônimo ‘DYOR’ mencionado online: fazendo sua própria pesquisa (doing your own research) antes de permitir acesso, é definitivamente um bom hábito a adotar. Por exemplo:

  • Quão bem conhecido é o projeto?
  • Quanto tempo ele existe?
  • Ele tem um canal de comunidade ativo no Discord, Telegram, ou Twitter?
  • Os desenvolvedores/proprietários do dapp são transparentes e acessíveis publicamente, por exemplo, no Twitter ou Discord?
  • Houve recentemente uma violação de segurança? Vale a pena procurar aqui.
  • Eles passaram por uma auditoria de contrato inteligente de terceiros?
  • Verifique o endereço do contrato no explorador de blocos. Alguns exploradores, como o Etherscan, possuem um mecanismo de relatório direcionado ao usuário em que endereços fraudulentos (contratos ou carteiras) são sinalizados. Mesmo se eles não são sinalizados, verifique atividades suspeitas, tais como grandes entradas ou saídas de dinheiro em curtos períodos de tempo.

Resumindo:

Em vez de apenas um sinal de token indicando consentimento, as aprovações de token são um aspecto comum e essencial da interação com a Web3. Alguns pontos chave:

  • Criptografia de chave pública é usada para autenticar suas permissões quando interagindo com os dapps.
  • As permissões do Dapp envolvem permitir aos dapps visualizar seu saldo da carteira.
  • As aprovações de token envolvem permitir a um contrato inteligente do dapp acessar e movimentar um determinado token na sua carteira.
  • Sempre pesquise as credenciais do dapp e certifique-se de que ele é confiável antes de aprovar seu contrato inteligente.

Esse artigo é uma tradução de Joel Willmore feita por Fátima Lima. Você pode encontrar o artigo original aqui.

Top comments (0)