Escale con velocidad: explicación de Bitcoin Lightning Network

Publicado: 2022-03-11

Bitcoin Lightning Network es una solución independiente que se anuncia como la solución a todos los problemas que impiden que Bitcoin sea adoptado por la corriente principal. Afirma resolver el sombrío problema de escalamiento, realizar transacciones instantáneas, mantener las tarifas de transacción minúsculas y sacar sus transacciones de la cadena de bloques. ¿Cómo puede un sistema independiente del núcleo de Bitcoin ofrecer estas mejoras? ¿Cómo puede violar las reglas convencionales de Bitcoin al ofrecer transacciones seguras con cero confirmaciones? ¿Qué es la Red Lightning de Bitcoin?

En este artículo, exploraremos qué es realmente Bitcoin Lightning Network, cómo puede generar las garantías que brinda y su estado actual.

Nota: Este artículo asume familiaridad con Bitcoin. Si no está familiarizado con el funcionamiento de las criptomonedas o necesita un repaso, lea Cryptocurrency for Dummies: Bitcoin and Beyond.

Requisito previo: el problema de escalamiento de Bitcoin

Si está al tanto del problema de escalado de Bitcoin, no dude en omitir esta sección, pero si no lo está o necesita un repaso, siga leyendo.

Bitcoin tiene un problema de escala. Bitcoin está diseñado para almacenar todas las transacciones en una estructura de datos llamada bloque. Un bloque contiene información sobre el bloque anterior, datos diversos sobre recompensas mineras y la mayor parte del bloque son solo datos de transacciones. Los bloques también se fijan en un tamaño máximo de 1 MB. Este último bit es donde está el problema.

Debido a que los bloques tienen un tamaño de 1 MB y se crea un bloque cada 10 minutos, suponiendo que las transacciones no sean SegWit (más adelante), la red puede procesar un máximo de entre 3,3 y 7 transacciones por segundo. Para una moneda diseñada para uso masivo por miles de millones de humanos y sus máquinas, 7 transacciones por segundo simplemente no está a la altura. Visa, por otro lado, afirma ser capaz de procesar 24.000 transacciones por segundo.

A medida que la cantidad de transacciones comienza a aumentar, su transacción individual compite entre sí por la inclusión dentro de un espacio de bloque limitado y, por lo tanto, la probabilidad de que la suya se incluya en el bloque comienza a disminuir. Dado que los mineros pueden decidir arbitrariamente qué transacciones incluir en un bloque, en estas ocasiones, la única forma de incentivar a los mineros para que incluyan su transacción es aumentando su tarifa de transacción. Sin embargo, esto comienza a hacer que las transacciones sean prohibitivamente costosas, como esta transacción de 192 bytes por $92,98 donde la tarifa de transacción fue de $14,86.

Entonces, ¿cómo "escalamos" Bitcoin? Hay tres grandes escuelas de pensamiento o, como me gusta llamarlas, batallas de la Gran Escalada de Bitcoin Flamewars:

  • Aumento del tamaño del bloque: 2X, 8X, …, ∞X
  • Transacciones más pequeñas: SegWit et al.
  • Cadenas laterales: la red relámpago de Bitcoin

Aumento del tamaño del bloque de Bitcoin

Este es bastante simple de entender: si el límite de bloque de 1 MB es el problema, ¡hazlo más grande! El debate sobre esto fue feroz y aún continúa. Finalmente, el 1 de agosto de 2017, se bifurcó Bitcoin (BTC) y nació Bitcoin Cash (BCH). La principal diferencia entre los dos es que BCH tiene bloques de 8 MB. Esto mantiene los bloques en su mayoría vacíos y las tarifas muy bajas.

Sin embargo, los bloques de 8 MB significan que el tamaño total de la cadena de bloques de BCH probablemente aumentará a un ritmo mucho más rápido, lo que hace que los costos de almacenamiento sean una barrera de entrada significativamente mayor en la escena minera. El argumento es que esto reduciría la cantidad total de mineros, que también protegen la cadena de bloques, reduciendo la descentralización y la seguridad general de la red de Bitcoin.

Otra crítica a los bloques más grandes es que no resuelve el problema por sí mismo; más bien, corrige temporalmente el problema. Siempre habrá un límite máximo con bloques más grandes, y el límite máximo siempre será mucho menor que el límite objetivo que estamos tratando de alcanzar: 24 000 transacciones por segundo. Incluso con sus bloques más grandes de 8 MB, BCH tiene un límite de 61 transacciones por segundo.

Transacciones más pequeñas: testigo segregado

