Lightning Network

De ALDEA WIKI
Ir a la navegación Ir a la búsqueda
Lightning Network es una segunda capa agregada a la cadena de bloques de Bitcoin (BTC) que permite transacciones fuera de la cadena.

Lightning Network es un protocolo creado para mejorar la escalabilidad de Bitcoin.

En otras palabras, Lightning Network es una solución de capa 2 construida sobre Bitcoin con el objetivo de resolver los problemas de escalabilidad de la capa 1. LN funciona manteniendo un registro de pequeñas transacciones entre pares, que luego es añadido como una sola transacción a la blockchain principal.

Esto le permite a dicha criptomoneda realizar cosas que por sí sola no podría, específicamente, transacciones instantáneas y con muy bajas comisiones.

Para comprender el potencial de esta tecnología, debemos tener presentes dos cosas. La primera, es que Bitcoin se creó como una solución de dinero digital. La segunda, es que ese objetivo es imposible de alcanzar en el estado actual de la red y el software Bitcoin. La razón de esto es muy sencilla: Bitcoin tiene problemas para escalar.

Hoy en día, Bitcoin sólo puede procesar de 7 a 8 transacciones por segundo. Esta es una capacidad muy reducida que impide el uso masivo de la criptomoneda. Como resultado, la red Bitcoin se hace lenta y muy cara a la hora de pagar comisiones.

Entonces, Lightning Network nace para cubrir la necesidad de realizar transacciones de forma rápida, a un costo bajo y con facilidad de uso para cualquier usuario utilizando Bitcoin como medio de intercambio.

Desarrollo e implementación

El desarrollo de este protocolo comenzó con los trabajos de Joseph Poon y Thaddeus Dryja en febrero de 2015.

Aunque en la actualidad son empresas como Blockstream, Lightning Labs y ACINQ quienes impulsan el desarrollo del mismo. El whitepaper de este desarrollo se puede encontrar en este enlace de su web principal.

Si bien las transacciones en Lightning Network comenzaron en Mayo de 2017. Un hecho que hizo aún más conocida a esta red fue la aprobación de Bitcoin como moneda de curso legal en El Salvador, en Junio de 2021. La decisión se basó en el éxito del ecosistema de Bitcoin Beach en El Zonte que utilizó una billetera basada en Lightning Network para realizar micropagos.

Funcionamiento

Para usar Lightning Network los usuarios deben abrir canales de pago mediante la confirmación de una transacción de financiación en la cadena de bloques de base (capa 1), seguido de la realización de cualquier número de transacciones de Lightning Network que actualicen la distribución de los fondos del canal sin transmitirlos al blockchain, seguido opcionalmente por el cierre del canal de pago mediante la transmisión de la versión final de la transacción de liquidación para distribuir los fondos del canal. Para liquidar los pagos el canal debe estar cerrado.

El proceso se inicia, cuando los nodos hacen la transacción de liquidación a la red (fondeo). Luego transaccionan entre ellos usando Lightning Network y actualizando sus saldos. Y por último al momento de cierre, se puede considerar de dos maneras:

  • un cierre colaborativo (ambas partes confirman una distribución y los fondos se liquidan de inmediato).
  • un cierre no colaborativo (que pueden ser legítimos, por ejemplo, si un nodo ya no es parte de la red o álguien engañoso con un nodo que transmite una distribución obsoleta e incorrecta). Otro aspecto respecto a los cierres no colaborativos, es que los fondos no se liquidan instantáneamente, sino que existe un período de disputa dentro del cual los nodos pueden impugnar la distribución de la transmisión. Si el segundo nodo transmite una distribución más actualizada, los fondos se transfieren en su totalidad. Esta "sanción", conocida como "transacción de reparación de incumplimiento", evita que los nodos intenten defraudar a la red mediante la transmisión de transacciones desactualizadas.

Funcionamiento de Lightning Network paso a paso

Para entender cómo funciona Lightning Network lo mejor es desglosar paso a paso todo su proceso de funcionamiento.

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 una propagación de la blockchain, quedando el canal efectivamente abierto.

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.

Para pagarse, las partes crean transacciones (Transacción de compromiso) desde una dirección multifirma, que no son difundidas en la red aún.

Cada vez que las partes quieran transferir fondos a través del canal abierto, ambas deben acordar su nuevo saldo mediante las transacciones de compromiso.

