Tiempo (Time)

La marca de tiempo aproximada de creación de un bloque

El campo tiempo (time) en el encabezado del bloque indica la hora aproximada en que se creó un bloque.

Los mineros colocan la hora actual en el encabezado al construir el bloque candidato. Este contiene un Timestamp Unix (segundos desde el 1 de enero de 1970), que es lo que los programas de computadora suelen usar para almacenar puntos específicos en el tiempo.

Por ejemplo, el bloque génesis contiene el timestamp 1231006505, que representa la fecha 03 de enero de 2009, 18:15:05.

Unix Time

Convierte el número de segundos desde 01/01/1970, 00:00:00 en una fecha.

0d

Orden de los Bloques

¿El tiempo del bloque influye en el orden de los bloques?

Las marcas de tiempo no influyen en el orden de los bloques en la blockchain. De hecho, es posible que un bloque tenga una marca de tiempo anterior a la del bloque sobre el que se construye. Así que, aunque las marcas de tiempo suelen ser bastante precisas, a veces los bloques no están en orden "cronológico", y eso es completamente normal.

La marca de tiempo de cada bloque suele estar muy cerca de la hora actual, pero no debes confiar en que sea 100% exacta. Los bloques "fuera de orden" aparecen en la blockchain varias veces al mes.

Requisitos

¿Cuál es el tiempo máximo y mínimo de un bloque?

La marca de tiempo debe estar dentro de cierto rango para ser válida:

Así que hay algo de flexibilidad: para un bloque recién minado, el campo de tiempo puede estar entre unas −1 y +2 horas respecto a la hora actual y seguir siendo válido. Esa flexibilidad permite que un nodo tenga la hora mal configurada y tiene en cuenta la latencia en la propagación de bloques por la red.

No existe una justificación matemática para que el intervalo sea entre la mediana de los últimos 11 bloques y +2 horas en el futuro. Son valores "lo bastante buenos" que Satoshi eligió al codificar la primera versión de bitcoin, y todavía los usamos hoy.

Tiempo Ajustado de la Red

El tiempo ajustado de la red (network adjusted time) es tu hora local más la mediana de las diferencias horarias de todos los nodos a los que estás conectado. Por ejemplo:

Hora Local = 1685010124
Nodos Conectados:
  Nodo 1   = 1685010121 (-3 segundos)
  Nodo 2   = 1685010122 (-2 segundos)
  Nodo 4   = 1685010125 (+1 segundo)
  Nodo 7   = 1685010128 (+3600 segundos)
  Diferencia Mediana = +1 segundo
Tiempo Ajustado de la Red = 1685010125

Usamos el tiempo ajustado de la red porque es difícil que computadoras en una red descentralizada estén de acuerdo sobre la hora exacta actual. Permite que los nodos se pongan de acuerdo en una hora entre sí, limitando la capacidad de cualquier nodo aislado para manipular la hora "actual" acordada.

Uso

¿Para qué sirve el campo de tiempo?

Además de ser un indicador aproximado de cuándo se minó el bloque, la marca de tiempo tiene dos usos principales:

Reajuste del Objetivo

Las marcas de tiempo de los encabezados de los bloques se usan para calcular si los bloques se están minando más rápido o más lento de lo esperado en un período de 2016 bloques, y el objetivo se ajusta en consecuencia.

Ícono de herramienta Ajuste de Dificultad

Ajuste de dificultad

Calcule el nuevo objetivo a partir del objetivo actual y del tiempo real de minería de un período de 2016 bloques.

0x
0 bytes
Tiempo (segundos)
0d
0d

El período de ajuste de dificultad es de 2016 bloques. En promedio, un bloque se mina cada 600 segundos (10 minutos), así que el tiempo esperado es 2016 × 600 = 1.209.600 segundos.

Razón

El tiempo real dividido por el tiempo esperado. Multiplicamos el objetivo actual por esa razón para obtener el nuevo objetivo.

0x
0x
0 bytes

del encabezado del bloque, y es ese objetivo el que realmente se usa en la minería.>Nota: este valor objetivo se trunca levemente para almacenarse en el campo

Locktime de Transacción

Una transacción puede incluir un locktime específico para impedir que sea minada en un bloque antes de una hora determinada. Para ello, el locktime de la transacción se compara con el campo de tiempo del encabezado del bloque: la transacción solo puede incluirse en un bloque cuya marca de tiempo sea mayor que su locktime.

Notas

Recursos