
Aurich Lawson / Getty
Tres nuevas empresas se están preparando para lanzar uno de los experimentos de criptomonedas más ambiciosos e importantes desde la creación del bitcoin en sí. Llamado Lightning, el proyecto pretende construir una red de pago segura, escalable y criptográficamente segura en capas sobre la red bitcoin existente.
Básicamente, Lightning tiene como objetivo resolver el gran problema que se cierne sobre Bitcoin en los últimos años: el diseño de Satoshi Nakamoto para bitcoin es cómicamente incableable. Se requiere que cada nodo completo en la red punto a punto de Bitcoin reciba y almacene una copia de cada transacción que se haya realizado en la red.
Inicialmente, ese diseño fue vital para lograr la visión de Nakamoto de una red de pago totalmente descentralizada. Pero como dijo el informático de Purdue Pedro Moreno-Sánchez a Ars, crea un gran desafío a medida que la red se vuelve más popular. «Hemos llegado a un punto en el que ya no es adecuado seguir creciendo», dijo.
Lightning podría ofrecer una salida a este vínculo. Cambia los pagos de rutina fuera de la cadena de bloques, eliminando el obstáculo más importante para el continuo crecimiento de bitcoins.
De hecho, el proyecto Lightning podría hacer mucho más que eso. Se espera que los pagos de Lightning sean más rápidos, más baratos y más privados que los pagos de bitcoins convencionales. Los proponentes ven a Lightning como una segunda capa nueva en la pila de software de bitcoin. Esperan que Lightning expanda el atractivo de Bitcoin de la misma manera que la Web ayudó a que Internet se convirtiera en una corriente principal.
Las ideas clave detrás de Lightning fueron propuestas por Joseph Poon y Thaddeus Dryja en un libro blanco de 2015 , pero han tardado tres años en traducir la propuesta a un código completamente funcional. En la actualidad, tres compañías diferentes -las nuevas empresas de San Francisco Blockstream y Lightning Labs y la startup de París ACINQ- están trabajando en implementaciones paralelas de la pila de tecnología Lightning. El trío lanzó la versión 1.0 de la especificación Lightning en diciembre, y las compañías ahora están compitiendo para que su software esté listo para ser utilizado por el público en general.
Entonces, ¿qué hay en el horizonte cuando Bitcoin se prepara para que Lightning ataque? Para comprender realmente, es importante entender primero cómo Lightning utiliza las primitivas criptográficas de la red de bitcoin para realizar pagos seguros fuera de la cadena de bloques (está de enhorabuena, le explicaremos). A partir de ahí, daremos un paso atrás y consideraremos las fortalezas y debilidades clave que es probable que tenga la nueva red una vez que se implemente a escala.
La idea central de Lightning: unir los canales de pago

La unidad básica de la red Lightning se llama canal de pago. Esta es una conversación privada entre dos usuarios que permite el intercambio de IOU ejecutables criptográficamente. Siempre que ambas partes sigan las reglas, no es necesario transmitir estas transacciones individuales a la red bitcoin más amplia. En principio, dos partes pueden hacer docenas, cientos o incluso miles de pagos entre sí sin saturar la cadena de bloques.
En la visión de Lightning, la red de bitcoin pasada de moda se convierte en una protección criptográfica para estos canales de pago. Los pagarés en realidad son transacciones de bitcoin inteligentemente formateadas llamadas transacciones de compromiso que aún no han sido enviadas a la red bitcoin. Un usuario siempre tiene la opción de «cobrar» publicando la transacción de compromiso actual en blockchain y recolectando el dinero que se le debe.
Pero los canales de pago no son suficientes para resolver los desafíos de escalado de Bitcoin por sí solos. En el mundo real, la gente quiere hacer pagos a muchas personas diferentes, incluidos muchos pagos puntuales a personas con las que nunca volverán a interactuar. Cada canal de pago genera dos transacciones de bitcoin: una para abrirla y otra para cerrarla. Entonces, si las personas tuvieran que abrir un nuevo canal de pago para cada destinatario, la congestión en la cadena de bloques podría empeorar en lugar de mejorar.
Entonces, la red Lightning proporciona un método criptográficamente seguro para encadenar canales de pago juntos. Si Alice tiene un canal de pago con Bob y Bob tiene un canal de pago con Carol, entonces Alice puede pagarle a Carol enviándole dinero a Bob y pidiéndole a Bob que le envíe el dinero a Carol. Fundamentalmente, el protocolo Lightning garantiza que Bob no puede robar el dinero mientras pasa por sus manos.
La capacidad de encadenar canales de pago de forma segura crea la posibilidad de unir a millones de personas en una única red global de pagos. En lugar de abrir un nuevo canal de pago para cada nuevo destinatario, los usuarios encuentran una cadena de canales de pago ya abiertos que los conectan con los nuevos destinatarios. Eso significa que puede usar un único canal de pago para hacer muchos pagos a muchas personas diferentes, todo mientras genera solo un puñado de transacciones en la cadena de bloques subyacente.
Cómo funcionan los canales de pago

