Купить крипто
Рынки
Спот
ФьючерсыBTC
Сбережения
Центр событий
Хаб наград
Еще
Фестиваль с 0 комиссией
Nonce (одноразовое значение): Что такое nonce?Nonce — это уникальное значение, предназначенное для однократного использования в определенном криптографическом контексте, блокчейне или смарт-контракте.В криптоиндустрии это слово обNonce (одноразовое значение): Что такое nonce?Nonce — это уникальное значение, предназначенное для однократного использования в определенном криптографическом контексте, блокчейне или смарт-контракте.В криптоиндустрии это слово об

Nonce (одноразовое значение)

2026/10/13 16:35
#Intermediate
Humanity
H$0.05444-10.53%
PX
PX$0.0123-5.38%
SPACE ID
ID$0.03595-6.59%
STANDARD
STANDARD$0.3046+42.66%
DeFi
DEFI$0.0001121+4.57%

Что такое nonce?

Nonce — это уникальное значение, предназначенное для однократного использования в определенном криптографическом контексте, блокчейне или смарт-контракте.

В криптоиндустрии это слово обычно понимают как сокращение от «number used once» — «число, используемое один раз».

Nonce может быть простым счетчиком транзакций, полем для майнинга, случайным значением, входными данными для подписи, идентификатором авторизации смарт-контракта или порядковым номером, предотвращающим повторное выполнение действий.

Точное значение зависит от контекста, в котором используется nonce.

В аккаунте Ethereum nonce помогает упорядочивать транзакции и не позволяет выполнить одну и ту же подписанную транзакцию более одного раза.

В заголовке блока Bitcoin nonce — это поле, которое майнеры изменяют в поисках корректного хеша Proof of Work.

В разрешении на использование токенов nonce помогает предотвратить повторное применение одной и той же подписанной авторизации.

При подписании ECDSA nonce может быть секретным значением для каждой подписи. Если генерировать nonce неправильно, это может привести к раскрытию приватного ключа.

Поскольку одно и то же слово используется в разных криптосистемах, важно уточнять, о каком именно nonce идет речь.

Главное общее свойство nonce — уникальность.

Nonce полезен тем, что отличает действие, попытку хеширования, сообщение, транзакцию или подпись от других.

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

Главное о nonce

    • Nonce — это значение, предназначенное для однократного использования в определенном контексте.

    • Аккаунты Ethereum используют nonce для упорядочивания транзакций и защиты от их повторного воспроизведения.

    • Майнеры Bitcoin изменяют nonce в заголовке блока, чтобы найти хеш Proof of Work, соответствующий целевому значению.

    • Смарт-контракты часто используют nonce, чтобы подписанные разрешения, голоса, запросы на получение токенов и метатранзакции нельзя было использовать повторно.

    • В разрешении ERC-2612 используются nonce владельца, чтобы предотвратить повторное применение одной и той же подписи на одобрение использования токенов.

    • Смарт-аккаунты ERC-4337 используют более гибкую модель nonce для сценариев абстракции аккаунтов.

    • EIP-155 добавляет защиту от повторного воспроизведения с помощью ID сети, дополняя nonce транзакции.

    • Для структурированных сообщений EIP-712 все равно нужна проверка nonce на уровне приложения: типизированные данные сами по себе не предотвращают все атаки повторного воспроизведения.

    • Nonce для подписи ECDSA должен быть секретным и уникальным: повторное использование или предсказуемые шаблоны могут раскрыть приватные ключи.

    • Пользователям не следует вручную менять nonce кошелька, если они не понимают, как работают ожидающие транзакции и их замена.

Почему nonce важен в криптовалюте

Nonce важен, потому что блокчейны основаны на подписях, хешах и детерминированных правилах.

Любой, кто увидел корректную цифровую подпись, может скопировать ее в точности.

Транзакцию могут повторно передавать множество узлов.

Смарт-контракт может принять одно и то же подписанное сообщение повторно, если не проверяет, использовалось ли оно раньше.

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

Кошелек может создавать несколько транзакций с одного адреса и должен поддерживать их правильный порядок.

Nonce помогает всем этим системам избегать путаницы, дублирования, повторного воспроизведения и небезопасного повторного использования.

Без nonce криптосистемам было бы сложно отличать новое действие от копии старого.

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

Мост мог бы обработать одно и то же кроссчейн-сообщение дважды.

Транзакцию могли бы повторно воспроизвести в другой сети.

Кошелек для подписания мог бы раскрыть приватный ключ из-за слабого криптографического nonce.

Nonce — небольшое значение, но оно защищает значительные объемы цифровых активов.

Nonce аккаунта Ethereum

Nonce аккаунта Ethereum — это счетчик, связанный с аккаунтом.

