Canales de Pago

La pieza fundamental de Lightning

⚡ Lightning Network

Un canal de pago es la forma en que dos personas intercambian bitcoin entre sí varias veces, sin registrar cada pago en la blockchain. Es la base de todo en Lightning y, volviendo a nuestro ejemplo, es la cuenta del bar.

Abrir el canal

Imagina que vas a ser cliente frecuente del Bar de Bob. En lugar de pagar cada cerveza en la blockchain, abren una cuenta.

Pero hay un detalle importante: para que nadie pueda salir corriendo con el dinero, bloquean el bitcoin en una "caja fuerte" que solo se abre con la firma de los dos. Técnicamente, eso es una dirección multisig 2-de-2, y el bitcoin se coloca allí mediante una transacción en la blockchain — la transacción de financiación (funding).

Por ejemplo: bloqueas en el canal el equivalente a 10 cervezas. A partir de ahí, ese valor está "dentro" de la cuenta y ambos controlan cómo se divide.

Diagrama de apertura de canal: Tú y el Bar de Bob bloquean bitcoin en una caja fuerte multisig 2-de-2 mediante una transacción de financiación on-chain.

Pagar dentro del canal

Con la cuenta abierta, cada cerveza es solo un nuevo acuerdo sobre cómo dividir el dinero de la caja fuerte — firmado por los dos y sin tocar la blockchain.

Siguiendo el ejemplo (cuenta de 10 cervezas):

Cada nuevo saldo es una nueva versión de la transacción que cerraría el canal (la transacción de compromiso, o commitment), firmada por ambos. Solo la versión más reciente es la que vale. Y eso ocurre en milisegundos, tantas cervezas como quieras.

Diagrama que muestra el saldo del canal actualizándose con cada cerveza: 10/0, luego 8/2, luego 7/3, cada estado firmado por ambos y solo el último vigente.

Cerrar el canal

Al final de la noche, alguien publica el último estado de la cuenta en la blockchain (la transacción de cierre). La blockchain entonces paga a cada uno su saldo final. En el ejemplo, tú recibes 7 cervezas de vuelta y Bob se queda con 3.

Fíjate en el ahorro otra vez: por muchas cervezas que hayan anotado, solo aparecieron dos transacciones en la blockchain — la de abrir y la de cerrar.

¿Y si alguien intenta hacer trampa?

Buena pregunta. Como cada saldo antiguo es una transacción válida y firmada, en teoría alguien podría intentar publicar un estado antiguo — aquel en el que tenía más dinero. En nuestro ejemplo, quien tendría esa tentación eres : bastaría con cerrar la cuenta mostrando el estado del comienzo de la noche (10 cervezas tuyas, 0 de Bob), antes de beber, y marcharte sin pagar lo que ya tomaste.

Lightning resuelve eso con un mecanismo de penalización: si publicas un estado antiguo, Bob tiene una ventana de tiempo para probar la trampa y quedarse con todo el saldo del canal. Es decir, hacer trampa sale muy caro, así que nadie lo intenta. (Los detalles de cómo funciona eso quedan para la parte técnica.)

Hasta aquí hablamos de un canal entre dos personas. Lo que convierte a Lightning en una red es poder pagar a alguien con quien no tienes un canal directo, saltando por los canales de otras personas — el enrutamiento. Eso lo veremos en la próxima página, Cómo funciona Lightning.