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.