Loading prices...

Nonce

ТехнологииОбновлено 12.08.20261 мин

Число, используемое один раз, которое майнеры подбирают при добыче блока в сетях Proof-of-Work, а также счётчик, предотвращающий повторное использование одной и той же транзакции на аккаунте.

Как это работает

Nonce — число, которое подбирают, чтобы результат вычисления удовлетворил заданному условию. Слово составлено из английского «number used once» — число, используемое один раз.

В майнинге это единственная часть блока, которую майнер может свободно менять. Он подставляет число, считает хеш блока и проверяет, оказался ли результат меньше целевого значения. Не подошло — прибавляет единицу и считает заново.

Именно этот перебор и есть работа в «доказательстве работы». Найти подходящее число можно только слепым перебором, а проверить чужую находку — одной операцией. На этой асимметрии держится вся защита сети.

Масштаб перебора

Поле nonce в биткоине занимает 32 бита. Считаем, на сколько его хватает современному оборудованию.

Всего вариантов в полеоколо 4,3 миллиарда
Скорость одного устройствадо 200 триллионов хешей в секунду
Время на весь перебордоли секунды
Целевое время блока10 минут

Поля давно не хватает: устройство перебирает все четыре миллиарда вариантов быстрее, чем за секунду. Поэтому майнеры меняют и другие части блока — метку времени и служебную транзакцию, — чтобы получить новый набор вариантов для перебора.

Где ещё встречается это слово

  • Счётчик транзакций в EthereumЗдесь nonce означает совсем другое: порядковый номер операции с конкретного адреса. Он не даёт отправить один и тот же перевод дважды.
  • Зависшая транзакцияЕсли операция с меньшим номером не подтверждена, все последующие ждут её. Отсюда приём «заменить транзакцию с тем же номером и большей комиссией».
  • Одноразовые коды в криптографииВ шифровании таким числом гарантируют, что два одинаковых сообщения дадут разный результат.