Vulnerabilidad de ataque de distorsión temporal en el protocolo de Bitcoin
El desarrollador de Bitcoin Antoine Poinsot propuso el 26 de marzo de 2025 una nueva propuesta de mejora, con el objetivo de corregir varios errores y debilidades a largo plazo en el protocolo de Bitcoin mediante un hard fork. Esta propuesta, conocida como "Limpieza del Gran Consenso", no solo aborda el problema de las transacciones duplicadas que se había discutido anteriormente, sino que también presenta una solución para una falla más grave: el "ataque de distorsión temporal".
Mecanismo de protección de timestamp de Bitcoin
Antes de discutir el ataque de distorsión temporal, revisemos las reglas de protección contra manipulación del tiempo existentes en Bitcoin:
Tiempo medio pasado (MPT) regla: la marca de tiempo del bloque debe ser posterior al tiempo medio de los 11 bloques anteriores.
Reglas de tiempo de bloque futuro: la marca de tiempo del bloque no debe exceder las 2 horas más que la mediana del tiempo de los pares del nodo. Además, la máxima diferencia permitida entre el tiempo del nodo y el reloj del sistema local es de 90 minutos.
El propósito de estas reglas es prevenir que las marcas de tiempo en los bloques se desvíen demasiado del tiempo real, ya sea hacia el pasado o hacia el futuro. Sin embargo, los ataques de distorsión temporal se llevan a cabo falsificando marcas de tiempo que son mucho anteriores al tiempo real.
El error "casi uno" de Satoshi Nakamoto
El período de ajuste de dificultad de Bitcoin incluye 2016 bloques, que teóricamente equivale a aproximadamente dos semanas. Al calcular el ajuste de dificultad de minería, el protocolo calcula la diferencia de las marcas de tiempo de los dos bloques extremos de estos 2016 bloques. Sin embargo, estos 2016 bloques en realidad solo contienen 2015 intervalos de bloques. El tiempo objetivo correcto debería ser 60 segundos × 10 minutos × 2015 = 1,209,000 segundos, pero el protocolo de Bitcoin utiliza el número 2016, lo que resulta en un cálculo de 1,209,600 segundos. Este pequeño error hace que el tiempo objetivo sea un 0.05% más largo de lo que realmente debería ser.
Aunque este error parece trivial, ha planteado un problema más grave. El cálculo de dificultad se basa en el primer y último bloque dentro de cada ventana de 2016 bloques, y no en la diferencia entre el último bloque de la ventana anterior y el último bloque de la ventana actual. Este método de cálculo crea la posibilidad de ataques de distorsión temporal.
Principio del ataque de distorsión temporal
El ataque de distorsión temporal fue descubierto por primera vez alrededor de 2011. En este tipo de ataque, se supone que la minería está completamente centralizada y los mineros pueden establecer la marca de tiempo a voluntad dentro de los límites permitidos por el protocolo. El atacante configurará la marca de tiempo de la mayoría de los bloques para que esté solo un segundo por delante del bloque anterior, o avanzará un segundo solo cada seis bloques, para avanzar el tiempo lo más lentamente posible.
Esta operación hará que el tiempo de la cadena de bloques se retrase gradualmente respecto al tiempo real, mientras que la dificultad aumenta constantemente. Para fortalecer el efecto del ataque, en el último bloque de cada ciclo de ajuste de dificultad, el atacante configurará la marca de tiempo para que coincida con el tiempo del mundo real. Y el primer bloque del siguiente ciclo se establecerá de nuevo en el pasado, un segundo antes del penúltimo bloque del ciclo anterior.
De esta manera, el atacante puede reducir significativamente la dificultad de la minería después del segundo ciclo de ajuste, creando bloques a una velocidad muy rápida y obteniendo una gran cantidad de Bitcoin.
Viabilidad y desafíos del ataque
A pesar de que este tipo de ataque podría tener graves consecuencias en teoría, la implementación real enfrenta múltiples desafíos:
Se necesita controlar la mayor parte de la potencia de cálculo.
La existencia de mineros honestos aumentará la dificultad del ataque.
Las reglas de MTP y las marcas de tiempo honestas limitarán el grado de retroceso de las marcas de tiempo maliciosas.
Si un minero honesto genera el primer bloque de cualquier ventana de ajuste de dificultad, el ataque de ese ciclo fracasará.
El proceso de ataque es visible para todos y puede activar una reparación de bifurcación suave de emergencia.
Solución
Hay varias formas posibles de reparar esta vulnerabilidad:
Cambiar el algoritmo de ajuste de dificultad, calcular el intervalo de tiempo entre bloques en diferentes ventanas de 2016 y corregir el error de "uno menos".
Cancelar la regla MTP, exigiendo que el tiempo de cada bloque debe avanzar.
Establecer nuevas reglas de límite, que exijan que el tiempo del primer bloque del nuevo ciclo de dificultad no sea anterior a un número específico de minutos del último bloque del ciclo anterior.
La propuesta de "gran consenso de limpieza" de Poinsot adopta un tercer método y sugiere establecer un límite de tiempo de 2 horas. Este plan puede mitigar eficazmente los ataques de distorsión temporal y minimizar el riesgo de generar bloques inválidos de manera accidental.
En general, la comunidad de Bitcoin está respondiendo activamente a esta amenaza potencial, mejorando continuamente el protocolo a través de métodos como las bifurcaciones suaves, para garantizar la seguridad y estabilidad a largo plazo de la red.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
16 me gusta
Recompensa
16
5
Compartir
Comentar
0/400
SatoshiSherpa
· 07-14 18:42
Arreglar bugs realmente es como arreglar bugs.
Ver originalesResponder0
FUD_Whisperer
· 07-14 18:38
¿Se han arreglado los errores? Ya era hora de que se repararan.
Ver originalesResponder0
OldLeekConfession
· 07-14 18:38
¿Este bug lleva arreglándose 4 años?
Ver originalesResponder0
GweiWatcher
· 07-14 18:35
Este bug debería haberse solucionado hace tiempo, realmente no puedo soportarlo más.
Ver originalesResponder0
PumpingCroissant
· 07-14 18:34
No se arreglará hasta 2025, ¡este bug va a tardar mucho en solucionarse!
Bitcoin planea reparar la vulnerabilidad del ataque de distorsión temporal, la propuesta de bifurcación suave está a la vista.
Vulnerabilidad de ataque de distorsión temporal en el protocolo de Bitcoin
El desarrollador de Bitcoin Antoine Poinsot propuso el 26 de marzo de 2025 una nueva propuesta de mejora, con el objetivo de corregir varios errores y debilidades a largo plazo en el protocolo de Bitcoin mediante un hard fork. Esta propuesta, conocida como "Limpieza del Gran Consenso", no solo aborda el problema de las transacciones duplicadas que se había discutido anteriormente, sino que también presenta una solución para una falla más grave: el "ataque de distorsión temporal".
Mecanismo de protección de timestamp de Bitcoin
Antes de discutir el ataque de distorsión temporal, revisemos las reglas de protección contra manipulación del tiempo existentes en Bitcoin:
Tiempo medio pasado (MPT) regla: la marca de tiempo del bloque debe ser posterior al tiempo medio de los 11 bloques anteriores.
Reglas de tiempo de bloque futuro: la marca de tiempo del bloque no debe exceder las 2 horas más que la mediana del tiempo de los pares del nodo. Además, la máxima diferencia permitida entre el tiempo del nodo y el reloj del sistema local es de 90 minutos.
El propósito de estas reglas es prevenir que las marcas de tiempo en los bloques se desvíen demasiado del tiempo real, ya sea hacia el pasado o hacia el futuro. Sin embargo, los ataques de distorsión temporal se llevan a cabo falsificando marcas de tiempo que son mucho anteriores al tiempo real.
El error "casi uno" de Satoshi Nakamoto
El período de ajuste de dificultad de Bitcoin incluye 2016 bloques, que teóricamente equivale a aproximadamente dos semanas. Al calcular el ajuste de dificultad de minería, el protocolo calcula la diferencia de las marcas de tiempo de los dos bloques extremos de estos 2016 bloques. Sin embargo, estos 2016 bloques en realidad solo contienen 2015 intervalos de bloques. El tiempo objetivo correcto debería ser 60 segundos × 10 minutos × 2015 = 1,209,000 segundos, pero el protocolo de Bitcoin utiliza el número 2016, lo que resulta en un cálculo de 1,209,600 segundos. Este pequeño error hace que el tiempo objetivo sea un 0.05% más largo de lo que realmente debería ser.
Aunque este error parece trivial, ha planteado un problema más grave. El cálculo de dificultad se basa en el primer y último bloque dentro de cada ventana de 2016 bloques, y no en la diferencia entre el último bloque de la ventana anterior y el último bloque de la ventana actual. Este método de cálculo crea la posibilidad de ataques de distorsión temporal.
Principio del ataque de distorsión temporal
El ataque de distorsión temporal fue descubierto por primera vez alrededor de 2011. En este tipo de ataque, se supone que la minería está completamente centralizada y los mineros pueden establecer la marca de tiempo a voluntad dentro de los límites permitidos por el protocolo. El atacante configurará la marca de tiempo de la mayoría de los bloques para que esté solo un segundo por delante del bloque anterior, o avanzará un segundo solo cada seis bloques, para avanzar el tiempo lo más lentamente posible.
Esta operación hará que el tiempo de la cadena de bloques se retrase gradualmente respecto al tiempo real, mientras que la dificultad aumenta constantemente. Para fortalecer el efecto del ataque, en el último bloque de cada ciclo de ajuste de dificultad, el atacante configurará la marca de tiempo para que coincida con el tiempo del mundo real. Y el primer bloque del siguiente ciclo se establecerá de nuevo en el pasado, un segundo antes del penúltimo bloque del ciclo anterior.
De esta manera, el atacante puede reducir significativamente la dificultad de la minería después del segundo ciclo de ajuste, creando bloques a una velocidad muy rápida y obteniendo una gran cantidad de Bitcoin.
Viabilidad y desafíos del ataque
A pesar de que este tipo de ataque podría tener graves consecuencias en teoría, la implementación real enfrenta múltiples desafíos:
Solución
Hay varias formas posibles de reparar esta vulnerabilidad:
La propuesta de "gran consenso de limpieza" de Poinsot adopta un tercer método y sugiere establecer un límite de tiempo de 2 horas. Este plan puede mitigar eficazmente los ataques de distorsión temporal y minimizar el riesgo de generar bloques inválidos de manera accidental.
En general, la comunidad de Bitcoin está respondiendo activamente a esta amenaza potencial, mejorando continuamente el protocolo a través de métodos como las bifurcaciones suaves, para garantizar la seguridad y estabilidad a largo plazo de la red.