Permissões de tokens podem continuar válidas depois que você desconecta uma carteira de um site. A conexão com a aplicação e a autorização registrada no contrato do token são mecanismos diferentes. Encerrar a primeira não altera automaticamente a segunda.
Em tokens ERC-20, uma aprovação pode permitir que um endereço específico movimente uma quantidade definida dos seus tokens. Para entender o risco, é necessário identificar a rede, o token, o endereço autorizado e o limite. O nome ou o logotipo mostrado na interface não substitui essa conferência.
Neste artigo
Conectar, assinar e aprovar são ações diferentes
| Ação | O que precisa ser identificado |
|---|---|
| Conectar a carteira a uma aplicação | Qual conta é apresentada e quais interações o site pode solicitar |
| Assinar uma mensagem | Qual conteúdo e qual finalidade a assinatura autoriza |
| Aprovar gasto de um token | Qual contrato, qual endereço autorizado e qual quantidade |
| Revogar ou reduzir uma aprovação | Qual autorização será alterada na rede correspondente |
Uma tela de assinatura não deve ser considerada inofensiva só porque não mostra uma transferência imediata. O efeito depende da mensagem e do padrão utilizado. Também não é correto supor que qualquer aprovação autorize retirar todos os tipos de ativo da conta: o alcance precisa ser lido no mecanismo concreto.
A MetaMask distingue a desconexão da aplicação da revogação de allowances. Desconectar interrompe a relação mantida pela carteira com aquele site; a autorização no contrato pode continuar existindo.
Como funciona um limite de gasto ERC-20
O padrão ERC-20 descreve operações como approve, allowance e transferFrom. De forma simplificada, a primeira define o limite concedido a outro endereço; a segunda consulta quanto permanece autorizado; e a terceira permite movimentações dentro dessa autorização e das regras do contrato.
Considere um exemplo fictício, sem conexão a uma carteira ou envio de transações:
| Momento | Saldo do token | Limite ainda autorizado |
|---|---|---|
| Antes da aprovação | 300 unidades | 0 |
| Depois de aprovar 100 | 300 unidades | 100 |
| Depois de um gasto de 40 | 260 unidades | 60 |
| Depois de desconectar o site | 260 unidades | 60 |
| Depois de revogar o limite restante | 260 unidades | 0 |
A aprovação não transferiu antecipadamente as 100 unidades. O exemplo separa o saldo da conta e a capacidade de gasto concedida. Em uma implementação que siga esse comportamento, desconectar o site não remove as 60 unidades de autorização restantes.
Essa é uma demonstração aritmética do modelo. Tokens reais podem acrescentar comportamentos próprios, e autorizações muito amplas precisam ser avaliadas pelo contrato e pela ferramenta usados.
O que conferir numa aprovação existente
Comece pela rede. Uma conta pode ter atividades em diferentes blockchains, e cada rede mantém seus próprios estados. Depois identifique o endereço do contrato do token e o endereço autorizado, normalmente chamado de spender.
Confira o limite e a origem da autorização. O endereço autorizado pode ser um contrato de roteamento, um protocolo ou outro componente da aplicação. Não conclua que é confiável apenas porque a ferramenta mostra um nome conhecido. Verifique a referência pelos canais oficiais da aplicação e pelo explorador da rede.
Na consulta, diferencie saldo, aprovação e histórico de transferências. O histórico ajuda a entender o que aconteceu, mas não substitui a leitura do estado atual. Uma autorização antiga pode continuar disponível mesmo que o site não seja usado há meses.
Revogar exige confirmar a alteração
A orientação da Uniswap sobre revogação ressalta que o procedimento é diferente de desconectar uma aplicação e pode exigir pagamento de taxa de rede. A existência de uma solicitação na carteira não demonstra que a alteração já foi confirmada.
Depois de uma revogação, a conferência útil é verificar se a transação foi concluída na rede correta e se o limite consultado mudou para o valor esperado. Uma transação recusada, substituída ou ainda pendente não deve ser tratada como proteção já aplicada.
Revogar uma aprovação não recupera tokens que já foram transferidos. Se a própria chave da conta estiver comprometida, remover uma autorização específica também não elimina a capacidade de alguém criar novas operações usando essa chave. São problemas com alcances diferentes.
Assinaturas de permissão merecem uma revisão separada
Além de aprovações enviadas diretamente à rede, existem mecanismos que usam assinaturas de mensagens. O ERC-2612, por exemplo, permite atualizar uma autorização com uma assinatura que depois pode ser apresentada ao contrato. O padrão envolve elementos como prazo e nonce para controlar a validade da operação.
Isso impede uma conclusão comum: “não paguei taxa, então não autorizei nada”. Uma assinatura pode produzir um efeito posterior quando for submetida conforme as regras do contrato. Sua avaliação precisa considerar o padrão, a aplicação e a mensagem, não apenas a aparência do botão.
Também não é seguro supor que zerar uma allowance resolva qualquer assinatura ou delegação existente. Autorizações ERC-20, permissões assinadas, aprovações de NFTs e delegações de código podem ter estados e regras diferentes. Um inventário deve identificar o mecanismo antes de escolher a resposta.
Uma revisão que não depende de conectar a carteira a qualquer site
Organize primeiro a informação que já está disponível: contas utilizadas, redes, aplicações conhecidas e operações recentes. Consulte endereços por referências oficiais e evite links recebidos em mensagens que prometem uma “revogação urgente”.
Para uma alteração necessária, confira rede, contrato, endereço autorizado, valor e taxa antes de assinar. Depois confira o estado confirmado, preservando o identificador público da operação para acompanhamento. Nenhum desses passos exige entregar a frase-semente, a chave privada ou uma captura contendo seus segredos a uma ferramenta de consulta.