Аудит был. В границы он не входил
Заголовок обещает 885 млн потерь вне границ аудита. В самом исследовании этого числа нет, а на двух инцидентах держится весь вывод. Разбираем, что осталось.
В первой половине 2026 года у DeFi-протоколов, прошедших аудит, украли 885 миллионов долларов — и всё это через дыры, которых в границах аудита не было.
Так говорит заголовок разбора, разошедшегося по отраслевым лентам на прошлой неделе. Числа в нём нет. Ни в исследовании, на которое он ссылается, ни в теле самой статьи — только в заголовке.
Разберём, что под ним лежит: там есть и настоящая находка, и способ её испортить, и оба стоят внимания больше, чем сама цифра.
Что в препринте
Первоисточник — препринт на arXiv, поданный 13 августа 2026 года: «The ack3 H1 2026 DeFi Incident Dataset: Audit Scope Across 135 Security Incidents». Авторы — Йозеф Гаттермайер, Ян Каливода и Арман Башович.
Их цифры:
- 135 инцидентов с 1 января по 29 июня 2026 года, суммарно 939,86 млн долларов;
- у 68 из них нашлась история аудита, потери в этом подмножестве — 721,24 млн;
- 46 инцидентов из 68 прошли вне границ аудита: 67,6% по количеству и 94,4% по деньгам — 680,97 млн из 721,24 млн.
Ни одно из этих чисел не равно 885 миллионам. Максимум, который можно приписать «протоколам с аудитом», — 721 миллион, это все их потери, и в границах, и вне. Заголовок называет сумму, которая больше всего разбираемого объёма.
Откуда она взялась, точно сказать нельзя, но арифметика подсказывает: 94,4% от 939,86 млн — это 887 млн. Похоже, долю, посчитанную на подмножестве из 68 инцидентов, умножили на общую сумму всех 135. Так проценты и превращаются в деньги, которых не было.
Два инцидента, на которых держится вывод
Дальше интереснее. 94,4% — это почти всё, и звучит как приговор индустрии аудитов. Но посмотрите, из чего эта сумма сложена.
Из 680,97 млн долларов «вне границ» 577 миллионов — это два случая:
- Kelp DAO, 18 апреля, 292 млн. Атакующий прошёл через мост: за проверку межцепочечных сообщений перед выдачей средств отвечал один-единственный узел, конфигурация «1 из 1».
- Drift Protocol, 1 апреля, 285 млн. Три вектора подряд: выпуск фальшивого токена, манипуляция оракулом и скомпрометированный админский ключ. Двенадцать минут, 31 вывод.
Оба инцидента специалисты по отслеживанию связали с одной и той же группой, работающей на КНДР.
Авторы препринта честно проверили, что будет без этих двух, — и сами напечатали результат: доля падает с 94,4% до 72,1%. Но упала не только доля. Упало основание: 103,97 млн из 144,24 млн вместо 680,97 из 721,24. Пять шестых денег ушло вместе с двумя строками.
Когда доля держится на паре наблюдений, это не статистика по отрасли, а два случая с процентом сбоку. Проверять такое просто: уберите верхние строки и посмотрите, осталось ли утверждение.
«Вне границ» — не то же самое, что «не проверили»
И вот к чему приводит взгляд на эти два случая вблизи.
Конфигурация верификатора «1 из 1» — это не баг в коде контракта. Это параметр развёртывания. Скомпрометированный админский ключ — это вообще не про код, это про то, где лежал ключ и кто им мог воспользоваться.
Оба случая действительно вне границ типового аудита смарт-контракта, и это не упущение аудитора: он смотрел на то, о чём договаривались. Просто периметр договора не совпал с периметром того, что может разорить протокол.
Отсюда вывод, который авторы и формулируют — единственный, на который данные дают право:
Исследование поддерживает ограниченное заключение: история аудита и границы аудита — разные переменные.
Это очень скромно сказано по сравнению с заголовком. И это правда: наличие отчёта не говорит вам, что именно проверяли.
Кто считал
Ещё одна деталь, без которой картина неполная: двое из трёх авторов работают в ack3 — компании, которая продаёт аудиты безопасности.
Это не дисквалифицирует работу. Датасет выложен открыто, ограничения перечислены самими авторами, и перечислены добросовестно: контрольной группы нет, причинность не устанавливается, непубличные аудиты и незарегистрированные инциденты в выборку не попали, а цифры потерь из разных источников «не вполне сопоставимы».
Но вывод «аудит покрывает меньше, чем вам кажется» для продавца аудитов коммерчески удобен: он не отменяет покупку, а увеличивает её объём. Держать это в голове при чтении стоит — ровно так же, как читать замеры производительности базы данных, опубликованные вендором этой базы.
Что с этим делать
Настоящая находка исследования полезна, и она не про то, что аудиты бесполезны. Она про то, что «прошёл аудит» — не свойство протокола, а свойство куска кода в конкретных границах на конкретную дату. Практически это значит вот что.
Спрашивайте границы, а не факт аудита. У отчёта есть раздел scope. Если вы выбираете, чем пользоваться, или проверяете подрядчика — читайте его первым, до выводов. Вопрос «что вы не смотрели» информативнее вопроса «что вы нашли».
Требуйте список исключений письменно. Хороший аудитор его и так даст: конфигурация развёртывания, управление ключами, оракулы, мосты, права администратора, обновляемость. Каждый пункт, который не вошёл, — это ваша зона, а не его.
Проверяйте по отдельности то, что в границы не входит никогда. Оба инцидента, давших 577 миллионов, лежат именно там: кто держит ключ, сколько подписей нужно, откуда берётся цена. Это не аудит кода, это ревизия эксплуатации — и заказывать её надо отдельно, потому что сама она не появится.
Не переносите долю с подмножества на целое. Это не про блокчейн, это про чтение любых цифр. 94,4% были посчитаны на 68 инцидентах из 135; применённые ко всем 135, они дали 200 лишних миллионов долларов, которых не существует. Каждый раз, когда видите процент и сумму рядом, спрашивайте, от чего именно этот процент.
Мы писали раньше, что аудитору стоит отдавать контекст заранее, чтобы не платить за его восстановление. Здесь — обратная сторона того же стола: договариваясь о границах, вы решаете не только сколько заплатите, но и что останется вашей проблемой после того, как отчёт придёт.
Читать дальше
За контекст вы платите аудитору. Вот что можно отдать заранее
Аудитор берёт деньги за время, и первые дни уходят на восстановление контекста. Четыре вещи, которые мы сделали для своего сканера чужих контрактов.
Что оказалось в реестре умирающей сети
Собрали реестр контрактов DFK Chain за две недели до отключения. 84% ликвидности лежит в стейкинге, пятая часть — в контракте, который проект давно заменил.
Infra Graveyard Weekly №06: TON предупреждал сто дней, а вышло 0,11 %
Мост с $15 млн внутри закрылся 1 сентября после ста дней предупреждений и с обнулёнными комиссиями. За деньгами почти никто не пришёл.