Какие значения хэшируются в алгоритме SHA-256 и какой будет следующая итерация, пока не будет найден возможный заголовок?

Я много читал о майнинге и программном обеспечении, связанном с майнингом, но я не могу полностью понять специфику того, что хешируется вместе. Пока я чувствую, что текущий заголовок блока и одноразовый номер хэшируются вместе в надежде найти хеш, который меньше текущей цели, если это так, вы получите 25 BTC. Вот где я запутался, судя по псевдокоду https://bitcoin.stackexchange.com/a/3047 . Единственное значение, которое изменяется, — это одноразовый номер, и это фиксированный возможный шестнадцатеричный/целочисленный пример: от 0 до 0xFFFFFFFF.

Как получается, что сложность может возрасти, если есть конечное число попыток изменить одноразовый номер?

Я прав насчет хэширования заголовка блока с одноразовым номером?

Я сослался на это https://en.bitcoin.it/wiki/Proof_of_work , и это имеет смысл ... за исключением того факта, что я все еще чувствую, что одноразовый номер - это единственное значение, которое изменяется.

Может быть, 32-битный одноразовый номер дает гораздо больше возможностей, которые я могу понять, и на самом деле делается хеширование всех возможных значений одноразового номера.

Спасибо!

Ответы (1)

Когда диапазон одноразовых номеров исчерпан, майнеры изменяют поле extraNonce транзакции генерации. Это изменяет корень Merkle в заголовке и позволяет попробовать новый диапазон одноразовых номеров.

Поскольку корень Меркла составляет 256 бит, это можно повторять бесконечно.

Разве транзакции в блоке тоже не меняют хэш? Итак, всякий раз, когда вы добавляете другую транзакцию, не могли бы вы просто начать с 0 с одноразовым номером?
@Murch: Конечно. Но получение новой транзакции, как правило, происходит реже, чем исчерпание диапазона одноразовых номеров.