El ingeniero principal de Blockstream, Rusty Russell, descubrió errores críticos de Bitcoin Lightning Network que estaban afectando las implementaciones de C-Lightning, Éclair y Lightning Community Daemon (lnd) .
Las primeras versiones de LN no pudieron verificar los montos de las transacciones de financiación
Actualmente, tres equipos autónomos están trabajando en las implementaciones de Lightning Community: Blockstream, ACINQ y Lightning Labs. El objetivo principal de estos equipos, entre otras cosas, es reducir los costos de transacción al tiempo que mejora la escalabilidad y la seguridad de la purple Bitcoin.
ICYMI: Aquí están todos los detalles del reciente error Lightning. https://t.co/NVzKmGW5I6[19659005font>—TheRustyTwit(@rusty_twit)27deseptiembrede2019
La Red Lightning está formada por canales de micropagos. Estos canales actualizan los saldos perpetuamente fuera de la cadena de bloques BTC. Pero, una vez que se cierra el canal de pago, las transacciones que ocurrieron entre los canales de micropagos se transmiten, como una transacción, a la cadena de bloques. Por lo tanto, independientemente del número de transacciones realizadas, se accede a la cadena de bloques solo dos veces, cuando el canal se activa por primera vez y cuando se cierra el canal. Por lo tanto, este método decrease significativamente la carga de la cadena de bloques de Bitcoin.
Mientras revisaba las nuevas características propuestas para Lightning Network, Russell realizó pruebas bajo el siguiente enunciado del problema,
“Un nodo de rayos que acepte un canal debe verificar que la financiación La salida de la transacción efectivamente abre el canal propuesto. De lo contrario, un atacante puede reclamar abrir un canal pero no pagarle al igual o no pagar el monto full. Una vez que la transacción alcanza la profundidad mínima, puede gastar fondos del canal. La víctima solo se dará cuenta cuando intente cerrar el canal y ninguno de los compromisos o transacciones de cierre mutuo que tenga sean válidos ”.
Como resultado, Russell detectó que las implementaciones de Blockstream antes de la versión .7.1 de C-lightning, No realice esta comprobación. “Esto puede ser explotado por un par que se conecta y que dice abrir un canal con cualquier ID de transacción”. (CVE-2019-12998)
De manera comparable, respecto a la implementación de Lighting Lab lnd, Russell señaló que “las versiones anteriores no verificaban la cantidad . v0.7. y remarkable verifica correctamente el scriptpubkey, v0.6.x aplica parcialmente el scriptpubkey de financiación, pero antes de la v0.6. no se verificó en absoluto. ”(CVE-2019-12999)
Russell también probó si ACINQ El proyecto Éclair realizó verificaciones adecuadas con respecto a los montos. Russell concluyó: “v0.3.1 y outstanding hacen esto correctamente, las versiones anteriores no lo hacían si usaban el backend de núcleo de bitcoin los usuarios de electrum solo verifican el guión, no la cantidad. ”(CVE-2019-13000)
Errores reportados
La buena noticia es que Russell, que pertenece al equipo Blockstream, compartió su descubrimiento con la otra Purple Lightning equipos, ACINC y Lightning Labs. Por lo tanto, los errores son corregidos. Además, Russell señala resultados positivos gracias a su descubrimiento,
'Si bien este error de larga knowledge no se había descubierto de forma independiente y, por lo tanto, period poco probable que una parte maliciosa lo descubriera antes de solucionarlo, brindó la oportunidad de pruebe las comunicaciones y los métodos de actualización en todo el ecosistema de rayos. ”
¿Cómo cree que las implementaciones de Lightning Community están ayudando a resolver los problemas de escalabilidad de Bitcoins? ¡Háganos saber en los comentarios a continuación!
Imágenes a través de Bitcoinist Graphic Library, Twitter @rusty_twit