La vulnerabilidad de software de Bitcoin, corregida este miĂ©rcoles con el anuncio de la versiĂłn 0.16.3 de Bitcoin Core, tenĂa un efecto colateral más desastroso que el bloqueo de los nodos que intentasen validar un bloque con doble gasto, lo cual podĂa usarse para un ataque de denegaciĂłn de servicio. TambiĂ©n existĂa la posibilidad de que un minero inflara el suministro de Bitcoin, pues en ciertas circunstancias se podĂa generar un registro errĂłneo que le permitĂa a este minero malicioso adjudicarse el segundo gasto realizado, se informĂł este jueves a travĂ©s de la página bitcoincore.org.
En el boletĂn publicado este jueves, se retoma el tema de la vulnerabilidad corregida el dĂa anterior con el anuncio de la versiĂłn 0.16.3 de Bitcoin Core, el software cliente de Bitcoin, pero introduce un nuevo e importante elemento: el error corregido no sĂłlo implicaba la posibilidad de un ataque de denegaciĂłn de servicio (DoS), como habĂan informado previamente, sino que existĂa una «vulnerabilidad crĂtica de inflaciĂłn» relacionada con la misma falla.
SegĂşn señala el boletĂn mencionado, tanto el equipo a cargo del cliente Bitcoin Core, como los del cliente Bitcoin ABC (Bitcoin Cash) y los de otras criptomonedas con software similar al de Bitcoin, recibieron el reporte de parte de un desarrollador aĂşn no identificado. Sin embargo, esas notificaciones hablaban en un primer momento sĂłlo del riesgo de un ataque de DoS.
Sin embargo, rápidamente determinamos que el asunto también implicaba una vulnerabilidad de inflación, proveniente de la misma causa y prevenible con la corrección planteada.
BitcoinCore.org
Resumiendo las dos facetas de esta vulnerabilidad, la primera, que ocasionaba el bloqueo de un nodo cuando se intentaba validar un bloque ilegal -con doble gasto en la misma transacciĂłn- se introdujo en la versiĂłn 0.14 de Bitcoin Core en 2012 y se transmitiĂł a todas las versiones sucesivas 0.14.x, 0.15.x y las dos primeras instancias de las versiones 0.16.
Lo curioso de este error, fue que se introdujo en una rutina que era justamente concebida para evitar el doble gasto. Si hubiese sido utilizada de forma maliciosa, esta vulnerabilidad pudo haber representado una disrupción importante de la red Bitcoin, pues en vez de desechar el bloque ilegal, el nodo se bloqueaba.
El segundo aspecto de la vulnerabilidad era un poco más elaborado. Como se explica en el boletĂn de este jueves, el bloqueo descrito ocurrĂa si el doble gasto implicaba la salida de una transacciĂłn del mismo bloque, pero si se intentaba el gasto de la salida de una transacciĂłn del bloque anterior, la entrada en el bloque actual seguirĂa marcada como gastada, generando una incongruencia semántica y permitiendo que el minero reclamara bitcoins para sĂ luego de gastarlos dos veces.
Esta Ăşltima informaciĂłn fue retenida dos dĂas por el equipo responsable de Bitcoin Core y en medio de la campaña para que todos los mineros actualicen a la versiĂłn 0.16.3, una decisiĂłn que ha despertado polĂ©mica. Hasta los momentos los reportes sobre los progresos de la actualizaciĂłn no son fáciles de conciliar. Mas de la mitad de la tasa de hash ya migrĂł, dicen los lĂderes de Bitcoin Core, aunque segĂşn el desarrollador LukeDashJr, el 94% de los nodos de Bitcoin siguen vulnerables.
Esta no es la primera vulnerabilidad importante descubierta y corregida en la red Bitcoin, cuyo protocolo ha superado por lo menos 15 incidentes en casi diez años de existencia. Indudablemente, el más llamativo de los casos de vulnerabilidades (corregidas en tiempo rĂ©cord) que demostraron que este protocolo no es infalible, es el caso del bloque 74638, que contenĂa una transacciĂłn que creĂł más de 184 millardos de bitcoins distribuidos en tres direcciones, dos de las cuales recibieron 92,2 millardos de BTC y una tercera recibiĂł 0,01 BTC (la comisiĂłn del astuto minero). Cuando se descubriĂł el bloque irregular, se reescribiĂł el cliente en cinco horas y se produjo una bifurcaciĂłn blanda, que se hizo efectiva en su totalidad a partir del bloque 74691.
Imagen destacada por TheDigitalWay / stock.adobe.com
5