225 / 691TARGET

Mining Target

Числовой порог доказательства работы

Mining Target — порог сравнения хеша заголовка. Различай само число, его компактное кодирование nBits и цель, действительно требуемую правилами для данного блока.

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.

DOC · 001Bitcoin Core v29.0 — Proof-of-work checksПервичный источник ↗DOC · 002Bitcoin Developer Reference — Block headers and nBitsДокументация ↗DOC · 003Bitcoin Core v29.0 — Compact arithmeticПервичный источник ↗DOC · 004Bitcoin Core v29.0 — Contextual and block validationПервичный источник ↗
Сначала источники · Не является инвестиционной рекомендацией