Otras soluciones señalan que el formato de transacción actual no es el más eficiente y apuntan a empaquetar más transacciones en el mismo bloque. El más notable de estos se llama Segregated Witness (SegWit), propuesto a través de BIP 91 y activado en el bloque 481824 el 25 de agosto de 2017. SegWit ahora es parte de Bitcoin, ¡regocíjate!

Comparación de bloques No-SegWit y SegWit
Comparación de bloques No-SegWit y SegWit, basada en una ilustración de David A. Harding

SegWit toma los datos de firma de las transacciones y los almacena en una estructura separada del bloque de transacciones, lo que hace que las transacciones individuales sean más pequeñas y aprovecha mejor el espacio limitado dentro de cada bloque. Esta estructura es entonces opcional cuando se sincroniza la cadena de bloques, lo que lleva a que se omita un tamaño reducido en el disco.

Esto también da como resultado una solución al problema de la maleabilidad de las transacciones, y las transacciones que solo gastan salidas de SegWit ya no son vulnerables.

La red relámpago de Bitcoin

Lightning Network es una red de segunda capa que transmite transacciones firmadas, pero no transmitidas, entre pares y se basa en la cadena de bloques de Bitcoin solo para la liquidación final de los fondos. Esto significa que las transacciones no se limitan en absoluto al tamaño del bloque, los tiempos de confirmación son irrelevantes y la cadena de bloques de Bitcoin no necesita almacenar todas las transacciones que suceden.

¿Quién desarrolló Bitcoin Lightning Network? Se describió por primera vez en un libro blanco escrito por Joseph Poon y Thaddeus Dryja, pero desde entonces se ha convertido en un esfuerzo comunitario con terceros e incluso empresas que contribuyen a las especificaciones e implementaciones.

Más información más adelante.

SegWit frente a tamaño de bloque aumentado frente a Bitcoin Lightning Network

¿Cuál es el mejor, entonces? No tengo evidencia empírica en la que basar mi respuesta, así que esta es una opinión: si bien creo que es bueno tener un mejor uso del espacio de bloque (a la SegWit), creo que un aumento en el tamaño del bloque sería como empujar el portería hacia el futuro. Si el uso de Bitcoin aumentara sustancialmente, nos encontraríamos justo al comienzo debatiendo sobre otro aumento en el tamaño del bloque.

¿Discrepar? ¡Deja un comentario a continuación!

Dicho esto, si bien creo que una red de liquidación alternativa como Bitcoin Lightning es una idea maravillosa, también estoy esperando ver cómo funciona en el mundo real. A partir de ahora, no está realmente en el estado que mi padre y yo podríamos usar.

Explicación de la red Lightning de Bitcoin

Ya mencioné que Lightning Network es una red de segunda capa que transmite transacciones firmadas, pero no transmitidas, entre pares y se basa en la cadena de bloques de Bitcoin solo para la liquidación final de fondos.

Echemos un vistazo a cómo funcionaría esto en la vida real.

Nodos y canales de rayos

Un nodo Lightning funciona de manera muy similar a un nodo de Bitcoin, ya que funciona en red, valida transacciones y se comunica con otros nodos, pero hace cosas que los nodos de Bitcoin históricamente no hacen: retiene fondos, actúa como un intermediario financiero automatizado. , monitorea activamente los "canales" Lightning en busca de comportamiento malicioso y reacciona a la defensiva (esto se explica en detalle más adelante), etc.

Para llevar a cabo estas funciones, los nodos necesitan dinero.

Nota: Estos ejemplos asumen inicialmente que todos ejecutan un nodo de Bitcoin Lightning Network que está conectado a Internet las 24 horas del día, los 7 días de la semana, lo que obviamente no será el caso. Esta suposición se romperá en la sección Lightning Wallet vs. Lightning Node.

Creación de un canal Lightning

Suponga que usted y su amigo Bob tienen una relación que involucra una buena cantidad de transacciones financieras. Pasan el rato juntos de vez en cuando para almorzar o ver una película. A veces uno de ustedes tiene poco dinero en efectivo, y a veces el otro y por lo general terminan venmándose mutuamente después.

Sin embargo, siendo defensores de las criptomonedas, ambos deciden probar Lightning y crear un nuevo canal mutuo que financian por igual con medio bitcoin cada uno (eso es un montón de almuerzos).

Ilustración de dos nodos que crean un canal en Bitcoin Lightning Network

