Два метода решают разные задачи. Путать их дорого. Аудит — чтение кода людьми, ищущими известные классы ошибок, а формальная верификация — математическое доказательство того, что заданные свойства контракта выполняются при любых входных данных без исключений.
Что находит аудит
- Ошибки доступа: около 953 млн долларов исторических потерь.
- Повторный вход: 6 типовых схем.
- Ошибки округления, дающие утечку в доли процента с каждой операции — за год это складывается в заметную сумму.
- Отклонения от документации: контракт делает не то, что обещано в описании, и такое находят регулярно.
Обзор разработки протоколов перечисляет типовые классы, против которых проектируют защиту: повторный вход, манипуляция оракулом, атаки с флеш-займами, ошибки контроля доступа и просчёты округления или учёта, — и отмечает, что каждый из них уже уносил из протоколов десятки миллионов долларов. Источник
Что доказывает верификация
Она доказывает инварианты. На мой взгляд, это самый недооценённый инструмент отрасли.
- Сумма балансов всегда равна общему предложению.
- Вывести можно не больше внесённого — проверяется для 100 % входов.
- Доказательство работает для всех входов, а не для придуманных проверяющим.
Ограничение одно, зато принципиальное. Верификация подтверждает только сформулированные свойства. Не описали нужное — метод его не проверит и об этом не сообщит.
Разбор уязвимостей формулирует границу применимости жёстко: автоматические сканеры находят синтаксические ошибки, но не экономический замысел, а логика бизнес-уровня требует ручного анализа проектных допущений. Источник
Чего не покрывает ни то ни другое
Разбор IOSG критикует сложившуюся культуру: аудиты изучают логику контрактов, программы вознаграждений платят за ошибки модификаторов доступа, верификация доказывает инварианты, а всё вне контракта — мультиподписи, ключи разработчиков, валидаторы мостов, каналы связи команды — негласно считается чужой заботой. Источник
Допущение работает ровно до тех пор, пока атакующие ломают код. В апреле 2026 года оно перестало работать.
Вывод
Аудит ловит известные ошибки. Верификация доказывает заданные свойства. Операционная безопасность остаётся вне обоих, и разумная позиция вкладчика — считать оба метода необходимыми, но заведомо недостаточными. Подробнее — о чтении отчётов и о правах на обновление.
Частые вопросы
Сколько стоит полноценная проверка?
Разработка протокола с многоэтапным аудитом оценивается в диапазоне примерно от 80 тысяч до миллиона долларов и выше. Сам аудит занимает в этой сумме заметную долю, что и объясняет, почему мелкие проекты его пропускают.
Нужна ли верификация небольшому протоколу?
Как правило нет: метод дорог и оправдан для критичной логики с большим объёмом средств, а небольшому проекту практичнее заказать два независимых аудита у разных команд.
Что важнее: имя аудитора или содержание отчёта?
Содержание. Список из 15–20 исправлений и честное описание области проверки говорят больше, чем логотип на обложке.
Обсуждение
Добавить комментарий