Глоссарий · Майнинг

Nonce

Автор: команда CloudMineCryptoОбновлено Также называется числом, используемым один раз

Определение

Nonce — это 32-битное число в заголовке блока Bitcoin, которое майнеры меняют при каждой попытке найти подходящий блок. Каждое новое значение nonce даёт совершенно другой хеш, поэтому майнеры подбирают значения nonce наугад.

Часть глоссария по майнингу Bitcoin: 88 терминов простыми словами.

Все возможные значения nonce

4,294,967,296

возможных значений, от 0 до 4 294 967 295 (32 бита)

Вся сеть Bitcoin перебирает их примерно 221 млрд раз в секунду.Текущая оценка по хешрейту сети, обновляется каждый час.

Как майнеры используют nonce?

Майнер собирает заголовок блока, задаёт nonce значение 0 и вычисляет хеш. Если хеш выше целевого значения, он задаёт nonce значение 1 и пробует снова, затем 2 и так далее. Слово nonce означает «число, используемое один раз».

Одно значение nonce не лучше другого. Хеш нельзя предсказать, поэтому у каждой попытки одинаковый ничтожный шанс на успех. Благодаря этому майнинг честный: чем больше попыток в секунду, тем выше шансы. Ничто другое не помогает.

Что происходит, когда значения nonce заканчиваются?

Четыре байта вмещают всего 4 294 967 296 значений. Современная машина перебирает их все гораздо быстрее чем за тысячную долю секунды. Поэтому майнеры меняют другие данные в блоке и начинают перебор nonce заново.

Цикл майнера

  1. 01

    Перебрать каждый nonce

    0, 1, 2 и так далее вплоть до 4 294 967 295. Это все значения, которые могут вместить 4 байт.

  2. 02

    Быстро заканчиваются

    Одно устройство на 100 ТХ/с перебирает их все примерно за 43 миллионных долей секунды.

  3. 03

    Изменить дополнительный nonce

    Майнер редактирует свободное поле в собственной транзакции вознаграждения (coinbase).

  4. 04

    Новый корень Меркла

    Эта транзакция изменилась, поэтому корень Меркла меняется, и каждый nonce снова даёт новые хеши.

Затем снова к шагу 1. Майнеры также могут немного сдвинуть отметку времени, что тоже меняет заголовок.

Обычно используют дополнительный nonce — запасное поле в coinbase-транзакции. Его изменение меняет корень дерева Меркла и даёт совершенно новый набор заголовков для перебора. Майнеры также могут немного менять временную метку и, на многих современных машинах, несколько бит поля версии.

Источники

  1. Nonce · Bitcoin Wiki
  2. Алгоритм хеширования блока · Bitcoin Wiki
  3. Справочник по блокчейну: заголовки, деревья Меркла, целевое значение · документация для разработчиков Bitcoin

Актуальные данные на этой странице поступают из API CloudMineCrypto и общедоступных данных блокчейна, регулярно обновляются и отмечены в соответствующих местах. Только в образовательных целях, не финансовая рекомендация.

А теперь посмотри, как работает майнинг.

Забери бесплатный план майнинга на 8 часов в приложении CloudMineCrypto и смотри, как растёт баланс BTC на основе актуальных данных сети. Выводи средства на свой кошелёк, в том числе через Lightning. Вознаграждения являются оценочными.