34

Qué es Lightning Network y cómo funciona

13554Puntos

hace 2 años

Bitcoin, esa red de pagos descentralizados, mundial, resistente a la censura, trae un problema consigo desde su concepción misma: la escalabilidad.

Seguramente lo has escuchado múltiples veces: “Visa procesa 47000 transacciones por segundo y bitcoin solo 7”, y aunque con recientes actualizaciones al protocolo ahora son 12tps, lo cierto es que aún así es insuficiente.

Y con razón, solo piénsalo…

¿Cómo una red que almacena transacciones en un bloque de 1mb creados cada 10 mins, podría soportar las operaciones de 7 mil millones de personas?

Falta de escalabilidad no solo significa transacciones lentas, sino también más caras. Después de todo, si solo cierto número de transacciones pueden entrar en un bloque, estas serán las que incentiven mejor a los mineros pagando mejores comisiones.

Entonces, ¿cómo resolvemos este problema?

¿Y si aumentamos el tamaño de los bloques?

No. Bitcoin Cash y Bitcoin Cash SV ya lo intentaron y después de apenas 4 años están al borde de la desaparición por problemas de centralización.

¿Y si reducimos el tiempo de confirmación por bloque?

Litecoin redujo este tiempo a 2.5 mins por bloque, consiguió alrededor 21 tps pero también se volvió más vulnerable a ataques. Así que, no; tampoco es una opción.

Los desarrolladores de bitcoin al ver que las opciones para escalar On-Chain eran casi nulas comenzaron a pensar en soluciones Off-Chain. Desde entonces, Sidechains, Drivechains y Redes Federadas se han puesto en marcha como posible respuesta, pero ninguna de estas ofrece transacciones tan rápidas y económicas como la “Lightning Network”.

¿Qué es la lightning network?

En palabras sencillas, Lighting Network es una tecnología de segunda capa de bitcoin que permite la creación de microtransacciones fuera de la blockchain, de manera instantánea, con comisiones bajísimas, a través de una red asegurada por smart contracts.

Ya sé lo que estás pensando:

"¿Bitcoin tiene Smart Contracts?"

Y si, Bitcoin tiene Smart Contracts. Estos han estado allí desde su lanzamiento en 2009, y al igual que Ethereum, este tiene su propio lenguaje para programarlos: “Bitcoin Script”. La principal diferencia es que los lenguajes de Ethereum, como Solidity, si son Turing Complete mientras que Bitcoin Script no lo es. Aun con esta limitación, este rudimentario lenguaje es capaz de ejecutar los Contratos Inteligentes necesarios para asegurar una red de pagos off-chain como esta.

Los orígenes de esta tecnología se remontan a un correo que el mismo Satoshi Nakamoto le mandó al desarrollador Mike Hearn alrededor del 2010. En este correo Satoshi hablaba acerca de una serie de transacciones fuera de la blockchain entre múltiples partes o High Frequency Trades, como él le llamaba. Después de su dimisión como líder del proyecto esta idea quedó en pausa, sin embargo, en el año 2015 los desarrolladores Thaddeus Dryja y Joseph Poon utilizarían estos postulados como base en el primer borrador de lo que hoy conocemos como Lightning Network.

Veamos de una vez en qué consiste esta tecnología.

¿Cómo funciona la Lightning Network?

Para entender el funcionamiento de la red de pagos off-chain de bitcoin vamos imaginarnos un escenario donde Platzi ha cambiado su modelo de negocios a uno Pay Per View. Ya no hay suscripciones, ahora se paga 1 satoshi, es decir .00000001 BTC, por segundo reproducido en cada clase. Esto significa que un curso de 1 hora o 3600 segundos costaría 3600 satoshis.

Parece un modelo bastante simple, pero conlleva un problema bastante grande: la impracticidad de los pagos por segundo. Tan solo en una clase de 5 minutos, o mejor dicho de 300 segundos, tendrías que realizar transacciones diferentes. Al final esto no saldría a cuenta pues las comisiones serían mucho más altas que el valor de la transacción. Ya ni siquiera hablemos del tiempo de espera, ya que tendrías que esperar 10 minutos para poder reproducir un segundo de clase.

