Tempo (Time)

O timestamp aproximado de criação de um bloco

O campo tempo (time) no cabeçalho do bloco indica a hora aproximada em que um bloco foi criado.

Os mineradores colocam a hora atual no cabeçalho ao construir o bloco candidato. Ele contém um Timestamp Unix (segundos desde 01 de janeiro de 1970), que é o que os programas de computador normalmente usam para armazenar pontos específicos no tempo.

Por exemplo, o bloco gênese contém o timestamp 1231006505, que representa a data 03 de janeiro de 2009, 18:15:05.

Ícone Ferramenta

Unix Time

Converta entre um timestamp Unix (segundos desde 01/01/1970) e uma data legível (UTC).

Ordem dos Blocos

O tempo do bloco influencia a ordem dos blocos?

Os timestamps não influenciam a ordem dos blocos na blockchain. Na verdade, é possível que um bloco tenha um timestamp anterior ao do bloco sobre o qual ele se constrói. Então, embora os timestamps sejam geralmente bastante precisos, às vezes os blocos não estão em ordem "cronológica", e isso é perfeitamente normal.

O timestamp de cada bloco é geralmente bem próximo da hora atual, mas você não deve confiar que ele seja 100% correto. Blocos "fora de ordem" aparecem na blockchain algumas vezes por mês.

Requisitos

Qual é o tempo máximo e mínimo de um bloco?

O timestamp precisa estar dentro de um certo intervalo para ser válido:

Então há alguma flexibilidade: para um bloco recém-minerado, o campo de tempo pode estar entre cerca de −1 e +2 horas do tempo atual e ainda ser válido. Essa flexibilidade permite que um nó tenha uma configuração de hora incorreta e considera a latência na transmissão de blocos pela rede.

Não há justificativa matemática para o intervalo ser entre a mediana dos últimos 11 blocos e +2 horas no futuro. São valores "bons o suficiente" que o Satoshi escolheu ao codificar a primeira versão do bitcoin, e ainda os usamos hoje.

Tempo Ajustado da Rede

O tempo ajustado da rede (network adjusted time) é a sua hora local mais a mediana das diferenças de hora de todos os nós aos quais você está conectado. Por exemplo:

Hora Local = 1685010124
Nós Conectados:
  Nó 1     = 1685010121 (-3 segundos)
  Nó 2     = 1685010122 (-2 segundos)
  Nó 4     = 1685010125 (+1 segundo)
  Nó 7     = 1685010128 (+3600 segundos)
  Diferença Mediana = +1 segundo
Tempo Ajustado da Rede = 1685010125

Usamos o tempo ajustado da rede porque é difícil para computadores em uma rede descentralizada concordarem sobre a hora exata atual. Ele permite que os nós concordem em uma hora entre si, limitando a capacidade de qualquer nó isolado manipular a hora "atual" acordada.

Uso

Para que serve o campo de tempo?

Além de ser um indicador aproximado de quando o bloco foi minerado, o timestamp é usado no recálculo do alvo: os timestamps dos cabeçalhos são usados para calcular se os blocos estão sendo minerados mais rápido ou mais devagar que o esperado em um período de 2016 blocos, e o alvo é ajustado conforme isso.