В документации Ethereum по аккаунтам указано, что у аккаунта есть поле nonce и что для каждого аккаунта может быть выполнена только одна транзакция с заданным nonce.

Для аккаунта, принадлежащего внешнему владельцу, nonce считает отправленные с него транзакции.

Для аккаунта-контракта nonce связан с контрактами, созданными этим аккаунтом.

Если адрес успешно отправил 25 транзакций, следующая обычная транзакция должна использовать nonce 25.

После ее выполнения следующая транзакция должна использовать nonce 26.

Этот простой счетчик не позволяет выполнить одну транзакцию дважды.

Он также задает порядок транзакций с одного адреса.

Транзакция с nonce 27 обычно не может быть обработана до обработки транзакции с nonce 26.

Поэтому одна застрявшая транзакция может блокировать последующие транзакции с того же кошелька.

Nonce транзакции Ethereum

Nonce транзакции Ethereum входит в данные транзакции, которые подписывает кошелек.

В документации Ethereum по транзакциям nonce описывается как последовательно увеличивающийся счетчик, указывающий номер транзакции аккаунта.

Nonce помогает сформировать уникальный хеш транзакции.

Он также указывает сети место транзакции в последовательности отправителя.

Если у двух ожидающих транзакций одного аккаунта одинаковый nonce, они конкурируют за один и тот же слот.

Выполнена может быть только одна из них.

На этом основан механизм ускорения или отмены транзакции Ethereum.

Пользователь может отправить заменяющую транзакцию с тем же nonce и более высокой комиссией.

Если сеть примет заменяющую транзакцию и включит ее раньше, она использует этот nonce и не позволит выполнить первоначальную транзакцию.

Этот механизм полезен, но может запутать пользователей, которые вручную меняют nonce, не понимая, как устроена очередь ожидающих транзакций.

Nonce для майнинга Bitcoin

Nonce для майнинга Bitcoin отличается от nonce аккаунта Ethereum.

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

Майнеры многократно хешируют данные заголовка блока, изменяя nonce и другие настраиваемые поля.

Цель — найти хеш, который меньше текущего целевого порога или равен ему.

Если майнер проверит все 32-битные значения nonce и не найдет корректный блок, он может изменить время или транзакцию coinbase, что изменит корень Меркла.

Это дает майнеру дополнительные входные данные для хеширования.

Nonce для майнинга не упорядочивает пользовательские транзакции.

Он не защищает кошелек от атаки повторного воспроизведения.

Это переменная для поиска решения Proof of Work.

Поэтому одно и то же слово «nonce» может обозначать совершенно разные вещи в зависимости от блокчейна и контекста.

Nonce в Proof of Work

При майнинге Proof of Work nonce позволяет майнерам создавать множество различных попыток хеширования.

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

Изменение nonce меняет входные данные заголовка блока.

Изменение входных данных меняет хеш.

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

В этом контексте nonce не является секретом.

После нахождения блока nonce становится общедоступным, и любой может проверить хеш.

Безопасность обеспечивается большим объемом работы, необходимым для нахождения корректного хеша, а не сокрытием nonce.

Это отличается от nonce подписи, который обычно должен оставаться секретным.

Nonce для майнинга — общедоступный инструмент поиска решения Proof of Work.

Nonce для защиты от повторного воспроизведения

Защита от повторного воспроизведения — одно из важнейших применений nonce в криптовалюте.

Атака повторного воспроизведения происходит, когда кто-то копирует корректное подписанное действие и отправляет его повторно.

Nonce предотвращает это, делая каждое подписанное действие одноразовым.

После выполнения действия nonce используется, увеличивается или помечается как использованный.

Если кто-то попробует повторно отправить то же подписанное действие, проверка nonce завершится неудачей.

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

Корректная подпись подтверждает, что ключ дал разрешение на определенное действие.

Корректный nonce подтверждает, что в данном контексте это разрешение еще не было использовано.

Для безопасной авторизации в криптосистемах нужны обе проверки.

Защита от повторного воспроизведения превращает скопированную подпись из серьезной угрозы в отклоненный дубликат.

Nonce и ID сети в EIP-155

EIP-155 добавляет еще один уровень защиты от повторного воспроизведения, включая ID сети в подписываемые данные транзакции Ethereum.

В спецификации EIP-155 объясняется, что благодаря этому изменению транзакция работает в одной сети, но не в другой сети с иным ID.

Это важно, поскольку многие совместимые с EVM сети могут использовать похожие форматы адресов и структуру транзакций.

Nonce транзакции не позволяет выполнить одну и ту же транзакцию аккаунта дважды в одной сети.

ID сети помогает предотвратить повторное воспроизведение той же подписанной транзакции в другой сети.

Важны оба механизма.

Транзакция может быть уникальной в одной сети, но все еще представлять опасность, если она действительна в другой сети.

Подписи с учетом сети снижают этот риск.

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