Crear un nuevo canal Lightning es como crear una billetera de bitcoin de múltiples firmas que requiere ambas firmas para aprobar una transacción, pero con una diferencia; cada uno de ustedes recibe una "Transacción de compromiso" firmada, pero aún no emitida, según el documento técnico de Lightning Network, que le devuelve sus depósitos iniciales. De esta manera, si su amistad pasa por una mala racha, o si alguno de ustedes necesita el dinero, pueden cerrar el canal unilateralmente transmitiendo esta transacción y todos obtienen la cantidad que les corresponde.

Realización de transacciones relámpago con personas con las que tiene canales

Digamos que sales a almorzar de nuevo un día y terminas debiéndole a Bob el equivalente a 8000 satoshis (0,31 USD mientras escribo esto). En este momento, si usa Bitcoin para liquidar esta cantidad, terminaría pagando 0,10 USD y esperando una hora, lo que lo hace inviable.

Ilustración de dos nodos actualizando el estado de su canal

Sin embargo, con Lightning, puede hacer esto de forma gratuita simplemente reemplazando su "Transacción de compromiso" con una nueva transacción para que ambos la conserven. Solo que esta vez, Bob tiene 8000 satoshis más y tú tienes menos. (Si está pensando en hacer trampa transmitiendo la transacción anterior en este momento, espere hasta la sección sobre cómo cerrar un canal ).

Puede transmitir la transacción y cerrar el canal; sin embargo, cerrar el canal incurriría en tarifas de transacción y, dado que ninguno de los dos necesita la cantidad de inmediato, simplemente puede retener el canal y usarlo para saldar deudas futuras.

Realización de transacciones relámpago con personas con las que no tiene canales

Digamos que un día, Bob invita a otro de sus amigos, Alice, y después de una hora intensa de comer sándwiches, ambos están en deuda con Alice porque la tienda solo aceptaba Coinye (una criptomoneda extinta abandonada después de que Kanye West demandó), lo que sucedió con Alice. tener.

Ilustración de una transacción relámpago de varios saltos

Ahora, suponiendo que Bob tenga un canal abierto con Alice, con Lightning, también puede pagarle a Alice a través de Bob. Su nodo calcula la ruta óptima entre usted y Alice, en este caso, con Bob como intermediario financiero, y todos los intermediarios pueden devolver el dinero, con una pequeña tarifa si así lo desean.

Cerrar un canal: dos formas buenas y una forma mala

Hay tres formas de cerrar un Lightning Channel:

  1. Colaborativamente: Cualquiera de las partes en el canal inicia el cierre de un canal Bitcoin Lightning y el otro lo aprueba. No hay bloqueo de tiempo y el dinero está listo para gastar tan pronto como se confirme la aprobación. Esta es la "mejor" manera de cerrar un canal.
  2. Unilateralmente: Cualquiera de las partes en el canal puede cerrar un canal Bitcoin Lightning cuando una de las partes lo desee, incluso si la otra parte no lo aprueba. Esto da como resultado un bloqueo de tiempo en el que la otra parte puede disputar el cierre con una transacción de "Remedio de incumplimiento" (consulte el escenario 3 a continuación), pero supongamos que eso no sucede. Después de que expire el bloqueo de tiempo, los fondos son de uso gratuito. Esta es una forma "aceptable" de cerrar un canal.
  3. Remedio de incumplimiento: dado que las transacciones relámpago son una lista con marca de tiempo de transacciones firmadas donde la división de fondos varía, es posible que una de las partes intente hacer trampa (romper la confianza) cerrando unilateralmente un canal con una transacción anterior en la que tiene más fondos (ver escenario 2). Esto da como resultado un bloqueo de tiempo, y durante este período, la parte agraviada no solo puede recuperar sus propios fondos, sino también robar toda la capacidad del canal mediante una transacción de "Breach Remedy", como se describe en el documento técnico de Bitcoin Lightning Network.

Lightning Node vs. Lightning Wallet

En el ejemplo anterior, usamos el término "nodo" de Lightning, lo que le haría pensar que tendría que mantener su nodo en funcionamiento las 24 horas del día, los 7 días de la semana en Internet. Y sí, estarías en lo cierto. Lightning Network está diseñado para que los nodos estén siempre en línea, lo que garantiza que la red funcione cerca de su capacidad máxima. Y, si nadie está en línea para monitorear un intento de trampa y tiene éxito, el canal se cerrará como un cierre unilateral regular, dejándolo sin sus fondos.

Sin embargo, el documento técnico de Lightning Network describe un remedio para este problema:

