Interpretando o passado e o futuro da pista de abstração de contas ETH do 4337 ao 7702

Prefácio

Este artigo é dividido em duas grandes seções:

Na primeira metade, partindo da primeira proposta AA a partir de 2015, o sistema organiza o conteúdo principal das propostas Eip até o momento, na esperança de explorar o histórico das propostas AA desde o início, e avaliar de forma abrangente as vantagens e desvantagens de cada proposta.

Na segunda metade, enfocamos a comparação dos feedbacks de mercado recebidos após a proposta EIP4337, e analisamos mais profundamente o EIP7702, que está prestes a ser incluído na próxima atualização do Ethereum, e uma vez que seja integrado, mudará completamente a forma das aplicações na cadeia.

EIP-7702 tem uma mudança revolucionária, vamos ouvir o Senhor Quatorze contar com detalhes

1. Contexto da abstração da conta

1.1 Significado e localização da abstração de conta

O fundador da Ethereum, Vitalik, atualizou novamente o roadmap de desenvolvimento do ETH no final de 2023, mas não fez alterações quanto à abstração de contas. O modelo principal atualmente está avançando do EIP-4337 para a próxima fase de Conversão Voluntária de EOA (Endereço de Conta Externa)

Desde o lançamento do EIP4337 há mais de um ano (no WalletCon de Denver em 1º de março de 2023, foi anunciado oficialmente que o contrato principal ERC-4337, projetado e implementado pelos desenvolvedores da Ethereum Foundation, passou pela auditoria da OpenZeppelin e é considerado oficialmente lançado na história do Nó).

Embora tenha recebido ampla aceitação dos usuários, mas não seja amplamente utilizado, em um ambiente de mercado tão contraditório, o progresso do EIP-7702 foi significativamente acelerado, e até mesmo confirmado que será incorporado na próxima atualização.

1.2 O estado atual do mercado de abstração de contas

Sem mais delongas, vamos direto aos dados.

Após um ano e meio de desenvolvimento, o EIP4337, sob a coletividade das contas da cadeia principal, tem apenas 12 milhões de Endereço, sendo que o mais surpreendente é que há apenas 6.764 Endereço ativos na rede principal do ETH, talvez haja algum problema na contagem, mas pelo menos a diferença em relação ao número de Endereço do EOA e CA é muito grande, considerando que o número de Endereço independentes na rede principal do ETH já atingiu 270 milhões (fonte: ).

Pode-se dizer que na Rede principal, EIP4337 não teve nenhum desenvolvimento substancial.

(Dados do gráfico:)

No entanto, isso não apaga o valor essencial do AA, pois desde o início o design do EIP4337 o destinava a lidar com graves problemas de compatibilidade com a Rede principal, portanto, com a ampla integração de várias cadeias de camada L2 nativas do AA, o número de Endereços do EIP4337 explodiu na L2, com 1 milhão de usuários ativos mensais nas cadeias base e polygon em julho, o que é bastante impressionante.

Portanto, não é que o EIP4337 esteja mal concebido, tem muitas vantagens, vamos resumi-las sistematicamente mais tarde, a situação atual resulta das diferenças entre a Rede principal e a L2, elas precisam de soluções adequadas.

2. O que é uma conta abstrata?

abstração de contas, soa confuso, mas na verdade resolve a questão da separação de propriedades.

Na arquitetura EVM (Máquina Virtual Ethereum), existem dois tipos de contas, a conta externa (EOA) e a conta de contrato (Contract Account). Na verdade, a posse do EOA inclui tanto o direito de propriedade quanto o direito de assinatura. A pessoa que possui a chave privada não apenas possui a ‘propriedade’ dessa conta, mas também tem o direito de ‘assinar a transferência de todos os ativos’.

Esta é determinada pela estrutura da conta da Ethereum.

