Ethereum corrige falha no depósito de validadores do Glamsterdam

ETH
separação proponente-construtordepósito de validadorAtualização de Protocoloespecificação de consensoGlamsterdamEthereum
há 1 horaFonte: crypto.news
Ethereum corrige falha no depósito de validadores do Glamsterdam

Os desenvolvedores do Ethereum mesclaram uma correção para uma falha no tratamento de depósitos na próxima atualização Glamsterdam que poderia ter permitido que um construtor de blocos recebesse ETH destinado a um novo validador, após uma decisão inicial de rejeitar a mudança proposta.

Resumo

  • O Ethereum mesclou uma correção no tratamento de depósitos do Glamsterdam em 26 de outubro.
  • A falha poderia ter creditado depósitos de staking a construtores que compartilham a mesma chave pública.
  • Os desenvolvedores inicialmente rejeitaram a correção antes de aprovar testes adicionais.
  • Uma investigação separada de compatibilidade de contratos atrasou a ativação do Hoodi no Glamsterdam.

De acordo com as especificações de consenso do Ethereum, o mantenedor Justin Traglia mesclou a correção em 26 de outubro depois que o desenvolvedor avsetsin identificou um problema com a forma como os depósitos pendentes seriam processados durante o fork Gloas. A mudança separa os depósitos de construtores dos depósitos de validadores de acordo com suas credenciais de saque, evitando que fundos entrem na conta errada quando ambos usam a mesma chave pública.

A vulnerabilidade dizia respeito a regras em desenvolvimento, não a um roubo confirmado da mainnet do Ethereum. Os desenvolvedores incorporaram a correção às especificações, embora os clientes de consenso individuais ainda precisem implementar e testar o comportamento revisado.

Falha do Ethereum Glamsterdam expôs risco nos depósitos de validadores

O problema surgiu de mudanças planejadas sob a separação consagrada entre proponente e construtor do Glamsterdam, que atribui a construção de blocos e a proposta de blocos a funções diferentes. Os construtores montam os payloads de transações, enquanto os validadores participam da proposta e confirmação de blocos por meio do sistema de proof-of-stake do Ethereum.

O pesquisador avsetsin descreveu a falha em 12 de outubro, identificando um problema nas regras usadas para processar depósitos em espera quando a rede é atualizada. Se um construtor se registrasse usando uma chave pública antes de um depósito de validador chegar sob a mesma chave, a lógica proposta poderia creditar ambos os depósitos ao construtor.

O pesquisador delineou um cenário envolvendo um operador de staking recebendo fundos de um protocolo de staking líquido para estabelecer um novo validador. Ao se registrar primeiro como construtor, o operador poderia fazer com que o depósito de validador do protocolo entrasse no saldo do construtor, onde o endereço de saque poderia estar sob o controle do operador.

“O operador pode sacar os fundos do protocolo”, alertou avsetsin no relatório do GitHub.

Como o validador esperado não seria criado, o serviço de staking poderia ter dificuldade para obter a prova necessária para concluir seus procedimentos normais de depósito e recuperação.

O pesquisador examinou a exposição potencial envolvendo Lido, Origin e Rocket Pool por meio de pesquisa preliminar de código. Essas descobertas eram condicionais à forma como os protocolos individuais tratavam os depósitos, e o relatório não estabeleceu que os projetos haviam sofrido uma exploração.

Desenvolvedores revertem decisão após revisão adicional

A correção proposta inicialmente encontrou resistência dos desenvolvedores de clientes do Ethereum, apesar da descrição do pesquisador sobre o risco de roteamento de depósitos. Em 19 de outubro, Traglia fechou o pull request após discussões entre os desenvolvedores principais.

“Não houve apoio suficiente dos clientes para fazer essa mudança neste momento”, escreveu Traglia.

A decisão não permaneceu em vigor, com os desenvolvedores reabrindo a proposta em 23 de outubro após exame adicional.

Posteriormente, o revisor potuz aprovou a abordagem, mas solicitou mais testes para combinações específicas de depósitos. Avsetsin adicionou esses testes em 23 de outubro, cobrindo casos em que depósitos de construtor e de validador compartilham uma chave pública, mas exigem tratamento separado.

A mudança final foi mesclada nas especificações de consenso do Ethereum em 26 de outubro após revisão adicional dos clientes. Ela direciona depósitos válidos de validadores para a fila de validadores, ao mesmo tempo que permite que depósitos legítimos de construtores registrem ou adicionem fundos a um construtor existente.

As novas regras distinguem os depósitos por meio de credenciais de saque, que determinam os arranjos de saque permitidos. Elas preservam registros separados de construtor e validador mesmo quando a mesma chave pública aparece em ambas as funções.

O atraso do Hoodi dá aos desenvolvedores mais tempo para investigar

A atualização da especificação chegou enquanto os desenvolvedores do Ethereum revisavam um problema separado que afetava a ativação programada do Glamsterdam na testnet Hoodi. A Ethereum Foundation adiou a atualização de 26 de outubro depois que pesquisadores identificaram riscos de compatibilidade envolvendo a EIP-8037.

Como o crypto.news relatou anteriormente sobre o adiamento, a decisão removeu tanto as mudanças de execução do Amsterdam quanto as mudanças de consenso do Gloas da ativação planejada do Hoodi. O aumento proposto para um limite de 200 milhões de gas foi adiado junto com elas.

O pesquisador do Ethereum Toni Wahrstätter explicou que a EIP-8037 poderia interferir em contratos inteligentes que dependem de suposições sobre o gas restante durante a execução. Ele identificou casos em que a contabilização de gas poderia fazer com que uma transação fosse revertida inesperadamente ou permitisse um caminho de execução que os desenvolvedores presumiam ser inalcançável.

O problema de compatibilidade de contratos é distinto da falha de depósito do builder abordada na correção do GitHub. Ambos dizem respeito ao Glamsterdam, mas o adiamento da Foundation em 22 de outubro citou especificamente a investigação adicional da interação da EIP-8037 com contratos existentes.

Os clientes do Ethereum devem implementar as regras revisadas

O Glamsterdam já foi ativado na testnet Sepolia em 6 de outubro, onde os desenvolvedores examinaram mudanças na construção de blocos e maior capacidade de processamento de transações. O ensaio subsequente no Hoodi permanece sem data agendada, sem data confirmada para ativação na mainnet do Ethereum.

A correção de depósito mesclada contém testes de regressão que cobrem como os depósitos são classificados durante a transição do Gloas. As equipes de clientes devem incorporar a mudança de especificação em seu software e concluir testes adicionais antes que as regras atualizadas possam operar durante uma futura atualização de rede.