WATS Wallet logoWATS Wallet
Técnico7 min de leitura

Bundlers e UserOperations: Como Funcionam as Transações ERC-4337

Um passo a passo claro e tecnicamente preciso do fluxo ERC-4337 — UserOperations, o mempool alternativo, bundlers, o contrato EntryPoint e paymasters — e como tudo se encaixa.

Uma rápida recapitulação do ERC-4337

O ERC-4337 é o padrão do Ethereum para abstração de conta — uma forma de dar a contas de contrato inteligente a mesma capacidade de primeira classe de iniciar e pagar por ações que as contas controladas externamente (EOAs) sempre tiveram, sem qualquer mudança no protocolo base. Em vez de modificar a camada de consenso, o ERC-4337 introduz um sistema paralelo de objetos de mais alto nível e infraestrutura off-chain que, no fim, se liquida por meio de transações Ethereum comuns. Se você quiser primeiro a versão do zero, nosso explicativo sobre o que é abstração de conta aborda a motivação, e o que é o ERC-4337 mapeia o padrão completo. Este post aprofunda a mecânica: os objetos que percorrem o sistema e os atores que os processam. Note que o ERC-4337 é um padrão da EVM — ele se aplica ao Ethereum e a cadeias compatíveis com EVM, não a cadeias não-EVM como Solana ou TON.

O que uma UserOperation realmente é

O objeto central no ERC-4337 é a UserOperation. Superficialmente parece uma transação, mas é melhor entendida como uma declaração de intenção assinada: "aqui está o que minha conta quer que seja feito, e aqui estão os parâmetros para validá-lo e pagá-lo." Uma UserOperation carrega campos como a conta remetente, um nonce, o calldata a executar, limites de gas, parâmetros de taxa, um campo opcional paymasterAndData e uma assinatura.

A diferença fundamental em relação a uma transação normal está em quem e o que a assina. Uma transação Ethereum convencional deve ser assinada pela chave privada de uma EOA usando um esquema ECDSA fixo, e essa mesma conta paga o gas. Uma UserOperation é validada pela própria lógica de contrato inteligente da conta remetente — que pode implementar qualquer esquema de assinatura, regra de múltiplas chaves ou política de autorização que a conta definir — e ela não precisa pagar por si mesma em gas nativo. Essa flexibilidade é o ponto principal: a conta, não o protocolo, decide como é uma ação válida.

O mempool alternativo onde elas vivem

As UserOperations não entram no mempool normal de transações do Ethereum, porque ainda não são transações. Em vez disso, elas são transmitidas para um mempool alternativo separado (frequentemente chamado de alt-mempool) — uma rede ponto a ponto dedicada aos objetos ERC-4337. Carteiras e dApps submetem UserOperations aqui, e a infraestrutura que as consome escuta nessa rede em vez de no mempool da camada base. Essa separação mantém o tráfego de abstração de conta fora do caminho crítico para o consenso até o momento em que é empacotado em uma transação real.

O papel do bundler

Um bundler é o ator off-chain que transforma intenções em realidade on-chain. Seu trabalho tem quatro partes. Primeiro, ele coleta UserOperations do mempool alternativo. Segundo, ele simula e valida cada uma — executando a lógica de validação da conta em um contexto simulado para confirmar que a assinatura é válida, o nonce está correto e a conta (ou seu paymaster) pode cobrir o custo — ao mesmo tempo em que aplica regras que impedem operações de consumir recursos que não podem pagar. Terceiro, ele empacota uma ou mais UserOperations válidas em uma única transação Ethereum comum. Quarto, ele submete essa transação à rede a partir de sua própria EOA, pagando o gas da camada base antecipadamente e esperando ser reembolsado on-chain.

Como o bundler adianta o gas e ganha taxas pela inclusão, ele se comporta muito como um construtor de blocos especializado para o tráfego de abstração de conta. Sua etapa de simulação e validação é o que o protege: ele não empacota uma operação que deixaria de reembolsá-lo.

O contrato EntryPoint

Tudo converge para um único contrato inteligente canônico chamado EntryPoint. A transação do bundler é uma chamada ao EntryPoint com um array de UserOperations. O EntryPoint então executa um estrito laço de duas fases. Na fase de validação, para cada operação ele chama a função de validação da conta remetente (e a do paymaster, se um for especificado) para reverificar on-chain a assinatura, o nonce e o arranjo de pagamento. Somente após todas as operações do lote terem sido validadas é que ele passa para a fase de execução, na qual despacha o calldata de cada operação para sua conta a fim de realmente realizar a transferência, o swap ou outra ação.

