
Истечение срока действия — это ситуация, когда действие или разрешение теряют силу после наступления определённых условий, таких как ограничение по времени, изменение статуса или изменение сетевой среды. В Web3 истечение срока действия играет ключевую роль: оно ограничивает разрешения и риски чёткими рамками по времени и условиям, снижая вероятность злоупотреблений и повторных атак.
Истечение срока действия похоже на срок действия купона: после окончания периода действия нельзя исполнить заявки, использовать истёкшие подписи для вызова смарт-контрактов или применять просроченные разрешения — контракт их отклоняет. Такой механизм минимизирует злоупотребления и защищает ваши средства.
Истечение срока действия торговых заявок обычно определяется «временем и условиями исполнения». Основные стратегии исполнения: GTC, IOC и FOK.
На спотовой и деривативной торговой платформе Gate доступны стратегии исполнения IOC и FOK. При выборе IOC неисполненная часть заявки истекает мгновенно; FOK исключает частичное исполнение, повышая надёжность вашей стратегии.
Срок действия подписей и разрешений обычно регулируется с помощью «дедлайна» или «окна действия». Во многих DApp в запросах на подпись есть поле «дедлайн» — после этого момента подпись становится недействительной.
EIP-2612 — стандарт permit-подписей, позволяющий одобрять расходование токенов без ончейн-транзакции. В нём предусмотрен дедлайн: после его наступления permit-подпись истекает, и контракт отклоняет попытки её использования.
EIP-712 — стандарт структурированных подписей, в котором в подпись включаются такие важные поля, как chain ID, домен контракта и время истечения. Это предотвращает повторные атаки в разных средах: даже если подпись скопирована, после истечения или при несоответствии контекста она не сработает.
Когда кошелёк запрашивает подпись, проверьте, есть ли поле срока действия или дедлайна. Чем дольше срок, тем выше риск злоупотреблений; короткие сроки безопаснее, но требуют быстрых действий.
Смарт-контракты обычно реализуют истечение через проверку дедлайна при вызове функций. Обычно сравнивается, что текущая метка времени блока не превышает дедлайна; если это не так, вызов функции завершается ошибкой, и операция считается истёкшей.
Метки времени блока устанавливают валидаторы, возможны небольшие отклонения. Контракты часто предусматривают буферные периоды, чтобы избежать преждевременного истечения, но не допустить действий после истечения. Разработчики могут добавлять поля вроде «validUntil» в структуры разрешений или заявок для единообразной проверки.
В UTXO-модели Bitcoin скрипты с временными ограничениями также влияют на окно действительности транзакции. Например, скрипт может требовать, чтобы монеты нельзя было потратить до или после определённого времени — это способ управления действительностью транзакции.
Ончейн-время определяет, когда что-то истекает, а nonce — можно ли повторно использовать транзакцию.
Nonce — это счётчик транзакций: для каждой транзакции аккаунта nonce должен увеличиваться. Если сеть принимает новую транзакцию с тем же nonce, предыдущая заменяется и удаляется из mempool — старая транзакция считается истёкшей.
Метки времени блока задают производители блоков, это не абсолютное реальное время, но именно они определяют истечение срока. Контракты используют время блока, чтобы не зависеть от внешних источников времени.
В Ethereum и совместимых сетях истечение срока действия обычно задаётся на уровне контракта и DApp — через поля «дедлайн» и замену nonce. По умолчанию разрешения на токены бессрочные, поэтому многие приложения реализуют EIP-2612 для добавления срока действия.
В Bitcoin временные скрипты и механизмы блокировки определяют окно действительности транзакций на уровне протокола — можно ли потратить монеты до или после определённого времени.
В Solana транзакции могут указывать «last valid block height»; после этого блока транзакция становится недействительной — окно действительности определяется временем или высотой блока. В некоторых сетях второго уровня логика аналогична Ethereum: истечение срока действия реализуется на уровне контракта и приложения.
Истечение срока действия связано с двумя основными рисками: преждевременным истечением (операция не выполняется) и задержкой истечения (увеличивается окно для злоупотреблений).
Будьте внимательны при операциях с безопасностью средств. Истечение срока не устраняет риски автоматически; долгосрочные разрешения без истечения требуют вашего контроля.
В торговом интерфейсе Gate выбранная стратегия исполнения определяет, как истекают заявки:
Для проверки истечения разрешений при работе с DApp через Web3-портал или кошелёк Gate проверьте, есть ли у разрешений дедлайны. Для бессрочных разрешений регулярно проверяйте и отзывайте права для неиспользуемых DApp на странице управления разрешениями.
Устаревание источника данных — это разновидность истечения срока действия. Оракулы обычно предоставляют метки времени; контракты проверяют, укладываются ли данные в допустимое окно свежести. Если нет, цены считаются устаревшими, вызовы отклоняются — это аналог истечения срока действия данных.
С конца 2025 года ведущие протоколы DeFi всё чаще проверяют свежесть данных в ценовых и процентных фидах, требуя регулярных обновлений для снижения рисков при волатильности. Для NFT и метаданных на централизованных серверах неработающие ссылки приводят к тому, что приложения считают контент истёкшим — результат идентичен истечению срока действия.
На уровне узлов клиенты блокчейна переходят к отказу от бессрочного хранения истории. Очень старые ончейн-данные могут быть недоступны на стандартных узлах; разработчикам приходится использовать архивные сервисы или собственные индексы, чтобы избежать перебоев из-за недоступности «истёкших» данных.
Истечение срока действия сужает окно для исполнения заявок, подписей, разрешений и данных — это важный инструмент безопасности и управления в Web3. Понимая границы, заданные временем и состоянием, используя проверки истечения на уровне контрактов и замену nonce, а также стратегии исполнения на бирже и управление разрешениями в DApp, вы сможете сбалансировать эффективность и контроль над рисками злоупотреблений и повторных атак. Всегда отзывайте долгосрочные разрешения, когда они не нужны, выбирайте срок действия заявки в соответствии со стратегией, обязательно проверяйте свежесть данных в контрактах и регулярно анализируйте свою активность — так вы превратите истечение срока действия из скрытой угрозы в инструмент защиты.
Режим истечения срока действия — это способ, которым функция, заявка или разрешение перестают работать. В Web3 различают истечение по времени (например, таймаут заявки), по параметрам (например, изменение цены за пределы диапазона) и по отзыву (например, ручная отмена разрешения). Понимание режимов истечения помогает избежать сбоев сделок и рисков для средств.
«Stalling» — это замедление или зависание сделок; истечение срока действия — полная остановка функции или утрата её действительности. У истечения есть чёткая точка завершения (например, заявка достигла времени истечения), тогда как stalling — это просто снижение производительности. Заявка может истечь из-за stalling, но эти понятия различаются.
Автоматическое истечение заявок — это встроенный механизм защиты, обычно срабатывающий по трём причинам: истечение срока действия, изменение рыночных условий (цена выходит за пределы) или достижение определённой высоты блока. Такая логика защищает ваши сделки от исполнения при резких рыночных колебаниях.
Истечение разрешения и истечение заявки — это разные понятия. Истечение разрешения означает, что разрешение на использование ваших средств контрактом утратило силу; истечение заявки — что торговая инструкция стала недействительной. В одной транзакции могут возникнуть оба случая: истечение разрешения не позволит исполнить заявку даже при действительной инструкции, а истечение заявки не позволит исполнить сделку даже при действующем разрешении.
Чтобы определить, истекла ли заявка:
Если заявка истекла, для продолжения торговли создайте новую.