Para entender realmente cómo funciona Lightning, debes entender cómo funcionan las transacciones de bitcoins. Es posible que desee leer la primera página de nuestro imprimador bitcoin , que explica esto en detalle. Pero en pocas palabras, una transacción bitcoin es una lista de entradas y salidas, con cada entrada apuntando al resultado de una transacción anterior de bitcoin.
Cada salida especifica las condiciones que deben cumplirse para gastar las monedas en esa salida. Las transacciones más simples solo requieren una firma digital -una prueba criptográfica de que una transacción ha sido aprobada por el propietario de una clave privada en particular.
Supongamos que Alice quiere enviar un pago a Bob. Alice podría crear una transacción de bitcoin que diga «Enviar tres bitcoins a Bob». Para gastar esos tres bitcoins, Bob crea una nueva transacción cuya entrada apunta a la transacción de Alice y cuya salida envía bitcoins a otra persona. Él usa su clave privada para firmar esta nueva transacción y enviarla a la red bitcoin. Si la firma es válida, la transacción se convierte en parte de la cadena de bloques.
Bitcoin tiene un lenguaje de scripting que permite que las transacciones especifiquen condiciones arbitrariamente complejas para el gasto de productos. Por ejemplo, supongamos que Alicia tiene un segundo amigo, Charlie. Podría crear una transacción bitcoin con un resultado que diga «Estos tres bitcoins solo pueden gastarse con firmas de Bob y Charlie». Para desbloquear esos fondos, Bob y Charlie tendrían que trabajar juntos, generando una única transacción de bitcoin firmada por sus dos claves privadas.
Con ese trasfondo, así es como funciona un canal de pago. Supongamos que Alice y Bob quieren abrir un canal de pago con 10 bitcoins en él: cinco de Alice y cinco de Bob. Alice y Bob construirán una transacción de bitcoins que toma cinco bitcoins de Alice y cinco bitcoins de Bob. La transacción tiene un único resultado con una condición de dos firmas: tanto Alice como Bob tienen que firmar una transacción para gastar los 10 bitcoins.
Alice y Bob también construyen una segunda transacción, llamada transacción de compromiso, que revierte el efecto de la primera transacción. Esta nueva transacción toma los 10 bitcoins de la transacción anterior como su entrada. Tiene una salida enviando cinco bitcoins a Alice y una segunda salida enviando los otros cinco bitcoins a Bob. Alice y Bob firman ambas transacciones.
Entonces, y este es el paso crucial, solo envían la primera transacción a la red . Esto efectivamente coloca 10 bitcoins en una cuenta compartida controlada conjuntamente por Alice y Bob. Si alguno de ellos decide que quieren recuperar sus bitcoins, pueden enviar esa segunda transacción a la red. Pero mientras ninguno de los dos haga esto, el canal permanece abierto, y Alice y Bob pueden enviar bitcoins de manera efectiva sin poner nada en la cadena de bloques.
Si Alice quiere enviar a Bob un bitcoin, crea una nueva transacción de compromiso. En lugar de devolver los cinco bitcoins de Alice a los cinco bitcoins de Alice y Bob a Bob, la nueva transacción de compromiso dice «cuatro bitcoins a Alice, seis bitcoins a Bob».
Alice firma esta transacción de compromiso y se la entrega a Bob, quien la firma y la envía de regreso. Alice y Bob destruyen sus copias de las transacciones de compromiso previas (la que le dio cinco bitcoins a Alice y Bob). Ahora Bob «posee» seis bitcoins y Alice «posee» cuatro sin emitir nada a la cadena de bloques.
Alice y Bob pueden repetir este proceso un número ilimitado de veces. Supongamos que Bob quiere pagarle a Alice tres bitcoins. Él crea una nueva transacción que dice «siete bitcoins a Alice, tres bitcoins a Bob», lo firma y lo envía a Alice. Ella lo firma y lo envía de vuelta. Destruyen sus copias de la transacción anterior y Alice ahora posee efectivamente siete de los 10 bitcoins en el canal. De nuevo, nada se agrega a la cadena de bloques.
La idea clave aquí es que ni Alice ni Bob corren el riesgo de que la otra parte les robe sus monedas, ni que sus monedas estén encerradas en un estado en el que no puedan recuperarlas. Cada uno de ellos tiene una copia de la transacción de compromiso actual, que cualquiera de ellos puede enviar al blockchain en cualquier momento para retirar unilateralmente sus propios fondos (devolviendo los fondos de la otra parte al mismo tiempo).