O que é abstração de conta?
Cada conta Ethereum implementa cinco funcionalidades:
- Autenticação
- Autorização
- Proteção de repetição
- Pagamento de gás
- Execução
Um EOA os implementa de forma codificada:
- A autenticação e a autorização estão agrupadas: uma chave ECDSA imutável prova a identidade e concede autoridade total.
- A proteção de repetição é um simples nonce - um contador que aumenta monotonicamente.
- O pagamento do gás é feito diretamente do saldo ETH da EOA.
- Execução – uma única chamada para um único destino.
Abstração de conta significa adicionar lógica programática a estas cinco funcionalidades:
- Autenticação - qualquer forma de comprovação da identidade de alguém.
- Autorização - qualquer política de acesso.
- Proteção de repetição - ordenação de transações dissociada da proteção de repetição.
- Pagamento de gás - pagamento de gás dissociado da própria conta.
- Execução - qualquer lógica de execução.
Exemplos de casos de uso de abstração de conta
- Diferentes esquemas de assinatura
- secp256r1 (enclave seguro, chaves de acesso)
- Schnorr
- BLS
- Pós-quântico
- Provas ZK (por exemplo zkemail)
- Rotação de chave
- Substitua as chaves comprometidas
- Mudança do Deadman para herança (a chave se torna ativa se a conta ficar inativa por um ano)
- Diferentes políticas de acesso
- Multisig
- Acesso baseado em função
- chaves de sessão específicas do dapp
- Recuperação social
- Diferentes esquemas de proteção de repetição
- Transações paralelas de diferentes entidades
- Transações futuras pré-assinadas a serem enviadas por terceiros
- Canal administrativo
- Abstração de gás
- Patrocínio de gás por terceiros
- Pagamento com outros ativos além de ETH
- Privacidade: reivindicações anônimas de lançamento aéreo ou retirada de rollups ou mixers ZK
- Abstração de execução
- Agrupando várias chamadas em lote para vários destinos (por exemplo, aprovar+transferirde)
- Atomicidade
- melhorias de UX específicas do dapp
ERC-4337 vs EIP-3074: Falsa dicotomia
O EIP-3074 visa abstrair a execução, sobrecarregando o EOA com lógica de execução arbitrária por meio de invocadores. Tem uma propriedade única – alargar as capacidades de uma EOA sem ter de migrar activos para uma nova conta. Não é necessário abordar questões como o acesso descentralizado porque a execução não afeta isso. As outras quatro funcionalidades sim, mas estão fora do escopo do EIP-3074.
O ERC-4337 visa abstrair toda a conta – todas as cinco funcionalidades. É um problema mais difícil de resolver se quisermos preservar a descentralização e a resistência à censura. O foco do ERC-4337 é mitigar DoS e vetores de ataque de luto possibilitados pela abstração das primeiras quatro funcionalidades sem recorrer a infraestrutura centralizada. Como ERC, não pode ampliar as capacidades de uma EOA e requer a migração para uma conta inteligente.
A sobreposição entre os dois métodos é mínima: apenas abstração de execução.
Além disso, cada método visa resolver problemas que o outro não resolve: o EIP-3074 visa servir os EOAs existentes e manter as coisas o mais simples possível. O ERC-4337 visa fornecer abstração completa de contas sem sacrificar as propriedades principais do Ethereum, como a descentralização.
Se insistirmos em comparar o ERC-4337 com uma proposta anterior, o mais próximo é o EIP-2938, e não o EIP-3074. EIP-2938 foi um avanço na abstração de contas, a primeira proposta para perceber a dificuldade de mitigação de DoS em um mempool AA. O ERC-4337 resolve certos problemas que o EIP-2938 não resolveu, mas uma comparação completa está fora do escopo deste documento.
O que o ERC-4337 e o EIP-3074 podem resolver?
Ambos resolvem a abstração de execução e, portanto, habilitam a última categoria dos casos de uso acima:
- Agrupando várias chamadas em lote para vários destinos
- Atomicidade
- melhorias de UX específicas do dapp
O que o EIP-3074 pode fazer que o ERC-4337 não pode?
- Adicione funcionalidade de execução complexa aos EOAs existentes.
- O ERC-4337 não pode adicionar funcionalidade aos EOAs porque é um ERC.
- Simplicidade e melhor eficiência de gás quando apenas a abstração de execução é necessária.
- A abstração completa da conta adiciona complexidade que não é necessária para a abstração de execução.
O que o ERC-4337 pode fazer e o EIP-3074 não?
- Apoie qualquer cadeia EVM no primeiro dia. Nenhuma mudança de consenso.
- O EIP-3074 teria que ser adotado por cada rede por meio de uma mudança de consenso.
- Inovação sem permissão
- As carteiras permitirão apenas invocadores EIP-3074 na lista de permissões. As contas ERC-4337 podem ser criadas e usadas por qualquer pessoa.
- Abstração completa da conta – todos os casos de uso acima, sem sacrificar a descentralização:
- Diferentes esquemas de assinatura.
- EIP-3074 usa ECDSA. O EIP menciona um caminho futuro para mudar para um esquema diferente, mas desde que o próprio EOA honre a chave ECDSA, um invocador não pode impedir que ela seja usada diretamente.
- Rotação de chave.
- Com o EIP-3074 o EOA ainda possui uma chave irrevogável.
- Diferentes políticas de acesso
- A chave ECDSA pode ignorar o invocador e realizar qualquer operação na conta. Sem controle de acesso granular.
- Diferentes esquemas de proteção de repetição
- A conta ainda é uma EOA e usa um nonce unidimensional.
- Abstração de gás
- A conta paga o próprio gás, com ETH.
- Um sistema de captação de gás poderia ser construído sobre o EIP-3074, usando um retransmissor para enviar metatransações em nome da conta. No entanto, proteger esses relés contra negação de serviço e sofrimento é um desafio, portanto, eles provavelmente serão autorizados. A maior parte da complexidade do ERC-4337 se deve à manutenção desses retransmissores (bundlers) sem permissão.
O EIP-3074 + EIP-5003 pode fazer o que o ERC-4337 faz?
O EIP-5003 complementa o EIP-3074, permitindo que a EOA revogue sua chave ECDSA e se torne um contrato inteligente. Como contrato, pode abstrair o resto das funcionalidades da conta, por exemplo substituir ECDSA por uma assinatura diferente, alternar chaves, aplicar políticas de acesso, etc. Nesse sentido é um tanto equivalente a propostas como EIP-6913 e EIP-7377, mas é superior ao EIP-7377 porque como opcode pode utilizar um sistema de captação de gás para a própria migração.
Depois que o EOA for convertido em um contrato inteligente, ele não poderá mais ser negociado diretamente e precisará ser acessado por meio de outro EOA. Isto introduz o desafio que o ERC-4337 foi projetado para resolver. O usuário tem duas maneiras de realizar transações com a conta após a migração:
- Mantenha outro EOA financiado para transacionar com a conta e assine cada transação duas vezes. Isso nega o valor da abstração da conta e resulta em uma experiência do usuário ruim.
- Use um relé que mantenha um EOA financiado, coloque as transações em cadeia e seja reembolsado pela conta. Proteger tal retransmissão contra DoS e sofrimento é mais difícil do que parece, por isso alguns projetos executam uma retransmissão autorizada. Isto resulta na perda da descentralização e na resistência à censura.
A forma de descentralizar o acesso à conta pós-migração é aplicar certas restrições até que a conta pague o gás. Esta abordagem foi adotada tanto pelo EIP-2938 quanto pelo ERC-4337. O<a href="https://notes.ethereum.org/ @yoav /unified-erc-4337-mempool">ERC-4337 mempool oferece uma forma descentralizada de transações com a conta.
TL;DR: Não, apenas destaca a necessidade do ERC-4337.
Advertência: migração EOA considerada prejudicial
É tentador para os usuários EOA existentes migrar para uma conta inteligente local em vez de transferir ativos. No entanto, apresenta certas vulnerabilidades, algumas das quais não podem ser mitigadas.
O que poderia dar errado se a chave EOA fosse comprometida após ter sido revogada?
- A chave permanece válida em outras cadeias (incluindo cadeias futuras que nem sequer existem no momento da migração). Ele pode ser usado para reivindicar a mesma conta em outras redes e transferir quaisquer ativos enviados para a conta nessas redes.
- Sistemas fora da cadeia, como o processo de login de frontends dapp, verificam assinaturas. Muitos deles suportam EIP-1271 para assinaturas de contratos inteligentes, mas só tentam se o ecrecover falhar. A chave pode ser usada para comprometer a conta nesses sistemas.
- Pode ser usado na rede (na mesma rede onde foi revogado) para assinar autorizações de licença. Se a conta contiver tokens ERC-20 que suportem permissão, esses tokens poderão ser roubados usando a chave revogada.
- As pontes entre cadeias geralmente verificam uma assinatura durante a retirada. Se a conta enviar fundos para outra rede através de tal ponte, a chave revogada poderá ser usada para retirar os fundos do outro lado.
O usuário pode queimar a chave privada após a migração e esperar que nenhuma cópia seja deixada, mas o usuário também não pode reivindicar o mesmo endereço em outras cadeias.
Portanto, a migração deve ser usada como último recurso quando houver um forte motivo para manter o endereço antigo. Por padrão, novas contas são melhor implantadas com CREATE2 em vez de migradas de uma EOA, para que não sejam vinculadas a uma chave EOA em outras cadeias.
A comunidade tende a enfatizar excessivamente a importância da migração EOA porque a maioria dos utilizadores actuais têm EOAs. O próximo bilhão de usuários poderia começar com uma conta inteligente e não ter que migrar de uma EOA. Nós, os atuais usuários da EOA, somos uma pequena fração disso. A migração pode ser importante por um tempo, para os usuários atuais migrarem. Ele se tornará um fluxo raramente usado quando a abstração de contas for a norma.
Existe sinergia entre ERC-4337 e EIP-3074?
Sim, eles poderiam ser <a href="https://notes.ethereum.org/@yoav/eip-3074-erc-4337-synergy"> combinados de maneiras interessantes. Se uma rede adotar o EIP-3074, os projetos que utilizam o ERC-4337 poderão utilizá-lo em seu benefício.
RIP-7560: Um caminho promissor para o futuro da abstração de contas
Tanto o EIP-3074 quanto o ERC-4337 são etapas para obter alguns dos benefícios da abstração completa de contas nativas. O primeiro se concentra em obter todos os benefícios da abstração de execução e o último se concentra em obter todos os benefícios da abstração de contas em todas as cadeias EVM, mas de uma forma não nativa e menos eficiente.
Uma rede que deseja que seus usuários se beneficiem da abstração completa de contas nativas poderia adotar o RIP-7560. Ele usa a mesma arquitetura de conta e mempool do ERC-4337, mas funciona nativamente no nível do protocolo.
O RIP-7560 não precisa ser adotado desde o primeiro dia, e as contas existentes poderão migrar para ele nas redes que optarem por adotá-lo a qualquer momento no futuro:
- As contas ERC-4337 poderão migrar para o RIP-7560 sem alterar sua arquitetura, alterando sua implementação para confiar no endereço EntryPoint especial definido no RIP-7560. Uma conta pode ser compatível com ERC-4337 e RIP-7560 com pouco esforço, portanto, nenhuma migração é necessária.
- O EOA pode migrar diretamente para o RIP-7560 sem passar pelo ERC-4337 ou EIP-3074. O RIP-7560 já suporta captação de gás para EOAs. Um futuro RIP poderia permitir que o EOA definisse seu código, seja usando um opcode como SETCODE (EIP-6913) ou AUTHUSURP (EIP-5003), ou adicionando um subtipo TransactionType4 semelhante ao EIP-7377. Este opcode/subtipo pode ser usado por um contrato de migração que é chamado na transação Tipo 4 (RIP-7560). No entanto, a migração EOA é <a href="https://notes.ethereum.org/@yoav/erc-4337-vs-eip-3074-false-dichotomy#Caveat:-EOA-migration-considered-harmful"> desencorajada .
RIP-7560 precisa do seu feedback
Estamos coletando feedback sobre o RIP-7560 antes de propor sua consagração. Se você estiver interessado na abstração de contas nativas, revise o PR ou participe da discussão.
Isenção de responsabilidade:
- Este artigo foi reimpresso de [https://notes.ethereum.org/@ yoav/erc-4337-vs-eip-3074-false-dichotomy@yoav ]. Todos os direitos autorais pertencem ao autor original [@yoav]. Se houver objeções a esta reimpressão, entre em contato com a equipe do Gate Learn e eles cuidarão disso imediatamente.
- Isenção de responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
- As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.