Ir para o conteúdo

Abstracao de contas

Entenda a abstracao de contas no Ethereum por meio de contas inteligentes ERC-4337, versoes do EntryPoint, UserOperations, bundlers, paymasters, canais de nonce, validacao, execucao, delegacao EIP-7702 e riscos de taxas e recuperacao.

Atualizado

Somente para fins educacionais; nao constitui recomendacao nem aconselhamento de investimento. Investir pode causar perdas.

Resposta direta

A abstracao de contas torna programaveis as regras de autorizacao e execucao de uma conta. No Ethereum, o ERC-4337 faz isso sem alterar o tipo de transacao do consenso: uma carteira envia uma UserOperation por infraestrutura RPC dedicada, um bundler inclui uma ou mais operacoes em uma transacao normal para um EntryPoint versionado, e a conta inteligente valida e executa sua propria operacao. Recuperacao, passkeys, chaves de sessao, limites de gasto, lotes e patrocinio de taxas sao recursos da conta ou do servico construidos sobre esse fluxo, nao garantias automaticas do ERC-4337.

Isso difere do ERC-1271, que padroniza como um contrato valida uma assinatura de mensagem, e do EIP-7702, que permite a uma conta de propriedade externa (EOA) delegar a execucao a codigo. Eles podem interoperar, mas nao compartilham uma unica interface, nonce, implantacao ou modelo de seguranca. A abstracao de contas nao elimina credenciais, custos de gas, risco contratual nem a necessidade de verificar a cadeia e a implementacao exatas.

Fluxo ERC-4337 em sete etapas

  1. Fixe o ambiente: chainId, implementacao e controles de upgrade da conta inteligente, factory, versao, endereco e hash do codigo implantado do EntryPoint, suporte do bundler e ativacao do EIP-7702 na cadeia. Um endereco valido para uma versao ou cadeia nao e uma constante universal.
  2. Monte a operacao compativel com a versao. Os campos logicos atuais incluem sender, nonce, factory, factoryData, callData, callGasLimit, verificationGasLimit, preVerificationGas, maxFeePerGas, maxPriorityFeePerGas, campos opcionais do paymaster e signature. O EntryPoint recebe uma representacao compactada on-chain; as chamadas de destino ficam no callData definido pela conta, nao em um campo universal de destino.
  3. Vincule a autorizacao ao dominio correto. O userOpHash cobre a operacao exceto a assinatura e a vincula ao EntryPoint e a cadeia. O validateUserOp verifica proprietario, multisig, passkey, sessao ou outra politica. isValidSignature do ERC-1271 e uma interface separada para assinaturas de contratos; um aggregator opcional valida assinaturas agregadas. A tupla EIP-7702 e fornecida separadamente da UserOperation.
  4. Demonstre capacidade de pagar. A conta pode prefinanciar pelo saldo no EntryPoint, ou um paymaster pode aceitar condicionalmente a obrigacao usando seu deposito. Ele pode patrocinar, cobrar token, aplicar listas ou cotas e executar postOp; o ERC-4337 nao fixa essas regras comerciais. Stake sustenta validacao e reputacao; deposito paga gas.
  5. Estime e envie via RPC ERC-7769. O bundler valida no recebimento, antes da selecao e na montagem do lote. O ERC-7562 restringe opcodes e acesso a armazenamento na validacao e permite controles de reputacao contra DoS. Essa simulacao verifica admissao e pagamento; prever a execucao economica exige simulacao separada da chamada completa.
  6. O bundler chama handleOps. O EntryPoint faz implantacao permitida, validacoes da conta e do paymaster, checagens de prefinanciamento e agregacao opcional antes da execucao. Validacao falha impede a operacao; uma chamada de destino ainda pode reverter apos admissao valida e consumir gas. A atomicidade ou o sucesso parcial de um lote interno depende do codigo da conta.
  7. Reconcilie recibos e estado. Confira recibo da UserOperation, transacao do lote, eventos do EntryPoint, implantacao, eventos do destino, gas real, cobranca em token, reembolso e saldos. Monitore canais de nonce, proprietarios, recuperacao, revogacao de sessoes, modulos, upgrades, alternativas de bundler/paymaster, reorganizacoes e migracao ou redelegacao EIP-7702.

