В эпоху стремительного развития искусственного интеллекта (ИИ) внимание специалистов по безопасности и аудиторов концентрируется вокруг одной из самых интригующих вопросов: может ли ИИ эффективно выявлять уязвимости в нулезнательных (zero-knowledge, ZK) системах и что это значит для профессиональной деятельности в аудите и безопасности? За последний год в сообществе zkSecurity развернулась масштабная работа, в рамках которой был создан экспериментальный инструмент SnarkSentinel — ИИ, предназначенный для поиска ошибок в zk-схемах, написанных на языке Circom. Его тестирование на реальных проектах уже показало ряд любопытных результатов и открывает новые горизонты развития аудита с участием ИИ. Основой для экспериментов с SnarkSentinel стал Circom — популярный язык программирования для написания zk-контрактов и схем. Этот язык привлек внимание разработчиков и аудиторов из-за своего инкапсулированного и относительно компактного стиля, а также использования чрезвычайно сложных низкоуровневых криптографических алгоритмов, что сделало его идеальной площадкой для пилотных ИИ-инструментов аудита. Изначально задача казалась чрезвычайно сложной: последние отчеты компаний, специализирующихся на модели больших языков (LLM), показывали, что ИИ справляется с простыми кейсами вроде веб-приложений, но криптографические задачи остаются серьезной проблемой.
Первая попытка апробации ИИ в этой области строилась на более наивной парадигме — простом «вставлении» цирком-кода в контекст для анализа. Однако ограничение так называемого «окна контекста», количество токенов, которые может обработать модель за один раз, становилось серьезным препятствием. При этом чрезмерное включение информации размывало фокус внимания модели, снижая качество выдаваемых результатов. Произошло постепенное смещение в сторону более продуманной работы с контекстом: применение методов контекстного инжиниринга, выделение лишь релевантной информации, что позволило увеличить эффективность анализа. Вместо затратного и не всегда эффективного процесса дополнительного обучения (fine-tuning) моделей на конкретных кодовых базах, команда zkSecurity обратилась к Retrieval Augmented Generation (RAG) — технологии, которая позволяет искусственному интеллекту эффективно извлекать и использовать релевантную информацию из огромных массивов данных с помощью векторных баз данных.
Это позволило создавать интерактивных агентов, «разговаривающих» с базой кода и запрашивающих нужную им информацию по мере необходимости. Суть применения агентов заключается в том, что они выступают в роли посредников между пользователем и ИИ-моделью и помогают конструировать запросы с максимальной точностью. Такой подход сокращает избыточность и в то же время минимизирует вероятность неправильного понимания кода. Более того, практическая разработка инструмента привела к созданию специализированных «экспертных агентов» — модулей, ориентированных на конкретные типы задач, которые в совокупности обеспечивают более комплексный и сфокусированный аудит. Важным шагом стало создание внутреннего графа зависимостей между элементами Circom-кода, что позволило агентам оперировать не с хаотичным набором файлов, а с четко структурированной системой взаимосвязей.
Такой подход оказался очень успешным именно для Circom, поскольку позволяет сократить объем информации, которую необходимо обрабатывать, и повышает точность выявления уязвимостей. Выбор фреймворка для реализации агентских потоков оказал немаловажное влияние. В текущем ландшафте технологий наблюдается своеобразный «война фреймворков», схожая с эволюцией JavaScript в середине 2010-х годов, когда промышленные стандарты ещё не сложились и старые решения быстро заменялись новыми. В итоге команда остановилась на OpenAI agent SDK, сочетая его с другими сервисами вроде llama-index, что позволило сохранять гибкость и удобство интеграции. Одна из главных проблем при работе с современными языковыми моделями заключается в том, что они плохо знакомы со спецификой Circom и особенностями zk-схем в целом.
Большинство моделей не понимают нюансов использования assert — функции, которая формально не защищает, а создает лишь ограничения, и могут неверно трактовать угрозы, связанные с неполной надежностью подсказок (hints). Чтобы преодолеть этот вызов, разработчики применили методику in-context learning: в контекст запросов добавлялась подробная документация Circom, что значительно усиливало понимание моделей и позволяло им лучше ориентироваться в специфике языка и криптографии без дорогостоящего обучения. Реальные испытания SnarkSentinel на открытых и коммерческих кодах выявили интересные закономерности. ИИ успешно обнаруживал типичные и простые ошибки, включая известные off-by-one баги, и был крайне эффективен в сравнении спецификаций с реализациями. Кроме того, инструмент помог находить критичные криптографические уязвимости, как однажды и произошло с важной проблемой в библиотеке для вычисления binary Merkle root.
Описание критической уязвимости показывает, как ИИ способен помочь в аудите, даже если сам он не полностью оценивает степень риска. Проблема была связана с отсутствием проверки, что массив индексов содержал только нули и единицы — необходимые булевы значения, гарантирующие корректную работу мультиплексора MultiMux1. На практике это позволяло злоумышленнику создавать доказательства для значений, которые не входят в дерево, что ставит под угрозу безопасность всей системы. Такой пример демонстрирует, что ИИ не заменит экспертизу человека, но становится мощным подспорьем, способным направлять внимание специалистов и управлять процессом аудита к наиболее рисковым областям кода. Bug Hunt подтверждает, что сочетание человеческого интеллекта и ИИ-инструментов формирует будущее аудиторской деятельности.
Тем не менее, в работе с SnarkSentinel и подобными системами одна из главных проблем — большое количество ложных срабатываний. Ложноположительные результаты требуют дополнительного внимания и времени для анализа, что на текущем этапе снижает эффективность инструмента. Разработчики пытаются улучшить проверку багов через создание proof of concept, но криптографические эксплуатационные примеры по-прежнему остаются сложной задачей для автоматизации. Аутентификация таких багов через несколько запусков и использование специальных агентов-судей помогает минимизировать дублирование и повысить качество найденных уязвимостей. Несмотря на это, необходимость в активном человеческом контроле и экспертизе сохраняется на всех этапах.
Перспективы использования ИИ в аудитах выглядят многообещающими, но требуют осознания пределов его возможностей. Для сложных нулезнательных систем и криптографии в целом замена людей невозможна в ближайшее время. Однако в сфере низкорисковых проверок или аудитах смарт-контрактов ИИ уже может стать стандартом, существенно снижая затраты и сроки проверки. Прогнозы также указывают на возможную трансформацию моделей багбаунти, где ИИ выступит в роли активного охотника за уязвимостями и классификатора полученных отчётов. Это, в свою очередь, меняет динамику безопасности и увеличивает риски, поскольку с появлением таких инструментов простые пользователи (script kiddies) смогут проводить атаки с ранее недоступной эффективностью.
С другой стороны, разработчики получают аналогичные средства защиты, что в итоге может привести к повышению общего уровня безопасности. Важно отметить, что ситуация развивается динамично и требует постоянного мониторинга и адаптации методов аудита. Итогом этой эволюции становится парадокс: специалисты по безопасности становятся более опасными и эффективными благодаря инструментам ИИ, одновременно сталкиваясь с новыми вызовами и необходимостью постоянно расширять свои компетенции. SnarkSentinel и подобные проекты — это пример того, как синергия человека и искусственного интеллекта уже сегодня изменяет мировой ландшафт кибербезопасности и аудита нулезнательных систем.