Ну вроде во втором классе средней школы проходят.
1 = 01 = 001 = 0001 = 00000...000001
2 = 02 = 002 = 0002 = 00000...000002
0000000000000000002a3efa7588628ea72576cd1fc7384c2ed4ca9e26d77040 = 2a3efa7588628ea72576cd1fc7384c2ed4ca9e26d77040
00000000000000000016ea0bd16532a3d726a01b60dcf34d0756c5140c76a007 = 16ea0bd16532a3d726a01b60dcf34d0756c5140c76a007
ВНЕЗАПНО:
1 < 2
0001 < 0002
допер
00000000ffff0000000000000000000000000000000000000000000000000000 - это константа, это - максимально возможный target, его нельзя превысить, то есть, хеш блока всегда будет меньше либо равен этому числу.
target - 256-битное число. Числа фиксированной длины принято отображать с нулями перед значащими цифрами. Так принято для наглядности. То есть, у хеша любого блока будет минимум 8 нулей спереди (при отображении в шестнадцатеричном виде!).
При пересчёте сложности target может уменьшаться. Понятно, что при его уменьшении, нулей спереди станет больше. Значит, и у хеша блока число нулей спереди увеличится, он ведь должен быть меньше или равен target.
получается, что нули спереди, это не результат перебора nonce, а просто потому что мы 16-ю систему перевели в 256 и в начале автоматом выставились нули?
то есть смысл nonce, просто перебирать числа, чтобы наше число оказалось меньше числа таргет и чем меньше таргет, тем соответственно больше в начале нулей, так как отображение 256 бит!
бомба, когда понимаешь, так просто кажется, в начале дебри были какие-то