¿Cómo invalidan las transacciones los nodos cuando ambas partes están fuera de línea en una Lightning Network?

Imaginemos que Alice quiere enviar múltiples transacciones a Bob. Tanto Alice como Bob tienen canales abiertos con Carol, no entre ellos:

Alice <-> Carol <-> Bob

Entonces Alice primero envía 0.01 BTC a Bob. Ella configura el tx multi-sig y lo envía a Carol, que luego también ve Bob. Luego, Alice realiza otra transacción a Bob de 0,02 BTC y establece un bloqueo de tiempo anterior para invalidar los 0,01 tx anteriores.

Ahora, tanto Alice como Bob han visto estas 2 transacciones y ambos se desconectan. Están seguros de que Alice le ha dado a Bob 0.02 BTC.

Mi pregunta es: ¿cómo saben que Carol comprometerá con la cadena de bloques (cuando llegue el momento) la segunda transacción en lugar de la primera? ¿No podría Carol simplemente enviar el 0.01 tx a la cadena de bloques en lugar del 0.02?

Entiendo que Bob podría conectarse y publicarlo él mismo, y debido al bloqueo de tiempo, podría hacerlo antes que el otro, invalidándolo.

Pero en el escenario en el que tanto Alice como Bob están desconectados, ¿tienen que confiar en que Carol se comporte con honestidad?

Respuestas (1)

AFAIU, si tiene canales Lightning abiertos, no puede desconectarse. Debe estar en línea para monitorear la cadena de bloques en busca de compromisos antiguos. Si ve una transacción de compromiso anterior, transmite inmediatamente la transacción de castigo, pero no puede hacerlo si se desconecta. Entonces, si tiene canales Lightning abiertos, debe estar en línea y si se desconecta, confía en que la otra persona en el canal no intentará estafarlo.

Interesante, ¿así que tanto Alice como Bob deben estar en línea durante todo el canal? Esto parece bastante desagradable para los usuarios de billeteras en dispositivos móviles, por ejemplo, donde las conexiones son bastante esporádicas.
Creo que podría haber más en esto. Carol puede enviar el 0.01 tx en lugar del 0.02 a la cadena de bloques (mientras estás desconectado). Sin embargo, luego se conecta, digamos después de una semana, y presenta el 0.02 que tiene un bloqueo de tiempo anterior. ¿La red vería eso y penalizaría a Carol por cometer el 0.01 en lugar del 0.02? Estaba leyendo sobre algo que tiene que ver con las penalizaciones, pero no estoy seguro de si esta es la lógica detrás de esto y cómo funcionaría.
Para que sepa que la transacción de penalización debe transmitirse, debe estar en línea y monitorear la cadena de bloques. Alternativamente, puede hacer que un tercero lo mire por usted. Pero no hay forma de evitar el hecho de que alguien necesita ver la cadena de bloques para saber si transmitir la transacción de penalización o no.
Pero, ¿cómo puede confiar en que el tercero lo hará correctamente y de manera oportuna para no dejar que la otra transacción anterior gane?
Por eso debes confiar en ellos. De lo contrario no puedes.
¿Está seguro de que no existe un sistema en el que el tercero no pueda simplemente enviar una transacción anterior a la cadena de bloques? Eso parece una gran cantidad de confianza para poner en terceros.
Parece que hay algo aquí , aunque todavía no puedo descifrarlo . gastando la producción del partido a la contraparte si la antigua "transacción de salida" se transmitió a la red"
El tercero no necesitaría conocer la transacción en sí, solo sus hashes para que pueda ver la cadena de bloques por usted. No pueden comprometerse, solo observar y notificar. De todos modos, LN no requiere estos terceros, solo requiere que alguien (ya sea usted mismo o alguien en su nombre) esté observando la cadena de bloques para asegurarse de que no lo están estafando.
Todavía parece extraño que un usuario pueda hacer una transacción de LN, desconectarse por más tiempo que el tiempo de vida del canal y volver con el riesgo de perder ese tx de LN cuando la otra parte procedió a sobrescribirlo con una transacción anterior (y el tiempo de bloqueo es encima). Creo que el usuario que se desconectó aún podría tener una transacción para recuperar su dinero, en caso de que esto suceda después de la vida útil del canal.
La especificación LN actual no tiene opción para que un usuario se desconecte. Simplemente no se le permite tener canales abiertos y estar desconectado al mismo tiempo porque puede perder su dinero. LN no permite que los usuarios se desconecten y, hasta ahora, no hay forma de evitarlo.