BTC/USD — —ETH/USD — —BNB/USD — —SOL/USD — —XRP/USD — —BTC/USD — —ETH/USD — —BNB/USD — —SOL/USD — —XRP/USD — —
Minería

Ravencoin ya reescribió los tres días que la prensa da por amenaza, y los volvió a minar con la dificultad un 78% más baja

El bloque 4.487.776 de Ravencoin existe dos veces. La primera versión se minó el 7 de agosto a las 15:44:01 UTC y es el primer bloque forjado con el fallo que ha puesto la red patas arriba.…

FretchCop 9 min de lectura
Ravencoin ya reescribió los tres días que la prensa da por amenaza, y los volvió a minar con la dificultad un 78% más baja

El bloque 4.487.776 de Ravencoin existe dos veces. La primera versión se minó el 7 de agosto a las 15:44:01 UTC y es el primer bloque forjado con el fallo que ha puesto la red patas arriba. La segunda, la que hoy sirve el explorador oficial del proyecto, lleva fecha del 10 de agosto a las 14:09:42 UTC. Entre ese bloque y su padre, el 4.487.775, hay 70 horas, 25 minutos y 45 segundos en una cadena que apunta a un bloque por minuto.

Ese hueco es la prueba de que el retroceso del que hablan las crónicas de ayer en condicional ya está escrito. La cadena que consultan hoy los nodos, los exploradores y las casas de cambio no contiene los tres días que se minaron después del primer bloque falso: los borró y los volvió a minar. Y lo hizo, según los datos de dificultad de esos mismos bloques, con la red un 78% más floja que cuando escribió la historia que sustituye.

70 h 25 min
Tiempo entre el último bloque válido de Ravencoin y su sustituto en la altura siguiente, en una cadena de bloques de un minuto. Verificado por mí en el blockbook oficial del proyecto.

El campo que nadie comparaba con la realidad

La cabecera de un bloque de Ravencoin carga un campo llamado nHeight, la altura que el bloque dice de sí mismo. Ese número no es decorativo: entra en el cálculo del hash de prueba de trabajo y elige la época del DAG y el periodo de ProgPoW, o sea la parte del algoritmo KAWPOW que obliga a usar memoria de tarjeta gráfica. Nadie comprobaba que ese campo coincidiera con la posición real del bloque en la cadena.

La consecuencia la explica la nota técnica de la versión de emergencia 4.6.1.1-hf1: la función que valida cabeceras se salta la verificación completa de trabajo para los bloques que estén por debajo del último punto de control, y como la decisión se toma sobre la altura que el propio bloque declara, cualquier bloque podía colarse por ese atajo desde cualquier posición. Los bloques hechos así no llevan ni un vatio de ProgPoW: producirlos cuesta una búsqueda de hash corriente, sin paso intensivo en memoria.

El mismo campo tiró abajo la red por otros dos sitios. Los nodos que se reiniciaban recalculaban el hash con la altura equivocada, no verificaban la prueba de trabajo y abortaban la carga entera con un Error loading block database que era un diagnóstico falso, porque los datos en disco estaban intactos. Y los nodos que se quedaban atrás no podían volver a sincronizar, porque las cabeceras servidas no encajaban con las que apuntaban a ellas y el nodo receptor acababa expulsando al par. Con bloques afectados aproximadamente cada veinte, ningún lote de cabeceras pasaba. La medición que publica la pool sobre la cadena atacada: 96 bloques forjados de 2.089 entre las alturas 4.489.527 y 4.491.615, un 4,6%.

Reescribir salió más barato que escribir

Aquí está el detalle que no ha contado nadie. El algoritmo de dificultad de Ravencoin reacciona al tiempo entre bloques, y el salto de 70 horas lo dejó descolocado. El último bloque bueno se minó con dificultad 11.538,92. El siguiente de la cadena nueva salió a 3.910,84 y doscientos bloques más allá, en la altura 4.488.000, la dificultad tocaba 2.528,78: un 78% menos que la de la historia que estaba reemplazando. Recuperó las once mil unidades sobre la altura 4.490.000 y el bloque más reciente que he leído, el 4.490.310, del 12 de agosto a las 04:36:23 UTC, está en 10.828,84.

