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

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

Как выглядит схема со стороны жертвы

Со стороны пользователя всё убедительно. Проект показывает логотип аудиторской компании, ссылку на документ и слово «проверено», и этого достаточно для решения. Никто не открывает сам отчёт, потому что в нём тридцать страниц на английском, а вывод уже сообщён на странице проекта.

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

Второй приём работает адресно. В личных сообщениях появляется «аудитор» или «представитель компании», который присылает файл с отчётом либо предлагает проверить контракт вашего собственного проекта со скидкой. По данным отчёта Chainalysis о криптопреступности, опубликованного 15 января 2025 года, объём похищенного за 2024 год вырос примерно на 21% и составил 2,2 миллиарда долларов, причём на компрометацию приватных ключей пришлось 43,8% украденного — то есть доля, которую никакой аудит кода не закрывает.

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

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

Элемент отчёта Что он должен содержать Признак проблемы Чем проверить
Область проверки. Перечень файлов и хеш коммита исходного кода. Область описана общими словами. Сверка коммита с репозиторием проекта.
Адреса контрактов. Конкретные адреса в конкретных сетях. Адресов нет либо они не совпадают с рабочим. Адрес в обозревателе и верификация кода.
Перечень находок. Уровень критичности и статус каждой. Статусы отсутствуют или все «принято к сведению». Чтение таблицы находок целиком.
Дата отчёта. Дату проверки и версию документа. Дата раньше последнего обновления контракта. История изменений контракта в обозревателе.
Источник публикации. Страницу на сайте аудиторской компании. Файл получен в переписке или по ссылке из чата. Поиск отчёта в разделе публикаций аудитора.

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

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

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

  1. Найдите отчёт в разделе публикаций на сайте аудиторской компании, а не по ссылке от проекта.
  2. Откройте раздел об области проверки и выпишите хеш коммита и перечень адресов.
  3. Сверьте адрес из отчёта с адресом контракта, с которым вы собираетесь работать.
  4. Посмотрите в обозревателе, верифицирован ли код по этому адресу и когда контракт обновлялся последний раз.
  5. Пролистайте таблицу находок и посчитайте, сколько из них имеют статус исправления.
Схема из пяти шагов: найти отчёт на сайте аудитора, выписать коммит и адреса из области проверки, сверить адрес с рабочим контрактом, проверить верификацию и дату обновления в обозревателе, посчитать статусы находок
Схема из пяти шагов: найти отчёт на сайте аудитора, выписать коммит и адреса из области проверки, сверить адрес с рабочим контрактом, проверить верификацию и дату обновления в обозревателе, посчитать статусы находок
Аудит кода не покрывает хранение ключей, работу команды и подмену сайта. Доля похищенного через компрометацию приватных ключей в 2024 году составила 43,8% по данным Chainalysis, и ни один отчёт об аудите контракта этого риска не касается. Вывод «проверено аудитором» отвечает лишь на вопрос о коде на определённую дату.
Разложите риск по источникам, и станет видно границу применимости отчёта. По данным Chainalysis за 2024 год похищено около 2,2 миллиарда долларов, рост к предыдущему году — примерно 21%. На компрометацию приватных ключей пришлось 43,8% этой суммы, а на группы, связанные с КНДР, — 1,34 миллиарда долларов, то есть 61% всего похищенного. Аудит кода не адресует ни первую долю, ни вторую.

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

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

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

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

Первое правило относится к источнику документа. Отчёт берут на сайте аудитора, по его разделу публикаций: так снимается весь класс подделок, причём без чтения содержимого. Файл, пришедший в переписке, не является отчётом независимо от оформления и наличия подписей.

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

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

Чек-лист

  • Отчёт найден на сайте аудиторской компании.
  • Хеш коммита и перечень адресов выписаны из области проверки.
  • Адрес из отчёта совпадает с адресом рабочего контракта.
  • Код по адресу верифицирован, дата последнего обновления известна.
  • Статусы находок прочитаны, доля исправленных подсчитана.
  • Файлы с отчётами из переписки удалены без открытия.

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

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

Как читать отчёт об аудите смарт-контракта, если нет технического образования?

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

Может ли аудитор написать в личные сообщения и прислать отчёт?

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

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

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

Гарантирует ли аудит, что средства в контракте в безопасности?

Нет. Аудит относится к коду на определённую дату и не покрывает хранение приватных ключей, действия команды, подмену сайта, а также обновление реализации контракта после проверки. По данным Chainalysis, на компрометацию ключей в 2024 году пришлось 43,8% похищенного — риск вне области любого аудита кода.

Вердикт

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

Разборы контрактов, отчётов и инцидентов выходят в Telegram-канале Cryptium.

Источники: отчёт Chainalysis о криптопреступности за 2024 год и раздел Банка России об информационной безопасности. Данные проверены на 15 октября 2026 года.