El error bueno, malo y feo de Bitcoin

El error bueno, malo y feo de Bitcoin

Durante más de un año, todas las versiones de Bitcoin Core contenían uno de los peores errores en la historia de Bitcoin. En este artículo, revelaremos los detalles buenos, malos y feos de uno de los errores de Bitcoin Core más molestos hasta la fecha.

Es malo, por supuesto, que la existencia misma del error ahora esté registrada como CVE-2018-17144 en la base de datos de vulnerabilidades "Common Vulnerabilities and Exposures".

El error apareció como parte de la actualización Bitcoin Core 0.14.0, lanzada en marzo de 2017 para mejorar el rendimiento y relacionada con el enrutamiento de bloques. En resumen, el error impedía que los nodos de la red rechazaran bloques que contenían una transacción que gastaba los mismos fondos ("entradas") varias veces, lo que permitía una forma irregular de doble gasto. Esto a pesar de que uno de los problemas resueltos durante el desarrollo de Bitcoin fue evitar el doble gasto de fondos.

Este grave problema podría manifestarse de muchas maneras diferentes. Primero, las versiones 0.14.0 a 0.14.2 de Bitcoin Core (y en algunos casos las versiones más nuevas) aceptarían el bloqueo, pero al mismo tiempo admitirían que algo andaba mal. Sin embargo, no podrían decir exactamente qué estaba mal. Como resultado, el nodo dejaría de funcionar y se cerraría. Por lo tanto, si un bloque no válido llegara a dichos nodos, podría provocar que la red colapsara. Y esto es malo...

Pero luego se pone peor. En las versiones 0.15.0 a 0.16.2 de Bitcoin Core, se agregó otra mejora de rendimiento que permitió que en algunos casos estos nodos ni siquiera se dieran cuenta de que algo andaba mal. Específicamente, si la moneda gastada dos veces no se moviera en el mismo bloque (lo que sucede a menudo), estos nodos aceptarían la transacción y no bloquearían como de costumbre. En el peor de los casos hipotéticos, un atacante podría inflar la oferta monetaria de Bitcoin copiando sus propias monedas, y cualquier nodo que ejecute las versiones 0.15.0 a 0.16.2 de Bitcoin Core aceptaría estas monedas como válidas.

Técnicamente, el error también podría provocar una bifurcación en la cadena de bloques entre los nodos afectados (Bitcoin Core 0.15.0 a 0.16.2 y sus bifurcaciones) y los nodos no afectados (específicamente Bitcoin Core 0.13.2 y anteriores, y sus bifurcaciones). Sin embargo, esto es poco probable, ya que la última categoría probablemente no tendría suficiente hashrate para crear ni siquiera un bloque en unos pocos días, y mucho menos varios bloques. Por lo tanto, dichos nodos simplemente dejarían de esperar por un bloque válido.

Sin embargo, el error en cuestión podría haber permitido uno de los peores ataques a Bitcoin de la historia... Esto es aleccionador para muchos, ya que un error que podría tener consecuencias tan nefastas permaneció sin ser detectado durante aproximadamente 18 meses.

Ahora las buenas noticias. La primera y más importante buena noticia es que este error nunca fue aprovechado.

La segunda buena noticia es que la probabilidad de que este error pueda ser explotado es extremadamente baja. Esto se debe a que el ataque solo podría ser llevado a cabo por un minero que crea intencionalmente un bloque de ataque, pero no por un minero que lo haga accidentalmente o por un usuario común.

Esto significa que un minero tendría que arriesgarse conscientemente a perder la recompensa del bloque de alrededor de $80,000. Un ataque de este tipo se detectaría con bastante rapidez, ya que todo sucede en una cadena de bloques pública. Muy pronto, los informes de fallos llenarían las salas de chat y los foros. En este punto, se revelaría que el bloque incorrecto en realidad fue causado por un error.

 Como sucedió en 2010 y 2013, cuando los errores en el código causaron que la cadena de bloques se bifurcara, la mayoría de los mineros actualizarían o degradarían el software que estaban usando, rechazando el bloque atacante y continuando minando la rama honesta. Con el tiempo, la rama válida superará al atacante e incluso los nodos vulnerables cambiarán a la rama correcta, dejando al minero atacante sin una recompensa de bloque. Además, un incidente de este tipo reduciría inmediatamente el precio de mercado de la moneda atacada, reduciendo así significativamente la eficacia financiera del ataque en sí.

