¿Qué tan estrictas son las reglas de validación de tiempo de Unix Epoch?

Según bitcoin.org , los nodos completos tienen un requisito estricto sobre la desviación del tiempo dentro de ciertos límites.

El tiempo de bloque es una época de Unix cuando el minero comenzó a codificar el encabezado (según el minero). Debe ser estrictamente mayor que la mediana de tiempo de los 11 bloques anteriores. Los nodos completos no aceptarán bloques con encabezados de más de dos horas en el futuro según su reloj.

Sin embargo, si se dan ciertas circunstancias, parece que la cadena de bloques corre el riesgo de rechazar todos los bloques debido a parámetros de validación en conflicto.

Por ejemplo, en el caso de una caída de dificultad severa. La dificultad en bitcoin se revaloriza cada 2016 bloques . Si la dificultad cae lo suficientemente drástica, podrían pasar horas o días hasta que se encuentre el siguiente bloque válido, ya que la red está operando con una capacidad de minería reducida a un nivel de dificultad destinado a ser mucho mayor. Si el siguiente bloque se extrae más de dos horas después del bloque actual, ¿no detendría esto la cadena de bloques? ¿Qué pasaría en este escenario dado?

¿Qué tan estrictas son las reglas de validación de tiempo?

Respuestas (2)

¿Qué tan estrictas son las reglas de validación de tiempo?

Muy.

Si el siguiente bloque se extrae más de 2 horas después del bloque actual, ¿no detendría esto la cadena de bloques?

No.

No rompe la regla "Los nodos completos no aceptarán bloques con encabezados de más de dos horas en el futuro según su reloj ".

Tampoco incumple la regla "Debe ser estrictamente mayor que la mediana de tiempo de los 11 bloques anteriores".


Espero que lo anterior quede claro, pero en caso de que no lo sea, hagamos un ejemplo:

Evento Tiempo
Último bloque extraído 08:00
Tiempo medio de los últimos 11 bloques 07:00
Hora actual en mi reloj 11:00
Tiempo en bloque llegando ahora 12:59
Regla Resultado
(12:59 - 11:00) < 2 DE ACUERDO
12:59 > 07:00 DE ACUERDO

Así que no hay problema, aunque haya habido un intervalo de tres horas en lugar de 10 minutos y aunque el bloque tenga una marca de tiempo que creo que es de casi dos horas en el futuro.

Tenga en cuenta que estas reglas particulares no se rompen si hay una gran brecha (por ejemplo, 50 años) entre bloques. En teoría, todo continuaría (aunque parece probable que haya otros problemas que lo impidan)

Bastante justo, los mineros no están restringidos a dedicar un tiempo determinado
@arshbot Eso es cierto, pero creo que no es relevante. Incluso si las marcas de tiempo en los bloques son siempre exactamente iguales a la hora en que se produce el bloque, no hay problema.

Creo que tienes una idea equivocada sobre lo que significa esta cláusula:

Los nodos completos no aceptarán bloques con encabezados de más de dos horas en el futuro según su reloj.

Parece estar interpretando esto como, si un nuevo bloque es más de dos horas más tarde que el bloque anterior, entonces no lo acepte. Eso es incorrecto. Esta cláusula no se trata de intervalos de tiempo entre bloques.

El significado real de esta cláusula es que, si un nuevo bloque dice que es literalmente del futuro, de un tiempo que el universo aún no ha llegado, entonces no lo acepte. Esta cláusula trata sobre la prevención de la manipulación de la cadena de bloques a través de marcas de tiempo falsificadas.

Esta comparación es entre la marca de tiempo del bloque nuevo y su reloj, no la marca de tiempo del bloque nuevo y la marca de tiempo del bloque anterior.