Sin duda, algo super impráctico.

El equipo de Platzi conocía de antemano los inconvenientes de los pagos On-Chain, así que desde el principio comenzó a utilizar la Lightning Network. Con esta implementación los estudiantes pueden explorar el catálogo completo de la plataforma, y una vez eligen qué curso tomarán se les solicita abrir un canal de pagos con Platzi.

Espera, espera…

¿Qué es un canal de pagos?

Un Canal de Pagos es una estructura de contratos inteligentes que permite a dos entidades independientes realizar transacciones fuera de la blockchain de manera segura.

Se compone de tres tipos de transacciones, la primera de ellas es la Transición de Fondeo, la cual apertura el canal y establece el estado inicial del balance entre ambas partes. Después tenemos las Transacciones de Transferencia, las cuales modifican el balance fuera de la blockchain.

Por último se encuentra la Transacción de Consolidación, la cual establece balance final y cierra el canal. De estas tres transacciones, las únicas que son transmitidas a la blockchain son la primera y la última, no así con las transacciones de transferencia pues son las que se hacen dentro del canal.

Para tener más claro el funcionamiento de los canales imaginemos un escenario en el que una estudiante, la cual tendrá el nombre de Alice, se dispone a ver un curso que dura una hora. Para poder acceder al curso, abre un canal de pagos con Platzi con un monto de 4000 satoshis, un poco más de los que necesitará para verlo completo. Esta transacción no es otra más que la Transacción de Fondeo, con la que se establece el siguiente balance dentro del canal: Alice: 4000 Satoshis; Platzi: 0 satoshis. Apenas esta transacción entre a un bloque, el canal se habrá abierto.

Lightning_Network_for_Dummies.png

Una vez que se aperturó el canal, la plataforma le dio acceso a Alice a todas las clases, y puesto que aún no ha ingresado a ninguna, el balance se mantiene igual. No obstante, inmediatamente después de que abre la primera clase y pasa el primer segundo de reproducción el estado del canal se modifica; Alice ahora tiene : 3999 Satoshis y Platzi ahora tiene 1.

Nuevamente, pasa otro segundo de reproducción y ahora el balance es Alice: 3998; Platzi: 2. Este proceso se ejecutará de esta manera siempre que Alice esté reproduciendo un curso, es decir, si esta clase fuese de 5 minutos el estado de canal al terminarla sería el siguiente: Alice: 3700; Platzi: 300.

Lightning_Network_for_Dummies(1).png

Ahora, hagamos un fast-foward hacia al momento en que Alice ya terminó de ver todas las clases del curso, el cual recordemos era de 1 hora. El balance ha cambiado desde la última vez, ahora solo le quedan 400 satoshis mientras que Platzi tiene 3600, uno por cada segundo de reproducción. Cabe destacar que cada una de estas transacciones se hizo fuera de la blockchain, de manera instantánea, sin intermediarios y lo mejor de todo: sin comisiones.

Después de aprobar el curso, Alice decide tomar un descanso por lo que cierra su sesión, y en automático, Platzi decide clausurar el canal. Para lograr esto lo único que tuvo que hacer es enviar la última Transacción de Transferencia a la blockchain, la cual contiene el estado final del balance del canal.

Cuando esta operación ingresa a un bloque se convierte por default en una Transacción de Consolidación; es hasta que esto sucede qué podemos declarar que el canal ha sido sellado satisfactoriamente. Finalmente, tanto Alice como Platzi tienen la disposición de gastar sus fondos dentro de la blockchain de nuevo.

Lightning_Network_for_Dummies(2).png

Limitaciones de los Canales de Pago

Como acabamos de ver, los Canales de Pago son una solución muy útil para hacer transacciones instantáneas entre dos usuarios fuera de la blockchain, sin embargo…

¿Qué pasaría si quisiese hacer pagos dentro de un canal con más personas?

En términos prácticos no se puede agregar a más de dos usuarios en un canal, por lo que tendríamos que crear un canal con cada persona con la que deseemos hacer micropagos fuera de la blockchain.

