то есть всегда в начале нули? получается ближайшее значение к таргет, это значение с нулями?
Когда майнился самый первый блок Bitcoin, его сложность была равна 1.
Этой сложности соответствует:
target = 00000000ffff0000000000000000000000000000000000000000000000000000
00000000ffff0000000000000000000000000000000000000000000000000000 - это константа, это - максимально возможный target, его нельзя превысить, то есть, хеш блока всегда будет меньше либо равен этому числу.
target - 256-битное число. Числа фиксированной длины принято отображать с нулями перед значащими цифрами. Так принято для наглядности. То есть, у хеша любого блока будет минимум 8 нулей спереди (при отображении в шестнадцатеричном виде!).
При пересчёте сложности target может уменьшаться. Понятно, что при его уменьшении, нулей спереди станет больше. Значит, и у хеша блока число нулей спереди увеличится, он ведь должен быть меньше или равен target.