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

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

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

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

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

Третий вариант — подмена предмета. Логотип аудитора стоит на сайте, но отчёт относится к другому контракту того же проекта: к токену, а не к хранилищу; к прежней версии, а не к текущей. Формально никто не обманул. Фактически проверенного кода вы не касаетесь.

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

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

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

Статус находки в реестре Что он означает по существу Как влияет на крупный перевод Что проверить дополнительно
Исправлена, подтверждено повторной проверкой Код изменён, аудитор проверил правку и зафиксировал результат Не влияет при условии, что проверялась текущая версия кода Совпадает ли версия из отчёта с той, что развёрнута в сети
Исправлена частично Снижена вероятность или последствия, сама причина сохранена Допустимо для небольших сумм, требует разбора для крупных Какая часть сценария осталась рабочей и при каких условиях
Принята к сведению, изменений нет Разработчик согласился с находкой и решил её не исправлять Прямой риск: сценарий остаётся достижимым по описанию аудитора Обоснование разработчика и наличие внешних ограничений вроде лимитов
Отклонена как вне предмета проверки Аудитор считает, что находка относится к другому компоненту Риск не снят, а перенесён: компонент остался непроверенным Есть ли отдельный отчёт на тот компонент и какой у него срок

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

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

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

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

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

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

По отчёту Chainalysis Crypto Crime Report 2026 прямые хищения из криптовалютных сервисов и кошельков за январь — начало декабря 2025 года оценены в 3,4 млрд долларов, а на нелегальные адреса за год поступило не менее 154 млрд. Сведения проверены на 14 октября 2026 года по публикации компании о похищенных средствах.

Порядок действий после потери на контракте отличается от порядка после кражи ключа. Ключ при вас, адрес рабочий, но средства ушли по механике самого контракта.

  1. Зафиксируйте состояние: идентификатор вашей операции, адрес контракта, номер блока, время в UTC, суммы.
  2. Сохраните копию отчёта об аудите и страницу проекта целиком. Содержимое сайта меняется в первые часы после инцидента.
  3. Отзовите выданные контракту разрешения на расход токенов. Это не возвращает списанное, но закрывает дальнейший доступ.
  4. Подайте заявление в орган внутренних дел. По статье 144 Уголовно-процессуального кодекса решение принимается в срок до трёх суток, с продлением до десяти, а при документальных проверках — до тридцати суток.
  5. Если инциденту предшествовал перевод с карты, уведомите банк. Признаки операции без добровольного согласия клиента описаны в аналитике Банка России по информационной безопасности.

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

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

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

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

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

Чек-лист

  • Файл отчёта найден и открыт, а не упоминание об аудите на сайте
  • Компонент и версия из шапки совпадают с тем, куда идут средства
  • Даты начала и окончания работ зафиксированы
  • Реестр находок отсортирован по уровню опасности
  • Находки со статусами «принята к сведению» и «исправлена частично» выписаны
  • Обоснования разработчика по каждой неустранённой находке прочитаны
  • Собственный предел по неустранённым находкам определён до перевода
  • Крупная сумма разбита на пробную и основную части

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

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

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

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

Отчёт без находок — хороший знак?

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

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

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

Можно ли полагаться на оценку уровня опасности из отчёта?

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

Вердикт

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

Разборы отчётов и предупреждения о подменённых компонентах публикуем в нашем Telegram-канале.