Аудит смарт-контракта: проверка кода на то, можно ли украсть или заблокировать деньги в контракте. На 15.11.2026 проверяют права доступа, повторный вход, арифметику, внешние вызовы и источники цен, логику и экономику токена, обновление контракта, а итог оформляют отчётом с уровнями опасности. В демо-отчёте ниже 8 находок, и 2 из них анализатор не видит: их находят только руками.
Отчёт аудита: разберите демо
Лучший способ понять аудит: посмотреть на его результат. Ниже отчёт по условному контракту продажи токенов. Фильтруйте находки по уровню опасности и включите «только то, что анализатор пропускает»: станет видно, зачем нужен человек.
Отчёт аудита: контракт продажи токенов (демо)
- Чем опасно
- Можно вывести больше, чем положил
- Как исправить
- Сначала записать баланс, потом переводить; защита от повторного входа
- Кто находит
- Анализатор и человек
Все находки демо-отчёта текстом
| Уровень | Находка | Где | Чем опасно | Кто находит | Исправление |
|---|---|---|---|---|---|
| Критично | Повторный вход в withdraw | Внешние вызовы | Можно вывести больше, чем положил | Анализатор и человек | Сначала записать баланс, потом переводить; защита от повторного входа |
| Критично | mint без проверки прав | Права доступа | Любой выпускает токены | Анализатор и человек | Модификатор onlyOwner или роль минтера |
| Высокий | Цена берётся из одного пула | Источники цен | Цену можно сдвинуть займом на один блок | Только руками | Несколько источников и усреднение по времени |
| Высокий | Переполнение в unchecked | Арифметика | Покупка почти даром | Анализатор и человек | Убрать unchecked или ограничить ввод |
| Средний | Владелец может забрать все средства | Логика и экономика | Пользователи зависят от одного ключа | Только руками | Мультиподпись и задержка на опасные действия |
| Средний | Не проверен результат перевода токена | Внешние вызовы | Перевод молча не прошёл, а учёт изменился | Анализатор | Безопасная обёртка для переводов |
| Низкий | Нет события при смене владельца | Прозрачность | Смену владельца не видно в мониторинге | Анализатор | Событие OwnershipTransferred |
| Заметка | Лишний расход газа в цикле | Газ | Операции дороже для пользователей | Анализатор | Вынести чтение из хранилища за цикл |
Уровни читают так: критичные и высокие исправляют до запуска без вариантов, средние обсуждают с командой, низкие и заметки закрывают по возможности. Отчёт без уровней опасности трудно использовать: непонятно, что чинить первым.
Что проверяют при аудите смарт-контракта
Набор проверок одинаков для токена, продажи, стейкинга или NFT. Меняется только то, где у конкретного контракта деньги.
- Права доступа. Кто может выпускать токены, останавливать переводы, обновлять код и забирать средства. Права на опасные функции задают явно: владелец или роли (OpenZeppelin).
- Повторный вход. Может ли внешний контракт вызвать функцию снова до того, как обновлён баланс. Закрывают порядком «проверки, изменения, внешние вызовы» (Solidity).
- Арифметика. В Solidity 0.8 переполнение проверяется, пока его не отключат блоком unchecked: такие блоки смотрят отдельно (Solidity).
- Внешние вызовы. Проверяется ли результат перевода токена и что будет, если чужой контракт вернёт ошибку.
- Источники цен. Откуда контракт берёт курс: один пул можно сдвинуть займом на один блок, поэтому нужны несколько источников.
- Логика и экономика. Совпадает ли поведение кода с описанием: комиссии, лимиты, распределение, кто и когда может забрать деньги.
- Обновление и мониторинг. Кто может заменить код и видно ли в событиях смену владельца и опасные действия.
Если контракт хранит деньги клиентов, к проверке кода добавляют вопрос, кто держит ключи администратора. Как это решают в продукте, разобрано в статье кастодиальный или некастодиальный кошелёк.
Как проходит аудит смарт-контракта
Аудит не один прогон программы, а несколько шагов. Каждый даёт свой результат.
- 1Описание замысла и кодЗаказчик
Что контракт должен делать, ссылка на репозиторий или адрес, версия кода, которую проверяем.
- 2Автоматические анализаторыАудитор
Типовые ошибки: повторный вход, опасная арифметика, непроверенные переводы.
- 3Ручной разборАудитор
Логика, права, экономика токена и источники цен: то, что анализатор не понимает.
- 4Тесты на сценарииАудитор
Каждую серьёзную находку подтверждают тестом: вот так можно украсть или заблокировать деньги.
- 5ОтчётАудитор
Находки с уровнями опасности, местом в коде и способом исправления.
- 6Проверка исправленийЗаказчик и аудитор
Команда исправляет, аудитор проверяет правки и выпускает итоговую версию отчёта.
Последний шаг часто пропускают, и зря: правка одной ошибки нередко открывает другую. Итоговый отчёт выпускают по той версии кода, которая уйдёт в сеть.
Сколько стоит аудит смарт-контракта и от чего зависит
Анализатор отвечает на вопрос «что не так в коде». Человек отвечает на вопрос «что не так в замысле».
Открытых данных о ценах аудита с проверяемым источником мы не нашли, поэтому цифр не называем. Цена зависит от объёма кода, сложности логики, числа внешних контрактов и источников цен, а также от того, нужна ли проверка исправлений. Оценку даём после просмотра репозитория.
Если контракт ещё не написан, дешевле заложить проверки в разработку: роли, тесты и ограничения сразу. Так делаем смарт-контракты под ключ, а для своего токена сначала стоит выбрать законный инструмент: разбор как выпустить свой токен.
Пришлите репозиторий или адрес контракта: оценим объём аудита. Аудит смарт-контрактов →
Частые вопросы
Хватит ли автоматического анализатора вместо аудита?
Нет. Анализаторы находят типовые ошибки вроде повторного входа и опасной арифметики, но не понимают замысел: ошибки в логике, экономике токена и источниках цен находят только руками.
Сколько стоит аудит смарт-контракта?
Открытых данных о ценах аудита с проверяемым источником мы не нашли, поэтому цифр не называем. Цена зависит от объёма кода и сложности логики; оценку даём после просмотра репозитория.
Нужен ли повторный аудит после исправлений?
Да, хотя бы проверка исправлений: правка одной ошибки нередко открывает другую. Итоговый отчёт выпускают по исправленной версии кода.
Что такое отчёт аудита смарт-контракта?
Документ со списком находок: уровень опасности, место в коде, чем опасно и как исправить. После исправлений аудитор проверяет правки и выпускает итоговую версию отчёта.
Проверим ваш контракт
Пришлите репозиторий или адрес контракта. Ответим за 15 минут.


