Что такое Nonce?
Nonce это число, которое используется один раз чтобы сделать криптографическую попытку уникальной. В майнинге по образцу Биткоина это одноразовое значение, которое майнеры меняют пока хеш блока не будет соответствовать правилам. Думайте об этом как о многократном вращении циферблата замка пока он не щелкнет.
Nonce всегда случайный. Не совсем. Ему просто нужно быть уникальным для этой попытки, поэтому майнеры часто перебирают значения по порядку, а не берут их из генератора случайных чисел.
Как работает Nonce
Вот краткая последовательность действий при майнинге. Представьте майнера за клавиатурой с чашкой кофе, который на скорости машины перебирает значения.
- Шаг 1: Майнер собирает транзакции и готовит the заголовок блока.
- Шаг 2: Они пробуют значение Nonce, хешируют заголовок, затем проверяют соответствует ли результат цели, установленной уровнем сложности сети.
- Шаг 3: Если неудачно, они меняют значение и пробуют снова. Повторяют. Много раз.
- Шаг 4: Когда это наконец срабатывает, майнер рассылает блок, и любой может проверить хешированием того же заголовка плюс включенные данные блока.
- Шаг 5: Следующий блок, новый поиск. Та же игра, новый раунд.
Да, вот и всё.
Зачем нужен Nonce
В чём выгода для вас?
- Польза: Это делает доказательство работы проверяемым кем угодно, что поддерживает честность создания блоков.
- Нюанс: В цепочках с учётными записями счётчик транзакций, также называемый nonce, помогает предотвратить атаки повтора и манипуляции с порядком.
- Где встречается: Вы увидите его в обозревателях блоков, интерфейсах кошельков, панелях майнинга и инструментах для разработчиков.
Смотрите обозреватель блоков? Проверьте, является ли это майнинговым Nonce в блоке или счётчиком транзакций для аккаунта. То же слово, разная роль.
Основные характеристики Nonce
Главные моменты, которые вас заинтересуют:
- Уникальность: Используется один раз для конкретной криптографической попытки и больше в том месте не повторяется.
- Изменяемость: В майнинге это параметр который майнеры меняют в поиске валидного хеша.
- Проверяемость: Любой может повторно вычислить хеш чтобы подтвердить утверждение, доверие не требуется.
- Ограниченность: В Биткоине поле имеет 32 бита, поэтому майнеры также меняют другие поля когда значения исчерпываются.
Варианты
Одно имя, несколько вариантов которые стоит знать:
- Майнинг: Значение внутри заголовка блока для поиска доказательства работы.
- Дополнительный: Дополнительный nonce в coinbase транзакции чтобы расширить пространство поиска.
- Аккаунт: Счётчик транзакций в цепочках типа Ethereum который предотвращает дубликаты и обеспечивает порядок.
- Подпись: Секретное случайное значение при ECDSA подписании которое никогда не должно повторяться иначе ключи могут быть скомпрометированы.
Это не пароль. Оно публикуется вместе с блоком или транзакцией, и его задача сделать вычисление уникальным и проверяемым.
Пример
Майнер перебирает значения в заголовке миллиарды раз пока одно из них не заставит хеш начать с длинной серии нулей, затем отправляет блок.
Забавный факт
Слово Nonce происходит от выражения на среднеанглийском означающего «для данного случая». Криптографы заимствовали его давным-давно для одноразовых чисел задолго до появления графических процессоров и мемкоинов.
Итог
В двух словах: это одноразовое число которое делает доказательство работы и многие криптоприёмы работоспособными без посредников.