Без нужного домена nonce может оставаться применимым в разных контекстах.

Nonce в типизированных данных EIP-712

EIP-712 — это стандарт подписания типизированных структурированных данных.

В спецификации EIP-712 указано, что стандарт сам по себе не обеспечивает защиту от повторного воспроизведения.

Это значит, что разработчики должны реализовать такую защиту в приложении или смарт-контракте, который проверяет подпись.

Типизированное сообщение может содержать nonce.

Контракт должен проверять этот nonce.

После успешного выполнения контракт также должен пометить nonce как использованный или увеличить его.

Если контракт проверит подпись, но забудет обновить состояние nonce, ту же подпись можно будет использовать повторно.

EIP-712 повышает удобство чтения и обеспечивает разделение доменов, но не заменяет продуманную схему nonce.

Безопасная подпись типизированных данных должна содержать nonce, срок действия, ID сети, проверяющий контракт и точное описание разрешенного действия.

Пользователям следует считать подписи типизированных данных реальными разрешениями, а не безобидными всплывающими окнами для входа.

Nonce в разрешении ERC-2612

Разрешение ERC-2612 позволяет владельцу токенов одобрить их расходование с помощью подписанного сообщения, а не прямой ончейн-транзакции одобрения.

В стандарте ERC-2612 предусмотрена функция nonces, а соответствие nonce определенным разрешениям названо способом защиты от повторного воспроизведения.

После успешного использования разрешения nonce владельца увеличивается.

Это делает ту же подпись на разрешение недействительной при повторном использовании в будущем.

В ERC-2612 также предусмотрен срок действия, по истечении которого подписанное разрешение перестает действовать.

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

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

Без nonce одну и ту же подпись на разрешение можно было бы отправлять неоднократно.

Nonce разрешений — одна из причин, благодаря которым одобрение без комиссии за газ может быть безопасным и практичным.

Они также показывают, почему смарт-контрактам нужна собственная система nonce, помимо обычных nonce транзакций аккаунта.

Nonce в абстракции аккаунтов ERC-4337

При абстракции аккаунтов ERC-4337 используется UserOperation, а не обычная транзакция Ethereum от аккаунта, принадлежащего внешнему владельцу.

В спецификации ERC-4337 nonce UserOperation определен как параметр защиты от повторного воспроизведения.

В спецификации также указано, что подписи должны зависеть от ID сети и адреса EntryPoint, чтобы предотвращать повторное воспроизведение между сетями или разными EntryPoint.

ERC-4337 поддерживает частично абстрагированную модель nonce.

Nonce можно разделить на ключ и последовательность.

Это позволяет смарт-аккаунтам использовать несколько независимых последовательностей nonce.

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

Такая модель гибче простого последовательного счетчика.

Но для разработчиков и пользователей кошельков она также сложнее.

Абстракция аккаунтов делает схемы nonce мощнее, но повышает требования к понятности интерфейсов кошельков.

Последовательности nonce

Последовательность nonce — это независимый порядок значений nonce внутри более крупной системы аккаунта или смарт-аккаунта.

Такие последовательности позволяют параллельно выполнять действия разных категорий.

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

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

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

Преимущество в том, что одно зависшее действие не блокирует все остальные.

Риск заключается в том, что пользователи могут не понимать, для какой последовательности они выдают разрешение.

Разработчикам необходимо обеспечить надежную защиту от повторного воспроизведения для каждой последовательности.

Кошелькам следует объяснять работу таких последовательностей, только когда пользователю действительно нужно это знать.

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

Последовательные nonce

Последовательный nonce — это счетчик, который увеличивается на единицу после каждого корректного действия.

Это наиболее распространенная модель для обычных транзакций аккаунта.

Последовательные nonce легко проверять, поскольку они задают четкий порядок.

Они также не позволяют выполнить две транзакции одного аккаунта с одинаковым nonce.

Недостаток в том, что ожидающая транзакция может блокировать более поздние.

Это может приводить к зависанию транзакций.

Чтобы последующие транзакции могли обрабатываться, пользователю иногда приходится ускорить или отменить предыдущую.

Последовательные nonce надежны, просты и широко используются.

Они менее гибки для систем, в которых множество независимых действий должны выполняться одновременно.

Поэтому в смарт-аккаунтах и системах авторизации иногда применяются другие схемы nonce.

Случайные nonce

Случайный nonce — это уникальное значение, полученное с помощью генератора случайных чисел, а не простого счетчика.

Случайные nonce подходят для действий, которым не требуется строгая очередность.

Смарт-контракт может хранить набор использованных случайных nonce.

После использования подписанной авторизации контракт помечает соответствующий случайный nonce как израсходованный.

Если та же авторизация появится снова, контракт отклонит ее.

Случайные nonce позволяют одновременно создавать много подписанных действий, не блокирующих друг друга.

