От «Код — это закон» до «Специ фикация — это закон»: Как формальная верификация может положить конец кризису эксплойтов DeFi на 3,4 миллиарда долларов
Обычная ошибка округления — субцентовая потеря точности в целочисленном делении Solidity — позволила вывести 128 миллионов долларов из Balancer в девяти блокчейнах менее чем за 30 минут. Пулы работали годами. Код прошел множество аудитов. Никто этого не заметил. Таково состояние безопасности DeFi в 2026 году: миллиарды долларов защищены парадигмой, которая наглядно и неоднократно терпела неудачу.
Теперь a16z crypto предлагает радикальное переосмысление. В своем отчете «Big Ideas» за 2026 год венчурная компания утверждает, что индустрия должна отказаться от принципа «код — это закон» — основополагающей веры в то, что развернутый код смарт-контракта является высшей инстанцией — и заменить его принципом «спецификация — это закон», где математически определенные свойства безопасности становятся обязательным стандартом. Этот сдвиг может фундаментально изменить то, как протоколы создаются, проверяются и защищаются.
Проблема на 3,4 миллиарда долларов, которую аудиты не могут решить
Цифры говорят сами за себя. Только в 2025 году криптоиндустрия потеряла более 3,4 миллиарда долларов в результате краж, из которых 1,5 миллиарда пришлось на взлом Bybit. Ошибки в смарт-контрактах нанесли ущерб примерно в 263 миллиона долларов только за первую половину 2025 года. В общей сложности крупнейшие эксплойты в сфере DeFi вывели из протоколов более 10,77 миллиарда долларов.
Традиционная модель безопасности — написание кода, наем аудиторов, развертывание и надежда на лучшее — достигла своего предела. Даже хорошо финансируемые протоколы с многочисленными аудитами от ведущих фирм остаются уязвимыми. Эксплойт Balancer доказал это без всяких сомнений: уязвимость годами скрывалась на виду, была пропущена профессиональными проверками безопасности и использована за считанные минуты после обнаружения.
Еще большую тревогу вызывает растущая изощренность атак. Количество эксплойтов с использованием флэш-кредитов резко возросло в 2024 году, составив 83,3 % от всех подходящих случаев. Большинство крупных хакерских атак 2025 года сочетали в себе от двух до четырех типов уязвимостей одновременно. Только северокорейские хакеры украли 2,02 миллиарда долларов в 2025 году, что на 51 % больше, чем в предыдущем году. Злоумышленники становятся умнее быстрее, чем защитники.
Анатомия ошибки округления на 128 миллионов долларов
Эксплойт Balancer заслуживает пристального изучения, поскольку он идеально иллюстрирует, почему принцип «код — это закон» не работает. 3 ноября 2025 года злоумышленник воспользовался математической уязвимостью в том, как пулы ComposableStablePools проекта Balancer обрабатывают свопы на небольшие суммы.
Вот что произошло: когда баланс токенов достигает определенного диапазона (8–9 вэй), целочисленное деление в Solidity вызывает значительную потерю точности. Функция _upscaleArray округляет значение в меньшую сторону при масштабировании, что приводит к занижению инварианта пула — математической константы, которая должна определять справедливые курсы обмена. Это искусственно занижает цену BPT (Balancer Pool Token).
Злоумышленник использовал это, выполнив трехэ тапную последовательность свопов в рамках одной транзакции batchSwap, содержащей более 65 операций:
- Подавление цены: Обмен крупных объемов BPT на базовые токены, что привело баланс одного из токенов к критическому порогу 8–9 вэй, где ошибки округления максимальны.
- Дешевое приобретение: Минтинг или покупка BPT по искусственно заниженной цене.
- Полный выкуп: Немедленный обмен BPT на базовые активы по их полной стоимости.
Вся атака была выполнена в конструкторе развернутого смарт-контракта — одной транзакцией, которая вывела 128,64 миллиона долларов в сетях Ethereum, Base, Arbitrum, Avalanche, Optimism, Gnosis, Polygon, Berachain и Sonic. Благодаря быстрому реагированию сообщества удалось вернуть около 19 миллионов долларов, но подавляющая часть средств была потеряна.
Критический урок: это не была какая-то экзотическая уязвимость. Это было нарушение математического инварианта — тип ошибки, которую формальная спецификация выявила бы по определению.
Что на самом деле означает «Спецификация — это закон»
Предложение a16z работает на двух уровнях: статическом (до развертывания) и динамическом (после развертывания).
На статическом уровне безопасность DeFi должна перейти от проверки отдельных локальных свойств к систематическому доказательству глобальных инвариантов. Вместо того чтобы спрашивать «правильно ли эта функция обрабатывает крайние случаи?», вопрос должен звучать так: «сохраняет ли вся эта система свои основные математические свойства при любых возможных входных данных и состояниях?».
Здесь на помощь приходят инструменты формальной верификации, такие как Certora Prover и K Framework от Runtime Verification. Эти инструменты сопоставляют байт-код смарт-контракта с математическими правилами, определяющими ожидаемое поведение, проверяя каждое возможное состояние контракта и путь выполнения. Certora Prover, например, использует спецификации, написанные на языке CVL (Certora Verification Language), для обнаружения нарушений свойств с помощью статического анализа и решения ограничений.
На динамическом уровне те же самые инварианты становятся активными «ограждениями» — проверками во время выполнения (assertions), которым должна соответствовать каждая транзакция. Если транзакция нарушает основное свойство безопасности, она автоматически отменяется. Это концепция «последней линии обороны»: даже новая, ранее не встречавшаяся атака все равно должна соответствовать фундаментальным свойствам безопасности системы.
Элегантность этого подхода заключается в его асимметрии. Злоумышленники должны найти нарушения, в то время как защитникам нужно лишь определить, как выглядит «правильная» работа. Как заявляют в a16z: «Даже новая атака должна соответствовать тем же свойствам безопасности, которые обеспечивают целостность системы, поэтому единственными возможными атаками остаются незначительные или крайне сложные в исполнении».