En perspectiva esto sería impráctico, incluso costoso, ya que recordemos que las transacciones de apertura y clausura si cobran comisiones. Por tanto, si quisiese hacer microtransacciones con 5 personas distintas tendría que hacer 10 transacciones en la blockchain al abrir y cerrar cada canal.

Afortunadamente en la Lightning Network no es necesario crear un canal cada vez que se necesite hacer una microtransacción con alguien distinto, ya que se pueden conectar a través de los canales ya existentes de otros usuarios en la red.

A continuación vamos a ver como lograr esto.

Interconectando Canales de Pago

Volvamos otra vez al escenario de Alice, la cual está apunto de cerrar el canal pero recuerda que le debe 300 satoshis a Carol, quien también es estudiante de Platzi. Alice y Carol no tienen un canal entre ellas pero cada una tiene uno con la plataforma. Esta conexión se vería de la siguiente forma:

Alice-Platzi-Carol

Lightning_Network_for_Dummies(3).png

El estado de los canales es el siguiente: en el canal Alice-Platzi el balance es de 400-3600, mientras que el canal Platzi-Carol el balance es 2000-1500. Alice conoce esta interconexión, así que decide usar a Platzi como puente para poder hacer la micro transacción con Carol.

Para que el dinero pueda llegar a Carol lo primero que Alice tiene que hacer es actualizar el estado del canal con Platzi otorgándole 300 satoshis. Finalmente, tiene que esperar a que Platzi actualice el canal con Carol, a la cual le tendrá que dar 300 satoshis . Una vez sucedido esto, la transacción de Alice se habrá completado satisfactoriamente y los balances quedarían de la siguiente manera:

Lightning_Network_for_Dummies(5).png

Canal Alice-Platzi: 100-3900

Canal Platzi-Carol: 1700-1800

Lo interesante del modelo anterior es que al utilizar a los usuarios como puentes puedes escalar no solo a 3 participantes sino hasta cientos o miles de ellos. No importa que tan lejos esté un remitente de un destinatario, el algoritmo de la red siempre encontrará una ruta para poder transaccionar con el.

Lightning_Network_for_Dummies(4).png

Es esta capacidad de interconexión entre usuarios lo que transforma una serie de canales en una red y su velocidad la que le da un sobrenombre tan distintivo: “The Lightning Network”;”La Red Relámpago”.

Conclusión

Por último, no olvidemos que Platzi no da consejos de inversión, este contenido es netamente educativo. Recuerda hacer tu propia investigación antes de tomar decisiones de inversión.

En Platzi, tenemos una comunidad increíble de Cryptocositas. En dónde nuestra misión es aprender juntos día a día. Sin consejos de inversión, sin tomar el camino fácil, compartiendo con todos nuestro conocimiento y siendo parte de este ecosistema que va más allá del #hold o #tothemoon sino de la posibilidad de ser parte de una tecnología que está y va a revolucionar el mundo.

Si quieres unirte solo debes entrar acá, seguir las reglas de la comunidad y prepararte para nunca parar de aprender.

¿Y tú? ¿Desde cuándo eres parte de la historia de #Cryptocositas? Cuéntanos en los comentarios ¿cómo entraste al mundo de bitcoin y las criptomonedas?

Francisco Javier
Francisco Javier
mengeroshi

13554Puntos

hace 2 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1
59030Puntos

Maravilla de articulo, excelente explicacio,

1
12283Puntos

Excelente explicación Francisco, muchas gracias. Les comparto una charla que dí acerca de BTC + Lightning Network para complementar

1

Gracias. Excelente aporte. Para mi, muy conveniente porque ya había visto este termino Lightning Network en Twiter sin conocer exactamente en qué consistía.

Saludos!

1
10726Puntos

Queda perfectamente explicado. Muchas gracias!

1
15347Puntos

Excelente explicación, de verdad que aporta bastante 😀

1
34789Puntos

Muy buena explicación, esperaba con ganas entender mejor este tema recomendado luego de ver el curso de Buda Exchange esta lectura🤗

1
8975Puntos

Excelente aporte! Queda muy bien explicado. Felicitaciones.

1
8975Puntos

Excelente aporte! Queda muy bien explicado. Felicitaciones.