Lightning Network Que es?

Lightning Network es un protocolo de pago de “Capa 2” que funciona sobre una criptomoneda basada en blockchain (como Bitcoin ). Permite transacciones rápidas entre nodos participantes y se ha promocionado como una solución al problema de escalabilidad de Bitcoin . Cuenta con un sistema de igual a igual para realizar micropagos de criptomoneda a través de una red de canales de pago bidireccionales sin delegar la custodia de los fondos. La implementación de Lightning Network también simplifica los intercambios atómicos.aclaración necesaria ]

El uso normal de la Red Lightning consiste en abrir un canal de pago comprometiendo una transacción de financiamiento a la cadena de bloques base relevante (Capa 1), seguido de realizar cualquier número de transacciones de Lightning que actualicen la distribución tentativa de los fondos del canal sin transmitir a la cadena de bloques. Opcionalmente, seguido del cierre del canal de pago al transmitir la versión final de la transacción para distribuir los fondos del canal.

Para funcionar de la forma prevista, Lightning Network requiere una corrección de la maleabilidad de la transacción en la cadena de bloques de la Capa 1, como Segregated Witness ( SegWit ) en Bitcoin. 

Contents

Historia

Joseph Poon y Thaddeus Dryja publicaron el libro blanco Lightning en 2016. 

En diciembre de 2017, se realizaron una serie de transacciones de prueba interoperables en las implementaciones de Bitcoin Core .

En enero de 2018, Blockstream lanzó un sistema de procesamiento de pagos para minoristas web. Blockstream notó que Lightning estaba en vivo en la red principal con 60 nodos que operaban a partir del 18 de enero de 2018, y debería considerarse “en pruebas”.

El 15 de marzo de 2018, Elizabeth Stark, CEO de Lightning Labs, anunció el lanzamiento inicial de lnd 0.4-beta para desarrolladores con la intención de ponerlo a disposición para realizar pruebas en la red principal de bitcoin con soporte de Litecoin.

En marzo de 2018, el CTO de Stellar Jed McCaleb anunció que Stellar Network implementaría un protocolo inspirado en Lightning Network.cita requerida ]

El concepto de Lightning Network fue respaldado por el empresario de pagos móviles Jack Dorsey en marzo de 2018. 

Desde abril de 2018 hasta agosto de 2018, Bitcoin Lightning Network tuvo una tasa de crecimiento mensual de alrededor del 15%. El número de nodos aumentó de 1.500 a 3.000, y el número de canales aumentó de 4.000 a 11.000. 

2018 ataques DDoS

El 20 de marzo de 2018, los nodos de Lightning Network se enfrentaron a un ataque de denegación de servicio distribuido (DDoS) que envió alrededor de 200 nodos fuera de línea, bajando de alrededor de 1,050 a 870. El exploit usó tantas conexiones de nodo como fue posible para evitar nuevas conexiones.  Un mes antes, en febrero, el desarrollador de Bitcoin Core, Peter Todd, dijo que el protocolo Lightning podría muy bien “resultar ser vulnerable a los ataques DoS [denegación de servicio] en su encarnación actual”. Según el criptógrafo, esto representa un peligro tanto para el nivel de igual a igual como para el nivel de cadena de bloques del proyecto.

Diseño

File:Lightning Network Explained.webm

Una visión general de Lightning Network

Los canales de pago permiten a los participantes transferir dinero entre ellos sin tener que hacer públicas todas sus transacciones en la cadena de bloques . Esto se hace penalizando a los participantes que no cooperan. Al abrir un canal, los participantes deben comprometer una cantidad (en una transacción de financiación , que se encuentra en la cadena de bloques). Las extensiones de script basadas en el tiempo como CheckSequenceVerify y CheckLockTimeVerify hacen que las penalizaciones sean posibles.

“Si suponemos una gran red de canales en la cadena de bloques de Bitcoin, y todos los usuarios de Bitcoin están participando en este gráfico al tener al menos un canal abierto en la cadena de bloques de Bitcoin, es posible crear una cantidad casi infinita de transacciones dentro de esta red. . Las únicas transacciones que se emiten en la cadena de bloques de Bitcoin prematuramente son con contrapartes de canales que no cooperan “. 

La propuesta de mejora de Bitcoin CheckSequenceVerify (CSV) detalla cómo los Hash Time Locked Contracts se implementan con CSV y se usan en Lightning. 

Transacciones de compromiso

