Uma troca pode ser concluída enquanto a permissão por trás dela permanece ativa. As aprovações de tokens permitem que um endereço especificado gaste tokens da sua carteira, dentro da autoridade que você concede. Fechar o aplicativo não necessariamente remove essa autoridade.
Este guia se concentra em tokens ERC-20 na Ethereum e em outras redes EVM. Outros padrões de tokens e blockchains usam sistemas de permissão diferentes. A tarefa prática é entender o gastador, o valor e o escopo antes de aprovar e, depois, remover as permissões que você não precisa mais.
Uma permissão é um limite de gastos associado a um gastador
No fluxo de trabalho comum de ERC-20, approve define uma permissão, allowance informa o valor restante e transferFrom permite que o gastador autorizado mova tokens de acordo com as regras do contrato do token. A transação de aprovação geralmente estabelece a permissão; a ação posterior do aplicativo a utiliza.
Identifique quatro coisas: a rede, o contrato do token, o endereço do proprietário e o endereço do gastador. O nome de um site não é a permissão em si. O gastador pode ser um contrato de aplicativo ou outro endereço, e o código dele determina como essa autoridade pode ser usada.
Considere uma carteira hipotética que contém 200 tokens. Você aprova um gastador para 100 tokens. O saldo continua sendo 200 até que os tokens sejam realmente movimentados. Se o gastador transferir 40 tokens sob uma permissão finita padrão, seu saldo passa a ser 160 e a permissão restante passa a ser 60. Esses são números separados.
O gastador pode usar a permissão restante sem outra solicitação de aprovação, sujeito às regras aplicáveis do contrato. Uma nova aprovação normalmente substitui a permissão existente pelo valor especificado por você; ela não adiciona automaticamente esse valor ao limite antigo.
Aprovações ilimitadas podem alcançar depósitos futuros
Um aplicativo pode solicitar uma permissão muito grande para que você não precise fazer uma nova aprovação a cada transação. Isso pode reduzir etapas repetidas e custos de aprovação, mas deixa um valor maior exposto à autoridade do gastador.
Algumas implementações comuns tratam o valor inteiro máximo da permissão como ilimitado e não o reduzem quando os tokens são gastos. Não presuma que todo uso consuma gradualmente uma permissão ilimitada.
Uma permissão também pode permanecer quando o saldo do seu token chega a zero. Se você receber mais do mesmo token posteriormente nesse endereço e na mesma rede, a permissão existente poderá voltar a ser útil. Uma visualização de carteira vazia não comprova que as permissões antigas desapareceram.
Escolher um limite menor reduz o valor disponível por meio dessa permissão. Isso não comprova que o aplicativo é confiável nem que a transação proposta é adequada.
Revogue a permissão que você realmente concedeu
Revise as permissões quando parar de usar um aplicativo, não conseguir identificar um gastador, descobrir um limite desnecessariamente alto ou tomar conhecimento de um incidente de segurança relevante. O objetivo é remover uma rota desnecessária para os gastos.
- Verifique a conta e a rede. Uma permissão em uma rede é separada de uma permissão em outra.
- Identifique o token e o gastador. Use uma tela confiável de permissões da carteira ou o explorador de blocos apropriado. Apenas um rótulo conhecido não verifica um endereço.
- Leia a alteração proposta. Para uma permissão ERC-20 padrão, a revogação geralmente envia uma transação on-chain definindo como zero a permissão desse gastador. Confirme o token, o gastador e o novo valor.
- Verifique a confirmação. A revogação on-chain custa gás da rede, mesmo que um serviço patrocine esse custo. Verifique se a transação foi concluída e se a permissão relevante agora reflete a alteração pretendida.
Uma revogação pendente ainda não alterou o estado da rede. Um gastador pode agir antes da confirmação. Uma revogação concluída limita o uso futuro dessa permissão; ela não recupera tokens que já foram transferidos.
Desconectar um site altera a conexão da carteira com esse site. As aprovações on-chain existentes exigem uma alteração separada. Se chaves privadas ou frases de recuperação tiverem vazado, as permissões são apenas parte do incidente: a revogação não remove a capacidade de outra pessoa assinar usando essas chaves.
Se você usa uma carteira pessoal junto com a KTX, mantenha as permissões da carteira separadas da segurança da conta na plataforma. O guia da KTX sobre carteiras custodiais e não custodiais explica quem controla a autorização e a recuperação de transações. Consulte o guia da KTX para backup da frase-semente para proteger o material de recuperação e nunca forneça frases de recuperação a um site que ofereça revogar permissões.
Permissões assinadas exigem uma segunda verificação
Uma carteira pode solicitar uma assinatura em vez de uma transação de aprovação imediata. Uma assinatura ainda pode criar uma autoridade significativa. As permissões ERC-2612, por exemplo, permitem que outra parte envie sua autorização assinada para estabelecer uma permissão.
O prazo da permissão limita quando essa assinatura pode ser enviada. Ele não atribui automaticamente uma data de expiração à permissão ERC-20 comum resultante. Definir uma permissão como zero também não necessariamente invalida uma assinatura de permissão antiga e não utilizada; as regras de nonce e validade dela exigem atenção separada.
O Permit2 introduz outra camada: a aprovação do token para o contrato Permit2, seguida pelas permissões para aplicativos específicos. Suas permissões baseadas em allowance e suas transferências por assinatura de uso único têm regras diferentes para valores, expiração e nonces.
Revise cada camada aplicável e cada autorização assinada pendente. Um verificador que lê as permissões on-chain atuais pode não revelar todas as assinaturas que foram assinadas, mas ainda não foram enviadas. Uma tela de permissões tranquilizadora não consegue considerar uma permissão que ainda não pode visualizar.
Perguntas frequentes
Preciso de uma aprovação ERC-20 para enviar ETH nativo?
Uma transferência normal de ETH nativo não usa uma permissão ERC-20. O ETH encapsulado é um token e pode usar esse mecanismo. As permissões no nível da conta são uma questão separada.
Uma aprovação ilimitada cobre todos os ativos da minha carteira?
Uma aprovação ERC-20 convencional diz respeito a um token e a um gastador específicos. Ela não cobre automaticamente todos os tokens ou NFTs. Uma única solicitação de assinatura, no entanto, pode conter várias permissões; portanto, revise todo o escopo.
Por que uma carteira pode me pedir para definir uma permissão como zero antes de alterá-la?
Algumas implementações de tokens exigem isso, e substituir uma permissão diferente de zero pode criar riscos de ordenação de transações. Siga o fluxo de trabalho compatível; uma redefinição não pode desfazer gastos que já ocorreram.
Uma carteira de hardware impede uma aprovação prejudicial?
Ela ajuda a proteger as chaves de assinatura. Ainda é possível autorizar uma permissão perigosa com essas chaves. Revise os detalhes da transação e o gastador em vez de confiar apenas no dispositivo.
As aprovações de NFT funcionam como as permissões de tokens?
O ERC-721 permite a aprovação de um NFT individual e a aprovação de um operador para todo o contrato desse NFT. Essas aprovações são diferentes de uma permissão de quantidade ERC-20. Verifique o padrão e o escopo antes de revogar.
Este artigo oferece informações gerais, não aconselhamento personalizado de segurança ou investimento. As implementações de tokens e as interfaces das carteiras variam. Nunca divulgue chaves privadas ou frases de recuperação.