Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

Smart contract audit: как работает профессиональная проверка кода и что она гарантирует

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

Автор: ~8 мин

Из каких этапов состоит профессиональный аудит смарт-контракта?

Стандартный процесс включает: (1) автоматизированный анализ — инструменты Slither, Mythril, Echidna сканируют код на известные паттерны уязвимостей за часы; (2) ручной анализ — аудиторы изучают логику контракта, экономические инварианты, права доступа и нестандартные паттерны; (3) составление отчёта с классификацией находок по критичности (Critical, High, Medium, Low, Informational); (4) исправление и верификация — разработчик устраняет находки, аудитор подтверждает закрытие. Риск: этапы могут быть сокращены при дешёвом или быстром аудите.

Источник: ЦБ РФ

Какие уязвимости аудит находит чаще всего?

Топ находок по статистике: reentrancy (повторный вход в функцию до завершения первого вызова); некорректная проверка прав доступа (отсутствие onlyOwner, ошибки в логике); целочисленное переполнение и underflow (актуально для старых контрактов без SafeMath); манипуляция оракулом цены; логические ошибки в экономических инвариантах (неверный расчёт долей, комиссий). Риск: аудит находит известные классы уязвимостей — нулевые векторы атак (0-day) и сложные многошаговые эксплойты могут остаться незамеченными даже после качественного аудита.

Чем отличаются аудиторские компании разного уровня?

Tier-1 компании (Trail of Bits, OpenZeppelin, Consensys Diligence, Spearbit) — глубокий ручной анализ, формальная верификация, публикация отчётов, стоимость от $50 000 до $500 000+, срок 4–8 недель. Средний уровень (CertiK, PeckShield, Hacken) — комбинация автоматизации и ручного анализа, более доступные цены, широкий охват проектов. Низкий уровень — преимущественно автоматические сканеры, маркетинговый бейдж без глубокой экспертизы. Риск: бейдж «audited» без открытого PDF-отчёта не несёт информационной ценности для инвестора.

Как правильно читать аудиторский отчёт инвестору без технических знаний?

Ключевые разделы: Executive Summary — общий вывод и количество находок по критичности; Findings — список уязвимостей с описанием и статусом (Fixed / Acknowledged / Unresolved). Красные флаги: находки со статусом Critical или High без пометки Fixed; раздел Centralization Risks с неограниченными правами владельца; короткое резюме без детальных находок. Зелёные флаги: все Critical/High закрыты, Medium проработаны, адрес контракта в отчёте совпадает с деплоем. Риск: статус «Acknowledged» означает разработчик знает об уязвимости, но не устранил её.

Что такое формальная верификация и чем она лучше обычного аудита?

Формальная верификация — математическое доказательство корректности кода относительно формальной спецификации: программа доказывает, что контракт никогда не нарушит заданные инварианты (например, «сумма балансов всегда равна totalSupply»). Обычный аудит основан на экспертизе и может пропустить сложные граничные случаи; формальная верификация охватывает все возможные состояния. Применяется для критически важных протоколов (MakerDAO, Aave). Риск: формальная верификация покрывает только те свойства, которые были формально заданы — неполная спецификация оставляет пробелы.

Источник: ЦБ РФ

Гарантирует ли аудит отсутствие взлома в будущем?

Нет. Аудит — снимок состояния кода на момент проверки. После аудита возможны: деплой изменённой версии кода без повторной проверки (proxy upgrade); обнаружение уязвимости в зависимостях (библиотеках OpenZeppelin при их обновлении); новые векторы атак, неизвестные на момент аудита. Wormhole ($320 млн) и Euler Finance ($197 млн) были аудированы известными компаниями. Риск: аудит снижает вероятность взлома, но не устраняет риск смарт-контракта полностью — это необходимое, но не достаточное условие безопасности.

Источник: ЦБ РФ

Чем bug bounty программа дополняет аудит?

Bug bounty — публичная программа вознаграждения за обнаружение уязвимостей в продакшн-коде. Аудит проводится до деплоя ограниченной командой; bug bounty привлекает сотни независимых исследователей после деплоя. Вместе они создают многоуровневую защиту. Крупные программы (через Immunefi) предлагают вознаграждения до $1–10 млн за критические находки.

Эксклюзив от ИнвестХомяка