A partir da estrutura da figura abaixo, pode-se observar que as transações padrão do Ethereum não têm uma parte ‘De’. Portanto, ao fazer uma transferência de fundos, quais fundos específicos são consumidos no Endereço? Na verdade, o Endereço ‘De’ é descriptografado através dos parâmetros VRS (ou seja, assinatura do usuário).

Isso envolve conceitos como encriptação assimétrica ECDSA, funções de limite unidirecionais, etc. Não vamos entrar em detalhes, mas aqui a segurança é garantida pela criptografia, o que também resulta no dilema atual da combinação de propriedade EOAEndereço.

O efeito central do EIP4337 é adicionar o campo Endereço do Remetente ao campo de transação, permitindo que a Chave privada seja separada do Endereço operado.

**Por que é tão importante a separação dos direitos de propriedade?

Porque o design da conta externa (EOA) pode levar a mais problemas:

  1. Chave privada难保护:用户失去Chave privada(遗失、Hacker攻击、密码学上的被破解)意味着地失去所有资产。
  2. 少:原生protocolo在验证交易上只能使用 ECDSA 签名和验签Algoritmo。
  3. Alta permissão de assinatura: sem multi-assinatura nativa (a multi-assinatura só pode ser realizada através de contratos inteligentes para colaboração), apenas uma assinatura pode executar qualquer operação.
  4. As taxas de transação só podem ser pagas com ETH e não suportam transações em lote.
  5. Vazamento de privacidade na transação: transações um a um facilitam a análise das informações de privacidade do suporte.

As restrições de apelação tornam difícil para os usuários comuns usar o Éter:

Em primeiro lugar, os utilizadores de qualquer aplicação na rede ETH devem possuir ETH (e estar sujeitos ao risco de Flutuação do preço do ETH).

Além disso, os utilizadores têm de lidar com uma lógica de taxas complexa, conceitos como preço do gás, limite de gás e bloqueio de transações (ordem de nonce) são demasiado complexos para os utilizadores.

Por fim, embora muitos aplicativos ou carteiras de blockchain tentem melhorar a experiência do usuário por meio da otimização do produto, seu efeito real é mínimo.

Portanto, a solução para isso está em alcançar a abstração de contas, desacoplando a propriedade (Owner) e o direito de assinatura (Signer), a fim de resolver cada um dos problemas mencionados acima.

Na verdade, existem muitos planos históricos, e todos eles acabarão convergindo em duas rotas.

3. Esboço do histórico de propostas AA

A solução para o problema parece ter muitas propostas de EIP, mas, em última análise, são apenas dois tipos de pensamento central, então, todos os problemas considerados em cada proposta de EIP que não foram aprovados se tornaram o caminho para a situação atual.

3.1 A primeira rota é transformar EOAEndereço em CAEndereço

Em novembro de 2015, em torno do EIP-101, Vitalik propôs uma nova estrutura para contas, usando contratos. Mudou o Endereço para ter apenas código e espaço de armazenamento, alterou o suporte de taxas para ser pago em ERC20, transformou o saldo do Token nativo em um tipo ERC20 por meio de contratos pré-compilados (que podem ter funções de autorização de retenção, etc.), e simplificou os campos de transação para apenas to, startgas, data e code.

Agora parece uma mudança revolucionária, que vai alterar significativamente o design subjacente, permitindo que cada contaEndereço tenha sua própria lógica de “código” (que é exatamente o que o EIP-7702 está tentando alcançar).

Ainda pode derivar em outras funções, como

  1. Mais algoritmos de encriptação podem ser utilizados nas transações, podendo ser especificados os métodos de autenticação e verificação de assinaturas por código interno de cada endereço.
  2. Tem características de resistência a ataques quânticos, porque o código tem características de atualização.
  3. Permitir que o Ethereum tenha as mesmas funcionalidades dos contratos ERC20, com o efeito central de autorização de débito, evitando assim a perda da moeda nativa
  4. Melhorar o espaço personalizado da conta, compatível com a recuperação social, suporte sbt, recuperação da Chave Secreta, etc.

