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

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

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

Как выглядит ситуация со стороны пользователя

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

Проблема одна. Проверка относилась к другой версии кода. Между датой отчёта и развёртыванием прошло время, контракт пересобрали, добавили функцию, сменили адрес реализации. Все три события законны, документируются и никак не отражаются в старом отчёте — он остаётся правдивым применительно к тому, что проверялся, и бесполезным применительно к тому, что развёрнуто.

Схема из пяти шагов: чтение границы области аудита, сверка коммита с развёрнутым кодом, проверка адреса реализации у прокси, разбор статуса находок, проверка даты отчёта и даты развёртывания
Схема из пяти шагов: чтение границы области аудита, сверка коммита с развёрнутым кодом, проверка адреса реализации у прокси, разбор статуса находок, проверка даты отчёта и даты развёртывания

Признаки, по которым распознаётся расхождение

На что смотреть Признак порядка Признак расхождения Чем проверяется
Граница области аудита Перечислены файлы и указан хеш ревизии Написано «контракты проекта» без уточнения Первые страницы отчёта, раздел об области проверки
Соответствие развёрнутому коду Хеш ревизии совпадает с верифицированным исходником Исходник по адресу не опубликован либо отличается Карточка контракта в обозревателе сети
Конструкция контракта Логика неизменяема, администратора нет Прокси с адресом реализации, который можно сменить Значение слота реализации в карточке контракта
Статус находок Каждая помечена как устранённая, с номером правки Часть помечена как признанная и оставленная без изменений Итоговая таблица отчёта и комментарии разработчика
Хронология Дата отчёта позже даты последней правки кода Развёртывание или обновление прошло после отчёта История транзакций контракта в обозревателе
Что в область не входило Прямо перечислено: оракулы, экономика, права администратора Умолчание, создающее впечатление полной проверки Раздел об ограничениях и допущениях

Четвёртая строка требует пояснения, потому что путает чаще остальных. Статус «признано» означает, что разработчик согласился с замечанием и решил ничего не менять. Это законная позиция, у неё бывают разумные основания, и к устранению она отношения не имеет.

Проверка за 60 секунд: что открыть и на что смотреть

  1. Откройте первые страницы отчёта и найдите хеш проверенной ревизии вместе со списком файлов. Нет хеша — выводы отчёта привязать не к чему.
  2. Откройте карточку контракта в обозревателе целевой сети и посмотрите, опубликован ли исходный код и совпадает ли он с проверенной ревизией.
  3. Проверьте, не является ли контракт прокси: у таких конструкций логика лежит по отдельному адресу, который администратор вправе сменить.
  4. Пролистайте итоговую таблицу находок и отделите устранённые от признанных и оставленных. Считайте значимыми только первые.
  5. Сравните дату отчёта с датой последнего обновления контракта в истории транзакций. Обновление после отчёта обнуляет его применимость.
  6. Найдите раздел об ограничениях и прочитайте, что в область проверки не входило. Этот абзац информативнее перечня уязвимостей.
Чем измеряется строгость проверки. Спецификация EEA EthTrust Security Levels версии 3, опубликованная в марте 2025 года, вводит три уровня: уровень [S] рассчитан на автоматический статический анализ, уровень [M] требует ручной работы аудитора, уровень [Q] — разбора бизнес-логики на соответствие заявленному. Там же сказано прямо: сертификация означает выполнение определённого минимума проверок и не означает, что в проверенном коде нет уязвимостей. Старый классификатор SWC с 37 записями от SWC-100 до SWC-136 помечен как неподдерживаемый и с 2020 года существенно не обновлялся.

Эти сведения пригодятся при чтении формулировок. Отчёт, в котором заявлен охват только автоматическим анализом, и отчёт с разбором бизнес-логики — документы разного веса, хотя оба называются аудитом. Разница видна в разделе о методологии. Не в заголовке.

Пошаговые действия, если деньги уже ушли

  1. Зафиксируйте факты: адрес контракта, хеш транзакции, время, какой отчёт вы читали и какую его версию. Скриншоты сохраните отдельно от переписки.
  2. Проверьте действующие разрешения адреса и отзовите те, что выданы контракту, в той сети, где они выдавались. Отзыв в соседних сетях их не затрагивает.
  3. Переведите остаток на адрес, которому разрешений никогда не выдавалось, и дальше работайте с новым адресом.
  4. Обратитесь в правоохранительные органы с собранными материалами. Сведения о движении средств по открытым данным сети прилагаются к заявлению.
  5. Сверьте организацию, стоявшую за проектом, с перечнями регулятора: эти сведения пригодятся и вам, и другим пострадавшим.
