Одноразовый номер (nonce)
Одноразовый номер относится к числу или значению, которое может быть использовано только один раз. Одноразовые номера часто используются в протоколах аутентификации и криптографических хэш-функциях. В контексте технологии блокчейн одноразовый номер относится к псевдослучайному числу, которое используется в качестве счетчика в процессе майнинга.
Например, майнерам биткойнов необходимо попытаться угадать действительный одноразовый номер, поскольку они выполняют несколько попыток вычислить хэш блока, который соответствует определенным требованиям (т. Е. Начинается с определенного количества нулей). Соревнуясь за добычу нового блока, первый майнер, который найдет одноразовый номер, в результате которого будет получен действительный хэш блока, получает право добавить следующий блок в блокчейн - и получает за это вознаграждение.
Другими словами, процесс майнинга состоит из майнеров, выполняющих множество хэш-функций со множеством различных одноразовых значений, пока не будет получен действительный результат. Если результат хэширования майнера падает ниже заданного порога, блок считается действительным и добавляется в блокчейн. Если выходные данные недействительны, майнер продолжает попытки с другими одноразовыми значениями. Когда новый блок успешно добыт и валидирован, процесс начинается заново.
В биткойнах — и в большинстве систем подтверждения работы — одноразовый номер - это просто случайное число, которое майнеры используют для повторения результатов своих вычислений хэша. Майнеры используют метод проб и ошибок, при котором каждое вычисление принимает новое одноразовое значение. Они делают это потому, что вероятность точного угадывания действительного одноразового номера близка к нулю.
Среднее количество попыток хэширования автоматически корректируется протоколом, чтобы гарантировать, что каждый новый блок генерируется в среднем каждые 10 минут. Этот процесс известен как корректировка сложности и определяет порог майнинга (то есть, со сколькими нулями должен начинаться хэш блока, чтобы считаться действительным). Сложность майнинга нового блока связана с объемом мощности хэширования (hashrate), выделенной на блокчейн-систему. Чем больше мощности хэширования выделено для сети, тем выше будет порог, а это означает, что для того, чтобы быть конкурентоспособным и успешным майнером, потребуется больше вычислительной мощности. Напротив, если майнеры решат прекратить майнинг, сложность будет скорректирована, а пороговое значение снизится, поэтому для майнинга потребуется меньше мощности хэширования, но протокол гарантирует, что генерация блока будет выполняться по 10-минутному графику, независимо от этого.