Seleccionar página

¿Que es la Lightning Network o red de canales de pago?

Lightning Network es un sistema descentralizado para micropagos instantáneos y de alto volumen que elimina el riesgo de delegar la custodia de fondos a terceros de confianza.

Las redes blockchain actuales permiten a cualquier persona enviar valor sin requerir de un intermediario o depositario de confianza. Sin embargo, la transmisión y validación de estas transacciones son lentas y costosas debido a limitaciones intrínsecas de estas redes. Por ejemplo, bitcoin, la criptomoneda más utilizada y valiosa del mundo, agrega transacciones a bloques espaciados cada diez minutos, aproximadamente. Los pagos son considerados como seguros después de la confirmación de seis bloques, un lapso de tiempo aproximado de una hora, dependiendo del estado de la red.

En la medida en que se popularizan las redes blockchain, el número de transacciones crece exponencialmente, provocando que se acumulen miles de transacciones en espera de ser agregadas a los bloques de la cadena. Con esta saturación, llegan las altas comisiones de red, que son los pagos que efectúan los usuarios a los mineros para que sus transacciones sean incluidas preferentemente en el próximo bloque. A mayor comisión, más rápido la transacción será incluida en el siguiente bloque.

Estos problemas de escalabilidad de las redes blockchain y las altas comisiones que ellos generan, hacen inviables las transacciones por unos pocos centavos de dólar, o micropagos, debido a que las comisiones de red superan con creces el monto de estos.

Lightning Network resuelve estos problemas. En la red Lightning, los pagos no necesitan confirmaciones de bloque y son instantáneos y atómicos. La atomicidad implica que los pagos se realizarán o no: no es posible que queden a medias en caso de algún fallo. Además, permite enviar fondos tan pequeños como 1 satoshi, o 0,00000001 BTC, sin riesgo de custodia y comisiones inmateriales. Las transacciones de la red Lightning se llevan a cabo fuera de la blockchain en principio, sin delegación de confianza ni propiedad, lo que permite a los usuarios realizar transacciones casi ilimitadas entre ellos.

Canales de pago

Un canal de pago es un medio de transacción fuera de la cadena de bloques, en el que dos personas comprometen fondos en una dirección y se pagan entre ellas emitiendo compromisos de pagos firmados por las partes, evitando tener que esperar por confirmaciones de la blockchain subyacente.

Las partes abren un canal de pago entre ellas enviando fondos en una transacción inicial (Transacción de fondeo) a una dirección multifirma 2 de 2, la cual es manejada por ambos involucrados y requiere las firmas de los dos para generar nuevas transacciones. Esta primera transacción es entonces propagada a la blockchain, quedando el canal efectivamente abierto. Para pagarse, las partes crean transacciones (Transacción de compromiso) desde la dirección multifirma, que no son difundidas en la red aún, y cuyos saldos consensuados, resultantes de operaciones fuera de red, son redimibles por las partes con o sin el permiso del otro y, de hacerlo, provoca el cierre del canal y la difusión de la transacción en la red blockchain.

Abierto el canal de pago, las partes pueden realizar transacciones entre ellos en cualquier momento a través del mismo (fuera de cadena). El canal puede permanecer abierto por cualquier cantidad de horas, días, semanas o décadas. La única vez que se vuelve a tocar la blockchain es cuando se cierra el canal, momento en el cual se registra el saldo final de las transacciones que ocurrieron a través del canal en la cadena de bloques.

Canales de pago cadena de bloques bitcoin

Canales de pago. Los fondos enviados a la dirección multifirma representan el tope máximo transable en el canal. Imagen original de CriptoNoticias.

Cada vez que las partes requieren gastar fondos del canal, ambas deben acordar el nuevo saldo del mismo a través de las transacciones de compromiso. Las partes intercambian transacciones medio firmadas (firmadas solo por emisor) con el nuevo saldo del canal, de manera que cualquiera de las partes pueda, si así lo desea, completar la firma requerida para ser válida frente a la dirección multifirma 2 de 2, propagarla en la blockchain (cerrar el canal) y redimir los saldos correspondientes a cada parte.

El problema con este esquema es que todas las transacciones de compromiso (saldos) anteriores a la actual están disponibles para cada una de las partes, y cualquiera de estas transacciones, por ejemplo, aquella con saldo más favorable a una de las partes, podría ser firmada por esta y propagada en la red, cerrando el canal y quedándose con el dinero. Es decir, el contrato entre las partes está basado en la buena fe de los involucrados y como tal susceptible de ser violado.

