- Después de que a finales de junio se descubriera un fallo crítico en el código de la Bitcoin Lightning Network, los detalles del fallo se hicieron públicos ayer.
- Los atacantes pudieron abrir un canal de pago con una transacción «falsa» y luego robar el Bitcoin a sus pares.
A finales de agosto, el desarrollador australiano de Bitcoin Rusty Russell descubrió una vulnerabilidad en la red Bitcoin Lightning y llamó la atención sobre ella. Advirtió a la comunidad Bitcoin que el error en la Red Lightning podría llevar a la pérdida de Bitcoin (BTC). En consecuencia, Russell instó a todos los operadores de nodos a actualizar sus versiones de software.
Ayer se hicieron públicos más detalles sobre el bug, y cómo la vulnerabilidad podía ser explotada por un hacker. En una declaración, Russell describió en detalle cómo los hackers lograron explotar el error y robar BTC.
Para abrir un canal de pago dentro de la red Lightning, se requiere una transacción de apertura para activar el canal de pago. El Nodo Lightning, que acepta un canal, debe, por lo tanto, primero verificar que la primera transacción para el canal propuesto se hizo realmente. De lo contrario, un atacante puede reclamar la apertura de un canal, pero no pagar al par o no pagar la cantidad total.
Después de crear el canal de pago, los usuarios honestos enviaban BTC al atacante sin saber que la transacción anterior era falsa. Las víctimas no se dieron cuenta de la estafa hasta que cerraron el canal porque las transacciones de cierre no eran válidas. Sin embargo, aún no está claro cuántos usuarios fueron víctimas de tales ataques.
También se hizo público que diferentes clientes de Lightning fueron afectados de diferentes maneras. Mientras que C-Lightning podía explotar el bug muy fácilmente, Ind y Eclair necesitaban circunstancias especiales para explotar el bug. En el lado positivo, sin embargo, el error en cada cliente fue corregido muy rápidamente. Después de que el error fue descubierto el 27 de junio y los desarrolladores fueron notificados, Ind lanzó un parche el 2 de julio, Eclair el 3 de julio y C-Lightning el 4 de julio.
Comprender el problema: ¿Cómo funciona Lightning Network?
La Lightning Network es un protocolo de pago de capa 2 que permite transacciones rápidas y casi gratuitas en la blockchain Bitcoin. Para utilizarlo, los usuarios deben abrir los llamados «canales de pago» para enviar y recibir Bitcoin. Las transacciones se procesan «off-chain». Esto significa que no todas las transacciones tienen que ser verificadas por el minero y, por lo tanto, no están escritas en la blockchain de Bitcoin.
Para que esto funcione, los usuarios deben instalar una cartera con multi-signatures. Antes de que se pueda abrir un canal de pago, las direcciones de las carteras de los usuarios se almacenan en la blockchain de Bitcoin, incluyendo un saldo de cuánto pertenece Bitcoin a cada usuario dentro de ese canal de pago.
Una vez abierto el canal de pago, todos los usuarios del canal de pago pueden realizar un número ilimitado de transacciones. Cada transacción sólo necesita ser firmada y confirmada por ambas partes. A continuación, se compila un balance actualizado de la cantidad de Bitcoin que pertenece a cada cartera individual. El saldo actualizado sólo se cargará en la blockchain de BTC cuando ambas partes cierren el canal de pago.
Debido a esta arquitectura, los atacantes pudieron abrir un canal «falso» como resultado del fallo y luego obtener pagos BTC por fraude.