Их недостатки — требования к хранению данных и качеству генератора случайных чисел.

Контракту может потребоваться хранить множество использованных nonce.

Кошелек или приложение должны избегать повторной генерации одного и того же случайного nonce в одинаковом контексте.

Случайные nonce дают гибкость, но требуют тщательного учета.

Nonce смарт-контракта

Nonce смарт-контракта — это любая система nonce, определенная и хранимая смарт-контрактом.

Это может быть счетчик для каждого пользователя.

Это может быть соответствие использованных идентификаторов сообщений.

Это может быть индекс заявки на получение токенов в аирдропе.

Это может быть состояние голосования по предложению в системе управления.

Это может быть хеш ордера на маркетплейсе.

Это может быть порядковый номер сообщения моста.

Nonce смарт-контрактов нужны, поскольку обычные nonce аккаунтов не защищают все офчейн-подписи и действия на уровне контракта.

Если контракт принимает подпись, он должен определить, использовалась ли она ранее.

Продуманная схема nonce смарт-контракта предотвращает повторное выполнение и при этом сохраняет удобство для пользователя.

Nonce в сообщениях для входа через кошелек

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

Сайт может попросить пользователя подписать сообщение, подтверждающее контроль над адресом кошелька.

Для каждой попытки входа сайт должен создавать новый nonce-запрос.

Подписанное сообщение должно содержать домен, nonce, время выпуска, срок действия и цель запроса.

После успешного входа сервер должен пометить nonce как использованный.

Если злоумышленник украдет старую подпись для входа, использованный nonce должен предотвратить ее повторное применение.

Без нового nonce подпись для входа может превратиться в многоразовый пароль.

Это опасно, поскольку пользователи часто считают подписание сообщений менее серьезным действием, чем транзакции.

Nonce для входа через кошелек — часть безопасности аккаунта.

Хорошая подпись для входа должна быть конкретной, новой, ограниченной по действию и понятной.

Nonce в подписях ECDSA

При подписании ECDSA используется секретное значение для каждого сообщения, которое часто называют nonce или nonce подписи.

Этот тип nonce отличается от nonce транзакции аккаунта.

Он должен быть секретным и уникальным для каждой подписи.

В RFC 6979 описан детерминированный метод формирования подписей DSA и ECDSA, который позволяет не полагаться на генерацию нового случайного значения для каждой подписи.

В стандарте NIST FIPS 186-5 Digital Signature Standard указано, что при создании подписи ECDSA для каждого сообщения используется отдельное секретное число.

Если nonce ECDSA повторно используется или его можно предсказать, злоумышленники могут получить возможность восстановить приватный ключ.

Недавнее исследование риска коллизий nonce ECDSA в реальных операциях с блокчейном показывает, насколько катастрофическими могут быть последствия неправильной генерации nonce.

Это одно из самых серьезных значений nonce в контексте безопасности криптовалют.

Ошибка в nonce аккаунта может привести к сбою или зависанию транзакции.

Ошибка в nonce подписи ECDSA может раскрыть весь кошелек.

Nonce в шифровании

Nonce используется и в некоторых системах шифрования.

В аутентифицированном шифровании nonce помогает получать уникальные результаты шифрования, даже если один и тот же ключ используется для множества сообщений.

В RFC 5116 определен интерфейс аутентифицированного шифрования с ассоциированными данными и рассматриваются алгоритмы AEAD, использующие nonce.

Криптокошельки, зашифрованные резервные копии, системы безопасного обмена сообщениями и программное обеспечение для хранения активов могут использовать nonce шифрования внутри системы.

Эти nonce отличаются от nonce транзакций в блокчейне.

Они применяются для защиты криптографических сообщений.

Во многих схемах шифрования повторное использование nonce с тем же ключом опасно.

Пользователям обычно не нужно управлять такими nonce вручную.

Разработчики и библиотеки кошельков должны правильно обрабатывать их.

В безопасном криптографическом ПО генерация nonce рассматривается как критически важная для безопасности задача.

Nonce и соль

Nonce и соль — связанные, но не одинаковые понятия.

Nonce обычно предназначен для однократного использования в рамках протокола или контекста подписи.

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

В криптовалютных системах соль может использоваться при детерминированном развертывании контрактов или формировании обязательств.

Nonce может использоваться для упорядочивания транзакций или защиты от повторного воспроизведения.

Оба значения помогают обеспечить уникальность.

Разница между ними заключается в роли, которую они выполняют для безопасности.

Соль часто препятствует предварительным вычислениям или обеспечивает уникальность производных значений.

Nonce часто предотвращает повторное использование или обеспечивает актуальность действий протокола.

Разработчикам следует четко называть и описывать эти значения, чтобы избежать ошибок, угрожающих безопасности.

Nonce и хеш транзакции

