Mining Target — неотрицательный числовой порог для хеша заголовка при проверке доказательства работы. Допустимая сетевая цель должна быть положительной и разрешённой правилами; хеш не должен её превышать. Более низкая цель усложняет поиск.
Bitcoin Core v29.0 при проверке работы отвергает хеш больше выведенной цели. Поэтому условие — hash ≤ target, а не только строго меньше. Сравнивается числовой хеш всего заголовка, не одно nonce. [Bitcoin Core v29.0 — Proof-of-work checks]
Хеши с разными значениями могут иметь одинаковое число начальных нулей. Важны и остальные цифры, и числовое значение относительно цели. Нули иллюстрируют редкость, но не заменяют полного сравнения hash ≤ target. [Bitcoin Core v29.0 — Proof-of-work checks]
Поле nBits содержит 32 бита, а цель интерпретируется в 256-битном пространстве. Кодирование включает экспоненту и коэффициент со знаковым битом. Например, 0x04123456 декодируется в 0x12345600; это иллюстрация формата, не текущая требуемая цель сети. [Bitcoin Core v29.0 — Compact arithmetic]
В 80-байтном заголовке nBits сериализуется четырьмя байтами little-endian. Числу 0x1d00ffff соответствует ff ff 00 1d. Не путай порядок байтов при чтении данных с порядком цифр отображаемого числа. [Bitcoin Developer Reference — Block headers and nBits]
DeriveTarget в Bitcoin Core v29.0 отвергает отрицательные цели, ноль, переполнение и значения выше powLimit данной сети. Произвольно увеличить nBits недостаточно. Успешная распаковка компактной записи не доказывает допустимость цели. [Bitcoin Core v29.0 — Proof-of-work checks]
Контекстная проверка сравнивает nBits с GetNextWorkRequired для предыдущего блока и правил сети. Несовпадение даёт bad-diffbits. Даже хеш ниже самостоятельно выбранной более лёгкой цели не оправдывает неверное nBits в заголовке. [Bitcoin Core v29.0 — Contextual and block validation]
Для модели равномерного 256-битного хеша и допустимой цели T вероятность на попытку равна p = (T + 1) / 2^256: принимаются значения от нуля до T включительно. Это вывод из правила сравнения; сама цель не определяет хешрейт или точное время следующего блока. [Bitcoin Core v29.0 — Proof-of-work checks]
Кроме заголовка, Bitcoin Core проверяет корень транзакций, coinbase, ограничения блока и действительность транзакций. Соблюдать правильную цель необходимо, но это не заменяет остальных проверок. Низкий хеш не исправляет недействительное содержимое блока. [Bitcoin Core v29.0 — Contextual and block validation]
Для полной картины прочитайте эту статью вместе с Share Difficulty, Proof of Work, Nonce, Заголовок блока. На эту статью также ссылаются ASIC Miner, Nonce, Mining Share, Share Difficulty.