A carregar preços…

O que é a Abstração de Contas ERC-4337? Guia em Linguagem Simples

A ERC-4337 é um padrão da Ethereum que transforma cada carteira num contrato inteligente programável, eliminando as seed phrases e permitindo que outra pessoa pague o seu gás. Veja como funciona na prática.

O que é a Abstração de Contas ERC-4337? Guia em Linguagem Simples

Que problema é que a ERC-4337 tenta realmente resolver?

Se alguma vez utilizou uma carteira de cripto, provavelmente já passou pela mesma experiência frustrante que empurrou os programadores do Ethereum para a abstração de contas. Anota doze ou vinte e quatro palavras num pedaço de papel, perde o papel e perde o acesso aos seus fundos para sempre. Tenta enviar uma transação e descobre que precisa de ETH para pagar o "gas", mesmo que o token que quer trocar esteja mesmo ali. Assina uma transação maliciosa e a sua carteira é esvaziada antes de perceber o que aconteceu. Nenhuma destas coisas seria aceitável numa aplicação normal, e nenhuma delas é inerente à criptografia. São consequências de uma escolha de design feita em 2013: uma conta Ethereum é apenas uma chave privada, e uma chave privada não perdoa.

A abstração de contas é a ideia antiga de tornar a própria conta a parte inteligente, não a assinatura. Em vez de uma carteira ser uma chave burra que assina ou recusa, a carteira torna-se um pequeno programa com regras: quanto se pode gastar por dia, quem pode co-assinar uma transação, que tokens contam como pagamento e o que acontece se o titular não estiver disponível. A ERC-4337 é a norma que finalmente lança essa ideia na mainnet do Ethereum, em 2023, sem exigir um hard fork ou uma nova camada de consenso.

A proposta é simples. Se consegue descrever uma funcionalidade em código, a sua carteira pode tê-la. Perdeu o telemóvel? Três amigos podem votar para o repor. Quer integrar um amigo sem ETH? A aplicação paga-lhe o gas em USDC. Quer jogar um jogo que assina jogadas automaticamente? Pode emitir uma chave de sessão que expira ao fim de uma hora e só funciona num contrato. A contrapartida, e chegaremos lá, é que cada funcionalidade nova é uma linha de código nova que alguém pode explorar.

Como diferem as EOAs das contas inteligentes

Hoje, a maioria dos utilizadores do Ethereum detém uma Externally Owned Account, ou EOA. Uma EOA é uma chave privada que controla um endereço. A chave produz uma assinatura, a assinatura prova que é dono do endereço e a rede debita o seu saldo. Esse é todo o modelo. Não há regra que possa acrescentar, nenhum caminho de recuperação e nenhuma forma de mudar o esquema de assinatura. Perca a chave, perca a conta. Não há linha de apoio ao cliente, porque não há empresa. A matemática é honesta; a experiência do utilizador é brutal.

Uma conta inteligente, no mundo da ERC-4337, inverte este modelo. A conta é um contrato inteligente implementado no Ethereum. Em vez de uma chave privada ser a única forma de autorizar uma ação, o contrato verifica a lógica que o seu titular programou: talvez uma única assinatura funcione para pagamentos pequenos, talvez uma hardware wallet e um telemóvel sejam ambos necessários acima de um certo limite, talvez a conta recuse interagir com um contrato conhecido como malicioso. O titular continua a precisar de uma chave para assinar, mas a chave é apenas uma entrada num processo de decisão mais rico.

Isto parece uma pequena mudança, mas as consequências são grandes. Uma conta inteligente pode ser atualizada (com cuidado) se for encontrado um bug. Pode ser controlada por vários dispositivos em simultâneo. Pode recuperar-se a si própria. Pode pagar gas em qualquer token, ou ter outra pessoa a pagar o seu gas por completo. Nada disto é possível com uma simples EOA, e essa lacuna é a razão pela qual a comunidade Ethereum passou anos a discutir como lançar a abstração de contas.

Como funciona o ERC-4337: UserOperation, EntryPoint e bundlers

O truque engenhoso do ERC-4337 é que ele não altera o formato de transação da Ethereum. Em vez disso, introduz um mempool paralelo, de nível superior, de objetos chamados UserOperations. Pense numa UserOperation como um "desejo de transação" que contém tudo o que uma transação normal da Ethereum conteria, mais campos extra para funcionalidades de smart account: o endereço da smart account, a lógica de assinatura, o método de pagamento de gás, e assim por diante.

