EIP-2612: Como o ERC-20 Permite Aprovações Sem Gás

Principais Resultados
• O EIP-2612 permite aprovações sem gás através de assinaturas fora da cadeia.
• A implementação do EIP-2612 melhora a experiência do usuário em dApps e protocolos DeFi.
• A segurança deve ser uma prioridade ao usar assinaturas, com atenção a parâmetros como spender e prazo.
• O Permit2 oferece uma solução para tokens que não suportam o EIP-2612, padronizando aprovações.
As taxas de gás são a maior fonte de atrito em DeFi. Antes de poder trocar, emprestar ou fazer staking de um token ERC-20, você geralmente precisa enviar uma transação de "aprovar" – e pagar gás – apenas para permitir que a dApp mova seus tokens. O EIP-2612 muda isso. Ele introduz "permit", um fluxo de aprovação baseado em assinatura que move a aprovação para fora da cadeia e permite que um contrato inteligente ou relayer patrocine o gás na cadeia. O resultado é uma experiência de usuário mais suave, menos transações e aprovações mais seguras quando implementadas corretamente.
Este artigo explica como o EIP-2612 funciona, por que ele é importante em 2025 e o que usuários e desenvolvedores devem observar.
O Que o EIP-2612 Realmente É
O EIP-2612 estende o padrão de token ERC-20 com uma nova função: permit. Em vez de chamar approve(spender, amount) na cadeia, os usuários assinam uma mensagem tipada fora da cadeia que inclui os parâmetros de aprovação e um prazo. Um contrato inteligente então envia permit na cadeia usando essa assinatura, definindo a permissão sem que o usuário pague gás.
- Noções básicas do ERC-20: aprovações e transferências seguem o padrão definido na especificação ERC-20.
- Especificação EIP-2612: o formato da assinatura, nonces e a função
permitsão formalizados na proposta EIP-2612. - Dados tipados: as assinaturas usam dados estruturados de acordo com o EIP-712, o que torna o que você está assinando legível por humanos e vinculado ao domínio.
Em resumo, o EIP-2612 permite "aprovações sem gás" porque o usuário apenas assina fora da cadeia; uma dApp, relayer ou contrato paga para retransmitir o permit na cadeia.
Por Que é Importante em 2025
- Menos cliques, menos transações: Uma assinatura pode definir a aprovação e executar imediatamente uma ação (troca, depósito, staking) em uma única chamada na cadeia.
- Experiência de usuário focada em L2: Com as L2 prosperando, muitos protocolos patrocinam o gás para integrar usuários. As aprovações EIP-2612 se encaixam perfeitamente nesses padrões. Veja a visão geral da Ethereum sobre gás e modelos de conta para entender a dinâmica de custos.
- Abstração de conta e paymasters: Fluxos de carteira impulsionados pelo ERC-4337 facilitam para os serviços patrocinarem o gás ou aceitarem taxas em tokens. O EIP-2612 complementa essas melhorias na experiência do usuário: você aprova via assinatura, e sua transação pode ser patrocinada.
- Mudanças de protocolo com visão de futuro: Discussões sobre autorização nativa de carteira como EIP-3074 e EIP-7702 destacam uma tendência mais ampla em direção a operações impulsionadas por assinatura. Mesmo com a evolução dessas, o EIP-2612 permanece uma ferramenta prática e amplamente implantada para aprovações hoje.
Como Funcionam as Aprovações Sem Gás (Passo a Passo)
- Você inicia uma ação (por exemplo, trocar um token) em uma dApp.
- A dApp prepara uma mensagem tipada EIP-712 com os campos: owner, spender, value, nonce, deadline e o separador de domínio do token (nome, versão, chainId, endereço do contrato).
- Você assina a mensagem com sua carteira, aprovando parâmetros exatos.
- A dApp ou relayer envia
permit(owner, spender, value, deadline, v, r, s)na cadeia e, na mesma transação, chama a ação da dApp que usa a permissão. - O contrato do token verifica a assinatura, o nonce e o prazo, e então define a permissão.
A ideia chave: você não paga gás pela aprovação. Você apenas assina.
Permit Nativo vs. Permit2
Nem todos os tokens implementam o EIP-2612. Para resolver interfaces fragmentadas e melhorar a segurança, o Uniswap introduziu o Permit2 – um sistema de aprovação generalizado que padroniza aprovações de assinatura e gerenciamento de permissões entre tokens.
- Visão geral do Permit2 e implementação de referência: Uniswap Permit2
Quando um token suporta permit nativo, as dApps podem usá-lo diretamente. Quando não suporta, o Permit2 fornece uma interface consistente enquanto restringe as permissões ao contrato Permit2, muitas vezes melhorando o controle e a experiência de revogação.
Considerações de Segurança Que Você Deve Se Importar
Sem gás não significa sem risco. Assinaturas são poderosas; trate-as como transações.
- Verifique o spender: Sempre verifique qual contrato receberá a permissão. Os dados tipados EIP-712 devem mostrar claramente o endereço do spender. Aprenda como os dados tipados funcionam no EIP-712.
- Limite a quantidade e defina um prazo razoável: Evite aprovações ilimitadas, a menos que você confie profundamente no protocolo. Prazos reduzem a janela de ataque.
- Verifique chainId e domínio: As assinaturas são válidas apenas na rede e no contrato de token pretendidos através do separador de domínio. Cuidado com tentativas de replay cross-chain ou phishing.
- Gerencie nonces: O EIP-2612 usa nonces para evitar replays. Confie em implementações de token respeitáveis, idealmente auditadas e que usam bibliotecas bem testadas como o ERC20Permit da OpenZeppelin.
- Revogue permissões: Revise e revogue regularmente aprovações não utilizadas na interface da sua carteira ou através do contrato do token.
- Confiança em meta-transações: Se um relayer enviar seu
permit, certifique-se de confiar no backend da dApp. Para padrões de meta-transações, veja o EIP-2771 (Trusted Forwarder).
Boas implementações ajudam a mitigar problemas, mas a vigilância do usuário é essencial. Para práticas recomendadas gerais, a documentação da OpenZeppelin é um ótimo ponto de partida: OpenZeppelin Contracts.
Notas Para Desenvolvedores: Implementando e Usando Permit
- Use uma implementação testada em batalha:
ERC20Permitedraft-EIP712da OpenZeppelin reduzem erros e se alinham com a especificação. Referência: ERC20Permit. - Empacote a execução: Projete sua dApp para aceitar uma assinatura
permite executar a ação na mesma transação para uma experiência de usuário de um clique. - Suporte a ambos os fluxos: Prefira
permitnativo quando disponível; use Permit2 como alternativa se o token não o possuir. Referência: Uniswap Permit2. - Gerencie prazos e nonces de forma robusta: Rejeite assinaturas expiradas e confirme o nonce esperado antes de enviar para a cadeia.
- Considere o patrocínio: Combine EIP-2612 com paymasters ERC-4337 para criar fluxos verdadeiramente contínuos e patrocinados. Referência: ERC-4337.
Perguntas Comuns
-
Isso é "grátis"? O usuário não paga gás pela aprovação; outra pessoa paga. A dApp ainda pode cobrar taxas através da lógica do seu contrato inteligente.
-
E se um token não suportar EIP-2612? Use Permit2, ou recorra a um fluxo
approvepadrão com prompts de UX claros. -
O permit funciona entre cadeias? Não. As assinaturas são escopadas via EIP-712 a um domínio (contrato de token + chainId). Você deve assinar para a rede específica.
-
Carteiras de hardware são compatíveis? Qualquer carteira que suporte dados tipados EIP-712 pode renderizar mensagens permit. Boas carteiras mostram claramente o spender, a quantidade e o prazo.
Considerações Finais
O EIP-2612 é uma daquelas melhorias pequenas, mas cruciais, que fazem a DeFi parecer instantânea. Ao transformar aprovações em assinaturas, ele remove um obstáculo comum na experiência do usuário e se alinha naturalmente com fluxos modernos em L2s e abstração de conta.
Se você depende de fluxos baseados em permit, escolha uma carteira que renderize mensagens EIP-712 de forma transparente e mantenha as chaves offline. As carteiras de hardware OneKey focam em pré-visualizações EIP-712 claras no dispositivo (spender, quantidade, prazo, cadeia), firmware de código aberto e amplo suporte a EVM/L2 – úteis quando você deseja a conveniência de aprovações sem gás sem comprometer a segurança da assinatura.