… uno debe monitorear periódicamente la cadena de bloques para ver si la contraparte ha transmitido una transacción de compromiso invalidada, o delegar a un tercero para que lo haga. Se puede delegar a un tercero otorgando únicamente la transacción de Remedio de incumplimiento a este tercero. Se les puede incentivar a ver la cadena de bloques transmitir tal transacción en caso de malicia de la contraparte al darles a estos terceros una tarifa en la salida. Dado que el tercero solo puede actuar cuando la contraparte está actuando maliciosamente, este tercero no tiene ningún poder para forzar el cierre del canal.

Estos terceros a menudo se denominan torres de vigilancia y deberían eliminar la carga de estar siempre en línea de los usuarios.

El estado de la red Lightning

Bitcoin Lightning Network al 27 de marzo de 2019:

  • Tiene más de 7.5 mil nodos
  • Tiene casi 40 mil canales abiertos
  • Un poco más de 1 mil BTC de capacidad

Está creciendo a un ritmo de:

  • 25 nodos por hora
  • 304 canales por hora

Hay muchas implementaciones de nodos de Lightning Network, incluso Eclair Lightning Wallets en Play Store. Todavía es experimental, le falta pulido y la característica importante de recibir fondos, pero en mi opinión, aunque el ecosistema es pequeño, está creciendo saludablemente.

Especificaciones e implementaciones

La especificación de Bitcoin Lightning Network se encuentra en estado de Solicitud de comentarios (RFC) y se construye a partir de una serie de documentos denominados Bases de la tecnología Lightning (BOLTS). Los PERNOS cambian constantemente a partir de esta publicación y se agradece la contribución.

También hay varias implementaciones compatibles con BOLT de los nodos de Lightning Network:

  • LND: Abreviatura de Lightning Network Daemon, esta es una implementación basada principalmente en Go.
  • Eclair: una implementación principalmente basada en Scala.
  • C-lightning: una implementación basada principalmente en C.

Para obtener más recursos, consulte la conclusión de este artículo.

Ventajas y críticas de la Red de Alumbrado

Entonces, ¿qué podemos lograr con Lightning Network?

  • Microtransacciones verdaderas (fracciones de centavos)
  • Las tarifas más bajas imaginables (fracciones de centavos)
  • Un grado de privacidad (sin registros de blockchain)

Sin embargo, como dije antes, hay una serie de críticas a Lightning Network, algunas de las cuales son válidas y presentan desafíos aún no resueltos que enfrenta Lightning:

  • Enrutamiento y centralización: dado que Lightning Network está en constante cambio con los estados de los canales cambiando, abriéndose y cerrándose todos los días, y hay un almacén centralizado de historial al que recurrir, las rutas de pago deben calcularse de nuevo cada vez. Esto es genial cuando la red es pequeña, pero cuando se vuelve lo suficientemente grande, es posible que su pequeño nodo que se ejecuta en un hardware diminuto no tenga la potencia de procesamiento para calcular la ruta. La solución a este problema puede ser un supernodo centralizado con conocimientos avanzados que pueda consultar. Esto se describe con mayor detalle aquí.
  • Demasiados préstamos: se describe mejor en esta publicación, que incluso consiguió que Vitalik Buterin, el cofundador de Ethereum, participara. Esto esencialmente dice que dado que una cadena de 10 saltos para pagar $ 10 requiere que todos paguen $ 10 adelante, termine moviendo $100 en fondos. En un momento, mover grandes cantidades se vuelve inviable. Aún no se ha determinado si esto es cierto o no en el mundo real, pero no obstante, este es un argumento convincente.

¿Me perdí alguna crítica? Por favor, hágamelo saber en los comentarios a continuación.

Más lecturas y recursos

Espero que finalmente comprenda qué es Lightning Network en realidad. Debajo de todo, es solo un sistema de mensajería basado en el intercambio de tokens criptográficos. Todavía no es perfecto o ampliamente utilizable, pero eso no significa que no sea una pieza de ingeniería impresionante.

Recomiendo leer el libro blanco original de Bitcoin Lightning Network. También podría recomendar una lista de otras lecturas y aplicaciones, libros y documentos, pero el usuario de GitHub, Ben Congdon, ya lo hizo, por lo que recomiendo consultar bcongdon/awesome-lightning-network . ¡Gracias Ben! Como desarrollador de Bitcoin, se debe a sí mismo leer tanto como sea posible sobre esta nueva tecnología.

Si todo eso fue demasiada información, terminemos con una nota divertida. Aquí hay un video divertido del supuesto Satoshi Craig Wright que intenta hablar sobre los buenos viejos tiempos de bitcoin.