¿Qué es una imagen previa de hash tal como se usa para el remedio de incumplimiento?

Hasta esta tarde, pensé que las transacciones anti-trampas o los remedios de incumplimiento se basaban en la transacción de salida de la contraparte.

Aparentemente, se basan en algo llamado "imagen previa hash". ¿De qué es la imagen previa? ¿Cómo y por qué se puede usar para crear una transacción una vez que la contraparte intenta violar el canal de pago?

Respuestas (1)

En la imagen a continuación del artículo de Rusty Russell's Deployable Lightning , puede ver una visualización de las transacciones de compromiso y sus resultados:

ingrese la descripción de la imagen aquí

Para cada pago en un canal, se generan dos transacciones de compromiso, una para Alice y otra para Bob. Tanto Alice como Bob firman ambas transacciones de compromiso, por lo que ambas son transacciones válidas (aunque solo una de ellas podría incluirse en la cadena de bloques ya que ambas transacciones gastan las mismas entradas).

Ambas transacciones pagan dos salidas. La transacción que Alice tiene (a la izquierda en el diagrama, Commit TxA) paga los siguientes dos scripts:

  • Una salida P2PKH regular (o su equivalente segwit) que Bob puede gastar en su tiempo libre.

  • Una salida que Alice puede gastar después de esperar un número específico de bloques (digamos 100), como se aplica con OP_CSV, o que Bob puede gastar si tiene un dato que genera un valor hash en esta salida. Llamo a esto la pre-imagen; en otras descripciones de Lightning, esta es una clave privada utilizada para generar una firma.

En la transacción que tiene Bob (a la derecha, TxB) estos están invertidos, hay:

  • Una salida que paga Alice usando P2PKH.

  • Una salida que Bob puede gastar después de esperar 100 bloques o que Alice puede gastar en cualquier momento usando una imagen previa.

En estas salidas, Alice selecciona la imagen previa que evita que Bob gaste su salida (Revocación-A) y Bob selecciona la imagen previa que evita que Alice gaste su salida (Revocación-B). Podrían usar un número aleatorio de gran tamaño, aunque probablemente ambos usen hashes de una cadena de hash generada con el shachain de 64 dimensiones de Rusty Russell para permitir el almacenamiento compacto de cualquier hash revelado, sembrando la cadena con algún valor aleatorio inicial.

Cada vez que Alice y Bob acuerdan actualizar el estado del canal, ambos le revelan a la otra persona la imagen previa del hashlock que colocaron en la salida para el estado anterior del canal, lo que le permite a la otra persona crear un remedio contra la infracción. transacción.

Si Alice le reveló a Bob la imagen previa del hashlock, lo que le permitió a Bob crear una transacción de reparación de incumplimiento, ¿por qué Bob no transmitiría inmediatamente la transacción de reparación de incumplimiento con la imagen previa y tomaría todos los fondos?
Creo que lo resolví: Alice le reveló a Bob la imagen previa para el hashlock de TxA, pero Bob solo envió a Alice TxA con la firma de Bob. Bob no puede transmitir TxA sin la firma de Alice. Solo si Alice transmite TxA con las firmas de Bob y Alice, Bob puede transmitir inmediatamente la misma transacción con las mismas firmas pero también con la imagen previa y obtener todos los fondos. ¿Derecha?