Un bug de inflación sigue siendo un peligro para más de la mitad de todos los nodos completos de Bitcoin

Las cifras publicadas por el desarrollador principal de bitcoin, Luke Dashjr, muestran que más de la mitad de los nodos completos de la red de bitcoin siguen ejecutando software de cliente vulnerable al bug (o error) de inflación descubierto en septiembre de 2018.

Esta revelación supone un peligro para la red, ya que las vulnerabilidades de software son un peligro claro y presente para la fidelidad del bitcoin (BTC). Ahora que la criptomoneda mejor clasificada se encuentra en medio de una tendencia positiva de precios, quizás sea importante que se tomen medidas para erradicar definitivamente el bug de inflación.

La mayoría de los nodos completos de bitcoin siguen siendo vulnerables al bug de inflación

Como informó Cointelegraph el 8 de mayo, una investigación de Dashjr muestra que más del 50% de los nodos completos de la red bitcoin siguen ejecutando versiones de software de cliente bitcoin que son susceptibles al bug de inflación.

Sin embargo, a partir de ese momento, la cifra ha disminuido ligeramente, pasando de un 60% a un 54%. Esto significa que, en los últimos días, algunos nodos completos se han actualizado a una actualización más reciente del software de cliente.

En septiembre de 2018, los desarrolladores descubrieron por primera vez el bug de inflación, que, en teoría, podría permitir a los mineros inflar la oferta total de bitcoin más allá de los 21 millones de BTC, al gastar múltiples salidas de transacción no gastadas (UTXO) en la misma transacción.

Dada la naturaleza del bug, los desarrolladores lo mantuvieron en secreto, lanzando silenciosamente una nueva versión del cliente. Un extracto del informe de septiembre de 2018 sobre vulnerabilidades comunes y exposiciones (CVE) publicado por Bitcoincore.org dice lo siguiente:

"Con el fin de fomentar las actualizaciones rápidas, se tomó la decisión de parchear y revelar inmediatamente la vulnerabilidad menos grave de Denegación de Servicio, al mismo tiempo que se llegaba a los mineros, empresas y otros sistemas afectados y se demoraba la publicación de la edición completa para dar tiempo a que los sistemas se actualizaran. El 20 de septiembre, un mensaje en un foro público informó sobre el impacto total y, aunque se retractó rápidamente, la reclamación se difundió aún más".

Una de las principales conclusiones del análisis de Dashjr es el número total de nodos completos en la red bitcoin. La mayoría de las fuentes bibliográficas del bitcoin sitúan la cantidad de número de nodos completos cercana a los 10,000.

Sin embargo, Dashjr opina que este número está más cerca de 100,000 y que la razón de esta discrepancia radica en el hecho de que muchas fuentes solo tienen en cuenta los nodos que se escuchan activamente en la red.

Llamados nodos de escucha, estos nodos completos tienen conexiones de puerto abierto que se pueden probar. Sin embargo, no todos los nodos completos son nodos de escucha; algunos, ocultos detrás de los cortafuegos o configurados para no escuchar activamente las nuevas conexiones, no tienen conexiones de puerto abierto fácilmente detectables.

La gravedad del bug de inflación

Para entender la gravedad del bug de inflación, es importante conocer el mecanismo mediante el cual se podría explotar el problema. Este proceso implicaría un resumen que explicaría el ataque de doble gasto, el bug de inflación en sí y los problemas que podrían surgir si no se controlan.

El éxito inicial del Bitcoin se presta en gran medida a la brillante solución de Satoshi Nakamoto —el creador del bitcoin— al problema del doble gasto que había impedido el despliegue y la implementación con éxito de los anteriores sistemas de moneda virtual.

Al crear un registro distribuido inmutable con nodos que validan las operaciones, resultaba casi teóricamente imposible gastar el mismo UTXO en dos transacciones diferentes.The severity of the inflation bug

Sin embargo, ¿qué sucede cuando, en lugar de gastar el UTXO en dos transacciones diferentes, un actor malicioso intenta usar una transacción para gastar el UTXO varias veces? Debido a la forma en que el bitcoin está diseñado para funcionar, esta acción significaría crear nuevas monedas virtualmente de la nada, inflando así el suministro total, es decir, el bug de inflación.

Varias actualizaciones sucesivas del software del bitcoin han intentado mejorar la inmunidad de la blockchain al primer tipo de ataque de doble gasto. Sin embargo, con la versión Core 0.14.x del cliente de software del bitcoin, los desarrolladores empezaron a darse cuenta de que existía la posibilidad de una vulnerabilidad de denegación de servicio distribuida (DDoS) en el cliente de software.

El bug permitía a un atacante malicioso bloquear los nodos que ejecutaban la versión de software 0.14.x al intentar gastar el mismo UTXO dos veces. En esta iteración del bug, el objetivo habría sido estrellar tantos nodos como fuera posible y no necesariamente inflar el suministro total de bitcoin.

