Aztec Connect: как эксплойт «забытого» контракта стоил индустрии $2 млн

Децентрализованные финансы не прощают безразличия. Очередной инцидент в экосистеме Ethereum доказал, что даже после официального «заката» (sunset) протокола, его код продолжает жить в блокчейне и может стать легкой добычей для злоумышленников. Смарт-контракт Aztec Connect — моста для приватных транзакций, который был выведен из эксплуатации еще в 2024 году, — был атакован, что привело к утечке средств на сумму около $2 миллионов. Этот случай уникален: хакеры не взламывали активные, активно развивающиеся протоколы. Они нашли уязвимость в «цифровых руинах», которые сообщество посчитало безопасными только потому, что они больше не поддерживаются.

📊 Ключевой факт: По данным ончейн-аналитиков, в момент атаки в устаревшем контракте Aztec Connect оставалось около $2.5 млн заблокированных средств. Эксплойт позволил атакующему вывести почти весь объем, продемонстрировав, что «забытые» пулы ликвидности остаются магнитом для автоматизированных ботов-сканеров.

🔍 Анатомия атаки: почему устаревший код стал мишенью

Чтобы понять механику инцидента, нужно вспомнить, что такое Aztec Connect. Это был специальный мост, позволяющий пользователям Ethereum взаимодействовать с сетью приватности Aztec. Когда команда приняла решение перейти на новую архитектуру (Aztec Bridge), старый контракт был «депрекейтнут» (deprecated). Пользователям дали несколько месяцев на вывод средств, после чего контракт был переведен в режим «только чтение» или ограниченного вывода.

Где кроется опасность «заката»

  • Отсутствие мониторинга: Когда протокол сворачивается, команды безопасности и триаж-инженеры переключаются на новые проекты. Старый контракт остается без активного надзора.
  • Неисправленные баги: Если в коде была известная, но «некритичная» уязвимость (например, не позволяющая украсть средства в активной фазе из-за ограничений ликвидности), она никуда не исчезает после депрекейта.
  • Изменение экономики: В активной фазе эксплойт мог быть нерентабельным из-за комиссий или нехватки ликвидности. В фазе заката, когда пул состоит только из «забытых» средств, математика атаки резко меняется в пользу хакера.

Технический вектор эксплойта

Хотя команда Aztec Network не раскрыла всех деталей байт-кода, паттерн атаки классический для устаревших мостов. Атакующий использовал логическую несогласованность в функции вывода (withdrawal). Злоумышленник смог манипулировать параметрами транзакции так, что контракт «подумал», будто пользователь забирает только свои средства, но фактически инициировал перевод всего остатка пула на внешний адрес. Поскольку контракт больше не обновлялся, патча не последовало, и боты-конкуренты тут же попытались повторить транзакцию (front-running), но основная сумма уже была выведена.

«В безопасности нет абсолютных состояний, есть только постоянная борьба. И когда вы опускаете руки, считая задачу решенной, противник начинает выигрывать», — Брюс Шнайер, эксперт по кибербезопасности.

⚙️ Феномен «Sunset-контрактов»: слепая зона DeFi

Инцидент с Aztec Connect ярко подсветил системную проблему всей индустрии смарт-контрактов. В традиционном IT, когда сервис закрывается, серверы отключаются, а базы данных архивируются или удаляются. В блокчейне код неизменяем и живет вечно. Это создает феномен «бессмертных руин».

Сравнение рисков: Активный vs Устаревший контракт

Параметр Активный протокол Депрекейтнутый контракт (Sunset)
Мониторинг 24/7, алерты, автоматическая пауза Отсутствует или минимален
Патчинг Возможен через upgradeable proxy Невозможен (контракт неизменяем)
Внимание хакеров Высокое (цель для сложных APT-атак) Среднее (цель для автоматических ботов)
Реакция на взлом Заморозка средств, связь с хакером Крайне затруднена, нет рычагов давления