Nonce — это не хеш транзакции.

Nonce — это входное значение, включенное в транзакцию или сообщение протокола.

Хеш транзакции — это идентификатор, полученный путем хеширования данных подписанной транзакции.

Изменение nonce меняет хеш, поскольку изменяется подписанная транзакция.

Кошелек может использовать nonce еще до того, как транзакция будет включена в блок.

В блокчейн-обозревателе хеш транзакции обычно отображается после ее отправки в сеть или включения в блок.

Nonce указывает сети место транзакции в последовательности отправителя.

Хеш транзакции помогает пользователям найти и проверить запись о транзакции.

Оба значения важны, но выполняют разные функции.

Если их перепутать, разбираться с проблемами транзакций будет сложнее.

Nonce и газ

Nonce — это не газ.

Газ измеряет объем вычислений и стоимость выполнения транзакции.

Nonce определяет порядок или уникальность транзакции.

У транзакции может быть правильный nonce, но недостаточно газа или слишком низкая комиссия.

В транзакции может быть достаточно газа, но неправильный nonce.

Эти проблемы приводят к разным сбоям.

Проблема с газом может привести к сбою выполнения или низкому приоритету включения в блок.

Проблема с nonce может привести к отклонению, замене или задержке транзакции либо к ее блокировке предыдущей ожидающей транзакцией.

Пользователи часто видят оба параметра в расширенных настройках кошелька.

Не следует менять их без необходимости.

Nonce и создание адреса контракта

Nonce также может влиять на адреса контрактов.

В системах на основе Ethereum адрес контракта, созданного с помощью традиционной операции create, вычисляется на основе адреса создателя и его nonce.

Это означает, что один аккаунт может создавать разные адреса контрактов по мере изменения nonce.

Разработчикам важно понимать это при развертывании контрактов, тестировании развертывания и прогнозировании адресов.

Скрипты развертывания могут завершиться с ошибкой, если ожидаемый nonce отличается от фактического nonce аккаунта.

Ожидающая транзакция может изменить порядок развертывания.

Ошибки при ручной установке nonce могут привести к развертыванию контрактов по неожиданным адресам.

При детерминированном развертывании могут использоваться другие механизмы, но при обычном развертывании управление nonce по-прежнему важно.

При серьезном развертывании командам следует использовать контролируемые скрипты и проверять адреса до публикации информации о них.

Неправильный адрес развертывания может запутать пользователей и нарушить работу интеграций.

Nonce и зависшие транзакции

Транзакция часто зависает, если ожидающая транзакция имеет низкую комиссию.

Если в ней используется следующий nonce аккаунта, последующие транзакции могут ждать ее обработки.

Это происходит потому, что при последовательных nonce сначала должны обрабатываться более ранние позиции.

Кошелек может показывать последующие транзакции как ожидающие, даже если комиссии за них высокие.

Причиной может быть более старая транзакция с меньшим nonce.

Часто пользователь может ускорить зависшую транзакцию, заменив ее транзакцией с тем же nonce и более высокой комиссией.

Зависшую транзакцию часто можно отменить, отправив безопасную заменяющую транзакцию с тем же nonce и более высокой комиссией.

Делать это нужно осторожно.

Замена транзакции с неправильным nonce может отменить или заменить действие, которое пользователь хотел выполнить.

Проблемы с nonce — одна из причин, по которым расширенные настройки кошелька могут быть рискованными для новичков.

Nonce и замена транзакций

При замене транзакции для замены ожидающей транзакции используется тот же nonce.

Заменяющая транзакция конкурирует с исходной за один и тот же слот nonce.

Если заменяющая транзакция принята и подтверждена первой, исходная становится недействительной, поскольку nonce уже использован.

Это удобно, если пользователь хочет повысить комиссию за медленную транзакцию.

Так можно и отменить ожидающую транзакцию до ее подтверждения.

Замена не означает, что блокчейн удаляет подтвержденную транзакцию.

Этот механизм работает только пока предыдущая транзакция ожидает обработки.

После подтверждения транзакции nonce считается использованным.

После этого пользователь не может применить этот nonce для другой транзакции.

Поэтому при управлении ожидающими транзакциями важен момент времени.

Nonce и мосты

В мостах nonce или идентификаторы сообщений используются для предотвращения повторной обработки одного и того же кроссчейн-сообщения.

Сообщение моста может представлять депозит или вывод токенов, выпуск токенов, сжигание токенов либо вызов контракта.

Если сеть назначения примет одно сообщение повторно, активы могут быть некорректно высвобождены или выпущены.

Безопасное сообщение моста должно содержать исходную сеть, сеть назначения, исходный и целевой контракты, отправителя, получателя, сумму и уникальный nonce или идентификатор сообщения.

Контракт в сети назначения должен помечать сообщение как обработанное.

