

Account abstraction (AA) constitui um avanço transformador no ecossistema Ethereum, alterando de forma decisiva a gestão das contas individuais na blockchain. Esta inovação resolve múltiplas dificuldades que tradicionalmente afastaram utilizadores menos experientes em cripto, oferecendo soluções que reduzem de modo significativo as barreiras à entrada. As principais melhorias assentam na separação entre as origens das transacções e as assinaturas, proporcionando aos utilizadores uma flexibilidade inédita na gestão da segurança das contas, com exemplos como a EIP-4337.
Para entender account abstraction, é fundamental distinguir os dois tipos de contas existentes na rede Ethereum. As externally owned accounts (EOA) são contas tradicionais, controladas por chaves privadas e frases-semente, e representam o modelo padrão de utilizador. Por outro lado, as contract accounts (CA) operam sob governação de smart contracts, possibilitando funções programáveis.
Account abstraction designa a transformação estrutural que separa as origens das transacções das assinaturas, permitindo que as EOA passem a beneficiar das capacidades das CA. Esta evolução torna possível que smart contracts controlem EOA, facilitando a criação de wallets em smart contract. O resultado é uma experiência de utilização substancialmente melhorada, abrindo espaço para uma gestão de conta mais flexível e novas formas de interacção com a blockchain.
A comunidade Ethereum adoptou account abstraction com entusiasmo devido à sua simplificação profunda da gestão de contas. Esta tecnologia introduz flexibilidade em processos anteriormente rígidos on-chain, permitindo mecanismos de transacção mais dinâmicos. As opções de segurança são reforçadas, dando aos utilizadores mecanismos de protecção personalizáveis muito além da tradicional gestão de chaves privadas.
Estas melhorias resolvem, em conjunto, vários problemas que há muito afectam quem utiliza Ethereum. Ao simplificar processos complexos e apresentar opções de gestão intuitivas, a AA torna a experiência de interacção com o ecossistema Ethereum mais acessível e amigável.
O desenvolvimento da account abstraction passa pela análise de várias Ethereum Improvement Proposals (EIP) fundamentais que moldaram o cenário actual. A EIP-2938 propôs a elevação das contract accounts a contas de topo, com capacidade para pagar taxas e executar transacções de forma autónoma. A EIP-3074 introduziu dois novos OpCodes – AUTH e AUTHCALL – que permitem às EOA delegar acções a contratos, oferecendo aos programadores maior flexibilidade para criar objectos de transacção e mecanismos de verificação.
A EIP-4337 é a versão actual da implementação de account abstraction, ao introduzir o memory pool para user operations (user ops). Esta nova lógica substitui o memory pool tradicional das transacções e permite AA sem necessidade de alterar o core protocol da Ethereum. Propostas anteriores de 2020, como a EIP-2938 e a EIP-3074, foram suspensas devido à necessidade de grandes alterações ao protocolo, tornando o modelo agnóstico da EIP-4337 particularmente relevante para a evolução do ecossistema.
A EIP-4337, apesar de parecer complexa para quem se inicia, representa um avanço substancial face a soluções anteriores. A EIP-3074 exigia a introdução de dois OpCodes, implicando mudanças profundas na camada de consenso do protocolo Ethereum. Estas alterações comportavam riscos elevados e dificuldades de implementação, o que levou à suspensão da proposta. A EIP-4337 resolve estes desafios ao implementar account abstraction sem alterações ao protocolo de base, tornando-se numa solução mais prática e exequível.
A EIP-4337 implementa account abstraction através de componentes centrais interligados. UserOperation é um objecto executado em nome de um utilizador para enviar uma transacção, contendo toda a informação relevante. O entry point é o smart contract que executa transacções agrupadas de user operations, coordenando o processo.
Os bundlers actuam como nós que agrupam user operations em transacções, adicionando-as aos blocos e assegurando a sua validade. As wallet contracts são contas de smart contract detidas pelo utilizador, responsáveis pela execução das operações. A wallet factory é um smart contract que permite criar novas wallets de smart contract sob pedido.
Aggregators são contratos auxiliares que validam assinaturas agregadas, com os bundlers a manterem listas brancas dos aggregators suportados. Paymasters são contratos que implementam lógica personalizada na blockchain, incluindo pagamentos de gas em diferentes moedas e redes. Esta arquitectura simplifica o processo AA, mantendo a segurança e descentralização, tornando a EIP-4337 numa solução robusta para aplicações blockchain actuais.
O fluxo de transacção segundo a EIP-4337 é composto por várias fases, articulando-se para viabilizar a funcionalidade da account abstraction. Conhecer este fluxo é essencial para entender o funcionamento prático do sistema.
Ao iniciar uma transacção, a conta cria um objecto user operation. Este objecto contém todos os dados relevantes do remetente, incluindo parâmetros como 'maxFeePerGas' e 'maxPriorityFee'. O campo 'signature' é definido pela implementação específica da conta, permitindo flexibilidade na autenticação. Cada user operation criada é transmitida para um memory pool dedicado, separado do memory pool tradicional.
Os validadores processam as user operations agrupando-as a partir deste memory pool dedicado. O bundler assume o papel de construtor de blocos, adicionando user operations aos blocos enquanto as transacções entry point se mantêm válidas. Mesmo sem construir blocos directamente, o bundler pode fazê-lo integrando-se com infra-estruturas como mev-boost, mecanismos proposer-builder separation, e APIs RPC experimentais eth_sendRawTransactionConditional, que favorecem a inclusão eficiente de transacções agrupadas.
Após o envio, as user operations são enviadas para o contrato entry point, que executa as operações agrupadas. O bundler utiliza a função validateUserOp para validar a assinatura de cada user operation antes de a aceitar. Uma vez validada, o bundler inclui o contrato entry point na whitelist, estabelecendo uma relação de confiança para o processamento subsequente das transacções.
A finalização da transacção decorre da execução da função ExecuteUserOp na smart contract wallet. Os bundlers agrupam objectos user operation em transacções e chamam a função handleOps do smart contract EntryPoint. Estas transacções são então incluídas nos blocos, encerrando o ciclo de execução e concretizando as operações pretendidas na blockchain.
Os diferentes tipos de carteira apresentam características e funcionalidades distintas. As EOA utilizam externally owned accounts, com custos de criação e taxas de gas baixos, suportando apenas pagamentos de gas numa moeda e assinaturas ECDSA. Exigem gestão de chaves privadas, não têm recuperação nativa e oferecem segurança básica, sem eliminar pontos únicos de falha, mas garantem forte compatibilidade com o ecossistema.
As carteiras MPC também usam contas EOA e custos semelhantes, distinguindo-se pela assinatura por multi-party computation. Exigem gestão de chaves privadas, mas permitem recuperação offline em dispositivos de confiança. Apresentam desafios de segurança em políticas de autorização off-chain e transparência, com compatibilidade inferior face às EOA tradicionais.
As carteiras AA baseadas na EIP-4337 utilizam contract accounts, com custos e taxas mais elevados, compensados pela flexibilidade de pagamento de gas em várias moedas e aceitação de tokens de terceiros. Permitem transacções em lote, suportam vários métodos de assinatura e eliminam a necessidade de gerir chaves privadas. Possuem opções de recuperação, e com a EIP-4337 atingem segurança ao nível da cadeia. Exigem auditorias rigorosas aos contratos e pools, oferecem compatibilidade moderada e eliminam pontos únicos de falha.
A EIP-3074 foi adiada por ser uma EIP de núcleo que exigia alterações à camada de consenso. A proposta implicava a introdução de dois OpCodes para permitir às EOA acederem a contratos, criando simultaneamente oportunidades e desafios de implementação.
A principal vantagem da EIP-3074 está em permitir aos utilizadores delegarem o controlo das EOA a contratos, possibilitando aos programadores criar esquemas inovadores de transacção. Inclui trading em lote, operações agrupadas e opções flexíveis de pagamento de gas, melhorando a experiência do utilizador. A solução recorre a contratos invoker que aceitam pagamentos em tokens alternativos ao ETH, funcionando como intermediários trustless entre patrocinadores e sponsees. Além disso, a EIP-3074 permite que qualquer EOA funcione como smart contract wallet sem necessidade de deploy de contrato, simplificando a implementação.
A principal preocupação da comunidade Ethereum quanto à EIP-3074 prende-se com as alterações exigidas à camada de consenso, que trazem riscos elevados e podem obrigar a hard forks para corrigir problemas resultantes. Além disso, embora a EIP-3074 transfira características de CA para EOA, mantém a assinatura ECDSA fixa, impedindo assinaturas arbitrárias e limitando a flexibilidade nos métodos de autenticação.
Apesar do adiamento da EIP-3074, a proposta não foi abandonada. A EIP-5003 introduz o OpCode AUTHUSURP, que faz deploy de código nos endereços autorizados pela EIP-3074, em articulação com a EIP-3607 para revogar a autoridade da chave original das EOA. Por exemplo, quando a EOA um autoriza o endereço dois a agir em seu nome pela EIP-3074, o OpCode AUTHUSURP permite ao endereço dois definir o código da EOA um. Isto possibilita actualizar EOA existentes para CA, permitindo migrar de assinaturas ECDSA para métodos mais eficientes e seguros, preservando as vantagens da EIP-3074 e mitigando algumas limitações.
Account abstraction via EIP-4337 marca um passo decisivo na evolução da Ethereum rumo à adopção generalizada. Ao resolver desafios críticos com uma arquitectura inovadora, esta proposta traz ganhos substanciais: reforço da segurança, mecanismos flexíveis de pagamento de gas e melhor experiência do utilizador. Em conjunto, estas inovações reduzem as barreiras de entrada para o ecossistema Ethereum, tornando a tecnologia blockchain mais acessível ao grande público. Com a maturação e integração da EIP-4337 em plataformas e wallets de referência, account abstraction promete transformar de raiz a forma como os utilizadores interagem com redes blockchain, abrindo caminho à adopção mais ampla de criptoactivos e aplicações descentralizadas cada vez mais sofisticadas. A implementação da EIP-4337 define um novo patamar para a infraestrutura de wallets, ilustrando o potencial da account abstraction para revolucionar a usabilidade da blockchain sem comprometer a segurança ou os princípios de descentralização.
A EIP-4337 introduz account abstraction no Ethereum, permitindo aos utilizadores criar contas de contrato para gerir transacções sem necessidade de propriedade externa. Esta separação entre verificação e execução de transacções permite interacções mais eficientes e seguras através dos objectos UserOperation.
O ERC-4337 é o protocolo Ethereum para account abstraction. Permite smart accounts, melhora a experiência de utilização e possibilita o pagamento de taxas de gas com tokens ERC-20 ou por terceiros, sem afectar a camada de consenso.
Não, EIP (Ethereum Improvement Proposal) e ERC (Ethereum Request for Comment) são distintos. As EIP propõem alterações ao protocolo, enquanto as ERC estabelecem normas para tokens e smart contracts.
O ERC-4337 é um standard Ethereum para account abstraction, permitindo smart contract wallets, transacções sem gas e uma experiência de utilizador melhorada.











