Перейти к содержимому

Таргет

Таргет — это 256-битное число, задающее верхнюю границу для хеша блока. Чтобы блок был принят сетью, его хеш должен быть численно меньше или равен текущему таргету.

Хеш-функция SHA-256 выдаёт 256-битное число. Теоретически результат может быть любым из огромного количества значений — от нуля до 2^256 - 1. Таргет определяет, какая доля этого пространства считается «выигрышной». Чем меньше таргет, тем меньше подходящих хешей и тем труднее найти валидный блок.

Представьте число от 1 до миллиона. Кто-то говорит вам: «Угадай число меньше 500 000» — это относительно просто, подходит половина всех вариантов. Но если порог снижается до «меньше 100» — задача резко усложняется. Таргет работает по тому же принципу, только пространство значений несоизмеримо больше.

Таргет и сложность — это две стороны одной медали. Сложность — это удобная для человека величина, показывающая, во сколько раз текущий таргет меньше начального (максимально лёгкого) таргета. Формула пересчёта проста: сложность = начальный таргет / текущий таргет. Когда сложность растёт, таргет уменьшается, и наоборот.

В заголовке блока таргет хранится не напрямую, а в компактном 4-байтном представлении, называемом «bits» (или nBits). Это поле кодирует таргет в формате с плавающей мантиссой, позволяя уместить огромное 256-битное число в компактную запись.

Пул отправляет майнеру задание с определённым таргетом. Майнер хеширует заголовок блока с разными значениями nonce и сравнивает каждый полученный хеш с таргетом. Если хеш оказывается численно меньше таргета пула (более мягкого, чем сетевой), результат засчитывается как шара. Если хеш оказывается ниже сетевого таргета — это валидный блок, который будет принят всей сетью Bitcoin.