💡 Практический вывод: Пользователи часто воспринимают депрекейт как «конец жизни» контракта и перестают проверять свои средства. Это фатальная ошибка. Контракт не умирает, он просто становится беззащитным.

🛡️ Уроки для индустрии: как управлять жизненным циклом кода

Потеря $2 млн — это болезненно, но для экосистемы Ethereum с ее TVL в десятки миллиардов это скорее «прививка», чем катастрофа. Однако она требует изменения подходов к управлению жизненным циклом смарт-контрактов.

Для разработчиков протоколов

  1. Принудительная миграция: Если контракт уходит на sunset, нужно внедрять механизмы, которые через N месяцев автоматически отправляют «забытые» средства на новый контракт или в казначейство DAO, а не оставляют их в уязвимом пуле.
  2. Финальный аудит: Перед официальным закрытием контракта необходимо провести целевой аудит именно на уязвимости, которые могут быть эксплуатированы в фазе отсутствия ликвидности.
  3. Агрессивная коммуникация: Рассылка уведомлений, интеграция с кошельками для push-уведомлений пользователям, чьи средства все еще лежат в старом контракте.

Для пользователей и инвесторов

  • Регулярная ревизия: Используйте инструменты вроде DeBank или Zerion для проверки не только активных позиций, но и «забытых» approvals и старых пулов.
  • Не доверяйте дедлайнам: Если проект объявил «последний день для вывода», это не значит, что контракт стал безопасным. Выводите средства сразу.
  • Отзыв разрешений: После завершения взаимодействия с протоколом отзывать токены (Revoke.cash), чтобы избежать рисков, связанных с устаревшими контрактами.

✨ Призрачные города крипты: почему код не умирает

В середине XIX века, во время золотой лихорадки в Калифорнии и на Аляске, возникали сотни шахтерских поселков. Когда жила истощалась, люди уезжали за одну ночь. Дома, салуны и банки оставались стоять под ветром и пылью. Эти «города-призраки» казались мертвыми. Но их банковские сейфы оставались нетронутыми. Спустя десятилетия туда приезжали не старатели, а «охотники за сокровищами» — люди, которые вскрывали заброшенные хранилища с помощью простой ломовой кости, потому что время и ржавчина сделали свои замки хрупкими.

Блокчейн Ethereum — это бескрайняя пустыня, усеянная такими призрачными городами. Смарт-контракты Aztec Connect, старых DEX, отмененных NFT-маркетплейсов — это цифровые сейфы в заброшенных поселениях. Команды проектов уехали, забрав с собой активную разработку и внимание. Но средства, оставленные пользователями, всё еще лежат внутри. И для алгоритмических ботов-мародеров, которые сканируют сеть 24/7, ржавчина на коде — это не признак того, что нужно пройти мимо. Это сигнал, что дверь откроется легче, чем вчера.

📋 Чек-лист: как не оставить свои средства в «призрачном городе»

  1. ☑️ Составьте карту своих активов: Не полагайтесь на память. Используйте ончейн-портфолио трекеры, которые показывают все ваши взаимодействия со смарт-контрактами за всю историю.
  2. ☑️ Проверьте статус протоколов: Если проект, в котором у вас лежат средства, был куплен, закрыт или мигрировал — заберите активы немедленно, не дожидаясь официальных дедлайнов.
  3. ☑️ Тестируйте вывод малых сумм: Если вы возвращаетесь к старому контракту после долгого перерыва, сначала выведите минимальный объем, чтобы убедиться, что логика работает.
  4. ☑️ Очищайте следы: Регулярно используйте Revoke.cash для удаления доступов к устаревшим контрактам, даже если вы забрали оттуда все средства.

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

«Код — это закон. Но закон, который никто не поддерживает и не обновляет, рано или поздно становится законом джунглей», — Виталик Бутерин, сооснователь Ethereum.
16.06.2026, 01:45