En Lightning Network, ¿qué sucede si un "nodo intermedio" de repente queda inactivo durante mucho tiempo?

Creo que tengo una comprensión general de cómo funciona Lightning Network. Sin embargo, tenía algunas dificultades para entender qué sucede cuando un nodo en medio de un "camino" de repente se queda inactivo o fuera de línea durante mucho tiempo. Para aclarar mi pregunta, considere el siguiente ejemplo:

  1. A quiere hacer un pago de 1 BTC a D.
  2. A encuentra un camino desde A --> B --> C --> D.
  3. D genera una R y envía H = hash(R) a A
  4. A crea HTLC de 1.002 BTC con B.
  5. B crea HTLC de 1.001 BTC con C.
  6. C crea HTLC de 1 BTC con D.
  7. D desbloquea HTLC, recibe 1 BTC y luego le dice a R a C.

Sin embargo, ¿qué pasa si C de repente está fuera de línea, lo que significa que C no estará allí para recibir R de D y, por lo tanto, detiene el flujo de R de regreso a través de la ruta? Asumiría que los HTLC entre A y B y B y C se agotan y, por lo tanto, A y B se reembolsan.

Entonces, ¿C perdería? ¿Habría A realizado una transacción "gratis"? Supongo que este es un proceso rápido, pero ¿es probable que ocurra un evento de este tipo en el que un nodo medio en una transacción de LN simplemente deja de funcionar durante mucho tiempo?

Respuestas (2)

A menos que haya entendido mal el LN, el valor de R se divulga públicamente cuando D acepta el pago, lo que permite que toda la cadena de respaldo reclame sus partes.

Sí, soy consciente de eso, pero digamos que D reclama el pago y revela R y justo antes de que C desaparezca (y no regrese durante la duración del HTLC). Por lo tanto, B puede reclamar fondos dos veces. ¿Es esto correcto y/o realista? ¿O todo el proceso es tan rápido que este escenario es poco probable?
sí, si C desaparece después de haber enviado el valor, y antes de que D reclame el valor, y permanece desaparecido hasta que expire el bloqueo de tiempo, entonces B puede reclamar el valor de A y reclamar el valor de B.
Muy bien, así es exactamente como pensé que funcionaría. ¿Qué tan rápido ocurre este flujo de transacciones? ¿Qué tan rápido tendría que desconectarse C después de transmitir la transacción para que esto suceda? Supongo que ms o incluso menos.
depende principalmente de las latencias de red de las partes involucradas. es probable que sea inferior a un segundo en la mayoría de los casos, pero podría aumentar hasta unos pocos segundos en condiciones menos que ideales.
Además, supongo que si, por ejemplo, B intentara obligar a C a desconectarse mediante algún tipo de ataque para obtener el doble de pago, C podría cometer el compromiso tx y, por lo tanto, "retirarse" del canal. Lo siento, estoy divagando más en una discusión que en una sesión de preguntas y respuestas.
si está considerando esto desde una perspectiva adversa, recuerde que el bloqueo de tiempo es significativamente más largo y que si C detecta la condición, es probable que tenga tiempo suficiente para copiar manualmente la transacción y transmitirla desde un nodo diferente, lo que significa que para hacer con éxito esto como un ataque en el que controlas B y D, necesitarías hacer que C sea completamente incapaz de tomar medidas.
Recibir advertencias sobre la extensión excesiva de la sección de comentarios. Creo que me tienes yendo en la dirección correcta, ¡gracias!
LN tendrá un servicio de seguimiento, C puede darle información suficiente para que el servicio de seguimiento recupere el fondo para C si no lo ha hecho.

Si la transacción no puede resolverse antes de que se agote el valor CLTV del HTLC, se reembolsará a los pares (los HTLC pendientes se cancelarán) y la transacción se cancelará.

Si C no está allí para recibir R, los fondos no se moverán, por lo que no es necesario forzar el cierre, pero los fondos también permanecerán en los canales en línea durante ese período de tiempo. Mientras tanto, los canales en línea podrán propagar pagos dado que hay más liquidez disponible y la cantidad de HTLC-s pendientes está por debajo del límite establecido.

Vea la situación en la que C estaría en línea para recibir R y se desconectaría antes de propagarse a B discutida en: ¿Qué sucede si uno de los nodos de Lightning Network no revela R? (Cancelación de pago)