A essência da abstração de conta é uma Conta de Contrato. No Ethereum, existem dois tipos de contas:
Um exemplo simples é que o Endereço do Contrato é o endereço onde o contrato é implantado. Qualquer contrato no Ethereum que pode ser chamado tem um endereço de contrato, como o endereço do contrato do USDT. Uma conta EOA é a conhecida conta ETH, como a conta mostrada na carteira Metamask.
0xdac17f958d2ee523a2206206994597c13d831ec7é o endereço do contrato para tokens USDT. Os endereços de contrato não podem ser criados diretamente de fora; eles são criados e gerenciados por EOAs. O EOA que criou o endereço do contrato USDT é 0x36928500Bc1dCd7af6a2B4008875CC336b927D57.
Portanto, entendemos que uma conta AA é um tipo especial de Conta de Contrato (CA) no Ethereum. As contas AA ainda precisam ser criadas por EOAs e são controladas por EOAs externas, pois a única maneira de interagir com a cadeia Ethereum é por meio de EOAs. Consequentemente, AA serve como uma implementação padronizada e modular de carteiras CA, que continuam a evoluir ao longo do tempo.
Acabamos de explicar a relação entre AA e CA. Antes da proposta do padrão ERC-4337, já havia um número significativo de carteiras CA disponíveis. Abaixo, fornecemos informações sobre três carteiras CA populares e como elas operam:
Durante as fases iniciais do desenvolvimento do Ethereum, várias carteiras de contratos surgiram. A mais conhecida é a carteira Parity, desenvolvida pela equipe de Gavin Wood, os fundadores da PolkaDot. Parity é implementada em Rust e serve como uma alternativa ao nó Geth, que é desenvolvido em Golang. A Parity Wallet é uma carteira de contrato multiassinatura que permite que várias contas de propriedade externa (EOAs) controlem e gerenciem uma conta de contrato (CA). No entanto, em 2017, um hacker explorou uma falha na carteira Parity e roubou mais de 150.000 ETH. Esse incidente causou uma perda de confiança nas carteiras de contrato.
Como resultado, as carteiras AA requerem prática extensiva e padronização para evitar que incidentes semelhantes ocorram.
A carteira multi-assinatura da Gnosis é atualmente a carteira Multi-sig mais utilizada e é usada pela maioria das instituições e desenvolvedores. Um número significativo de equipes armazena seus fundos de desenvolvimento na carteira multi-assinatura da Gnosis para evitar que os membros da equipe ajam maliciosamente. Equipes notáveis que usam o Gnosis Safe incluemYearn,Aave, eBalancer. A segurança do Gnosis Safe é extremamente alta, mas seu uso é relativamente caro, o que é um problema comum com as carteiras CA.
A carteira Unipass combina a tecnologia MPC e carteiras de contrato CA, permitindo que os usuários usem o login social sem a custódia própria de uma carteira EOA. Deve-se notar que tanto a carteira Parity quanto a Gnosis Safe ainda exigem que os usuários custodiem suas chaves privadas. O fluxo geral do Unipass é:
É importante notar que a solução AA original da Unipass não adere totalmente ao padrão ERC-4337. O controle da carteira ainda é delegado a um EOA controlado pelo MPC da Unipass.
A essência do AA é uma conta CA padronizada e modularizada. ERC-4337 manifesta principalmente as seguintes inovações:
O diagrama acima descreve aproximadamente o processo de transação padrão sob ERC-4337:
Podemos resumir as principais diferenças entre AA e CA tradicional da seguinte forma:
Antes de entender completamente o AA, muitas pessoas frequentemente confundem os conceitos de AA e MPC porque ambos suportam recursos como recuperação social e plugins sem navegador. As diferenças essenciais entre AA e MPC são as seguintes:
Em seguida, vamos apresentar MPC e suas características únicas.
Soluções MPC são amplamente utilizadas nos logins sociais atuais, e muitos projetos lançaram carteiras MPC para fornecer uma experiência de carteira sem corrente, eliminando a necessidade de os usuários instalarem carteiras de plugin ou gerenciarem chaves privadas. Na indústria, esses tipos de carteiras gerenciadas são coletivamente referidas como Wallet-as-a-Service (WaaS). Projetos maduros incluem:
Diante de um número crescente de serviços WaaS, é previsível que haja mais produtos oferecendo WaaS no futuro. No entanto, as exchanges centralizadas têm um volume absoluto de usuários e uma extensa experiência comercial neste campo, então é possível que todas as exchanges centralizadas forneçam serviços relacionados no futuro.
A principal desvantagem das Contas Tradicionais de Propriedade Externa (EOA) é que os usuários são responsáveis por armazenar suas próprias chaves privadas. Essa auto-guarda apresenta as seguintes questões:
AA (Account Abstraction) foi projetado para permitir que os usuários configurem contas de recuperação social. Eles podem usar uma ou mais EOAs externas para recuperar o controle sobre seu AA. O fluxo comum para recuperação social é o seguinte:
Através deste processo de apelo, mesmo que o usuário perca o controle da EOA que governa o AA, ele ainda pode mudar para uma nova EOA. Ao contrário do login social MPC (Computação Multi-Partes), esta recuperação social é totalmente descentralizada e não possui um único ponto de falha.
A delegação de gás é fundamental para a adoção em massa da blockchain. Para novos usuários que entram na Web3, o maior ponto de dor é pré-financiar as taxas de gás. Ao usar o Paymaster da AA para delegar gás, novos usuários podem ser subsidiados, diminuindo assim a barreira de entrada para as aplicações Web3.
Outra questão central que afeta a adoção em massa do Web3 é a compatibilidade entre cadeias. A Paymaster, por meio da integração de protocolos entre cadeias como Layer0/Warmhole, permite que os usuários depositem na Cadeia A (por exemplo, Ethereum) e usem aplicativos de forma transparente na Cadeia B (por exemplo, Matic ou BSC), assim, as fronteiras entre as cadeias desaparecem e ajudam os novos Dapps a atrair usuários de outras cadeias.
Embora tenhamos discutido as vantagens do AA, o padrão ERC-4337 ainda está iterando rapidamente para abordar suas desvantagens atuais:
Ao contrário do EOA, uma vez que um EOA é criado, ele pode ser usado em qualquer cadeia compatível com o EVM, pois o mesmo par de chaves público-privadas pode ser usado para interagir em diferentes cadeias. No entanto, devido à natureza do AA sendo uma Conta de Contrato (CA), um novo contrato AA precisa ser implantado separadamente em cada cadeia ou Camada 2. O alto custo de implantação de contratos AA pode desencorajar os usuários de adotar AAs.
Além disso, se os usuários implantarem de forma inadequada, como usar diferentes Fábricas para implantar contas de contrato AA, eles podem acabar com diferentes endereços AA em diferentes cadeias, o que pode causar confusão significativa e dificuldade de uso e compreensão. Embora as Fábricas atuais da Carteira AA tenham conseguido gerar o mesmo endereço AA em diferentes cadeias, os usuários ainda precisam ter cautela ao verificar os protocolos que estão usando para garantir que seus endereços AA permaneçam consistentes em várias cadeias, evitando assim quaisquer problemas ou confusões futuras.
Como mencionado, as contas AA exigem que os usuários implantem os contratos AA gerados pela Wallet Factory em diferentes cadeias e Layer2 separadamente. Mesmo com as sidechains atuais, cadeias compatíveis com EVM e taxas de gás mais baixas da Layer2, ainda é um gasto significativo. Com as taxas de gás atuais e o preço do ETH em $1800, implantar uma conta AA na mainnet do ETH custaria aproximadamente $20-$40, enquanto em cadeias compatíveis com EVM ou Layer2, variaria de $0.5 a $5. Para a maioria dos usuários, é difícil aceitar o custo de implantação antes mesmo de usar o Dapp. Supondo que esse custo seja subsidiado por um Aglutinador ou Mestre de Pagamento, o custo do subsídio ainda é muito alto e requer um forte incentivo.
Dependendo da implementação do AA e do número de transações agrupadas em uma única transação do Bundler (quanto mais transações, menor o custo de gás por UserOP), o consumo de gás das transações padrão ERC-4337 atuais pode ser várias vezes maior do que o das contas regulares EOA. Isso ocorre porque uma transação iniciada por uma conta de AA frequentemente exige a chamada de 3 ou mais contratos e envolve cálculos complexos, como a verificação de assinatura BLS on-chain. O padrão ERC-4337 atual também está sendo otimizado para isso, com o seguinte roteiro:
Acabamos de mencionar o custo relativamente alto de usar o padrão ERC-4337. Quais são os custos específicos? Primeiro, vamos introduzir um conceito, que é a fórmula de cálculo para taxas de gás:
taxa = gás × preço
Então, quais são os custos de implantação e uso do ERC-4337? A equipe da StackUp forneceu estimativas precisas em seu blog.
https://www.stackup.sh/blog/how-much-more-expensive-is-erc-4337
Tabela 1. Gás para transações ERC-4337
A tabela acima mostra:
Tabela 2. Estimativas de taxas de gás para transações ERC-4337
Esta tabela fornece estimativas de custo para várias operações na conta AA ERC-4337 usando os preços atuais do gás. Podemos observar o seguinte:
Em resumo, devido ao alto custo de criação de contas AA ERC-4337 na mainnet, é provável que a adoção em larga escala ocorra primeiro nas cadeias Layer2 e EVM-compatíveis.
Outro obstáculo para o desenvolvimento de AA é a compatibilidade da infraestrutura com contratos AA. A maioria das Dapps fora da cadeia nativa de AA só suporta contas EOA. O suporte para AA requer que as Dapps usem o SDK da AA para transações e modifiquem os parâmetros de consulta para informações do usuário.
Além disso, navegadores blockchain como Etherscan são projetados principalmente para EOAs. Para melhorar a conveniência de consultar contas AA, esses navegadores podem exigir uma série de otimizações de UI e UX.
Exceto pelo Ethereum, a maioria das novas blockchains públicas já implementou contas AA nativas.
Os AAs nativos são implementados na camada de consenso da cadeia, o que significa que não requerem desenvolvedores da comunidade para implantação. Estes são geralmente contratos internos ou do sistema desenvolvidos e mantidos pelos desenvolvedores da blockchain.
Custos mais baixos de implementação e taxas extras de gás
Contratos internos frequentemente possuem permissões e prioridades mais altas, e seus cálculos de gás são diferentes dos contratos externos. Portanto, os AAs nativos têm custos de implantação mais baixos e geralmente não adicionam sobrecarga significativa de gás.
A atualização dos AAs nativos requer que os desenvolvedores da cadeia pública sejam responsáveis, frequentemente necessitando de bifurcações suaves ou duras. Isso os torna menos flexíveis do que o ERC-4337 modular, limitando o ritmo de iteração e lançamento de novos recursos.
Correntes com AA nativos estão estudando ativamente a extensibilidade e modularidade do ERC-4337, permitindo que mais recursos sejam construídos em cima dos AA nativos.
Near implementa AAs nativos na camada de consenso com contas armazenadas diretamente na blockchain. Ele suporta múltiplas chaves de acesso e recuperação social (e-mail, número de telefone). A seguinte imagem ilustra as diferenças entre uma conta ETH e uma conta Near.
Devido ao modelo de Propriedade de Recursos em Aptos e Sui, tanto Aptos quanto Sui implementaram AA nativo na camada de consenso. Tomando Aptos como exemplo, uma conta de Aptos é um conjunto de recursos na blockchain, então ao criar uma conta de Aptos, é necessário pré-pagar Aptos para concluir a inicialização da conta. As contas de Aptos/Sui também suportam a alteração da chave de autenticação, mas o endereço da conta permanece o mesmo, entre outras características de AA.
Ao contrário de Near/Aptos/Sui/Starknet, o ZKsync suporta tanto EOA quanto AA na camada de consenso. Portanto, o ZKsync pode iniciar transações usando tanto EOA quanto AA, permitindo que seja usado com carteiras populares como Metamask e Argent. O design de AA do ZKSync é baseado no ERC-4337, tornando-o compatível com carteiras e Dapps que suportam EIP-4337. Atualmente, o custo adicional de gás para transações de AA no ZKsync é aproximadamente execution_gas + 20000, o que equivale a cerca de 0.01USD no momento da escrita. Este é um custo pequeno em comparação com o ERC-4337 de AA não nativo.
Starknet suporta nativamente AA e não suporta transações iniciadas por EOA. As contas AA no Starknet são projetadas com base no ERC-4337. Atualmente, os contratos AA no Starknet são fornecidos pela OpenZeppelin e desenvolvidos usando Cairo.
As contas nativas de AA em ICP são chamadas de Identidade na Internet (II para abreviar). A implementação do II é diferente do ERC-4337. O II utiliza o WebAuthn, comumente usado em estruturas Web2, permitindo que os usuários controlem suas contas usando os chips de segurança embutidos em seus smartphones. Os usuários podem livremente adicionar e remover dispositivos. Em essência, o II transforma os dispositivos de smartphone do usuário em carteiras de hardware.
O Bundler substitui a Mempool de nó anterior no ecossistema AA. Os UserOps não são mais enviados para Validadores, mas sim para Bundlers para empacotamento e processamento on-chain. Os bundlers principais são os seguintes:
O bundler do Stackup é implementado no Go lang e visa se integrar perfeitamente com o Go Ethereum (geth). É o primeiro empacotador padrão de produção nesta lista que está totalmente em conformidade com o ERC-4337. O Stackup é mantido ativamente e tem documentação abrangente, tornando-o o empacotador mais popular atualmente. O Stackup fornece serviços de empacotador, eliminando a necessidade de as equipes configurarem seu próprio serviço de empacotador.
O bundler do Infinitism é desenvolvido em TypeScript e foi desenvolvido pelo autor original do ERC-4337. O Infinitism também desenvolve contratos ERC-4337, tornando seu bundler altamente compatível com o ERC-4337. No entanto, é necessária uma verificação adicional para desempenho e estabilidade, uma vez que é desenvolvido em TypeScript.
Skandha é um agrupador baseado em TypeScript desenvolvido pela Etherspot. Etherspot está ativo na implementação da mempool do agrupador. Skandha passou em todos os testes em abril de 2023.
Voltaire é um protocolo de agrupamento desenvolvido pela equipe de Candide para apoiar sua própria carteira Candide. Voltaire é uma implementação baseada em Python do ERC-4337. Voltaire atualmente fornece bom suporte para a própria carteira de código aberto da Candide.
Rundler é um protocolo Bundler desenvolvido pela Alchemy, o maior provedor de serviços de nó para Ethereum. Atualmente, Rundler não é de código aberto, mas devido à grande base de usuários da Alchemy, pode receber suporte de tráfego significativo.
O Bundler está atualmente em uma fase de desenvolvimento e iteração rápida.
O ponto de dor atual que o bundler precisa abordar é a consistência e os problemas de comunicação do mempool do bundler. Supondo que existam múltiplos protocolos de bundler no mercado e haja uma falta de comunicação entre eles, isso pode levar a um sério problema de ataques de DDoS ao bundler. Se um usuário enviar transações simultaneamente para múltiplos bundlers sem comunicação entre eles, esses bundlers irão empacotar e enviar UserOps simultaneamente para o validador. No entanto, apenas o UserOp do primeiro bundler será executado, e as transações dos bundlers restantes serão rejeitadas devido ao mesmo nonce. Nesse caso, se o paymaster do usuário tiver saldo insuficiente, os bundlers pagarão gás inválido para esses UserOps. Portanto, atualmente, a comunicação entre bundlers é um problema que precisa ser abordado para evitar ataques de spam de UserOp aos bundlers.
Os bundlers atuais são altamente centralizados. Se os bundlers colocarem certos usuários na lista negra, isso resultaria em suas transações não podendo ser executadas. Isso vai contra a natureza descentralizada e sem permissão do blockchain.
Paymaster é uma parte importante do AA, pois pode subsidiar as taxas de gás dos usuários e reduzir significativamente a barreira de entrada para o Web3. Aqui estão algumas implementações populares de paymaster:
pagador de acúmulos
O paymaster da Stackups faz parte do ecossistema Stackups AA. A Stackups implementou um painel de paymaster onde DApps ou outros provedores de serviços podem configurar suas próprias contas de subsídio em https://app.stackup.sh/sign-inpatrocinar as transações dos usuários.
Painel Biconomy
O Painel Biconomy permite que organizações e desenvolvedores utilizem os componentes AA em seus projetos. Os proprietários de projetos podem configurar seus projetos para pagar taxas de gás para os usuários por meio de pagadores e adicionar condições de patrocínio de gás. Ao registrar seu pagador para qualquer cadeia suportada, os DApps podem simplificar enormemente a experiência Web3 para os usuários.
Contas EOA tradicionais frequentemente lutam para alcançar descentralização, usabilidade e segurança simultaneamente.
Na estrutura tradicional EOA, os usuários frequentemente precisam adquirir tokens de blockchain como ETH através de moedas fiduciárias para usar aplicativos Web3. Isso geralmente envolve o uso de trocas centralizadas (CEX) para depositar moeda fiduciária, trocá-la pelo token necessário e, finalmente, transferi-lo para uma conta EOA recém-criada. Esse processo requer um entendimento significativo do Web3 e é oneroso em muitas regiões. Ao introduzir pagadores em AA, os custos iniciais de integração para os usuários podem ser delegados aos proprietários de projetos de DApps. A transferência de taxas de gás tem implicações significativas para a adoção em massa do Web3.
Atualmente, o ERC-4337 está em seus estágios iniciais, e inúmeras ferramentas estão sendo desenvolvidas com base nele. Do lado do paymaster, o UserOp do usuário pode ser auditado para evitar que tapetes aconteçam, como aprovações excessivas ou transferências de fundos não autorizadas. A auditoria de segurança do paymaster pode ser conduzida usando métodos bem estabelecidos no setor financeiro web2 para revisar transações problemáticas e garantir a segurança dos fundos do usuário.
Outra inovação em desenvolvimento é o isolamento de segurança das contas, como separar a conta de fundos da conta de jogo, etc. Quando os usuários utilizam funções DeFi conhecidas e de transferência, a conta de fundos com auditoria de segurança mais rigorosa é utilizada. Quando os usuários tentam GameFi ou DeFi desconhecido, a conta de jogo é utilizada. Dessa forma, sem aumentar as chaves privadas que os usuários precisam gerenciar, o design de isolamento de segurança das contas garante a segurança dos fundos dos usuários no nível subjacente.
Atualmente, muitos dispositivos, como smartphones e laptops, possuem chips seguros embutidos, como o Apple T2 Security Chip usado no Mac e no iPhone. Portanto, fundamentalmente, todo dispositivo com um chip Tee é uma carteira de hardware confiável. No entanto, esses chips seguros atualmente não suportam algoritmos de assinatura de blockchain comuns como ECDSA.
A segurança atual das chaves privadas EOA em plugins/cartei-ras móveis é armazenada diretamente em texto simples no dispositivo. Se o dispositivo for comprometido, os ativos do usuário podem ser rapidamente perdidos. Portanto, as carteiras de extensão do navegador, como o Metamask, têm alta usabilidade, mas baixa segurança.
Carteiras de hardware
As carteiras de hardware garantem que as chaves privadas nunca saem do dispositivo e não podem ser acessadas diretamente por partes externas. No entanto, a maioria dos usuários não pode carregar suas carteiras de hardware consigo o tempo todo, resultando em alta segurança, mas baixa usabilidade.
Ao usar a carteira AA e o inovador método de verificação on-chain, as transações podem ser assinadas diretamente pelo chip seguro do dispositivo, garantindo que a chave privada do usuário nunca deixe o dispositivo. Isso proporciona maior segurança em comparação com contas EOA tradicionais. Atualmente, a Identidade da Internet do Computador da Internet e um projeto chamado Carteira Porton no ETHBogota Hackathon implementaram uma solução que utiliza a assinatura do chip seguro do dispositivo e chave de sessão, permitindo que os usuários utilizem plenamente a segurança de seus dispositivos, como smartphones ou computadores, equivalente a uma carteira de hardware.
Graças ao design altamente modular do ERC-4337, por meio de sua expansão e iteração, as contas AA alcançarão segurança significativamente melhorada.
Atualmente, outro obstáculo para a adoção em massa da Web3 é a fragmentação dos ecossistemas blockchain em diferentes cadeias.
Como exemplo simples, vamos considerar um usuário na Ethereum (ETH) que deseja experimentar um aplicativo na Binance Smart Chain (BSC). O que esse usuário deve fazer? Primeiro, o usuário precisa trocar sua ETH pelos correspondentes USDT/USDC e depois usar uma ponte entre cadeias para transferir esses tokens da ETH para a BSC. Depois disso, o usuário precisa comprar alguns BNB de uma exchange centralizada (CEX) e transferi-los para a BSC. Somente então o usuário poderá começar a experimentar vários aplicativos DeFi na BSC. Todo esse processo é demorado, tem pouca segurança e vem com uma curva de aprendizado íngreme, especialmente para novos usuários que podem não estar familiarizados com pontes entre cadeias.
Através dos protocolos de interoperabilidade atualmente comumente utilizados, como Layer0 + AA, o processo de uso de DApp em diferentes cadeias pode ser muito simplificado. O pagador pode integrar totalmente os protocolos de interoperabilidade para alcançar "cobrar uma vez, pagar em todos os lugares". Por exemplo, se um usuário recarrega USDC no pagador de ETH, desde que a conta AA do usuário em diferentes cadeias seja a mesma e esteja vinculada ao mesmo pagador, o pagador pode lidar com a contabilidade em nome do usuário. O usuário não precisa transferir manualmente ativos para qualquer cadeia compatível com EVM/Layer2 com o mesmo endereço de conta.
A maior vantagem de introduzir o paymaster é que ele estabelece programaticamente condições para subsidiar os usuários do Dapp.
No passado, houve casos em que projetos do ecossistema Web3 subsidiaram gás para atrair clientes. No entanto, subsidiar contas EOA sem definir condições programaticamente frequentemente resultou no uso indevido de fundos de subsídio por bots e fraudadores, como a transferência direta dos fundos de subsídio, sem atrair clientes genuínos.
Atualmente, os painéis de controle do paymaster geralmente incluem a funcionalidade de subsidiar taxas de gás para Dapps. Os desenvolvedores de projetos podem facilmente definir as condições para os subsídios no painel de controle, de modo que apenas transações que atendam a condições específicas sejam elegíveis para o subsídio. Ao controlar as condições de transação em subsídios através do paymaster, os Dapps podem atrair mais usuários genuínos mantendo os custos sob controle.
Sob o EOA, devido à predominância da Metamask, os atuais Dapps são principalmente acessados através de interfaces web, resultando em uma maior participação de mercado para as carteiras de plug-in web. No entanto, a adoção em massa do web3 depende da participação dos usuários móveis, tornando o desenvolvimento e a adaptação do AA mais Mobile Native.
Com a crescente popularidade da Dark Forest, a tendência de jogos totalmente on-chain está emergindo silenciosamente. No entanto, a experiência do usuário ao usar EOA (Externally Owned Accounts) em jogos é muito ruim. Imagine ter que usar uma carteira para autorização ou assinar transações toda vez que você realizar qualquer ação em um jogo. Essa interrupção constante impede que os jogadores se concentrem totalmente no jogo em si. Para resolver esse problema, as Contas Arcade, que são versões especializadas de AA regulares, foram desenvolvidas especificamente para jogos totalmente on-chain. Essas contas autorizam operações de jogo específicas, permitindo que os jogadores participem de jogos totalmente on-chain sem a necessidade de autorização e assinatura de transações repetitivas. Como resultado, a experiência de jogo é muito melhorada. O aumento de jogos totalmente on-chain no futuro provavelmente impulsionará a adoção generalizada de contas AA.
Recentemente, o conceito de transações baseadas em intenção ganhou popularidade com o surgimento da Unibot, e a Uniswap também lançou o projeto Uniswap X para promover a implementação de transações baseadas em intenção. O exemplo a seguir pode explicar o que são transações baseadas em intenção:
Se alguém estiver disposto a executar a intenção, a contraparte inicia outra intenção de transferir 1000 USDT para Alice e receber 1 ETH.
A transação foi correspondida com sucesso.
Transações Baseadas em Intenção oferecem as seguintes vantagens:
Atualmente, o CowSwap implementou Transações Baseadas em Intenção com base em EOA. No entanto, as Transações Baseadas em Intenção com base em EOA ainda exigem que os usuários autorizem (ERC-20, Aprovar) antes de iniciar a transação. No entanto, sob a nova arquitetura de conta do AA, os usuários podem enviar Aprovar e Intenção juntos para o empacotador. O empacotador do AA pode acessar simultaneamente a Enquete de Intenções, combinar intenções e fornecer uma experiência de negociação mais conveniente.
A essência da abstração de conta é uma Conta de Contrato. No Ethereum, existem dois tipos de contas:
Um exemplo simples é que o Endereço do Contrato é o endereço onde o contrato é implantado. Qualquer contrato no Ethereum que pode ser chamado tem um endereço de contrato, como o endereço do contrato do USDT. Uma conta EOA é a conhecida conta ETH, como a conta mostrada na carteira Metamask.
0xdac17f958d2ee523a2206206994597c13d831ec7é o endereço do contrato para tokens USDT. Os endereços de contrato não podem ser criados diretamente de fora; eles são criados e gerenciados por EOAs. O EOA que criou o endereço do contrato USDT é 0x36928500Bc1dCd7af6a2B4008875CC336b927D57.
Portanto, entendemos que uma conta AA é um tipo especial de Conta de Contrato (CA) no Ethereum. As contas AA ainda precisam ser criadas por EOAs e são controladas por EOAs externas, pois a única maneira de interagir com a cadeia Ethereum é por meio de EOAs. Consequentemente, AA serve como uma implementação padronizada e modular de carteiras CA, que continuam a evoluir ao longo do tempo.
Acabamos de explicar a relação entre AA e CA. Antes da proposta do padrão ERC-4337, já havia um número significativo de carteiras CA disponíveis. Abaixo, fornecemos informações sobre três carteiras CA populares e como elas operam:
Durante as fases iniciais do desenvolvimento do Ethereum, várias carteiras de contratos surgiram. A mais conhecida é a carteira Parity, desenvolvida pela equipe de Gavin Wood, os fundadores da PolkaDot. Parity é implementada em Rust e serve como uma alternativa ao nó Geth, que é desenvolvido em Golang. A Parity Wallet é uma carteira de contrato multiassinatura que permite que várias contas de propriedade externa (EOAs) controlem e gerenciem uma conta de contrato (CA). No entanto, em 2017, um hacker explorou uma falha na carteira Parity e roubou mais de 150.000 ETH. Esse incidente causou uma perda de confiança nas carteiras de contrato.
Como resultado, as carteiras AA requerem prática extensiva e padronização para evitar que incidentes semelhantes ocorram.
A carteira multi-assinatura da Gnosis é atualmente a carteira Multi-sig mais utilizada e é usada pela maioria das instituições e desenvolvedores. Um número significativo de equipes armazena seus fundos de desenvolvimento na carteira multi-assinatura da Gnosis para evitar que os membros da equipe ajam maliciosamente. Equipes notáveis que usam o Gnosis Safe incluemYearn,Aave, eBalancer. A segurança do Gnosis Safe é extremamente alta, mas seu uso é relativamente caro, o que é um problema comum com as carteiras CA.
A carteira Unipass combina a tecnologia MPC e carteiras de contrato CA, permitindo que os usuários usem o login social sem a custódia própria de uma carteira EOA. Deve-se notar que tanto a carteira Parity quanto a Gnosis Safe ainda exigem que os usuários custodiem suas chaves privadas. O fluxo geral do Unipass é:
É importante notar que a solução AA original da Unipass não adere totalmente ao padrão ERC-4337. O controle da carteira ainda é delegado a um EOA controlado pelo MPC da Unipass.
A essência do AA é uma conta CA padronizada e modularizada. ERC-4337 manifesta principalmente as seguintes inovações:
O diagrama acima descreve aproximadamente o processo de transação padrão sob ERC-4337:
Podemos resumir as principais diferenças entre AA e CA tradicional da seguinte forma:
Antes de entender completamente o AA, muitas pessoas frequentemente confundem os conceitos de AA e MPC porque ambos suportam recursos como recuperação social e plugins sem navegador. As diferenças essenciais entre AA e MPC são as seguintes:
Em seguida, vamos apresentar MPC e suas características únicas.
Soluções MPC são amplamente utilizadas nos logins sociais atuais, e muitos projetos lançaram carteiras MPC para fornecer uma experiência de carteira sem corrente, eliminando a necessidade de os usuários instalarem carteiras de plugin ou gerenciarem chaves privadas. Na indústria, esses tipos de carteiras gerenciadas são coletivamente referidas como Wallet-as-a-Service (WaaS). Projetos maduros incluem:
Diante de um número crescente de serviços WaaS, é previsível que haja mais produtos oferecendo WaaS no futuro. No entanto, as exchanges centralizadas têm um volume absoluto de usuários e uma extensa experiência comercial neste campo, então é possível que todas as exchanges centralizadas forneçam serviços relacionados no futuro.
A principal desvantagem das Contas Tradicionais de Propriedade Externa (EOA) é que os usuários são responsáveis por armazenar suas próprias chaves privadas. Essa auto-guarda apresenta as seguintes questões:
AA (Account Abstraction) foi projetado para permitir que os usuários configurem contas de recuperação social. Eles podem usar uma ou mais EOAs externas para recuperar o controle sobre seu AA. O fluxo comum para recuperação social é o seguinte:
Através deste processo de apelo, mesmo que o usuário perca o controle da EOA que governa o AA, ele ainda pode mudar para uma nova EOA. Ao contrário do login social MPC (Computação Multi-Partes), esta recuperação social é totalmente descentralizada e não possui um único ponto de falha.
A delegação de gás é fundamental para a adoção em massa da blockchain. Para novos usuários que entram na Web3, o maior ponto de dor é pré-financiar as taxas de gás. Ao usar o Paymaster da AA para delegar gás, novos usuários podem ser subsidiados, diminuindo assim a barreira de entrada para as aplicações Web3.
Outra questão central que afeta a adoção em massa do Web3 é a compatibilidade entre cadeias. A Paymaster, por meio da integração de protocolos entre cadeias como Layer0/Warmhole, permite que os usuários depositem na Cadeia A (por exemplo, Ethereum) e usem aplicativos de forma transparente na Cadeia B (por exemplo, Matic ou BSC), assim, as fronteiras entre as cadeias desaparecem e ajudam os novos Dapps a atrair usuários de outras cadeias.
Embora tenhamos discutido as vantagens do AA, o padrão ERC-4337 ainda está iterando rapidamente para abordar suas desvantagens atuais:
Ao contrário do EOA, uma vez que um EOA é criado, ele pode ser usado em qualquer cadeia compatível com o EVM, pois o mesmo par de chaves público-privadas pode ser usado para interagir em diferentes cadeias. No entanto, devido à natureza do AA sendo uma Conta de Contrato (CA), um novo contrato AA precisa ser implantado separadamente em cada cadeia ou Camada 2. O alto custo de implantação de contratos AA pode desencorajar os usuários de adotar AAs.
Além disso, se os usuários implantarem de forma inadequada, como usar diferentes Fábricas para implantar contas de contrato AA, eles podem acabar com diferentes endereços AA em diferentes cadeias, o que pode causar confusão significativa e dificuldade de uso e compreensão. Embora as Fábricas atuais da Carteira AA tenham conseguido gerar o mesmo endereço AA em diferentes cadeias, os usuários ainda precisam ter cautela ao verificar os protocolos que estão usando para garantir que seus endereços AA permaneçam consistentes em várias cadeias, evitando assim quaisquer problemas ou confusões futuras.
Como mencionado, as contas AA exigem que os usuários implantem os contratos AA gerados pela Wallet Factory em diferentes cadeias e Layer2 separadamente. Mesmo com as sidechains atuais, cadeias compatíveis com EVM e taxas de gás mais baixas da Layer2, ainda é um gasto significativo. Com as taxas de gás atuais e o preço do ETH em $1800, implantar uma conta AA na mainnet do ETH custaria aproximadamente $20-$40, enquanto em cadeias compatíveis com EVM ou Layer2, variaria de $0.5 a $5. Para a maioria dos usuários, é difícil aceitar o custo de implantação antes mesmo de usar o Dapp. Supondo que esse custo seja subsidiado por um Aglutinador ou Mestre de Pagamento, o custo do subsídio ainda é muito alto e requer um forte incentivo.
Dependendo da implementação do AA e do número de transações agrupadas em uma única transação do Bundler (quanto mais transações, menor o custo de gás por UserOP), o consumo de gás das transações padrão ERC-4337 atuais pode ser várias vezes maior do que o das contas regulares EOA. Isso ocorre porque uma transação iniciada por uma conta de AA frequentemente exige a chamada de 3 ou mais contratos e envolve cálculos complexos, como a verificação de assinatura BLS on-chain. O padrão ERC-4337 atual também está sendo otimizado para isso, com o seguinte roteiro:
Acabamos de mencionar o custo relativamente alto de usar o padrão ERC-4337. Quais são os custos específicos? Primeiro, vamos introduzir um conceito, que é a fórmula de cálculo para taxas de gás:
taxa = gás × preço
Então, quais são os custos de implantação e uso do ERC-4337? A equipe da StackUp forneceu estimativas precisas em seu blog.
https://www.stackup.sh/blog/how-much-more-expensive-is-erc-4337
Tabela 1. Gás para transações ERC-4337
A tabela acima mostra:
Tabela 2. Estimativas de taxas de gás para transações ERC-4337
Esta tabela fornece estimativas de custo para várias operações na conta AA ERC-4337 usando os preços atuais do gás. Podemos observar o seguinte:
Em resumo, devido ao alto custo de criação de contas AA ERC-4337 na mainnet, é provável que a adoção em larga escala ocorra primeiro nas cadeias Layer2 e EVM-compatíveis.
Outro obstáculo para o desenvolvimento de AA é a compatibilidade da infraestrutura com contratos AA. A maioria das Dapps fora da cadeia nativa de AA só suporta contas EOA. O suporte para AA requer que as Dapps usem o SDK da AA para transações e modifiquem os parâmetros de consulta para informações do usuário.
Além disso, navegadores blockchain como Etherscan são projetados principalmente para EOAs. Para melhorar a conveniência de consultar contas AA, esses navegadores podem exigir uma série de otimizações de UI e UX.
Exceto pelo Ethereum, a maioria das novas blockchains públicas já implementou contas AA nativas.
Os AAs nativos são implementados na camada de consenso da cadeia, o que significa que não requerem desenvolvedores da comunidade para implantação. Estes são geralmente contratos internos ou do sistema desenvolvidos e mantidos pelos desenvolvedores da blockchain.
Custos mais baixos de implementação e taxas extras de gás
Contratos internos frequentemente possuem permissões e prioridades mais altas, e seus cálculos de gás são diferentes dos contratos externos. Portanto, os AAs nativos têm custos de implantação mais baixos e geralmente não adicionam sobrecarga significativa de gás.
A atualização dos AAs nativos requer que os desenvolvedores da cadeia pública sejam responsáveis, frequentemente necessitando de bifurcações suaves ou duras. Isso os torna menos flexíveis do que o ERC-4337 modular, limitando o ritmo de iteração e lançamento de novos recursos.
Correntes com AA nativos estão estudando ativamente a extensibilidade e modularidade do ERC-4337, permitindo que mais recursos sejam construídos em cima dos AA nativos.
Near implementa AAs nativos na camada de consenso com contas armazenadas diretamente na blockchain. Ele suporta múltiplas chaves de acesso e recuperação social (e-mail, número de telefone). A seguinte imagem ilustra as diferenças entre uma conta ETH e uma conta Near.
Devido ao modelo de Propriedade de Recursos em Aptos e Sui, tanto Aptos quanto Sui implementaram AA nativo na camada de consenso. Tomando Aptos como exemplo, uma conta de Aptos é um conjunto de recursos na blockchain, então ao criar uma conta de Aptos, é necessário pré-pagar Aptos para concluir a inicialização da conta. As contas de Aptos/Sui também suportam a alteração da chave de autenticação, mas o endereço da conta permanece o mesmo, entre outras características de AA.
Ao contrário de Near/Aptos/Sui/Starknet, o ZKsync suporta tanto EOA quanto AA na camada de consenso. Portanto, o ZKsync pode iniciar transações usando tanto EOA quanto AA, permitindo que seja usado com carteiras populares como Metamask e Argent. O design de AA do ZKSync é baseado no ERC-4337, tornando-o compatível com carteiras e Dapps que suportam EIP-4337. Atualmente, o custo adicional de gás para transações de AA no ZKsync é aproximadamente execution_gas + 20000, o que equivale a cerca de 0.01USD no momento da escrita. Este é um custo pequeno em comparação com o ERC-4337 de AA não nativo.
Starknet suporta nativamente AA e não suporta transações iniciadas por EOA. As contas AA no Starknet são projetadas com base no ERC-4337. Atualmente, os contratos AA no Starknet são fornecidos pela OpenZeppelin e desenvolvidos usando Cairo.
As contas nativas de AA em ICP são chamadas de Identidade na Internet (II para abreviar). A implementação do II é diferente do ERC-4337. O II utiliza o WebAuthn, comumente usado em estruturas Web2, permitindo que os usuários controlem suas contas usando os chips de segurança embutidos em seus smartphones. Os usuários podem livremente adicionar e remover dispositivos. Em essência, o II transforma os dispositivos de smartphone do usuário em carteiras de hardware.
O Bundler substitui a Mempool de nó anterior no ecossistema AA. Os UserOps não são mais enviados para Validadores, mas sim para Bundlers para empacotamento e processamento on-chain. Os bundlers principais são os seguintes:
O bundler do Stackup é implementado no Go lang e visa se integrar perfeitamente com o Go Ethereum (geth). É o primeiro empacotador padrão de produção nesta lista que está totalmente em conformidade com o ERC-4337. O Stackup é mantido ativamente e tem documentação abrangente, tornando-o o empacotador mais popular atualmente. O Stackup fornece serviços de empacotador, eliminando a necessidade de as equipes configurarem seu próprio serviço de empacotador.
O bundler do Infinitism é desenvolvido em TypeScript e foi desenvolvido pelo autor original do ERC-4337. O Infinitism também desenvolve contratos ERC-4337, tornando seu bundler altamente compatível com o ERC-4337. No entanto, é necessária uma verificação adicional para desempenho e estabilidade, uma vez que é desenvolvido em TypeScript.
Skandha é um agrupador baseado em TypeScript desenvolvido pela Etherspot. Etherspot está ativo na implementação da mempool do agrupador. Skandha passou em todos os testes em abril de 2023.
Voltaire é um protocolo de agrupamento desenvolvido pela equipe de Candide para apoiar sua própria carteira Candide. Voltaire é uma implementação baseada em Python do ERC-4337. Voltaire atualmente fornece bom suporte para a própria carteira de código aberto da Candide.
Rundler é um protocolo Bundler desenvolvido pela Alchemy, o maior provedor de serviços de nó para Ethereum. Atualmente, Rundler não é de código aberto, mas devido à grande base de usuários da Alchemy, pode receber suporte de tráfego significativo.
O Bundler está atualmente em uma fase de desenvolvimento e iteração rápida.
O ponto de dor atual que o bundler precisa abordar é a consistência e os problemas de comunicação do mempool do bundler. Supondo que existam múltiplos protocolos de bundler no mercado e haja uma falta de comunicação entre eles, isso pode levar a um sério problema de ataques de DDoS ao bundler. Se um usuário enviar transações simultaneamente para múltiplos bundlers sem comunicação entre eles, esses bundlers irão empacotar e enviar UserOps simultaneamente para o validador. No entanto, apenas o UserOp do primeiro bundler será executado, e as transações dos bundlers restantes serão rejeitadas devido ao mesmo nonce. Nesse caso, se o paymaster do usuário tiver saldo insuficiente, os bundlers pagarão gás inválido para esses UserOps. Portanto, atualmente, a comunicação entre bundlers é um problema que precisa ser abordado para evitar ataques de spam de UserOp aos bundlers.
Os bundlers atuais são altamente centralizados. Se os bundlers colocarem certos usuários na lista negra, isso resultaria em suas transações não podendo ser executadas. Isso vai contra a natureza descentralizada e sem permissão do blockchain.
Paymaster é uma parte importante do AA, pois pode subsidiar as taxas de gás dos usuários e reduzir significativamente a barreira de entrada para o Web3. Aqui estão algumas implementações populares de paymaster:
pagador de acúmulos
O paymaster da Stackups faz parte do ecossistema Stackups AA. A Stackups implementou um painel de paymaster onde DApps ou outros provedores de serviços podem configurar suas próprias contas de subsídio em https://app.stackup.sh/sign-inpatrocinar as transações dos usuários.
Painel Biconomy
O Painel Biconomy permite que organizações e desenvolvedores utilizem os componentes AA em seus projetos. Os proprietários de projetos podem configurar seus projetos para pagar taxas de gás para os usuários por meio de pagadores e adicionar condições de patrocínio de gás. Ao registrar seu pagador para qualquer cadeia suportada, os DApps podem simplificar enormemente a experiência Web3 para os usuários.
Contas EOA tradicionais frequentemente lutam para alcançar descentralização, usabilidade e segurança simultaneamente.
Na estrutura tradicional EOA, os usuários frequentemente precisam adquirir tokens de blockchain como ETH através de moedas fiduciárias para usar aplicativos Web3. Isso geralmente envolve o uso de trocas centralizadas (CEX) para depositar moeda fiduciária, trocá-la pelo token necessário e, finalmente, transferi-lo para uma conta EOA recém-criada. Esse processo requer um entendimento significativo do Web3 e é oneroso em muitas regiões. Ao introduzir pagadores em AA, os custos iniciais de integração para os usuários podem ser delegados aos proprietários de projetos de DApps. A transferência de taxas de gás tem implicações significativas para a adoção em massa do Web3.
Atualmente, o ERC-4337 está em seus estágios iniciais, e inúmeras ferramentas estão sendo desenvolvidas com base nele. Do lado do paymaster, o UserOp do usuário pode ser auditado para evitar que tapetes aconteçam, como aprovações excessivas ou transferências de fundos não autorizadas. A auditoria de segurança do paymaster pode ser conduzida usando métodos bem estabelecidos no setor financeiro web2 para revisar transações problemáticas e garantir a segurança dos fundos do usuário.
Outra inovação em desenvolvimento é o isolamento de segurança das contas, como separar a conta de fundos da conta de jogo, etc. Quando os usuários utilizam funções DeFi conhecidas e de transferência, a conta de fundos com auditoria de segurança mais rigorosa é utilizada. Quando os usuários tentam GameFi ou DeFi desconhecido, a conta de jogo é utilizada. Dessa forma, sem aumentar as chaves privadas que os usuários precisam gerenciar, o design de isolamento de segurança das contas garante a segurança dos fundos dos usuários no nível subjacente.
Atualmente, muitos dispositivos, como smartphones e laptops, possuem chips seguros embutidos, como o Apple T2 Security Chip usado no Mac e no iPhone. Portanto, fundamentalmente, todo dispositivo com um chip Tee é uma carteira de hardware confiável. No entanto, esses chips seguros atualmente não suportam algoritmos de assinatura de blockchain comuns como ECDSA.
A segurança atual das chaves privadas EOA em plugins/cartei-ras móveis é armazenada diretamente em texto simples no dispositivo. Se o dispositivo for comprometido, os ativos do usuário podem ser rapidamente perdidos. Portanto, as carteiras de extensão do navegador, como o Metamask, têm alta usabilidade, mas baixa segurança.
Carteiras de hardware
As carteiras de hardware garantem que as chaves privadas nunca saem do dispositivo e não podem ser acessadas diretamente por partes externas. No entanto, a maioria dos usuários não pode carregar suas carteiras de hardware consigo o tempo todo, resultando em alta segurança, mas baixa usabilidade.
Ao usar a carteira AA e o inovador método de verificação on-chain, as transações podem ser assinadas diretamente pelo chip seguro do dispositivo, garantindo que a chave privada do usuário nunca deixe o dispositivo. Isso proporciona maior segurança em comparação com contas EOA tradicionais. Atualmente, a Identidade da Internet do Computador da Internet e um projeto chamado Carteira Porton no ETHBogota Hackathon implementaram uma solução que utiliza a assinatura do chip seguro do dispositivo e chave de sessão, permitindo que os usuários utilizem plenamente a segurança de seus dispositivos, como smartphones ou computadores, equivalente a uma carteira de hardware.
Graças ao design altamente modular do ERC-4337, por meio de sua expansão e iteração, as contas AA alcançarão segurança significativamente melhorada.
Atualmente, outro obstáculo para a adoção em massa da Web3 é a fragmentação dos ecossistemas blockchain em diferentes cadeias.
Como exemplo simples, vamos considerar um usuário na Ethereum (ETH) que deseja experimentar um aplicativo na Binance Smart Chain (BSC). O que esse usuário deve fazer? Primeiro, o usuário precisa trocar sua ETH pelos correspondentes USDT/USDC e depois usar uma ponte entre cadeias para transferir esses tokens da ETH para a BSC. Depois disso, o usuário precisa comprar alguns BNB de uma exchange centralizada (CEX) e transferi-los para a BSC. Somente então o usuário poderá começar a experimentar vários aplicativos DeFi na BSC. Todo esse processo é demorado, tem pouca segurança e vem com uma curva de aprendizado íngreme, especialmente para novos usuários que podem não estar familiarizados com pontes entre cadeias.
Através dos protocolos de interoperabilidade atualmente comumente utilizados, como Layer0 + AA, o processo de uso de DApp em diferentes cadeias pode ser muito simplificado. O pagador pode integrar totalmente os protocolos de interoperabilidade para alcançar "cobrar uma vez, pagar em todos os lugares". Por exemplo, se um usuário recarrega USDC no pagador de ETH, desde que a conta AA do usuário em diferentes cadeias seja a mesma e esteja vinculada ao mesmo pagador, o pagador pode lidar com a contabilidade em nome do usuário. O usuário não precisa transferir manualmente ativos para qualquer cadeia compatível com EVM/Layer2 com o mesmo endereço de conta.
A maior vantagem de introduzir o paymaster é que ele estabelece programaticamente condições para subsidiar os usuários do Dapp.
No passado, houve casos em que projetos do ecossistema Web3 subsidiaram gás para atrair clientes. No entanto, subsidiar contas EOA sem definir condições programaticamente frequentemente resultou no uso indevido de fundos de subsídio por bots e fraudadores, como a transferência direta dos fundos de subsídio, sem atrair clientes genuínos.
Atualmente, os painéis de controle do paymaster geralmente incluem a funcionalidade de subsidiar taxas de gás para Dapps. Os desenvolvedores de projetos podem facilmente definir as condições para os subsídios no painel de controle, de modo que apenas transações que atendam a condições específicas sejam elegíveis para o subsídio. Ao controlar as condições de transação em subsídios através do paymaster, os Dapps podem atrair mais usuários genuínos mantendo os custos sob controle.
Sob o EOA, devido à predominância da Metamask, os atuais Dapps são principalmente acessados através de interfaces web, resultando em uma maior participação de mercado para as carteiras de plug-in web. No entanto, a adoção em massa do web3 depende da participação dos usuários móveis, tornando o desenvolvimento e a adaptação do AA mais Mobile Native.
Com a crescente popularidade da Dark Forest, a tendência de jogos totalmente on-chain está emergindo silenciosamente. No entanto, a experiência do usuário ao usar EOA (Externally Owned Accounts) em jogos é muito ruim. Imagine ter que usar uma carteira para autorização ou assinar transações toda vez que você realizar qualquer ação em um jogo. Essa interrupção constante impede que os jogadores se concentrem totalmente no jogo em si. Para resolver esse problema, as Contas Arcade, que são versões especializadas de AA regulares, foram desenvolvidas especificamente para jogos totalmente on-chain. Essas contas autorizam operações de jogo específicas, permitindo que os jogadores participem de jogos totalmente on-chain sem a necessidade de autorização e assinatura de transações repetitivas. Como resultado, a experiência de jogo é muito melhorada. O aumento de jogos totalmente on-chain no futuro provavelmente impulsionará a adoção generalizada de contas AA.
Recentemente, o conceito de transações baseadas em intenção ganhou popularidade com o surgimento da Unibot, e a Uniswap também lançou o projeto Uniswap X para promover a implementação de transações baseadas em intenção. O exemplo a seguir pode explicar o que são transações baseadas em intenção:
Se alguém estiver disposto a executar a intenção, a contraparte inicia outra intenção de transferir 1000 USDT para Alice e receber 1 ETH.
A transação foi correspondida com sucesso.
Transações Baseadas em Intenção oferecem as seguintes vantagens:
Atualmente, o CowSwap implementou Transações Baseadas em Intenção com base em EOA. No entanto, as Transações Baseadas em Intenção com base em EOA ainda exigem que os usuários autorizem (ERC-20, Aprovar) antes de iniciar a transação. No entanto, sob a nova arquitetura de conta do AA, os usuários podem enviar Aprovar e Intenção juntos para o empacotador. O empacotador do AA pode acessar simultaneamente a Enquete de Intenções, combinar intenções e fornecer uma experiência de negociação mais conveniente.