← Все статьиРазработка

Что проверяют при аудите смарт-контракта?

Что ищет аудитор
Коротко

Аудит смарт-контракта: проверка кода на то, можно ли украсть или заблокировать деньги в контракте. На 15.11.2026 проверяют права доступа, повторный вход, арифметику, внешние вызовы и источники цен, логику и экономику токена, обновление контракта, а итог оформляют отчётом с уровнями опасности. В демо-отчёте ниже 8 находок, и 2 из них анализатор не видит: их находят только руками.

Отчёт аудита: разберите демо

Лучший способ понять аудит: посмотреть на его результат. Ниже отчёт по условному контракту продажи токенов. Фильтруйте находки по уровню опасности и включите «только то, что анализатор пропускает»: станет видно, зачем нужен человек.

Демо-отчёт аудита8 находок, 2 критичные

Отчёт аудита: контракт продажи токенов (демо)

  • Чем опасно
    Можно вывести больше, чем положил
    Как исправить
    Сначала записать баланс, потом переводить; защита от повторного входа
    Кто находит
    Анализатор и человек
Все находки демо-отчёта текстом
УровеньНаходкаГдеЧем опасноКто находитИсправление
КритичноПовторный вход в withdrawВнешние вызовыМожно вывести больше, чем положилАнализатор и человекСначала записать баланс, потом переводить; защита от повторного входа
Критичноmint без проверки правПрава доступаЛюбой выпускает токеныАнализатор и человекМодификатор onlyOwner или роль минтера
ВысокийЦена берётся из одного пулаИсточники ценЦену можно сдвинуть займом на один блокТолько рукамиНесколько источников и усреднение по времени
ВысокийПереполнение в uncheckedАрифметикаПокупка почти даромАнализатор и человекУбрать unchecked или ограничить ввод
СреднийВладелец может забрать все средстваЛогика и экономикаПользователи зависят от одного ключаТолько рукамиМультиподпись и задержка на опасные действия
СреднийНе проверен результат перевода токенаВнешние вызовыПеревод молча не прошёл, а учёт изменилсяАнализаторБезопасная обёртка для переводов
НизкийНет события при смене владельцаПрозрачностьСмену владельца не видно в мониторингеАнализаторСобытие OwnershipTransferred
ЗаметкаЛишний расход газа в циклеГазОперации дороже для пользователейАнализаторВынести чтение из хранилища за цикл

Уровни читают так: критичные и высокие исправляют до запуска без вариантов, средние обсуждают с командой, низкие и заметки закрывают по возможности. Отчёт без уровней опасности трудно использовать: непонятно, что чинить первым.

Что проверяют при аудите смарт-контракта

Набор проверок одинаков для токена, продажи, стейкинга или NFT. Меняется только то, где у конкретного контракта деньги.

  • Права доступа. Кто может выпускать токены, останавливать переводы, обновлять код и забирать средства. Права на опасные функции задают явно: владелец или роли (OpenZeppelin).
  • Повторный вход. Может ли внешний контракт вызвать функцию снова до того, как обновлён баланс. Закрывают порядком «проверки, изменения, внешние вызовы» (Solidity).
  • Арифметика. В Solidity 0.8 переполнение проверяется, пока его не отключат блоком unchecked: такие блоки смотрят отдельно (Solidity).
  • Внешние вызовы. Проверяется ли результат перевода токена и что будет, если чужой контракт вернёт ошибку.
  • Источники цен. Откуда контракт берёт курс: один пул можно сдвинуть займом на один блок, поэтому нужны несколько источников.
  • Логика и экономика. Совпадает ли поведение кода с описанием: комиссии, лимиты, распределение, кто и когда может забрать деньги.
  • Обновление и мониторинг. Кто может заменить код и видно ли в событиях смену владельца и опасные действия.

Если контракт хранит деньги клиентов, к проверке кода добавляют вопрос, кто держит ключи администратора. Как это решают в продукте, разобрано в статье кастодиальный или некастодиальный кошелёк.

Как проходит аудит смарт-контракта

Аудит не один прогон программы, а несколько шагов. Каждый даёт свой результат.

  1. 1
    Описание замысла и кодЗаказчик

    Что контракт должен делать, ссылка на репозиторий или адрес, версия кода, которую проверяем.

  2. 2
    Автоматические анализаторыАудитор

    Типовые ошибки: повторный вход, опасная арифметика, непроверенные переводы.

  3. 3
    Ручной разборАудитор

    Логика, права, экономика токена и источники цен: то, что анализатор не понимает.

  4. 4
    Тесты на сценарииАудитор

    Каждую серьёзную находку подтверждают тестом: вот так можно украсть или заблокировать деньги.

  5. 5
    ОтчётАудитор

    Находки с уровнями опасности, местом в коде и способом исправления.

  6. 6
    Проверка исправленийЗаказчик и аудитор

    Команда исправляет, аудитор проверяет правки и выпускает итоговую версию отчёта.

Последний шаг часто пропускают, и зря: правка одной ошибки нередко открывает другую. Итоговый отчёт выпускают по той версии кода, которая уйдёт в сеть.

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

Анализатор отвечает на вопрос «что не так в коде». Человек отвечает на вопрос «что не так в замысле».

Открытых данных о ценах аудита с проверяемым источником мы не нашли, поэтому цифр не называем. Цена зависит от объёма кода, сложности логики, числа внешних контрактов и источников цен, а также от того, нужна ли проверка исправлений. Оценку даём после просмотра репозитория.

Если контракт ещё не написан, дешевле заложить проверки в разработку: роли, тесты и ограничения сразу. Так делаем смарт-контракты под ключ, а для своего токена сначала стоит выбрать законный инструмент: разбор как выпустить свой токен.

Пришлите репозиторий или адрес контракта: оценим объём аудита. Аудит смарт-контрактов →

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

  • Хватит ли автоматического анализатора вместо аудита?

    Нет. Анализаторы находят типовые ошибки вроде повторного входа и опасной арифметики, но не понимают замысел: ошибки в логике, экономике токена и источниках цен находят только руками.

  • Сколько стоит аудит смарт-контракта?

    Открытых данных о ценах аудита с проверяемым источником мы не нашли, поэтому цифр не называем. Цена зависит от объёма кода и сложности логики; оценку даём после просмотра репозитория.

  • Нужен ли повторный аудит после исправлений?

    Да, хотя бы проверка исправлений: правка одной ошибки нередко открывает другую. Итоговый отчёт выпускают по исправленной версии кода.

  • Что такое отчёт аудита смарт-контракта?

    Документ со списком находок: уровень опасности, место в коде, чем опасно и как исправить. После исправлений аудитор проверяет правки и выпускает итоговую версию отчёта.

Источники
  1. Документация Solidity: безопасность контрактов
  2. OpenZeppelin: управление доступом

Проверим ваш контракт

Пришлите репозиторий или адрес контракта. Ответим за 15 минут.