Compartir este artículo

Una transacción fraudulenta paraliza a los usuarios ocasionales del software de Bitcoin

Un error cometido por un desarrollador de billetera Bitcoin impidió que las personas reiniciaran su software de cliente Bitcoin esta semana.

Varias versiones del cliente de Bitcoin comenzaron a fallar esta semana, después de que una transacción fraudulenta impidiera a los usuarios reiniciar el software.

Los problemas surgieron por primera vez el lunes por la mañana temprano, hora de EE. UU., con unmensaje en el foro de Bitcoin Talk.

CONTINÚA MÁS ABAJO
No te pierdas otra historia.Suscríbete al boletín de Crypto Daybook Americas hoy. Ver Todos Los Boletines
Acabo de abrir mi portátil, inicié Bitcoin QT y recibí el mensaje «blockchain corrupta». Hice clic en «Aceptar» y ahora aparece «Reindexando bloques - 204 semanas», dijo el usuario. «Además, mis bitcoins no están confirmados. ¿Qué ha pasado? ¿Por qué aparece el mensaje?».

Otros reportaron rápidamente el mismo error en varios equipos con diferentes versiones de Bitcoin-QT, la versión estándar del cliente de Bitcoin con interfaz gráfica de usuario (GUI). Reindexar los bloques con el cliente de Bitcoin no solucionó el problema. El mismo problema afectó a Bitcoind, la versión del cliente sin GUI.

El problema fue el resultado de un error introducido originalmente en la versión 0.8.0 del cliente de Bitcoin , que era primer lanzamientoEn febrero. Esa versión fue un lanzamiento importante que cambió la base de datos utilizada para almacenar la cadena de bloques de Berkeley DB a LevelDB para resolver un problema de seguridad.

“Se trata de un error en nuestro código que detecta inconsistencias en la base de datos LevelDB, introducidas al cambiar al almacenamiento LevelDB en la versión 0.8.0, junto con un error que verifica el número de versión en las transacciones”, explicó Gavin Andresen, desarrollador jefe. “Una transacción con un número de versión incorrecto desencadenó el problema”.

Gregory Maxwell, otro miembro del equipo CORE de desarrolladores, publicó una solución alternativa Para el problema de ayer por la mañana. Explicó a CoinDesk que, desde la versión 0.8.0, el software ha almacenado incorrectamente las transacciones con números de versión negativos en la versión local de la cadena de bloques.

Este comportamiento incorrecto es, en sí mismo, inofensivo y hasta ayer no se había registrado ninguna transacción con una versión negativa.

Sin embargo, el lunes, se liberó dicha transacción y se almacenó en el cliente. Dado que el software aplica una rigurosa comprobación de la consistencia de la base de datos cada vez que se inicia, se negó a iniciarse después de que estas transacciones se incluyeran en la cadena, explicó.

Ni Andresen ni Maxwell afirmaron haber observado ninguna evidencia de interrupción significativa de la red. Andresen señaló que no afecta a los componentes más importantes y críticos de la infraestructura de red, como los pools de minería, los comerciantes o las plataformas de intercambio, ya que suelen KEEP su software de Bitcoin en funcionamiento, generalmente con múltiples nodos.

"Dado que el problema se puede solucionar fácilmente (una vez que se encuentran las instrucciones), sospecho que esto significa que es probable que sea una fuente de frustración mucho mayor que una interrupción real", dijo Maxwell.

Entonces, ¿de dónde provenían las transacciones? Maxwell las rastreó hasta algunas direcciones reutilizadas. Señaló a un desarrollador de billeteras de Bitcoin , cuyo software no inicializaba la versión antes de enviar una transacción. "Es un error difícil de cometer, especialmente en código C", dijo, y agregó que la página de Github de la billetera ahora está fuera de línea. "Quizás la desconectó debido a este error".

El error pudo haber sido simplemente frustrante, pero también demuestra cómo se pueden organizar ataques de red, incluso de forma inadvertida y no maliciosa, simplemente enviando una transacción que confunde al sistema gracias a un error de larga data. En este caso, se trataba simplemente de una transacción mal formada que distorsionaba datos que el cliente de Bitcoin no utilizaba activamente.

"Si el error hubiera estado en algo usado, habría sido un error muy grave que habría generado una bifurcación", dijo Maxwell. Sin embargo, esto requeriría una vulnerabilidad correspondiente en el código.

El equipo de desarrollo CORE está trabajando en una solución. "Una vez que estemos seguros de tener una buena solución y de que el problema no pueda desencadenarse de otra manera, lanzaremos la versión 0.8.5", concluyó Andresen.

Danny Bradbury

Danny Bradbury ha sido escritor profesional desde 1989 y ha trabajado como freelance desde 1994. Cubre temas de Tecnología para publicaciones como The Guardian.

Picture of CoinDesk author Danny Bradbury