Насколько строги правила проверки времени эпохи Unix?

По данным bitcoin.org , к полным узлам предъявляется жесткое требование по отклонению времени в определенных границах.

Время блока — это время эпохи Unix, когда майнер начал хешировать заголовок (по словам майнера). Должно быть строго больше, чем среднее время предыдущих 11 блоков. Полные узлы не будут принимать блоки с заголовками более чем через два часа в будущем в соответствии со своими часами.

Однако при определенных обстоятельствах блокчейн рискует отклонить все блоки из-за противоречивых параметров проверки.

Например, в случае сильного снижения сложности. Сложность биткойна переоценивается каждые 2016 блоков . Если сложность упадет достаточно резко, могут пройти часы или дни, прежде чем будет найден следующий действительный блок, поскольку сеть работает с уменьшенной мощностью майнинга на уровне сложности, предназначенном для гораздо большего. Если следующий блок будет добыт более чем через два часа после текущего блока, не остановит ли это блокчейн? Что произойдет в данном сценарии?

Насколько строги правила проверки времени?

Ответы (2)

Насколько строги правила проверки времени?

Очень.

Если следующий блок будет добыт более чем через 2 часа после текущего блока, не остановит ли это блокчейн?

Нет.

Это не нарушает правила «Полные узлы не будут принимать блоки с заголовками более чем через два часа в будущем в соответствии с их часами ».

Это также не нарушает правило «должно быть строго больше, чем среднее время предыдущих 11 блоков».


Я надеюсь, что вышеизложенное должно быть ясно, но если это не так, давайте сделаем пример:

Событие Время
Последний добытый блок 08:00
Среднее время последних 11 блоков 07:00
Текущее время на моих часах 11:00
Прибытие времени на блоке 12:59
Правило Результат
(12:59 - 11:00) < 2 ХОРОШО
12:59 > 07:00 ХОРОШО

Так что нет проблем, даже несмотря на то, что вместо 10 минут был трехчасовой разрыв, и хотя блок имеет отметку времени, которая, я думаю, составляет почти два часа в будущем!

Обратите внимание, что эти конкретные правила не нарушаются, если между блоками существует огромный (например, 50 лет) разрыв. Теоретически все будет продолжаться (хотя, вероятно, будут другие проблемы, препятствующие этому)

Справедливо, что майнеры не ограничены в работе в определенное время.
@arshbot Это правда, но я думаю, что это не имеет значения. Даже если метки времени в блоках всегда точно равны времени создания блока, проблем нет.

Я думаю, у вас неправильное представление о том, что означает этот пункт:

Полные узлы не будут принимать блоки с заголовками более чем через два часа в будущем в соответствии со своими часами.

Похоже, вы интерпретируете это так: если новый блок более чем на два часа позже предыдущего, то не принимайте его. Это неправильно. Этот пункт не касается временных промежутков между блоками.

Фактический смысл этого пункта в том, что если новый блок говорит, что он буквально из будущего, из времени, которого еще не достигла вселенная, то не принимайте его. Этот пункт касается предотвращения манипуляций с блокчейном с помощью фальсифицированных меток времени.

Это сравнение между отметкой времени нового блока и вашими часами, а не отметкой времени нового блока и отметкой времени предыдущего блока.