Las partes intercambian transacciones medio firmadas (firmadas solo por emisor) con el nuevo saldo del canal, la otra parte, si así lo desea, puede 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.

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


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 fé de los involucrados y como tal susceptible de ser violado.

Como medida de seguridad, existe la posibilidad de hacer las transacciones revocables o que se puedan anular. 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 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 es llamado Contrato de Vencimiento de Secuencia Revocable (CMRE).

Lightning Network

Entonces, una vez comprendido el concepto de canales de pago. Podemos describir cómo funciona Lightning Network:

Lightning Network se forma 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 o HLTC (Hash Locked Time Contract).

Por ejemplo, si Jesús abre un canal de pagos con María y María tiene uno abierto con José, y este a su vez con Lourdes, entonces Jesús puede enviarle dinero a Lourdes usando a María y José 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:

Jesús le avisa a Lourdes que quiere enviarle un pago por, digamos, una pizza. Lourdes 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 Jesús.

Para recibir el dinero, el receptor entrega al emisor el resultado Z de un secreto S.

Como vemos en la imagen anterior, para recibir el dinero, el receptor (Lourdes) entrega al emisor (Jesús) el resultado Z de un secreto S.

Jesús entonces establece un contrato de tiempo con María 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).

María se da vuelta para conectar con José y le plantea el mismo contrato para obtener el secreto S (la respuesta de Z) pero en menos tiempo, digamos, 2 horas (t2).

José quien sí tiene conexión directa con Lourdes, le presenta un contrato parecido, ofreciendo también una comisión, para que le entregue el secreto S en un tiempo menor al vencimiento de su contrato, por ejemplo,1 hora (t3).

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


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

Ahora, como Lourdes puede reclamar los fondos de José, entonces puede dar el pago por completo por parte de Jesús y darle el secreto S a José y María para que también reclamen sus fondos.

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.

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.

Billeteras de Lightning Network

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

Por el momento es posible utilizar la billetera Zap, desarrollada por Jack Mallers, tanto en la red de prueba como en la principal de Bitcoin. También están disponibles las billeteras Eclair, creada por el grupo de desarrollo ACINQ, y Lightning Desktop App de Lightning Labs, ambas en versión experimental.

Actualmente, 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.

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

Ventajas y desventajas de Lightning Network

Ventajas

  • Ante todo Lightning ofrece una de las más robustas opciones para mejorar la escalabilidad de Bitcoin. Lightning puede llevar a Bitcoin hasta niveles cercanos a 1 millón de transacciones por segundo, mucho más que las manejadas por sistemas de pago como VISA o MasterCard.
  • Brinda altos niveles de seguridad y anonimato debido a que las transacciones ocurren off-chain por lo que los pagos son prácticamente imposibles de rastrear.
  • Lightning es compatible con otros proyectos de criptomonedas además de Bitcoin. Por ejemplo, es posible usar Lightning con Litecoin.
  • Al usar Lightning Network se reduce enormemente el nivel de tráfico de transacciones dentro de la red Bitcoin. Esto haría que la red funcione de forma mucho más eficiente.
  • Las transacciones usando Lightning Network se realizan de forma casi instantánea.
  • Hace posible que el usuario realice micropagos e incluso permite la automatización de los mismos.
  • Permite el intercambios atómicos cross-chain. Esto hace que dos cadenas de bloques que usen la misma función hash, puedan intercambiar tokens sin necesidad de un intermediario como un exchange.

Desventajas

  • Una de las principales desventajas de Lightning es que los pagos sólo pueden realizarse a usuarios que estén conectados a un canal de pago. Esto quiere decir, que el usuario debe estar activo y conectado al canal. A diferencia de esto, las transacciones de criptomonedas tradicionales no tienen esta limitación.
  • Lightning Network es un protocolo que aún está en constante desarrollo. Prueba de ello, es que sus creadores aún recomiendan no usar Lightning para operaciones con altas sumas de dinero.
  • El protocolo limita la liquidez del canal al total de criptomonedas que sostienen todas las partes. Esta es otra situación que atenta contra las operaciones de alto valor, pues lleva a los usuarios a dividir sus fondos para tener liquidez en la blockchain normal y en los canales Lightning.

Referencias

https://lightning.network/lightning-network-paper.pdf

https://lightning.network/

¿Qué es y cómo funciona la Lightning network? - Bit2Me Academy



v2.0 - Escrito por Valentina, revisado por Martin-ITZA - 25 - 08 - 2022