Revelando o Futuro: Análise da Abstração de Contas Multichain
De 8 a 11 de julho, a Conferência da Comunidade Ethereum ocorreu em Bruxelas, sendo o maior evento anual de Ethereum na Europa, com foco na tecnologia e na comunidade.
Nesta conferência, mais de 350 líderes de opinião da linha de frente da indústria de blockchain fizeram discursos, incluindo uma palestra intitulada "Revelando o Futuro: Análise da Abstração de Contas Multichain".
Pontos principais da palestra:
A abstração de contas (AA) tem dois pontos-chave: a abstração de assinatura e a abstração de pagamento. A abstração de assinatura permite que os usuários escolham qualquer mecanismo de verificação, enquanto a abstração de pagamento suporta várias opções de pagamento. Essa flexibilidade melhora a segurança e a experiência do usuário.
As funções de ponto de entrada da "verificação" para ERC-4337 e AA nativo são fixas, enquanto na fase de "execução", apenas o ponto de entrada do AA nativo é fixo. As limitações para verificar transações e os passos para executar transações variam de acordo com a implementação.
Ao implementar o ERC-4337 em uma cadeia compatível com EVM, as diferenças nos protocolos do design Rollup e a forma de cálculo de endereços são duas distinções chave, o que leva a alguns detalhes de desenvolvimento sutis ao implementar o ERC-4337 entre L1 e L2.
Segue o texto completo do discurso:
Olá a todos, hoje vou apresentar o conceito de ERC-4337 e AA nativo, discutir as diferenças entre eles e analisar em detalhes as principais diferenças do padrão 4337 entre L1 e L2.
abstração de contas
1. definição de abstração de contas
abstração de contas(AA) inclui principalmente dois pontos-chave: abstração de assinatura e abstração de pagamento.
Abstração de assinatura: o usuário pode escolher qualquer mecanismo de validação que preferir, não se limitando a certos algoritmos de assinatura digital (como ECDSA).
Abstração de pagamento: os usuários podem usar várias opções de pagamento para transações, como usar ativos ERC-20 em vez de ativos nativos ou permitir que terceiros patrocinem transações.
Esta flexibilidade proporciona uma experiência de utilizador mais segura e superior. O objetivo da abstração de contas é alcançar estes dois pontos chave de várias maneiras.
2. Introdução ao ERC-4337
Atualmente, existem algumas limitações nas contas externas (EOA) do protocolo Ethereum, como métodos de assinatura fixos e design de pagamento. O ERC-4337 resolve 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 lida com transações como um sistema operativo, e suas principais funções incluem:
Chamar a função validate no contrato de conta, garantindo que userOp obtenha a autorização do proprietário da conta.
Cobrar taxas.
Chamar a função execute no contrato de conta para executar a operação alvo do userOp.
3. 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 embutido no protocolo blockchain.
A abstração de contas nativa segue o ERC-4337: Era StarkNet & zkSync
abstração de contas nativa com design de privacidade: Aztec
Diferenças entre ERC-4337 e AA nativo
1. Função do sistema operativo
AA OS precisa resolver os seguintes problemas:
Decisores do preço do gás
O decisor da ordem de transação e a posição do pool de memória
O acionador da função do ponto de entrada
fatores determinantes do processo de processamento de transações
No ERC-4337, esses papéis são realizados em conjunto pelo Bundler e pelo contrato EntryPoint.
Na AA nativa, os usuários enviam seus userOps para o operador/ordenador do servidor oficial, em vez do Bundler e do EntryPoint Contract.
No StarkNet, o Sequencer é responsável por lidar com todas essas tarefas.
No zkSync, a principal diferença entre Era e outras implementações de AA é que o Operator precisa trabalhar em conjunto com o bootloader (contrato do sistema). O bootloader abre novos blocos, define seus parâmetros (incluindo parâmetros de bloco e outros parâmetros de Gas), e recebe transações do Operator para validação.
2. Interface de contrato
Devido à existência de três passos, a interface do contrato de conta é semelhante em diferentes implementações, e essas funções de ponto de entrada só podem ser chamadas pelo AA OS:
ERC-4337: validação de operações do usuário
zkSync: validar transações, pagamento de transações, executar transações
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.
3. Limitações dos passos de verificação
Devido à ausência de limites de custo para a verificação de transações (essencialmente, a verificação de transações é a chamada de funções de visualização), um atacante pode realizar um ataque DoS na pool de memórias, comprometendo o agrupador (EIP-4337) ou o operador/classificador (AA nativo).
EIP-4337 define quais códigos de operação são proibidos e como restringir o acesso ao armazenamento. zkSync Era aliviou o uso de alguns OpCode:
A lógica do contrato só pode acessar seu próprio slot de armazenamento. Se o endereço do contrato da conta for o endereço A, ele pode acessar:
slot de armazenamento pertencente ao endereço A
slot de armazenamento pertencente a qualquer outro endereço A
O slot de armazenamento keccak256 (A || X) pertencente a qualquer outro endereço: isso significa usar diretamente o endereço como chave em um mapeamento (por exemplo, mapping (address => value)), equivalente a acessar o slot keccak256 (A || X). Por exemplo, o saldo de ativos em um contrato ERC-20.
A lógica de contrato não pode acessar variáveis globais, como o número do bloco. StarkNet também não permite chamadas de contratos externos.
4. Limitações dos passos de execução
No zkSync, a execução de chamadas de sistema requer a confirmação da existência de bandeiras do sistema. Por exemplo, a única maneira de aumentar o nonce é interagindo com o NonceHolder, enquanto a implantação de contratos requer interagir com o ContractDeployer. As bandeiras do sistema garantem que os desenvolvedores de contas interajam conscientemente com os contratos do sistema.
Na ERC-4337 e StarkNet, a fase de execução não tem restrições especiais.
5. número aleatório
No ERC-4337, o design do número aleatório do ponto de entrada distingue o valor da chave de 192 bits e o valor aleatório de 64 bits.
No zkSync, o contrato do sistema NonceHolder gere o nonce, garantindo um aumento rigoroso, ou seja, aumentando o número aleatório em 1.
No StarkNet, o nonce também é estritamente crescente, mas não há nonce abstrato gerido por contratos específicos.
6. Usar a primeira transação para implantar
O ERC-4337 inclui o campo initcode na estrutura userOp para implantar o remetente (contrato de conta) no seu primeiro userOp.
No StarkNet e zkSync, os usuários devem enviar a primeira transação para o operador/ordenador para implantar o contrato de conta.
7. Design especial no zkSync
Se você transferir ETH diretamente de uma EOA do Ethereum para zkSync, sem precisar implantar um contrato de conta personalizado, você receberá uma conta padrão com o mesmo endereço. Esta conta pode funcionar como uma EOA do Ethereum e é controlada pela chave privada da respectiva EOA do Ethereum.
Este tipo de conta é da versão None e não da versão 1. Você não pode chamar a função DefaultAccount, pois não há nenhum código implantado no espaço do núcleo.
Diferença entre L1 4337 e L2 4337
A implementação do ERC-4337 em cadeias compatíveis com EVM tem duas diferenças chave: diferenças de protocolo e diferenças de endereço.
1. Diferença de protocolo
No design de Rollup, o L2 precisa enviar dados para o L1 para segurança e liquidação. No contexto do ERC-4337, as taxas associadas a esse processo de upload, como a taxa de segurança do L1 e a taxa de blob, devem ser incluídas no Gas de pré-validação. Determinar as taxas de upload apropriadas no Gas de pré-validação é um desafio significativo.
2. Diferença de endereço
O método de codificação de endereços na função create do zkSync ERA é diferente do Ethereum e do OP rollup. 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, há um detalhe difícil de notar que pode levar a endereços de contrato 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 um hard fork. Por exemplo, se a cadeia L2 não suportar o hard fork de Xangai, e a versão do EVM não for especificada durante a compilação, a introdução do push0 resultará em uma alteração no bytecode, mesmo que o código Solidity seja o mesmo.
Conclusão
Acima estão algumas informações sobre a abstração de contas. Se você tiver alguma dúvida, sinta-se à vontade para me contatar no Twitter.
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
22 Curtidas
Recompensa
22
7
Compartilhar
Comentário
0/400
EthMaximalist
· 07-24 00:42
A conferência não explicou nada.
Ver originalResponder0
RugDocScientist
· 07-23 14:29
Mais uma onda de aulas de marketing.
Ver originalResponder0
AirdropSweaterFan
· 07-22 12:12
Multichain AA é super legal de jogar.
Ver originalResponder0
RiddleMaster
· 07-22 12:11
A assinatura abstrata é incrível!
Ver originalResponder0
liquidation_surfer
· 07-22 12:00
Outra vez a usar os Cupões de Recorte?
Ver originalResponder0
RugPullProphet
· 07-22 11:51
É difícil dizer se o projeto ainda existirá no próximo ano.
Ver originalResponder0
SnapshotDayLaborer
· 07-22 11:46
Quando é que vai ser possível fazer transferências com um só clique?
Análise da tecnologia de abstração de contas multi-chain: comparação entre ERC-4337 e AA nativa
Revelando o Futuro: Análise da Abstração de Contas Multichain
De 8 a 11 de julho, a Conferência da Comunidade Ethereum ocorreu em Bruxelas, sendo o maior evento anual de Ethereum na Europa, com foco na tecnologia e na comunidade.
Nesta conferência, mais de 350 líderes de opinião da linha de frente da indústria de blockchain fizeram discursos, incluindo uma palestra intitulada "Revelando o Futuro: Análise da Abstração de Contas Multichain".
Pontos principais da palestra:
A abstração de contas (AA) tem dois pontos-chave: a abstração de assinatura e a abstração de pagamento. A abstração de assinatura permite que os usuários escolham qualquer mecanismo de verificação, enquanto a abstração de pagamento suporta várias opções de pagamento. Essa flexibilidade melhora a segurança e a experiência do usuário.
As funções de ponto de entrada da "verificação" para ERC-4337 e AA nativo são fixas, enquanto na fase de "execução", apenas o ponto de entrada do AA nativo é fixo. As limitações para verificar transações e os passos para executar transações variam de acordo com a implementação.
Ao implementar o ERC-4337 em uma cadeia compatível com EVM, as diferenças nos protocolos do design Rollup e a forma de cálculo de endereços são duas distinções chave, o que leva a alguns detalhes de desenvolvimento sutis ao implementar o ERC-4337 entre L1 e L2.
Segue o texto completo do discurso:
Olá a todos, hoje vou apresentar o conceito de ERC-4337 e AA nativo, discutir as diferenças entre eles e analisar em detalhes as principais diferenças do padrão 4337 entre L1 e L2.
abstração de contas
1. definição de abstração de contas
abstração de contas(AA) inclui principalmente dois pontos-chave: abstração de assinatura e abstração de pagamento.
Esta flexibilidade proporciona uma experiência de utilizador mais segura e superior. O objetivo da abstração de contas é alcançar estes dois pontos chave de várias maneiras.
2. Introdução ao ERC-4337
Atualmente, existem algumas limitações nas contas externas (EOA) do protocolo Ethereum, como métodos de assinatura fixos e design de pagamento. O ERC-4337 resolve esses problemas ao introduzir métodos de gestão de contas e processamento de transações mais flexíveis.
3. 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 embutido no protocolo blockchain.
O design de AA em várias redes de blockchain:
Diferenças entre ERC-4337 e AA nativo
1. Função do sistema operativo
AA OS precisa resolver os seguintes problemas:
No ERC-4337, esses papéis são realizados em conjunto pelo Bundler e pelo contrato EntryPoint.
Na AA nativa, os usuários enviam seus userOps para o operador/ordenador do servidor oficial, em vez do Bundler e do EntryPoint Contract.
No StarkNet, o Sequencer é responsável por lidar com todas essas tarefas.
No zkSync, a principal diferença entre Era e outras implementações de AA é que o Operator precisa trabalhar em conjunto com o bootloader (contrato do sistema). O bootloader abre novos blocos, define seus parâmetros (incluindo parâmetros de bloco e outros parâmetros de Gas), e recebe transações do Operator para validação.
2. Interface de contrato
Devido à existência de três passos, a interface do contrato de conta é semelhante em diferentes implementações, e essas funções de ponto de entrada só podem ser chamadas pelo AA OS:
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.
3. Limitações dos passos de verificação
Devido à ausência de limites de custo para a verificação de transações (essencialmente, a verificação de transações é a chamada de funções de visualização), um atacante pode realizar um ataque DoS na pool de memórias, comprometendo o agrupador (EIP-4337) ou o operador/classificador (AA nativo).
EIP-4337 define quais códigos de operação são proibidos e como restringir o acesso ao armazenamento. zkSync Era aliviou o uso de alguns OpCode:
A lógica do contrato só pode acessar seu próprio slot de armazenamento. Se o endereço do contrato da conta for o endereço A, ele pode acessar:
A lógica de contrato não pode acessar variáveis globais, como o número do bloco. StarkNet também não permite chamadas de contratos externos.
4. Limitações dos passos de execução
No zkSync, a execução de chamadas de sistema requer a confirmação da existência de bandeiras do sistema. Por exemplo, a única maneira de aumentar o nonce é interagindo com o NonceHolder, enquanto a implantação de contratos requer interagir com o ContractDeployer. As bandeiras do sistema garantem que os desenvolvedores de contas interajam conscientemente com os contratos do sistema.
Na ERC-4337 e StarkNet, a fase de execução não tem restrições especiais.
5. número aleatório
6. Usar a primeira transação para implantar
7. Design especial no zkSync
Se você transferir ETH diretamente de uma EOA do Ethereum para zkSync, sem precisar implantar um contrato de conta personalizado, você receberá uma conta padrão com o mesmo endereço. Esta conta pode funcionar como uma EOA do Ethereum e é controlada pela chave privada da respectiva EOA do Ethereum.
Este tipo de conta é da versão None e não da versão 1. Você não pode chamar a função DefaultAccount, pois não há nenhum código implantado no espaço do núcleo.
Diferença entre L1 4337 e L2 4337
A implementação do ERC-4337 em cadeias compatíveis com EVM tem duas diferenças chave: diferenças de protocolo e diferenças de endereço.
1. Diferença de protocolo
No design de Rollup, o L2 precisa enviar dados para o L1 para segurança e liquidação. No contexto do ERC-4337, as taxas associadas a esse processo de upload, como a taxa de segurança do L1 e a taxa de blob, devem ser incluídas no Gas de pré-validação. Determinar as taxas de upload apropriadas no Gas de pré-validação é um desafio significativo.
2. Diferença de endereço
O método de codificação de endereços na função create do zkSync ERA é diferente do Ethereum e do OP rollup. 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, há um detalhe difícil de notar que pode levar a endereços de contrato 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 um hard fork. Por exemplo, se a cadeia L2 não suportar o hard fork de Xangai, e a versão do EVM não for especificada durante a compilação, a introdução do push0 resultará em uma alteração no bytecode, mesmo que o código Solidity seja o mesmo.
Conclusão
Acima estão algumas informações sobre a abstração de contas. Se você tiver alguma dúvida, sinta-se à vontade para me contatar no Twitter.