Quando quer fazer algo com uma smart account, a sua carteira constrói uma UserOperation e envia-a para uma nova peça de infraestrutura: um bundler. Um bundler é um operador de nó, semelhante a um minerador ou validador, que observa este mempool especial. O bundler recolhe UserOperations, agrupa-as numa única transação regular da Ethereum e chama o contrato EntryPoint. O EntryPoint é um contrato singleton (um endereço para toda a rede) que sabe como validar cada UserOperation, executar a lógica da conta, cobrar o gás e liquidar atomicamente todo o lote.

Do ponto de vista do utilizador, a experiência é a mesma de antes: clicar em confirmar, esperar alguns segundos, ver o resultado. Nos bastidores, a sua intenção tornou-se uma UserOperation, foi apanhada por um bundler a competir com outros bundlers, foi envolvida numa transação real e foi executada pelo EntryPoint em nome da sua smart account. Tudo isto sem exigir que os detentores de ETH façam algo diferente, e sem um hard fork. Essa é a elegância do ERC-4337: é uma atualização puramente ao nível de smart contracts sobre uma camada base inalterada.

Paymasters: como funciona na prática o patrocínio de gás

Um dos principais benefícios da abstração de contas é que os utilizadores já não precisam de deter ETH apenas para pagar gás. O mecanismo que torna isto possível é o paymaster. Um paymaster é outro smart contract que aceita pagar ao EntryPoint em nome de um utilizador, em troca de algo: uma taxa em USDC, uma assinatura, uma visualização de anúncio, ou simplesmente como um custo de marketing que a dApp absorve para atrair utilizadores.

Quando a sua carteira constrói uma UserOperation, pode opcionalmente apontar para um contrato paymaster. O EntryPoint chamará o paymaster durante a execução e perguntará: "Vai pagar por isto?" O paymaster verifica as suas próprias regras: talvez o utilizador tenha uma subscrição de API válida, talvez a transação seja para uma dApp na whitelist, talvez o utilizador se tenha inscrito num período de teste gratuito. Se o paymaster disser que sim, o gás é debitado do saldo de ETH do paymaster, não do seu. Se disser que não, a transação reverte e não lhe é cobrado nada.

Isto desbloqueia o tipo de fluxo de onboarding que tem sido padrão na web2 durante décadas, mas impossível on-chain até agora. Um jogo pode permitir que novos jogadores se inscrevam com um email, mintem um NFT e comecem a jogar, tudo sem nunca pedir ao utilizador para comprar ETH numa exchange primeiro. Uma DEX pode subsidiar as primeiras dez swaps para cada nova carteira. Um fornecedor de carteiras pode incluir gás gratuito como parte do seu plano premium. A contrapartida é que está agora a confiar no código do contrato paymaster, o que nos leva aos riscos.

Recuperação social e outras funcionalidades de smart account

De todas as melhorias que a abstração de contas permite, a recuperação social é a mais provável de mudar a forma como as pessoas comuns usam cripto. A ideia é simples: em vez de uma seed phrase, nomeia um conjunto de contactos de confiança, chamados "guardiões", que podem aprovar coletivamente uma recuperação se perder o acesso. Os guardiões podem ser amigos, familiares, outras carteiras que possui, ou até serviços institucionais. Uma configuração comum é exigir que "3 de 5" guardiões concordem, para que nenhum contacto comprometido isoladamente o possa esvaziar.

Quando a recuperação é acionada, há normalmente um período de espera (dias ou semanas) para que o proprietário original possa cancelar se a recuperação tiver sido fraudulenta. Durante essa janela, nenhuma transação pode ser enviada. Assim que o período terminar, o novo assinante assume o controlo. Comparado com o mundo binário "tem a seed phrase ou não" das EOAs, isto é uma grande vitória de usabilidade. Também significa que um portátil roubado não é uma emergência máxima: um ladrão precisaria também de comprometer vários guardiões antes de o temporizador expirar.

