Análisis de la vulnerabilidad del ataque de distorsión temporal de Bitcoin
El 26 de marzo de 2025, un desarrollador de Bitcoin propuso una nueva propuesta de mejora destinada a reparar múltiples vulnerabilidades y debilidades que han existido durante mucho tiempo en el protocolo de Bitcoin. Esta propuesta de bifurcación suave, conocida como "gran limpieza del 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 vulnerabilidad más grave: el "ataque de distorsión temporal".
Mecanismo de protección de la marca de tiempo del bloque de Bitcoin
Antes de discutir el ataque de distorsión temporal, necesitamos entender las reglas de protección contra la manipulación del tiempo en la actual red de Bitcoin:
Tiempo medio pasado (MPT) regla: la marca de tiempo del bloque debe ser posterior al tiempo medio de los once bloques anteriores.
Reglas del tiempo de bloque en el futuro: la marca de tiempo del bloque no debe adelantarse más de 2 horas a la mediana del tiempo de los nodos pares. Además, la diferencia máxima permitida entre el tiempo del nodo y el reloj del sistema local es de 90 minutos.
Las reglas de MPT evitan que las marcas de tiempo de los bloques sean excesivamente retroactivas, mientras que las reglas de bloques futuros limitan las marcas de tiempo que están excesivamente adelantadas. Es importante notar que no se puede establecer un mecanismo similar a las reglas de bloques futuros para impedir marcas de tiempo pasadas, ya que esto podría afectar el proceso de sincronización de la cadena de bloques inicial. El ataque de distorsión temporal se aprovecha precisamente de la posibilidad de falsificar marcas de tiempo antiguas.
Error en el algoritmo de ajuste de dificultad
El ciclo de ajuste de dificultad de Bitcoin incluye 2016 bloques, que calculados a un tiempo objetivo de creación de bloques de 10 minutos, equivale aproximadamente a dos semanas. Al calcular el ajuste de dificultad de la minería, el protocolo calculará la diferencia de la marca de tiempo entre el primer y el último bloque en la ventana de 2016 bloques relacionada. Esta ventana en realidad contiene 2015 intervalos de bloques (2016 menos 1). Por lo tanto, el tiempo objetivo que se debe utilizar idealmente es 60 segundos × 10 minutos × 2015 intervalos = 1,209,000 segundos.
Sin embargo, el protocolo de Bitcoin utiliza el número 2016 para realizar cálculos: 60 segundos × 10 minutos × 2016 = 1,209,600 segundos. Este es un clásico error de "uno menos", que probablemente se debe a la confusión entre el número de bloques y el número de intervalos entre bloques.
Este error hace que el tiempo objetivo sea un 0.05% más largo de lo que realmente se necesita. En otras palabras, el intervalo de tiempo real para la generación de bloques de Bitcoin no es de 10 minutos, sino de 10 minutos y 0.3 segundos. Aunque este error puede parecer insignificante, 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 en 2011 y se aprovechó de este error en el cálculo de dificultad. En un escenario ideal, asumiendo que la minería está completamente centralizada, los mineros pueden establecer la marca de tiempo arbitrariamente dentro de los límites permitidos por el protocolo. El atacante adoptaría la siguiente estrategia:
Para la mayoría de los bloques, establece la marca de tiempo para que avance solo un segundo respecto al bloque anterior, cumpliendo al mismo tiempo con las reglas de MPT.
Para avanzar el tiempo lo más lentamente posible, los mineros pueden mantener la misma marca de tiempo en seis bloques consecutivos y luego aumentar un segundo en el séptimo bloque, repitiendo este ciclo.
En el último bloque de cada período de ajuste de dificultad, establece la marca de tiempo en el tiempo del mundo real.
La marca de tiempo del primer bloque de la próxima ventana de ajuste de dificultad se ha configurado hacia el pasado, un segundo antes del penúltimo bloque del ciclo anterior.
Este modo de ataque puede hacer que el tiempo de la blockchain se retrase gradualmente respecto al tiempo real, mientras que la dificultad sigue aumentando. Sin embargo, dado que el último bloque de cada ciclo de ajuste de dificultad utiliza una marca de tiempo real, el cálculo de la dificultad se verá significativamente afectado. Al final del segundo ciclo de ajuste después de que comience el ataque, la dificultad se reducirá drásticamente. Esto permite a los atacantes crear bloques a una velocidad extremadamente rápida, potencialmente acuñando una gran cantidad de Bitcoin y obteniendo beneficios de ello.
Viabilidad y desafíos del ataque
A pesar de que este ataque es teóricamente devastador, enfrenta numerosos desafíos en su implementación:
Puede que necesite controlar la mayor parte de la potencia de cálculo de la red.
La existencia de mineros honestos aumentará la dificultad del ataque.
Las reglas MTP y las marcas de tiempo honestas pueden limitar 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 fallará.
El proceso de ataque es visible para todos y puede activar una reparación de bifurcación suave de emergencia.
Soluciones Potenciales
La reparación de esta vulnerabilidad es relativamente sencilla, pero puede requerir cambios en el protocolo de bifurcación suave. Algunas posibles soluciones incluyen:
Modificar el algoritmo de ajuste de dificultad para calcular el intervalo de tiempo entre diferentes ventanas de bloques de 2016, al mismo tiempo que se corrige el error de "uno menos".
Cancelar la regla MTP y cambiarla por el requisito de que el tiempo de cada bloque debe avanzar hacia adelante.
Establecer nuevas reglas de límite, exigiendo que el tiempo del primer bloque del nuevo ciclo de dificultad no sea anterior a un período de tiempo específico del último bloque del ciclo anterior (como 10 minutos o 2 horas).
En la última propuesta de mejora, los desarrolladores tienden a adoptar un límite de tiempo de 2 horas. Este límite representa aproximadamente el 0.6% del tiempo objetivo del ciclo de ajuste de dificultad, lo que puede reducir efectivamente la posibilidad de manipulación de la dificultad.
Independientemente de la solución final adoptada, reparar esta vulnerabilidad fortalecerá aún más la seguridad y la estabilidad de la red Bitcoin, sentando una base más sólida para su desarrollo a largo plazo.
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.
10 me gusta
Recompensa
10
8
Republicar
Compartir
Comentar
0/400
GasFeeNightmare
· 07-21 22:12
Todo dentro también debe esperar a que se terminen los errores.
Ver originalesResponder0
SignatureCollector
· 07-20 01:25
¿Ah, esto significa que tendremos que esperar dos años para arreglar el bug?
Ver originalesResponder0
rekt_but_vibing
· 07-18 22:42
Estilo de trabajo de introducir una posición y luego pagar el billete.
Ver originalesResponder0
DegenApeSurfer
· 07-18 22:39
Este maldito error ha tardado hasta 25 años.
Ver originalesResponder0
SlowLearnerWang
· 07-18 22:39
¡Resulta que Bitcoin también puede atravesar el tiempo y el espacio!
Ver originalesResponder0
AirdropSweaterFan
· 07-18 22:32
Otra vez lo mismo, ¿cuándo estará terminado?
Ver originalesResponder0
SnapshotStriker
· 07-18 22:29
¿Ya han encontrado otro nuevo bug? Va a ser divertido cuando explote.
Ver originalesResponder0
RugResistant
· 07-18 22:18
finalmente alguien detectó esta explotación crítica. he estado analizándolo durante meses... los desarrolladores están dormidos en esto, para ser honesto
Análisis de la vulnerabilidad del ataque de distorsión temporal de Bitcoin: debilidades del protocolo y posibles soluciones de reparación
Análisis de la vulnerabilidad del ataque de distorsión temporal de Bitcoin
El 26 de marzo de 2025, un desarrollador de Bitcoin propuso una nueva propuesta de mejora destinada a reparar múltiples vulnerabilidades y debilidades que han existido durante mucho tiempo en el protocolo de Bitcoin. Esta propuesta de bifurcación suave, conocida como "gran limpieza del 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 vulnerabilidad más grave: el "ataque de distorsión temporal".
Mecanismo de protección de la marca de tiempo del bloque de Bitcoin
Antes de discutir el ataque de distorsión temporal, necesitamos entender las reglas de protección contra la manipulación del tiempo en la actual red de Bitcoin:
Tiempo medio pasado (MPT) regla: la marca de tiempo del bloque debe ser posterior al tiempo medio de los once bloques anteriores.
Reglas del tiempo de bloque en el futuro: la marca de tiempo del bloque no debe adelantarse más de 2 horas a la mediana del tiempo de los nodos pares. Además, la diferencia máxima permitida entre el tiempo del nodo y el reloj del sistema local es de 90 minutos.
Las reglas de MPT evitan que las marcas de tiempo de los bloques sean excesivamente retroactivas, mientras que las reglas de bloques futuros limitan las marcas de tiempo que están excesivamente adelantadas. Es importante notar que no se puede establecer un mecanismo similar a las reglas de bloques futuros para impedir marcas de tiempo pasadas, ya que esto podría afectar el proceso de sincronización de la cadena de bloques inicial. El ataque de distorsión temporal se aprovecha precisamente de la posibilidad de falsificar marcas de tiempo antiguas.
Error en el algoritmo de ajuste de dificultad
El ciclo de ajuste de dificultad de Bitcoin incluye 2016 bloques, que calculados a un tiempo objetivo de creación de bloques de 10 minutos, equivale aproximadamente a dos semanas. Al calcular el ajuste de dificultad de la minería, el protocolo calculará la diferencia de la marca de tiempo entre el primer y el último bloque en la ventana de 2016 bloques relacionada. Esta ventana en realidad contiene 2015 intervalos de bloques (2016 menos 1). Por lo tanto, el tiempo objetivo que se debe utilizar idealmente es 60 segundos × 10 minutos × 2015 intervalos = 1,209,000 segundos.
Sin embargo, el protocolo de Bitcoin utiliza el número 2016 para realizar cálculos: 60 segundos × 10 minutos × 2016 = 1,209,600 segundos. Este es un clásico error de "uno menos", que probablemente se debe a la confusión entre el número de bloques y el número de intervalos entre bloques.
Este error hace que el tiempo objetivo sea un 0.05% más largo de lo que realmente se necesita. En otras palabras, el intervalo de tiempo real para la generación de bloques de Bitcoin no es de 10 minutos, sino de 10 minutos y 0.3 segundos. Aunque este error puede parecer insignificante, 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 en 2011 y se aprovechó de este error en el cálculo de dificultad. En un escenario ideal, asumiendo que la minería está completamente centralizada, los mineros pueden establecer la marca de tiempo arbitrariamente dentro de los límites permitidos por el protocolo. El atacante adoptaría la siguiente estrategia:
Para la mayoría de los bloques, establece la marca de tiempo para que avance solo un segundo respecto al bloque anterior, cumpliendo al mismo tiempo con las reglas de MPT.
Para avanzar el tiempo lo más lentamente posible, los mineros pueden mantener la misma marca de tiempo en seis bloques consecutivos y luego aumentar un segundo en el séptimo bloque, repitiendo este ciclo.
En el último bloque de cada período de ajuste de dificultad, establece la marca de tiempo en el tiempo del mundo real.
La marca de tiempo del primer bloque de la próxima ventana de ajuste de dificultad se ha configurado hacia el pasado, un segundo antes del penúltimo bloque del ciclo anterior.
Este modo de ataque puede hacer que el tiempo de la blockchain se retrase gradualmente respecto al tiempo real, mientras que la dificultad sigue aumentando. Sin embargo, dado que el último bloque de cada ciclo de ajuste de dificultad utiliza una marca de tiempo real, el cálculo de la dificultad se verá significativamente afectado. Al final del segundo ciclo de ajuste después de que comience el ataque, la dificultad se reducirá drásticamente. Esto permite a los atacantes crear bloques a una velocidad extremadamente rápida, potencialmente acuñando una gran cantidad de Bitcoin y obteniendo beneficios de ello.
Viabilidad y desafíos del ataque
A pesar de que este ataque es teóricamente devastador, enfrenta numerosos desafíos en su implementación:
Soluciones Potenciales
La reparación de esta vulnerabilidad es relativamente sencilla, pero puede requerir cambios en el protocolo de bifurcación suave. Algunas posibles soluciones incluyen:
En la última propuesta de mejora, los desarrolladores tienden a adoptar un límite de tiempo de 2 horas. Este límite representa aproximadamente el 0.6% del tiempo objetivo del ciclo de ajuste de dificultad, lo que puede reducir efectivamente la posibilidad de manipulación de la dificultad.
Independientemente de la solución final adoptada, reparar esta vulnerabilidad fortalecerá aún más la seguridad y la estabilidad de la red Bitcoin, sentando una base más sólida para su desarrollo a largo plazo.