La tercera buena noticia es que un desarrollador llamado awemany reveló responsablemente el error principalmente a los desarrolladores que trabajan en Bitcoin Core (así como a Bitcoin ABC y Bitcoin Unlimited). Inicialmente se pensó que el error era un error de denegación de servicio (DoS). Pero tras un examen más detenido, Matt Corallo, empleado de Bitcoin Core y Chaincode Labs, descubrió que el mismo error también era una vulnerabilidad de impacto en la red. El error se corrigió al día siguiente y se lanzaron Bitcoin Core 0.16.3 y Bitcoin Core Release Candidate 0.17.0. Mientras tanto, un grupo de contribuyentes de Bitcoin Core que estaban conscientes del problema se comunicaron con actores clave en el ecosistema de Bitcoin y les pidieron que migraran a Bitcoin Core 0.16.3...

La cuarta buena noticia es que la mayoría de los mineros de la red han actualizado el software que utilizan con bastante rapidez, lo que significa que incluso si un atacante intenta explotar el error, no llegará muy lejos. Los mineros honestos superarán rápidamente la cadena de ataque y, en este punto, incluso los nodos no actualizados percibirán la cadena válida como la única correcta. Sin embargo, para proteger sus transacciones, actualmente se recomienda a los usuarios que esperen confirmaciones adicionales antes de aceptar el pago.

Características malvadas... Corregir un error como este puede ser un desafío en una red abierta, descentralizada y siempre activa respaldada por software de código abierto. Por ejemplo, cuando Bitcoin Unlimited solucionó un error crítico a principios de 2017, el mero hecho de corregir la vulnerabilidad en el código lo expuso a posibles adversarios, abriendo la ventana de ataque hasta que la solución se implementó en la mayoría de los nodos de la red.

Para evitar este tipo de ataques, los desarrolladores de Bitcoin Core decidieron no revelar inmediatamente al público la gravedad del error. Inicialmente, al ocultar información completa a los mineros y usuarios, informaron una vulnerabilidad DoS, pero no una vulnerabilidad de impacto en la red. Esperaban que la vulnerabilidad DoS y las fuertes recomendaciones fueran motivo suficiente para que los usuarios actualizaran su software sin atraer la atención de posibles atacantes.

Sin embargo, no todos compartieron este enfoque. A medida que el error fue objeto de escrutinio, más personas comenzaron a darse cuenta por sí mismas de que el error era más grave que una simple vulnerabilidad DoS. Algunos de ellos revelaron todos los detalles de la vulnerabilidad, poniendo a la red Bitcoin en riesgo de ataque. Después de que esta vulnerabilidad fuera publicada en Hacker News (aunque luego fue eliminada), ya no tenía sentido mantenerla en secreto.

Afortunadamente, cuando se filtró información detallada sobre el problema, la mayoría de los principales actores de la minería de Bitcoin ya habían actualizado el software que estaban utilizando, protegiendo la red de ataques, después de lo cual Bitcoin Core publicó información técnica completa sobre el error..

Una gran cantidad de altcoins basadas en el código fuente de Bitcoin aún pueden ser vulnerables, y el hecho de que el problema sea conocido públicamente no elimina la amenaza que suponen. Sin embargo, criptomonedas como Bitcoin ABC publicaron inmediatamente actualizaciones de su software, protegiendo sus redes de posibles ataques.

Basado en materiales de Bitcoin Magazine

Leer también

02018-12-15

¿Qué es más volátil: Bitcoin o Lira?

Junto a los bancos de Estambul, a orillas del Cuerno de Oro, hay un cartel que muestra el tipo de cambio actual de la lira turca: su valor en dólares, euros, libras y bitcoins. La última de las divisas puede parecer fuera de lugar dada la tendencia bajista del mercado. A pesar de esto, el volumen de operaciones en las bolsas de criptomonedas turcas ha aumentado un 37% desde principios de octubre.

, Bitcóin
32018-08-16

Bill Harris: el valor de Bitcoin llega a cero

El ex director ejecutivo de PayPal, Bill Harris, dijo ayer en una entrevista en CNBC que el precio de Bitcoin seguirá cayendo "y eventualmente se acercará a cero". Harris también afirma que no ve ningún valor en este medio de pago.

Bitcóin, Alusiones personales

Últimos artículos de la sección Bitcóin

Último vídeo del canal.