Para além da recuperação, as smart accounts podem oferecer chaves de sessão (chaves com tempo limitado que só funcionam para uma dApp específica), limites diários de gastos, contratos numa allowlist, levantamentos com time-lock, políticas de assinatura multifator, e até subscrições automáticas. Por outras palavras, o mesmo tipo de guardrails que uma conta bancária tem há um século. Nenhuma destas funcionalidades é gratuita; todas acrescentam área de superfície ao contrato, e cada linha de código é um potencial bug. Mas o espaço de design está finalmente aberto.

Os riscos que deve compreender antes de migrar

A abstração de contas é uma atualização real, mas não é magia e não está isenta de riscos. O primeiro risco é o próprio EntryPoint. É um contrato singleton, o que significa que um endereço trata de todas as transações de abstração de contas na Ethereum. Se fosse encontrado um bug no EntryPoint, o raio de ação seria enorme. O EntryPoint já foi auditado várias vezes e é intencionalmente minimalista, mas a história da DeFi está cheia de contratos auditados que mesmo assim perderam dinheiro. Trate o risco do EntryPoint como um risco de camada base para smart accounts.

O segundo risco é o abuso e os bugs do paymaster. Um paymaster é um contrato que outras pessoas podem chamar, e qualquer código alcançável por input não confiável é um alvo. Já houve exploits no mundo real em que paymasters mal escritos foram esvaziados ou usados como armas de negação de serviço. Se uma dApp oferecer patrocinar o seu gás, está a confiar na implementação do paymaster dela. Se o patrocinador do paymaster ficar sem ETH, as suas transações simplesmente falharão, o que é irritante, mas não catastrófico.

O terceiro risco é o comprometimento do assinante. A recuperação social resolve o risco de perda da seed phrase, mas não resolve o problema mais comum de alguém enganá-lo para assinar uma transação maliciosa. Uma smart account que pede uma assinatura 2-de-3 para enviar fundos continua vulnerável a um ataque de phishing que obtenha ambas as assinaturas. A funcionalidade de recuperação social só ajuda se a usar com cuidado, com guardiões independentes e que compreendam o seu papel. Escolha guardiões tecnicamente competentes, geograficamente distribuídos e que não sejam enganados pelo mesmo esquema que o enganou a si.

Por fim, existe o risco operacional. Os bundlers são uma nova peça de infraestrutura operada por operadores independentes, e a rede está mais descentralizada hoje do que estava há um ano, mas ainda é menos madura do que a camada base da Ethereum subjacente. Se o bundler de que depende ficar offline, a sua transação simplesmente será encaminhada para outro, mas vale a pena saber que a UX de que desfruta depende de esta nova camada se manter saudável.

Carteiras do mundo real e infraestrutura que utiliza ERC-4337

Algumas equipas têm vindo a disponibilizar smart accounts em produção desde que a ERC-4337 foi lançada em março de 2023. A Safe, anteriormente Gnosis Safe, foi a smart account multi-assinatura original e continua a ser uma das infraestruturas Ethereum mais auditadas. Os módulos Safe permitem agora que utilizadores comuns adicionem funcionalidades de abstração de conta por cima, incluindo chaves de sessão e recuperação, sem perder o modelo de segurança testado em batalha da Safe.

A Stackup é um fornecedor focado em programadores que oferece um SDK de smart account, bem como um serviço de bundler e paymaster alojado, que é a forma como muitas equipas lançam a sua primeira funcionalidade de abstração de conta sem construir infraestrutura de raiz. A Biconomy é outro fornecedor de abstração de conta de longa data, popular entre dApps que querem patrocínio de gas em stablecoins em vez de ETH. Outros nomes relevantes incluem ZeroDev, Account Kit da Alchemy, Pimlico para infraestrutura de bundler e Etherspot. O lado das carteiras do ecossistema inclui Ambire, Braavos na Starknet (uma cadeia diferente, mas a mesma ideia) e as funcionalidades experimentais de smart account da MetaMask.

Para os utilizadores, a experiência prática hoje varia. Algumas carteiras escondem por completo a complexidade da smart account: autenticas-te com uma passkey ou login social, e a gestão de chaves subjacente é abstraída. Outras expõem diretamente a configuração de guardian. O mercado ainda está a consolidar-se, e a carteira que escolhes hoje pode não ser a que utilizas daqui a dois anos, o que é, por si só, uma razão para compreenderes a mecânica subjacente em vez de confiar cegamente num único fornecedor.