Если кто-то отправит то же сообщение повторно, контракт должен отклонить его.

Схема nonce моста особенно важна, поскольку мосты соединяют разные системы консенсуса.

Ошибка защиты от повторного воспроизведения в мосте может создать системный риск для разных сетей.

Пользователям следует рассматривать безопасность моста отдельно от безопасности самого токена.

Токен может быть надежным, а система сообщений моста — уязвимой.

Nonce и управление

В системах управления используются nonce-подобные состояния, предотвращающие повторное использование голосов, делегирований и выполнение предложений.

Голос обычно должен учитываться только один раз для конкретного снимка голосовой силы или согласно четко установленным правилам голосования.

Подписанное делегирование не должно оставаться пригодным для повторного использования бесконечно, если только такая возможность не предусмотрена явно.

Предложение не должно выполняться дважды, если контракт намеренно не поддерживает повторное выполнение.

Для сообщений управления могут понадобиться идентификаторы предложений, nonce голосующих, ID сети, сроки действия и проверки состояния выполнения.

Это особенно важно, если система управления контролирует казначейство, обновления, комиссии, параметры риска или подключения к мостам.

Повторно выполненное действие управления может быть опаснее неудачного платежа.

Оно может изменить правила работы всего протокола.

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

Участникам голосования следует внимательно изучать подписываемое действие.

Nonce и получение аирдропов

В аирдропах и системах вознаграждений часто используется защита на основе nonce, предотвращающая повторное получение токенов.

Контракт может хранить информацию о том, получал ли уже адрес вознаграждение.

Контракт может хранить информацию об использовании индекса заявки в дереве Меркла.

Контракт может использовать подписанное сообщение-заявку с nonce, ID кампании, количеством токенов, сроком действия и адресом получателя.

Если такая защита отсутствует, одну корректную заявку можно повторно использовать, пока средства вознаграждения не будут исчерпаны.

Надежные системы получения вознаграждений привязывают заявку к нужному пользователю, кампании, сети, токену, сумме и временному интервалу.

Пользователям следует осторожно относиться к сообщениям для получения вознаграждений с незнакомых сайтов.

Подпись для получения токенов может разрешать больше, чем безобидное получение вознаграждения, если сообщение вводит в заблуждение.

Защита с помощью nonce предотвращает повторное использование, но не делает безопасным первое вредоносное использование.

Понятность работы кошелька по-прежнему важна.

Nonce и DeFi

В DeFi nonce используется во многих незаметных пользователю процессах.

В разрешениях на использование токенов nonce применяется для подписанных одобрений.

В метатранзакциях nonce используется для действий без комиссии за газ.

В протоколах кредитования nonce может применяться для подписанных делегирований или одобрения займов.

В децентрализованных системах ордеров для защиты от повторного исполнения уже исполненных ордеров могут применяться nonce или хеши ордеров.

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

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

В DeFi ошибки с nonce могут быстро привести к финансовым потерям.

Устаревшая подпись на одобрение может создать риск хищения средств из кошелька.

Если забыть обновить nonce, контракт может стать уязвимым к повторному воспроизведению.

Неправильный nonce транзакции может сорвать потенциально прибыльную сделку.

Nonce и NFT

В NFT-системах nonce также используется в объявлениях на маркетплейсах, ставках, разрешениях, заявках на получение токенов и переводах по подписи.

Продавец может подписать офчейн-ордер на продажу NFT.

Контракт маркетплейса должен не допустить исполнения одной и той же подписанной заявки сверх разрешенного количества.

Для этого можно использовать nonce ордера, хеши ордера, счетчики отмены или соответствия состояния исполнения.

Если ордер на NFT можно повторно использовать после продажи или отмены, продавец может неожиданно потерять актив.

Если подпись на ставку можно повторно использовать после изменения условий, покупатель может приобрести то, что больше не намеревался покупать.

Подписи для NFT должны содержать адрес коллекции, ID токена, цену, валюту, условия для покупателя или продавца, срок действия, ID сети и nonce.

Пользователям не следует подписывать расплывчатые сообщения о выставлении NFT на продажу.

При необходимости им также следует отменять старые объявления.

Безопасность nonce — часть безопасности маркетплейса.

Nonce и защита приватных ключей

Качество nonce в алгоритмах подписи может напрямую влиять на безопасность приватных ключей.

Особенно важно это для систем на основе ECDSA.

Если один и тот же nonce ECDSA используется для подписания двух разных сообщений, приватный ключ может стать возможно восстановить.

Предсказуемые шаблоны nonce подписи при некоторых условиях также позволяют злоумышленникам восстановить ключи.

Поэтому разработчики кошельков используют проверенные криптографические библиотеки.

Пользователям не следует самостоятельно создавать ПО для подписания транзакций с ценными активами, если оно не прошло экспертную криптографическую проверку.

