O novo padrão Ethereum ERC-4337 busca permitir a criação de carteiras mais flexíveis e poderosas para os usuários desta blockchain e seus diferentes serviços.
Uma das atualizações mais recentes do Ethereum é conhecida como Abstração de Conta ou Account Abstraction, que foi implementado seguindo o padrão, ERC-4337.
O que exatamente é a Abstração de Conta ou Account Abstraction que o ERC-4337 reivindica? Vamos explicar de forma simples e compreensível o que é esse novo padrão e quais funcionalidades ele oferece para a rede Ethereum.
Abstração de Conta ou Account Abstraction, a nova melhoria do Ethereum
Abstração de Conta ou Account Abstraction é uma melhoria do Ethereum que foi apresentada por Vitalik Buterin, Yoav Weiss, Kristof Gazso, Namra Patel, Dror Tirosh, Shahaf Nacson e Tjaden Hess, em 29 de setembro de 2021, sob o EIP-4337 (EIP ou Ethereum Improvements Proposals, mais conhecido como Proposta de Melhoria do Ethereum).
Seu objetivo é permitir a criação de uma infraestrutura capaz de oferecer contas inteligentes controladas por smart contracts. Desta forma, os usuários dessas contas podem desfrutar de recursos exclusivos, como:
- Recuperação de chave.
- Sistema de pagamento automático e recorrente.
- Tarifas de gás "patrocinadas" (custo zero para o usuário).
Tudo de forma simples, utilizando um único padrão e sem abrir mão da descentralização no controle das contas.
A ideia de abstração de contas não é novidade. De fato, a ideia original está em construção há mais de 9 anos e contou com a participação de importantes players como a VISA.
No entanto, foi somente em 22 de fevereiro de 2023 que os desenvolvedores decidiram implantar essa melhoria no Ethereum, por meio do lançamento de onze (11) contratos inteligentes que dão origem ao que é conhecido como EntryPoint.
Como funciona o ERC-4337?
Para entender como o ERC-4337 funciona, devemos primeiro entender como as contas são configuradas no Ethereum. Na rede, temos dois tipos de contas:
- Contas de propriedade externa (EOA ou Externally Owned Account). são as que normalmente usamos em carteiras como MetaMask. Ou seja, são contas que são gerenciadas por uma carteira, que se encarrega de gerar as chaves privadas, as chaves públicas e também interagir com a rede (solicitar saldos, interagir com contratos inteligentes, enviar pagamentos, etc. ).
- Contract Account (CA) ou Contas Inteligentes. Uma CA é um tipo de conta gerenciada por um smart contract. Por exemplo, as contas de um pool de staking da Uniswap. O mesmo vale para DAI Vaults ou qualquer outro tipo de conta gerenciada por contratos inteligentes.
Saber disso torna mais fácil entender como o ERC-4337 funciona. A melhoria visa permitir que os usuários usem uma carteira compatível com esse padrão para gerar contas que possam gerenciar. No entanto, essas contas são controladas por um contrato inteligente.
Assim, o usuário só precisa interagir com o smart contract para recuperar seu acesso e acesso aos seus tokens contidos no referido contrato inteligente. É exatamente como acontece atualmente nas staking pools, só que desta vez, o ERC-4337 foi desenvolvido para ser muito mais fácil e seguro para usar e implementar.
Funcionamento a baixo nível
Para conseguir isso, o ERC-4337 replica a funcionalidade do mempool da transação em um sistema de nível superior usando contratos inteligentes.
Em primeiro lugar, as operações do usuário junto com assinaturas e outros dados são levados para verificação. Este processo é possível graças ao trabalho conjunto entre os validadores e os Flashbots, que se encarregam de agrupar estas operações em «uma única transação agrupada“, que posteriormente é incluído em um bloco Ethereum.
A tarifa de gas é paga por esses atores, que, por sua vez, recebem uma compensação de todas as operações individuais agrupadas, como acontece na mempool. O mesmo critério é utilizado para priorizar as operações, só que neste caso outras variáveis entram em jogo, como:
- Conhecimento do remetente ou da carteira que realiza a operação.
- Nonce e signature, que são parâmetros passados para a função de verificação da carteira, para que uma transação possa ser verificada.
- initCode, que é um código de inicialização para criar a carteira, caso ainda não exista.
- callData, que são dados de chamada de carteira para a etapa de execução real.
- Os restantes domínios dizem respeito à gestão e comissões do gas; a lista completa de campos pode ser encontrada na especificação ERC 4337.
Desta forma, uma carteira com suporte ERC-4337 se torna uma carteira gerenciada por um contrato inteligente.
Recursos avançados do ERC-4337
Quais vantagens a implementação do ERC-4337 oferece no Ethereum e suas carteiras?
Recuperação de conta
Um dos fatos mais comuns dentro do ecossistema é a perda de acesso às nossas contas. perder dados como seed phrase em um acidente ou a perda de uma carteira física (carteira de hardware) são eventos bastante frequentes. Normalmente, uma perda deste tipo é irrecuperável e com ela perdem-se milhões de euros de valor. Mas e se pudéssemos mudar isso?
É aqui que entra o ERC-4337. Como a conta é controlada por um contrato inteligente, é possível agendar condições de recuperação de conta. Por exemplo, se a conta teve um determinado período de inatividade, podemos programá-la para devolver os tokens a um endereço previamente fornecido, o que nos permitiria recuperar esse saldo.
Ou melhor ainda, podemos programar a carteira com uma série de condições que nos permitem ganhar a recuperação do dinheiro de forma mais direta. Por exemplo, se assinamos uma transação com uma determinada mensagem (nosso segredo) e um endereço de destino, e a enviamos para o endereço, o contrato inteligente pode detectar isso e realizar uma transferência de saldo para o endereço fornecido anteriormente, permitindo recuperar o saldo dessa bolsa.
Resumindo, o ERC-4337 permite esquemas de recuperação de contas que seriam impossíveis com uma conta tradicional.
Uso de 2FA em nossas contas
Outra função avançada que podemos habilitar graças ao ERC-4337, é a execução de transações em condições que devem ser atendidas. Imagine por um momento que tem uma conta partilhada e que a limitou a fazer despesas de 1000 euros por mês.
Caso o limite seja excedido, seria necessário aplicar um 2FA no qual você e seu parceiro devem assinar a transação para torná-la válida.
Bem, o ERC-4337 pode fazer exatamente isso. Com uma programação adequada, é possível criar uma conta com duas assinaturas e definir um limite de gastos mensais e, caso seja ultrapassado, as transações posteriores precisarão da aprovação de ambas as partes para serem concluídas.
Obviamente, o caso anterior é apenas uma amostra da capacidade, que pode ser adaptada para mais coisas, dependendo das necessidades dos usuários ou da plataforma na qual a conta está implantada.
Recursos operacionais avançados
Além disso, o ERC-4337 ativa um conjunto de opções operacionais avançadas. Por exemplo, com este padrão é possível realizar várias operações com nossa carteira e assinar todas elas em uma única ocasião. Dessa forma, uma mesma transação no Ethereum pode executar duas ou mais operações de forma atômica e transparente, necessitando apenas de uma aprovação para elas.
Com esse tipo de operação, por exemplo, podemos operar em um DEX específico, realizando várias operações ao mesmo tempo e, ao final, emitindo todas elas em conjunto, o que reduz o custo em comissões de nossas operações.
Uso mais eficaz de criptografia e atualizações
Outra propriedade avançada do ERC-4337 é que ele nos permite um uso mais eficaz dos avanços criptográficos. Por exemplo, com uma pequena modificação, podemos adaptar o ERC-4337 para usar Esquemas de assinatura de Schnorr, o que tornaria nossas operações de transação na rede mais seguras e econômicas.
Da mesma forma, podemos com uma pequena atualização do contrato inteligente, fazer uso de avanços futuros no EVM. Por exemplo, podemos empregar criptografia ZK na chegada do zkEVM (Zero Knowledge EVM) ou implementação de criptografia resistente a quantum. Na verdade, o ERC-4337 flexiona a capacidade dos desenvolvedores de adaptar essas tecnologias e aplicá-las rapidamente para que possamos explorá-las.
Suporte multi-cadeia
Outra propriedade avançada do ERC-4337 é que ele oferece suporte para múltiplas cadeias. Isso é possível graças ao fato de ser um smart contract construído sobre os recursos de Solidity e EVM. Isso significa que qualquer rede que suporte essas duas tecnologias pode implementar com sucesso o padrão ERC-4337.
Assim, redes como Polygon ou Gnosis podem aproveitar essa capacidade para suas redes e oferecer maiores funcionalidades, algo que, aliás, já está sendo feito nas respectivas testnets desta e de outras redes compatíveis com EVM.
Prós e contras da implementação do ERC-4337
No entanto, a implementação do ERC-4337 nos oferece uma série de prós e contras, entre os quais podemos identificar:
Prós
- Não centraliza o controle das carteiras. Isso se deve ao fato de que seu controle permanece descentralizado o tempo todo.
- Melhorias na segurança das carteiras. A partir da utilização de opções avançadas como 2FA, maior facilidade na implementação de multi-assinaturas, entre outras melhorias a nível criptográfico, o ERC-4337 oferece maior segurança para carteiras que implementem o padrão. Além disso, reduz a complexidade no desenvolvimento de carteiras.
- Reduz a complexidade na gestão e controle de wallets. Uma funcionalidade que sem dúvida ajuda a divulgar o acesso a essa tecnologia por pessoas que não estão acostumadas ou não possuem grandes conhecimentos sobre cibersegurança e criptomoedas.
- Suporte multi-cadeia e interoperabilidade. Graças ao uso de Solidity e EVM, que são os únicos requisitos que as cadeias onde este padrão é implantado devem atender, sem a necessidade de alterar de forma alguma o protocolo de consenso.
- Mantém a possibilidade de substituição de comissões. Para tal, basta enviar uma nova operação com uma comissão superior.
- Flexibilidade da lógica de execução. Isso permite que as carteiras adicionem lógica personalizada à etapa de execução, por exemplo, execute multioperações atômicas.
Contras
- Ligeiro aumento na vulnerabilidade DoS. Isso ocorre apesar do melhor esforço do protocolo, simplesmente porque a lógica de verificação pode ser um pouco mais complexa do que o status quo de uma única verificação ECDSA.
- Sobrecarga de gas. Um pouco mais de sobrecarga de gas do que transações normais (embora compensado em alguns casos de uso pelo suporte multi-operação). Isso se deve à necessidade de intermediação dos smart contracts ERC-4337. Resumindo: taxas mais altas para usar esse recurso.
- Uma transação por vez. As contas não podem enfileirar e enviar várias transações para a mempool. No entanto, a capacidade de executar multioperações atômicas torna esse recurso muito menos necessário.