Recentemente (final de outubro de 2023) a comunidade Bitcoin revelou que a Lightning Network pode ter grandes falhas, permitindo que os usuários construam um método de ataque para roubar dinheiro, chamado de "Lightning Replacement Cycling Attack".
Eu li o princípio dele, e o nome chinês pode ser traduzido como "Lightning Network Cyclic Replacement Transaction Attack".
O seu princípio de ataque é o seguinte.
Primeiro, explique como funciona a Lightning Network:
Alice e Bob abrem um canal de pagamento, ou seja, abrem em conjunto um endereço de assinatura 2-2, cada um deles possui uma chave privada.
Alice e Bob recarregam 0.5BTC e 0.6BTC para este endereço de assinatura 2-2, respectivamente (o valor pode ser escolhido arbitrariamente, sou apenas um exemplo), ambos ocorrem na cadeia principal do Bitcoin, e os mineradores devem confirmar. Desta forma, o estado inicial deste canal de pagamento é que 0.5BTC pertence à ALICE, 0.6BTC pertence ao BOB, registamos (ALICE: 0.5BTC; Bob:0.6BTC)。
Desta forma, neste endereço de assinatura 2-2, Alice e Bob podem pagar um ao outro, por exemplo, Alice pode pagar BOB 0.1BTC, de modo que o estado do canal estatal se torna 0.4BTC pertence a Alice, 0.7BTC pertence a BOB, (ALICE: 0.4BTC; Bob:0.7BTC)。 E tais transações não precisam ser empacotadas na cadeia principal do Bitcoin, mas apenas ocorrem entre Alice e Bob, o que é chamado de canal de pagamento.
Transferências arbitrárias entre Alice e Bob não precisam ser liquidadas na cadeia principal, o que economiza muitas taxas de mineração e pode ser recebida em tempo real, eliminando a necessidade de 10 minutos de confirmação do bloco.
Mas se você só pode transferir transações entre duas pessoas, é inútil.
Um canal de pagamento também é aberto entre Bob e Carol, e o estado inicial é que Bob tem 1.0BTC, carol0BTC, que é registrado como (BOB: 1.0BTC; carol:0btc)。
Neste momento, você vê que há um canal de pagamento entre Alice e Bob, e também há um canal de pagamento entre Bob e Carol.
Alice pode então pagar bitcoins para Carol via Bob.
O processo de pagamento é o seguinte: Alice paga Carol 0.1BTC, e as seguintes mudanças de status ocorrem nos dois canais de pagamento acima
A mudança de status entre Alice e Bob é (Alice: 0.3BTC; BOB: 0.8BTC)
A mudança de estado entre BOB e CAROL é (BOB: 0.9BTC; CAROL: 0.1BTC)
Isso conclui a transação de transferência de 0.1BTC de Alice para Carol.
Quando mais e mais partes abrem o canal de pagamento e realizam interconexão mútua, uma rede de pagamento é formada, que chamamos de Lightning Network.
É claro que a explicação técnica detalhada é muito complicada, e a explicação acima é a mais concisa.
O seguinte descreve o processo geral do ataque de transação de substituição cíclica da Lightning Network, e eu não entendo os detalhes técnicos detalhados, e esses opcodes, contratos e funções são um pouco complicados.
Os agressores são Alice e Carol, que conspiram para atacar Bob, e Bob é a vítima.
Alice paga 0.3BTC a Carol.
Os canais de estado iniciais são os seguintes (ALICE: 0.3BTC; BOB: 0.8BTC) e (BOB: 0.9BTC; CAROL: 0.1BTC)
O canal de estado entre Alice e Bob deve ser alterado para (Alice:0; Bob:1.1BTC)
O canal de estado entre BOB e CAROL deve ser alterado para (BOB: 0.6BTC; CAROL: 0.4BTC)
Alice e Carol decidiram fazer parceria para enganar Bob's 0.3BTC
Carol não afirmou confirmar que recebeu 0.3BTC de Alice, ou seja, Carol não envia as informações de recibo da Lightning Network para BOB. Como resultado, Bob não seria capaz de reivindicar legalmente o 0.3BTC de Alice dentro da Lightning Network.
Em um determinado momento, Alice jogou truques e inicia diretamente a transação de compensação TX1 na cadeia principal do Bitcoin, alegando que ele ainda tem 0.3BTC, enquanto Bob só tem 0.8BTC em seu canal estadual.
No acordo tx1, 0.3BTC foi enviado para o próprio endereço de Alice (assinatura única), então Alice estava tentando roubar 0.3BTC que não pertenciam a ela.
Como Bob não recebeu o recibo de recebimento de Carol, Bob não pode provar (Alice; Bob) neste canal de estado deve ser alterado para (Alice:0BTC; Bob:1.1BTC)
Uma vez que TX1 é empacotado on-chain, ou seja, Alice rouba 0.3BTC, Carol irá imediatamente coletar 0.3BTC na Lightning Network e enviar o recibo para BOB.
Desta forma, Alice realmente não enviou 0.3BTC para BOB, mas Carol realmente recebeu 0.3BTC de BOB. Assim, Bob foi roubado 0.3BTC por Alice e Carol em parceria.
Note que quando Alice inicia uma transação de roubo de moeda TX1 na cadeia principal, Bob tem contramedidas, ou seja, iniciar uma transação para a cadeia principal TX2 prova que Alice está traindo, mas como Bob não recebeu o recibo de recebimento de Carol, a transação TX2 ainda é bastante problemática, mas pode ser feita teoricamente.
Depois que Alice vê TX2, ela usará o método de taxa de mineração mais alta novamente para redefinir TX1 para induzir os mineradores a empacotar TX1 e rejeitar TX2, que é chamado de "substituição".
Atualmente, os desenvolvedores dizem que o conluio entre Alice e Carol pode realmente fazer parecer mais difícil legitimar o TX2 do BOB nos mineradores da cadeia principal do Bitcoin, e para provar mais claramente que o TX2 é legítimo, o protocolo precisa ser modificado e é um soft fork para a cadeia principal, o que é difícil.
O acima é o processo geral do ataque de transação de substituição cíclica da Lightning Network, o princípio técnico específico é muito complicado, eu não entendo, apenas assumo que os detalhes técnicos postados pelo desenvolvedor que vejo na Internet estão corretos.
O método de ataque é sanduíche um dos dois, e a troca é natural e todos os usuários abriram um canal de pagamento, então a troca vai sofrer.
No final, eu sinto que isso não é um grande negócio, não há bugs no software, haverá uma maneira de corrigi-lo.
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
Compreenda rapidamente os ataques de loop de transação de substituição da Lightning Network
Recentemente (final de outubro de 2023) a comunidade Bitcoin revelou que a Lightning Network pode ter grandes falhas, permitindo que os usuários construam um método de ataque para roubar dinheiro, chamado de "Lightning Replacement Cycling Attack".
Eu li o princípio dele, e o nome chinês pode ser traduzido como "Lightning Network Cyclic Replacement Transaction Attack".
O seu princípio de ataque é o seguinte.
Primeiro, explique como funciona a Lightning Network:
Alice e Bob recarregam 0.5BTC e 0.6BTC para este endereço de assinatura 2-2, respectivamente (o valor pode ser escolhido arbitrariamente, sou apenas um exemplo), ambos ocorrem na cadeia principal do Bitcoin, e os mineradores devem confirmar. Desta forma, o estado inicial deste canal de pagamento é que 0.5BTC pertence à ALICE, 0.6BTC pertence ao BOB, registamos (ALICE: 0.5BTC; Bob:0.6BTC)。
Desta forma, neste endereço de assinatura 2-2, Alice e Bob podem pagar um ao outro, por exemplo, Alice pode pagar BOB 0.1BTC, de modo que o estado do canal estatal se torna 0.4BTC pertence a Alice, 0.7BTC pertence a BOB, (ALICE: 0.4BTC; Bob:0.7BTC)。 E tais transações não precisam ser empacotadas na cadeia principal do Bitcoin, mas apenas ocorrem entre Alice e Bob, o que é chamado de canal de pagamento.
Transferências arbitrárias entre Alice e Bob não precisam ser liquidadas na cadeia principal, o que economiza muitas taxas de mineração e pode ser recebida em tempo real, eliminando a necessidade de 10 minutos de confirmação do bloco.
Mas se você só pode transferir transações entre duas pessoas, é inútil.
Um canal de pagamento também é aberto entre Bob e Carol, e o estado inicial é que Bob tem 1.0BTC, carol0BTC, que é registrado como (BOB: 1.0BTC; carol:0btc)。
Neste momento, você vê que há um canal de pagamento entre Alice e Bob, e também há um canal de pagamento entre Bob e Carol.
Alice pode então pagar bitcoins para Carol via Bob.
O processo de pagamento é o seguinte: Alice paga Carol 0.1BTC, e as seguintes mudanças de status ocorrem nos dois canais de pagamento acima
A mudança de status entre Alice e Bob é (Alice: 0.3BTC; BOB: 0.8BTC)
A mudança de estado entre BOB e CAROL é (BOB: 0.9BTC; CAROL: 0.1BTC)
Isso conclui a transação de transferência de 0.1BTC de Alice para Carol.
É claro que a explicação técnica detalhada é muito complicada, e a explicação acima é a mais concisa.
O seguinte descreve o processo geral do ataque de transação de substituição cíclica da Lightning Network, e eu não entendo os detalhes técnicos detalhados, e esses opcodes, contratos e funções são um pouco complicados.
Alice paga 0.3BTC a Carol.
Os canais de estado iniciais são os seguintes (ALICE: 0.3BTC; BOB: 0.8BTC) e (BOB: 0.9BTC; CAROL: 0.1BTC)
O canal de estado entre Alice e Bob deve ser alterado para (Alice:0; Bob:1.1BTC)
O canal de estado entre BOB e CAROL deve ser alterado para (BOB: 0.6BTC; CAROL: 0.4BTC)
Alice e Carol decidiram fazer parceria para enganar Bob's 0.3BTC
Carol não afirmou confirmar que recebeu 0.3BTC de Alice, ou seja, Carol não envia as informações de recibo da Lightning Network para BOB. Como resultado, Bob não seria capaz de reivindicar legalmente o 0.3BTC de Alice dentro da Lightning Network.
Em um determinado momento, Alice jogou truques e inicia diretamente a transação de compensação TX1 na cadeia principal do Bitcoin, alegando que ele ainda tem 0.3BTC, enquanto Bob só tem 0.8BTC em seu canal estadual.
No acordo tx1, 0.3BTC foi enviado para o próprio endereço de Alice (assinatura única), então Alice estava tentando roubar 0.3BTC que não pertenciam a ela.
Como Bob não recebeu o recibo de recebimento de Carol, Bob não pode provar (Alice; Bob) neste canal de estado deve ser alterado para (Alice:0BTC; Bob:1.1BTC)
Uma vez que TX1 é empacotado on-chain, ou seja, Alice rouba 0.3BTC, Carol irá imediatamente coletar 0.3BTC na Lightning Network e enviar o recibo para BOB.
Desta forma, Alice realmente não enviou 0.3BTC para BOB, mas Carol realmente recebeu 0.3BTC de BOB. Assim, Bob foi roubado 0.3BTC por Alice e Carol em parceria.
Note que quando Alice inicia uma transação de roubo de moeda TX1 na cadeia principal, Bob tem contramedidas, ou seja, iniciar uma transação para a cadeia principal TX2 prova que Alice está traindo, mas como Bob não recebeu o recibo de recebimento de Carol, a transação TX2 ainda é bastante problemática, mas pode ser feita teoricamente.
Depois que Alice vê TX2, ela usará o método de taxa de mineração mais alta novamente para redefinir TX1 para induzir os mineradores a empacotar TX1 e rejeitar TX2, que é chamado de "substituição".
O acima é o processo geral do ataque de transação de substituição cíclica da Lightning Network, o princípio técnico específico é muito complicado, eu não entendo, apenas assumo que os detalhes técnicos postados pelo desenvolvedor que vejo na Internet estão corretos.
O método de ataque é sanduíche um dos dois, e a troca é natural e todos os usuários abriram um canal de pagamento, então a troca vai sofrer.
No final, eu sinto que isso não é um grande negócio, não há bugs no software, haverá uma maneira de corrigi-lo.