Ошибка в nonce транзакции может быть заметной и исправимой.

Ошибка в nonce подписи может незаметно раскрыть приватный ключ.

Аппаратные кошельки и проверенные программные библиотеки помогают снизить этот риск.

При генерации криптографических nonce недопустимо искать короткие пути.

Распространенные типы nonce в криптовалюте

    • Nonce аккаунта задает порядок транзакций блокчейн-аккаунта.

    • Nonce транзакции включается в подписанные данные, чтобы обеспечить уникальность транзакции.

    • Nonce для майнинга изменяется майнерами Proof of Work в поисках корректного хеша блока.

    • Nonce разрешения предотвращает многократное использование подписанного одобрения токенов.

    • Nonce смарт-контракта предотвращает повторное выполнение авторизаций на уровне контракта.

    • Nonce сообщения моста не позволяет обрабатывать одно и то же кроссчейн-сообщение повторно.

    • Nonce для входа создает новый запрос на аутентификацию через кошелек.

    • Nonce подписи — это секретное значение для конкретного сообщения, используемое некоторыми алгоритмами цифровой подписи.

    • Nonce шифрования помогает делать зашифрованные сообщения уникальными при использовании одного и того же ключа.

    • Последовательность nonce — независимая последовательность значений nonce, используемая в некоторых моделях смарт-аккаунтов.

Распространенные ошибки при работе с nonce

Одна из распространенных ошибок — считать, что все nonce означают одно и то же.

Другая — вручную менять nonce транзакции, не проверив ожидающие транзакции.

Третья — подписывать типизированные данные, в которых нет nonce.

Четвертая — проверить подпись смарт-контракта, но забыть пометить nonce как использованный.

Пятая — использовать nonce без ID сети или без разделения доменов проверяющего контракта.

Шестая — считать, что EIP-712 автоматически защищает от повторного воспроизведения.

Седьмая — использовать слабый генератор случайных чисел для случайных nonce.

Восьмая — повторно использовать nonce подписи ECDSA или раскрыть его.

Девятая — полагать, что nonce защищает от фишинга.

Десятая — забыть перенести состояние nonce при обновлении контракта.

Рекомендации для разработчиков

До написания кода определите назначение nonce.

Используйте последовательные nonce, если требуется строгий порядок.

Используйте случайные nonce или соответствия nonce, если независимые разрешения должны выполняться параллельно.

Если контекст имеет значение, включайте в подписываемые данные ID сети и адрес проверяющего контракта.

Указывайте срок действия или период допустимости для офчейн-подписей.

Помечайте nonce как использованный при успешном выполнении действия.

Проверяйте атаки повторного воспроизведения в модульных и интеграционных тестах.

Используйте проверенные криптографические библиотеки для nonce подписей и шифрования.

Не создавайте собственный механизм генерации nonce ECDSA, если он не основан на тщательно проверенных стандартах.

Четко документируйте поведение nonce, чтобы кошельки, индексаторы, аудиторы и пользователи могли его понять.

Рекомендации для пользователей

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

Проверьте, не зависла ли транзакция, прежде чем отправлять с того же кошелька много новых.

Осторожно используйте функции ускорения и отмены при замене транзакции.

Читайте сообщения о разрешении на использование токенов перед подписанием.

Перед одобрением подписи проверяйте адрес получателя разрешения, сумму, сеть, срок действия и приложение.

Не подписывайте сообщения для входа через кошелек на подозрительных доменах.

Не считайте подпись сообщения безопасной только потому, что она не приводит к немедленному перемещению средств.

Используйте надежное ПО для кошелька и избегайте неизвестных инструментов для подписания.

Для защиты значительных средств используйте аппаратные кошельки и безопасные способы восстановления доступа.

Помните: защита nonce предотвращает повторное использование, но не делает безвредной опасную подпись.

Когда nonce особенно важен

Nonce особенно важен, если подпись может переместить активы или изменить важное состояние.

Он важен при отправке обычных транзакций в блокчейне.

Он важен при одобрении расходования токенов с помощью разрешений.

Он важен при подписании ордеров на маркетплейсе.

Он важен при отправке сообщений мостам.

Он важен при голосовании или подписании делегирований в системе управления.

Он важен при получении аирдропов и вознаграждений.

Он важен при входе с помощью подписи кошелька.

Он важен при создании подписей ECDSA.

Он важен везде, где повторное использование, повторное воспроизведение или предсказуемость могут привести к финансовым потерям.

Nonce в одном предложении

Nonce — это уникальное значение, используемое один раз в контексте блокчейна, криптографии или смарт-контракта для упорядочивания транзакций, майнинга Proof of Work, защиты от повторного воспроизведения, безопасного создания подписей и шифрования, а также надежной работы кошельков.

FAQ