A razão pela qual não houve progresso contínuo também é bastante simples, aparentemente, o ritmo é muito rápido e o problema de conflito de hash de transação atual não foi adequadamente considerado em termos de segurança, por isso foi adiado. No entanto, cada conceito vantajoso se tornou um dos recursos principais do EIP4337 e EIP7702 posteriores.

Depois, houve uma série de EIPs tentando aprimorar essa lógica

EIP-859: Abstração de contas da cadeia principal - 2018-01-30

Tentando resolver o problema de implantação do Code, sua função principal é, se um contrato de parte de transação não estiver implantado, usar o parâmetro de código anexado à transação para executar a implantação do contrato Carteira. Além disso, também é proposto um novo opcode PAYGAS, que além de pagar gás, também serve como um separador entre a parte de verificação e a parte de execução de uma transação.

Embora tenha falecido sem doença na época, isso também se tornou um dos lógicos principais do EIP7702 atualmente. Cada transação do EIP7702 combina uma estrutura de transação especial que pode incluir um certo código, permitindo que o EOAEndereço tenha capacidade contratual nesta transação.

EIP-7702: Configurar o código EOA conta 2024-05-07

Este é também o núcleo do mecanismo de discussão posterior deste artigo EIP, Vitalik publicou a EIP-7702 como uma alternativa ao EIP-3074 (2024-05-07). Portanto, o EIP-3074 foi descontinuado e o EIP-7702 foi confirmado para inclusão no próximo Hard Fork ETH Prague/Electra (Pectra), os detalhes específicos serão abordados no próximo texto.

3.2 A segunda rota é fazer com que o EOAEndereço conduza o CAEndereço

**EIP-3074: Adicionar códigos de operação AUTH e AUTHCALL - 2020-10-15

Adicionar dois novos OpCodes, AUTH e AUTHCALL, ao EVM, permitindo que o EOA autorize contratos a chamar outros contratos em nome do EOA através desses opcodes.

Com base na figura abaixo, em resumo, um EOA pode enviar uma mensagem (transação) assinada a um contrato (chamado de Invoker) em que confia, este contrato Invoker pode usar os códigos de operação AUTH e AUTHCALL para enviar esta transação em nome do EOA.

EIP-4337: Implementação de abstração de conta usando pool de memória de transações - 2021-09-29

Em resumo, ele foi inspirado por MEV para o design, e seu valor central é evitar completamente a alteração do protocolo de camada de consenso.

EIP4337 propõe um novo objeto de transação, UserOperation, que os usuários enviam para o pool de memória, onde os bundlers os agrupam em lotes de Mineiro e entregam para a execução de transações de contrato. Essencialmente, isso é trazer a execução de transações e operações de conta para o nível do contrato.

EIP-5189: Operar conta abstrata através de endossante - 2022-06-29

Esta é uma otimização da lógica EIP4337, que visa prevenir o ataque de bloqueio DoS por bundlers maliciosos através da criação de um mecanismo de endosso de multas financeiras por meio de endossantes.

3.3 Outras propostas de suporte ao AA

EIP-2718: Envelope de embalagem para novos tipos de transações - 13 de junho de 2020

Esta é uma proposta finalizada, que define um novo tipo de transação como um envelope para tipos de transações futuras a serem adicionadas.

O resultado final é que, ao introduzir novos tipos de transações, eles são diferenciados por codificação específica para indicar qual tipo de transação é, permitindo apenas a compatibilidade retroativa e não a compatibilidade progressiva. O exemplo mais comum é o EIP1559, que diferencia as taxas de transação e usa nova codificação de tipo de transação sem afetar os tipos de transação legados originais.

EIP-3607: Permitir que EOA Endereço não possa implantar contratos–2021-06-10