Quatro exemplos resolvidos

  • Envelope simplificado de gas. Uma operacao reserva 120,000 de gas de execucao, 90,000 de validacao da conta, 45,000 de validacao do paymaster, 40,000 de prevalidacao e 30,000 de pos-operacao: 120,000 + 90,000 + 45,000 + 40,000 + 30,000 = 325,000 gas. Com maxFeePerGas = 30 gwei, o teto simplificado e 325,000 × 30 gwei = 0.009750 ETH. Se o uso cobravel real for 210,000 gas a 22 gwei, o custo sera 0.004620 ETH. Versao do EntryPoint, penalidades, dados da L1 e precificacao de rollup podem alterar valores; isto e um orcamento, nao formula universal de prefinanciamento.
  • Canal paralelo de nonce. Com uma 192-bit key e uma 64-bit sequence, chave 7 e sequencia 42 codificam nonce = (7 << 64) | 42 = 129127208515966861354 = 0x7000000000000002a. Apos inclusao, esse canal espera 43; repetir 42 falha. Outra chave pode ter sequencia independente, conforme a logica da conta e as regras do bundler.
  • Capacidade do paymaster. Um paymaster tem 0.50 ETH depositados e cada operacao exige garantia maxima de 0.03 ETH. Ele cobre floor(0.50 / 0.03) = 16 operacoes, reserva 0.48 ETH e deixa 0.02 ETH. A decima setima requer mais deposito ou garantia menor. O stake nao substitui o deposito de taxas.
  • Reversao apos admissao. Uma operacao reserva ate 0.0060 ETH; a validacao passa, mas o destino reverte apos consumir 180,000 gas × 25 gwei = 0.0045 ETH. O estado do destino reverte, mas conta ou paymaster ainda deve 0.0045 ETH; os 0.0015 ETH nao usados seguem as regras de liquidacao e penalidade. Simulacao aprovada nao promete sucesso economico, inclusao ou finalidade.

Riscos e controles

  • Cadeia, endereco, versao ou hash de codigo incorretos do EntryPoint podem invalidar ou desviar a operacao.
  • Assinatura sem dominio de cadeia e EntryPoint pode permitir replay.
  • Factory, endereco contrafactual, inicializacao ou salt podem ser substituidos ou calculados incorretamente.
  • Delegacao EIP-7702 pode apontar a EOA para codigo malicioso com ampla autoridade.
  • Inicializacao antecipada ou repetida pode tomar ou corromper a conta.
  • Upgrade de proxy ou redelegacao pode colidir com o layout de armazenamento.
  • Administrador de upgrade ou gestor de modulos comprometido pode substituir o comportamento.
  • Falhas de proprietario, multisig, passkey ou ERC-1271 podem autorizar roubo ou bloquear fundos.
  • Limiares, atrasos, guardioes e cancelamento de recuperacao podem falhar ou ser capturados.
  • Chaves de sessao podem exceder alvo, token, valor, duracao ou funcao previstos.
  • Canais de nonce podem colidir, ter lacunas, replay ou bloquear operacoes dependentes.
  • Falha do aggregator ou da agregacao pode imobilizar operacoes validas.
  • Bundlers podem censurar, ficar offline, aplicar politica local ou rejeitar mempools alternativos.
  • UserOperations publicas podem expor intencao a correlacao, front-running e MEV.
  • Mudancas de estado entre simulacao e lote podem invalidar a operacao.
  • O paymaster pode negar servico, esgotar deposito ou falhar em postOp.
  • Cobranca em token inclui risco cambial, allowance, spread e margem do servico.
  • Gas subestimado reverte; limites excessivos elevam reserva ou penalidade.
  • Lotes da conta podem permitir sucesso parcial quando se esperava reversao atomica.
  • Bugs do protocolo-alvo, front ends hostis, reorganizacoes e finalidade fraca permanecem fora da AA.

Equivocos comuns

  • “A abstracao de contas elimina chaves privadas.” Ela muda a politica de credenciais; alguma credencial ainda autoriza acoes.
  • “Paymaster torna o gas gratuito.” O gas nativo e pago e usuario, patrocinador ou servico assume o custo.
  • “A simulacao do bundler garante sucesso.” Admissao nao garante execucao, inclusao ou finalidade.
  • “ERC-1271, ERC-4337 e EIP-7702 sao a mesma interface.” Eles tratam de assinatura, fluxo e delegacao distintos.
  • “Toda cadeia, carteira e EntryPoint e compativel e mais segura.” Suporte, versoes, implantacoes, codigo, modulos e controles exigem verificacao separada.

Topicos relacionados

Fontes

Navegação

Pesquisar na wiki...