A conferência EthCC discute a abstração de contas multichain: comparação técnica entre ERC-4337 e AA nativo.

Abstração de contas multi-chain: explorando o futuro da infraestrutura de encriptação

De 8 a 11 de julho de 2024, a Conferência da Comunidade Ethereum (EthCC) será realizada em Bruxelas, na Bélgica. Como o maior evento anual de Ethereum na Europa, esta conferência se concentra no desenvolvimento técnico e comunitário.

Na presente Conferência da Comunidade Ethereum (EthCC 7), mais de 350 líderes de opinião do setor de blockchain proferiram discursos. Entre eles, um desenvolvedor de blockchain foi convidado a participar e fez uma apresentação sobre o tema "Revelando o Futuro: Análise da Abstração de Contas Multichain".

Futuro da infraestrutura de encriptação? Análise da abstração de contas multichain

Resumo dos pontos da palestra

  • A abstração de contas (AA) inclui a abstração de assinaturas e a abstração de pagamentos. A primeira permite que os usuários escolham qualquer mecanismo de verificação, enquanto a segunda oferece várias opções de pagamento para transações. Essa flexibilidade melhora significativamente a segurança e a experiência do usuário.

  • As funções de ponto de entrada na fase de verificação do ERC-4337 e do AA nativo são fixas, mas na fase de execução, apenas o AA nativo mantém um ponto de entrada fixo. As diferentes maneiras de implementação têm características distintas nas restrições de transação de verificação e nos passos de execução de transação.

  • Ao implementar o ERC-4337 em cadeias compatíveis com EVM, enfrenta-se principalmente dois grandes desafios: as diferenças de protocolo no design do Rollup e as diferenças na forma de cálculo de endereços. Essas diferenças resultam em alguns detalhes de desenvolvimento difíceis de perceber ao implementar o ERC-4337 entre L1 e L2.

Abstração de contas: Introdução

A definição da abstração de contas

abstração de contas (AA)主要包含两个关键概念:

  1. Abstração de assinatura: os usuários podem escolher livremente qualquer mecanismo de verificação que gostem, não se limitando a algoritmos de assinatura digital específicos (como ECDSA).

  2. Abstração de pagamentos: os usuários podem usar várias maneiras de pagar as taxas de transação, como usar tokens ERC-20 em vez de tokens nativos, ou ser patrocinados por terceiros para a transação.

Esta flexibilidade não só aumentou a segurança, como também otimizou a experiência do utilizador. O objetivo da abstração de contas é alcançar estes dois conceitos fundamentais de várias maneiras.

Análise do ERC-4337

Atualmente, as contas de propriedade externa (EOA) no protocolo Ethereum têm algumas limitações, como métodos de assinatura fixos e design de pagamento. O ERC-4337 aborda esses problemas ao introduzir métodos de gestão de contas e processamento de transações mais flexíveis.

  • Estrutura userOp: no ERC-4337, o usuário envia a estrutura userOp para o Bundler. O Bundler coleta várias userOp e as envia para o contrato EntryPoint chamando a função handleOps.

  • Contrato EntryPoint: Este contrato processa transações como um sistema operativo, e suas principais funções incluem:

    1. Chamar a função validate no contrato da conta para garantir que userOp obtenha a autorização do proprietário da conta.
    2. Cobrança de taxas.
    3. Chamar a função execute no contrato da conta para executar a operação alvo do userOp.

Introdução ao AA nativo

No Ethereum, as contas são divididas em EOA e contas de contrato. No entanto, na AA nativa, cada conta é um contrato, e o mecanismo de processamento de transações está diretamente incorporado no protocolo blockchain.

Design de AA em várias redes de blockchain:

  • Abstração de contas ERC-4337: Ethereum, Arbitrum, Optimism, Base, Linea, Scroll, Polygon PoS
  • Seguir a abstração de contas nativa ERC-4337: StarkNet e a era zkSync
  • Abstração de contas nativa com design de privacidade: Aztec

encriptação infraestrutura do futuro? Análise da abstração de contas multi-chain

Diferenças entre ERC-4337 e AA nativo

papel do sistema operativo

O sistema operacional AA precisa resolver os seguintes problemas:

  • Decisor do preço do gás
  • Decisor da ordem de transações e posição do pool de memória
  • Gatilho da função de ponto de entrada
  • Fatores determinantes do processo de tratamento de transações

No ERC-4337, esses papéis são desempenhados em conjunto pelo Bundler e pelo EntryPoint Contract.

No AA nativo, os usuários enviam seus userOps para o operador/classificador do servidor oficial, em vez de para o Bundler e o EntryPoint Contract.

No StarkNet, o Sequencer é responsável por tratar todas essas tarefas.

As principais características do zkSync Era são que o Operador precisa trabalhar em conjunto com o bootloader (contrato do sistema). O bootloader é responsável por iniciar novos blocos, definir os parâmetros do bloco e os parâmetros de Gas, e receber as transações do Operador para validação.

