Новая цель рассчитывается из T(new_block-1) - T(new_block-2016). Здесь T — время, за которое майнер добыл блок.
Это время для блока задает сам майнер.
Таким образом, майнер может фальсифицировать это время.
Я вижу правило, что на этот раз:
Должно быть строго больше, чем среднее время предыдущих 11 блоков. Полные узлы не будут принимать блоки с заголовками более чем через два часа в будущем в соответствии со своими часами.
Используется ли этот механизм для предотвращения фальсификации времени (таким образом, целевой фальсификации)?
Достаточно ли самого этого механизма? Если да, то как?
В Биткойне среднее прошедшее время (как в вашей цитате) используется для всех операций, где важны часы, что ограничивает влияние любой временной метки майнера. Майнеры могут довольно сильно искажать метку времени своего блока без вреда для сети, некоторые предыдущие оптимизации майнинга включали искажение метки времени вперед, чтобы избежать необходимости выполнять дорогостоящие операции для загрузки нового корня merle.
Есть одно исключение, когда может произойти некоторая неприятная ситуация, а именно ошибка на одну ошибку в расчете окна сложности, что означает, что временная метка одного блока выходит за пределы окна расчета. Это обычно известно как атака искажения времени , но не представляет серьезной угрозы в реальном мире, однако полезно для неправомерного сброса сложности в тестовой сети, если она слишком высока.
Нейт Элдридж
крораф
крораф