A Zilliqa suspendeu as transacções nativas de ZIL em 22 de Julho, após uma investigação que identificou uma falha de nonce nas assinaturas Schnorr existentes na aplicação de carteira em hardware Ledger desde 2019: a vulnerabilidade fixa os primeiros 64 bits de cada nonce de assinatura como zero, reduzindo drasticamente a aleatoriedade; isto permite que um atacante reconstrua a chave privada a partir de cerca de 5 ou mais assinaturas afectadas, utilizando apenas dados públicos na cadeia.
Descrição técnica do bug de nonce Schnorr da Ledger (2019)
De acordo com a explicação oficial da Zilliqa, as causas técnicas de base desta vulnerabilidade são as seguintes: as assinaturas Schnorr exigem o uso, em cada operação, de um nonce único e imprevisível (nonce). Se a aleatoriedade do nonce for enfraquecida, o algoritmo matemático que protege a chave privada deixa de funcionar.
A investigação da Zilliqa identificou que, ao gerar assinaturas Schnorr, a aplicação Ledger extraiu incorrectamente 32 bytes de um valor de 40 bytes, fazendo com que os primeiros 64 bits de cada nonce ficassem a zero. A Zilliqa descreveu este resultado como um “nonce temporário previsível e enfraquecido”.
Um atacante só precisa de obter cerca de 5 ou mais assinaturas desse tipo afectadas para reconstruir a chave privada do signatário a partir de dados públicos na cadeia; esta vulnerabilidade existia desde o lançamento da aplicação Ledger em 2019. Qualquer assinatura que cumpra os requisitos publicada após 2019 pode ser usada para reconstruir o nonce.
Cronologia do incidente (19 a 22 de Julho): KuCoin ajuda na demonstração, carteira fria é roubada
Conforme a divulgação oficial da Zilliqa, a cronologia do incidente é a seguinte: em 19 de Julho, a Zilliqa detectou actividade on-chain compatível com exploração da vulnerabilidade; em 20 de Julho, a carteira fria ZIL de um parceiro de bolsa da Zilliqa foi roubada, com a ZIL a cair para mínima histórica de 0,002441 dólares; a Coinone e a KuCoin suspenderam os depósitos e levantamentos de ZIL; em 21 de Julho, a Zilliqa identificou a causa raiz; em 22 de Julho, a vulnerabilidade foi divulgada publicamente e as transacções nativas de ZIL foram suspensas.
A KuCoin teve um papel determinante neste caso: ajudou a identificar a falha de nonce e conseguiu reconstruir a chave privada afectada a partir de assinaturas públicas como demonstração prática, confirmando que a vulnerabilidade foi explorada. Isto permitiu que a Zilliqa tomasse medidas de protecção e elaborasse um plano de correcção mais abrangente.
Instruções para utilizadores e progresso da correcção: versão corrigida da aplicação Ledger a aguardar lançamento
De acordo com as recomendações oficiais da Zilliqa, as instruções actuais para os utilizadores afectados são as seguintes:
· Aguardar instruções oficiais: todos os utilizadores que assinem nativamente ZIL através de um Ledger (carteira em hardware) devem aguardar
· Não transferir quaisquer fundos
· Não tentar efectuar reparações por conta própria
· Utilizadores de transacções EVM e SDK não são afectados: apenas os utilizadores que utilizem ferramentas compatíveis com EVM e o SDK da Zilliqa não precisam de tomar qualquer acção
· Versão corrigida da Ledger: a Ledger está a desenvolver uma versão corrigida da aplicação Ledger; a data de lançamento será comunicada posteriormente
Até à data da publicação a 22 de Julho, a ZIL cotava a 0,00244 dólares segundo os dados da CoinGecko, com uma queda de 3,5% nas últimas 24 horas, muito abaixo do máximo histórico de cerca de 0,2563 dólares de Maio de 2021.
Perguntas frequentes
Porque é que a Zilliqa suspendeu as transacções nativas de ZIL a 22 de Julho?
De acordo com o comunicado oficial de 22 de Julho da Zilliqa, a razão foi a descoberta de uma falha de nonce Schnorr na aplicação Ledger existente desde 2019: os primeiros 64 bits de cada nonce ficam bloqueados a zero, permitindo que um atacante reconstrua a chave privada a partir de cerca de 5 ou mais assinaturas públicas na cadeia.
Que tipo de utilizadores de ZIL está afectado?
Segundo a Zilliqa, apenas os utilizadores que assinam transacções nativas (não EVM) de ZIL num dispositivo Ledger correm risco; os utilizadores que utilizem ferramentas compatíveis com EVM e o SDK da Zilliqa não são afectados.
Quando será publicada a versão corrigida da Ledger?
De acordo com a declaração oficial da Zilliqa, a Ledger está a desenvolver uma versão corrigida da aplicação Ledger; a data de lançamento será comunicada posteriormente. Os utilizadores devem acompanhar os canais oficiais da Zilliqa e da Ledger para obter as informações mais recentes.