Como medida de seguridad, existe la posibilidad de hacer las transacciones revocables. De esta forma, quien cierra el canal debe esperar 3 días (o 432 bloques en Bitcoin) para poder retirar sus fondos de la cartera multifirma. Durante este tiempo, la contraparte puede “apelar” el estado propagado en la blockchain y revocar los fondos del canal, si puede generar una prueba de violación o incumplimiento de parte del otro involucrado.

Dadas las costosas comisiones y largos tiempos de liquidación en las redes blockchain, está en el mejor interés de cada participante mantener el canal abierto; además, si el canal es cerrado de manera arbitraria por alguna de las partes, violando el saldo acordado, ésta puede ser penalizada con la pérdida total de los fondos comprometidos, por lo que comportarse honestamente también es el mejor camino para ambos.

El contrato utilizado en canales de pago con transacciones revocables, llamado Contrato de Vencimiento de Secuencia Revocable (CMRE), contiene lo siguiente:

  1. Todas las partes pagan en un contrato con un resultado que hace cumplir este contrato.
  2. Ambas partes pueden acordar enviar fondos a algún contrato, con algún período de espera (1.000 confirmaciones, por ejemplo). Este es el saldo de salida revocable.
  3. Una o ambas partes pueden optar por no difundir (forzar) los pagos hasta una fecha futura; cualquiera de las partes puede redimir los fondos después del período de espera en cualquier momento.
  4. Si ninguna de las partes ha difundido esta transacción (redimido los fondos), pueden revocar el pago anterior si, y sólo si, ambas partes acuerdan hacerlo, colocando un nuevo plazo de pago en una transacción de pago sustituta. El pago de la nueva transacción puede ser canjeado inmediatamente después de que el contrato sea divulgado al mundo (transmitido a la blockchain).
  5. En caso de que se divulgue el contrato y no se redima la nueva estructura de pagos, cualquiera de las partes puede redimir los términos de pago revocados previamente (por lo que es responsabilidad de cualquiera de las partes hacer cumplir los nuevos términos).

Lightning Network

Lightning Network se forma, entonces, cuando existen dos o más canales de pago creados con un usuario en común entre ellos. De esta forma, un usuario puede enviar dinero a otro fuera de su canal de pago utilizando las conexiones comunes para lograrlo. Esto es posible mediante el uso de contratos de tiempo entre los involucrados (HLTC, hash locked time contract). 

Por ejemplo, si Héctor abre un canal de pagos con Isabel e Isabel tiene uno abierto con Iván, y este a su vez con Emily, entonces Héctor puede enviarle dinero a Emily usando a Isabel e Iván como medios, pagándose pequeñas comisiones en el camino a quienes ayudaron a llevar a cabo la transacción.

La transacción tendría lugar de la siguiente forma:

  1. Héctor le avisa a Emily que quiere enviarle un pago por, digamos, un café. Emily entonces, por medio del uso de esta red, crea un valor secreto S, lo hashea (lo encripta usando la función hash), transformándolo en Z, y entrega el resultado Z a Héctor.

    Lightning Network Bitcoin Pago Terceros

    Para recibir el dinero, el receptor entrega al emisor el hash (Z) de un secreto (S). Imagen original de CriptoNoticias.

     

  2. Héctor entonces establece un contrato de tiempo con Isabel y le dice que le pagará una comisión si puede generar la solución de Z en menos de, por ejemplo, 3 horas (t1).
  3. Isabel se voltea a Iván y le plantea el mismo contrato para obtener el secreto S (la respuesta de Z) pero en menos tiempo, digamos, 2 horas (t2).
  4. Iván, quien sí tiene conexión directa con Emily, le presenta un contrato parecido, ofreciendo también una comisión, por que le entregue el secreto S en un tiempo menor al vencimiento de su contrato, por ejemplo,1 hora (t3).

    Lightning Network Bitcoin Contrato de Tiempo HTLC

    Los participantes establecen contratos de tiempos decrecientes para obtener el secreto a cambio de una comisión. Imagen original de CriptoNoticias.

     

  5. Ahora, como Emily puede reclamar los fondos de Iván, entonces puede dar el pago por completo por parte de Héctor y darle el secreto S a Iván e Isabel para que también reclamen sus fondos.

    Lightning Network Bitcoin Transacción

    Con el secreto (S) en sus manos, los participantes pueden reclamar los fondos de su contraparte. Los que ayudaron reciben una comisión y el receptor recibe su pago completo. Imagen original de CriptoNoticias.

