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.