Что означает nonce в криптовалюте?

Nonce — это уникальное значение, используемое один раз в определенном криптографическом контексте, например счетчик транзакций, поле для майнинга, идентификатор подписанного сообщения или значение для криптографической подписи.

Что такое nonce Ethereum?

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

Что такое nonce Bitcoin?

Nonce Bitcoin — это поле заголовка блока, которое майнеры изменяют в поисках хеша Proof of Work, соответствующего целевому значению сети.

Зачем кошелькам нужен nonce?

Кошельки используют nonce для формирования корректных последовательностей транзакций, защиты от повторного воспроизведения, замены ожидающих транзакций и отслеживания следующей транзакции.

Можно ли вручную изменить nonce?

Да, некоторые кошельки позволяют вручную менять nonce, но это следует делать только при понимании работы ожидающих транзакций и правил их замены.

Что произойдет, если две транзакции используют один nonce?

Может быть выполнена только одна транзакция с одним отправителем и nonce, поэтому транзакции конкурируют за один и тот же слот.

Почему моя транзакция зависла из-за nonce?

Последующую транзакцию может блокировать предыдущая транзакция с меньшим nonce, которая все еще ожидает обработки.

Как nonce защищает от атак повторного воспроизведения?

Nonce делает подписанное действие одноразовым и позволяет системе отклонить тот же nonce после его использования.

Обрабатывает ли EIP-712 nonce автоматически?

Нет. EIP-712 задает структуру типизированных данных, но разработчики должны отдельно включить проверку nonce в контракт или приложение и обеспечить ее выполнение.

Что такое nonce разрешения?

Nonce разрешения — это nonce владельца токенов, который не позволяет отправить одну и ту же подписанную авторизацию на использование токенов более одного раза.

Что такое nonce подписи?

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

Всегда ли nonce должен быть секретным?

Нет. Nonce аккаунтов и nonce для майнинга обычно общедоступны, а некоторые криптографические nonce подписей должны оставаться секретными.

Заключение

Nonce — небольшое слово, у которого в криптовалюте есть несколько важных значений.

В основе nonce лежит принцип уникальности.

Уникальность помогает криптосистемам различать транзакции, сообщения, подписи, попытки хеширования и действия смарт-контрактов.

В Ethereum nonce аккаунта упорядочивает транзакции и предотвращает повторное выполнение одной и той же транзакции.

При майнинге Bitcoin nonce заголовка блока позволяет майнерам менять переменную в поисках корректного хеша Proof of Work.

В смарт-контрактах nonce не дает повторно воспроизводить подписанные разрешения, заявки, голоса, ордера и сообщения мостов.

В абстракции аккаунтов более гибкие модели nonce позволяют смарт-кошелькам поддерживать параллельные процессы и сложную логику авторизации.

При подписании ECDSA качество nonce может определить, останется ли приватный ключ защищенным или злоумышленник сможет его восстановить.

Все эти значения связаны общим принципом, но механизмы их работы различаются.

Nonce для майнинга открыт и многократно проверяется.

Nonce аккаунта открыт и увеличивается последовательно.

Nonce контракта может быть хранимым счетчиком или соответствием использованных сообщений.

Nonce разрешения защищает подписанное одобрение.

Nonce подписи должен быть секретным и безопасно генерироваться.

Поэтому при использовании этого термина всегда важен контекст.

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

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

Также важно внимательно читать запросы на подпись: офчейн-сообщения могут содержать nonce и при этом разрешать вредоносные действия.

Для разработчиков главный принцип работы с nonce — явно проектировать защиту от повторного воспроизведения.

Каждая подпись, которая может переместить активы или изменить важное состояние, должна содержать nonce, домен, при необходимости срок действия и четкое описание действия.

Контракты должны проверять nonce и правильно помечать его как использованный.

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

В криптографическом коде следует использовать проверенные библиотеки и безопасные методы генерации nonce.

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

Отсутствие проверки nonce может позволить многократно получать токены или использовать разрешения.

Неправильный nonce аккаунта может блокировать транзакции.

Слабый nonce ECDSA может раскрыть приватный ключ.

Отсутствие ID сети может привести к повторному воспроизведению между сетями.

Если не отслеживать nonce сообщения моста должным образом, его могут обработать дважды.

Поэтому защита nonce — не необязательная техническая деталь.

Это один из базовых элементов, благодаря которым криптоактивы перемещаются, контракты выполняются, майнеры ищут решения, кошельки подписывают действия, а пользователи могут рассчитывать, что одно одобрение соответствует одному предполагаемому действию.
Откат или возможность?
Откат или возможность?Откат или возможность?
Почему BTC ETF привлекли 2,4 млрд $ при ликвидациях

В тренде

Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка

Недавно добавленные

Криптовалюты недавно внесенные в листинг и доступные для торговли