Saltar al contenido
buybitcoinsmart

Glosario / Lightning y capa 2

Canal de pago

También se conoce como Canal de micropagos o Canal Lightning.

¿Qué es un canal de pago?
Un canal de pago es un contrato de bitcoin entre dos partes, financiado por una sola transacción on-chain, dentro del cual ambos lados pueden reescribir miles de veces el reparto de ese dinero sin tocar la cadena.

Piense en él como una cuenta abierta en un bar que los dos bebedores firman después de cada ronda. La salida de financiación es una dirección 2 de 2, así que ninguno de los dos pares puede mover el dinero por sí solo, y cada actualización es una transacción de bitcoin plenamente válida que cualquiera de los dos lados podría publicar. Si usted tiene monedas en un canal, depende de un software que detecte el mal comportamiento, no de que una empresa se porte bien.

Cómo funciona

Un canal de pago reemplaza la confianza por dos piezas de Script de Bitcoin: una salida compartida y una penalización.

Abrir el canal requiere una transacción on-chain que paga a una dirección que exige ambas firmas. Antes de que esa transacción se difunda, los pares intercambian transacciones de compromiso firmadas que la gastan devolviéndoles el dinero en las proporciones acordadas. Pagar dentro del canal consiste simplemente en firmar dos nuevos compromisos con un nuevo reparto y entregar después el secreto que revoca los anteriores.

La revocación es lo que lo hace seguro. Cada lado conserva una transacción de compromiso ligeramente distinta, y la versión que conserva usted paga su propio saldo a un script que solo puede reclamar tras un retraso, habitualmente de 144 bloques, alrededor de un día. En la copia de su par, el mismo retraso recae sobre el lado de ese par. Si cualquiera de los dos difunde un estado antiguo más favorable, el otro dispone de ese retraso para darse cuenta y usar el secreto de revocación para barrer todo el saldo del canal como penalización. La trampa no se impide; se vuelve no rentable.

Nada de esto era posible antes de que existieran los bloqueos temporales relativos (relative timelocks). CHECKSEQUENCEVERIFY y los bloqueos basados en el número de secuencia definidos en BIP68, BIP112 y BIP113 están activos desde el bloque 419.328, en 2016, y son lo que permite a un script decir "gastable, pero solo 144 bloques después de que esta transacción se confirme".

Varias cifras pequeñas de la especificación existen únicamente para que la penalización siga siendo exigible. Cada par mantiene normalmente una reserva que nunca puede gastar, sugerida en el 1 % del total del canal, para que la parte que hace trampa siempre tenga algo que perder. Las salidas por debajo del límite de polvo, 330 satoshis para las salidas pay-to-witness-script-hash que usan los canales, se eliminan y van a comisiones en lugar de escribirse en el compromiso. Los canales modernos llevan además dos salidas ancla de 330 satoshis, que existen para que cualquiera de los dos lados pueda adjuntar una transacción hija que aumente la comisión si la cadena está congestionada cuando necesite cerrar. Y el propio número de compromiso está oculto: 48 de sus bits se enmascaran y se reparten entre el campo locktime y el campo de número de secuencia, de modo que un observador que vea un cierre unilateral no puede contar cuántos pagos pasaron por el canal.

Por qué importa cuando compra bitcoin

Los canales son la razón por la que un saldo Lightning y un saldo en almacenamiento en frío no son intercambiables, aunque ambos sean bitcoin.

El dinero de un canal necesita una clave en línea y un nodo que vigile. Eso está bien en una billetera para gastar. Es el lugar equivocado para una acumulación de sats que piensa conservar durante años, porque el modelo de seguridad le exige algo de forma continua y no una sola vez. Nuestras reseñas de billeteras de hardware cubren la opción contraria: claves que nunca tocan una red y nunca necesitan reaccionar a nada.

De ahí se siguen dos consecuencias prácticas para cualquiera que compre. Primera: abrir y cerrar canales son transacciones on-chain, así que una billetera que abre un canal por usted gasta comisiones reales en su nombre, a veces sin avisar. Compruebe cuánto cobra una billetera Lightning móvil por su primer canal antes de depositar en ella 30 dólares y descubrir que un tercio se fue en la configuración inicial. Segunda: si una aplicación Lightning nunca menciona canales, claves ni respaldos, casi con certeza es ella misma la que tiene el canal. Eso es una cuenta con custodia bajo un barniz de Lightning, y pertenece a la misma categoría de riesgo que dejar monedas en un exchange.

La última es aburrida pero cara: el estado del canal no se puede recuperar a partir de una frase semilla. Un respaldo de doce palabras restaura perfectamente una billetera on-chain y no restaura nada sobre cuál era el compromiso actual. Las billeteras Lightning sin custodia respaldan el estado del canal por separado, y perder ese respaldo puede costarle el saldo del canal aunque siga conservando la semilla.

Anatomía de un cierre de canal

Siga el final de un solo canal y las piezas dejan de ser abstractas.

Dos pares abren un canal con 1.000.000 satoshis, financiado íntegramente por uno de ellos. Tras un mes de pagos, el reparto es de 400.000 y 600.000. Un cierre cooperativo es el caso ideal: ambos firman una única transacción de cierre que paga directamente a cada lado, se confirma como cualquier gasto normal y ninguna de las dos salidas tiene retraso.

Un cierre unilateral es la alternativa. Un par desaparece, así que el otro difunde su compromiso más reciente. Su propio saldo queda en un script que no puede tocar durante el retraso acordado, el par que se fue puede gastar su saldo de inmediato y las salidas ancla quedan ahí por si hace falta aumentar la comisión. Si el par que desapareció difunde más tarde un compromiso obsoleto en el que figura con 900.000 satoshis, el lado honesto dispone de la ventana de retraso para publicar la revocación y quedarse con los 1.000.000 completos.

Canal de pago frente a statechain

Un canal de pago mantiene on-chain un contrato vivo entre dos partes; una statechain hace circular el derecho a gastar una salida fija. En un canal, el saldo puede ser cualquier cifra y cambia con cada pago, y cualquiera de las partes puede hacer cumplir el contrato de forma unilateral. En una statechain, un UTXO entero de tamaño fijo pasa de un propietario al siguiente con la ayuda de un servidor al que se le pide que borre su antigua parte de la clave, así que el modelo depende de que ese servidor la borre de verdad. Los canales le cuestan una transacción on-chain para abrirlos y le dan un saldo gastable; las statechains le cuestan un supuesto de confianza y le dan una moneda entera.

No confundir con

Preguntas frecuentes

¿Mi frase semilla respalda mis canales Lightning?

No. Una semilla restaura las claves on-chain, pero no puede indicarle a su billetera cuál fue el estado más reciente del canal. Las billeteras Lightning sin custodia guardan un respaldo de canales aparte, y perderlo puede costarle el saldo del canal.

¿Qué pasa si mi contraparte del canal se desconecta para siempre?

Usted difunde su transacción de compromiso más reciente para cerrar el canal de forma unilateral. Su propio saldo pasa a ser gastable tras el retraso acordado, habitualmente alrededor de 144 bloques, y la parte de su par se paga de inmediato.

¿Puede mi contraparte del canal robarme el dinero?

Solo publicando un estado antiguo del canal, y solo si nadie lo detecta. El secreto de revocación que usted ya conserva le permite reclamar todo el saldo del canal como penalización durante la ventana de retraso, y por eso la trampa es poco frecuente.

Para seguir leyendo

Términos relacionados

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

Leer esta página en inglés