Saltar al contenido
buybitcoinsmart

Glosario / Lightning y capa 2

Cierre cooperativo

¿Qué es un cierre cooperativo?
Un cierre cooperativo pone fin a un canal Lightning de común acuerdo: ambos pares firman una sola transacción que paga a cada parte su saldo final, sin retraso y sin riesgo de penalización.

Un cierre cooperativo es una breve negociación sobre dos cosas: dónde quiere recibir su pago cada parte y quién paga la comisión de minería. La ruta moderna usa tres tipos de mensaje: shutdown, de tipo 38, y después closing_complete, de tipo 40, y closing_sig, de tipo 41, según las reglas de la opción option_simple_close. Su saldo llega como una salida gastable ordinaria en cuanto se confirma la transacción de cierre, sin ningún período de espera.

Cómo funciona

Un cierre cooperativo se desarrolla en dos etapas, y la primera es una promesa de detenerse.

Cualquiera de los dos pares inicia el cierre enviando el mensaje shutdown, de tipo 38, en el que indica el scriptpubkey al que quiere que se envíe su pago. A partir de ese momento, el remitente no puede añadir ningún HTLC nuevo, y la otra parte debe responder con su propio shutdown en cuanto no quede nada pendiente. BOLT 2 limita ese script a las formas que la red retransmitirá: una inserción de datos de 20 o 32 bytes tras OP_0 o, una vez negociada la opción option_shutdown_anysegwit, cualquiera de OP_1 a OP_16 seguido de una inserción de datos de 2 a 40 bytes.

La segunda etapa empieza cuando ya no queda ningún HTLC en ninguna de las dos transacciones de compromiso. Con option_simple_close, los bits de funcionalidad 60 y 61 de BOLT 9, cada par construye su propia versión de la transacción de cierre, descuenta toda la comisión de su propio saldo y envía el mensaje closing_complete, de tipo 40. La otra parte firma lo que recibió y devuelve el mensaje closing_sig, de tipo 41. Como paga quien propone, la discusión sobre el nivel de comisión no tiene cabida, y BOLT 2 lo presenta como el objetivo del diseño. Volver a enviar closing_complete con una comisión más alta es la forma de aumentar la comisión del cierre, y BOLT 3 asigna a esa transacción un número de secuencia de entrada de 0xFFFFFFFD, que la especificación llama un RBF del intento anterior.

La ruta heredada (legacy), con el mensaje closing_signed de tipo 39, sigue vigente en la especificación. En ella, el financiador indica una comisión junto con un campo fee_range con min_fee_satoshis y max_fee_satoshis, y la parte no financiadora elige un número dentro de ese rango, lo que concluye en dos mensajes si elige el mismo valor y en tres en caso contrario. Sin rango, cada respuesta tiene que quedar estrictamente entre las dos últimas ofertas, así que las partes convergen satoshi a satoshi.

Dónde aparece

Un cierre cooperativo es lo que hace su billetera cuando usted pulsa cerrar y el par responde: una sola transacción, sin ningún saldo pendiente detrás.

BOLT 2 incluye su propio ejemplo paso a paso. A y B intercambian sus scripts de shutdown, los HTLC pendientes terminan, y entonces A ofrece pagar 1.000 satoshis de comisión mientras B, por su cuenta, ofrece 750. Cada uno firma la versión del otro. Más tarde, A cambia su script de pago y vuelve a enviar con 1.100 satoshis, y B aumenta la comisión de su propio intento a 850.

En los canales pequeños es donde las reglas se hacen notar. La parte con menos dinero puede omitir su propia salida, y debe omitirla si el monto fuera polvo. Si las comisiones convirtieran ambas salidas en polvo, quien cierra puede enviar un script OP_RETURN en lugar de una dirección, y el valor de su salida se establece en cero, de modo que los fondos de esa parte se van en comisiones y la transacción se sigue retransmitiendo. La especificación advierte que una salida de menos de 546 satoshis pagada a un script que no es SegWit puede no llegar nunca a un minero, y que en ese caso hay que forzar el cierre del canal.

Cierre cooperativo frente a cierre forzado

Tanto un cierre cooperativo como un cierre forzado ponen fin a un canal con una transacción on-chain, y la diferencia está en quién espera.

En un cierre cooperativo, ambas salidas son pagos simples, así que cada parte puede gastar desde la primera confirmación y ninguna rama de penalización entra nunca en juego. Un cierre forzado, en cambio, publica una transacción de compromiso, deja su propio saldo detrás de un retraso en bloques acordado al abrir el canal y da a cada pago en tránsito su propia transacción posterior. Nuestra reseña de Phoenix sitúa esa espera en aproximadamente 720 bloques, alrededor de cinco días, antes de que se puedan recuperar los fondos de un cierre forzado.

Un cierre cooperativo necesita que el otro nodo esté activo y dispuesto a responder a un mensaje shutdown. Por eso existe el cierre forzado, y por eso un par al que usted no puede contactar es un par cuya comisión de cierre usted no controla.

No confundir con

Preguntas frecuentes

¿Quién paga la comisión de minería en un cierre cooperativo?

Paga quien propone la transacción. Con option_simple_close, cada par envía su propio mensaje closing_complete y descuenta la comisión de su propio saldo, y por eso BOLT 2 dice que el diseño elimina el desacuerdo sobre la comisión como modo de fallo. En la ruta heredada de closing_signed, paga el financiador, que indica un rango de comisión dentro del cual elige la otra parte.

¿Puedo cerrar un canal de forma cooperativa si mi par está desconectado?

No. Un cierre cooperativo requiere que el otro nodo responda a su mensaje shutdown y devuelva una firma, así que, con un par inalcanzable, lo que le queda en su lugar es un cierre forzado. Esa es la diferencia que conviene prever antes de dejar dinero en un canal.

¿Cuánto tiempo tengo que esperar para gastar el dinero tras un cierre cooperativo?

Hasta que se confirme la transacción de cierre. Ambas salidas son pagos ordinarios a los scripts de pago que eligió cada parte, sin bloqueo temporal (timelock) en ninguna de ellas. Es un cierre forzado lo que deja su propia parte detrás de un retraso en bloques.

Para seguir leyendo

Términos relacionados

Más en la sección Lightning y capa 2

Leer esta página en inglés