Este é um suplemento no caminho AA, utilizado para prevenir problemas de conflito entre a implantação do contrato Endereço e EOAEndereço. Ele controlará o método de geração do contrato, impedindo o sistema de implantar o código em um Endereço que já seja EOA Endereço. Este risco é na verdade muito baixo, afinal, o Endereço Ethereum tem 160 bits de comprimento. Embora exista um método para colidir com Chave privada e obter um Endereço de contrato específico, com a estimativa do poder total de computação do BTC, ainda seria necessário cerca de um ano.

**3.4 Como entender o desenvolvimento abstrato da conta?

Primeiro, é necessário entender o valor após a conversão para CA.

Basicamente, é o efeito real do EIP-4337, e ele pode alcançá-lo

No entanto, a desvantagem central do EIP-4337 é que vai contra o princípio da motivação humana.

Ele parece estar melhor, mas caiu em um ciclo de desenvolvimento de mercado, muitos Dapps ainda não são compatíveis, então os usuários não estão dispostos a usar o endereço CA, mesmo que isso resulte em um Custo de transação mais alto (duplicando a Lavagem de dinheiro em cenários de transferência comuns) e é muito dependente da compatibilidade do próprio Dapp.

Portanto, até agora, o ETH ainda não se popularizou na mainnet.

O custo é o padrão mais importante para os usuários medirem, deve-se Gota o custo.

Mas para realmente GotaGAS, a própria Ethereum terá de fazer uma atualização de forquilha suave, modificar o cálculo do GAS ou o consumo de GAS dos módulos de operação, no entanto, se vamos fazer uma atualização suave, por que não considerar diretamente o EIP-7702?

4. Análise abrangente do EIP-7702

4.1 O que é EIP-7702

Ele é diferenciado por um novo tipo de transação, que permite que EOA temporariamente tenha a funcionalidade de contratos inteligentes em uma única transação, apoiando assim operações de lote, transações sem gas e gerenciamento personalizado de permissões, sem a necessidade de introduzir novos opCodes do EVM (afetando a compatibilidade com versões anteriores).

Ele permite que os usuários obtenham a capacidade da maioria dos AA sem implantar um contrato inteligente e até mesmo forneçam a capacidade de terceiros iniciarem transações em nome dos usuários, sem a necessidade de fornecer uma chave privada, apenas informações de autorização assinadas.

4.2 Estrutura de Dados

Ele definiu um novo tipo de transação 0x04, em que o TransactionPayload é a serialização RLP do seguinte conteúdo.

O importante é a adição do objeto authorization_list, que armazena o código que os signatários desejam executar em seu EOA. Os usuários assinam a transação e também assinam o código do contrato a ser executado. Ele existe como uma lista bidimensional, o que indica que várias informações de operação podem ser armazenadas em lote e executadas em lote.

4.3 Ciclo de vida da transação

4.3.1 Fase de Verificação

Na fase inicial da execução da transação, para cada tupla [chain_id, address, nonce, y_parity, r, s] em cada lista de autorização:

  1. Recuperar o Endereço do assinante a partir da assinatura r, s usando ecrecover (note que isso é uma mecânica do próprio Ethereum, então este EIP não altera o algoritmo de assinatura). autoridade = ecrecover (keccak (MAGIC || rlp ([chain_id, endereço, nonce])), y_parity, r, s) (semelhante à recuperação do Endereço do remetente a partir da assinatura anterior, aqui é recuperado o Endereço de assinatura local para esta lista).
  2. Verificar o ID da cadeia (proteção contra reprodução de cadeias bifurcadas).
  3. Verifique se o código do signatário da autoridade está vazio ou delegado (verifique se a transação é uma transação válida 7702, que será posteriormente executada por meio do mecanismo de delegação).
  4. Verifique o nonce do signatário da autoridade (evite a reprodução da assinatura da autoridade).
  5. Defina o código do signatário da authority como 0xef0100 || endereço (para contornar a política de prevenção de colisões EIP3607).
  6. Aumentar o nonce do signatário de autoridade (proteger contra reprodução de assinatura local).
  7. Adicione o assinante da autoridade conta à lista de Endereço acessada (Endereço quente convertido, Gota consulta de taxa de armazenamento de gás)