El contrato de tiempo HTLC al que se comprometen las personas que transan en la red Lightning, reza lo siguiente:

  1. Si una parte (llamémosla Héctor) puede producir para la contraparte (llamémosla Isabel) un dato de entrada aleatorio desconocido de 20 bytes R de un hash conocido H, dentro de tres días, entonces Isabel liquidará el contrato pagando a Héctor una cierta cantidad de criptomonedas (0.1 BTC, por ejemplo).
  2. Transcurridos los tres días, entonces la cláusula anterior es nula e inválida y el proceso de compensación se invalida, ambas partes no deben intentar liquidar ni reclamar el pago después de tres días.
  3. Cualquiera de las partes puede (y debe) pagar de acuerdo con los términos de este contrato en cualquier método que los participantes elijan y cerrar este contrato anticipadamente, siempre que ambos participantes en este contrato estén de acuerdo.
  4. La violación de los términos anteriores incurrirá en una multa máxima de los fondos bloqueados en este contrato, que se pagará a la contraparte no violadora como un bono de fidelidad.

Carteras de Lightning Network

Para transar en la red Lightning es necesario utilizar una cartera que permita realizar los contratos de incumplimiento y de tiempo descritos anteriormente.

Por el momento es posible utilizar la cartera Zap, desarrollada por Jack Mallers, tanto en la red de prueba como la principal de Bitcoin, si se realizan modificaciones manuales. También están disponibles las carteras Eclair, creada por el grupo de desarrollo ACINQ, y Lightning Desktop App de Lightning Labs, ambas en versión alpha (experimental).

Una cartera en línea más sencilla y restringida puede encontrarse en HTLC.me, dónde además recibirás bitcoins de prueba (tBTC) con la creación de un monedero Lightning.

Actualmente, la Lightning Network se encuentra en fase de prueba en la Testnet de Bitcoin, aún así, los usuarios se encuentran probándola en la red principal (Mainnet), aun a riesgo de perder su dinero. Ya se han realizado transacciones en la red principal desde startups como Y´alls, Tor Guard, Bitrefill y Blockstream, para la compra de bienes y servicios.

Si se quiere probar las carteras de Lightning Network y no se poseen bitcoins de prueba, este faucet regala los tBTC que se necesiten.

Para visualizar la Lightning Network en tiempo real, sus nodos y canales abiertos entre ellos, se puede utilizar el explorador de ACINQ.

Aplicaciones

La red Lightning permite diversos casos de uso que mejoran la versatilidad de las blockchains. Algunos de ellos son:

Pagos instantáneos: con la red Lightning se pueden realizar transacciones en segundos con cualquier persona, si se usan pagos directos no revocables. Como por ejemplo, pagar por un café o un servicio de suscripción usando bitcoins.

Micropagos: las comisiones de las blockchains, como Bitcoin, pueden ser muy altas y no permitir realizar pagos minúsculos sin que el gasto se vuelva significativo. La red Lightning permite realizar envíos de dinero con comisiones cercanas a cero sin necesidad de usar un tercero de confianza. Por ejemplo, se podrían realizar pagos por artículo en una revista o pagos por mega usado a un servicio de Internet.

Contratos inteligentes financieros: los contratos financieros son sensitivos en tiempo y generan mayor demanda de cómputo en la blockchain. Al mover la gran mayoría de las transacciones sin necesidad de confianza fuera de la blockchain, se hace posible realizar transacciones con términos de contrato altamente complejos sin necesidad de que toquen la cadena de bloques.

Pagos entre cadenas o Atomic Swaps: siempre que haya funciones hash similares en las diferentes cadenas de bloques, es posible enrutar las transacciones en varias cadenas con diferentes reglas de consenso. El remitente no tiene que confiar o incluso saber sobre las otras cadenas, incluyendo la cadena de destino. De manera similar, el receptor no tiene que saber nada acerca de la cadena del emisor o de cualquier otra cadena. Todo lo que le importa al receptor es un pago condicional al conocer un secreto en su cadena.

Arbitraje en intercambio: en la actualidad existe un incentivo para mantener los fondos en las casas de cambio, para estar preparados para grandes movimientos del mercado debido a los tiempos de confirmación de 3 a 6 bloques. Es posible que las casas de cambio participen en la red Lightning y que los clientes transfieran sus fondos dentro y fuera del intercambio para pedidos, casi al instante. Si la casa de cambio no tiene mucha profundidad de mercado y se compromete a solo permitir órdenes de límite cerca de la parte superior de la cartera de pedidos, entonces el riesgo de robo de monedas será mucho menor. La casa de cambio, en efecto, ya no tendría ninguna necesidad de una billetera de almacenamiento en frío. Esto puede reducir sustancialmente los robos y la necesidad de custodios de terceros confiables.

Con información de Lightning Network y LND.

Iconos para imágenes de monkik y Freepik en flaticon.com.