Um guia rápido e simples para a abstração de contas e o EIP-4337

De autoria de Kiwi Yao, pesquisador @OKX Ventures

A abstração de contas (AC) tem sido um tema importante recentemente no espaço das criptomoedas por sua influência revolucionária no gerenciamento de contas individuais em Ethereum. Ao simplificar vários pontos problemáticos, esta pode ser a proposta que reduz a barreira de entrada para nativos que não são das criptomoedas. Esses benefícios incluem dissociar as fontes de transação das assinaturas e dar aos usuários mais flexibilidade na segurança da conta.

Quer saber mais? Aqui está tudo o que você precisa saber para entender a AC com a proposta do EIP-4337.

O que é abstração de conta?

Antes de mergulhar na AC, é importante primeiro entender os tipos de contas no Ethereum. Elas incluem contas externas (EOAs) e contas de contratos (CAs). As EOAs são controladas por chaves privadas e seed phrases, enquanto as contas de contratos são controladas por contratos inteligentes. A AC refere-se ao processo de dissociação das fontes de transação das assinaturas e da atualização de EOAs para CAs. Isto dará aos contratos inteligentes o controle sobre as EOAs e permitirá a criação de carteiras de contratos inteligentes, o que melhorará a experiência geral dos titulares de contas e desbloqueará uma maior flexibilidade de gerenciamento das contas.

Por que a AC é útil

A AC é amplamente bem-vinda pela comunidade Ethereum porque simplifica todo o processo de gerenciamento de contas. Alguns dos seus benefícios incluem oferecer mais flexibilidade para ações rígidas on-chain e permitir mais opções de segurança. Somente com essas melhorias, a AC melhora muito a experiência geral de interação com o ecossistema Ethereum, à medida que vários inconvenientes e pontos problemáticos são resolvidos.

A história da Ethereum com a AC

Antes de passar pela história da AC, vamos primeiro entender as várias Propostas de Melhoria do Ethereum (EIPs) que desempenham um papel na situação em que estamos hoje com a AC.

O EIP-2938 envolve a criação de contas de “nível superior” para CAs capazes de pagar taxas e executar transações. O EIP-3074 introduz dois novos OpCodes para permitir que EOAs usem contratos. Esses OpCodes são AUTH e AUTHCALL, que permitem às EOAs delegar suas ações a um contrato. Em última análise, isso permite que os desenvolvedores desenvolvam objetos de transação e mecanismos de verificação dentro de uma estrutura mais flexível.

O EIP-4337 revela o pool de memória de operações do usuário (user ops), que é uma nova lógica operacional que substitui o pool de memória de transação atual e habilita a AC.

Embora a AC tenha sido mencionada pela primeira vez como parte do EIP-2938 e do EIP-3074 em 2020, as alterações sugeridas acabaram sendo colocadas em espera. Isto ocorreu devido à necessidade de grandes alterações no protocolo da Ethereum. Com a introdução do EIP-4337, a AC será possível sem a necessidade de alterações de protocolo.

Comparação com outras soluções de abstração de contas

Embora o EIP-4337 possa parecer complexo para iniciantes no Ethereum, a solução de AC anterior, o EIP-3074, envolveu a introdução de dois novos códigos operacionais. Como isso envolveu extensas mudanças na camada de consenso do Ethereum, a proposta acabou sendo pausada e colocada em espera.

Um mergulho profundo no EIP-4337

Core components of ERC-4337
An illustration showing the core components of ERC-4337

Fonte: OKX Ventures

Sendo o EIP-4337 a proposta mais recente para habilitar a AC, é importante entender como ele consegue isso e a diferença entre o EIP-4337 e seus antecessores. Aqui estão alguns termos-chave:

  • UserOperation é um objeto executado para que o indivíduo envie uma transação.

  • EntryPoint é um contrato que executa transações de pacotes de operações do usuário.

  • Empacotador é um nó que lida com operações de usuário como uma transação de pacote e adiciona transações de ponto de entrada ao bloco enquanto ainda são válidas.

  • Contratos de carteira são contas de contratos inteligentes de propriedade do usuário.

  • Fábrica de carteiras é um contrato inteligente que pode criar novas carteiras de contratos inteligentes sob demanda para indivíduos.

  • Agregadores são contratos auxiliares em que as contas confiam para validar assinaturas agregadas. Os empacotadores colocam os agregadores suportados na lista de permissões.

  • Pagadores são contratos encarregados de colocar lógica personalizada na blockchain. Isso inclui permitir flexibilidade no pagamento de gás em qualquer moeda e em qualquer rede.

