Cuando se usa un canal Lightning, dos lados envían transacciones que representan el estado actual (o saldo) entre ellos, y para cada estado enviado, invalidan el estado anterior al enviar un secreto para un rompecabezas hash en una transacción HTLC.
Por ejemplo, cuando Alice le envía a Bob el nuevo estado entre ellos, también envía un secreto para el rompecabezas en el estado anterior. Bob puede usarlo para canjear Bitcoin si Alice publica la transacción de estado anterior en la cadena de bloques.
Mi pregunta es: ¿Bob necesita guardar todos los secretos de todos los estados anteriores hasta que el canal se resuelva y cierre? Parece que Bob podría necesitar guardar una gran cantidad de datos cuando tiene muchos canales.
A menos que bob use un servicio de torre de vigilancia donde subcontrata el almacenamiento de datos, Bob necesita conocer todos los secretos de revocación anteriores. Sin embargo, no necesita almacenarlos y guardarlos todos, ya que los secretos de revocación se derivan de forma determinista. Esto significa que siempre que sepa un secreto de revocación de un estado actual, podré derivar todos los secretos de revocación anteriores a partir de él.
Puede encontrar los detalles de la derivación de la llave en la sección de llaves de BOLT 03
Dicho esto, los secretos de revocación no son lo mismo que las preimágenes de los HTLC (que creo que su pregunta implica / confunde). Las antiguas preimágenes de los HTLC establecidos nunca necesitan almacenarse ni reproducirse. Esto se debe a que en el caso de la transacción de penalización de los HTLC de segunda etapa, el secreto de revocación es suficiente para acceder a los fondos antes del bloqueo de tiempo.
usuario107511
René Pickhardt