El siguiente es un extracto directo de Marty’s Bent Problema n.º 1278: “Surge otro error de LND/btcd”. Regístrese aquí para recibir el boletín.
Por segunda vez en menos de un mes, btcd (una implementación alternativa de Bitcoin) y, por extensión, LND (una de las implementaciones de Lightning) se volvieron incompatibles con el resto de la red de Bitcoin debido a la intromisión de un desarrollador llamado Burak.
el 9 de octubre, Burak completó una transacción multisig de tapscript 998-0f-999 que btcd reconoció como no válida, mientras que Bitcoin Core y otras implementaciones (correctamente) la reconocieron como válida. Dado que la implementación de LND de Lightning Network depende de btcd, se volvió incompatible con el resto de Lightning Network, lo que interrumpió la capacidad de todos sus usuarios para realizar transacciones de manera segura. No es ideal.
Avance rápido hasta ayer y Burak regresó nuevamente para interrumpir btcd y LND con el tipo de transacción que ve arriba: un gasto P2TR (pay-to-taroot) que contiene N OP_SUCCESSx con 500,001 impulsos, lo que excede el límite codificado en btcd. Si bien la transacción multisig de tapscript 998-of-999 parecía ser un error honesto, la transacción de ayer fue una explotación abierta en la naturaleza por parte de Burak.
Algo a tener en cuenta sobre esta transacción OP_SUCCESSx es que normalmente no se incluiría en un bloque. Sin embargo, parece que Burak sobornó a los mineros al agregar una tarifa particularmente alta a esta transacción que F2Pool no pudo resistir.
Esta situación ha generado mucho debate en los últimos dos días. ¿Se equivocó Burak al explotar este error en la red principal? ¿Debería haber revelado adecuadamente la vulnerabilidad de btcd y LND en privado, permitiéndoles parchear el código antes de que el error fuera explotado? ¿Debería LND depender de btcd, que es una implementación alternativa de Bitcoin que no se acerca tanto a la atención y revisión que recibe Bitcoin Core?
Su tío Marty ciertamente no tiene las respuestas correctas a todas estas preguntas, pero es importante que ustedes, fanáticos, estén al tanto de estas cosas, así que pensé en traerlas a su atención.
Esta es la naturaleza de los sistemas distribuidos de código abierto. Podría haber muchas vulnerabilidades al acecho y no hay una forma clara de manejar los problemas. Muchos abogarán por divulgaciones responsables en privado, mientras que otros abogarán por acciones contradictorias abiertas que fuercen el problema. Esta es una de las compensaciones que elige cuando decide optar por una red monetaria de libre mercado.