Es decir, la cadena limpia se construyó a precio de saldo durante las primeras horas, exactamente lo que hizo el atacante por otra vía. Lleva 2.535 bloques desde el sustituto, a 54,6 segundos de media, más rápido que su objetivo de un minuto, y aun así sigue por debajo en altura: la rama descartada estaba en 4.491.615 el 10 de agosto al mediodía, 1.305 bloques por encima del punto donde está hoy la cadena buena. La altura, eso sí, no es trabajo: uno de cada veintiún bloques de la rama abandonada era gratis.

Hora UTCQué pasóAltura
7-ago 15:43:57Último bloque sin tocar, hoy punto de control4.487.775
7-ago 15:44:01Primer bloque forjado con el fallo de nHeight4.487.776
10-ago 12:04:362Miners publica el parche de emergencia—
10-ago 14:09:42Se mina el sustituto del primer bloque falso4.487.776
10-ago 16:02Upbit corta ingresos y retiradas de RVN—
12-ago 04:36:23Punta de la cadena limpia que leo yo4.490.310

Manda la pool, y el código también

Lo que sostiene la cadena buena no es un lanzamiento del proyecto. El repositorio oficial de Ravencoin no recibe un commit en su rama principal desde el 10 de mayo de 2024, hace 823 días. Su página de descargas, actualizada con una nota firmada por Hans Schmidt el 10 de agosto, reconoce que no existe ninguna versión que arregle los dos fallos abiertos y remata con una recomendación que vale su peso en oro:

Actualmente la mejor opción es ejecutar el código de 2-miners hasta que se publique un parche combinado.

El proyecto manda a sus usuarios a los binarios de una pool de minería, y esos binarios existen solo para Linux x86_64. El paquete de la versión de emergencia acumula 70 descargas y el de la 4.8.0 que la sustituye, publicada ayer a las 08:16 UTC, otras 34. Ciento cuatro descargas para el software del que depende que la cadena no vuelva a bifurcarse, frente a las 1.959 del instalador de Windows de la versión 4.7.0 oficial, que no toca este fallo. En hachazo, la pool que lidera declara 340,83 GH/s sobre 764,87 GH/s de red en su propia API, un 44,6% en una sola casa.

Y hay un segundo fallo esperando turno. El mismo aviso oficial describe un desbordamiento en la transferencia de activos que permite a quien tenga una unidad de un activo fabricarse 2^64 menos una copias para sí mismo. El parche existe desde junio, pero su activación exige la adopción del 70% de los mineros y esa adopción, dice el texto, no ha llegado.

La cadena nueva está casi vacía

Medí lo que circula por la historia recién escrita. En una muestra de veinte bloques de la cadena posterior al retroceso hay 23 transacciones, de las que solo tres no son la recompensa del minero. En una muestra equivalente de veinte bloques anteriores al 7 de agosto había 30. La actividad real ha caído un 90% porque nadie puede mover nada: las casas de cambio cerraron el grifo y los nodos rezagados no logran sincronizar.

Upbit lo hizo en dos pasos que constan en su tablón. Primero suspendió ingresos y retiradas por «problema de red» el 10 de agosto a las 16:02 UTC. Al día siguiente designó RVN valor de inversión con advertencia en sus tres mercados, won, bitcoin y tether, citando el artículo del reglamento coreano de protección del usuario que cubre los incidentes de seguridad en el libro distribuido cuya causa no se ha esclarecido ni sanado. La revisión termina la semana del 7 al 11 de septiembre y puede acabar en cierre de mercado; mientras dure, los ingresos se devuelven. Bitvavo suspendió por su cuenta. El explorador de RVN de Zelcore, por si faltaba una pista del estado del parque de nodos, responde hoy con la conexión rechazada a su propio RPC.

La otra cara: trece mil dólares de historia