O EIP-4337 simplifica o processo de AC com a introdução de empacotador, contrato de ponto de entrada, pagador, fábrica de carteiras, agregador de assinatura e operações do usuário.

Quando um indivíduo deseja enviar uma transação, ele cria uma operação de usuário. Uma operação de usuário contém todas as informações necessárias para enviar uma transação, mas ainda não foi assinada pelo indivíduo.

A operação do usuário é então enviada para um empacotador, que é um contrato inteligente que agrupa as operações do usuário em uma transação única. O empacotador então envia a transação empacotada para o contrato de ponto de entrada que identifica e valida as operações do usuário associadas às carteiras de contratos inteligentes.

Finalmente, após a validação, as carteiras de contratos inteligentes associadas às operações do usuário implementam a função ExecuteUserOp, que executa as transações.

Compreendendo o fluxo de transações

Aqui está um exemplo de como uma transação ocorreria sob a nova proposta habilitada para a AC.

Iniciando o processo de transação

A conta expressa sua intenção criando uma operação de usuário. Uma operação de usuário pode acessar dados relacionados ao endereço do remetente, que inclui “maxFeePerGas” e “maxPriorityFee”. Quanto ao acesso ao uso do campo de assinatura, cada instância de acesso é determinada pela implementação da conta e não pelo protocolo existente. Cada operação de usuário é então enviada para um pool de memória de operações do usuário dedicado.

Enviando transações

As operações do usuário são então gerenciadas por validadores, que agrupam essas operações do usuário em um pool de memória separado. Com o empacotador atuando como um construtor de blocos, as operações do usuário são então adicionadas ao bloco enquanto as transações do ponto de entrada ainda são consideradas válidas. Mesmo que o empacotador não seja um construtor de blocos, ele poderá fazer isso trabalhando com a infraestrutura de construção de blocos. Alguns exemplos de tal infraestrutura incluem MEV-Boost, separação proponente-construtor e APIs de RPC eth_sendRawTransactionConditional experimentais.

Identificando transações

Seguindo o processo de envio anterior, as operações do usuário são então enviadas para o contrato de ponto de entrada, que executa os pacotes de operações do usuário. Para aceitar as operações do usuário, o empacotador deve usar a função activateUserOp para validar a assinatura das operações do usuário. Depois de fazer isso, os empacotadores colocam o contrato de ponto de entrada suportado na lista de permissões.

Executando transações

Por fim, a transação é concluída pela carteira de contrato inteligente, que implementa a função ExecuteUserOp. Os empacotadores agrupam um conjunto desses objetos de operações do usuário em uma transação e iniciam uma chamada de função no contrato inteligente handleOps EntryPoint. Essa transação então é incluída em um bloco.

Comparação de carteiras de cripto EOA, MPC e AC

Quer saber mais sobre as diferenças entre os diferentes tipos de carteiras de cripto? Aqui está uma tabela útil que resume as semelhanças e diferenças entre elas.

Carteira EOA

Carteira MPC

Carteira AC

Tipo de conta

EOA

EOA

CA

Custo de criação

Baixo

Baixo

Alto

Taxas de gás

Baixo

Baixo

Alto

Método de pagamento de gás

Único

Único

Multimoeda, permite tokens de terceiros e

Transações em lote

Nenhum

Nenhum

Disponível

Método de assinatura

ECDSA

ECDSA

Vários métodos de assinatura

Gerenciamento de chave privada

Requerido

Requerido

Não requerido

Recuperação de carteira

Nenhum

Nenhum

Disponível

Requisito de auditoria

Auditoria de segurança básica

Política de autorização de assinatura fora da cadeia, consideração de transparência necessária

Auditoria de contratos on-chain e pool de demanda necessária

Segurança

Sem padrão, baixa segurança

Possível recuperação off-line em dispositivos confiáveis

Segurança no nível da cadeia alcançada após o EIP-4337

Compatibilidade do ecossistema

Forte

Fraco

Moderado

Eliminação de ponto único de falha

Não é possível

Possível

Possível

Como a AC do EIP-3074 difere da AC do EIP-4337?

O EIP-3074 foi colocado em espera porque era um EIP central e exigia mudanças na camada de consenso. Dois novos OpCodes precisaram ser introduzidos para permitir que as contas EOA usassem o contrato. Isso traz seu próprio conjunto de vantagens e desvantagens quando se considera a versão da AC do EIP-3074.

