A ACINQ lançou o Eclair 0.14.6 a 27 de outubro, com alterações destinadas a reduzir o risco de um nó malicioso explorar transações de financiamento de canais ainda não confirmadas. A versão exige, por defeito, que os fundos usados em operações de splice estejam confirmados e revê os procedimentos de liquidação e recuperação em caso de encerramento de um canal. A ACINQ recomendou a atualização dos nós, mas não se sabe se as vulnerabilidades foram exploradas na prática.
Como fundos não confirmados podem afetar pagamentos pendentes
A Lightning Network permite transferir bitcoin através de canais de pagamento, sem registar cada operação na blockchain do Bitcoin. Os operadores também podem acrescentar ou retirar liquidez de um canal existente através de uma operação de «splice», que depende de transações on-chain.
O risco surge quando um splice aceita fundos fornecidos pela contraparte antes de a rede Bitcoin confirmar a transação correspondente. Depois de assinar o splice, um nó malicioso poderia tentar gastar esses mesmos fundos noutra transação. Se isso invalidar o acordo de financiamento original, a liquidação do canal também poderá ser afetada.
Caso o canal seja encerrado na blockchain, pagamentos pendentes protegidos por contratos HTLC (hash time-locked contracts) podem ficar expostos, uma vez que a sua liquidação depende da transação de financiamento invalidada. A ACINQ identificou o cenário como um potencial problema de segurança, mas não comunicou qualquer roubo de fundos confirmado.
Eclair passa a exigir fundos confirmados nos splices
O Eclair 0.14.6 introduz uma opção de segurança que exige a confirmação dos fundos da contraparte antes de os aceitar num splice. A atualização também impede a criação de novas operações de splice sobre alterações de financiamento ainda não confirmadas, limitando a acumulação de estados de financiamento por liquidar.
A ACINQ esclareceu que esta exigência é distinta das proteções já existentes para o financiamento conjunto, que passam a aplicar-se especificamente à criação de canais. Os splices ficam abrangidos pela nova verificação de confirmações. Para contrapartes não confiáveis, a empresa aconselhou ainda os operadores a não usarem a opção de compromisso sem taxa durante um splice. Esta funcionalidade já vinha desativada por defeito.
Encerramentos forçados recorrem a financiamento confirmado
A versão altera também o tratamento de canais que tenham de ser encerrados enquanto a transação de financiamento continua por confirmar. Com a nova lógica, o Eclair escolhe uma transação de compromisso que o backend Bitcoin Core reconheça como financiada. Se necessário, recorre ao estado de financiamento confirmado mais recente, em vez de liquidar com base numa transação que tenha desaparecido da mempool local.
Outra correção abrange transações que os mineradores podem confirmar mesmo depois de o Eclair deixar de as considerar a via de liquidação preferencial. Na lógica anterior, essas transações podiam ser classificadas erradamente como pertencendo à contraparte, deixando por reclamar fundos recuperáveis e saídas associadas a pagamentos pendentes. A nova versão identifica essas transações e tenta recuperar as saídas correspondentes.
Atualização não exige fechar canais existentes
A ACINQ recomendou que os nós com versões anteriores do Eclair instalem a correção e mantenham ativa, por defeito, a proteção que exige fundos confirmados. Para atualizar, os operadores devem parar o software, instalar a nova versão e reiniciar o nó. Não é necessário fechar os canais de pagamento existentes.
O investigador de segurança Erick Cestari comunicou as falhas à ACINQ de forma responsável. A empresa alertou que algumas poderiam ser exploradas por nós maliciosos, mas não indicou quantos nós poderão ter sido afetados nem se ocorreu algum ataque.