Обещания вернуть похищенное за процент — отдельная схема, продолжающая первую. Ни один частный сервис не отменяет подтверждённую транзакцию, а предоплата за «розыск средств» уходит так же безвозвратно, как и первая сумма. Прослеживать движение можно и бесплатно, по открытым данным сети.

Как работает такое прослеживание и чего от него ждать реалистично, разобрано отдельно: как проследить движение украденных средств и подготовиться к худшему сценарию. По отчёту Chainalysis о криптопреступности, опубликованному 8 января 2026 года, нелегальные адреса получили за 2025 год не менее 154 млрд долларов при росте на 162 % год к году, а доля нелегальных операций остаётся ниже 1 % общего оборота.

Как закрыть дыру, чтобы не повторилось

Правило первое. Разрешение выдаётся на сумму операции. Неограниченная величина не подходит. Неограниченное право превращает любую будущую уязвимость контракта в полный доступ к вашему балансу токена.

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

Правило третье касается чтения запросов на подпись. Текст запроса показывает, что именно вы разрешаете, и расхождение между обещанием страницы и содержанием запроса — главный признак подмены: об этом подробно в разборе, как распознать вредоносную подпись транзакции.

Правило четвёртое — проверять источник ссылки на отчёт. Документ берут с сайта аудитора или из его публичного хранилища, а не из сообщения в чате и не из карточки проекта, где файл мог быть отредактирован. Способы подмены контекста вокруг адресов описаны в материале о том, как распознать отравление истории адресов и подготовиться к худшему сценарию.

Чек-лист

  • Хеш проверенной ревизии найден в отчёте и записан
  • Исходный код по адресу контракта опубликован и сверен с ревизией
  • Проверено, прокси это или неизменяемый контракт
  • Адрес реализации у прокси сверен со слотом в карточке контракта
  • Находки разделены на устранённые и признанные без изменений
  • Дата отчёта сопоставлена с датой последнего обновления контракта
  • Раздел об ограничениях прочитан целиком
  • Разрешение выдано на сумму операции и с отдельного адреса

Материалы по теме:

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

Аудит есть. Значит, контракту можно доверять?

Аудит сообщает, что определённый набор файлов на определённой ревизии прошёл определённый набор проверок. Спецификация EEA EthTrust формулирует это прямо: сертификация не означает отсутствия уязвимостей. Доверие строится на сверке ревизии с развёрнутым кодом, статусе находок и перечне того, что в проверку не входило.

Что означает находка со статусом «признано»?

Что разработчик согласился с замечанием и оставил код как есть. Причины бывают разумные: риск принят осознанно, изменение ломает совместимость, вероятность реализации мала. Но для читателя это открытая позиция, а не устранённая. Считать такие строки закрытыми нельзя, и именно их стоит разобрать внимательнее всего.

Как понять, что аудит относится к развёрнутому контракту?

Сверьте хеш ревизии из отчёта с исходным кодом, опубликованным в карточке контракта в обозревателе сети. Если код не опубликован, сверять нечего. Отдельно проверьте, не прокси ли это: у таких контрактов логика хранится по адресу реализации, и администратор вправе заменить её после аудита.

Отчёт выглядит подлинным, но пришёл ссылкой из чата. Это важно?

Важно. Документ берут с сайта аудитора или из его публичного хранилища, где опубликован подлинный файл. Присланный файл мог быть отредактирован: меняется хеш ревизии, исчезают строки с открытыми находками, правится дата. Проверить это иначе, чем сверкой с первоисточником, нельзя.

Нужно ли читать раздел об ограничениях?

Это самая полезная часть документа. Там перечислено, что в область проверки не входило: экономика протокола, поведение внешних источников цен, права администратора, инфраструктура вне цепи. Перечень уязвимостей говорит о найденном, а раздел об ограничениях — о том, где никто не искал вовсе.

Вердикт

Отчёт об аудите — документ о конкретной ревизии кода, и его ценность определяется тем, насколько эта ревизия совпадает с развёрнутой. Сверка занимает минуту и отвечает на главный вопрос раньше, чем вы доберётесь до таблицы находок. В обращениях читателей потери связаны не с ошибками аудиторов, а с отчётом о другой версии контракта. Читайте первую страницу и раздел об ограничениях.

Разборы и предупреждения о свежих схемах публикуем в Telegram-канале Cryptium.

Источники: отчёт Chainalysis о криптопреступности за 2025 год и список Банка России о признаках нелегальной деятельности на финансовом рынке.