Si Alice y Bob tienen un canal de pago, ambos también tienen una transacción de compromiso “más reciente”. Una transacción de compromiso divide los fondos de la transacción de financiamiento de acuerdo con la asignación correcta entre Alice y Bob. Por ejemplo, si Alice posee 1.0 mBTC (igual a 0.001 bitcoins o 100000 satoshis ) y Bob posee 1.0 mBTC en el canal, las transacciones de compromiso dividen el total de los fondos del canal de esa manera.

Las transacciones de compromiso permiten que múltiples usuarios participen en una sola transacción (y, por lo tanto, actúen como una sola entidad), utilizando un sistema de varias claves . La determinación de la congestión recae principalmente en los mineros, por lo que esta red se basa en el supuesto de que los mineros honestos no organizarán un ataque del 51%.

Dado que las transacciones de compromiso gastan la transacción de financiamiento, deben ser firmadas por ambos socios.

Las transacciones de compromiso son en realidad un par de transacciones asimétricas. La transacción de compromiso de Alicia contiene dos salidas: una que le paga a Bob directamente, y otra que es una salida revocable y temporizada que finalmente le paga a Alicia. La salida revocable puede ser revocada por Bob si Bob conoce la clave de revocación. La transacción de compromiso de Bob es la inversa: le paga directamente a Alice, pero paga la participación de Bob en una salida revocable y bloqueada en el tiempo; Si Alice conoce la clave de revocación de la transacción de compromiso de Bob, puede revocarla.

A_{1}
B_{1}
A_{1}
{\displaystyle R_{A_{1}}}
B_{1}
{\displaystyle R_{B_{1}}}

Inicialmente, Alice tiene el  {\ displaystyle A_ {1}} transacción de compromiso, y Bob tiene la  {\ displaystyle B_ {1}} transacción de compromiso. La clave de revocación para  {\ displaystyle A_ {1}} , {\ displaystyle R_ {A_ {1}}} , es conocido por Alicia, pero no por Bob; la clave de revocación para  {\ displaystyle B_ {1}} ,  {\ displaystyle R_ {B_ {1}}} , es igualmente conocido solo por bob.

Supongamos que Alice decide pagarle a Bob 0,25 mBTC (antes de esto, cada uno posee 1 mBTC):

  1. Alice crea una nueva transacción de Bob,  {\ displaystyle B_ {2}} , que asigna 0,75 mBTC a Alice y 1,25 mBTC a Bob.
  2. Signos de alicia  {\ displaystyle B_ {2}} y envía a Bob.
  3. Bob recibe  {\ displaystyle B_ {2}} , lo firma, y ​​lo guarda.
  4. Bob crea una nueva transacción de Alicia,  {\ displaystyle A_ {2}} , que asigna 0,75 mBTC a Alice y 1,25 mBTC a Bob.
  5. Signos de bob  {\ displaystyle A_ {2}} y envía a alicia.
  6. Alicia recibe  {\ displaystyle A_ {2}} , lo firma, y ​​lo guarda.
  7. Alicia proporciona  {\ displaystyle R_ {A_ {1}}} invalidando  {\ displaystyle A_ {1}} ; ella puede entonces eliminar  {\ displaystyle A_ {1}} .
  8. Bob proporciona  {\ displaystyle R_ {B_ {1}}} invalidando  {\ displaystyle B_ {1}} ; entonces puede borrar  {\ displaystyle B_ {1}} .

Limitaciones

La red Lightning está formada por canales de pago bidireccionales entre dos nodos que combinados crean contratos inteligentes . Si en cualquier momento cualquiera de las partes abandona el canal, el canal se cerrará y se establecerá en la cadena de bloques.

Debido a la naturaleza del mecanismo de disputa de Lightning Network, que requiere que todos los usuarios vean constantemente la cadena de bloques en busca de fraude, se desarrolló el concepto de “atalaya”, donde la confianza puede ser subcontratada a los nodos de la torre de vigilancia para monitorear el fraude.

Enrutamiento

El documento técnico original en referencia al enrutamiento sugiere que “eventualmente, con optimizaciones, la red se parecerá mucho a la red bancaria correspondiente, o ISP de nivel 1”.

Implementaciones

Las especificaciones de BOLT (Basis of Lightning Technology) se redactaron a fines de 2016. A partir de ahí, se han realizado varias implementaciones de dichas especificaciones:

  • Una implementación no comercial de MIT Digital Currency Initiative.
  • Implementación de c-lightning de Blockstream en C
  • Implementación eclair de ACINQ en Scala.
  • La implementación de Lightning Labs en Go