O que significa isto para o utilizador comum de cripto

Se utilizas atualmente uma carteira EOA normal, não precisas de migrar amanhã. O teu endereço e saldo existentes continuarão a funcionar exatamente como antes, e a camada base do Ethereum não mudou. O que está a mudar é o conjunto de funcionalidades que podes adotar e a rapidez com que essas funcionalidades se tornam utilizáveis para utilizadores não técnicos.

O caminho de migração realista para a maioria das pessoas é o seguinte: mantém as tuas principais participações de longo prazo numa EOA apoiada por uma hardware wallet em que confias, e experimenta smart accounts para interações com dApps, gaming ou saldos mais pequenos, onde as vantagens de UX justificam o risco contratual adicional. Nos próximos anos, à medida que as auditorias se acumulam e os padrões amadurecem, espera que mais carteiras tornem as smart accounts a opção predefinida e que as EOAs se tornem o caso especial. A transição é gradual por design; nada na ERC-4337 te obriga a mudar, e essa opcionalidade é, ela própria, uma funcionalidade.

Como acompanhar a abstração de conta de forma inteligente

A abstração de conta está a evoluir rapidamente: novos fornecedores de carteiras, designs de paymaster e propostas de padrões surgem todos os meses, e as vozes mais ruidosas no Crypto Twitter nem sempre são as mais precisas. Acompanhar que equipas atraem utilizadores reais, que auditorias se mantêm válidas e que exploits surgem é um trabalho a tempo inteiro, e a maioria das pessoas tem coisas melhores para fazer. A Zippfeed destaca notícias sobre abstração de conta com pontuação de sentimento (bullish, neutral ou bearish) e uma classificação de importância, para que possas separar o progresso genuíno de protocolo do hype e decidir por ti próprio quando, ou se, deves migrar os teus próprios fundos.

Perguntas frequentes

A ERC-4337 é segura de usar?
A ERC-4337 em si é um padrão, não um produto, por isso a segurança depende da smart account, do bundler e do paymaster que escolher. O contrato EntryPoint já foi auditado várias vezes, mas as smart accounts continuam a ser mais recentes e menos testadas em batalha do que as carteiras físicas, e os exploits históricos em DeFi mostram que código auditado não é o mesmo que código seguro. Trate qualquer migração como uma experiência deliberada e de baixo risco, para começar.
Como é que a abstração de contas elimina as seed phrases?
As smart accounts substituem a seed phrase única por uma recuperação programável, geralmente através de um modelo de "recuperação social", em que contactos de confiança chamados guardians podem aprovar em conjunto um novo signatário caso perca o acesso. A seed phrase continua a existir por baixo, mas pode ser guardada num cofre físico ou dividida entre os guardians, para que nenhum ponto único de falha o deixe de fora. Isto não é o mesmo que "não ter chaves"; é uma redistribuição de confiança.
Devo migrar a minha carteira principal de ETH para uma smart account?
A maioria dos utilizadores mais preocupados com a segurança mantém as suas holdings principais e de longo prazo numa EOA apoiada por hardware e usa smart accounts para interagir com dApps, fazer testes e guardar saldos mais pequenos. As smart acrescetam flexibilidade, mas também acrescentam área de superfície de contrato, dependência do EntryPoint e risco do paymaster, pelo que a troca depende do peso que dá às vantagens de experiência face à superfície de ataque adicional. Isto é conteúdo educativo, não aconselhamento financeiro; faça a sua própria pesquisa antes de mover fundos significativos.
Qual é a diferença entre a ERC-4337 e a EIP-3074?
A ERC-4337 adiciona um mempool paralelo de UserOperation e um contrato EntryPoint sobre a Ethereum, permitindo que as smart accounts funcionem sem alterar o protocolo base. A EIP-3074, pelo contrário, teria alterado o formato das transações da Ethereum para que as EOAs delegassem o controlo a um contrato inteligente, o que exigia uma atualização da rede e levantava preocupações de segurança mais invasivas. A comunidade acabou por convergir na ERC-4337 porque é implementada sem um hard fork, embora a EIP-7702, incluída na atualização Pectra, tenha retomado mais tarde algumas das ideias da 3074 sob outra forma.
Tokens relacionados
$ETH