Al intentar solucionar el problema, la siguiente actualización publicada, 0.15.0, incluía funciones que permitían a un atacante malicioso duplicar el gasto del mismo UTXO en una transacción. En lugar de causar un fallo en el sistema, este nuevo bug hacía que los clientes de software más antiguos reconocieran que tales transacciones de doble gasto eran válidas.

Al descubrirlo, los desarrolladores lanzaron de nuevo una nueva versión de software antes de anunciarlo a la más amplia comunidad de criptos. Sin embargo, varios meses después de que el problema debería haber sido resuelto, parece que más de la mitad de los nodos completos de la red siguen ejecutando implementaciones de clientes vulnerables al bug.

Cointelegraph habló con Dashjr sobre las implicaciones del bug de inflación, a lo que el desarrollador de bitcoin respondió:

"El bug de inflación es, en la práctica, un riesgo para toda la red. Permitiría que un ataque del 51% de los mineros causara inflación (algo que tales ataques normalmente no pueden hacer). La cadena inflacionaria solo sería aceptada por nodos vulnerables y monederos ligeros".

Dashjr continuó explicando los peligros que plantea el bug:

"Hace que lo que se creía que era un nodo completo, en realidad solo sea un monedero ligero a ese respecto. Si más de una pequeña minoría usa monederos ligeros, los mineros hacen las reglas".

Todo lo que tienen que hacer los nodos es actualizar

Cada vez que los desarrolladores descubren un error de esta naturaleza, la solución es siempre conseguir que los nodos se actualicen a una versión más reciente de software que, con suerte, tenga características que eliminen el problema. A veces, este proceso puede llevar a la aparición de otro problema, como se vio en 2018, cuando la solución del bug de DDoS causó que el bug de inflación se manifestara.

Cuando Cointelegraph le preguntó qué se debía hacer al respecto, la respuesta de Dashjr fue simple y directa:

 "Todo el mundo actualizando a un nodo completo fijo."

Mientras este proceso continúa, ¿la red bitcoin se enfrenta a algún riesgo creíble derivado del hecho de que la mitad de los nodos completos son vulnerables al bug de inflación? La respuesta a la pregunta podría estar en quién tiene realmente el verdadero poder en la red: ¿mineros o desarrolladores?

En 2018, el desarrollador de bitcoin, Jimmy Song, expresó la opinión de que a los mineros deshonestos que intentan aprovecharse del bug de inflación les resultaría casi imposible tener éxito. Por un lado, Song dijo que no todos los nodos completos ejecutan el código fuente del bitcoin, una gran cantidad de ellos prefiere desplegar iteraciones personalizadas del cliente bitcoin.

El hecho de que algunos nodos no ejecuten el cliente principal ya disminuye el ataque porque dichos nodos rechazarán el bloque que contiene los UTXO inflados. Si una cantidad significativa de mineros rechaza el bloque contaminado, entonces es probable que se produzca una ruptura de la cadena.

En 2010, durante el "incidente de desbordamiento de valor" descubierto en el bloque 74,638, los desarrolladores publicaron una nueva actualización para el cliente en menos de cinco horas, resolviendo el problema. El bloque en cuestión contenía una transacción que creó alrededor de 184,000 millones de BTC para tres direcciones, dos de las cuales recibieron 92,200 millones de BTC y el minero responsable de resolver el bloque recibió 0.01 BTC.

La discrepancia solo duró para los siguientes 53 bloques, y ya para el bloque 74,691, todos los rastros del valor de desbordamiento ya no existían en la red. Los nodos que inicialmente aceptaron la división de cadena con el bloque contaminado pronto comenzaron a revertir a la división de cadena que no contenía el bloque inflado.

Lo mismo se aplica al bug de inflación: Una vez que se produce la división, los desarrolladores y otros en la red empezarían a darse cuenta, como Song explicó en este extracto de su entrada en el blog, que dice:

"Debido a estas irregularidades, la gente de la red pronto lo habría detectado, probablemente habría alertado a algunos desarrolladores y los desarrolladores principales lo habrían arreglado. Si hubiera una bifurcación, el consenso social en ese punto sobre cuál es la cadena correcta comenzaría a discutirse y la cadena que crea la inflación inesperada probablemente habría salido perdiendo. Si hubiera una parada, probablemente habría habido un retroceso voluntario para castigar al atacante".

Para Song, dada la economía del ataque, es poco probable que los mineros deshonestos quieran emplear esa táctica. Sin embargo, el educador de bitcoin dijo que los hackers que trabajan para países con sentimientos antibitcoin podrían explotar el bug para destruir la red.

Te puede interesar: 

España: La plataforma colaborativa 2gether recibió un premio a las mejores ideas del año 

El grupo japonés SoftBank invirtió cerca de USD 20 millones en la fintech mexicana Clip 

La OCDE recomienda el uso de tecnología blockchain para el crecimiento de México