Уровни критичности находок в аудиторском отчёте: что означают

Уровень критичностиЧто означаетДействие инвестора
CriticalПрямая потеря средств возможна немедленноНе инвестировать до подтверждения исправления
HighЗначительный риск потери при определённых условияхПроверить статус — Fixed обязателен перед входом
MediumНежелательное поведение, риск частичных потерьОценить контекст, Acknowledged — повод для вопросов
Low / InformationalСтилистические и оптимизационные замечанияНе критично для инвестиционного решения

Аудированный протокол против неаудированного: риски для инвестора

КритерийАудированный протоколБез аудита
Выявленные уязвимостиИзвестные классы проверены и (частично) закрытыНеизвестны — любая уязвимость возможна
Прозрачность для инвестораПубличный отчёт с детальными находкамиНет информации для оценки рисков
Вероятность взломаСнижена, но не равна нулюСтатистически значительно выше
Доверие институциональных участниковОбычно обязательное условиеБарьер для крупных инвесторов
Стоимость аудита как сигналКоманда вложила $50 000+ в безопасностьКоманда не готова инвестировать в защиту пользователей

Как инвестору проверить аудит протокола перед вложением средств

  1. Найдите ссылку на аудит в официальной документации

    Ищите раздел Security или Audits на официальном сайте или в GitHub-репозитории проекта. Ссылка должна вести на PDF-файл на сайте аудиторской компании — не на файл в Telegram-канале или Google Docs проекта.

  2. Убедитесь, что адрес контракта совпадает

    Откройте PDF-отчёт и найдите раздел Scope или Contract Addresses. Сравните указанные адреса с адресами деплоя на Etherscan. Несовпадение означает, что задеплоен другой код — не тот, что был проверен.

  3. Проверьте статус критических и высоких находок

    В разделе Findings найдите все Critical и High уязвимости. Убедитесь, что напротив каждой стоит статус Fixed и есть ссылка на коммит или транзакцию с исправлением. Acknowledged без исправления — незакрытый риск.

  4. Оцените репутацию аудиторской компании

    Проверьте, есть ли у компании публичная история аудитов и взломов проаудированных ею проектов. Известные компании публикуют список своих работ. Компания без публичного портфолио или с историей взломов клиентов — низкий сигнал качества.

  5. Проверьте дату аудита и наличие повторных проверок

    Аудит годичной давности для активно развивающегося протокола может не охватывать новые функции. Ищите дату публикации отчёта и сравните с датой последних обновлений контракта на Etherscan. Обновления после аудита без повторной проверки — дополнительный риск.

Частые вопросы

Чем bug bounty программа дополняет аудит?

Bug bounty — публичная программа вознаграждения за обнаружение уязвимостей в продакшн-коде. Аудит проводится до деплоя ограниченной командой; bug bounty привлекает сотни независимых исследователей после деплоя. Вместе они создают многоуровневую защиту. Крупные программы (через Immunefi) предлагают вознаграждения до $1–10 млн за критические находки.

Что такое Slither и Mythril — это полноценный аудит?

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

Сколько стоит аудит смарт-контракта и кто его оплачивает?

Стоимость варьируется от $5 000–15 000 у небольших компаний с автоматизацией до $100 000–500 000+ у Tier-1 аудиторов для сложных протоколов. Оплачивает разработчик протокола из бюджета проекта или из средств, привлечённых на пресейле. Высокая стоимость аудита — косвенный сигнал серьёзности команды, хотя не исключает мошенничества.

Можно ли доверять автоматическому аудиту от CertiK Skynet?

CertiK Skynet — автоматический мониторинг on-chain активности и статический анализ кода. Он полезен для базовой проверки, но не равнозначен полному ручному аудиту. Бейдж CertiK с высоким security score без открытого детального отчёта несёт ограниченную информационную ценность. Всегда смотрите сам отчёт, а не только итоговый балл.

Что значит «аудит в процессе» на сайте нового проекта?

Это означает, что контракт ещё не проверен, но команда заявляет о намерении провести аудит. До публикации финального отчёта с закрытыми Critical/High уязвимостями протокол несёт полный риск непроверенного кода. Размещение средств в протоколе «в процессе аудита» — принятие риска неаудированного контракта.

Источники