A Polygon Labs lançou silenciosamente duas hard forks que corrigiram vários problemas de segurança em sua rede de proof-of-stake (POS).
A rede de camada 2 finalmente compartilhou os detalhes em uma postagem em fórum. Todos os operadores de nós precisam atualizar ou serão expulsos do consenso da rede.
O fork do Austin impede que os nós enviem o campo TxDependency
O pior bug estava no Heimdall, que é o software que coordena os validadores do Polygon.
O Heimdall agrupa o conteúdo de cada transação dentro de um wrapper chamado google.protobuf.Any, de acordo com uma postagem em fórum feita por Parvez03.
Um wrapper pode ficar dentro de outro, assim como caixas podem ser empacotadas dentro de outras caixas. No entanto, nessa analogia, não há limite para quantas camadas profundas wrappers poderiam ter.
Um atacante poderia criar uma única transação empilhada com essas camadas por quase nenhum custo. Isso faz com que validadores desperdicem poder de computação para desempilhá-la.
Polygon descreveu a falha como “uma forma sem permissão de forçar trabalho caro e correlacionado em todo o conjunto de validadores.”
O hard fork Kyoto atualizou o software do Heimdall para a v0.11.0.
“O Kyoto adiciona uma pré-varredura em nível de byte que rejeita uma transação assim que sua aninhamento ultrapassa um limite, aplicado de forma idêntica na admissão do mempool (CheckTx) e no caminho de consenso (ProcessProposal)”, disse a publicação.
A Polygon verifica duas vezes:
Quando uma transação chega.
Quando os validadores constroem o bloco.
O segundo hard fork, chamado Austin, se concentrou no Bor, o cliente de execução da Polygon. Ele corrigiu dois caminhos de negação de serviço.
Uma foi eventos de state-sync, o processo que carrega depósitos da ponte L1 para L2. Esses eventos executam código de contrato e precompilados, assim como uma transação normal faria. No entanto, a quantidade de gás consumido não era limitada por bloco.
O fork Austin adiciona um limite máximo rígido por bloco de gás para state-sync.
A Polygon nunca limitou o tamanho do campo TxDependency.
Um validador poderia carregá-lo com dados enormes para derrubar todos os nós que leram o bloco. Não há mais nada nesse bloco que parecesse errado.
Austin remove o campo completamente do formato de transmissão (wire format).
Fonte: Polygon Forum.
O fork Kyoto foi ativado na altura 51.533.000 do Heimdall
A Polygon disse que ninguém explorou os bugs na mainnet e que os corrigiu todos antes que os forks fossem colocados no ar.
O fork Austin foi ativado na mainnet no bloco 91.949.700 do Bor e o fork Kyoto na altura 51.533.000 do Heimdall.
Cada nó requer o Bor v2.10.0. Nós validadores e nós completos também requerem a versão do Heimdall 0.11.0. Nós rodando software mais antigo já fizeram fork da cadeia canônica.
As correções são atualizações binárias simples, sem necessidade de migração de estado, mudança no genesis ou ressincronizações completas.
A POL foi negociada a US$ 0,09, caindo cerca de 9,3% nas últimas 24 horas. O token está na zona verde, com alta de 25,8% nos últimos 30 dias, de acordo com a CoinGecko.
Em julho, a mainnet do Heimdall V2 ficou offline por cerca de uma hora, de acordo com um relatório anterior da Cryptopolitan.
As mentes mais inteligentes do cripto já leem nossa newsletter. Quer entrar? Participe.
