Lightning Network es una red descentralizada para micropagos instantáneos y de alto volumen de transacciones 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 es lenta y costosa debido a las 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.
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, de manera unilateral y no colaborativa, deberá esperar hasta 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:
- Todas las partes pagan en un contrato con un resultado que hace cumplir este contrato.
- 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.
- 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.
- 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).
- 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:
- 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.
El contrato de tiempo HTLC al que se comprometen las personas que transan en la red Lightning, reza lo siguiente:
- 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).
- 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.
- 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.
- 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.