Recientemente (finales de octubre de 2023) la comunidad de Bitcoin reveló que la Lightning Network puede tener fallas importantes, lo que permite a los usuarios construir un método de ataque para robar dinero, llamado "Lightning Replacement Cycling Attack".
Leí el principio de la misma, y el nombre chino se puede traducir como "Ataque de transacción de reemplazo cíclico de Lightning Network".
Su principio de ataque es el siguiente.
En primer lugar, explique cómo funciona Lightning Network:
Alice y Bob abren un canal de pago, es decir, abren conjuntamente una dirección de firma 2-2, cada uno de ellos tiene una clave privada.
Alice y Bob recargan 0.5BTC y 0.6BTC a esta dirección de firma 2-2 respectivamente (la cantidad se puede elegir arbitrariamente, soy solo un ejemplo), las cuales ocurren en la cadena principal de Bitcoin, y los mineros deben confirmar. De esta manera, el estado inicial de este canal de pago es que 0.5BTC pertenece a ALICE, 0.6BTC pertenece a BOB, registramos (ALICE: 0.5BTC; Bob:0.6BTC)。
De esta manera, en esta dirección de 2-2 firmas, Alice y Bob pueden pagarse entre sí, por ejemplo, Alice puede pagar BOB 0.1BTC, de modo que el estado del canal estatal se convierte en 0.4BTC pertenece a Alice, 0.7BTC pertenece a BOB, (ALICE: 0.4BTC; Bob:0.7BTC)。 Y tales transacciones no necesitan estar empaquetadas en la cadena principal de Bitcoin, sino que solo ocurren entre Alice y Bob, lo que se llama canal de pago.
Las transferencias arbitrarias entre Alice y Bob no necesitan liquidarse a la cadena principal, lo que ahorra muchas tarifas mineras y se puede recibir en tiempo real, eliminando la necesidad de 10 minutos de confirmación de bloque.
Pero si solo puede transferir transacciones entre dos personas, es inútil.
También se abre un canal de pago entre Bob y Carol, y el estado inicial es que Bob tiene 1.0BTC, carol0BTC, que se registra como (BOB: 1.0BTC; villancico:0BTC)。
En este momento, ves que hay un canal de pago entre Alice y Bob, y también hay un canal de pago entre Bob y Carol.
Alice puede pagar bitcoins a Carol a través de Bob.
El proceso de pago es el siguiente: Alice paga a Carol 0.1BTC, y los siguientes cambios de estado ocurren en los dos canales de pago anteriores
El cambio de estado entre Alice y Bob es (Alice: 0.3BTC; BOB: 0.8BTC)
El cambio de estado entre BOB y CAROL es (BOB: 0.9BTC; CAROL: 0.1BTC)
Esto completa la transacción de transferencia de 0.1BTC de Alice a Carol.
Cuando más y más partes abren el canal de pago y realizan la interconexión mutua, se forma una red de pago, que llamamos Lightning Network.
Por supuesto, la explicación técnica detallada es demasiado complicada, y la anterior es la explicación más concisa.
A continuación se describe el proceso general del ataque de transacción de reemplazo cíclico de Lightning Network, y no entiendo los detalles técnicos detallados, y esos códigos de operación, contratos y funciones son un poco complicados.
Los atacantes son Alice y Carol, quienes conspiran para atacar a Bob, y Bob es la víctima.
Alice paga 0.3BTC a Carol.
Los canales de estado iniciales son los siguientes (ALICE: 0.3BTC; BOB: 0.8BTC) y (BOB: 0.9BTC; CAROL: 0.1BTC)
El canal de estado entre Alice y Bob debe cambiarse a (Alice:0; Bob:1.1BTC)
El canal de estado entre BOB y CAROL debe cambiarse a (BOB: 0.6BTC; CAROL: 0.4BTC)
Alice y Carol decidieron asociarse para estafar a Bob con 0.3BTC
Carol no ha afirmado confirmar que ha recibido 0,3 BTC de Alice, es decir, Carol no envía la información del recibo de Lightning Network a BOB. Como resultado, Bob no podría reclamar legalmente los 0,3 BTC de Alice dentro de la Lightning Network.
En un momento determinado, Alice jugó una mala pasada e inicia directamente la transacción de compensación TX1 en la cadena principal de Bitcoin, afirmando que todavía tiene 0,3 BTC, mientras que Bob solo tiene 0,8 BTC en su canal estatal.
En el acuerdo tx1, se enviaron 0,3 BTC a la propia dirección de Alice (firma única), por lo que Alice estaba tratando de robar 0,3 BTC que no le pertenecían.
Debido a que Bob no recibió el recibo de Carol de Carol, Bob no puede probar (Alice; Bob) en este canal de estado debe cambiarse a (Alice:0BTC; Bob:1.1BTC)
Una vez que TX1 está empaquetado en la cadena, es decir, Alice roba 0.3BTC, Carol recolectará inmediatamente 0.3BTC en Lightning Network y enviará el recibo a BOB.
De esta manera, Alice en realidad no envió 0.3BTC a BOB, pero Carol en realidad recibió 0.3BTC de BOB. Así que Alice y Carol le robaron 0,3 BTC a Bob en sociedad.
Tenga en cuenta que cuando Alice inicia una transacción de robo de monedas TX1 en la cadena principal, Bob tiene contramedidas, es decir, iniciar una transacción en la cadena principal TX2 demuestra que Alice está haciendo trampa, pero debido a que Bob no recibió el recibo de Carol de Carol, la transacción TX2 sigue siendo bastante problemática, pero se puede hacer teóricamente.
Después de que Alice vea TX2, volverá a utilizar el método de la tarifa de minero más alta para restablecer TX1 para inducir a los mineros a empaquetar TX1 y rechazar TX2, lo que se denomina "reemplazo".
En la actualidad, los desarrolladores dicen que la colusión entre Alice y Carol puede hacer que parezca más difícil legitimar el TX2 de BOB en los mineros de la cadena principal de Bitcoin, y para demostrar más claramente que TX2 es legítimo, el protocolo debe modificarse y es una bifurcación suave para la cadena principal, lo cual es difícil.
Lo anterior es el proceso general del ataque de transacción de reemplazo cíclico de Lightning Network, el principio técnico específico es demasiado complicado, no entiendo, solo asumo que los detalles técnicos publicados por el desarrollador que veo en Internet son correctos.
El método de ataque es intercalar uno de los dos, y el intercambio es natural y todos los usuarios han abierto un canal de pago, por lo que el intercambio va a sufrir.
Al final, siento que esto no es un gran problema, no hay errores en el software, habrá una manera de solucionarlo.
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
Comprenda rápidamente los ataques de bucle de transacciones de reemplazo de Lightning Network
Recientemente (finales de octubre de 2023) la comunidad de Bitcoin reveló que la Lightning Network puede tener fallas importantes, lo que permite a los usuarios construir un método de ataque para robar dinero, llamado "Lightning Replacement Cycling Attack".
Leí el principio de la misma, y el nombre chino se puede traducir como "Ataque de transacción de reemplazo cíclico de Lightning Network".
Su principio de ataque es el siguiente.
En primer lugar, explique cómo funciona Lightning Network:
Alice y Bob recargan 0.5BTC y 0.6BTC a esta dirección de firma 2-2 respectivamente (la cantidad se puede elegir arbitrariamente, soy solo un ejemplo), las cuales ocurren en la cadena principal de Bitcoin, y los mineros deben confirmar. De esta manera, el estado inicial de este canal de pago es que 0.5BTC pertenece a ALICE, 0.6BTC pertenece a BOB, registramos (ALICE: 0.5BTC; Bob:0.6BTC)。
De esta manera, en esta dirección de 2-2 firmas, Alice y Bob pueden pagarse entre sí, por ejemplo, Alice puede pagar BOB 0.1BTC, de modo que el estado del canal estatal se convierte en 0.4BTC pertenece a Alice, 0.7BTC pertenece a BOB, (ALICE: 0.4BTC; Bob:0.7BTC)。 Y tales transacciones no necesitan estar empaquetadas en la cadena principal de Bitcoin, sino que solo ocurren entre Alice y Bob, lo que se llama canal de pago.
Las transferencias arbitrarias entre Alice y Bob no necesitan liquidarse a la cadena principal, lo que ahorra muchas tarifas mineras y se puede recibir en tiempo real, eliminando la necesidad de 10 minutos de confirmación de bloque.
Pero si solo puede transferir transacciones entre dos personas, es inútil.
También se abre un canal de pago entre Bob y Carol, y el estado inicial es que Bob tiene 1.0BTC, carol0BTC, que se registra como (BOB: 1.0BTC; villancico:0BTC)。
En este momento, ves que hay un canal de pago entre Alice y Bob, y también hay un canal de pago entre Bob y Carol.
Alice puede pagar bitcoins a Carol a través de Bob.
El proceso de pago es el siguiente: Alice paga a Carol 0.1BTC, y los siguientes cambios de estado ocurren en los dos canales de pago anteriores
El cambio de estado entre Alice y Bob es (Alice: 0.3BTC; BOB: 0.8BTC)
El cambio de estado entre BOB y CAROL es (BOB: 0.9BTC; CAROL: 0.1BTC)
Esto completa la transacción de transferencia de 0.1BTC de Alice a Carol.
Por supuesto, la explicación técnica detallada es demasiado complicada, y la anterior es la explicación más concisa.
A continuación se describe el proceso general del ataque de transacción de reemplazo cíclico de Lightning Network, y no entiendo los detalles técnicos detallados, y esos códigos de operación, contratos y funciones son un poco complicados.
Alice paga 0.3BTC a Carol.
Los canales de estado iniciales son los siguientes (ALICE: 0.3BTC; BOB: 0.8BTC) y (BOB: 0.9BTC; CAROL: 0.1BTC)
El canal de estado entre Alice y Bob debe cambiarse a (Alice:0; Bob:1.1BTC)
El canal de estado entre BOB y CAROL debe cambiarse a (BOB: 0.6BTC; CAROL: 0.4BTC)
Alice y Carol decidieron asociarse para estafar a Bob con 0.3BTC
Carol no ha afirmado confirmar que ha recibido 0,3 BTC de Alice, es decir, Carol no envía la información del recibo de Lightning Network a BOB. Como resultado, Bob no podría reclamar legalmente los 0,3 BTC de Alice dentro de la Lightning Network.
En un momento determinado, Alice jugó una mala pasada e inicia directamente la transacción de compensación TX1 en la cadena principal de Bitcoin, afirmando que todavía tiene 0,3 BTC, mientras que Bob solo tiene 0,8 BTC en su canal estatal.
En el acuerdo tx1, se enviaron 0,3 BTC a la propia dirección de Alice (firma única), por lo que Alice estaba tratando de robar 0,3 BTC que no le pertenecían.
Debido a que Bob no recibió el recibo de Carol de Carol, Bob no puede probar (Alice; Bob) en este canal de estado debe cambiarse a (Alice:0BTC; Bob:1.1BTC)
Una vez que TX1 está empaquetado en la cadena, es decir, Alice roba 0.3BTC, Carol recolectará inmediatamente 0.3BTC en Lightning Network y enviará el recibo a BOB.
De esta manera, Alice en realidad no envió 0.3BTC a BOB, pero Carol en realidad recibió 0.3BTC de BOB. Así que Alice y Carol le robaron 0,3 BTC a Bob en sociedad.
Tenga en cuenta que cuando Alice inicia una transacción de robo de monedas TX1 en la cadena principal, Bob tiene contramedidas, es decir, iniciar una transacción en la cadena principal TX2 demuestra que Alice está haciendo trampa, pero debido a que Bob no recibió el recibo de Carol de Carol, la transacción TX2 sigue siendo bastante problemática, pero se puede hacer teóricamente.
Después de que Alice vea TX2, volverá a utilizar el método de la tarifa de minero más alta para restablecer TX1 para inducir a los mineros a empaquetar TX1 y rechazar TX2, lo que se denomina "reemplazo".
Lo anterior es el proceso general del ataque de transacción de reemplazo cíclico de Lightning Network, el principio técnico específico es demasiado complicado, no entiendo, solo asumo que los detalles técnicos publicados por el desarrollador que veo en Internet son correctos.
El método de ataque es intercalar uno de los dos, y el intercambio es natural y todos los usuarios han abierto un canal de pago, por lo que el intercambio va a sufrir.
Al final, siento que esto no es un gran problema, no hay errores en el software, habrá una manera de solucionarlo.