710 / 736SPL

Splicing

Añadir o retirar fondos de un canal Lightning existente

Para añadir bitcoin a un canal Lightning o retirar una parte, no siempre hace falta cerrarlo y abrir otro. Splicing traslada el canal existente a una nueva salida de una transacción de Bitcoin. Ambas partes acuerdan el cambio y el canal puede seguir funcionando.

Splicing modifica conjuntamente la financiación de un canal Lightning: una nueva transacción on-chain gasta la salida que lo financiaba y crea otra. Las partes preparan también las commitment transactions correspondientes, transacciones firmadas para un posible cierre. Se mantiene el mismo canal, en lugar de cerrarlo normalmente y abrir otro por separado.

Splice-in añade fondos al saldo de quien aporta; splice-out traslada parte de ese saldo a una salida fuera del canal. Las aportaciones afectan a la capacidad total, pero esta puede no cambiar si se compensan entre sí. Los fondos del canal quedan siempre vinculados a otra salida de financiación en Bitcoin. No se requiere un cierre cooperativo normal seguido de una nueva apertura. [1]

El canal entra primero en quiescence, una breve pausa de las actualizaciones incompatibles. El iniciador envía splice_init y el otro nodo responde con splice_ack. La transacción conjunta debe incluir exactamente una entrada que gaste la salida de financiación anterior y una nueva salida que financie este canal; otras entradas y salidas pueden añadir o retirar fondos. Después se intercambian commitment_signed y tx_signatures con las firmas correspondientes. [1]

Tras intercambiar las firmas de la transacción, los pagos pueden reanudarse mientras se espera una profundidad de confirmación aceptable. Los nodos mantienen simultáneamente estados de compromiso para la financiación original, el nuevo splice y las posibles sustituciones RBF. Cada pago debe ser válido en todas las variantes activas. Al reconectar hay que recuperar el estado pendiente correcto; no basta con guardar una sola última transacción. [1] [2]

Ambos nodos deben negociar la compatibilidad con option_splice y aceptar transacción, tasa de comisión y aportaciones. El otro nodo puede rechazar la propuesta con tx_abort. Hasta que ambas partes reconozcan el mismo splice mediante splice_locked, las nuevas actualizaciones deben cubrir todas las commitment transactions activas. Una parte no puede modificar por sí sola el saldo de la otra. [1] [3]

Core Lightning activó Splicing por defecto en la versión 26.04. Añadió los comandos splicein y spliceout y transferencias entre dos canales, llamadas cross-splice. Siguen importando la versión del otro nodo y el tipo de canal compatible. El mismo nombre de función en distintas carteras no demuestra capacidades idénticas ni interoperabilidad. [4]

Splicing sigue creando una transacción de Bitcoin, por lo que importan la comisión on-chain, la confirmación y las posibles reorganizaciones. Eclair ofrece, por ejemplo, rbfsplice para aumentar la tasa de una transacción splice sin confirmar. Deben respetarse reservas, requisitos de entradas confirmadas, límites de aportaciones y de intentos RBF, y el estado de las copias de seguridad. El modo especial option_zeroconf cambia los supuestos de confianza y el protocolo prohíbe RBF en ese modo. [1] [5]

Cuando el splice elegido alcanza la profundidad aceptable y ambas partes intercambian splice_locked para el mismo txid, pueden dejar de mantener variantes antiguas y fallidas. Cambia el funding outpoint, la referencia a una salida concreta; la capacidad depende de la suma de aportaciones. En un canal público cambia también short_channel_id, derivado de la transacción confirmada, y las partes pueden preparar nuevas announcement_signatures. [1]

Compruebe la compatibilidad de ambos nodos, channel_id, signo e importe de funding_contribution_satoshis, tasa de comisión, entradas, salidas, reservas y firmas. Siga el txid de cada variante RBF. Al terminar, compare splice_locked, el nuevo funding outpoint y, en un canal público, short_channel_id. Verifique también que se reanudan los HTLC y que la salida retirada pertenece realmente a la cartera prevista. [2] [1]

Para obtener la imagen más completa, lee esta entrada junto con Payment Channel, Lightning Network, UTXO, Liquidez de Lightning, Replace-by-Fee (RBF), Price Channel. También enlazan con esta entrada Liquidez de Lightning.

01¿Splicing equivale a cerrar y reabrir el canal?

No. También crea una transacción de Bitcoin, pero las partes trasladan juntas el canal existente a otra salida de financiación. Un cierre normal termina el canal anterior y la apertura posterior crea uno independiente.

02¿Se pueden añadir y retirar fondos?

Sí. Una aportación positiva es splice-in y una negativa splice-out. Ambas partes deben aceptar el cambio y la transacción debe respetar saldos, reglas de reservas y comisiones. La suma de sus aportaciones determina la capacidad final.

DOC · 001BOLT 2 — Channel SplicingEspecificación DOC · 002BOLT 2 — Splicing Test VectorsEspecificación DOC · 003BOLT 9 — Assigned Feature FlagsEspecificación DOC · 004Core Lightning v26.04 release notesFuente primaria DOC · 005Eclair API — Splice-in, Splice-out and RBF SpliceDocumentación
Revisado: Fuentes primero · No es asesoramiento financiero