4.3.2 Fase de Execução

Onde está o código do contrato a ser executado e as instruções de operação?

“Nova” versão apenas altera o comportamento da implantação de código.

Não define mais o código da conta como contract_code, mas em vez disso recupera o código do endereço da lista de autorização e define esse código como o código da conta.

Portanto, ao precisar executar o código de autorização, carregue o código especificado pelo campo de endereço da lista de autorização e execute no contexto da conta do signatário.

Isto significa que o código do contrato do utilizador está realmente armazenado num Endereço específico na cadeia, em vez de estar diretamente incluído na transação.

Enquanto as instruções de operação e os parâmetros relevantes são armazenados no campo de dados da carga útil da transação.

Qual é o valor do EIP-7702?

Haverá mudanças em toda a cadeia de Web3Carteira, o que também resultará em uma grande mudança na experiência do usuário, pois transações normais iniciadas por EOA também podem executar várias lógicas semelhantes a contratos, como transferências em lote. Isso afetará a autenticação de transações no cenário CeFi e também afetará as taxas de retirada e agrupamento.

Devido à sua aparição, quebrou muitos preconceitos antigos, como por exemplo:

  1. Quebrou a invariante de que o saldo da conta só pode diminuir devido a transações originadas dessa conta.
  2. Quebrou a invariância de adicionar 1 ao nonce EOA após o início da execução da transação (possivelmente adicionando vários ao mesmo tempo).
  3. Quebrou a lógica de proteção da comparação entre tx.origin e msg.sender, o que colocou em risco muitos contratos antigos.
  4. Quebra o status quo de que as EOA não podem emitir eventos, portanto, pode ser necessário prestar atenção na detecção e monitoramento de eventos na cadeia.
  5. Quebrou a situação atual em que o Endereço EOAEndereço aceita ativos ERC20, 721, 1155, etc., com sucesso inevitável (porque mecanismo de retração, pode falhar)

4.5 Comparação entre EIP-7702 e EIP-4337

1. Benefícios do EIP-7702

gás mais baixo, pois não precisa passar pelo módulo de entrada, reduzindo as operações na cadeia.

O custo de migração do usuário é menor, não é necessário implantar antecipadamente contratos na cadeia como o principal.

Comparado com Eip4337, haverá também delegação de código, e haverá duas maneiras semelhantes:

Delegação Total

O delegação total refere-se a delegar todos os direitos de uma determinada operação para um Endereço específico. Por exemplo, um usuário pode delegar todos os direitos de gestão de tokens ERC-20 a um Endereço de contratos inteligentes específico, permitindo que esse contrato inteligente execute todas as operações relacionadas em nome do usuário.

Delegação Protegida

Uma delegação protegida refere-se à adição de restrições e medidas de proteção durante o processo de delegação, garantindo a segurança e a controlabilidade das operações de delegação.

Por exemplo, um utilizador pode delegar apenas parte da gestão de ERC-20Token a um contrato inteligente, ou definir algumas condições restritivas (como gastar no máximo 1% do saldo total por dia).

2. Desvantagens do EIP-7702

