A essência da abstração da 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; são criados e geridos por EOAs. O EOA que criou o endereço do contrato USDT é 0x36928500Bc1dCd7af6a2B4008875CC336b927D57.
Assim, compreendemos 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 externos porque a única forma de interagir com a cadeia Ethereum é através de EOAs. Portanto, a AA serve como uma implementação padronizada e modular de carteiras de CA, que continua 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, surgiram várias carteiras de contratos. A mais conhecida é a carteira Parity, desenvolvida pela equipe de Gavin Wood, os fundadores da PolkaDot. A 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 contratos.
Como resultado, as carteiras AA requerem prática extensiva e padronização para evitar que incidentes semelhantes ocorram.
A carteira multi-assinatura Gnosis é atualmente a carteira Multi-sig mais popular e é utilizada 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 impedir que os membros da equipe ajam de forma maliciosa. Equipes notáveis que usam o Gnosis Safe incluemYearn,Aave, eBalancer. A segurança do Gnosis Safe é extremamente elevada, mas o seu uso é relativamente caro, o que é um problema comum com as carteiras CA.
A carteira Unipass combina a tecnologia MPC e carteiras de contratos CA, permitindo aos utilizadores usar o login social sem a custódia própria de uma carteira EOA. Deve ser notado que tanto a carteira Parity como a Gnosis Safe ainda requerem que os utilizadores guardem as 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 o ERC-4337:
Podemos resumir as principais diferenças entre AA e CA tradicional da seguinte forma:
Antes de compreender completamente AA, muitas pessoas frequentemente confundem os conceitos de AA e MPC porque ambos suportam funcionalidades como recuperação social e plugins sem navegador. As diferenças essenciais entre AA e MPC são as seguintes:
A seguir, vamos apresentar o MPC e suas características únicas.
As soluções de MPC são amplamente utilizadas nos logins sociais atuais, e muitos projetos lançaram carteiras de MPC para proporcionar uma experiência de carteira sem corrente, eliminando a necessidade de os utilizadores instalarem carteiras de plug-ins ou gerirem chaves privadas. Na indústria, estes tipos de carteiras geridas são referidas coletivamente como Wallet-as-a-Service (WaaS). Os projetos maduros incluem:
Perante um número crescente de serviços WaaS, é previsível que no futuro haja mais produtos a oferecer WaaS. No entanto, as exchanges centralizadas têm um volume absoluto de utilizadores e uma vasta experiência comercial neste campo, pelo que é possível que todas as exchanges centralizadas venham a disponibilizar serviços relacionados no futuro.
A principal desvantagem das Contas Externamente Proprietárias (EOA) tradicionais é que os utilizadores são responsáveis por armazenar as suas próprias chaves privadas. Esta auto-guarda apresenta os seguintes problemas:
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 retomar o controle sobre seu AA. O fluxo comum para recuperação social é o seguinte:
Através deste processo de apelo, mesmo que o utilizador perca o controlo do EOA que governa o AA, ainda pode mudar para um novo EOA. Ao contrário do login social MPC (Computação Multi-Partes), esta recuperação social é totalmente descentralizada e não tem um único ponto de falha.
A delegação de gás é fundamental para a adoção em massa da blockchain. Para novos utilizadores que entram na Web3, o maior ponto de dor é pré-financiar as taxas de gás. Ao utilizar o Paymaster da AA para delegar gás, os novos utilizadores podem ser subsidiados, reduzindo 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 blockchains. O Paymaster, através da integração de protocolos entre blockchains como Layer0/Warmhole, permite aos utilizadores depositar na Chain A (por exemplo, Ethereum) e usar aplicativos de forma transparente noutra Chain B (por exemplo, Matic ou BSC), fazendo com que as fronteiras entre as blockchains desapareçam e ajudando novos Dapps a ganhar utilizadores de outras blockchains.
Embora tenhamos discutido as vantagens do AA, o padrão ERC-4337 ainda está a iterar rapidamente para resolver as suas desvantagens atuais:
Ao contrário do EOA, uma vez que um EOA é criado, pode ser usado em qualquer cadeia compatível com EVM, uma vez que o mesmo par de chaves público-privado pode ser usado para interagir em diferentes cadeias. No entanto, devido à natureza do AA como uma Conta de Contrato (CA), um novo contrato de AA precisa ser implantado separadamente em cada cadeia ou Camada2. O alto custo de implantação de contratos de AA pode desencorajar os usuários de adotar AAs.
Além disso, se os utilizadores fizerem implantações de forma inadequada, como usar Fábricas diferentes para implantar contas de contratos AA, podem acabar com endereços AA diferentes em diferentes cadeias, o que pode causar confusão significativa e dificuldade na utilização e compreensão. Embora as Fábricas de Carteiras AA atuais tenham conseguido gerar o mesmo endereço AA em diferentes cadeias, os utilizadores ainda precisam ter cuidado ao verificar os protocolos que estão a usar para garantir que os 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 implementem 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 a $1800, implementar 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 implementação antes mesmo de usar o Dapp. Supondo que esse custo seja subsidiado por um Agregador ou Pagador, o custo do subsídio ainda é muito alto e requer um forte incentivo.
Dependendo da implementação de AA e do número de transações agrupadas numa única transação 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 mais alto do que o das contas regulares EOA. Isto deve-se ao facto de uma transação iniciada por uma conta AA frequentemente exigir a chamada de 3 ou mais contratos e envolver cálculos complexos como a verificação de assinatura BLS on-chain. O padrão ERC-4337 atual também está a ser otimizado para este fim, com o seguinte roteiro:
Acabamos de mencionar o custo relativamente elevado de usar o padrão ERC-4337. Quais são os custos específicos? Primeiro, vamos apresentar um conceito, que é a fórmula de cálculo das taxas de gás:
taxa = gás × preço
Então, quais são os custos de implementação e utilização do ERC-4337? A equipe da StackUp forneceu estimativas precisas no 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 custos 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 generalizada ocorra primeiro nas cadeias Layer2 e EVM-compatíveis.
Outro obstáculo ao desenvolvimento de AA é a compatibilidade da infraestrutura com contratos AA. A maioria dos Dapps fora da cadeia AA nativa só suporta contas EOA. O suporte para AA requer que os 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, os navegadores de blockchain, como o Etherscan, são principalmente projetados 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 o Ethereum, a maioria das novas blockchains públicas já implementou contas AA nativas.
Os AA nativos são implementados na camada de consenso da cadeia, o que significa que não requerem desenvolvedores da comunidade para implementação. Estes são geralmente contratos internos ou contratos do sistema desenvolvidos e mantidos pelos desenvolvedores da blockchain.
Custos de implementação mais baixos e taxas adicionais de gás
Os contratos internos frequentemente têm permissões e prioridades mais elevadas, e os cálculos de gás deles são diferentes dos contratos externos. Portanto, os AAs nativos têm custos de implementaçã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, sendo frequentemente necessárias 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.
As cadeias com AAs nativos estão a estudar ativamente a extensibilidade e modularidade do ERC-4337, permitindo que mais funcionalidades sejam construídas em cima dos AAs nativos.
O Near implementa AAs nativos na camada de consenso com contas armazenadas diretamente no blockchain. Suporta múltiplas chaves de acesso e recuperação social (email, 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 funcionalidades de AA.
Ao contrário do Near/Aptos/Sui/Starknet, o ZKsync suporta tanto EOA como AA na camada de consenso. Portanto, o ZKsync pode iniciar transações usando tanto EOA como 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 o 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 redação. Este é um custo baixo 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 AA nativas em ICP são chamadas de Identidade na Internet (II para abreviar). A implementação de II é diferente do ERC-4337. II utiliza o WebAuthn, comumente usado em estruturas Web2, permitindo aos usuários controlar suas contas usando os chips de segurança integrados em seus smartphones. Os usuários podem adicionar e remover dispositivos livremente. Em essência, II transforma os dispositivos de smartphone do usuário em carteiras de hardware.
O Bundler substitui o Mempool node anterior no ecossistema AA. Os UserOps já não são enviados para os Validadores, mas sim para os Bundlers para serem embalados e processados na cadeia. Os bundlers principais são os seguintes:
O empacotador da Stackup é implementado em Go lang e tem como objetivo integrar-se perfeitamente com o Go Ethereum (geth). É o primeiro empacotador de padrão de produção nesta lista que está em plena conformidade com ERC-4337. A Stackup é ativamente mantida e tem documentação abrangente, tornando-a o empacotador mais popular no momento. A Stackup fornece serviços de empacotamento, eliminando a necessidade de equipes configurarem seu próprio serviço de empacotamento.
O bundler da Infinitism é desenvolvido em TypeScript e foi desenvolvido pelo autor original do ERC-4337. A 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 equipa Candide para suportar a sua própria carteira Candide. Voltaire é uma implementação baseada em Python do ERC-4337. Atualmente, o Voltaire fornece um bom suporte para a própria carteira de código aberto da Candide.
Rundler é um protocolo Bundler desenvolvido pela Alchemy, o maior fornecedor de serviços de nó para Ethereum. Atualmente, o Rundler não é de código aberto, mas devido à grande base de usuários da Alchemy, pode receber suporte significativo de tráfego.
O Bundler encontra-se atualmente numa fase de desenvolvimento e iteração rápidos.
O ponto de dor atual que o agrupador precisa abordar são as questões de consistência e comunicação do mempool do agrupador. Supondo que existam múltiplos protocolos de agrupamento no mercado e haja falta de comunicação entre eles, isso pode levar a um problema grave de ataques DDoS ao agrupador. Se um usuário enviar transações simultaneamente para vários agrupadores sem comunicação entre eles, esses agrupadores irão empacotar e enviar UserOps simultaneamente ao validador. No entanto, apenas o UserOp do primeiro agrupador será executado e as transações dos agrupadores restantes serão rejeitadas devido ao mesmo nonce. Neste caso, se o pagador do usuário tiver saldo insuficiente, os agrupadores pagarão gás inválido por esses UserOps. Portanto, atualmente, a comunicação entre os agrupadores é um problema que precisa ser abordado para evitar ataques de spam de UserOp aos agrupadores.
Os atuais agrupadores são altamente centralizados. Se os agrupadores colocarem certos utilizadores em lista negra, isso faria com que as suas transações não pudessem ser executadas. Isso vai contra a natureza descentralizada e sem permissão da blockchain.
O Paymaster é uma parte importante do AA, pois pode subsidiar as taxas de gás dos utilizadores e reduzir significativamente a barreira de entrada para a Web3. Aqui estão algumas implementações populares do paymaster:
pagador de acumulações
O pagador da Stackups faz parte do ecossistema Stackups AA. A Stackups implementou um painel de pagador onde DApps ou outros fornecedores de serviços podem configurar suas próprias contas de subsídio emhttps://app.stackup.sh/sign-inpatrocinar as transações dos utilizadores.
Painel Biconomy
O Painel Biconomy permite que organizações e desenvolvedores utilizem componentes AA em seus projetos. Os proprietários de projetos podem configurar seus projetos para pagar taxas de gás para os usuários através de mestres de pagamento e adicionar condições de patrocínio de gás. Ao registrar seu mestre de pagamento para qualquer cadeia suportada, os DApps podem simplificar muito a experiência Web3 para os usuários.
Contas EOA tradicionais muitas vezes lutam para alcançar simultaneamente descentralização, usabilidade e segurança.
No quadro EOA tradicional, os usuários muitas vezes precisam adquirir tokens blockchain como ETH através de moedas fiduciárias para usar aplicativos Web3. Isso geralmente envolve o uso de bolsas centralizadas (CEX) para depositar moeda fiduciária, trocá-la pelo token necessário e, finalmente, transferi-la para uma conta EOA recém-criada. Esse processo requer uma compreensão significativa do Web3 e é complicado em muitas regiões. Ao introduzir pagadores em AA, os custos iniciais de embarque 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á nos seus estágios iniciais e estão a ser desenvolvidas inúmeras ferramentas com base nele. Do lado do paymaster, o UserOp do utilizador pode ser auditado para evitar que ocorra um tapete, como aprovações excessivas ou transferências de fundos não autorizadas. A auditoria de segurança do paymaster pode ser realizada utilizando métodos bem estabelecidos no setor financeiro web2 para rever transações problemáticas e garantir a segurança dos fundos do utilizador.
Outra inovação em desenvolvimento é o isolamento de segurança de contas, como separar a conta de fundos da conta de jogo, etc. Quando os usuários usam funções DeFi familiares e de transferência, a conta de fundos com auditoria de segurança mais rigorosa é utilizada. Quando os usuários tentam GameFi ou DeFi pouco familiares, 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 de contas garante a segurança dos fundos dos usuários no nível subjacente.
Atualmente, muitos dispositivos, como smartphones e laptops, têm chips seguros incorporados, como o Apple T2 Security Chip usado no Mac e no iPhone. Portanto, fundamentalmente, cada dispositivo com um chip Tee é uma carteira de hardware confiável. No entanto, esses chips seguros atualmente não suportam algoritmos comuns de assinatura de blockchain como ECDSA.
A segurança atual das chaves privadas de EOA em plugins/cartões móveis é armazenada diretamente em texto simples no dispositivo. Se o dispositivo for comprometido, os ativos do usuário podem ser rapidamente perdidos. Portanto, 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 utilizadores não consegue transportar as 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 diretamente assinadas pelo chip seguro do dispositivo, garantindo que a chave privada do usuário nunca saia do dispositivo. Isso oferece maior segurança em comparação com as contas tradicionais EOA. Atualmente, a Identidade na Internet do Internet Computer e um projeto chamado Porton Wallet no ETHBogota Hackathon implementaram uma solução que utiliza a assinatura do chip seguro do dispositivo e a chave de sessão, permitindo aos usuários aproveitar totalmente 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, através da sua expansão e iteração, as contas AA alcançarão uma segurança significativamente melhorada.
Atualmente, outro obstáculo para a adoção em massa do Web3 é a fragmentação dos ecossistemas de blockchain em diferentes cadeias.
Como exemplo simples, vamos considerar um usuário na Ethereum (ETH) que deseja experimentar uma aplicação na Binance Smart Chain (BSC). O que deve fazer este usuário? Primeiro, o usuário precisa trocar os seus ETH pelos correspondentes USDT/USDC e depois utilizar 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. Só então o usuário pode começar a experimentar várias aplicações DeFi na BSC. Todo este processo é demorado, tem pouca segurança e tem uma curva de aprendizagem íngreme, especialmente para novos usuários que podem não estar familiarizados com pontes entre cadeias.
Através dos atuais protocolos de cadeia cruzada comumente usados, como Layer0 + AA, o processo de usar DApp em diferentes cadeias pode ser muito simplificado. O paymaster pode integrar totalmente protocolos de cadeia cruzada para conseguir "cobrar uma vez, pagar em qualquer lugar". Por exemplo, se um usuário recarrega USDC no mestre de pagamento de ETH, desde que a conta AA do usuário em cadeias diferentes seja a mesma e esteja vinculada ao mesmo mestre de pagamento, o paymaster pode lidar com a contabilidade em nome do usuário. O usuário não precisa transferir manualmente ativos para qualquer cadeia/camada2 compatível com EVM com o mesmo endereço de conta.
A maior vantagem de introduzir o paymaster é que estabelece programaticamente condições para subsidiar os utilizadores 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 muitas vezes levou ao uso indevido de fundos de subsídio por bots e fraudadores, como transferir diretamente os fundos de subsídio, sem atrair clientes genuínos.
Atualmente, os painéis do pagador geralmente incluem a funcionalidade de subsidiar as taxas de gás para Dapps. Os desenvolvedores de projetos podem facilmente definir as condições para os subsídios no painel, para 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 nos subsídios através do pagador, 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 carteiras de plug-ins web. No entanto, a adoção em massa do web3 depende da participação de usuários móveis, tornando o desenvolvimento e adaptação do AA mais Mobile Native.
Com a crescente popularidade do Dark Forest, a tendência de jogos totalmente on-chain está a surgir silenciosamente. No entanto, a experiência do utilizador ao usar EOA (Contas Possuídas Externamente) nos jogos é muito fraca. Imagine ter de usar uma carteira para autorização ou assinatura de transações sempre que realiza qualquer ação num jogo. Esta interrupção constante impede os jogadores de se concentrarem totalmente no próprio jogo. Para resolver este problema, foram desenvolvidas Contas Arcade, que são versões especializadas de AA regulares, especificamente para jogos totalmente on-chain. Estas contas autorizam operações de jogo específicas, permitindo aos jogadores participar em 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. É provável que o aumento de jogos totalmente on-chain no futuro impulsione a adoção generalizada de contas AA.
Recentemente, o conceito de transações baseadas em intenção ganhou popularidade com o surgimento do 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.
As transações baseadas em intenções proporcionam as seguintes vantagens:
Atualmente, o CowSwap implementou Transações Baseadas em Intenções com base em EOA. No entanto, as Transações Baseadas em Intenções com base em EOA ainda requerem que os utilizadores autorizem (ERC-20, Aprovar) antes de iniciar a transação. No entanto, sob a nova arquitetura de conta do AA, os utilizadores podem enviar Aprovar e Intenção juntos para o agrupador. O agrupador do AA pode aceder simultaneamente à Intenção Poll, combinar intenções e proporcionar uma experiência de negociação mais conveniente.
A essência da abstração da 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; são criados e geridos por EOAs. O EOA que criou o endereço do contrato USDT é 0x36928500Bc1dCd7af6a2B4008875CC336b927D57.
Assim, compreendemos 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 externos porque a única forma de interagir com a cadeia Ethereum é através de EOAs. Portanto, a AA serve como uma implementação padronizada e modular de carteiras de CA, que continua 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, surgiram várias carteiras de contratos. A mais conhecida é a carteira Parity, desenvolvida pela equipe de Gavin Wood, os fundadores da PolkaDot. A 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 contratos.
Como resultado, as carteiras AA requerem prática extensiva e padronização para evitar que incidentes semelhantes ocorram.
A carteira multi-assinatura Gnosis é atualmente a carteira Multi-sig mais popular e é utilizada 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 impedir que os membros da equipe ajam de forma maliciosa. Equipes notáveis que usam o Gnosis Safe incluemYearn,Aave, eBalancer. A segurança do Gnosis Safe é extremamente elevada, mas o seu uso é relativamente caro, o que é um problema comum com as carteiras CA.
A carteira Unipass combina a tecnologia MPC e carteiras de contratos CA, permitindo aos utilizadores usar o login social sem a custódia própria de uma carteira EOA. Deve ser notado que tanto a carteira Parity como a Gnosis Safe ainda requerem que os utilizadores guardem as 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 o ERC-4337:
Podemos resumir as principais diferenças entre AA e CA tradicional da seguinte forma:
Antes de compreender completamente AA, muitas pessoas frequentemente confundem os conceitos de AA e MPC porque ambos suportam funcionalidades como recuperação social e plugins sem navegador. As diferenças essenciais entre AA e MPC são as seguintes:
A seguir, vamos apresentar o MPC e suas características únicas.
As soluções de MPC são amplamente utilizadas nos logins sociais atuais, e muitos projetos lançaram carteiras de MPC para proporcionar uma experiência de carteira sem corrente, eliminando a necessidade de os utilizadores instalarem carteiras de plug-ins ou gerirem chaves privadas. Na indústria, estes tipos de carteiras geridas são referidas coletivamente como Wallet-as-a-Service (WaaS). Os projetos maduros incluem:
Perante um número crescente de serviços WaaS, é previsível que no futuro haja mais produtos a oferecer WaaS. No entanto, as exchanges centralizadas têm um volume absoluto de utilizadores e uma vasta experiência comercial neste campo, pelo que é possível que todas as exchanges centralizadas venham a disponibilizar serviços relacionados no futuro.
A principal desvantagem das Contas Externamente Proprietárias (EOA) tradicionais é que os utilizadores são responsáveis por armazenar as suas próprias chaves privadas. Esta auto-guarda apresenta os seguintes problemas:
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 retomar o controle sobre seu AA. O fluxo comum para recuperação social é o seguinte:
Através deste processo de apelo, mesmo que o utilizador perca o controlo do EOA que governa o AA, ainda pode mudar para um novo EOA. Ao contrário do login social MPC (Computação Multi-Partes), esta recuperação social é totalmente descentralizada e não tem um único ponto de falha.
A delegação de gás é fundamental para a adoção em massa da blockchain. Para novos utilizadores que entram na Web3, o maior ponto de dor é pré-financiar as taxas de gás. Ao utilizar o Paymaster da AA para delegar gás, os novos utilizadores podem ser subsidiados, reduzindo 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 blockchains. O Paymaster, através da integração de protocolos entre blockchains como Layer0/Warmhole, permite aos utilizadores depositar na Chain A (por exemplo, Ethereum) e usar aplicativos de forma transparente noutra Chain B (por exemplo, Matic ou BSC), fazendo com que as fronteiras entre as blockchains desapareçam e ajudando novos Dapps a ganhar utilizadores de outras blockchains.
Embora tenhamos discutido as vantagens do AA, o padrão ERC-4337 ainda está a iterar rapidamente para resolver as suas desvantagens atuais:
Ao contrário do EOA, uma vez que um EOA é criado, pode ser usado em qualquer cadeia compatível com EVM, uma vez que o mesmo par de chaves público-privado pode ser usado para interagir em diferentes cadeias. No entanto, devido à natureza do AA como uma Conta de Contrato (CA), um novo contrato de AA precisa ser implantado separadamente em cada cadeia ou Camada2. O alto custo de implantação de contratos de AA pode desencorajar os usuários de adotar AAs.
Além disso, se os utilizadores fizerem implantações de forma inadequada, como usar Fábricas diferentes para implantar contas de contratos AA, podem acabar com endereços AA diferentes em diferentes cadeias, o que pode causar confusão significativa e dificuldade na utilização e compreensão. Embora as Fábricas de Carteiras AA atuais tenham conseguido gerar o mesmo endereço AA em diferentes cadeias, os utilizadores ainda precisam ter cuidado ao verificar os protocolos que estão a usar para garantir que os 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 implementem 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 a $1800, implementar 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 implementação antes mesmo de usar o Dapp. Supondo que esse custo seja subsidiado por um Agregador ou Pagador, o custo do subsídio ainda é muito alto e requer um forte incentivo.
Dependendo da implementação de AA e do número de transações agrupadas numa única transação 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 mais alto do que o das contas regulares EOA. Isto deve-se ao facto de uma transação iniciada por uma conta AA frequentemente exigir a chamada de 3 ou mais contratos e envolver cálculos complexos como a verificação de assinatura BLS on-chain. O padrão ERC-4337 atual também está a ser otimizado para este fim, com o seguinte roteiro:
Acabamos de mencionar o custo relativamente elevado de usar o padrão ERC-4337. Quais são os custos específicos? Primeiro, vamos apresentar um conceito, que é a fórmula de cálculo das taxas de gás:
taxa = gás × preço
Então, quais são os custos de implementação e utilização do ERC-4337? A equipe da StackUp forneceu estimativas precisas no 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 custos 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 generalizada ocorra primeiro nas cadeias Layer2 e EVM-compatíveis.
Outro obstáculo ao desenvolvimento de AA é a compatibilidade da infraestrutura com contratos AA. A maioria dos Dapps fora da cadeia AA nativa só suporta contas EOA. O suporte para AA requer que os 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, os navegadores de blockchain, como o Etherscan, são principalmente projetados 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 o Ethereum, a maioria das novas blockchains públicas já implementou contas AA nativas.
Os AA nativos são implementados na camada de consenso da cadeia, o que significa que não requerem desenvolvedores da comunidade para implementação. Estes são geralmente contratos internos ou contratos do sistema desenvolvidos e mantidos pelos desenvolvedores da blockchain.
Custos de implementação mais baixos e taxas adicionais de gás
Os contratos internos frequentemente têm permissões e prioridades mais elevadas, e os cálculos de gás deles são diferentes dos contratos externos. Portanto, os AAs nativos têm custos de implementaçã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, sendo frequentemente necessárias 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.
As cadeias com AAs nativos estão a estudar ativamente a extensibilidade e modularidade do ERC-4337, permitindo que mais funcionalidades sejam construídas em cima dos AAs nativos.
O Near implementa AAs nativos na camada de consenso com contas armazenadas diretamente no blockchain. Suporta múltiplas chaves de acesso e recuperação social (email, 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 funcionalidades de AA.
Ao contrário do Near/Aptos/Sui/Starknet, o ZKsync suporta tanto EOA como AA na camada de consenso. Portanto, o ZKsync pode iniciar transações usando tanto EOA como 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 o 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 redação. Este é um custo baixo 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 AA nativas em ICP são chamadas de Identidade na Internet (II para abreviar). A implementação de II é diferente do ERC-4337. II utiliza o WebAuthn, comumente usado em estruturas Web2, permitindo aos usuários controlar suas contas usando os chips de segurança integrados em seus smartphones. Os usuários podem adicionar e remover dispositivos livremente. Em essência, II transforma os dispositivos de smartphone do usuário em carteiras de hardware.
O Bundler substitui o Mempool node anterior no ecossistema AA. Os UserOps já não são enviados para os Validadores, mas sim para os Bundlers para serem embalados e processados na cadeia. Os bundlers principais são os seguintes:
O empacotador da Stackup é implementado em Go lang e tem como objetivo integrar-se perfeitamente com o Go Ethereum (geth). É o primeiro empacotador de padrão de produção nesta lista que está em plena conformidade com ERC-4337. A Stackup é ativamente mantida e tem documentação abrangente, tornando-a o empacotador mais popular no momento. A Stackup fornece serviços de empacotamento, eliminando a necessidade de equipes configurarem seu próprio serviço de empacotamento.
O bundler da Infinitism é desenvolvido em TypeScript e foi desenvolvido pelo autor original do ERC-4337. A 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 equipa Candide para suportar a sua própria carteira Candide. Voltaire é uma implementação baseada em Python do ERC-4337. Atualmente, o Voltaire fornece um bom suporte para a própria carteira de código aberto da Candide.
Rundler é um protocolo Bundler desenvolvido pela Alchemy, o maior fornecedor de serviços de nó para Ethereum. Atualmente, o Rundler não é de código aberto, mas devido à grande base de usuários da Alchemy, pode receber suporte significativo de tráfego.
O Bundler encontra-se atualmente numa fase de desenvolvimento e iteração rápidos.
O ponto de dor atual que o agrupador precisa abordar são as questões de consistência e comunicação do mempool do agrupador. Supondo que existam múltiplos protocolos de agrupamento no mercado e haja falta de comunicação entre eles, isso pode levar a um problema grave de ataques DDoS ao agrupador. Se um usuário enviar transações simultaneamente para vários agrupadores sem comunicação entre eles, esses agrupadores irão empacotar e enviar UserOps simultaneamente ao validador. No entanto, apenas o UserOp do primeiro agrupador será executado e as transações dos agrupadores restantes serão rejeitadas devido ao mesmo nonce. Neste caso, se o pagador do usuário tiver saldo insuficiente, os agrupadores pagarão gás inválido por esses UserOps. Portanto, atualmente, a comunicação entre os agrupadores é um problema que precisa ser abordado para evitar ataques de spam de UserOp aos agrupadores.
Os atuais agrupadores são altamente centralizados. Se os agrupadores colocarem certos utilizadores em lista negra, isso faria com que as suas transações não pudessem ser executadas. Isso vai contra a natureza descentralizada e sem permissão da blockchain.
O Paymaster é uma parte importante do AA, pois pode subsidiar as taxas de gás dos utilizadores e reduzir significativamente a barreira de entrada para a Web3. Aqui estão algumas implementações populares do paymaster:
pagador de acumulações
O pagador da Stackups faz parte do ecossistema Stackups AA. A Stackups implementou um painel de pagador onde DApps ou outros fornecedores de serviços podem configurar suas próprias contas de subsídio emhttps://app.stackup.sh/sign-inpatrocinar as transações dos utilizadores.
Painel Biconomy
O Painel Biconomy permite que organizações e desenvolvedores utilizem componentes AA em seus projetos. Os proprietários de projetos podem configurar seus projetos para pagar taxas de gás para os usuários através de mestres de pagamento e adicionar condições de patrocínio de gás. Ao registrar seu mestre de pagamento para qualquer cadeia suportada, os DApps podem simplificar muito a experiência Web3 para os usuários.
Contas EOA tradicionais muitas vezes lutam para alcançar simultaneamente descentralização, usabilidade e segurança.
No quadro EOA tradicional, os usuários muitas vezes precisam adquirir tokens blockchain como ETH através de moedas fiduciárias para usar aplicativos Web3. Isso geralmente envolve o uso de bolsas centralizadas (CEX) para depositar moeda fiduciária, trocá-la pelo token necessário e, finalmente, transferi-la para uma conta EOA recém-criada. Esse processo requer uma compreensão significativa do Web3 e é complicado em muitas regiões. Ao introduzir pagadores em AA, os custos iniciais de embarque 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á nos seus estágios iniciais e estão a ser desenvolvidas inúmeras ferramentas com base nele. Do lado do paymaster, o UserOp do utilizador pode ser auditado para evitar que ocorra um tapete, como aprovações excessivas ou transferências de fundos não autorizadas. A auditoria de segurança do paymaster pode ser realizada utilizando métodos bem estabelecidos no setor financeiro web2 para rever transações problemáticas e garantir a segurança dos fundos do utilizador.
Outra inovação em desenvolvimento é o isolamento de segurança de contas, como separar a conta de fundos da conta de jogo, etc. Quando os usuários usam funções DeFi familiares e de transferência, a conta de fundos com auditoria de segurança mais rigorosa é utilizada. Quando os usuários tentam GameFi ou DeFi pouco familiares, 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 de contas garante a segurança dos fundos dos usuários no nível subjacente.
Atualmente, muitos dispositivos, como smartphones e laptops, têm chips seguros incorporados, como o Apple T2 Security Chip usado no Mac e no iPhone. Portanto, fundamentalmente, cada dispositivo com um chip Tee é uma carteira de hardware confiável. No entanto, esses chips seguros atualmente não suportam algoritmos comuns de assinatura de blockchain como ECDSA.
A segurança atual das chaves privadas de EOA em plugins/cartões móveis é armazenada diretamente em texto simples no dispositivo. Se o dispositivo for comprometido, os ativos do usuário podem ser rapidamente perdidos. Portanto, 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 utilizadores não consegue transportar as 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 diretamente assinadas pelo chip seguro do dispositivo, garantindo que a chave privada do usuário nunca saia do dispositivo. Isso oferece maior segurança em comparação com as contas tradicionais EOA. Atualmente, a Identidade na Internet do Internet Computer e um projeto chamado Porton Wallet no ETHBogota Hackathon implementaram uma solução que utiliza a assinatura do chip seguro do dispositivo e a chave de sessão, permitindo aos usuários aproveitar totalmente 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, através da sua expansão e iteração, as contas AA alcançarão uma segurança significativamente melhorada.
Atualmente, outro obstáculo para a adoção em massa do Web3 é a fragmentação dos ecossistemas de blockchain em diferentes cadeias.
Como exemplo simples, vamos considerar um usuário na Ethereum (ETH) que deseja experimentar uma aplicação na Binance Smart Chain (BSC). O que deve fazer este usuário? Primeiro, o usuário precisa trocar os seus ETH pelos correspondentes USDT/USDC e depois utilizar 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. Só então o usuário pode começar a experimentar várias aplicações DeFi na BSC. Todo este processo é demorado, tem pouca segurança e tem uma curva de aprendizagem íngreme, especialmente para novos usuários que podem não estar familiarizados com pontes entre cadeias.
Através dos atuais protocolos de cadeia cruzada comumente usados, como Layer0 + AA, o processo de usar DApp em diferentes cadeias pode ser muito simplificado. O paymaster pode integrar totalmente protocolos de cadeia cruzada para conseguir "cobrar uma vez, pagar em qualquer lugar". Por exemplo, se um usuário recarrega USDC no mestre de pagamento de ETH, desde que a conta AA do usuário em cadeias diferentes seja a mesma e esteja vinculada ao mesmo mestre de pagamento, o paymaster pode lidar com a contabilidade em nome do usuário. O usuário não precisa transferir manualmente ativos para qualquer cadeia/camada2 compatível com EVM com o mesmo endereço de conta.
A maior vantagem de introduzir o paymaster é que estabelece programaticamente condições para subsidiar os utilizadores 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 muitas vezes levou ao uso indevido de fundos de subsídio por bots e fraudadores, como transferir diretamente os fundos de subsídio, sem atrair clientes genuínos.
Atualmente, os painéis do pagador geralmente incluem a funcionalidade de subsidiar as taxas de gás para Dapps. Os desenvolvedores de projetos podem facilmente definir as condições para os subsídios no painel, para 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 nos subsídios através do pagador, 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 carteiras de plug-ins web. No entanto, a adoção em massa do web3 depende da participação de usuários móveis, tornando o desenvolvimento e adaptação do AA mais Mobile Native.
Com a crescente popularidade do Dark Forest, a tendência de jogos totalmente on-chain está a surgir silenciosamente. No entanto, a experiência do utilizador ao usar EOA (Contas Possuídas Externamente) nos jogos é muito fraca. Imagine ter de usar uma carteira para autorização ou assinatura de transações sempre que realiza qualquer ação num jogo. Esta interrupção constante impede os jogadores de se concentrarem totalmente no próprio jogo. Para resolver este problema, foram desenvolvidas Contas Arcade, que são versões especializadas de AA regulares, especificamente para jogos totalmente on-chain. Estas contas autorizam operações de jogo específicas, permitindo aos jogadores participar em 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. É provável que o aumento de jogos totalmente on-chain no futuro impulsione a adoção generalizada de contas AA.
Recentemente, o conceito de transações baseadas em intenção ganhou popularidade com o surgimento do 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.
As transações baseadas em intenções proporcionam as seguintes vantagens:
Atualmente, o CowSwap implementou Transações Baseadas em Intenções com base em EOA. No entanto, as Transações Baseadas em Intenções com base em EOA ainda requerem que os utilizadores autorizem (ERC-20, Aprovar) antes de iniciar a transação. No entanto, sob a nova arquitetura de conta do AA, os utilizadores podem enviar Aprovar e Intenção juntos para o agrupador. O agrupador do AA pode aceder simultaneamente à Intenção Poll, combinar intenções e proporcionar uma experiência de negociação mais conveniente.