Puesto en dinero, el desastre es minúsculo. Los 3.840 bloques que se tiraron a la basura pagaban 1.250 RVN cada uno, según la recompensa que leo en la punta de la cadena. Son 4,8 millones de RVN, unos 13.340 dólares al precio de hoy, y RavenMiner ha dicho que cubre de su bolsillo el descuadre de sus mineros. Frente al precedente clásico, el retroceso de 3.693 bloques que sufrió Ethereum Classic el 1 de agosto de 2020, donde el atacante se llevó más de 800.000 ETC valorados en 5,6 millones de dólares, aquí no hay por ahora un robo documentado. Y el propio Ravencoin ya vivió algo peor en 2020, cuando un fallo permitió acuñar unos 31 millones de RVN de más.

Se puede defender lo hecho. Seguir la rama atacada era aceptar bloques sin trabajo, así que reescribir es la salida honesta, no un capricho; el punto de control en 4.487.775 congela la historia por debajo, que es centralizador pero es la misma herramienta que Bitcoin llevó cosida años en su código; y una pool que arregla lo que el proyecto no arregla es el incentivo funcionando, no fallando. El problema no es el retroceso, es lo que revela: una cadena de ocho años cuyo desarrollo está parado, cuya defensa depende de dos pools y cuyo parche viaja en un tar.gz con setenta descargas. La discusión sobre quién decide en las cadenas nacidas del código de Bitcoin lleva días abierta también en la casa madre, entre la cadena minoritaria que se separó por BIP-110 y el relevo forzado de un editor de BIP. La diferencia es que allí se discute un proceso y aquí ya se han borrado tres días.

El mercado lo ha leído sin matices. RVN cotiza a 0,00277978 dólares, un 21,6% menos en 24 horas, con capitalización de 45,6 millones y 10,1 millones de volumen, o sea el 22% de su propio tamaño cambiando de manos. Esta madrugada, a las 02:07 UTC, marcó mínimo histórico en 0,00270527. Está un 99,03% por debajo de su máximo de febrero de 2021, y la caída de ayer se comió decenas de millones de capitalización en unas horas.

-78%
Dificultad al reescribir
4,6%
Bloques forjados en la rama atacada
104
Descargas del parche que sostiene la cadena
-90%
Transacciones reales por bloque
Lo que viene después
  • Si la rama descartada sigue creciendo. Mientras alguien la mine y algún explorador la sirva, hay dos historias vivas y cualquier depósito puede caer en la equivocada.
  • El 7 de septiembre, cuando Upbit cierre su revisión. Un cierre de mercado en el mayor mercado de won le quita a RVN una parte importante de su liquidez.
  • La adopción de la 4.8.0. Sin binarios para Windows y macOS, los operadores pequeños se quedan en versiones que no rechazan bloques forjados.
  • El fallo de desbordamiento de activos, el que multiplica una unidad por 2^64. Sigue pendiente del 70% de los mineros.
  • Si algún exchange reconoce pérdidas por depósitos acreditados en la rama borrada, la vía por la que se materializan los daños en un retroceso.
  • La concentración de hachazo. Con una pool cerca del 45% y dos por encima de la mitad, la decisión de qué historia vale no la toma el consenso, la toman dos operadores.
  • El repositorio oficial. Si el proyecto publica un lanzamiento propio que integre ambos parches, o si la referencia de facto se queda en el fork de la pool.

Basado en: blockbook oficial de Ravencoin y API de la pool 2Miners (lecturas propias), notas de las versiones 4.6.1.1-hf1 y 4.8.0 de 2Miners en GitHub, página de descargas de RavenProject/Ravencoin, tablón de avisos de Upbit, CoinDesk, Decrypt, CoinGecko.

Cripto en este análisis
— — —
USD
Cargando gráfico…
Sentimiento del mercado
datos en vivo
Cargando…
Cargando datos…
Redacción FretchCop
Mercados · Regulación · Seguridad

Cubrimos criptomonedas con datos comprobables: cada cifra relevante lleva enlace a su fuente para que puedas verificarla. No publicamos señales de trading ni recomendaciones de compra, y corregimos cualquier error que nos señales.

Volver arriba