Sua principal falha está relacionada à atualização de Soft Fork, que requer o Consenso de todos e tem um grande impacto na cadeia. Depois da avaliação preliminar, o Desafio 14 identificou os seguintes desafios, mas também oportunidades no mercado:

  1. Alta liberdade, difícil de auditar, os usuários exigirão uma Carteira confiável para segurança e proteção.
  2. Devido a grandes mudanças na arquitetura original, embora diferenciada por diferentes tipos de transações, muitas infraestruturas, especialmente contratos imutáveis na cadeia, não podem ser facilmente adaptadas.
  3. A EOAEndereço fornece capacidade de contrato, mas o espaço de armazenamento correspondente não pode ser mantido.
  4. O custo de transação individual aumenta ligeiramente, pois a parte Calldata é significativamente aumentada, estimando-se que o custo total da chamada seja de 16 (gás) * 15 (bytes) = 240 (gás) de custo de calldata, adicionado ao custo de EIP-3860 de 2 * 15 = 30, além de um custo de execução de aproximadamente 150. Portanto, apenas preparar a conta, mesmo sem fazer nada, aumentará em 500 Gas.
  5. ‘Se o destinatário assinar um código sem uma função de recebimento, o remetente pode enfrentar um ataque de negação de serviço (DoS) ao tentar enviar ativos.’ Veja o exemplo. Na verdade, o problema ocorre quando a EOA A assina algo que não deveria assinar - um arquivo reproduzível com uma implementação incorreta (sem receive()).
  6. A lógica de depósito e retirada na cadeia pode ser inconsistente, por exemplo, ao transferir um Token ERC-20, se a conta de destino tiver um código, o contrato do Token chamará onERC20Received da conta de destino. Se onERC20Received reverter ou retornar um valor incorreto, a transferência do token será revertida.
  7. Além disso, se uma EOA puder enviar eventos, haverá algum problema? Alguma infraestrutura pode precisar de atenção.

Estes são apenas alguns dos defeitos resumidos com base no conteúdo da proposta EIP7702 atual e nas discussões correspondentes nos fóruns oficiais de 14th Lord. No final, ainda é necessário analisar completamente com base no código de implementação final.

Consulte o seguinte:

5、 Sumário Completo

Este artigo parece ter um comprimento enorme, mas na verdade só tem cerca de 6 mil palavras de conteúdo textual. Muitas interpretações anteriores do EIP mencionadas no meio do texto podem ser expandidas através de links no documento, mas eu não vou explorar mais profundamente aqui.

Pelo que vejo, a abstração de conta só pode ser colocada no sexto módulo, ou seja, corrigir tudo e implementá-lo por último. Agora, estamos acelerando significativamente o progresso do EIP7702, o que traz mais desafios para a segurança do sistema. Podemos prever que ele será implementado no final, afinal, eventos disruptivos como a fusão do ETH e a modificação do Algoritmo de Consenso podem ocorrer, então, o que dizer de novos tipos de transações?

No entanto, desta vez há muitas coisas subvertidas, que quebram várias regras não possíveis na cadeia, também quebram a lógica de aplicação da maioria dos Dapps, mas mantêm firmemente um ponto central, que é o custo mais baixo para os usuários! Em comparação com o Custo de transação quase dobrado do EIP4337.

O próprio utilizador é ainda EOAEndereço, apenas aciona e utiliza a lógica do CA quando necessário, reduzindo assim o custo de posse. Não é necessário converter primeiro a identidade do CA na cadeia e depois operar, o que equivale a dispensar o registo do utilizador.

Os usuários podem facilmente realizar várias transações em paralelo com EOA, como a combinação de autorização e execução de débito direto. Isso reduz o Custo de transação para os usuários, e para Dapps, especialmente para equipas do projeto que precisam de gerenciamento empresarial na cadeia, como exchanges, é uma otimização disruptiva. Uma vez que a agregação em lote seja implementada nativamente, os custos das exchanges podem ser reduzidos em mais de 50% instantaneamente, beneficiando assim os usuários.

Portanto, embora tenha mudado muito, ocupar o custo desta dimensão vale a pena para todos os Dapps pesquisarem e se adaptarem, porque desta vez, os usuários certamente estão do lado do EIP7702.

ETH-2,52%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • 1
  • Republicar
  • Partilhar
Comentar
0/400
ATurnTheTidevip
· 2024-08-24 14:21
Emboscada moeda de 100x 📈
Ver originalResponder0
  • Fixar

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)