Что такое рекурсивный адрес и почему его лучше не трогать

2 minutes read
Что такое рекурсивный адрес и почему его лучше не трогать
Table of Contents

В криптовалютном мире можно столкнуться с множеством загадочных терминов: мультисиг, мемтокен, zk-rollup и… рекурсивный адрес. На первый взгляд, звучит как что-то техническое и скучное. Но за этим термином может скрываться не просто абстрактная ошибка, а реальная угроза для твоих активов. В этой статье объясняем, что такое рекурсивные адреса, откуда они берутся и почему с ними лучше быть очень осторожным.

Что такое рекурсивный адрес?

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

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

На практике рекурсивный адрес — это ошибочная, вредоносная или просто бессмысленная структура, которая может:

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

Как это может выглядеть?

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

Еще один пример — смарт-контракт, который отправляет токены, вызывая другую функцию, а та снова обращается к первому контракту. Такая конструкция может «зациклиться» и съесть все доступное газовое ограничение, вызвав откат транзакции.

Чем это опасно?

  1. Проблемы с газом и неудачные транзакции
    Если ты случайно отправил токены на адрес контракта, который не рассчитан на их получение — особенно если это "рекурсивная" операция — результат может быть нулевым. Токены ушли, но их никто не получил.
  2. Уязвимости в контрактах
    Если разработчик не предусмотрел возможность рекурсивных вызовов, злоумышленник может воспользоваться этим — и запустить повторяющийся вызов, пока контракт не «сломается» или не выполнит нежелательные действия. Самый известный пример — взлом DAO в Ethereum в 2016 году, когда именно рекурсивный вызов позволил украсть миллионы.
  3. "Вечные" NFT или токены
    Некоторые пользователи рассказывали о ситуации, когда они отправили NFT на адрес, принадлежащий самому токену (в случае, если он ERC-721 контракт). Такой токен становится непередаваемым — он «заперт» на адресе самого себя. Это не баг, а последствие архитектуры.
  4. Трудности при восстановлении или анализе
    Рекурсивные адреса часто становятся ловушками для неопытных пользователей, особенно если те используют автоматические инструменты. Даже профессиональные аналитики могут не сразу заметить ошибку в цепочке вызовов.

Почему кто-то может отправить токен на рекурсивный адрес?

Причин несколько:

  • ошибка пользователя. Он копировал адрес и случайно вставил адрес самого токена
  • баг в интерфейсе кошелька или dApp. Некоторые приложения могут предлагать отправить средства «обратно» в исходный контракт
  • злонамеренный контракт. Иногда разработчики закладывают в токен-контракт рекурсивные или самореференцирующиеся функции, чтобы обмануть пользователей (например, сделать токен "непереводимым")

Как не попасться?

  1. Всегда проверяй, куда отправляешь средства
    Никогда не копируй адрес из неизвестного источника. Убедись, что адрес получателя — это не адрес самого токена или смарт-контракта, который не поддерживает получение.
  2. Проверяй логику контракта
    Если ты разработчик или пользуешься новым токеном/платформой, загляни в код (или найми специалиста, который сможет это сделать). Обрати внимание на наличие функций вроде fallback, receive, onERC721Received — именно через них часто запускается рекурсия.
  3. Не отправляй токены «на удачу»
    Не стоит тестировать, «а вдруг прокатит». Рекурсивные адреса — это не место для экспериментов. Если ты не уверен, проверь адрес через блокчейн-обозреватель
  4. Используй проверенные кошельки и интерфейсы
    Большинство крупных кошельков (MetaMask, Trust Wallet и др.) умеют предупреждать о потенциально подозрительных адресах. Но если ты пользуешься менее известными dApp — будь особенно внимателен.

Заключение

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

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

Как в дикой природе: если не знаешь, что за ягода — лучше не ешь. То же правило работает и в Web3.

Other articles
Финансовая грамотность
Что делает токен «умным»? Простое объяснение технологии, стоящей за цифровыми активами
Что делает токен «умным»? Простое объяснение смарт-контрактов, их применения в 2026 году и почему это важно. Плюсы, риски и примеры использования.
Что делает токен «умным»? Простое объяснение технологии, стоящей за цифровыми активами
Финансовая грамотность
Как курс Биткоина влияет на рынок крипты?
Следя за ценами криптовалют, можно заметить тесную связь между биткоином (BTC) и остальными монетами.
Как курс Биткоина влияет на рынок крипты?
Финансовая грамотность
Что такое Эфириум (Ethereum): понятное объяснение для новичков
Эфириум — глобальная технологическая платформа, которую часто называют «мировым компьютером» за возможность запускать приложения без центрального сервера.
Что такое Эфириум (Ethereum): понятное объяснение для новичков
Финансовая грамотность
Как торговать криптовалютой: 7 подходов и инструментов
Стратегии трейдинга крипты отличаются по сложности, вовлеченности и рискам. Выбор подходящей стратегии индивидуален и зависит от целей трейдера.
Как торговать криптовалютой: 7 подходов и инструментов
Финансовая грамотность
Что такое непостоянные потери (Impermanent Loss) в крипте?
Непостоянные убытки (impermanent loss) — это риск, с которым сталкиваются участники децентрализованных финансов (DeFi), когда добавляют активы в пулы ликвидности.
Что такое непостоянные потери (Impermanent Loss) в крипте?
Финансовая грамотность
Что такое стратегия пересечения скользящих средних и как ее использовать
Скользящие средние (Moving Averages, MA) — популярный инструмент для анализа графиков и определения рыночных трендов в крипте, на биржевых рынках и форекс.
Что такое стратегия пересечения скользящих средних и как ее использовать
Финансовая грамотность
Безопасные сервисы для обмена криптовалюты на фиат
Крипту все чаще используют для повседневных платежей, но есть ситуации, когда нужно конвертировать криптовалюту в фиатные деньги, такие как рубль или доллар.
Безопасные сервисы для обмена криптовалюты на фиат
Финансовая грамотность
Что такое ликвидации в крипте и почему они происходят
Ликвидация — это риск, с которым сталкиваются криптотрейдеры при использовании кредитного плеча (заемных средств) для открытия крупных позиций.
Что такое ликвидации в крипте и почему они происходят
Финансовая грамотность
Что такое криптозима и как ее пережить?
Криптозима — термин, которым криптосообщество описывает долгое падение рынка.
Что такое криптозима и как ее пережить?