Каждый блок включает в себя отметку времени, установленного шахтера, добытого блока. Существует правило, что другие узлы отклонить блок, если его метка времени больше, чем на 2 часа в будущем. Это жесткое ограничение: если метка времени в будущем относительно времени узла 2:00:01, узел отклоняет его; если это только 1:59:59 в будущем, узел принимает его.
Что произойдет, если шахтер находит блок и устанавливает метку времени ровно 2 часа в будущем относительно некоторого точного источника времени? Так как часы всех остальных узлов никогда не идеально синхронизированы и распределены где-то вокруг истинного времени, я бы ожидать, что примерно половина узлов (чьи часы немного впереди истинного времени) принять блок, в то время как другая половина будет отвергать и забудь это. Половина шахтеров будет принимать блок и начать строить новый блок поверх него (с половиной исходного хэша мощности), а другая половина будет продолжать работать на предыдущем этапе. У нас есть blockchain вилка, вызванное проступок только одного узла. Один из двух вилок, в конечном счете победить, но, перед тем, трансакционные подтверждения могут быть отложены. Разве я что-то не так?
Я думаю, что при проектировании распределенной системы на основе консенсуса, такие как Bitcoin, нужно быть осторожным принятия решения в зависимости от времени узла. Время Узел отличается на разных узлах, и это является источником разногласий, которые потенциально разрушает консенсус. Надеюсь, только временно.