Satashi Nakamoto envió una propuesta de "un nuevo sistema de efectivo electrónico que es totalmente entre pares, sin un tercero confiable", a una lista de correo de criptografía el viernes 31 de octubre de 2008. La primera respuesta: la primera vez que alguien públicamente comentó Bitcoin: llegó el domingo siguiente: "Necesitamos muchísimo ese sistema", escribió James A. Donald, "pero por lo que entiendo su propuesta, no parece ajustarse al tamaño requerido".
Continuando 10 años después, esa crítica todavía suena cierta. Incluso los evangelistas más ardientes de Bitcoin admiten que no vale nada para hacer pequeñas compras diarias. Pero Lightning Network, uno de los proyectos de escalado de bitcoins más prometedores actualmente en curso, podría cambiar eso.
La red de rayos
Hablando en la Cumbre Blockstack en julio de 2017, la directora ejecutiva de Lightning Labs, Elizabeth Stark, citó esa primera crítica del efectivo electrónico de Nakamoto, pero expresó su confianza en que Bitcoin puede escalar. "Básicamente estamos nuevamente en 1995 cuando se trata de blockchains y tecnologías descentralizadas", dijo, refiriéndose al tiempo antes de que Internet adquiriera HTTP y las otras capas de transporte y aplicación de TCP / IP.
Entre las aplicaciones de "capa 2" más comentadas para la cadena de bloques de bitcoin se encuentra la red lightning. Propuesto por primera vez por Joseph Poon y Tadge, también conocido como Thaddeus Dryja en 2015 (la versión más reciente de su documento técnico está disponible aquí), Lightning ha sido trabajado en una especificación funcional llamada lightning-rfc o "BOLTS" por tres compañías, cada una de las cuales tiene su propia implementación: Lightning Labs tiene lnd, Blockstream tiene c-lightning y ACINQ tiene eclair. También se están desarrollando implementaciones que no son BOTLS, como thunder.
La red Lightning ya está en funcionamiento, pero está en su infancia extrema. Bitcoin real ha sido enviado y casi siempre recibido usando las implementaciones de Lightning Labs, Blockstream y ACINQ, y las tres son interoperables. El siguiente video muestra a un ingeniero de ACINQ enviando 0.000001 bitcoin (aproximadamente $ 0.01) casi instantáneamente desde un nodo eclair a un nodo lnd a través de un nodo c-lightning:
Para ver cuánta mejora representa esto, probamos una transacción similar en la cadena de bloques de bitcoin usando GreenAddress, una aplicación de billetera móvil. La aplicación sugirió pagar a los mineros 0.00001907 BTC ($ 0.19): una tarifa de 1, 907%. Si bien no está claro cuántos bloques se pretendía confirmar con esa tarifa (nos comunicamos con GreenAddress para averiguarlo), la respuesta es probablemente seis bloques, o alrededor de una hora.
Sin embargo, nunca sabremos cuánto tiempo habría tomado esa transacción en particular: un mensaje de error nos informó que "las salidas por debajo de 546 satos se consideran polvo no económico por Bitcoin. Por favor, aumente el valor".
Lightning Labs también ha probado intercambios atómicos de cadena cruzada utilizando la red; Estas son transferencias de valor entre diferentes blockchains, en este caso bitcoin y litecoin, que potencialmente marcan un primer paso hacia la construcción de intercambios descentralizados.
Lightning habilita micropagos que Bitcoin no puede por sí solo, pero las implementaciones existentes todavía tienen errores. Stark insta a los usuarios a aprender sobre los rayos utilizando la "red de prueba" de bitcoin (es decir, usar dinero falso), en lugar de la "red principal" de fuego real. Sin embargo, se han realizado transacciones por un valor de alrededor de $ 50, 000 en la red principal al momento de la escritura, y algunas personas han perdido dinero por un error de c-lightning. (Christian Decker, ingeniero técnico principal de Blockstream, me dijo por correo electrónico que los fondos finalmente se recuperaron en la mayoría de los casos).
Entonces, ¿cómo funcionan los rayos?
Cómo funciona el rayo
La solución de Lightning se basa en canales de pago bidireccionales fuera de la cadena. Digamos que Alice y Bob frecuentemente hacen transacciones entre ellos en pequeñas cantidades. Los pagos en cadena no son prácticos en este caso debido a las tarifas y los largos tiempos de confirmación involucrados, por lo que deciden abrir un canal que les permita enviar bitcoins de un lado a otro, de forma instantánea y gratuita.
Abrir un canal
Para abrir un canal, Alice, Bob o ambos contribuyen una cierta cantidad de bitcoin a una dirección especial a través de lo que se llama una transacción de financiación (el cuadro verde en el diagrama a continuación). Digamos que Alice aporta 1 BTC. Ella envía los fondos a lo que se llama una dirección multigrado 2 de 2, que requiere que tanto Alice como Bob "firmen" criptográficamente cualquier transacción de envío con sus claves privadas. Una transacción normal solo requiere la firma de la clave privada (única) correspondiente a la clave pública de la dirección de envío.
Es importante destacar que la transacción de financiación aún no se ha firmado o transmitido a la red.
Luego, Alice y Bob crean una "transacción de compromiso" utilizando la transacción de financiación como su "padre": usan su salida no confirmada de 1 BTC como entrada para una transacción "secundaria" que envía 0.5 BTC a Alice (salida 0) y 0.5 BTC a Bob (salida 1). Si está protestando porque el protocolo de bitcoin no permite a los usuarios firmar un gasto sin conocer las firmas de la entrada, esa capacidad se otorgó a través de una bifurcación suave.
Luego, Alice firma la salida enviando 0.5 BTC a Bob; Bob firma la salida enviando 0.5 BTC a Alice. Ambos firman y transmiten la transacción de financiación, que está comprometida con la cadena de bloques de bitcoin (y sujeta a tarifas de red y tiempos de espera).
Ahora tienen un canal de pago abierto a través del cual pueden transportar bitcoins de un lado a otro de forma instantánea y gratuita. Alice o Bob pueden cerrarlo en cualquier momento y reclamar sus 0.5 BTC cada uno, o lo que sea el saldo actualizado.
Abriendo un canal… En inglés
A menos que ya sepa un poco sobre las entrañas de la red de rayos, probablemente sea difícil digerir el "letrero aquí, inicial aquí, gastar esto, transmitir eso, no, no eso " .
Aquí hay una descripción más conceptual. La transacción de financiación es lo que parece: proporciona los fondos para el canal. También actúa como un límite para el canal: ninguna de las partes puede terminar con más del monto de financiamiento inicial, y los saldos de ambas partes deben sumar ese monto. La razón por la que la transacción de financiación se crea primero, pero se transmite por última vez, es que si simplemente se publicara en la cadena de bloques en un solo paso, nada se habría logrado aparte de una sola transacción simple. Los rayos no los hacen más rápidos o más baratos.
Al dejar abierta la transacción de financiación, insertar una transacción de compromiso, que, como se describe a continuación, funciona como una especie de contrato inteligente, y luego cerrar la transacción de financiación, los rastreadores abren una especie de agujero de gusano en la red. Le permite mover bitcoin de un lado a otro a lo largo de una ruta única y definida. Estás utilizando el protocolo bitcoin, pero evitas los retrasos y los gastos impuestos por los mineros.
Mantener a Lightning sin confianza
Digamos que Bob ahora quiere pagar a Alice 0.1 BTC usando su canal abierto. Las dos partes simplemente actualizan la transacción de compromiso, sin necesidad de apelar a los mineros. El saldo, anteriormente 0.5 BTC cada uno, ahora es 0.6 BTC para Alice, 0.4 BTC para Bob.
El único problema es, ¿cómo hacerlo de forma segura? Debido a que ya han intercambiado firmas por la transacción inicial, Bob puede firmar esa, en lugar de la más reciente, y retirarse con 0.5 BTC en lugar de los 0.4 BTC que realmente le deben. En otras palabras, puede robar alrededor de $ 1, 000 de Alice, según los precios al momento de escribir. La respuesta podría ser solo abrir canales con personas de confianza. Pero entonces, ¿cuál es el punto de usar bitcoin?
Encontrar una solución criptográfica para este dilema se reduce a un objetivo: hacer que sea imposible firmar una transacción anterior y cerrar el canal de una manera que refleje un estado anterior. Siempre que hacerlo sea una opción, los rayos tienen un problema de doble gasto.
Recuerde que Bob firma la mitad de la transacción de compromiso (Compromiso Tx 1a a continuación), que solo Alice puede transmitir porque la suya es la firma que falta. Alice firma el otro (Compromiso Tx 1b), que solo Bob puede transmitir. Cualquiera de los dos puede hacerlo y cerrar el canal, pero utilizando las capacidades de escritura de contratos inteligentes (limitadas) de bitcoin, los resultados de las dos mitades de la transacción de compromiso pueden estar sujetos a diferentes restricciones. Específicamente, una salida puede permitir al destinatario gastar los fondos de inmediato, mientras que la otra puede estar sujeta a cancelación por cualquiera de las partes, a través de un Contrato de Vencimiento de Secuencia Revocable (RSMC), por un período de tiempo definido, como 1000 bloques, o aproximadamente una semana.
He aquí por qué es útil. Si Bob resulta ser tortuoso y sin principios, solo puede firmar y transmitir el Compromiso Tx 1b (arriba), que paga a Alice de inmediato (Entrega 1b) y mantiene sus fondos en el limbo revocable durante una semana (Entrega revocable 1b). Alice, al ver que Bob ha intentado acortarla, puede desencadenar la revocación y reclamar no solo el 0.1 BTC que Bob intentó robar, sino los 0.4 BTC a los que de otro modo habría tenido derecho.
En otras palabras, todo el canal va a Alice si atrapa a Bob haciendo trampa. Eso es posible porque cuando las partes crean una nueva transacción de compromiso (C2a y C2b a continuación), prometiendo en efecto no transmitir una transacción de compromiso anterior (C1a o C1b), ponen su dinero donde están sus bocas. Junto con la nueva transacción de compromiso, crean una transacción de solución de incumplimiento con dos salidas (BR1a y BR1b) que se aplican al compromiso anterior. Alice le da a Bob su clave privada para su mitad de la transacción de reparación de incumplimiento, y viceversa. Ahora, si cualquiera de los dos intenta transmitir la transacción anterior, la contraparte puede aprovechar el período de espera de 1000 bloques y adelantarse a esa transacción, tomando el saldo completo de la parte infractora.
El problema es que Alice debe prestar atención semi constante a sus canales, para que Bob no la atrape por 1000 bloqueos. Poon y Dryja sugieren designar a un tercero cuyo trabajo es desencadenar transacciones de reparación de incumplimiento, las que recompensan todos los fondos del canal a la parte perjudicada, cuando una contraparte intenta engañar. Estos podrían pagar una tarifa fuera de la multa.
Olaoluwa Osuntokun, cofundador y CTO de Lightning Labs, está desarrollando "torres de vigilancia" para servir como ejecutores externos. Si bien se ha planteado la preocupación de que estos nodos puedan actuar como partes confiables e introducir inseguridad en la red, Osuntokun le dice a CoinDesk que solo se necesitaría una torre de vigilancia honesta para un canal determinado.
Además, como Christian Decker, ingeniero técnico principal de Blockstream, señala en un correo electrónico, el fraude es arriesgado. Es una apuesta importante suponer que la parte que intentas robar no se registrará al menos una vez por semana, y el riesgo de perder todo el dinero en tu canal puede ser un factor disuasivo suficiente.
Conectando los canales
En el mundo real, Alice no quiere realizar transacciones exclusivamente con Bob, ni Bob exclusivamente con Alice. Ambos tienen cualquier cantidad de contrapartes que deben pagar y recibir el pago. Abrir canales con cada una de estas partes no sería práctico. Incluso si la interfaz de usuario se simplificara a la perfección, pocos usuarios tendrían la liquidez necesaria para vincular bitcoin en una docena o más de canales abiertos.
Por suerte no tienen que hacerlo. Como muestra el video anterior, los usuarios pueden enrutar los pagos a través de los canales intermedios de los usuarios, de modo que pagar a cualquiera con un canal abierto o dos debería ser posible a través del principio de seis grados de separación. A diferencia de las transacciones dentro de un solo canal, estas transacciones multicanal probablemente involucrarán pequeñas tarifas para incentivar a los nodos a financiar canales y mantenerlos abiertos. El enrutamiento de cebolla, la técnica utilizada para disfrazar a los usuarios del navegador TOR, evita que los nodos intermedios vean la ruta completa tomada por una transacción, mitigando las preocupaciones de privacidad.
Queda por ver qué tan bien funciona esta red de canales en la práctica, y es concebible que si los pagos tienen que tomar una ruta demasiado complicada, con demasiados "saltos" a través de canales intermedios, las tarifas cobradas por esos usuarios podrían sumar.
¿Puede un rayo permanecer descentralizado?
Estas preocupaciones están relacionadas con una que, para los críticos, representa una falla insuperable en la red de rayos. En las implementaciones de hoy, un canal viene con un límite: la cantidad de bitcoin en la transacción de financiación inicial limita la cantidad total de dinero en el canal.
Esta situación impone una compensación a los usuarios con recursos razonablemente limitados. Pueden financiar canales con grandes cantidades de bitcoin para asegurarse de tener los fondos para realizar cualquier pago que necesiten, o pueden financiar canales más pequeños y tener bitcoin disponible para otros usos. (Debido a que los pagos pueden enrutarse a través de canales vinculados, un usuario dado probablemente no necesite abrir más de un puñado de canales, y tal vez solo un par).
La elección se reduce a tener liquidez dentro de los canales de rayos o liquidez fuera de ellos, en cadena. Elegir financiar canales de pago líquidos podría ser riesgoso si las torres de vigilancia u otra solución no evitan la pérdida de fondos por falta de atención. Por otro lado, si los canales de pago se hacen seguros y los relámpagos se convierten en el método principal para usar Bitcoin día a día, habría pocos problemas al dejar fondos en los canales. Servirían como "una tarjeta de débito recargable o efectivo", como dice Decker, mientras que la cadena principal actúa como una cuenta de ahorros.
Stark hace un argumento similar: financiar un canal de rayos le impide usar ese bitcoin para cualquier otra cosa, excepto "una red de potencialmente muchos nodos que en múltiples tiendas aceptarán bitcoin al instante", escribió por correo electrónico. "Visualizamos que los fondos en los canales Lightning serán más útiles que Bitcoin en la cadena para realizar transacciones debido a la velocidad instantánea y las bajas tarifas", agregó.
Hubs?
¿Pero con quién establecerías estos canales? Elegir el Bob para su Alice es una decisión económica, no criptográfica, y para los críticos de la red de rayos, la respuesta obvia sería una especie de "centro", un nodo con mucho capital, que le da la capacidad de mantener canales abiertos bien financiados con varias partes a la vez.
La idea de que lo que equivale a una industria bancaria de bitcoin fuera de la cadena podría desarrollar perturba a los entusiastas de bitcoin, quienes lo ven como una centralización de la red.
Stark disputa esta línea de argumento. "Miles de usuarios ejecutan nodos completos para bitcoin", escribe, "y creemos que esos y otros también ejecutarán nodos en Lightning (es más fácil porque no necesita un nodo completo de bitcoin junto con él, y a diferencia de los nodos completos de bitcoin usted puede hacer pequeñas tarifas de enrutamiento) ". También señala que su equipo está trabajando en "empalmes", lo que permitiría recargar los canales usando bitcoin de la cadena principal. Esa capacidad podría aliviar la compensación entre colocar bitcoin en un canal o dejarlo en la cadena principal, lo que a su vez podría reducir la tendencia de los centros a formarse.
Decker considera que es probable que se forme una "red de dos niveles, con una gran cantidad de nodos que sean confiables y actúen como la columna vertebral de la red". Sin embargo, espera que estos sean comerciantes, en lugar de centros que existen únicamente para proporcionar canales líquidos. Argumenta que proporcionar estos canales a múltiples usuarios sería costoso, ya que requeriría que los centros cobraran tarifas altas y los haría poco competitivos en comparación con otros nodos.
El CEO de ACINQ, Pierre-Marie Padiou, no profesa saber cómo podría desarrollarse la red de rayos. "Es muy difícil predecir cuál será el equilibrio entre la centralización y la descentralización", escribió por correo electrónico. "Por supuesto que habrá nodos más grandes y nodos más pequeños, pero hasta qué punto es difícil saber de antemano".
¿La forma correcta de escalar?
Poon y Dryja afirman que "usando una red de estos canales de micropagos, Bitcoin puede escalar a miles de millones de transacciones por día con la potencia computacional disponible en una computadora de escritorio moderna hoy en día". Quizás, pero ciertamente ese no es el caso hoy. En el momento de la escritura, hay menos de 1, 000 nodos de rayos mainnet abiertos.
El rayo tampoco es la única propuesta de escala que existe. Un competidor importante es Bitcoin Cash, una bifurcación contenciosa de Bitcoin que permite bloques más grandes. El debate entre los partidarios de Bitcoin Cash, los partidarios del rayo y los defensores de varias terceras formas, incluso el antiescalador ocasional, es animado, aunque amargo. Puede ser que uno u otro salga a la cima, que continúen coexistiendo o que todo falle.
En cualquier caso, la red Lightning es un intento prometedor para superar el dilema de escalabilidad que ha perseguido a Bitcoin desde el primer fin de semana de Bitcoin en 2008.