Vantagens

O maior fator a favor da AC do EIP-3074 é que ela permite que os usuários deleguem o controle da sua EOA a um contrato. Isto dá aos desenvolvedores uma estrutura flexível para desenvolver novos esquemas de transação para EOAs, como trading em lote, trading em pacote e pagamento flexível de gás.

Outra vantagem é como a solução de AC do EIP-3074 envolve o uso de contratos invocadores, que aceitam pagamento em tokens diferentes de ETH. Esses intermediários trustless agem como intermediários que executam transações entre patrocinadores e patrocinados.

Além disso, a solução de AC do EIP-3074 permite que qualquer EOA atue como uma carteira de contrato inteligente sem implementar um contrato.

Desvantagens

Um grande motivo pelo qual o EIP-3074 não é preferido pela comunidade Ethereum é que ele envolve mudanças na camada de consenso. Isso pode ser desastroso, pois pode ser necessário um hard fork para resolver quaisquer problemas que ocorram devido a mudanças na camada de consenso.

Como o EIP-3074 permite que as EOAs tenham características de CAs, ele ainda utiliza uma assinatura ECDSA fixa no mecanismo de assinatura. Isto evita o uso de assinaturas arbitrárias.

A introdução do EIP-5003

Embora o EIP-3074 tenha sido colocado em espera, isso não significa que a proposta tenha sido totalmente abandonada. O EIP-5003 apresenta o OpCode AUTHUSURP, que implementa código em endereços autorizados do EIP-3074.

O EIP-5003 trabalha em conjunto com o EIP-3607 para revogar a autoridade da chave de assinatura original para EOAs. Por exemplo, a EOA um autorizou o endereço dois a agir em seu nome sob o EIP-3074. Graças ao OpCode AUTHUSURP, o endereço dois pode definir os códigos da EOA um. Isto permite efetivamente que uma EOA existente seja atualizada para uma CA e lhe concede a capacidade de migrar de assinaturas ECDSA para um método de assinatura mais eficiente e seguro.

Conclusão

À medida que a Ethereum continua a inovar na busca pela adoção em massa, vemos muitos pontos problemáticos sendo resolvidos graças à introdução da solução de AC do EIP-4337. Com a AC, estamos testemunhando benefícios como mais opções de segurança e flexibilidade de pagamento de gás que reduzirão bastante a barreira de entrada ao interagir com o ecossistema Ethereum.

Fique atento a este espaço para mais atualizações sobre como a OKX integrará o EIP-4337 em nossa carteira multichain.

Aviso legal
Este conteúdo é fornecido apenas para fins informativos e pode abordar produtos não disponíveis em sua região. O conteúdo não se destina a fornecer (i) consultoria de investimento ou recomendação de investimento; (ii) uma oferta ou solicitação para comprar, vender ou manter ativos digitais, ou (iii) consultoria financeira, contábil, jurídica ou fiscal. Os holdings de ativos digitais, incluindo stablecoins e NFTs, envolvem um alto grau de risco e podem flutuar muito. Você deve considerar cuidadosamente se negociar ou manter ativos digitais é adequado para você, tendo em conta sua condição financeira. Consulte um profissional jurídico/fiscal/de investimentos para tirar dúvidas sobre suas circunstâncias específicas. As informações (incluindo dados de mercado e informações estatísticas, se houver) que aparecem nesta postagem são apenas para informação geral. Embora todo o cuidado razoável tenha sido tomado na preparação destes dados e gráficos, nenhuma responsabilidade ou obrigação será assumida por quaisquer erros de fatos ou omissões aqui expressos. Tanto a OKX Web3 Wallet quanto a OKX NFT Marketplace estão sujeitas a termos de serviço específicos disponíveis em www.okx.com.

© 2024 OKX. Este artigo pode ser reproduzido ou distribuído em sua totalidade, ou trechos de 100 palavras ou menos deste artigo podem ser usados, desde que tal uso não seja comercial. Qualquer reprodução ou distribuição do artigo inteiro também deve indicar em destaque: "Este artigo está sob os termos de © 2024 OKX e é usado com permissão". Os trechos permitidos devem citar o nome do artigo e incluir atribuição, por exemplo "Nome do artigo, [nome do autor é aplicável], © 2024 OKX". Não são permitidos trabalhos derivados nem outros usos deste artigo.
Expandir
Artigos relacionados
Ver mais
Ver mais