Pesquisadores que analisam o incidente da rede Liquid, de aproximadamente US$ 320 milhões, identificaram uma suposta falha no cache de validação de transações do software, oferecendo uma explicação mais específica sobre como tokens não garantidos puderam ser resgatados por bitcoin real.
As contas também levantam uma questão de implantação. Mononaut disse que o bug explorado havia entrado no ramo principal de desenvolvimento da Elements na semana anterior, mas nunca havia aparecido em uma versão marcada. Os funcionários da federação da Liquid, segundo ele, executaram esse código, enquanto outros nodes rejeitaram as transações inválidas.
Essa conta de implantação permanece não confirmada pela Blockstream nos extratos disponíveis. Se comprovada, colocaria a implantação do software no centro de um incidente no qual credenciais válidas de assinatura autorizaram a liberação de Bitcoin contra L-BTC supostamente criado por bugs.
Liquid é uma sidechain do bitcoin cujos tokens L-BTC são destinados a serem lastreados um a um por BTC mantidos por sua federação. Como CryptoSlate anteriormente relatou, o SideSwap informou que um cliente enviou 4.000 L-BTC por meio de seu serviço de peg-out em 6 de setembro, provocando a liberação de aproximadamente 3.996 BTC.
Liquid disse que nem a chave de autorização de saída de peg do SideSwap nem outras chaves da federação foram comprometidas.
As contas técnicas emergentes focam em como os tokens chegaram a esse processo de retirada.
Calle described uma falha envolvendo provas de intervalo, que permitem que os nodes verifiquem se as quantias ocultas das transações estão dentro de um intervalo permitido sem revelar essas quantias.
As transações confidenciais da Liquid exigem mais do que uma verificação de que entradas e saídas se equilibram. Uma saída negativa oculta poderia compensar uma saída positiva maior, fazendo com que tokens recém-criados pareçam equilibrar-se matematicamente.
As provas de intervalo têm como objetivo impedir esse resultado. Como verificar essas provas é computacionalmente caro, os nodes armazenam em cache os resultados de verificação bem-sucedidos para reutilização.
De acordo com a conta de Calle, o atacante poderia construir uma saída inválida e uma prova que correspondessem à chave de cache associada a uma verificação anteriormente válida. Um node que encontrasse esse resultado em cache ignoraria a verificação que deveria ter rejeitado a saída inflacionária.
Charles Guillemet endossou a explicação, descrevendo uma colisão de chave de cache elaborada que permitiu que uma transação confidencial inválida contornasse uma verificação de intervalo. Calle alertou que sua conta simplificou o mecanismo e pode conter erros.
Uma reconstrução da transação por Stu identificou transações de configuração seguidas por uma transação supostamente inválida no bloco 4.050.336 da Liquid. Stu disse que a transação criou aproximadamente 3.996,0183 L-BTC antes do saque subsequente por meio do SideSwap.
A conta da Mononaut adiciona uma distinção entre os nodes que aceitaram a transação e aqueles que não aceitaram.
Ele disse que funcionários da federação aceitaram as transações de exploração, aprovaram saques e continuaram a construir blocos. Outros nodes, incluindo aqueles que alimentam o Explorador Liquid do mempool, rejeitaram o bloco afetado. Isso explicaria por que um explorador que segue os nodes rejeitadores poderia omitir transações visíveis em outros lugares.
A divergência relatada torna as versões afetadas do software essenciais para entender a falha. Um pós-morte precisaria estabelecer quais funções de código foram executadas, por que foi implantado e como seu comportamento de validação diferiu dos nodes que rejeitaram o bloco.
Enquanto isso, os atores que controlam o bitcoin retirado se descreveram como whitehats e condicionaram a devolução da maioria dos fundos à correção do bug em todos os nodes afetados. Os relatos disponíveis não confirmam uma devolução concluída ou a implementação do patch.
Recuperar o bitcoin resolveria a deficiência de reservas. Explicar por que os nós da federação aceitaram as transações e demonstrar que o software corrigido as rejeita resolveria a falha que permitiu que essas reservas saíssem.
A post Tokens created out of thin air may explain how $320 million in Bitcoin left the Liquid sidechain apareceu primeiro em CryptoSlate.