interface de contrato

Devido à existência de três etapas, a interface do contrato de conta é semelhante em diferentes implementações, e esses pontos de entrada só podem ser chamados pelo AA OS:

  • ERC-4337: validação de operações do usuário
  • zkSync: validação de transações, pagamento de transações, execução de transações
  • StarkNet:executar、validar、validar_declarar、validar_implantar

No ERC-4337 e na AA nativa, a função de ponto de entrada da fase de "verificação" é fixa, enquanto na fase de "execução", apenas o ponto de entrada na AA nativa é fixo.

Limitações nos passos de verificação

Devido à ausência de limites de custo na validação de transações, um atacante pode realizar um ataque DoS ao pool de memória, impactando o bundler (EIP-4337) ou o operador/classificador (AA nativo).

O EIP-4337 define os códigos de operação proibidos e as restrições de acesso ao armazenamento. O zkSync Era aligeirou o uso de alguns OpCode:

  • A lógica do contrato só pode acessar seu próprio slot de armazenamento.
  • A lógica do contrato não pode acessar variáveis globais, como o número do bloco.
  • StarkNet não permite a chamada de contratos externos.

Limitações dos passos de execução

Em zkSync, a execução de chamadas de sistema requer a confirmação da existência de sinais do sistema. Por exemplo, aumentar o nonce requer interação com o NonceHolder, enquanto a implementação de contratos requer interação com o ContractDeployer.

Não há restrições especiais na fase de execução para ERC-4337 e StarkNet.

tratamento de números aleatórios

  • ERC-4337: O design do ponto de entrada distingue entre o valor da chave de 192 bits e o valor aleatório de 64 bits.
  • zkSync: O contrato do sistema NonceHolder gerencia o nonce, garantindo um aumento rigoroso.
  • StarkNet: o nonce também é estritamente crescente, mas não há um contrato específico de gestão.

primeira transação de implantação

  • ERC-4337: a estrutura userOp contém o campo initcode, utilizado para implantar o remetente (contrato de conta) na primeira userOp.
  • StarkNet e zkSync: os usuários devem enviar a primeira transação para o operador/classificador para implantar o contrato de conta.

design especial zkSync

No zkSync, se você transferir ETH diretamente de um EOA do Ethereum, sem a necessidade de implantar um contrato de conta personalizado, o usuário receberá uma conta padrão com o mesmo endereço. Essa conta pode funcionar como um EOA do Ethereum e é controlada pela chave privada correspondente do EOA do Ethereum.

Este tipo de conta é da versão None em vez da versão 1. Os usuários não podem chamar as funções DefaultAccount, pois não foi implementado nenhum código no espaço do kernel.

encriptação infraestrutura do futuro? Análise da abstração de contas multichain

Diferenças entre L1 e L2 em 4337

A implementação do ERC-4337 em cadeias compatíveis com EVM apresenta duas diferenças principais: diferenças de protocolo e diferenças de endereço.

diferenças de protocolo

No design de Rollup, o L2 precisa carregar dados para o L1 para garantir segurança e liquidação. No ERC-4337, as taxas relacionadas a este processo de upload (como a taxa de segurança L1 e a taxa de blob) devem estar incluídas no Gas de pré-validação. Determinar as taxas de upload apropriadas no Gas de pré-validação é um desafio significativo.

diferença de endereço

O modo de codificação de endereços na função create do zkSync ERA é diferente do Ethereum e da agregação OP. Além disso, o StarkNet utiliza uma função de hash única para o cálculo de endereços.

No contexto do ERC-4337 em cadeias compatíveis com EVM, geralmente assumimos que o cálculo de endereços é consistente entre as várias cadeias. No entanto, um detalhe que pode ser facilmente ignorado pode levar a endereços de contratos de conta diferentes entre as implementações do ERC-4337 no Ethereum e no L2.

A questão chave é a adição de novos códigos de operação em forks duros. Por exemplo, se a cadeia L2 não suportar o fork duro de Xangai e a versão EVM não for especificada durante a compilação, a introdução do push0 resultará em alterações no bytecode, mesmo que o código Solidity permaneça o mesmo.

encriptação infraestrutura do futuro? Análise da abstração de contas multi-chain

Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 5
  • Partilhar
Comentar
0/400
StableGeniusvip
· 11h atrás
*bocejos* mais uma conversa aa... já vi este filme antes, empiricamente falando, são apenas os maxies do eth a lidar com isso.
Ver originalResponder0
OfflineNewbievip
· 11h atrás
Veja quem ainda está pulando
Ver originalResponder0
TokenVelocityvip
· 11h atrás
Vamos falar sobre todos os projetos nas cadeias depois...
Ver originalResponder0
PessimisticLayervip
· 11h atrás
Parece que é mais um remédio do que uma solução.
Ver originalResponder0
AllInDaddyvip
· 11h atrás
AA esta rodada pode ganhar
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)