Essa divisão importa: validação e execução são separadas para que as garantias de pagamento de um lote sejam estabelecidas antes de qualquer trabalho que altere o estado, e para que o EntryPoint possa contabilizar o gas com precisão em muitas operações de uma vez.

Onde o paymaster se encaixa

Um paymaster é um contrato opcional que concorda em pagar por uma UserOperation em nome da conta. Quando uma UserOperation inclui dados de paymaster, o EntryPoint pergunta a esse paymaster, durante a fase de validação, se ele patrocinará a operação e em quais termos. O paymaster pode aceitar incondicionalmente (patrocínio gasless de verdade), ou pode aceitar em troca de valor — mais utilmente, cobrando do usuário em um token ERC-20 em vez de gas nativo. Para uma análise mais aprofundada desse componente, veja o que é um paymaster. O paymaster é o gancho no fluxo que desacopla "com o que o usuário paga" de "em que a rede é paga".

Como o gas e as falhas são tratados

O gas no ERC-4337 é em camadas. O bundler paga ETH real pela transação externa; o EntryPoint mede o gas de validação e execução de cada UserOperation em relação aos limites que ela declarou; e quem estiver responsável — a conta ou seu paymaster — deve ter feito stake ou depositado o suficiente para cobrir a conta, que o EntryPoint liquida ao final. As falhas são contidas pelo design de validação primeiro. Se uma operação falha durante a validação on-chain, ela é simplesmente excluída e não pode ser efetivada, e a simulação off-chain do bundler tem por objetivo detectar isso antes da submissão. Se uma operação passa na validação mas sua execução reverte, os efeitos da execução são desfeitos enquanto o gas já gasto ainda é contabilizado e pago — de modo que um bundler não fica sem compensação por trabalho honesto. É por isso que os bundlers simulam com tanto cuidado: sua proteção contra griefing é recusar-se a incluir qualquer coisa que não os reembolse.

Como a WATS usa isso

Em cadeias EVM, a WATS depende de exatamente uma peça desse fluxo: um paymaster ERC-4337. Quando você faz uma transferência, swap ou stake na WATS Hot Wallet, o paymaster é o que permite que sua taxa seja cobrada em ATS em vez do gas nativo da cadeia — você nunca precisa manter ETH, BNB ou qualquer outro token de gas para transacionar. Como o ATS é um OFT da LayerZero, um único saldo de ATS cobre as taxas em EVM, Solana e TON (em cadeias não-EVM um fee-payer equivalente cumpre o papel do paymaster), e o ATS coletado é queimado de 100.000.000 em direção a um piso de 30.000.000. A WATS permanece totalmente não custodial — você guarda suas próprias chaves — e é a primeira e única carteira a combinar taxas ERC-4337 + OFT em token único, cobradas em vez do gas nativo, com essa queima. Veja como o modelo de taxa ATS funciona para o panorama completo.

Perguntas frequentes

Qual é a diferença entre uma UserOperation e uma transação Ethereum normal?

Uma transação normal é assinada por uma conta controlada externamente usando ECDSA fixo e paga seu próprio gas no token nativo da cadeia. Uma UserOperation é um objeto de intenção de mais alto nível validado pela própria lógica de contrato inteligente da conta remetente, que pode usar regras personalizadas, e ela não precisa pagar por si mesma em gas nativo — um paymaster pode cobrir a taxa. As UserOperations também trafegam por um mempool alternativo separado, em vez do mempool padrão de transações.

O que um bundler ERC-4337 realmente faz?

Um bundler coleta UserOperations do mempool alternativo, simula e valida cada uma para confirmar assinaturas, nonces e que o pagamento pode ser coberto, depois empacota as válidas em uma única transação Ethereum comum que chama o contrato EntryPoint. Ele submete essa transação a partir de sua própria conta, adiantando o gas da camada base e esperando ser reembolsado on-chain. A simulação cuidadosa é o que protege o bundler de incluir operações que não o reembolsariam.

O ERC-4337 me permite pagar taxas de gas em um token diferente de ETH?

Sim, quando um paymaster é usado. Um paymaster é um contrato opcional que pode patrocinar uma UserOperation e, em vez de cobrar gas nativo, aceitar pagamento em um token ERC-20, liquidando a taxa de rede real separadamente. É assim que uma carteira pode deixar você transacionar sem manter o token de gas nativo da cadeia. O ERC-4337 e seus paymasters são exclusivos da EVM; cadeias não-EVM como Solana e TON alcançam um resultado semelhante com um fee-payer ou relayer equivalente.