Команда запускает кредитный рынок. Они читают документацию, ничего не хардкодят, берут цену из известного пула DEX — настоящего, с реальным объёмом. Три недели спустя незнакомец занимает несколько миллионов в той же транзакции, сдвигает цену этого пула в сторону, опустошает логику залога рынка, возвращает кредит и оставляет разницу себе. Без собственного капитала. Без ночной позиции. Одна атомарная транзакция, несколько секунд, готово.
В отчёте команды написано: «мы использовали децентрализованный ценовой фид». Эта фраза — вся проблема. Это также причина, по которой практическое знание механики атак с флеш-кредитами, манипулирования оракулами и безопасности DeFi сейчас является одним из немногих навыков в этой отрасли, который окупается немедленно — и причина, по которой я хочу провести вас через то, что аудитор на самом деле проверяет, с цифрами, прежде чем вы поверите любому протоколу на слово.
Часть, которую все понимают неправильно: заимствование — это не атака
Флеш-кредиты — не баг. Aave, Balancer и другие предлагают их как продукт: займите крупную сумму, используйте как хотите, верните её плюс комиссию — всё внутри одной транзакции. Если вы не вернёте к концу транзакции, всё откатывается, как будто ничего не было. Эта атомарность и делает кредит безрисковым для заёмщика.
Это означает, что реальная стоимость атаки — не кредит. Это комиссия за своп и проскальзывание на пуле, который они двигают. Всё остальное арендуется на время блока.
Теперь вопрос об оракуле. Протокол читает цену. Откуда берётся эта цена? Если ответ — «спотовая цена пула X, прочитанная в этот момент», то протокол доверяет числу, которое любой с заёмными деньгами может сдвинуть внутри той же транзакции, которая его использует. Называть пул X «децентрализованным» ничего не меняет — децентрализация касается того, кто контролирует пул, а не того, насколько дорого исказить его цену на один блок.
Пошаговый разбор с цифрами: как на самом деле окупается атака манипулирования ценой
Давайте конкретно. Представьте небольшой пул DEX с ликвидностью $2 000 000 в паре токенов и кредитный протокол, который принимает этот токен в качестве залога и оценивает его по спотовому соотношению резервов пула.
- Заимствование. Атакующий берёт флеш-кредит в $10 000 000 в стейблкоине. Стоимость: комиссия за кредит, обычно несколько базисных пунктов — при 0,05% это $5 000.
- Своп. Они сбрасывают заёмный стейблкоин в пул. В AMM с постоянным произведением вливание $10 млн в пул на $2 млн сильно двигает цену — математика пула наказывает сделку проскальзыванием, но проскальзывание — это издержка, которую атакующий уже принял.
- Эксплуатация. Токен залога теперь выглядит гораздо ценнее, чем есть. Атакующий вносит немного его в кредитный протокол и занимает под завышенную оценку — гораздо больше, чем залог реально стоит.
- Свёртывание. Они обменивают обратно (снова платя комиссии и проскальзывание), возвращают флеш-кредит и уходят с разницей между тем, что заняли, и тем, что потратили.
Единственное действительно переменное число здесь — комиссия на шаге 1 и проскальзывание на шагах 2 и 4. Если протокол, который опустошают, хранит больше стоимости, чем эти издержки, атака прибыльна, и кто-то её проведёт. Задача аудитора — вычислить именно эту сумму — стоимость манипуляции в долларах — и сравнить её со стоимостью под риском. Если стоимость составляет $40 000, а протокол хранит $30 млн, вывод аудита — не «рассмотрите пересмотр оракула». Это «это эксплуатируется уже сегодня».
Почему «мы используем известный DEX» — не защита
Репутация площадки не имеет отношения к механизму. Важна глубина пула в момент чтения и является ли чтение мгновенным. Тонкий пул на крупном DEX — всё равно тонкий пул. Глубокий пул, читаемый как спотовая цена, — всё равно спотовая цена. Два свойства, которые действительно защищают вас, — это время (цена — среднее за окно, достаточно длинное, чтобы её сдвиг стоил реальных денег, удерживаемых под риском на протяжении многих блоков) и агрегация (несколько источников, взвешенных по ликвидности, так что искажения одного недостаточно).
Что на самом деле проверяет аудит смарт-контрактов
Когда протокол говорит вам, что он прошёл аудит, полезный вопрос — не «кем», а «против чего». Серьёзный аудит смарт-контрактов логики ценообразования выглядит так:
| Что проверяется | Что пропускает слабый аудит | Что делает настоящий |
|---|---|---|
| Источник цены | «Использует оракул DEX» | Читает путь кода: спот, TWAP или гибрид — и окно наблюдения, если TWAP |
| Стоимость манипуляции | Не количественно определена | Рассчитывает стоимость в долларах, чтобы сдвинуть цену за пределы допуска протокола, по каждому пулу, по каждому активу |
| Пути атомарных атак | Только ручное чтение | Пишет тесты Foundry, которые выполняют заимствование-своп-эксплуатацию-возврат в одной транзакции и проверяют результат |
| Инварианты | Не тестируются | Echidna или фаззинг инвариантов: общий долг никогда не превышает стоимость залога при любой последовательности вызовов |
| Границы и предохранители | Отсутствуют | Разумные границы отклонения цены, предохранители, приостанавливающие работу при аномальных движениях |
Именно во второй строке заключается большая часть ценности. Вывод «оракул может быть манипулирован» — это предложение. Вывод «манипулирование пулом ETH/USDC стоит примерно $X в комиссиях и проскальзывании, в то время как протокол хранит $Y этого актива, поэтому атака прибыльна при текущей глубине» — это решение, которое команда может принять до того, как кто-то другой примет его.
Если вы разработчик, запускающий протокол
Ваш чек-лист в порядке воздействия:
- Замените спотовые чтения на TWAP с окном наблюдения, достаточно длинным, чтобы движение за один блок не сдвигало среднее существенно. Окно — это компромисс: длиннее безопаснее против манипуляций, но медленнее реагирует на реальные движения цены, что важно для ликвидаций.
- Агрегируйте по источникам с весами по ликвидности. Один пул — единая точка отказа; три пула с весами, пропорциональными глубине, означают, что атакующему придётся исказить все.
- Добавьте разумные границы. Если сообщённая цена отклоняется от эталонной более чем на заданный процент за один блок, откатывайте, а не принимайте. Дёшево, эффективно и ловит грубые атаки.
- Напишите атомарную атаку как тест. Если вы не можете написать тест Foundry, который опустошает ваш собственный протокол, вы ещё не знаете, безопасен ли он.
Если вы оцениваете протокол перед вложением денег
Вам не нужно читать Solidity, чтобы применить ту же логику. Задайте три вопроса и посмотрите, как на них отвечают:
- Откуда берётся цена и является ли она спотовой или взвешенной по времени? Расплывчатые ответы — это и есть ответ.
- Насколько глубок пул, питающий оракул? Протокол, оценивающий крупный рынок по небольшому пулу, — это цель, независимо от бренда DEX.
- Есть ли предохранитель или механизм паузы? Если цена движется на 40% за один блок, а протокол продолжает принимать депозиты, это проектное решение, которому вы теперь подвержены.
Тот же инстинкт применим ко всей работе по безопасности в целом — полностью зелёная панель и чистый логотип аудита говорят меньше, чем знание того, что именно тестировалось. Если вы хотите более широкую версию этого урока, материал CISO Executive Program о том, почему зелёная панель — не безопасность, делает ту же мысль с организационной стороны.
Честные пути обучения и чего каждый из них вам стоит
Если вы хотите заниматься этой работой, а не оценивать её, есть три маршрута, и они проваливаются по-разному.
Самостоятельное обучение. Бесплатно, и исходный материал действительно хорош: документация Solidity, книга Foundry, публичные разборы реальных эксплойтов, раскрытые отчёты Immunefi. Режим отказа — вы учитесь замечать известные классы багов и так и не учитесь что-либо количественно оценивать. Вы можете назвать реентранси и манипулирование оракулом; вы не можете сказать команде, делает ли глубина их конкретного пула атаку прибыльной. Никто не проверяет ваши рассуждения, и обратная связь — это реальный эксплойт, опустошающий ваше собственное тестовое развёртывание.
Практика через баг-баунти. Лучший доступный учитель, потому что обратная связь финансовая и немедленная. Проблема — входной пандус: большинство новичков проводят месяцы на конкурсах без единой валидной находки, потому что им не хватает систематического метода — сначала прочитать инварианты, затем пути цены, затем внешние вызовы — и никто не говорит им, где их рассуждения пошли не так.
Структурированные курсы. Платно, и стоит только если курс делает то, чего не может самообучение: заставляет вас создать отчёт об аудите и даёт обратную связь по вашим решениям. Именно этот пробел призван закрыть курс Безопасность блокчейна и аудит смарт-контрактов — он прорабатывает сценарии манипулирования оракулами и атак с флеш-кредитами и предлагает вам написать полный аудит реального DeFi-протокола, при этом проверяются ваши рассуждения, а не только ответ. На asibiont.com уроки адаптируются к вашему уровню, поэтому основы EVM и Solidity пропускаются, если они у вас уже есть. Это один маршрут, не единственный — и если у вас уже есть конвейер баг-баунти, приносящий находки, вам он, вероятно, не нужен.
Кому подходит этот путь — и кого он тихо наказывает
Он подходит людям, которые любят состязательное мышление: вы читаете функцию и инстинктивно спрашиваете «что если я вызову это дважды, в неправильном порядке, с заёмным балансом?» Если этот вопрос вам интересен, работа хорошо подходит, и спрос реален.
Он наказывает людей, которые хотят следовать чек-листу. Аудит — это не применение списка известных уязвимостей, это построение модели того, что протокол обещает, и поиск входа, который нарушает обещание. Версии этих атак 2026 года — вариации на одну и ту же тему: число, которому протокол доверяет, а кто-то другой может сдвинуть. Спотовая цена, цена доли, обменный курс, коэффициент залога — поверхность меняется, рассуждение — нет.
Начните с вопроса, с которого началась эта статья: выберите любой протокол, которым пользуетесь, найдите, откуда берётся его цена, и спросите, сколько заёмных денег потребуется, чтобы сдвинуть это число внутри одной транзакции. Если вы можете ответить цифрой, вы уже думаете как аудитор. Курс ждёт, когда вам понадобится остальная часть метода — структура отчёта, инструменты и кто-то, кто скажет вам, где ваши рассуждения сломались.
Начать можно здесь: Blockchain Security & Smart Contract Auditor. Подробнее — в статье «Blockchain и Web3».