Перейти к основному контенту

70 постов с тегом "Безопасность"

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

Посмотреть все теги

Конец доверенных мостов: как доказательства с нулевым разглашением переписывают безопасность кроссчейн-взаимодействий

· 14 мин чтения
Dora Noda
Software Engineer

Представьте, что вы передаете 625 миллионов долларов наличными девяти незнакомцам и верите, что как минимум пятеро из них никогда не вступят в сговор против вас. Именно это, по сути, сделали пользователи Ronin Bridge в марте 2022 года — и Lazarus Group доказала, что это была ужасная идея, менее чем за шесть часов. Взлом Ronin, эксплойт Wormhole на 320 миллионов долларов и хаотичное опустошение Nomad на 190 миллионов долларов имеют общий недостаток: все они полагаются на людей, а не на математику, чтобы сохранять честность.

Доказательства с нулевым разглашением (Zero-knowledge proofs) меняют фундаментальную модель доверия кроссчейн-инфраструктуры. Вместо вопроса «кто поручится за эту транзакцию?», ZK-мосты спрашивают: «можете ли вы доказать, что эта транзакция является валидной частью истории Сети А?» — это вопрос, на который может ответить только корректная криптография. После многих лет теоретических исследований ZK-мосты достигли производственных масштабов в 2024–2025 годах: под их защитой находятся миллиарды долларов, а стоимость генерации доказательств упала в 45 раз всего за один год.

Кастодиальное хранение цифровых активов для безопасного исполнения сделок с низкой задержкой в масштабе

· 11 мин чтения
Dora Noda
Software Engineer

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


Краткий обзор

Хранение и трейдинг больше не могут существовать в разных мирах. На современных рынках цифровых активов безопасное хранение клиентских активов — это лишь половина дела. Если вы не можете исполнять сделки за миллисекунды при изменении цен, вы теряете доходность и подвергаете клиентов неоправданным рискам, таким как максимальная извлекаемая стоимость (MEV), отказы контрагентов и операционные заторы. Современный стек кастодиального хранения и исполнения должен сочетать передовую безопасность с высокопроизводительной инженерией. Это означает интеграцию таких технологий, как многосторонние вычисления (MPC) и аппаратные модули безопасности (HSM) для подписания, использование механизмов политик и приватной маршрутизации транзакций для предотвращения опережающих сделок (front-running), а также использование инфраструктуры в режиме active/active с внебиржевыми расчетами для снижения рисков площадок и повышения эффективности капитала. Важно, что комплаенс не может быть надстройкой; такие функции, как потоки данных Travel Rule, неизменяемые журналы аудита и контроли, соответствующие стандартам вроде SOC 2, должны быть встроены непосредственно в конвейер транзакций.


Почему «скорость хранения» важна сейчас

Исторически кастодианы цифровых активов оптимизировались для одной основной цели: не потерять ключи. Хотя это остается фундаментальным требованием, запросы эволюционировали. Сегодня лучшее исполнение и целостность рынка стали столь же обязательными. Когда ваши сделки проходят через публичные мемпулы, искушенные участники могут видеть их, изменять их порядок или проводить «сендвич-атаки», чтобы извлечь прибыль за ваш счет. Это MEV в действии, и это напрямую влияет на качество исполнения. Скрытие конфиденциальных потоков ордеров от публичного просмотра с помощью приватных реле транзакций — мощный способ снизить это влияние.

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

Регуляторы также устраняют пробелы. Внедрение правила Travel Rule Группы разработки финансовых мер борьбы с отмыванием денег (FATF) и рекомендации таких органов, как IOSCO и Совет по финансовой стабильности, подталкивают рынки цифровых активов к принципу «те же риски — те же правила». Это означает, что кастодиальные платформы должны с самого начала строиться с учетом комплаенс-потоков данных и проверяемых механизмов контроля.


Цели проектирования (Как выглядит «хороший» результат)

Высокопроизводительный кастодиальный стек должен строиться вокруг нескольких основных принципов проектирования:

  • Задержка, которую можно планировать: Каждая миллисекунда от намерения клиента до трансляции в сеть должна измеряться, управляться и контролироваться с соблюдением строгих целевых уровней обслуживания (SLO).
  • Исполнение, устойчивое к MEV: Конфиденциальные ордера должны по умолчанию маршрутизироваться через приватные каналы. Попадание в публичный мемпул должно быть осознанным выбором, а не неизбежностью.
  • Ключевой материал с реальными гарантиями: Закрытые ключи никогда не должны покидать свои защищенные границы, независимо от того, распределены ли они по сегментам MPC, хранятся в HSM или изолированы в доверенных средах исполнения (TEE). Ротация ключей, обеспечение кворума и надежные процедуры восстановления являются обязательными условиями.
  • Надежность в режиме active/active: Система должна быть устойчивой к сбоям. Это требует резервирования в нескольких регионах и у нескольких провайдеров как для RPC-узлов, так и для подписантов, дополненного автоматическими прерывателями (circuit breakers) и аварийными выключателями на случай инцидентов на площадках или в сети.
  • Compliance-by-construction (Соответствие по построению): Комплаенс не может быть второстепенной задачей. Архитектура должна иметь встроенные инструменты для данных Travel Rule, проверок AML/KYT и неизменяемых журналов аудита, при этом все средства контроля должны напрямую соответствовать признанным стандартам, таким как SOC 2 Trust Services Criteria.

Эталонная архитектура

Эта диаграмма иллюстрирует высокоуровневую архитектуру платформы хранения и исполнения, отвечающую этим целям.

graph LR A[Клиент / Приложение] --> B[API намерений] B --> C[Движок политик и рисков] C --> D[Оркестратор подписантов] C --> E[Сервисы комплаенса - Travel Rule, KYT, белые списки]

subgraph "Подписание" D --> S1[MPC-кластер - t-of-n] D --> S2[HSM] D --> S3[TEE - аттестовано] D --> S4[Управление ключами - стандарт FIPS] end

D --> R[Маршрутизатор исполнения] R --> PR[Приватные реле транзакций / Билдеры] R --> P1[Основной RPC] R --> P2[Резервный RPC] P1 --> N[Сеть / Валидаторы] P2 --> N

subgraph "Наблюдаемость" O1[Подписки на мемпул и блоки] O2[Пост-трейд сверка] O3[Неизменяемый лог аудита / SIEM / Отчетность] end

N --> O1 R --> O2 D --> O3 C --> O3

  • Движок политик и рисков является центральным привратником для каждой инструкции. Он оценивает всё — полезную нагрузку Travel Rule, лимиты скорости, оценки рисков адресов и требования к кворуму подписантов — перед доступом к любому ключевому материалу.
  • Оркестратор подписантов интеллектуально направляет запросы на подпись в наиболее подходящую плоскость управления для конкретного актива и политики. Это может быть:
    • MPC (Multi-Party Computation) с использованием схем пороговой подписи (таких как t-of-n ECDSA/EdDSA) для распределения доверия между несколькими сторонами или устройствами.
    • HSM (Hardware Security Modules) для аппаратного хранения ключей с детерминированными политиками резервного копирования и ротации.
    • Trusted Execution Environments (например, AWS Nitro Enclaves) для изоляции кода подписания и привязки ключей непосредственно к аттестованному, проверенному программному обеспечению.
  • Маршрутизатор исполнения отправляет транзакции по оптимальному пути. Он отдает предпочтение приватной отправке транзакций для крупных или чувствительных к информации ордеров, чтобы избежать опережающих сделок. Он переключается на публичную отправку при необходимости, используя отказоустойчивость RPC с несколькими провайдерами для поддержания высокой доступности даже во время перебоев в работе сети.
  • Слой наблюдаемости обеспечивает представление о состоянии системы в реальном времени. Он отслеживает мемпул и новые блоки через подписки, сверяет исполненные сделки с внутренними записями и фиксирует неизменяемые записи аудита для каждого решения, подписи и трансляции.

Компоненты безопасности (и почему они важны)

  • Пороговые подписи (MPC): Эта технология распределяет контроль над закрытым ключом таким образом, что ни одна машина — или человек — не может в одностороннем порядке переместить средства. Современные протоколы MPC позволяют реализовать быстрое и защищенное от вредоносных действий подписание, которое подходит для бюджетов задержек в промышленной эксплуатации.
  • HSM и соответствие стандартам FIPS: HSM обеспечивают защиту ключей с помощью аппаратного обеспечения с защитой от вскрытия и задокументированных политик безопасности. Соответствие таким стандартам, как FIPS 140-3 и NIST SP 800-57, предоставляет проверяемые и общепринятые гарантии безопасности.
  • Аттестованные TEE: Доверенные среды исполнения (Trusted Execution Environments) привязывают ключи к конкретному, верифицированному коду, работающему в изолированных анклавах. Используя службу управления ключами (KMS), вы можете создавать политики, которые передают ключевой материал только этим аттестованным рабочим нагрузкам, гарантируя, что подписывать может только одобренный код.
  • Приватные реле для защиты от MEV: Эти сервисы позволяют отправлять конфиденциальные транзакции напрямую билдерам блоков или валидаторам, минуя публичный мемпул. Это значительно снижает риск фронтраннинга и других форм MEV.
  • Внебиржевые расчеты (Off-Exchange Settlement): Эта модель позволяет хранить залог в сегрегированном хранилище, одновременно торгуя на централизованных площадках. Это ограничивает риск контрагента, ускоряет взаимозачет и высвобождает капитал.
  • Контроли, сопоставленные с SOC 2 / ISO: Документирование и тестирование операционных контролей на соответствие признанным фреймворкам позволяет клиентам, аудиторам и партнерам доверять вашей безопасности и комплаенсу, а также независимо проверять их.

Стратегия минимизации задержек: куда уходят миллисекунды

Для достижения низкого времени исполнения транзакций необходимо оптимизировать каждый этап их жизненного цикла:

  • Интент → Решение по политике: Держите логику оценки политик «горячей» в оперативной памяти. Кэшируйте данные KYT (Know-Your-Transaction) и белых списков с короткими ограниченными значениями времени жизни (TTL) и, по возможности, заранее вычисляйте кворумы подписантов.
  • Подписание: Используйте постоянные сессии MPC и дескрипторы ключей HSM, чтобы избежать задержек на холодный старт. Для TEE закрепляйте анклавы, прогревайте пути аттестации и повторно используйте сессионные ключи там, где это безопасно.
  • Трансляция: Отдавайте предпочтение постоянным соединениям WebSocket с RPC-узлами вместо HTTP. Размещайте свои сервисы исполнения в тех же регионах, где находятся ваши основные RPC-провайдеры. При скачках задержки делайте идемпотентные повторные попытки и дублируйте трансляцию через нескольких провайдеров.
  • Подтверждение: Вместо постоянного опроса статуса транзакции подпишитесь на квитанции (receipts) и события напрямую из сети. Направляйте эти изменения состояния в конвейер сверки для немедленной обратной связи с пользователем и внутреннего учета.

Установите строгие SLO для каждого этапа (например, проверка политики < 20 мс, подписание < 50–100 мс, трансляция < 50 мс при нормальной нагрузке) и обеспечивайте их соблюдение с помощью бюджетов ошибок и автоматического переключения при деградации задержек p95 или p99.


Риск и комплаенс на этапе проектирования

Современный стек кастодиального хранения должен рассматривать комплаенс как неотъемлемую часть системы, а не как надстройку.

  • Оркестрация Travel Rule: Генерируйте и проверяйте данные отправителя и получателя в режиме реального времени при каждой инструкции по переводу. Автоматически блокируйте или перенаправляйте транзакции с участием неизвестных поставщиков услуг виртуальных активов (VASP) и регистрируйте криптографические подтверждения каждого обмена данными для целей аудита.
  • Риск адресов и белые списки: Интегрируйте ончейн-аналитику и списки санкционных проверок напрямую в механизм политик. Применяйте принцип «запрет по умолчанию», когда переводы разрешены только на адреса из белых списков или в рамках конкретных исключений из политик.
  • Неизменяемый аудит: Хешируйте каждый запрос, одобрение, подпись и трансляцию в журнал, работающий только на добавление. Это создает защищенный от несанкционированного доступа аудиторский след, который можно передавать в SIEM для обнаружения угроз в реальном времени и предоставлять аудиторам для тестирования контролей.
  • Структура контроля: Сопоставьте каждый технический и операционный контроль с критериями доверия SOC 2 (безопасность, доступность, целостность обработки, конфиденциальность и приватность) и внедрите программу непрерывного тестирования и валидации.

Внебиржевые расчеты: безопасное взаимодействие с площадками

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

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


Контрольный список (скопируйте в свой регламент)

  • Кастодиальное хранение ключей
    • Использование MPC с порогом t-of-n в независимых доменах доверия (например, мультиоблако, локальные серверы, HSM).
    • Использование модулей, прошедших валидацию FIPS, где это возможно; наличие планов ежеквартальной ротации ключей и перевыпуска ключей в случае инцидентов.
  • Политики и утверждения
    • Внедрение динамического механизма политик с лимитами оборота, поведенческой эвристикой и ограничениями по рабочему времени.
    • Требование подтверждения по принципу «четырех глаз» для высокорискованных операций.
    • Применение белых списков адресов и проверок Travel Rule перед любой операцией подписания.
  • Усиление исполнения
    • Использование приватных реле транзакций по умолчанию для крупных или чувствительных ордеров.
    • Использование двух RPC-провайдеров с балансировкой на основе их состояния и надежной защитой от повторного воспроизведения.
  • Мониторинг и реагирование
    • Внедрение обнаружения аномалий в режиме реального времени для частоты интентов, отклонений цен на газ и неудачных включений транзакций.
    • Наличие функции экстренного отключения (kill-switch) одним кликом для заморозки всех подписантов для конкретного актива или площадки.
  • Комплаенс и аудит
    • Ведение неизменяемого журнала событий для всех действий в системе.
    • Проведение непрерывного тестирования контролей в соответствии с SOC 2.
    • Обеспечение надежного хранения всех доказательств соблюдения Travel Rule.

Примечания по внедрению

  • Люди и процессы превыше всего: Технологии не могут исправить неопределенные политики авторизации или неясную ответственность за дежурство (on-call). Четко определите, кто уполномочен изменять политику, обновлять код подписанта (signer code), проводить ротацию ключей и одобрять исключения.
  • Минимизируйте сложность там, где это возможно: Каждая новая интеграция блокчейна, моста или площадки (venue) добавляет нелинейный операционный риск. Добавляйте их обдуманно, с четким тестовым покрытием, мониторингом и планами отката.
  • Тестируйте как злоумышленник: Регулярно проводите учения по хаос-инжинирингу. Симулируйте потерю подписанта, сбои аттестации анклава, зависание мемпулов, ограничение API площадок и некорректные данные Travel Rule, чтобы убедиться в устойчивости вашей системы.
  • Докажите это: Отслеживайте KPI, которые действительно важны для ваших клиентов:
    • Время до трансляции (time-to-broadcast) и время до первого подтверждения (p95/p99).
    • Процент транзакций, отправленных через MEV-безопасные маршруты, по сравнению с публичным мемпулом.
    • Использование площадок и повышение эффективности обеспечения за счет использования внебиржевых расчетов (off-exchange settlement).
    • Метрики эффективности контроля, такие как процент переводов с полными данными Travel Rule и скорость закрытия результатов аудита.

Итог

Кастодиальная платформа, достойная институциональных потоков, работает быстро, подтверждает свои средства контроля и ограничивает контрагентские и информационные риски — и все это одновременно. Для этого требуется глубоко интегрированный стек, построенный на MEV-ориентированной маршрутизации, подписании на базе аппаратных средств или MPC, инфраструктуре active/active и внебиржевых расчетах, которые обеспечивают безопасность активов при доступе к глобальной ликвидности. Объединив эти компоненты в единый, отлаженный конвейер, вы обеспечиваете то, что институциональные клиенты ценят больше всего: уверенность на скорости.

Кросс-чейн обмен сообщениями и общая ликвидность: модели безопасности LayerZero v2, Hyperlane и IBC 3.0

· 47 мин чтения
Dora Noda
Software Engineer

Протоколы интероперабельности, такие как LayerZero v2, Hyperlane и IBC 3.0, становятся критически важной инфраструктурой для мультичейн-экосистемы DeFi. Каждый из них использует свой подход к передаче кросс-чейн сообщений и обеспечению общей ликвидности, опираясь на различные модели безопасности:

  • LayerZero v2 — модель агрегации доказательств с использованием децентрализованных сетей верификаторов (DVN)
  • Hyperlane — модульный фреймворк, часто использующий комитет валидаторов с мультиподписью (multisig)
  • IBC 3.0 — протокол легкого клиента с минимизацией доверия к ретрансляторам в экосистеме Cosmos

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

Механизмы безопасности ведущих кросс-чейн протоколов

LayerZero v2: Агрегация доказательств с использованием децентрализованных сетей верификаторов (DVN)

LayerZero v2 — это протокол обмена сообщениями omnichain, который делает упор на модульный, настраиваемый на уровне приложений уровень безопасности. Основная идея заключается в том, чтобы позволить приложениям защищать сообщения с помощью одной или нескольких независимых децентрализованных сетей верификаторов (DVN), которые коллективно подтверждают кросс-чейн сообщения. В модели агрегации доказательств LayerZero каждая DVN по сути представляет собой набор верификаторов, которые могут независимо проверять сообщение (например, путем проверки доказательства блока или подписи). Приложение может потребовать агрегированные доказательства от нескольких DVN перед принятием сообщения, формируя пороговый «стек безопасности».

По умолчанию LayerZero предоставляет несколько готовых DVN — например, DVN, управляемую LayerZero Labs, которая использует валидацию мультиподписью 2-из-3, и DVN под управлением Google Cloud. Но что особенно важно, разработчики могут комбинировать DVN: например, можно установить конфигурацию «1 из 3 из 5», что означает необходимость подписи конкретной DVN плюс любых 2 из 5 остальных. Такая гибкость позволяет объединять различные методы верификации (легкие клиенты, zk-доказательства, оракулы и т. д.) в одном агрегированном доказательстве. Фактически LayerZero v2 обобщает модель Ultra Light Node из v1 (которая полагалась на одного ретранслятора и одного оракула) в агрегацию мультиподписей X-из-Y-из-N через DVN. Контракт LayerZero Endpoint приложения в каждой сети доставит сообщение только в том случае, если необходимый кворум DVN предоставил валидные подтверждения для этого сообщения.

Характеристики безопасности: Подход LayerZero минимизирует доверие настолько, насколько честна хотя бы одна DVN из обязательного набора (или если одно zk-доказательство верно и т. д.). Позволяя приложениям запускать собственную DVN в качестве обязательного подписанта, LayerZero даже дает приложению возможность наложить вето на любое сообщение, если оно не одобрено верификатором команды приложения. Это может значительно усилить безопасность (ценой централизации), гарантируя, что ни одно кросс-чейн сообщение не будет выполнено без подписи приложения. С другой стороны, разработчики могут выбрать более децентрализованный кворум DVN (например, 5 из 15 независимых сетей) для более сильного распределения доверия. LayerZero называет это «безопасностью, принадлежащей приложению» (application-owned security): каждое приложение выбирает компромисс между безопасностью, стоимостью и производительностью, настраивая свои DVN. Все подтверждения DVN в конечном итоге проверяются ончейн неизменяемыми контрактами LayerZero Endpoint, сохраняя уровень транспортировки без разрешений. Недостатком является то, что безопасность сильна лишь настолько, насколько сильны выбранные DVN — если настроенные DVN вступят в сговор или будут скомпрометированы, они могут одобрить мошенническое кросс-чейн сообщение. Таким образом, ответственность за выбор надежных DVN ложится на каждое приложение, иначе оно рискует ослабить свою безопасность.

Hyperlane: Модель валидатора с мультиподписью и модульные ISM

Hyperlane — это инфраструктура интероперабельности, построенная вокруг ончейн-модуля межчейн-безопасности (Interchain Security Module, ISM), который проверяет сообщения перед их доставкой в целевую сеть. В простейшей (и стандартной) конфигурации ISM Hyperlane использует набор валидаторов с мультиподписью: комитет офчейн-валидаторов подписывает подтверждения (часто корень Меркла всех исходящих сообщений) из исходной сети, и на стороне назначения требуется пороговое количество подписей. Другими словами, Hyperlane полагается на кворум доверенных валидаторов для подтверждения того, что «сообщение X действительно было отправлено в сети А», что аналогично консенсусу блокчейна, но на уровне моста. Например, Wormhole использует 19 стражей (guardians) с мультиподписью 13-из-19 — подход Hyperlane схож по духу (хотя Hyperlane отличается от Wormhole).

Ключевой особенностью является то, что у Hyperlane нет единого закрепленного набора валидаторов на уровне протокола. Вместо этого запустить валидатора может кто угодно, а разные приложения могут развертывать контракты ISM с различными списками валидаторов и порогами подписей. Протокол Hyperlane предоставляет стандартные развертывания ISM (с набором валидаторов, запущенных командой), но разработчики вольны настраивать набор валидаторов или даже саму модель безопасности для своего приложения. На самом деле Hyperlane поддерживает несколько типов ISM, включая Aggregation ISM, который объединяет несколько методов верификации, и Routing ISM, который выбирает ISM на основе параметров сообщения. Например, приложение может потребовать мультиподпись Hyperlane и подтверждение внешнего моста (например, Wormhole или Axelar) — достигая более высокого уровня безопасности за счет избыточности.

Характеристики безопасности: Базовая безопасность модели мультиподписи Hyperlane зависит от честности большинства её валидаторов. Если пороговое количество (например, 5 из 8) валидаторов вступит в сговор, они могут подписать поддельное сообщение, поэтому допущение о доверии сводится к мультиподписи N-из-M. Hyperlane решает этот риск путем интеграции с рестейкингом EigenLayer, создавая экономический модуль безопасности (Economic Security Module, ESM), который требует от валидаторов внесения стейков в ETH, которые могут быть слэшированы за ненадлежащее поведение. Этот «Активно валидируемый сервис (AVS)» означает, что если валидатор Hyperlane подпишет невалидное сообщение (которого на самом деле нет в истории исходной сети), любой может предоставить доказательство в Ethereum, чтобы слэшировать стейк этого валидатора. Это значительно усиливает модель безопасности, создавая экономические стимулы против мошенничества — кросс-чейн сообщения Hyperlane становятся защищены экономическим весом Ethereum, а не только социальной репутацией валидаторов. Однако одним из компромиссов является то, что зависимость от Ethereum для слэшинга вводит зависимость от доступности (liveness) Ethereum и предполагает, что доказательства мошенничества могут быть отправлены вовремя. Что касается доступности самого протокола, Hyperlane предупреждает: если недостаточное количество валидаторов находится в сети для достижения порога, доставка сообщений может остановиться. Протокол смягчает это, позволяя гибко настраивать пороги — например, используя больший набор валидаторов, чтобы периодические сбои в работе не останавливали сеть. В целом, модульный подход Hyperlane к мультиподписи обеспечивает гибкость и возможность обновления (приложения сами выбирают свою безопасность или комбинируют несколько источников) ценой добавления доверия к набору валидаторов. Это более слабая модель доверия, чем полноценный легкий клиент, но с учетом последних инноваций (таких как рестейкинг залога и слэшинг) она может на практике приближаться к аналогичным гарантиям безопасности, оставаясь при этом более простой в развертывании во многих сетях.

IBC 3.0: Легкие клиенты с ретрансляторами, минимизирующими доверие

Протокол Inter-Blockchain Communication (IBC), широко используемый в экосистеме Cosmos, применяет принципиально иной подход: он использует ончейн легкие клиенты для проверки межцепочечного состояния, а не вводит новый набор валидаторов. В IBC каждая пара сетей устанавливает соединение, при котором Сеть B содержит легкий клиент Сети A (и наоборот). Этот легкий клиент, по сути, является упрощенной репликой консенсуса другой сети (например, отслеживает подписи набора валидаторов или хеши блоков). Когда Сеть A отправляет сообщение (пакет IBC) Сети B, ретранслятор (внецепочечный агент) передает доказательство (доказательство Меркла для пакета и заголовок последнего блока) в Сеть B. Модуль IBC Сети B затем использует ончейн легкий клиент для проверки того, что доказательство является валидным согласно правилам консенсуса Сети A. Если доказательство подтверждается (т. е. пакет был зафиксирован в финализированном блоке на A), сообщение принимается и доставляется в целевой модуль на B. По сути, Сеть B доверяет консенсусу Сети A напрямую, а не посреднику — именно поэтому IBC часто называют интероперабельностью с минимизацией доверия.

IBC 3.0 относится к последней итерации этого протокола (около 2025 года), которая вносит улучшения в производительность и функциональность: параллельную ретрансляцию для снижения задержек, кастомные типы каналов для специализированных сценариев использования и межцепочечные запросы (Interchain Queries) для чтения удаленного состояния. Примечательно, что ни одно из этих изменений не затрагивает основную модель безопасности легкого клиента — они лишь повышают скорость и расширяют возможности. Например, параллельная ретрансляция означает, что несколько ретрансляторов могут пересылать пакеты одновременно, чтобы избежать узких мест, улучшая живучесть системы без ущерба для безопасности. Межцепочечные запросы (ICQ) позволяют контракту в Сети A запрашивать данные у Сети B (с доказательством), которые затем проверяются легким клиентом Сети A для Сети B. Это расширяет возможности IBC за пределы передачи токенов до более общего доступа к данным между сетями, что по-прежнему подкрепляется верифицированными доказательствами легких клиентов.

Характеристики безопасности: Гарантия безопасности IBC так же сильна, как целостность исходной сети. Если в Сети A имеется честное большинство (или соблюден установленный порог консенсуса) и легкий клиент Сети A в Сети B обновлен, то любой принятый пакет обязательно поступил из валидного блока на A. Нет необходимости доверять каким-либо валидаторам мостов или оракулам — единственными допущениями являются нативный консенсус двух сетей и некоторые параметры, такие как период доверия (trusting period) легкого клиента (после которого старые заголовки истекают). Ретрансляторам в IBC не нужно доверять; они не могут подделать валидные заголовки или пакеты, так как они не пройдут проверку. В худшем случае злонамеренный или неактивный ретранслятор может цензурировать или задерживать сообщения, но любой желающий может запустить ретранслятор, поэтому живучесть в конечном итоге обеспечивается, если существует хотя бы один честный ретранслятор. Это очень сильная модель безопасности: фактически децентрализованная и безразрешительная по умолчанию, отражающая свойства самих блокчейнов. Компромиссы заключаются в стоимости и сложности — поддержка легкого клиента (особенно высокопроизводительной сети) в другой сети может быть ресурсозатратной (хранение изменений набора валидаторов, проверка подписей и т. д.). Для сетей на базе Cosmos SDK, использующих Tendermint/BFT, эти затраты управляемы, и IBC очень эффективен; но интеграция гетерогенных сетей (таких как Ethereum или Solana) требует сложной реализации клиентов или новой криптографии. Действительно, внедрение IBC в сетях, отличных от Cosmos, шло медленнее — такие проекты, как Polymer и Composable, работают над легкими клиентами или zk-доказательствами для расширения IBC на Ethereum и другие экосистемы. Улучшения IBC 3.0 (например, оптимизированные легкие клиенты, поддержка различных методов верификации) направлены на снижение этих затрат. В итоге модель легкого клиента IBC предлагает самые сильные гарантии доверия (отсутствие внешних валидаторов вовсе) и надежную живучесть (при наличии нескольких ретрансляторов), ценой более высокой сложности реализации и того факта, что все участвующие сети должны поддерживать протокол IBC.

Сравнение легких клиентов, мультиподписей и агрегации доказательств

Каждая модель безопасности — легкие клиенты (IBC), мультиподписи валидаторов (Hyperlane) и агрегированные доказательства (LayerZero) — имеет свои плюсы и минусы. Ниже приведено их сравнение по ключевым параметрам:

Гарантии безопасности

  • Легкие клиенты (IBC): Обеспечивают высочайшую безопасность, привязывая ончейн-проверку к консенсусу исходной сети. Здесь нет нового уровня доверия; если вы доверяете исходному блокчейну (например, Cosmos Hub или Ethereum) в том, что он не создает блоки повторно, вы доверяете и сообщениям, которые он отправляет. Это сводит к минимуму дополнительные допущения о доверии и поверхность атаки. Однако, если набор валидаторов исходной сети скомпрометирован (например, >1/3 в Tendermint или >1/2 в PoS-сети), легкому клиенту может быть передан поддельный заголовок. На практике каналы IBC обычно устанавливаются между экономически безопасными сетями, а легкие клиенты могут иметь параметры (такие как период доверия и требования к финализации блоков) для снижения рисков. В целом, минимизация доверия — главное преимущество модели легкого клиента: каждое сообщение имеет криптографическое доказательство валидности.

  • Мультиподпись валидаторов (Hyperlane и аналогичные мосты): Безопасность зависит от честности группы оффчейн-подписантов. Определенный порог (например, 2/3 валидаторов) должен подтверждать каждое межцепочечное сообщение или контрольную точку состояния. Плюс в том, что систему можно сделать достаточно безопасной при наличии авторитетных или экономически заинтересованных валидаторов. Например, 19 хранителей Wormhole или стандартный комитет Hyperlane должны вступить в сговор, чтобы скомпрометировать систему. Минус в том, что это вводит новое допущение о доверии: пользователи должны доверять комитету моста в дополнение к самим блокчейнам. Это уже становилось причиной сбоев при некоторых взломах (например, кража приватных ключей или сговор инсайдеров). Инициативы, такие как использование рестейкинга ETH в Hyperlane, добавляют экономическую безопасность: валидаторы, подписавшие некорректные данные, могут быть автоматически слешнуты в Ethereum. Это приближает мосты с мультиподписью к уровню безопасности блокчейна (через финансовое наказание за мошенничество), но это все еще не так минимизирует доверие, как легкий клиент. Вкратце: мультиподписи имеют более слабые гарантии доверия, так как приходится полагаться на большинство в небольшой группе, хотя слешинг и аудиты укрепляют уверенность.

  • Агрегация доказательств (LayerZero v2): Это своего рода «золотая середина». Если приложение настраивает свой стек безопасности (Security Stack), включая DVN легкого клиента или DVN на базе zk-доказательств, то гарантии для этих проверок могут приблизиться к уровню IBC (математика и консенсус сети). Если же используется DVN на основе комитета (например, стандартный вариант 2-из-3 в LayerZero или адаптер Axelar), то приложение наследует допущения о доверии соответствующей мультиподписи. Сильная сторона модели LayerZero в том, что можно комбинировать несколько верификаторов независимо. Например, требование «zk-доказательство валидно» плюс «оракул Chainlink подтверждает заголовок блока X» плюс «наш собственный валидатор подписал транзакцию» может радикально снизить риск атаки (злоумышленнику пришлось бы взломать всех одновременно). Также, позволяя приложению назначать собственный DVN, LayerZero гарантирует, что ни одно сообщение не будет выполнено без согласия приложения, если оно так настроено. Слабость в том, что если разработчики выберут небезопасную конфигурацию (ради экономии или скорости), они могут поставить систему под удар — например, использование одного DVN от неизвестной стороны аналогично доверию одному валидатору. Сам LayerZero не навязывает выбор и оставляет его за разработчиками, поэтому безопасность зависит от выбранных DVN. В итоге агрегация доказательств может обеспечить очень высокую безопасность (даже выше, чем у одного легкого клиента, за счет требования нескольких независимых доказательств), но также допускает уязвимые конфигурации при неверном подходе. Модель гибкая: приложение может максимально усилить защиту для крупных транзакций и упростить ее для менее значимых.

Живучесть и доступность

  • Легкие клиенты (IBC): Живучесть зависит от релейеров и поддержания легкого клиента в актуальном состоянии. Положительная сторона заключается в том, что кто угодно может запустить релейер, поэтому система не зависит от конкретного набора узлов — если один релейер остановится, другой сможет продолжить работу. Параллельная ретрансляция в IBC 3.0 дополнительно повышает доступность, не позволяя всем пакетам выстраиваться в одну очередь через один путь. На практике соединения IBC очень надежны, но существуют сценарии, в которых живучесть может пострадать: например, если ни один релейер не отправляет обновление в течение длительного времени, срок действия легкого клиента может истечь (например, если период доверия проходит без обновления), и тогда канал закрывается в целях безопасности. Однако такие случаи редки и нивелируются активными сетями релейеров. Еще один аспект живучести: пакеты IBC зависят от финализации исходной цепочки — например, ожидание 1–2 блоков в Tendermint (несколько секунд) является стандартным. В целом, IBC обеспечивает высокую доступность, пока активен хотя бы один релейер, а задержка обычно низкая (секунды) для финализированных блоков. Здесь нет понятия выхода из сети кворума валидаторов, как в мультисигах; основным фактором задержки является собственная финализация консенсуса блокчейна.

  • Валидаторы с мультиподписью (Hyperlane): Живучесть может быть слабым местом, если набор валидаторов невелик. Например, если мост использует мультиподпись 5 из 8, а 4 валидатора находятся в автономном режиме или недоступны, передача кросс-чейн сообщений прекращается, так как порог не может быть достигнут. В документации Hyperlane отмечается, что простой валидатора может остановить доставку сообщений в зависимости от настроенного порога. Это одна из причин, по которой для повышения времени безотказной работы может быть выбран более широкий комитет или более низкий порог (с компромиссом в плане безопасности). Дизайн Hyperlane позволяет развертывать новых валидаторов или переключать ISM при необходимости, но такие изменения могут потребовать координации или управления. Преимущество мостов с мультиподписью обычно заключается в быстром подтверждении после сбора порогового количества подписей — нет необходимости ждать финализации блока исходной цепочки в целевой цепочке, поскольку аттестация мультисига и есть финализация. На практике многие мосты с мультиподписью подписывают и ретранслируют сообщения в течение нескольких секунд. Таким образом, задержка может быть сопоставимой или даже ниже, чем у легких клиентов для некоторых сетей. Узким местом является медленная работа валидаторов, их географическая распределенность или наличие ручных операций. Вкратце, модели с мультиподписью могут быть высокоживучими и иметь низкую задержку большую часть времени, но они несут в себе риск живучести, сосредоточенный в наборе валидаторов — если слишком много валидаторов выйдут из строя или произойдет разделение сети между ними, мост фактически перестанет работать.

  • Агрегация доказательств (LayerZero): Живучесть здесь зависит от доступности каждой DVN и релейера. Сообщение должно собрать подписи или доказательства от необходимых DVN, а затем быть передано в целевую цепочку. Приятным аспектом является то, что DVN работают независимо — если одна DVN (из набора) не работает и она не является обязательной (является лишь частью «M из N»), сообщение все равно может быть обработано, пока соблюдается порог. Модель LayerZero явно позволяет настраивать кворумы для обеспечения устойчивости к сбоям некоторых DVN. Например, набор DVN «2 из 5» может выдержать отключение 3 DVN без остановки протокола. Кроме того, поскольку любой может выполнять роль конечного Исполнителя / Релейера (Executor / Relayer), единой точки отказа для доставки сообщений не существует — если основной релейер выйдет из строя, пользователь или другая сторона может вызвать контракт с доказательствами (это аналогично концепции безразрешительного релейера в IBC). Таким образом, LayerZero v2 стремится к устойчивости к цензуре и живучести, не привязывая систему к одному посреднику. Однако если обязательные DVN являются частью стека безопасности (скажем, приложение требует, чтобы его собственная DVN всегда подписывала сообщения), то эта DVN становится зависимостью для живучести: если она отключится, сообщения будут приостановлены до ее возвращения или изменения политики безопасности. В целом, агрегацию доказательств можно настроить так, чтобы она была надежной (с резервными DVN и ретрансляцией любой стороной), что делает маловероятным одновременный выход из строя всех верификаторов. Компромисс заключается в том, что обращение к нескольким DVN может привести к некоторому увеличению задержки (например, ожидание нескольких подписей) по сравнению с одним быстрым мультисигом. Но эти DVN могут работать параллельно, и многие из них (например, сеть оракулов или легкий клиент) могут отвечать быстро. Следовательно, LayerZero может достичь высокой живучести и низкой задержки, но точные показатели зависят от того, как настроены DVN (некоторые могут ждать подтверждения нескольких блоков в исходной цепочке и т. д., что может добавить задержку для безопасности).

Стоимость и сложность

  • Легкие клиенты (IBC): Этот подход, как правило, сложен в реализации, но дешев в использовании после настройки в совместимых цепочках. Сложность заключается в написании корректной реализации легкого клиента для каждого типа блокчейна — по сути, вы кодируете правила консенсуса цепочки A в смарт-контракт в цепочке B. Для цепочек на базе Cosmos SDK с похожим консенсусом это было просто, но расширение IBC за пределы Cosmos потребовало серьезных инженерных усилий (например, создание легкого клиента для финализации GRANDPA в Polkadot или планы по созданию легких клиентов Ethereum с ZK-доказательствами). Эти реализации нетривиальны и должны быть высокозащищенными. Также существуют накладные расходы на хранение данных в сети: легкому клиенту необходимо хранить информацию о недавнем наборе валидаторов или корне состояния другой цепочки. Это может увеличить размер состояния и стоимость проверки доказательств в сети. В результате прямой запуск IBC, скажем, в основной сети Ethereum (проверка заголовков Cosmos) был бы дорогим с точки зрения газа — это одна из причин, по которой такие проекты, как Polymer, создают роллап Ethereum для размещения этих легких клиентов вне основной сети. В экосистеме Cosmos транзакции IBC очень эффективны (часто стоят всего несколько центов газа), так как проверка легкого клиента (подписи ed25519, доказательства Меркла) хорошо оптимизирована на уровне протокола. Использование IBC обходится пользователям относительно дешево, а релейеры просто платят обычные комиссии за транзакции в целевых цепочках (их можно стимулировать комиссиями через промежуточное ПО ICS-29). Таким образом, стоимость IBC в основном сосредоточена в сложности разработки, но после запуска она обеспечивает нативный и эффективный транспорт. Множество подключенных цепочек Cosmos (более 100 зон) используют общую реализацию, что помогает управлять сложностью за счет стандартизации.

  • Мосты с мультиподписью (Hyperlane / Wormhole и т. д.): Сложность реализации здесь зачастую ниже — основным контрактам моста в основном нужно проверять набор подписей по сохраненным публичным ключам. Эта логика проще, чем полноценный легкий клиент. Программное обеспечение валидатора вне сети действительно вносит операционную сложность (серверы, которые отслеживают события в цепочке, поддерживают дерево Меркла для сообщений, координируют сбор подписей и т. д.), но это управляется операторами моста и остается вне блокчейна. Стоимость в сети: проверка нескольких подписей (скажем, 2 или 5 подписей ECDSA) не слишком дорога, но это определенно требует больше газа, чем проверка одной пороговой подписи или проверка хеша. Некоторые мосты используют схемы агрегированных подписей (например, BLS), чтобы снизить стоимость в сети до проверки одной подписи. В целом, проверка мультиподписи в Ethereum или аналогичных сетях умеренно затратна (каждая проверка подписи ECDSA стоит около 3000 единиц газа). Если для работы моста требуется 10 подписей, это около 30 тысяч газа только на проверку, плюс хранение нового корня Меркла и т. д. Обычно это приемлемо, учитывая, что кросс-чейн переводы — это высокоценные операции, но расходы могут накапливаться. С точки зрения разработчика или пользователя взаимодействие с мостом на базе мультиподписи прямолинейно: вы вносите средства или вызываете функцию отправки, а остальное обрабатывается валидаторами / релейерами вне сети, после чего предоставляется доказательство. Для разработчиков приложений сложность минимальна, так как они просто интегрируют API или контракт моста. Одним из факторов сложности является добавление новых цепочек — каждый валидатор должен запустить узел или индексатор для каждой новой цепочки для отслеживания сообщений, что может стать головной болью в плане координации (это отмечалось как узкое место для расширения в некоторых конструкциях мультисигов). Ответом Hyperlane являются безразрешительные валидаторы (любой может присоединиться к цепочке, если ISM включает их), но приложению, развертывающему ISM, все равно необходимо сначала настроить эти ключи. В целом, модели с мультиподписью проще запустить в гетерогенных цепочках (нет необходимости в специализированном легком клиенте для каждой сети), что ускоряет их выход на рынок, но они влекут за собой операционную сложность вне сети и умеренные затраты на проверку в блокчейне.

  • Агрегация доказательств (LayerZero): Сложность здесь заключается в координации множества возможных методов проверки. LayerZero предоставляет стандартизированный интерфейс (контракты Endpoint и MessageLib) и ожидает, что DVN будут придерживаться определенного API проверки. С точки зрения приложения использование LayerZero довольно просто (достаточно вызвать lzSend и реализовать обратные вызовы lzReceive), но «под капотом» происходит много процессов. Каждая DVN может иметь собственную инфраструктуру вне сети (некоторые DVN сами по себе являются мини-мостами, как сеть Axelar или служба оракулов Chainlink). Протокол сам по себе сложен, так как он должен безопасно агрегировать разрозненные типы доказательств — например, одна DVN может предоставить доказательство блока EVM, другая — SNARK, третья — подпись и т. д., а контракт должен по очереди проверить каждое из них. Преимущество заключается в том, что большая часть этой сложности абстрагирована фреймворком LayerZero. Стоимость зависит от того, сколько и какого типа доказательств требуется: проверка SNARK может быть дорогой (проверка ZK-доказательств в сети может стоить сотни тысяч газа), в то время как проверка пары подписей дешевле. LayerZero позволяет приложению самому решать, сколько оно готово платить за безопасность каждого сообщения. Также существует концепция оплаты работы DVN — полезная нагрузка сообщения включает в себя плату за услуги DVN. Например, приложение может прикрепить комиссионные, которые стимулируют DVN и Исполнителей оперативно обрабатывать сообщение. Это добавляет измерение стоимости: более безопасная конфигурация (с использованием множества DVN или дорогих доказательств) будет стоить дороже в плане комиссий, тогда как простая конфигурация DVN «1 из 1» (например, один релейер) может быть очень дешевой, но менее безопасной. Обновляемость и управление также являются частью сложности: поскольку приложения могут менять свой стек безопасности, должен существовать процесс управления или ключ администратора для этого, что само по себе является точкой доверия или сложности для управления. В итоге агрегация доказательств через LayerZero чрезвычайно гибкая, но сложная внутри. Стоимость одного сообщения может быть оптимизирована путем выбора эффективных DVN (например, использование оптимизированного ультралегкого клиента или использование эффекта масштаба существующей сети оракулов). Многим разработчикам покажется привлекательной природа «подключи и работай» (с предоставленными настройками по умолчанию) — например, простое использование набора DVN по умолчанию для удобства, — но это опять же может привести к субоптимальным предположениям о доверии, если в этом не разобраться.

Обновляемость и управление

  • Легкие клиенты (IBC): Соединения и клиенты IBC можно обновлять через предложения по ончейн-управлению в цепочках-участниках (особенно если легкому клиенту требуется исправление или обновление для хардфорка в исходной цепочке). Обновление самого протокола IBC (например, с функций IBC 2.0 до 3.0) также требует управления цепочкой для принятия новых версий программного обеспечения. Это означает, что IBC имеет осознанный путь обновления — изменения происходят медленно и требуют консенсуса, но это соответствует подходу, ориентированному на безопасность. Не существует единой организации, которая могла бы «щелкнуть выключателем»; управление каждой цепочки должно одобрять изменения клиентов или параметров. Положительным моментом является то, что это предотвращает односторонние изменения, которые могут внести уязвимости. Отрицательным моментом является меньшая гибкость — например, если в легком клиенте обнаружена ошибка, для ее исправления может потребоваться скоординированное голосование по управлению во многих цепочках (хотя существуют механизмы экстренной координации). С точки зрения dApp, IBC на самом деле не имеет «управления на уровне приложения» — это инфраструктура, предоставляемая цепочкой. Приложения просто используют модули IBC (например, передачу токенов или межцепочечные аккаунты) и полагаются на безопасность цепочки. Таким образом, управление и обновления происходят на уровне блокчейна (управление Hub и Zone). Одной из интересных новых функций IBC являются пользовательские каналы и маршрутизация (например, хабы вроде Polymer или Nexus), которые позволяют переключать базовые методы верификации без прерывания работы приложений. Но в целом IBC стабилен и стандартизирован — обновляемость возможна, но происходит редко, что способствует его надежности.

  • Мультисиг-мосты (Hyperlane/Wormhole): Эти системы часто имеют механизм администрирования или управления для обновления контрактов, изменения наборов валидаторов или модификации параметров. Например, добавление нового валидатора в набор или ротация ключей может потребовать мультисига владельца моста или голосования DAO. Поскольку Hyperlane является безразрешительным (permissionless), любой пользователь может развернуть свой собственный ISM с кастомным набором валидаторов, но при использовании настроек по умолчанию обновления, скорее всего, контролирует команда Hyperlane или сообщество. Обновляемость — это палка о двух концах: с одной стороны, легко обновлять / улучшать, с другой — это может быть риском централизации (если привилегированный ключ может обновлять контракты моста, этот ключ теоретически может совершить рагпул моста). Хорошо управляемый протокол будет ограничивать это (например, через временные блокировки (time-locks) обновлений или использование децентрализованного управления). Философия Hyperlane — модульность, поэтому приложение может даже обойти вышедший из строя компонент, переключив ISM и т. д. Это дает разработчикам возможность реагировать на угрозы (например, если есть подозрение, что один набор валидаторов скомпрометирован, приложение может быстро перейти на другую модель безопасности). Накладные расходы на управление заключаются в том, что приложениям необходимо выбирать модель безопасности и, возможно, управлять ключами для своих собственных валидаторов или следить за обновлениями основного протокола Hyperlane. Вкратце, системы на основе мультисига более обновляемы (контракты часто подлежат обновлению, а комитеты настраиваемы), что хорошо для быстрого улучшения и добавления новых цепочек, но это требует доверия к процессу управления. Многие эксплойты мостов в прошлом происходили из-за скомпрометированных ключей обновления или несовершенного управления, поэтому к этой области следует относиться осторожно. С положительной стороны, добавление поддержки новой цепочки может быть таким же простым, как развертывание контрактов и получение валидаторов для запуска узлов — фундаментальных изменений протокола не требуется.

  • Агрегация доказательств (LayerZero): LayerZero продвигает неизменяемый транспортный уровень (контракты эндпоинтов не подлежат обновлению), но модули верификации (библиотеки сообщений и адаптеры DVN) являются дополняемыми (append-only) и конфигурируемыми. На практике это означает, что основной контракт LayerZero в каждой цепочке остается фиксированным (обеспечивая стабильный интерфейс), в то время как новые DVN или варианты верификации могут добавляться со временем без изменения ядра. Разработчики приложений имеют контроль над своим стеком безопасности: они могут добавлять или удалять DVN, изменять глубину подтверждения блоков и т. д. Это форма обновляемости на уровне приложения. Например, если конкретный DVN устареет или появится новый, более эффективный (например, более быстрый zk-клиент), команда приложения может интегрировать его в свою конфигурацию, обеспечивая актуальность dApp в будущем. Преимущество очевидно: приложения не застревают на технологиях безопасности вчерашнего дня; они могут адаптироваться (с должной осторожностью) к новым разработкам. Однако это поднимает вопросы управления: кто внутри приложения решает изменить набор DVN? В идеале, если приложение децентрализовано, изменения должны проходить через управление или быть жестко закодированы, если они хотят неизменяемости. Если один администратор может изменить стек безопасности, это точка доверия (он может снизить требования к безопасности при злонамеренном обновлении). Собственные рекомендации LayerZero поощряют создание надежного управления для таких изменений или даже придание определенным аспектам статуса неизменяемых при необходимости. Еще одним аспектом управления является управление комиссиями — оплата DVN и реляторов может быть настроена, а неверные стимулы могут повлиять на производительность (хотя по умолчанию рыночные силы должны корректировать комиссии). В целом, модель LayerZero обладает высокой степенью расширяемости и обновляемости в плане добавления новых методов верификации (что отлично подходит для долгосрочной совместимости), однако ответственность за ответственное управление этими обновлениями лежит на каждом приложении. Базовые контракты LayerZero неизменяемы, чтобы гарантировать, что транспортный уровень не может быть подвергнут рагпулу или цензуре, что внушает уверенность в том, что сам конвейер передачи сообщений останется нетронутым при обновлениях.

Для обобщения сравнения в таблице ниже выделены ключевые различия:

АспектIBC (Легкие клиенты)Hyperlane (Мультисиг)LayerZero v2 (Агрегация)
Модель доверияДоверие консенсусу исходной цепочки (никакого дополнительного доверия).Доверие комитету валидаторов моста (например, порог мультисига). Слэшинг может смягчить риск.Доверие зависит от выбранных DVN. Может имитировать легкий клиент или мультисиг, или их комбинацию (доверие хотя бы одному из выбранных верификаторов).
БезопасностьВысочайшая — криптографическое доказательство валидности через легкий клиент. Атаки требуют компрометации исходной цепочки или легкого клиента.Высокая, если комитет состоит из честного большинства, но слабее, чем у легкого клиента. Сговор комитета или компрометация ключей — основная угроза.Потенциально очень высокая — может требовать нескольких независимых доказательств (например, zk + мультисиг + оракул). Но настраиваемая безопасность означает, что она сильна лишь настолько, насколько сильны самые слабые выбранные DVN.
ЖивучестьОчень хорошая, пока активен хотя бы один релятор. Параллельные реляторы и цепочки с быстрым завершением транзакций обеспечивают доставку почти в реальном времени.Хорошая при нормальных условиях (быстрые подписи). Но зависит от аптайма валидаторов. Простой кворума = остановка. Расширение на новые цепочки требует поддержки комитета.Очень хорошая; несколько DVN обеспечивают избыточность, и любой пользователь может ретранслировать транзакции. Обязательные DVN могут стать точками отказа при неправильной настройке. Задержку можно регулировать (например, ожидание подтверждений против скорости).
СтоимостьВысокая сложность реализации клиентов на начальном этапе. Ончейн-верификация консенсуса (подписи, доказательства Меркла), оптимизированная в Cosmos. Низкая стоимость сообщения в нативных средах IBC; потенциально дорого в ненативных цепочках без специальных решений.Более низкая сложность разработки основных контрактов. Ончейн-стоимость масштабируется в зависимости от количества подписей на сообщение. Офчейн-затраты на валидаторов (узлы в каждой цепочке). Возможно, более высокий газ, чем у легкого клиента при большом количестве подписей, но часто приемлемо.Сложность от умеренной до высокой. Стоимость одного сообщения варьируется: каждое доказательство DVN (подпись или SNARK) добавляет газ на верификацию. Приложения платят DVN за обслуживание. Можно оптимизировать затраты, выбирая меньше доказательств или более дешевые варианты для малоценных сообщений.
ОбновляемостьПротокол развивается через управление цепочкой (медленно, консервативно). Обновления легких клиентов требуют координации, но стандартизация сохраняет стабильность. Добавление новых цепочек требует создания / утверждения новых типов клиентов.Гибкость — наборы валидаторов и ISM могут быть изменены через управление или администратора. Проще быстро интегрировать новые цепочки. Риск при компрометации ключей обновления или управления. Обычно обновляемые контракты (требуется доверие к администраторам).Высокая модульность — новые DVN / методы верификации могут добавляться без изменения ядра. Приложения могут менять конфигурацию безопасности по мере необходимости. Основные эндпоинты неизменяемы (нет централизованных обновлений), но требуется управление на уровне приложений для изменений безопасности во избежание злоупотреблений.

Влияние на компонуемость и общую ликвидность в DeFi

Кросс-чейн обмен сообщениями открывает новые мощные паттерны для компонуемости — возможности взаимодействия DeFi-контрактов в разных сетях — и обеспечивает общую ликвидность, объединяя активы из разных блокчейнов в единый рынок. Модели безопасности, рассмотренные выше, влияют на то, насколько уверенно и беспрепятственно протоколы могут использовать кросс-чейн функции. Ниже мы рассмотрим, как каждый подход поддерживает мультичейн DeFi на реальных примерах:

  • Омничейн DeFi через LayerZero (Stargate, Radiant, Tapioca): Общий протокол обмена сообщениями LayerZero и стандарт Omnichain Fungible Token (OFT) созданы для того, чтобы разрушить изоляцию ликвидности. Например, Stargate Finance использует LayerZero для реализации единого пула ликвидности для мостов нативных активов — вместо фрагментированных пулов в каждой сети контракты Stargate во всех сетях подключаются к общему пулу, а сообщения LayerZero управляют логикой блокировки / разблокировки в разных блокчейнах. Это привело к ежемесячному объему торгов в мостах Stargate более 800 миллионов долларов, что демонстрирует значительную общую ликвидность. Полагаясь на безопасность LayerZero (при этом Stargate, предположительно, использует надежный набор DVN), пользователи могут переводить активы с высокой степенью уверенности в подлинности сообщений. Radiant Capital — еще один пример, кросс-чейн протокол кредитования, где пользователи могут вносить депозит в одной сети и брать взаймы в другой. Он использует сообщения LayerZero для координации состояния аккаунтов между сетями, фактически создавая единый рынок кредитования в нескольких сетях. Аналогично, Tapioca (омничейн денежный рынок) использует LayerZero v2 и даже запускает собственный DVN в качестве обязательного верификатора для защиты своих сообщений. Эти примеры показывают, что благодаря гибкой системе безопасности LayerZero может поддерживать сложные кросс-чейн операции, такие как кредитные проверки, перемещение залога и ликвидации в разных сетях. Компонуемость обеспечивается стандартом LayerZero «OApp» (Omnichain Application), который позволяет разработчикам развертывать один и тот же контракт во многих сетях и координировать их работу через сообщения. Пользователь взаимодействует с инстансом в любой сети и воспринимает приложение как единую систему. Модель безопасности позволяет выполнять тонкую настройку: например, для крупных переводов или ликвидаций может потребоваться больше подписей DVN (для безопасности), в то время как небольшие действия проходят по более быстрым и дешевым путям. Такая гибкость гарантирует, что ни безопасность, ни пользовательский опыт (UX) не должны быть универсальными для всех случаев. На практике модель LayerZero значительно расширила возможности общей ликвидности, о чем свидетельствуют десятки проектов, принявших OFT для токенов (чтобы токен мог существовать как «омничейн», а не как отдельные обернутые активы). Например, стейблкоины и токены управления могут использовать OFT для поддержания единого общего предложения во всех сетях, избегая фрагментации ликвидности и проблем с арбитражем, которые преследовали ранние обернутые токены. В целом, предоставляя надежный слой обмена сообщениями и позволяя приложениям контролировать модель доверия, LayerZero стимулировал создание новых конструкций мультичейн DeFi, которые рассматривают несколько сетей как единую экосистему. Компромисс заключается в том, что пользователи и проекты должны понимать предположения о доверии каждого омничейн-приложения (поскольку они могут различаться). Но такие стандарты, как OFT, и широко используемые DVN по умолчанию помогают сделать это более единообразным.

  • Межсетевые аккаунты и сервисы в IBC (Cosmos DeFi): В мире Cosmos протокол IBC обеспечил богатый спектр кросс-чейн функциональности, выходящий за рамки простых переводов токенов. Флагманской функцией являются Interchain Accounts (ICA), которые позволяют блокчейну (или пользователю в сети A) управлять аккаунтом в сети B так, как если бы он был локальным. Это реализуется через пакеты IBC, содержащие транзакции. Например, Cosmos Hub может использовать межсетевой аккаунт в Osmosis для стейкинга или обмена токенов от имени пользователя — и все это инициируется из Hub. Конкретный DeFi-кейс — протокол ликвидного стейкинга Stride: Stride (отдельная сеть) получает токены, такие как ATOM, от пользователей и, используя ICA, удаленно размещает эти ATOM в стейкинге в Cosmos Hub, а затем выпускает stATOM (ликвидный стейкинг ATOM) обратно пользователям. Весь процесс является бездоверительным и автоматизирован через IBC — модуль Stride управляет аккаунтом в Hub, который выполняет транзакции делегирования и отмены делегирования, а подтверждения и тайм-ауты обеспечивают безопасность. Это демонстрирует кросс-чейн компонуемость: два суверенных блокчейна беспрепятственно выполняют совместный рабочий процесс (стейкинг здесь, минт токена там). Другой пример — Osmosis (DEX-сеть), которая использует IBC для привлечения активов из более чем 95 подключенных сетей. Пользователи из любой зоны могут торговать на Osmosis, отправляя свои токены через IBC. Благодаря высокой безопасности IBC, Osmosis и другие протоколы уверенно рассматривают IBC-токены как подлинные (не нуждаясь в доверенных кастодианах). Это позволило Osmosis стать одной из крупнейших межсетевых DEX, где ежедневный объем переводов IBC, по сообщениям, превышает объем многих мостовых систем. Более того, с появлением Interchain Queries (ICQ) в IBC 3.0 смарт-контракт в одной сети может получать данные (такие как цены, процентные ставки или позиции) из другой сети с минимизацией доверия. Это может позволить, например, создать межсетевой агрегатор доходности, который запрашивает ставки доходности в нескольких зонах и соответствующим образом перераспределяет активы, и все это через сообщения IBC. Ключевым влиянием модели легкого клиента IBC на компонуемость является уверенность и нейтральность: сети остаются суверенными, но могут взаимодействовать, не опасаясь риска стороннего моста. Такие проекты, как Composable Finance и Polymer, даже расширяют IBC на экосистемы, не входящие в Cosmos (Polkadot, Ethereum), чтобы задействовать эти возможности. Результатом может стать будущее, в котором любая сеть, принявшая стандарт клиента IBC, сможет подключиться к «универсальному интернету блокчейнов». Общая ликвидность в Cosmos уже значительна — например, нативная DEX Cosmos Hub (Gravity DEX) и другие полагаются на IBC для объединения ликвидности из различных зон. Однако ограничением до сих пор является то, что DeFi в Cosmos в основном асинхронны: вы инициируете действие в одной сети, результат появляется в другой с небольшой задержкой (в секундах). Это нормально для таких вещей, как торговля и стейкинг, но более сложная синхронная компонуемость (например, флэш-займы между сетями) остается недоступной из-за фундаментальной задержки. Тем не менее, спектр кросс-чейн DeFi, поддерживаемый IBC, широк: мультичейн доходное фермерство (перемещение средств туда, где доходность выше), кросс-чейн управление (одна сеть голосует за выполнение действий в другой через пакеты управления) и даже Interchain Security, где потребительская сеть использует набор валидаторов сети-провайдера (через пакеты валидации IBC). Подводя итог, защищенные каналы IBC способствовали развитию межсетевой экономики в Cosmos — экономики, в которой проекты могут специализироваться на отдельных блокчейнах, но при этом плавно работать вместе через сообщения с минимизацией доверия. Общая ликвидность очевидна в таких вещах, как поток активов в Osmosis и появление нативных стейблкоинов Cosmos, которые свободно перемещаются между зонами.

  • Гибридные и другие мультичейн-подходы (Hyperlane и не только): Видение Hyperlane о безразрешительном соединении привело к появлению таких концепций, как Warp Routes для мостов активов и межсетевые dApps, охватывающие различные экосистемы. Например, Warp Route может позволить токену ERC-20 в Ethereum быть «телепортированным» в программу Solana, используя под капотом слой сообщений Hyperlane. Одной из конкретных реализаций для пользователей является мост Hyperlane Nexus, который предоставляет интерфейс для перевода активов между многими сетями через инфраструктуру Hyperlane. Используя модульную модель безопасности, Hyperlane может адаптировать безопасность для каждого маршрута: небольшой перевод может проходить по простому быстрому пути (только подписи валидаторов Hyperlane), в то время как крупный перевод может потребовать агрегированного ISM (Hyperlane + Wormhole + Axelar подтверждают транзакцию). Это гарантирует, что перемещение высоколиквидных активов защищено несколькими мостами — что повышает уверенность, например, при перемещении 10 миллионов долларов актива между сетями (для кражи пришлось бы взломать несколько сетей) ценой более высокой сложности / комиссии. С точки зрения компонуемости Hyperlane обеспечивает то, что они называют «взаимодействием контрактов» — смарт-контракт в сети A может вызвать функцию в сети B так, как если бы она была локальной, после доставки сообщений. Разработчики интегрируют Hyperlane SDK для легкой отправки этих кросс-чейн вызовов. Примером может служить кросс-чейн агрегатор DEX, который частично находится в Ethereum, а частично в BNB Chain, используя сообщения Hyperlane для арбитража между ними. Поскольку Hyperlane поддерживает EVM и не-EVM сети (даже ведется работа по интеграции CosmWasm и MoveVM), он стремится соединить «любую сеть, любую VM». Этот широкий охват может увеличить общую ликвидность за счет объединения экосистем, которые иначе не были бы легко связаны. Однако фактическое внедрение Hyperlane в крупномасштабные DeFi-проекты все еще растет. Он пока не обладает такими объемами, как Wormhole или LayerZero в сфере мостов, но его безразрешительный характер привлек экспериментаторов. Например, некоторые проекты использовали Hyperlane для быстрого подключения специфических для приложений роллапов к Ethereum, потому что они могли настроить собственный набор валидаторов и не ждать сложных решений с легкими клиентами. По мере роста рестейкинга (EigenLayer), Hyperlane может получить большее распространение, предлагая безопасность уровня Ethereum любому роллапу с относительно низкой задержкой. Это может ускорить создание новых мультичейн-композиций — например, роллап Optimism и zk-роллап Polygon обмениваются сообщениями через Hyperlane AVS, при этом каждое сообщение подкреплено ETH, который может быть подвергнут слэшингу в случае мошенничества. Влияние на компонуемость заключается в том, что даже экосистемы без общего стандарта (например, Ethereum и произвольный L2) могут получить контракт моста, которому доверяют обе стороны (поскольку он экономически защищен). Со временем это может привести к созданию сети взаимосвязанных DeFi-приложений, где компонуемость «настраивается» разработчиком (выбор того, какие модули безопасности использовать для конкретных вызовов).

Во всех этих случаях очевидна взаимосвязь между моделью безопасности и компонуемостью. Проекты доверят крупные пулы ликвидности кросс-чейн системам только в том случае, если безопасность будет непоколебимой — отсюда и стремление к конструкциям с минимизацией доверия или экономической защитой. В то же время простота интеграции (опыт разработчиков) и гибкость влияют на то, насколько креативно команды могут использовать преимущества нескольких сетей. LayerZero и Hyperlane ориентированы на простоту для разработчиков (достаточно импортировать SDK и использовать знакомые вызовы отправки / получения), тогда как IBC, будучи более низкоуровневым протоколом, требует более глубокого понимания модулей и может обрабатываться скорее разработчиками блокчейнов, чем разработчиками приложений. Тем не менее, все три подхода ведут к будущему, в котором пользователи взаимодействуют с мультичейн-dApps, даже не зная, в какой сети они находятся — приложение беспрепятственно использует ликвидность и функциональность отовсюду. Например, пользователь кредитного приложения может внести депозит в сети A и даже не осознавать, что заем был взят из пула в сети B — все это обеспечивается кросс-чейн сообщениями и надлежащей проверкой.

Реализации, модели угроз и внедрение на практике

Важно оценить, как эти протоколы показывают себя в реальных условиях — их текущие реализации, известные векторы угроз и уровни внедрения:

  • LayerZero v2 в эксплуатации: LayerZero v1 (с моделью из двух сущностей Oracle + Relayer) получил значительное распространение, обеспечив объем переводов на сумму более 50 млрд $ и более 134 млн кроссчейн-сообщений по состоянию на середину 2024 года. Он интегрирован с 60 + блокчейнами, в основном с EVM-цепями, а также с не-EVM, такими как Aptos, и на горизонте уже маячит экспериментальная поддержка Solana. LayerZero v2 был запущен в начале 2024 года, представив DVN (децентрализованные сети верификаторов) и модульную безопасность. Крупные платформы, такие как Radiant Capital, SushiXSwap, Stargate, PancakeSwap и другие, уже начали миграцию или разработку на v2, чтобы использовать его гибкость. Одной из примечательных интеграций является Flare Network (Layer 1, ориентированный на данные), который внедрил LayerZero v2 для одновременного подключения к 75 цепям. Flare привлекла возможность настройки безопасности: например, использование одного быстрого DVN для сообщений с низкой стоимостью и требование нескольких DVN для транзакций с высокой стоимостью. Это показывает, что в реальной эксплуатации приложения действительно используют подход «смешивай и сочетай» (mix and match) в обеспечении безопасности как конкурентное преимущество. Безопасность и аудиты: Контракты LayerZero неизменяемы и прошли аудит (v1 имел несколько аудитов, v2 также). Основной угрозой в v1 был сговор Oracle + Relayer — если две внесетевые стороны сговорятся, они могут подделать сообщение. В v2 эта угроза обобщена до сговора DVN. Если все DVN, на которые полагается приложение, будут скомпрометированы одной сущностью, поддельное сообщение может быть принято. Ответ LayerZero заключается в поощрении использования специфичных для приложений DVN (чтобы злоумышленнику пришлось скомпрометировать и команду приложения) и разнообразия верификаторов (что усложняет сговор). Другой потенциальной проблемой является неправильная настройка или злоупотребление обновлением — если владелец приложения злонамеренно переключится на тривиальный стек безопасности (например, DVN состава 1-из-1, контролируемый им самим), он сможет обойти защиту, чтобы эксплойтить своих собственных пользователей. Это скорее риск управления, чем баг протокола, и сообществам необходимо сохранять бдительность в отношении того, как настроена безопасность омничейн-приложения (желательно требовать мультисиг или одобрение сообщества для внесения изменений). С точки зрения внедрения, LayerZero на данный момент имеет, пожалуй, самое широкое использование среди протоколов обмена сообщениями в DeFi: он обеспечивает работу мостов для Stargate, интеграции Circle CCTP (для переводов USDC), кроссчейн-свопов Sushi, многих NFT-мостов и бесчисленных токенов OFT (проекты выбирают LayerZero, чтобы сделать свой токен доступным в нескольких сетях). Сетевые эффекты сильны — по мере того как все больше цепей интегрируют эндпоинты LayerZero, новым сетям становится проще присоединиться к «омничейн» сети. LayerZero Labs сама управляет одной DVN, а сообщество (включая таких провайдеров, как Google Cloud, Polyhedra для zk-доказательств и т. д.) к 2024 году запустило более 15 DVN. На сегодняшний день не произошло ни одного крупного эксплойта основного протокола LayerZero, что является положительным знаком (хотя случались некоторые хаки на уровне приложений или ошибки пользователей, как и с любой технологией). Дизайн протокола, заключающийся в простоте транспортного уровня (по сути, просто хранение сообщений и требование доказательств), минимизирует уязвимости ончейн, перенося большую часть сложности оффчейн на DVN.

  • Hyperlane в эксплуатации: Hyperlane (ранее Abacus) работает в многочисленных сетях, включая Ethereum, несколько L2 (Optimism, Arbitrum, zkSync и т. д.), сети Cosmos, такие как Osmosis, через модуль Cosmos-SDK, и даже сети MoveVM (поддержка довольно широкая). Однако его внедрение отстает от таких лидеров, как LayerZero и Wormhole, с точки зрения объема. Hyperlane часто упоминается в контексте решения для «суверенных мостов» (sovereign bridge) — т. е. проект может развернуть Hyperlane, чтобы иметь собственный мост с настраиваемой безопасностью. Например, некоторые команды аппчейнов (appchains) использовали Hyperlane для подключения своей сети к Ethereum, не полагаясь на общий мост. Примечательным событием является запуск Hyperlane Active Validation Service (AVS) в середине 2024 года, что стало одним из первых применений рестейкинга Ethereum. Валидаторы (многие из которых являются топовыми операторами EigenLayer) рестейкают ETH для обеспечения безопасности сообщений Hyperlane, ориентируясь изначально на быстрый обмен сообщениями между роллапами. На данный момент это обеспечивает интероперабельность между L2-роллапами Ethereum с хорошими результатами — по сути, обеспечивая почти мгновенную передачу сообщений (быстрее, чем ожидание 7-дневного окна вывода из оптимистичных роллапов) с экономической безопасностью, привязанной к Ethereum. Что касается модели угроз, первоначальный подход Hyperlane с мультисигом мог быть атакован, если скомпрометировано достаточное количество ключей валидаторов (как и в любом мосту с мультисигом). У Hyperlane был инцидент с безопасностью в прошлом: в августе 2022 года во время раннего тестнета или запуска произошел эксплойт, когда злоумышленник смог перехватить ключ развертывания (deployer key) токен-моста Hyperlane в одной сети и выпустить токены (убыток около 700 тыс. $). Это не было провалом самого мультисига, а скорее упущением в операционной безопасности при развертывании — это подчеркнуло риски возможности обновления и управления ключами. Команда возместила убытки и улучшила процессы. Это подтверждает, что ключи управления являются частью модели угроз — защита административного контроля так же важна, как и защита валидаторов. С появлением AVS модель угроз смещается в контекст EigenLayer: если кто-то сможет вызвать ложный слэшинг или избежать слэшинга, несмотря на неправомерное поведение, это станет проблемой; но протокол EigenLayer обрабатывает логику слэшинга на Ethereum, которая надежна при условии правильной подачи доказательств мошенничества. Внедрение Hyperlane в настоящее время растет в сегменте роллапов и среди некоторых специализированных цепей. Возможно, он еще не обрабатывает многомиллиардные потоки, как некоторые конкуренты, но он занимает нишу, где разработчики хотят полного контроля и легкой расширяемости. Модульный дизайн ISM означает, что мы можем увидеть креативные настройки безопасности: например, DAO может потребовать не только подписи Hyperlane, но и временную блокировку (time-lock) или подпись второго моста для любого административного сообщения и т. д. Безразрешительный этос Hyperlane (любой может запустить валидатора или развернуться в новой сети) может оказаться мощным в долгосрочной перспективе, но это также означает, что экосистема должна созреть (например, больше сторонних валидаторов должны присоединиться для децентрализации набора по умолчанию; по состоянию на 2025 год неясно, насколько децентрализован набор активных валидаторов на практике). В целом, траектория Hyperlane направлена на повышение безопасности (с помощью рестейкинга) и простоты использования, но ему нужно будет продемонстрировать устойчивость и привлечь значительную ликвидность, чтобы достичь того же уровня доверия сообщества, что и IBC или даже LayerZero.

  • IBC 3.0 и интероперабельность Cosmos в эксплуатации: IBC работает с 2021 года и чрезвычайно проверен в боях внутри экосистемы Cosmos. К 2025 году он соединяет 115 + зон (включая Cosmos Hub, Osmosis, Juno, Cronos, Axelar, Kujira и др.) с миллионами транзакций в месяц и многомиллиардными потоками токенов. Примечательно, что на уровне протокола не было зафиксировано крупных сбоев в системе безопасности. Был один заметный инцидент, связанный с IBC: в октябре 2022 года в коде IBC была обнаружена критическая уязвимость (затрагивающая все реализации v2.0), которая могла позволить злоумышленнику вывести средства из многих цепей, подключенных к IBC. Однако она была устранена скрытно через скоординированные обновления до того, как о ней было объявлено публично, и эксплойта не произошло. Это стало тревожным звонком о том, что даже формально верифицированные протоколы могут иметь ошибки. С тех пор IBC прошел дополнительный аудит и укрепление. Модель угроз для IBC в основном касается безопасности цепей: если одна из подключенных цепей враждебна или подвергается атаке 51 %, она может попытаться передать неверные данные легкому клиенту контрагента. Меры по смягчению последствий включают использование управления (governance) для остановки или закрытия соединений с небезопасными цепями (например, управление Cosmos Hub может проголосовать за отключение обновлений клиента для конкретной цепи, если обнаружено, что она взломана). Кроме того, клиенты IBC часто имеют согласование периода разблокировки (unbonding period) или периода доверия — например, легкий клиент Tendermint не примет обновление набора валидаторов старше периода разблокировки (для предотвращения атак «дальнего действия»). Другой возможной проблемой является цензура ретрансляторов — если ни один ретранслятор не доставляет пакеты, средства могут застрять из-за тайм-аутов; но поскольку ретрансляция не требует разрешений и часто стимулируется, это обычно носит временный характер. С внедрением межчейн-запросов (Interchain Queries) и новых функций IBC 3.0 мы видим использование в таких решениях, как агрегаторы кроссчейн-DEX (например, Skip Protocol, использующий ICQ для сбора данных о ценах в разных цепях) и кроссчейн-управление (например, Cosmos Hub, использующий межчейн-аккаунты для управления Neutron, потребительской цепью). История внедрения за пределами Cosmos также развивается: такие проекты, как Polymer и Astria (центр интероперабельности для роллапов), эффективно переносят IBC в роллапы Ethereum через модель «концентратор и спица» (hub / spoke), а парачейны Polkadot успешно использовали IBC для подключения к цепям Cosmos (например, мост Centauri между Cosmos и Polkadot, созданный Composable Finance, использует IBC «под капотом» с легким клиентом GRANDPA на стороне Cosmos). Существует даже реализация IBC-Solidity, разрабатываемая Polymer и DataChain, которая позволит смарт-контрактам Ethereum верифицировать пакеты IBC (используя легкий клиент или доказательства валидности). Если эти усилия увенчаются успехом, это может значительно расширить использование IBC за пределами Cosmos, выведя его модель с минимизацией доверия в прямую конкуренцию с более централизованными мостами в этих сетях. С точки зрения общей ликвидности, самым большим ограничением Cosmos было отсутствие нативного стейблкоина или DEX с глубокой ликвидностью на уровне Ethereum — это меняется с появлением нативных стейблкоинов Cosmos (таких как IST, CMST) и подключением таких активов, как USDC (Axelar и Gravity bridge принесли USDC, а теперь Circle запускает нативный USDC в Cosmos через Noble). По мере углубления ликвидности сочетание высокой безопасности и бесшовных переводов IBC может сделать Cosmos центром кроссчейн-торговли в DeFi — действительно, в отчете Blockchain Capital отмечалось, что IBC уже обрабатывал больший объем, чем LayerZero или Wormhole к началу 2024 года, хотя в основном это происходит за счет трафика внутри Cosmos (что свидетельствует об очень активной межчейн-экономике). В будущем главной задачей и возможностью для IBC станет расширение на гетерогенные цепи без ущерба для его этоса безопасности.

В итоге каждый протокол развивается: LayerZero быстро интегрируется со многими цепями и приложениями, отдавая приоритет гибкости и внедрению разработчиками, и снижает риски, позволяя приложениям участвовать в собственной безопасности. Hyperlane внедряет инновации с помощью рестейкинга и модульности, стремясь стать самым простым способом подключения новых цепей с настраиваемой безопасностью, хотя он все еще находится в процессе формирования доверия и накопления опыта использования. IBC является золотым стандартом бездоверительности (trustlessness) в своей области, эволюционируя в сторону увеличения скорости (IBC 3.0) и надеясь выйти за пределы Cosmos, опираясь на солидный послужной список. Пользователям и проектам разумно учитывать зрелость и инциденты безопасности каждого из них: IBC имеет годы стабильной работы (и огромный объем), но ограничен определенными экосистемами; LayerZero быстро набрал популярность, но требует понимания пользовательских настроек безопасности; Hyperlane новее в исполнении, но перспективен в своем видении, делая осторожные шаги в сторону экономической безопасности.

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

Долгосрочная жизнеспособность и интероперабельность мультичейн-ландшафта DeFi, вероятно, будут определяться сосуществованием и даже взаимодополнением всех трех моделей безопасности. Каждому подходу присущи свои сильные стороны, и вместо универсального решения мы можем увидеть стек, в котором модель легкого клиента (IBC) обеспечивает базу с высочайшими гарантиями для ключевых маршрутов (особенно между крупными сетями), в то время как системы с агрегацией доказательств (LayerZero) обеспечивают универсальную связность с настраиваемым уровнем доверия, а модели мультисиг (Hyperlane и другие) удовлетворяют нишевые потребности или позволяют быстро запускать новые экосистемы.

Компромисс между безопасностью и связностью: Легкие клиенты, такие как IBC, предлагают нечто наиболее близкое к «интернету блокчейнов» — нейтральный стандартизированный транспортный уровень, аналогичный TCP/IP. Они гарантируют, что интероперабельность не привнесет новых уязвимостей, что критически важно для долгосрочной устойчивости. Однако они требуют широкого согласия по стандартам и значительных инженерных затрат на каждую сеть, что замедляет скорость формирования новых соединений. С другой стороны, LayerZero и Hyperlane отдают приоритет немедленной связности и гибкости, признавая, что не каждая сеть будет внедрять один и тот же протокол. Они стремятся соединить «любых с любыми», даже если на промежуточном этапе это означает принятие чуть большего доверия. Со временем можно ожидать сокращения этого разрыва: LayerZero может интегрировать больше минимизирующих доверие DVN (даже сам IBC может быть обернут в DVN), а Hyperlane может использовать экономические механизмы для приближения к безопасности нативной верификации. Действительно, проект Polymer предполагает, что IBC и LayerZero не обязательно должны быть конкурентами, а могут наслаиваться друг на друга — например, LayerZero может использовать легкий клиент IBC в качестве одного из своих DVN, когда он доступен. Подобное взаимопроникновение технологий вероятно по мере созревания пространства.

Компонуемость и единая ликвидность: С точки зрения пользователя DeFi, конечная цель состоит в том, чтобы ликвидность стала независимой от конкретной сети (chain-agnostic). Мы уже видим первые шаги: с омничейн-токенами (OFT) вам не нужно беспокоиться о том, в какой сети находится ваша версия токена, а на кросс-чейн рынках капитала вы можете брать займы в любой сети под залог в другой. Архитектурные решения напрямую влияют на доверие пользователей к этим системам. Если происходит взлом моста (как это исторически случалось с некоторыми мультисиг-мостами), это подрывает доверие и, следовательно, ликвидность — пользователи уходят на более безопасные площадки или требуют премию за риск. Таким образом, протоколы, которые последовательно демонстрируют безопасность, станут основой для крупнейших пулов ликвидности. Межсетевая безопасность (interchain security) Cosmos и IBC показали один путь: множество книг ордеров и AMM в разных зонах по сути объединяются в один большой рынок, поскольку переводы бездоверительны и быстры. Stargate от LayerZero показал другой путь: единый пул ликвидность может обслуживать переводы во многих сетях, но это требовало от пользователей доверия к предположениям о безопасности LayerZero (Oracle + Relayer или DVN). Поскольку LayerZero v2 позволяет каждому пулу устанавливать еще более высокую безопасность (например, использовать несколько сетей валидаторов с громкими именами для проверки каждого перевода), разрыв в доверии сокращается. Долгосрочная жизнеспособность мультичейн DeFi, вероятно, зависит от того, будут ли протоколы интероперабельности невидимыми, но надежными — подобно тому, как пользователи интернета не задумываются о TCP/IP, криптопользователи не должны беспокоиться о том, какой мост или систему обмена сообщениями использует dApp. Это произойдет, когда модели безопасности станут достаточно надежными, чтобы сбои были крайне редкими, и когда возникнет конвергенция или компонуемость между этими сетями интероперабельности.

Интероперабельность интероперабельности: Вполне вероятно, что через несколько лет мы не будем говорить о LayerZero, Hyperlane и IBC как об отдельных мирах, а скорее как о многослойной системе. Например, Ethereum-роллап может иметь IBC-соединение с хабом Cosmos через Polymer, а этот хаб Cosmos может также иметь эндпоинт LayerZero, позволяя сообщениям переходить из роллапа в сеть LayerZero через безопасный канал IBC. Hyperlane может даже функционировать как резервный вариант или агрегатор: приложение может требовать как доказательства IBC, так и подписи Hyperlane AVS для обеспечения максимальной уверенности. Подобная агрегация безопасности в разных протоколах может решить проблемы даже самых продвинутых моделей угроз (гораздо труднее одновременно скомпрометировать легкий клиент IBC и независимый рестейкнутый мультисиг и т. д.). Такие комбинации, конечно, добавят сложности и стоимости, поэтому они будут зарезервированы для сценариев с высокой ценностью.

Управление и децентрализация: Каждая модель передает разные полномочия разным субъектам: IBC — в руки управления сетями (governance), LayerZero — в руки разработчиков приложений (и, косвенно, операторов DVN, которых они выбирают), а Hyperlane — в руки валидаторов моста и, возможно, рестейкеров. Долгосрочный ландшафт интероперабельности должен гарантировать, что ни одна сторона или картель не сможет доминировать в кросс-чейн транзакциях. Существует риск, например, если один протокол станет повсеместным, но будет контролироваться небольшой группой лиц; он может стать узким местом (аналогично централизованным интернет-провайдерам). Способ смягчить это — децентрализация самих сетей обмена сообщениями (больше релейеров, больше DVN, больше валидаторов — все с открытым доступом) и наличие альтернативных путей. В этом плане IBC имеет преимущество, будучи открытым стандартом со множеством независимых команд, а LayerZero и Hyperlane движутся к расширению участия третьих сторон (например, любой может запустить LayerZero DVN или валидатор Hyperlane). Вероятно, конкуренция и открытое участие заставят эти сервисы работать честно, так же как майнеры / валидаторы в L1-сетях поддерживают децентрализацию базового уровня. Рынок также проголосует ногами: если какое-то решение окажется небезопасным или слишком централизованным, разработчики смогут перейти на другое (особенно по мере того, как стандарты мостов становятся более интероперабельными).

В заключение, архитектуры безопасности LayerZero v2, Hyperlane и IBC 3.0 вносят свой вклад в воплощение концепции мультичейн DeFi, но основываются на разных философиях. Легкие клиенты отдают приоритет бездоверительности и нейтральности, мультисиги — прагматизму и простоте интеграции, а агрегированные подходы — настройке и адаптивности. Мультичейн-ландшафт DeFi будущего, скорее всего, будет использовать комбинацию этих подходов: критическая инфраструктура и дорогостоящие переводы будут защищены методами с минимизацией доверия или экономическим обеспечением, а гибкое промежуточное ПО (middleware) обеспечит связь с длинным хвостом новых сетей и приложений. Благодаря этому пользователи получат единую ликвидность и кросс-чейн компонуемость с такой же уверенностью и простотой, как при использовании одной сети. Путь вперед лежит через конвергенцию — не обязательно самих протоколов, а результатов: мира, где интероперабельность безопасна, бесшовна и стандартизирована. Достижение этого потребует продолжения тщательной инженерной работы (во избежание эксплойтов), совместного управления (для установления стандартов, таких как IBC или универсальные интерфейсы смарт-контрактов) и, что наиболее важно, итеративного подхода к безопасности, сочетающего в себе лучшее из всех миров: математику, экономические стимулы и продуманный дизайн. Конечный результат может действительно соответствовать часто цитируемой аналогии: блокчейны, взаимосвязанные подобно сетям в интернете, с протоколами LayerZero, Hyperlane и IBC, формирующими омничейн-магистраль, по которой DeFi будет двигаться в обозримом будущем.

Источники:

  • Архитектура LayerZero v2 и безопасность DVN — LayerZero V2 Deep Dive; Flare x LayerZero V2 announcement
  • Мультисиг Hyperlane и модульный ISM — Hyperlane Docs: Validators; Tiger Research on Hyperlane; Hyperlane restaking (AVS) announcement
  • Легкие клиенты и функции IBC 3.0 — IBC Protocol Overview; 3Commas Cosmos 2025 (IBC 3.0)
  • Сравнение предположений о доверии — Nosleepjohn (Hyperlane) on bridge tradeoffs; IBC vs bridges (Polymer blog)
  • Примеры DeFi (Stargate, ICA и т. д.) — Flare blog on LayerZero (Stargate volume); IBC use cases (Stride liquid staking); LayerZero Medium (OFT and OApp standards); Hyperlane use cases
  • Принятие и статистика — Flare x LayerZero (cross-chain messages, volume); Range.org on IBC volume; Blockchain Capital on IBC vs bridges; LayerZero blog (15+ DVNs); IBC testimonials (Osmosis, etc.).

Формальная верификация смарт-контрактов и аудит с помощью ИИ

· 38 мин чтения
Dora Noda
Software Engineer

Формальная верификация в аудите смарт-контрактов

Формальная верификация относится к использованию математических и логических методов для доказательства корректности и безопасности смарт-контрактов. На практике это охватывает спектр методологий: от фазз-тестирования на основе свойств и символического выполнения до строгого доказательства теорем и проверки моделей. Цель состоит в том, чтобы гарантировать соответствие контракта его спецификациям и отсутствие в нем эксплуатируемых ошибок при всех возможных входных данных и состояниях. Учитывая высокие ставки (миллиарды долларов заблокированы в DeFi-протоколах), формальные методы становятся все более важными для Ethereum и других блокчейн-платформ.

Традиционные подходы: Ранние формальные методы для Ethereum включали инструменты символического выполнения, такие как Oyente и Mythril, и статические анализаторы, такие как Slither и Securify. Символическое выполнение исследует пути программы с символическими входными данными для обнаружения проблем (например, реентрабельности, переполнения целых чисел), в то время как статический анализ использует сопоставление с образцом на основе правил. Эти инструменты имели успех, но также и ограничения: например, Oyente выдавал много ложных срабатываний даже на простых контрактах, а детекторы Slither, основанные на шаблонах, могли давать несколько ложных срабатываний. Более того, исследование 2023 года показало, что более 80% эксплуатируемых ошибок в контрактах (особенно сложных ошибок «бизнес-логики») были пропущены существующими инструментами, что подчеркивает необходимость более надежных методов верификации.

Перспективы и проблемы полной верификации: Теоретически, формальная верификация может доказать отсутствие ошибок путем исчерпывающей проверки инвариантов для всех состояний. Такие инструменты, как Certora Prover или фреймворк KEVM от Ethereum Foundation, направлены на математическую верификацию смарт-контрактов в соответствии с формальной спецификацией. Например, «автоматический математический аудитор» Certora использует язык спецификаций (CVL) для доказательства или опровержения правил, определенных пользователем. Однако на практике полное доказательство свойств для реальных контрактов часто недостижимо или очень трудоемко. Код может потребовать переписывания в упрощенные формы для верификации, должны быть написаны пользовательские спецификации, циклы и сложная арифметика могут потребовать ручных ограничений или абстракций, а SMT-солверы часто превышают время ожидания при сложной логике. Как отметили инженеры Trail of Bits, «доказательство отсутствия ошибок обычно недостижимо» для нетривиальных кодовых баз, и его достижение часто требует значительного вмешательства пользователя и экспертных знаний. Из-за этого инструменты формальной верификации традиционно использовались редко для критически важных частей кода (например, для верификации инварианта токена или алгоритма консенсуса), а не для целых контрактов от начала до конца.

Фазз-тестирование и тестирование инвариантов Foundry

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

  • Фазз-тестирование: Вместо написания модульных тестов для конкретных входных данных разработчик указывает свойства или инварианты, которые должны выполняться для любых входных данных. Foundry затем генерирует сотни или тысячи случайных входных данных для тестирования функции и проверяет, что свойство всегда выполняется. Это помогает выявить граничные случаи, которые разработчик мог бы не догадаться протестировать вручную. Например, фазз-тест может утверждать, что возвращаемое значение функции всегда неотрицательно или что определенное постусловие истинно независимо от входных данных. Движок Foundry использует интеллектуальные эвристики — он анализирует сигнатуры функций и вводит граничные значения (0, максимальное uint и т. д.) — для охвата граничных случаев, которые, вероятно, нарушат свойство. Если утверждение не выполняется, Foundry сообщает входной контрпример, который нарушает свойство.

  • Тестирование инвариантов: Тестирование инвариантов Foundry (также называемое фаззингом с учетом состояния) идет дальше, выполняя множественные вызовы функций и переходы состояний последовательно. Разработчик пишет инвариантные функции, которые должны оставаться истинными на протяжении всего срока службы контракта (например, общие активы = сумма балансов пользователей). Foundry затем случайным образом генерирует последовательности вызовов (со случайными входными данными) для имитации множества возможных сценариев использования, периодически проверяя, что условия инвариантов остаются истинными. Это может выявить сложные ошибки, которые проявляются только после определенной последовательности операций. По сути, тестирование инвариантов более тщательно исследует пространство состояний контракта, гарантируя, что ни одна последовательность действительных транзакций не может нарушить заявленные свойства.

Почему Foundry важен: Foundry сделал эти передовые методы тестирования доступными. Функции фаззинга и инвариантов встроены в рабочий процесс разработчика — не требуется специальный каркас или внешний инструмент, а тесты пишутся на Solidity наряду с модульными тестами. Благодаря движку на основе Rust, Foundry может быстро выполнять тысячи тестов (параллелизуя их) и предоставлять подробные трассировки сбоев для любого нарушения инварианта. Разработчики сообщают, что фаззер Foundry прост в использовании и очень производителен, требуя лишь незначительной настройки (например, установки количества итераций или добавления предположений для ограничения входных данных). Простой пример из документации Foundry — это фазз-тест для функции divide(a,b), который использует vm.assume(b != 0) для избежания тривиальных недействительных входных данных, а затем утверждает математические постусловия, такие как result * b <= a. Запуская такой тест с тысячами случайных пар (a,b), Foundry может быстро обнаружить граничные случаи (например, границы переполнения), которые было бы трудно найти путем ручного рассуждения.

Сравнения: Подход Foundry основан на предыдущих работах сообщества. Фаззер Echidna от Trail of Bits был более ранним инструментом тестирования на основе свойств для Ethereum. Echidna аналогичным образом генерирует случайные транзакции для поиска нарушений инвариантов, выраженных как функции Solidity, возвращающие булево значение. Он известен своей «интеллектуальной» генерацией входных данных (включая фаззинг, управляемый покрытием) и использовался для поиска многих ошибок. Фактически, исследователи безопасности отмечают, что движок Echidna чрезвычайно эффективен — «Echidna от Trail of Bits — лучший фаззер благодаря интеллектуальному выбору случайных чисел» — хотя интегрированный рабочий процесс Foundry упрощает написание тестов для разработчиков. На практике фазз-тестирование Foundry часто рассматривается как новый «минимальный стандарт» для безопасной разработки Solidity, дополняющий традиционные модульные тесты. Оно не может доказать отсутствие ошибок (поскольку оно рандомизировано и не является исчерпывающим), но значительно повышает уверенность, охватывая широкий спектр входных данных и комбинаций состояний.

За пределами фаззинга: формальные доказательства и передовые инструменты

Хотя фаззинг и инварианты выявляют многие проблемы, существуют случаи, когда используются более строгие формальные методы. Проверка моделей и доказательство теорем включают спецификацию желаемых свойств в формальной логике и использование автоматизированных доказателей для их проверки на соответствие коду контракта. Certora Prover (недавно открытый исходный код) является выдающимся инструментом в этой категории. Он позволяет разработчикам писать правила на предметно-ориентированном языке (CVL), а затем автоматически проверяет контракт на нарушения этих правил. Certora использовалась для верификации критических инвариантов в таких протоколах, как MakerDAO и Compound; например, она выявила ошибку «DAI debt invariant» в MakerDAO (тонкое несоответствие в учете), которая оставалась незамеченной в течение четырех лет. Примечательно, что движок Certora теперь поддерживает несколько платформ (EVM, VM Solana и eWASM), а открыв его исходный код в 2025 году, он сделал формальную верификацию промышленного уровня свободно доступной на Ethereum, Solana и Stellar. Этот шаг признает, что формальные доказательства не должны быть роскошью только для хорошо финансируемых команд.

Другие формальные инструменты включают подходы верификации во время выполнения (например, семантика KEVM Ethereum или Move Prover для цепочек на основе Move). В частности, Move Prover встроен в язык Move (используемый блокчейнами Aptos и Sui). Он позволяет писать формальные спецификации наряду с кодом и может автоматически доказывать определенные свойства с пользовательским интерфейсом, похожим на линтер или проверку типов. Эта тесная интеграция снижает барьер для разработчиков на этих платформах для использования формальной верификации как части разработки.

Резюме: Современный аудит смарт-контрактов сочетает в себе эти методологии. Фаззинг и тестирование инвариантов (на примере Foundry и Echidna) широко используются благодаря их простоте использования и эффективности в выявлении распространенных ошибок. Символическое выполнение и статические анализаторы по-прежнему служат для быстрого сканирования на предмет известных уязвимостей (с такими инструментами, как Slither, часто интегрированными в CI/CD-пайплайны). Тем временем, инструменты формальной верификации развиваются и распространяются по цепочкам, но они обычно зарезервированы для конкретных критических свойств или используются специализированными аудиторскими фирмами из-за их сложности. На практике многие аудиты сочетают эти подходы: например, использование фаззеров для поиска ошибок во время выполнения, статических инструментов для выявления очевидных ошибок и формальных проверок спецификаций для ключевых инвариантов, таких как «баланс токенов не превышает общее предложение».

Аудит с помощью ИИ с использованием больших языковых моделей

Появление больших языковых моделей (БММ), таких как GPT-3/4 (ChatGPT) от OpenAI и Codex, привнесло новую парадигму для анализа смарт-контрактов. Эти модели, обученные на огромных объемах кода и естественного языка, могут рассуждать о поведении программ, объяснять код и даже обнаруживать определенные уязвимости путем распознавания образов и знаний «здравого смысла». Вопрос в том: может ли ИИ дополнить или даже автоматизировать аудит смарт-контрактов?

Инструменты анализа уязвимостей на основе БММ

Появилось несколько исследовательских работ и прототипов инструментов, которые применяют БММ для аудита смарт-контрактов:

  • OpenAI Codex / ChatGPT (общие модели): Ранние эксперименты просто заключались в том, чтобы предложить GPT-3 или Codex код контракта и попросить найти потенциальные ошибки. Разработчики обнаружили, что ChatGPT может идентифицировать некоторые известные шаблоны уязвимостей и даже предлагать исправления. Однако ответы были случайными и не всегда исчерпывающими. Недавняя академическая оценка отметила, что наивное использование ChatGPT для обнаружения уязвимостей «не дало значительно лучших результатов по сравнению со случайным предсказанием» на эталонном наборе данных — по сути, если модель не направляется должным образом, она может галлюцинировать несуществующие проблемы или пропускать реальные уязвимости. Это подчеркнуло необходимость тщательно разработанных промптов или тонкой настройки для получения полезных результатов.

  • AuditGPT (2024): Это академический инструмент, который использовал ChatGPT (GPT-3.5/4) специально для проверки соответствия стандартам ERC в контрактах Ethereum. Исследователи заметили, что многие контракты токенов ERC20/ERC721 нарушают тонкие правила стандарта (что может привести к проблемам безопасности или совместимости). AuditGPT работает, разбивая аудит на небольшие задачи и разрабатывая специализированные промпты для каждого типа правил. Результат был впечатляющим: в тестах на реальных контрактах AuditGPT «успешно выявил 418 нарушений правил ERC и сообщил только о 18 ложных срабатываниях», демонстрируя высокую точность. Фактически, в статье утверждается, что AuditGPT превзошел профессиональную аудиторскую службу в поиске ошибок соответствия ERC при меньших затратах. Это говорит о том, что для хорошо определенных, узких областей (например, для обеспечения соблюдения списка стандартных правил) БММ с хорошими промптами может быть удивительно эффективной и точной.

  • LLM-SmartAudit (2024): Другой исследовательский проект, LLM-SmartAudit, использует более широкий подход, применяя многоагентную систему диалога для аудита кода Solidity. Он настраивает несколько специализированных агентов GPT-3.5/GPT-4 (например, один «Аудитор», сосредоточенный на корректности, один «Атакующий», думающий о том, как эксплуатировать), которые общаются друг с другом для анализа контракта. В своей оценке LLM-SmartAudit смог обнаружить широкий спектр уязвимостей. Примечательно, что в сравнительном тесте с обычными инструментами система на основе GPT-3.5 достигла наивысшей общей полноты (74%), превзойдя все традиционные статические и символические анализаторы, которые они тестировали (следующим лучшим был Mythril с полнотой 54%). Она также смогла найти все 10 типов уязвимостей в их тестовом наборе (в то время как каждый традиционный инструмент испытывал трудности с некоторыми категориями). Более того, переключившись на GPT-4 и сфокусировав анализ (то, что они называют режимом целевого анализа), система смогла обнаружить сложные логические ошибки, которые инструменты, такие как Slither и Mythril, полностью пропустили. Например, на наборе реальных DeFi-контрактов подход на основе БММ нашел сотни логических ошибок, в то время как статические инструменты «не продемонстрировали эффективности в обнаружении» этих проблем. Эти результаты демонстрируют потенциал БММ в выявлении тонких ошибок, которые выходят за рамки сопоставления с образцом традиционных анализаторов.

  • Prometheus (PromFuzz) (2023): Гибридный подход заключается в использовании БММ для управления другими методами. Одним из примеров является PromFuzz, который использует «агента-аудитора» на основе GPT для выявления подозрительных областей в коде, затем автоматически генерирует проверки инвариантов и передает их в фаззинг-движок. По сути, БММ выполняет первоначальный анализ (как с доброжелательной, так и с атакующей точки зрения), чтобы сфокусировать фазз-тестирование на вероятных уязвимостях. В оценках этот подход достиг очень высоких показателей обнаружения ошибок — например, более 86% полноты с нулевыми ложными срабатываниями в определенных эталонных наборах — значительно превосходя автономные фаззеры или предыдущие инструменты. Это многообещающее направление: использование ИИ для оркестровки и улучшения классических методов, таких как фаззинг, сочетая сильные стороны обоих.

  • Другие инструменты ИИ: Сообщество видело различные другие концепции аудита с помощью ИИ. Например, проект «Toucan» от Trail of Bits интегрировал OpenAI Codex в свой рабочий процесс аудита (подробнее о его выводах ниже). Некоторые стартапы в области безопасности также рекламируют ИИ-аудиторов (например, услуги «ChainGPT Audit»), обычно обертывая GPT-4 пользовательскими промптами для проверки контрактов. Энтузиасты открытого исходного кода создали аудиторские боты на основе ChatGPT на форумах, которые принимают фрагмент Solidity и выдают потенциальные проблемы. Хотя многие из них являются экспериментальными, общая тенденция ясна: ИИ исследуется на каждом уровне процесса проверки безопасности, от автоматического объяснения кода и генерации документации до обнаружения уязвимостей и даже предложения исправлений.

Возможности и ограничения аудиторов на основе БММ

БММ продемонстрировали заметные возможности в аудите смарт-контрактов:

  • Широкие знания: БММ, такая как GPT-4, была обучена на бесчисленных кодах и уязвимостях. Она «знает» об общих проблемах безопасности (реентрабельность, переполнение целых чисел и т. д.) и даже о некоторых исторических эксплойтах. Это позволяет ей распознавать шаблоны, которые могут указывать на ошибку, и вспоминать лучшие практики из документации. Например, она может помнить, что transferFrom ERC-20 должен проверять разрешения (и отмечать отсутствие такой проверки как нарушение). В отличие от статического инструмента, который отмечает только известные шаблоны, БММ может применять рассуждения к новому коду и выявлять проблемы, которые не были явно закодированы в нем разработчиком инструмента.

  • Естественные объяснения: ИИ-аудиторы могут предоставлять понятные для человека объяснения потенциальных проблем. Это чрезвычайно ценно для опыта разработчиков. Традиционные инструменты часто выдают загадочные предупреждения, которые требуют экспертных знаний для интерпретации, в то время как инструмент на основе GPT может сгенерировать абзац, объясняющий ошибку простым языком, и даже предложить исправление. AuditGPT, например, не только отмечал нарушения правил ERC, но и описывал, почему код нарушал правило и каковы были последствия. Это помогает менее опытным разработчикам осваивать концепции безопасности.

  • Гибкость: С помощью промпт-инжиниринга БММ можно направить на различные аспекты или следовать пользовательским политикам безопасности. Они не ограничены фиксированным набором правил — если вы можете описать свойство или шаблон словами, БММ может попытаться его проверить. Это делает их привлекательными для аудита новых протоколов, которые могут иметь уникальные инварианты или логику (где написание пользовательского статического анализа с нуля было бы нецелесообразным).

Однако были замечены значительные проблемы и вопросы надежности:

  • Ограничения рассуждений: Современные БММ иногда испытывают трудности со сложными логическими рассуждениями, необходимыми для анализа безопасности. Trail of Bits сообщили, что «модели не способны хорошо рассуждать о некоторых высокоуровневых концепциях, таких как владение контрактами, реентрабельность и взаимосвязи между функциями». Например, GPT-3.5/4 может теоретически понимать, что такое реентрабельность (и даже объяснять ее), но может не распознать уязвимость реентрабельности, если для этого требуется понимание последовательности вызовов между функциями и изменений состояния. Модель также может пропустить уязвимости, связанные с взаимодействием нескольких контрактов или логикой, зависящей от времени, потому что они выходят за рамки анализа одного фрагмента кода.

  • Ложные срабатывания и галлюцинации: Основная проблема заключается в том, что БММ могут выдавать уверенные, но неверные выводы. В аудите «галлюцинация» может означать выявление несуществующей уязвимости или неправильную интерпретацию кода. Эксперимент Trail of Bits с Codex (GPT) показал, что по мере масштабирования до более крупных реальных контрактов «количество ложных срабатываний и галлюцинаций [стало] слишком высоким», до такой степени, что это замедляло аудиторов слишком большим количеством ложных отчетов. Эта непредсказуемость проблематична — инструменту, который слишком часто кричит «волк», разработчики не будут доверять. Успех AuditGPT в поддержании низкого уровня ложных срабатываний (всего 18 из сотен обнаружений) обнадеживает, но это было в ограниченной области. При общем использовании необходимы тщательная разработка промптов и, возможно, циклы человеческого обзора для фильтрации результатов ИИ.

  • Ограничения контекста: БММ имеют ограничение на размер контекстного окна, что означает, что они могут «видеть» только определенное количество кода одновременно. Сложные контракты часто охватывают несколько файлов и тысячи строк. Если ИИ не может обработать всю кодовую базу, он может упустить важные связи. Используются такие методы, как нарезка кода (подача контракта по частям), но они рискуют потерять общую картину. Команда LLM-SmartAudit отметила, что с ограничением в 4k токенов GPT-3.5 они не могли анализировать некоторые крупные реальные контракты, пока не переключились на GPT-4 с большим контекстом. Даже тогда разделение анализа на части может привести к тому, что он упустит ошибки, которые проявляются только при рассмотрении системы в целом. Это делает анализ целых протоколов (с несколькими взаимодействующими контрактами) с помощью ИИ реальной проблемой на данный момент.

  • Интеграция и инструментарий: Отсутствует надежный инструментарий для разработчиков вокруг ИИ-аудиторов. Запуск анализа БММ не так прост, как запуск линтера. Он включает вызовы API к модели, обработку промпт-инжиниринга, ограничений скорости и парсинг ответов ИИ. «Экосистема программного обеспечения вокруг интеграции БММ с традиционным программным обеспечением слишком примитивна, и все громоздко», как выразилась одна аудиторская команда. Практически нет готовых фреймворков для непрерывного развертывания ИИ-аудитора в CI/CD-пайплайнах при управлении его неопределенностями. Это медленно улучшается (некоторые проекты исследуют CI-ботов, использующих GPT-4 для обзора кода), но это только начало. Более того, отладка того, почему ИИ дал определенный результат, сложна — в отличие от детерминированных инструментов, вы не можете легко отследить логику, которая привела модель к обнаружению или пропуску чего-либо.

  • Стоимость и производительность: Использование больших моделей, таких как GPT-4, дорого и может быть медленным. Если вы хотите включить ИИ-аудит в CI/CD-пайплайн, это может добавить несколько минут на контракт и повлечь значительные затраты на API для большого кода. Тонко настроенные модели или БММ с открытым исходным кодом могут снизить затраты, но они, как правило, менее способны, чем GPT-4. Ведутся исследования по созданию меньших, специализированных моделей для безопасности кода, но в настоящее время лучшие результаты получены от крупных проприетарных моделей.

В заключение, аудит с помощью БММ многообещающ, но не является панацеей. Мы наблюдаем гибридные подходы, где ИИ помогает генерировать тесты или анализировать конкретные аспекты, а не выполняет весь аудит от начала до конца. Например, ИИ может предложить потенциальные инварианты или рискованные области, которые затем исследует человек или другой инструмент. Как заметил один инженер по безопасности, технология еще не готова заменить человеческих аудиторов для критически важных задач, учитывая пробелы в рассуждениях и препятствия для интеграции. Однако она уже может быть полезным помощником — «что-то несовершенное может быть намного лучше, чем ничего» в случаях, когда традиционные инструменты не справляются.

Точность и надежность различных наборов инструментов

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

  • Инструменты статического анализа: Статические анализаторы, такие как Slither, ценятся за быструю обратную связь и простоту использования. Они обычно имеют высокую точность, но умеренную полноту — это означает, что большинство проблем, о которых они сообщают, являются реальными (мало ложных срабатываний по замыслу), но они обнаруживают только определенные классы уязвимостей. Исследование 2024 года (RQ1 LLM-SmartAudit) показало, что Slither обнаружил около 46% известных уязвимостей в тестовом наборе. Mythril (символическое выполнение) показал немного лучший результат — 54% полноты. Каждый инструмент имел сильные стороны в определенных типах ошибок (например, Slither очень хорошо обнаруживает арифметические проблемы или использование tx.origin, в то время как символические инструменты превосходны в поиске простых сценариев реентрабельности), но ни один не имел полного охвата. Ложные срабатывания для зрелых инструментов, таких как Slither, относительно низки — его разработчики рекламируют «минимальное количество ложных тревог и быстрое выполнение (менее 1 с на контракт)», что делает его подходящим для использования в CI/CD. Тем не менее, статические инструменты могут давать сбои, если код использует сложные шаблоны; они могут отмечать граничные случаи, которые фактически обрабатываются, или пропускать глубокие логические ошибки, которые не соответствуют известным антишаблонам.

  • Фаззинг и тестирование свойств: Фаззеры, такие как фазз/инвариантные тесты Foundry или Echidna от Trail of Bits, доказали свою высокую эффективность в поиске ошибок во время выполнения и нарушений инвариантов. Эти инструменты, как правило, имеют почти нулевые ложные срабатывания в том смысле, что если ошибка сообщается (утверждение не выполнилось), это реальное выполнение контрпримера. Компромисс заключается в ложноотрицательных результатах — если ошибка не проявляется в протестированном пространстве входных данных или количестве запусков, она может быть пропущена. Покрытие зависит от того, насколько хорошо фаззер исследует пространство состояний. При достаточном времени и хороших эвристиках фаззеры обнаружили много серьезных ошибок, которые статический анализ пропустил. Например, Echidna смог быстро воспроизвести ошибки MakerDAO и Compound, для обнаружения которых потребовались усилия по формальной верификации. Однако фаззинг не гарантирует обнаружение каждой логической ошибки. По мере усложнения контрактов фаззерам может потребоваться написание дополнительных инвариантов или использование более интеллектуальных стратегий поиска для достижения более глубоких состояний. С точки зрения метрик, фаззинг не имеет единого показателя «полноты», но эмпирические данные показывают, что важные инварианты обычно могут быть нарушены фаззером, если они могут быть нарушены. Надежность высока для того, что он находит (не требуется ручная сортировка ложных отчетов), но следует помнить, что пройденный фазз-тест не является доказательством корректности — это лишь повышение уверенности.

  • Инструменты формальной верификации: Применительно, формальная верификация обеспечивает наивысшую гарантию — успешное доказательство означает, что 100% состояний удовлетворяют свойству. С точки зрения точности, она фактически идеальна (корректна и полна) для свойств, которые она может доказать. Самая большая проблема здесь не в точности результатов, а в сложности использования и узкой области применения. Формальные инструменты также могут иметь ложноотрицательные результаты на практике: они могут просто быть неспособны доказать истинное свойство из-за сложности (давая нулевой результат или тайм-аут, что не является ложным срабатыванием, но означает, что мы не можем верифицировать что-то, что на самом деле безопасно). Они также могут иметь ошибки спецификации, когда инструмент «доказывает» что-то, что не было тем свойством, которое вы имели в виду (ошибка пользователя). В реальных аудитах формальные методы выявили некоторые критические ошибки (успехи Certora включают обнаружение тонкой ошибки SushiSwap и проблемы с библиотекой PRBMath до развертывания). Но их послужной список ограничен тем, как редко они применяются комплексно — как отметили Trail of Bits, было «трудно найти публичные проблемы, обнаруженные исключительно с помощью формальной верификации, в отличие от множества ошибок, найденных фаззингом». Таким образом, хотя формальная верификация чрезвычайно надежна при успехе, ее влияние на общее покрытие инструментария ограничено требуемыми усилиями и опытом.

  • Анализ на основе БММ: Точность ИИ-аудиторов в настоящее время является движущейся целью, поскольку новые методы (и более новые модели) быстро расширяют границы. Мы можем получить несколько данных:

    • Система AuditGPT, ориентированная на правила ERC, достигла очень высокой точности (≈96% по количеству ложных срабатываний) и обнаружила сотни проблем, которые статические инструменты или люди упустили из виду. Но это было в узкой области с структурированными промптами. Мы не должны обобщать, что ChatGPT будет на 96% точен при произвольном поиске уязвимостей — вне контролируемой настройки его производительность ниже.
    • В более широком обнаружении уязвимостей LLM-SmartAudit (GPT-3.5) показал ~74% полноты на бенчмарке с умеренным уровнем ложных срабатываний, что лучше, чем любой отдельный традиционный инструмент. При обновлении до GPT-4 со специализированным промптингом (режим TA) он значительно улучшился — например, на наборе из 1400 реальных уязвимостей агент GPT-4 обнаружил ~48% конкретных проблем и ~47% сложных логических проблем, в то время как Slither/Mythril/Conkas обнаружили ~0% (ни одной) из этих конкретных сложных проблем. Это демонстрирует, что БММ могут значительно расширить охват до типов ошибок, которые статический анализ полностью пропускает. С другой стороны, БММ не обнаружила более половины проблем (поэтому у нее также есть существенные ложноотрицательные результаты), и неясно, сколько ложных срабатываний было среди тех, о которых она сообщила — исследование больше фокусировалось на полноте, чем на точности.
    • Эксперимент Trail of Bits Codex/GPT-4 «Toucan» показателен для проблем с надежностью. Изначально, на небольших примерах, Codex мог идентифицировать известные уязвимости (проблемы владения, реентрабельность) при тщательном промптинге. Но как только они попытались масштабировать, они столкнулись с непоследовательными и неверными результатами. Они сообщили, что «количество сбоев было высоким даже в коде среднего размера» и трудно предсказуемым. В конечном итоге они пришли к выводу, что GPT-4 (по состоянию на начало 2023 года) был лишь незначительным улучшением и все еще «не хватало ключевых функций», таких как рассуждение о межфункциональных потоках. Результатом стало то, что ИИ не существенно уменьшил количество ложных срабатываний по сравнению с их статическими инструментами, и не ускорил их рабочий процесс аудита. Другими словами, текущая надежность общего БММ в качестве аудитора была признана недостаточной профессиональными аудиторами в этом испытании.

Подводя итог, каждый набор инструментов имеет свои сильные стороны:

  • Статические инструменты: Надежны для быстрого обнаружения известных проблем; низкий уровень шума, но ограниченные типы ошибок (средняя полнота ~40–50% на бенчмарках).
  • Фазз/инвариантное тестирование: Очень высокая точность (почти нет ложных тревог) и сильная сторона в поиске функциональных и зависящих от состояния ошибок; покрытие может быть широким, но не гарантированным (нет простой метрики, зависит от времени и качества инвариантов). Часто находит те же ошибки, что и формальные доказательства, если даны достаточные указания.
  • Формальная верификация: Золотой стандарт для абсолютной корректности по конкретным свойствам; по сути, 100% полнота/точность для этих свойств при успешном применении. Но практически ограничена узкими проблемами и требует значительных усилий (пока не является решением «одной кнопкой» для полных аудитов).
  • Анализ ИИ (БММ): Потенциально высокий охват — может находить ошибки в различных категориях, включая те, которые пропущены другими инструментами — но переменная точность. При специализированных настройках может быть как точным, так и широким (как показал AuditGPT для проверок ERC). Без тщательных ограничений может охватывать широкий круг проблем и требовать человеческой проверки результатов. «Средняя» точность ChatGPT при обнаружении уязвимостей не является впечатляющей (близка к угадыванию, согласно одному исследованию), но лучшие разработанные системы, использующие БММ, превосходят традиционные инструменты. Ведутся активные исследования по повышению надежности результатов ИИ (например, путем перекрестной проверки несколькими агентами или объединения БММ со статическим рассуждением для перепроверки выводов ИИ).

Стоит отметить, что сочетание подходов дает наилучшие результаты. Например, можно запустить Slither (чтобы поймать низко висящие плоды без шума), затем использовать Foundry/Echidna для более глубокого фаззинга поведения, и, возможно, использовать инструмент на основе БММ для сканирования на предмет любых шаблонов или инвариантов, которые не были учтены. Каждый из них будет охватывать различные слепые зоны других.

Проблемы и ограничения внедрения в реальном мире

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

  • Опыт разработчиков и экспертиза: Традиционная формальная верификация имеет крутую кривую обучения. Написание формальных спецификаций (на CVL, Coq, языке спецификаций Move и т. д.) больше похоже на написание математических доказательств, чем на написание кода. Многим разработчикам не хватает этого опыта, а экспертов по формальным методам не хватает. Напротив, фаззинг с Foundry или написание инвариантов на Solidity гораздо более доступны — это похоже на написание дополнительных тестов. Это главная причина, по которой фазз-тестирование получило более быстрое распространение, чем формальные доказательства в сообществе Ethereum. Команда Trail of Bits явно отметила, что фаззинг «дает аналогичные результаты, но требует значительно меньше навыков и времени», чем формальные методы во многих случаях. Таким образом, хотя формальная верификация может выявлять различные ошибки, многие команды выбирают более простой подход, который дает достаточно хорошие результаты с меньшими усилиями.

  • Интеграция в рабочий процесс разработки: Чтобы инструмент получил широкое распространение, он должен вписываться в CI/CD-пайплайны и повседневное кодирование. Такие инструменты, как Slither, здесь преуспевают — он «легко интегрируется в настройки CI/CD, оптимизируя автоматизацию и помогая разработчикам». Разработчик может добавить Slither или Mythril в GitHub Action и заставить его прерывать сборку, если обнаружены проблемы. Фазз-тесты Foundry могут запускаться как часть forge test каждый раз. Тесты инвариантов могут даже непрерывно запускаться в облаке с помощью таких инструментов, как CloudExec, и любой сбой может быть автоматически преобразован в модульный тест с помощью fuzz-utils. Эти интеграции означают, что разработчики получают быструю обратную связь и могут итерировать. Напротив, что-то вроде Certora Prover исторически запускалось как отдельный процесс (или внешней аудиторской командой) и могло занимать часы для получения результата — это не то, что вы запускали бы при каждом коммите. Инструменты на основе ИИ также сталкиваются с препятствиями интеграции: вызов API и детерминированная обработка его вывода в CI/CD нетривиальны. Существует также вопрос безопасности и конфиденциальности — многие организации не хотят отправлять проприетарный код контракта стороннему ИИ-сервису для анализа. Самостоятельно размещенные решения БММ пока не так мощны, как крупные облачные API, поэтому это является камнем преткновения для внедрения ИИ-аудиторов в CI/CD.

  • Ложные срабатывания и шум: Инструмент, который сообщает о множестве ложных срабатываний или низкоприоритетных обнаружений, может снизить доверие разработчиков. Статические анализаторы сталкивались с этим в прошлом — например, ранние версии некоторых инструментов заваливали пользователей предупреждениями, многие из которых были неактуальны. Баланс между сигналом и шумом имеет решающее значение. Slither хвалят за минимальное количество ложных тревог, в то время как такой инструмент, как Securify (в его исследовательской форме), часто выдавал множество предупреждений, которые требовали ручной фильтрации. БММ, как обсуждалось, могут генерировать шум, если не нацелены должным образом. Вот почему в настоящее время предложения ИИ обычно воспринимаются как консультативные, а не абсолютные. Команды с большей вероятностью примут шумный инструмент, если он запускается отдельной командой безопасности или в контексте аудита, но для повседневного использования разработчики предпочитают инструменты, которые дают четкие, действенные результаты с низким уровнем шума. Идеал — «прерывать сборку» только при определенных ошибках, а не при гипотетических. Достижение такой надежности является постоянной проблемой, особенно для инструментов ИИ.

  • Масштабируемость и производительность: Формальная верификация может быть вычислительно интенсивной. Как отмечалось, солверы могут превышать время ожидания на сложных контрактах. Это затрудняет масштабирование до больших систем. Если проверка одного свойства занимает часы, вы не будете проверять десятки свойств при каждом изменении кода. Фазз-тестирование также сталкивается с ограничениями масштабируемости — исследование огромного пространства состояний или контракта с множеством методов комбинаторно может быть медленным (хотя на практике фаззеры могут работать в фоновом режиме или ночью, чтобы углубить свой поиск). Модели ИИ имеют фиксированные размеры контекста, и увеличение емкости модели дорого. Хотя контекст GPT-4 в 128k токенов является благом, подача ему сотен килобайт кода контракта обходится дорого и все еще недостаточно для очень крупных проектов (представьте сложный протокол с множеством контрактов — вы можете превысить это). Существует также мультичейн-масштабирование: если ваш проект включает взаимодействия между контрактами в разных цепочках (Ethereum ↔ другая цепочка), верификация или анализ этой межцепочечной логики еще более сложны и, вероятно, выходят за рамки существующих инструментов.

  • Человеческий надзор и верификация: В конечном итоге большинство команд по-прежнему полагаются на экспертов-аудиторов для окончательного утверждения. Автоматизированные инструменты — это помощники, а не замены. Одно из ограничений всех этих инструментов заключается в том, что они работают в рамках известных свойств или шаблонов. Они могут пропустить совершенно новый тип ошибки или тонкий экономический недостаток в дизайне DeFi-протокола. Человеческие аудиторы используют интуицию и опыт, чтобы рассмотреть, как злоумышленник может подойти к системе, иногда способами, которые ни один инструмент явно не запрограммирован делать. Были случаи, когда контракты проходили все автоматизированные проверки, но человек позже находил уязвимость в бизнес-логике или креативный вектор атаки. Таким образом, проблема заключается в избегании ложного чувства безопасности — разработчики должны правильно интерпретировать вывод формальных инструментов и ИИ и не предполагать, что «проблем не обнаружено» означает, что код на 100% безопасен.

  • Поддержание спецификаций и тестов: Для формальной верификации, в частности, одной практической проблемой является отклонение спецификации. Спецификация (инварианты, правила и т. д.) может устареть по мере развития кода. Обеспечение синхронизации кода и его формальной спецификации является нетривиальной задачей управления. Если разработчики не бдительны, доказательства могут «пройти» просто потому, что они доказывают что-то, что больше не имеет отношения к фактическим требованиям кода. Аналогично, инвариантные тесты должны обновляться по мере изменения ожидаемого поведения системы. Это требует культуры разработки, управляемой инвариантами, которой нет у всех команд (хотя есть стремление поощрять ее).

В итоге, основные ограничения — это люди и процессы, а не сырые возможности технологии. Формальные методы и методы с помощью ИИ могут значительно улучшить безопасность, но они должны быть развернуты таким образом, чтобы соответствовать рабочим процессам и навыкам разработчиков. Обнадеживает то, что такие тенденции, как разработка, управляемая инвариантами (запись критических инвариантов с первого дня), набирают обороты, а инструментарий медленно улучшается, чтобы сделать расширенный анализ более простым в использовании. Открытие исходного кода основных инструментов (например, Certora Prover) и интеграция фаззинга в популярные фреймворки (Foundry) снижают барьеры. Со временем мы ожидаем, что разрыв между тем, что может сделать «средний разработчик», и тем, что может сделать «исследователь с докторской степенью», сократится в плане использования этих мощных методов верификации.

Инструменты аудита с открытым исходным кодом и коммерческие

Ландшафт инструментов безопасности смарт-контрактов включает как проекты с открытым исходным кодом, так и коммерческие услуги. У каждого из них своя роль, и часто они дополняют друг друга:

  • Инструменты с открытым исходным кодом: Большинство широко используемых инструментов аудита в экосистеме Ethereum являются открытыми. Сюда входят Slither (статический анализатор), Mythril (символическое выполнение), Echidna (фаззер), Manticore (символическое/конкретное выполнение), Securify (анализатор из ETH Zurich), Solhint/Ethlint (линтеры) и, конечно же, сам Foundry. Инструменты с открытым исходным кодом предпочитают по нескольким причинам: (1) Прозрачность — разработчики могут видеть, как работает инструмент, и доверять тому, что ничего вредоносного или скрытого не происходит (важно в открытой экосистеме). (2) Вклад сообщества — правила и функции добавляются широким сообществом (Slither, например, имеет множество детекторов, внесенных сообществом). (3) Стоимость — они бесплатны в использовании, что важно для многих небольших проектов/стартапов в Web3. (4) Интеграция — открытые инструменты обычно могут запускаться локально или в CI/CD без юридических препятствий, и часто их можно настраивать или скриптовать для конкретных нужд проекта.

    Инструменты с открытым исходным кодом быстро развивались. Например, поддержка Slither для новых версий Solidity и шаблонов постоянно обновляется Trail of Bits. Mythril, разработанный ConsenSys, может анализировать не только Ethereum, но и любую EVM-совместимую цепочку, работая с байт-кодом — показывая, как открытые инструменты могут быть легко перепрофилированы для разных цепочек. Недостатком открытых инструментов является то, что они часто поставляются с оговоркой «используйте на свой страх и риск» — без официальной поддержки или гарантий. Они могут не масштабироваться или не иметь такой же отполированный пользовательский интерфейс, как коммерческий продукт. Но в блокчейне даже многие компании используют открытый исходный код в качестве своих основных внутренних инструментов (иногда с небольшими пользовательскими модификациями).

  • Коммерческие услуги и инструменты: Несколько компаний предлагали анализ безопасности как продукт. Примеры включают MythX (облачный API сканирования от ConsenSys Diligence), Certora (которая предлагала свой prover как услугу до открытия исходного кода), CertiK и SlowMist (фирмы, имеющие внутренние сканеры и ИИ, которые они используют в аудитах или предлагают через дашборды), а также некоторые новые участники, такие как Securify от ChainSecurity (компания была приобретена, и ее инструмент используется внутри) или SolidityScan (облачный сканер, который выдает аудиторский отчет). Коммерческие инструменты часто нацелены на предоставление более удобного пользовательского опыта или интегрированного сервиса. Например, MythX интегрировался с расширениями IDE и плагинами CI/CD, чтобы разработчики могли отправлять свои контракты в MythX и получать подробный отчет, включая оценку уязвимости и детали для исправления проблем. Эти сервисы обычно используют комбинацию методов анализа (сопоставление с образцом, символическое выполнение и т. д.), настроенных для минимизации ложных срабатываний.

    Ценностное предложение коммерческих инструментов обычно заключается в удобстве и поддержке. Они могут поддерживать постоянно обновляемую базу знаний об уязвимостях и предоставлять поддержку клиентам в интерпретации результатов. Они также могут обрабатывать сложные вычисления в облаке (так что вам не нужно запускать солвер локально). Однако стоимость является фактором — многие проекты предпочитают не платить за эти услуги, учитывая наличие бесплатных альтернатив. Кроме того, в духе децентрализации некоторые разработчики не решаются полагаться на закрытые сервисы для обеспечения безопасности (этика «проверяй, а не доверяй»). Открытие исходного кода Certora Prover в 2025 году является заметным событием: оно превратило высококлассный коммерческий инструмент в ресурс сообщества. Ожидается, что этот шаг ускорит внедрение, поскольку теперь любой желающий может попытаться формально верифицировать свои контракты без платной лицензии, а открытость кода позволит исследователям улучшать инструмент или адаптировать его к другим цепочкам.

  • Услуги по аудиту человеком: Стоит отметить, что помимо программных инструментов, многие аудиты выполняются профессиональными фирмами (Trail of Bits, OpenZeppelin, Certik, PeckShield и т. д.). Эти фирмы используют комбинацию вышеупомянутых инструментов (в основном с открытым исходным кодом) и проприетарных скриптов. Результаты этих усилий часто остаются конфиденциальными или лишь кратко излагаются в аудиторских отчетах. Здесь нет четкой дихотомии «открытый против коммерческого», поскольку даже коммерческие аудиторские фирмы в значительной степени полагаются на инструменты с открытым исходным кодом. Различие больше в экспертизе и ручном труде. Тем не менее, некоторые фирмы разрабатывают проприетарные платформы аудита с помощью ИИ, чтобы получить преимущество (например, были сообщения об использовании «ChainGPT» для внутренних аудитов или разработке CertiK ИИ под названием Skynet для мониторинга в сети). Это не публичные инструменты как таковые, поэтому их точность и методы не широко документированы.

На практике распространенной моделью является сначала открытый исходный код, затем коммерческий (по желанию). Команды будут использовать открытые инструменты во время разработки и тестирования (потому что они могут легко интегрировать их и запускать так часто, как это необходимо). Затем они могут использовать одну или две коммерческие услуги в качестве дополнительной проверки перед развертыванием — например, запустить сканирование MythX, чтобы получить «второе мнение», или нанять фирму, которая использует передовые инструменты, такие как Certora, для формальной верификации критически важного компонента. Поскольку границы размываются (Certora с открытым исходным кодом, результаты MythX часто совпадают с открытыми инструментами), различие меньше касается возможностей и больше — поддержки и удобства.

Одним из примечательных пересечений является мультичейн-поддержка Certora — поддерживая Solana и Stellar формально, они охватывают платформы, где существует меньше открытых альтернатив (например, у Ethereum много открытых инструментов, у Solana до недавнего времени почти не было). По мере расширения инструментов безопасности на новые экосистемы мы можем увидеть, как больше коммерческих предложений заполняют пробелы, по крайней мере, до тех пор, пока открытый исходный код не догонит.

Наконец, стоит отметить, что открытый и коммерческий подходы здесь не являются антагонистическими; они часто учатся друг у друга. Например, методы, впервые примененные в академических/коммерческих инструментах (такие как абстрактная интерпретация, используемая в Securify), в конечном итоге находят свое применение в открытых инструментах, и наоборот, данные об использовании открытых инструментов могут направлять улучшения коммерческих инструментов. Конечный результат, к которому стремятся обе стороны, — это повышение безопасности для всей экосистемы.

Применимость к различным блокчейнам

Хотя Ethereum был в центре внимания большинства этих инструментов (учитывая его доминирование в активности смарт-контрактов), концепции формальной верификации и аудита с помощью ИИ применимы и к другим блокчейн-платформам. Вот как они трансформируются:

  • EVM-совместимые цепочки: Блокчейны, такие как BSC, Polygon, Avalanche C-Chain и т. д., которые используют виртуальную машину Ethereum (EVM), могут напрямую использовать все те же инструменты. Фазз-тест или статический анализ не заботятся о том, будет ли ваш контракт развернут в основной сети Ethereum или на Polygon — байт-код и исходный язык (Solidity/Vyper) одинаковы. Действительно, Mythril и Slither могут анализировать контракты из любой EVM-цепочки, извлекая байт-код из адреса (Mythril просто нужен RPC-эндпоинт). Многие DeFi-проекты в этих цепочках запускают Slither и Echidna так же, как и проекты Ethereum. Аудиты протоколов на BSC или Avalanche обычно используют тот же набор инструментов, что и аудиты Ethereum. Таким образом, кросс-чейн в контексте EVM в основном означает повторное использование инструментария Ethereum.

  • Solana: Смарт-контракты Solana написаны на Rust (обычно через фреймворк Anchor) и выполняются на виртуальной машине BPF. Это очень отличающаяся среда от Ethereum, поэтому инструменты, специфичные для Ethereum, не работают из коробки. Однако применяются те же принципы. Например, можно проводить фазз-тестирование программ Solana, используя собственные библиотеки фаззинга Rust или такие инструменты, как cargo-fuzz. Формальная верификация на Solana до недавнего времени практически отсутствовала. Сотрудничество между инженерами Certora и Solana привело к созданию внутреннего инструмента верификации для программ Solana, который может доказывать контракты Rust/Anchor в соответствии со спецификациями. Как отмечалось, Certora расширила свой prover до VM Solana, что означает, что разработчики могут писать правила о поведении программы Solana и проверять их так же, как они делали бы это для Solidity. Это важно, потому что подход Solana «двигайся быстро» означал, что многие контракты запускались без такого строгого тестирования, как в Ethereum; формальные инструменты могли бы улучшить это. ИИ-аудит для Solana также возможен — БММ, которая понимает Rust, может быть запрошена для проверки программы Solana на уязвимости (такие как отсутствующие проверки владения или арифметические ошибки). Это может потребовать тонкой настройки на специфические для Solana шаблоны, но, учитывая популярность Rust, GPT-4 достаточно хорошо разбирается в чтении кода Rust. Вскоре могут появиться инструменты в стиле «ChatGPT для Anchor».

  • Polkadot и цепочки на основе Substrate: Смарт-контракты Polkadot могут быть написаны на Rust (скомпилированы в WebAssembly) с использованием фреймворка ink!, или вы можете запустить EVM-паллет (как это делает Moonbeam), что снова позволяет использовать Solidity. В случае ink!/Wasm инструменты верификации все еще находятся в зачаточном состоянии. Можно попытаться формально верифицировать свойства контракта Wasm, используя общие фреймворки верификации Wasm (например, Project Verona от Microsoft или другие рассматривали безопасность Wasm). Открытый prover Certora также упоминает поддержку смарт-контрактов Stellar на WASM, которые по концепции аналогичны любой цепочке на основе Wasm. Так что, вероятно, он применим и к контрактам Wasm Polkadot. Фазз-тестирование контрактов ink! может быть выполнено путем написания тестов на Rust (тесты свойств в Rust могут выполнять аналогичную роль). ИИ-аудит контрактов ink! также будет включать анализ кода Rust, что опять же БММ может сделать с правильным контекстом (хотя она может не знать о специфических макросах или трейтах ink! без некоторых подсказок).

    Кроме того, Polkadot исследует язык Move для параллельной разработки смарт-контрактов (как намекалось на некоторых форумах сообщества). Если Move будет использоваться на парачейнах Polkadot, Move Prover будет поставляться вместе с ним, привнося возможности формальной верификации по умолчанию. Акцент Move на безопасности (ресурсно-ориентированное программирование) и встроенный prover демонстрируют кросс-чейн распространение формальных методов с самого начала.

  • Другие блокчейны: Платформы, такие как Tezos (смарт-контракты Michelson) и Algorand (программы TEAL), каждая из которых имела усилия по формальной верификации. Tezos, например, имеет инструмент под названием Mi-Cho-Coq, который предоставляет формальную семантику Michelson и позволяет доказывать свойства. Это больше относится к академической стороне, но показывает, что любой блокчейн с хорошо определенной семантикой контракта может быть подвергнут формальной верификации. ИИ-аудит мог бы, в принципе, быть применен к любому языку программирования — это вопрос соответствующего обучения или промптинга БММ. Для менее распространенных языков БММ может потребоваться некоторая тонкая настройка, чтобы быть эффективной, поскольку она могла быть недостаточно предварительно обучена на достаточном количестве примеров.

  • Межцепочечные взаимодействия: Новая проблема — верификация взаимодействий между цепочками (например, мосты или межцепочечный обмен сообщениями). Формальная верификация здесь может включать моделирование состояния нескольких цепочек и протокола связи. Это очень сложно и в настоящее время выходит за рамки большинства инструментов, хотя конкретные протоколы мостов были вручную проанализированы на предмет безопасности. ИИ может помочь в проверке межцепочечного кода (например, проверка контракта Solidity, который взаимодействует с протоколом IBC на Cosmos), но готового решения пока нет.

По сути, инструментарий Ethereum проложил путь для других цепочек. Многие инструменты с открытым исходным кодом адаптируются: например, предпринимаются усилия по созданию статического анализатора, подобного Slither, для Solana (Rust), а концепции тестирования инвариантов не зависят от языка (тестирование на основе свойств существует во многих языках). Открытие исходного кода мощных движков (таких как Certora для нескольких VM) особенно многообещающе для межцепочечной безопасности — одна и та же платформа может использоваться для верификации контракта Solidity, программы Solana и контракта Move, при условии, что для каждого из них написана соответствующая спецификация. Это способствует более единой позиции безопасности во всей отрасли.

Также стоит отметить, что аудит с помощью ИИ принесет пользу всем цепочкам, поскольку модель может быть обучена уязвимостям в любом контексте. Пока ИИ предоставляется правильная информация (спецификации языка, известные шаблоны ошибок в этой экосистеме), он может применять аналогичные рассуждения. Например, ChatGPT можно попросить провести аудит контракта Solidity или модуля Move с соответствующим промптом, и он сделает и то, и другое — он может даже обнаружить что-то вроде «этот модуль Move может нарушать сохранение ресурсов», если у него есть эта концепция. Ограничение заключается в том, была ли ИИ подвержена достаточному количеству обучающих данных для этой цепочки. Ethereum, будучи самым популярным, вероятно, сместил модели в сторону лучшего понимания Solidity. По мере роста других цепочек будущие БММ или тонко настроенные производные могут охватить и их.

Заключение

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

Пока нет универсального решения — реальный аудит сочетает в себе несколько методов для достижения эшелонированной обороны. Фаззинг и тестирование инвариантов Foundry уже повышают планку ожиданий перед развертыванием (выявляя многие ошибки, которые могли бы проскользнуть мимо базовых тестов). Аудит с помощью ИИ, при осторожном использовании, может выступать в качестве множителя силы для аудиторов, выявляя проблемы и проверяя соответствие в масштабе и со скоростью, которые ручной обзор в одиночку не может обеспечить. Однако человеческий опыт остается решающим для управления этими инструментами, интерпретации их результатов и определения правильных свойств для проверки.

В дальнейшем мы можем ожидать большей конвергенции этих подходов. Например, ИИ может помочь писать формальные спецификации или предлагать инварианты («ИИ, какие свойства безопасности должны выполняться для этого DeFi-контракта?»). Инструменты фаззинга могут включать ИИ для более интеллектуального управления генерацией входных данных (как это делает PromFuzz). Движки формальной верификации могут использовать машинное обучение для принятия решений о том, какие леммы или эвристики применять. Все это будет способствовать повышению безопасности смарт-контрактов не только в Ethereum, но и на всех блокчейн-платформах. Конечная цель — это будущее, в котором критически важные смарт-контракты могут быть развернуты с высокой уверенностью в их корректности — цель, которая, вероятно, будет достигнута синергетическим использованием формальных методов и помощи ИИ, а не каждым из них по отдельности.

Источники:

  • Обзор фаззинга и тестирования инвариантов Foundry
  • Trail of Bits о фаззинге против формальной верификации
  • Trail of Bits об ограничениях формальной верификации
  • Патрик Коллинз о фаззинге/инвариантах против формальных методов
  • Trail of Bits об инвариантах в аудитах
  • Medium (BuildBear) об использовании Slither и Mythril
  • Результаты AuditGPT (соответствие ERC)
  • Trail of Bits об ограничениях БММ (Codex/GPT-4)
  • Производительность LLM-SmartAudit по сравнению с традиционными инструментами
  • Исследование «Detection Made Easy» о точности ChatGPT
  • Производительность PromFuzz (БММ+фаззинг)
  • Анонс открытого исходного кода Certora (мультичейн)
  • Описание Move Prover (Aptos)
  • Основы статического анализа (литература по безопасности смарт-контрактов)

Преступление «копировать-вставить»: как простая привычка опустошает миллионы из криптокошельков

· 5 мин чтения
Dora Noda
Software Engineer

Когда вы отправляете криптовалюту, какова ваша обычная процедура? Для большинства из нас она включает копирование адреса получателя из истории транзакций. В конце концов, никто не может запомнить строку из 40 символов, такую как 0x1A2b...8f9E. Это удобный ярлык, которым мы все пользуемся.

Но что, если это удобство — тщательно расставленная ловушка?

Разрушительно эффективная афера, называемая отравлением блокчейн-адресов, использует именно эту привычку. Недавнее исследование Университета Карнеги-Меллона выявило шокирующие масштабы этой угрозы. Всего за два года только в сетях Ethereum и Binance Smart Chain (BSC) мошенники совершили более 270 миллионов попыток атак, нацелившись на 17 миллионов жертв и успешно украв не менее 83,8 миллиона долларов.

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


Как работает обман 🤔

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

  1. Генерация похожего адреса: Злоумышленник определяет адрес, на который вы часто отправляете средства. Затем он использует мощные компьютеры для генерации нового крипто-адреса, который имеет точно такие же начальные и конечные символы. Поскольку большинство кошельков и блокчейн-эксплореров сокращают адреса для отображения (например, 0x1A2b...8f9E), их мошеннический адрес на первый взгляд выглядит идентично настоящему.

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

    • Крошечный перевод: Они отправляют вам ничтожную сумму криптовалюты (например, $0.001) со своего похожего адреса. Теперь он появляется в вашем списке недавних транзакций.
    • Перевод с нулевой стоимостью: В более хитром ходе они используют функцию во многих токен-контрактах для создания поддельного перевода на нулевую сумму, который выглядит так, будто он пришел от вас на их похожий адрес. Это делает поддельный адрес еще более легитимным, поскольку создается впечатление, что вы уже отправляли туда средства.
    • Перевод поддельного токена: Они создают бесполезный, поддельный токен (например, «USDTT» вместо USDT) и фальсифицируют транзакцию на свой похожий адрес, часто имитируя сумму предыдущей реальной транзакции, которую вы совершали.
  3. Ожидание ошибки: Ловушка расставлена. В следующий раз, когда вы захотите оплатить законному контакту, вы просканируете свою историю транзакций, увидите то, что, по вашему мнению, является правильным адресом, скопируете его и нажмете «отправить». К тому времени, как вы осознаете свою ошибку, средства будут утеряны. И благодаря необратимой природе блокчейна, нет банка, куда можно позвонить, и нет способа вернуть их.


Взгляд на преступное предприятие 🕵️‍♂️

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

Кого они выбирают в качестве цели

Злоумышленники не тратят время на мелкие аккаунты. Они систематически нацеливаются на пользователей, которые являются:

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

Гонка вооружений в сфере оборудования

Генерация похожего адреса — это вычислительная задача методом перебора. Чем больше символов вы хотите сопоставить, тем экспоненциально сложнее становится. Исследователи обнаружили, что, хотя большинство злоумышленников используют стандартные центральные процессоры (CPU) для создания умеренно убедительных подделок, самая изощренная преступная группа подняла это на новый уровень.

Этой элитной группе удалось сгенерировать адреса, которые совпадают до 20 символов с адресом цели. Этот подвиг почти невозможен на стандартных компьютерах, что привело исследователей к выводу, что они используют массивные GPU-фермы — то же самое мощное оборудование, которое используется для высокопроизводительных игр или исследований в области ИИ. Это демонстрирует значительные финансовые вложения, которые они легко окупают за счет своих жертв. Эти организованные группы ведут бизнес, и, к сожалению, их бизнес процветает.


Как защитить свои средства 🛡️

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

  1. Для каждого пользователя (это самая важная часть):

    • ПРОВЕРЯЙТЕ ПОЛНЫЙ АДРЕС. Прежде чем нажать «Подтвердить», потратьте пять дополнительных секунд, чтобы вручную проверить весь адрес, символ за символом. Не просто смотрите на первые и последние несколько цифр.
    • ИСПОЛЬЗУЙТЕ АДРЕСНУЮ КНИГУ. Сохраняйте доверенные, проверенные адреса в адресной книге или списке контактов вашего кошелька. При отправке средств всегда выбирайте получателя из этого сохраненного списка, а не из вашей динамической истории транзакций.
    • ОТПРАВЬТЕ ТЕСТОВУЮ ТРАНЗАКЦИЮ. Для крупных или важных платежей сначала отправьте небольшую сумму. Подтвердите с получателем, что он ее получил, прежде чем отправлять полную сумму.
  2. Призыв к улучшению кошельков:

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

    • Такие системы, как Ethereum Name Service (ENS), которые позволяют сопоставить удобочитаемое имя, например yourname.eth, с вашим адресом, могут полностью устранить эту проблему. Широкое распространение является ключом.

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

Миф об анонимности Ethereum: как исследователи раскрыли личности 15% валидаторов

· 6 мин чтения
Dora Noda
Software Engineer

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

Однако недавняя исследовательская работа под названием "Деанонимизация валидаторов Ethereum: P2P-сеть имеет проблему конфиденциальности" от исследователей из ETH Zurich и других учреждений выявила критический недостаток в этом предположении. Они продемонстрировали простой, недорогой метод прямой привязки публичного идентификатора валидатора к IP-адресу машины, на которой он работает.

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

Как работает уязвимость: недостаток в протоколе распространения информации

Чтобы понять уязвимость, нам сначала нужно представить, как взаимодействуют валидаторы Ethereum. Сеть состоит из более чем миллиона валидаторов, которые постоянно «голосуют» за состояние цепочки. Эти голоса называются аттестациями, и они транслируются по одноранговой (P2PP2P) сети всем другим нодам.

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

  • По умолчанию каждая нода (компьютер, на котором запущено программное обеспечение валидатора) подписывается только на две из этих 64 подсетей. Ее основная задача — добросовестно ретранслировать все сообщения, которые она видит на этих двух каналах.
  • Когда валидатору необходимо проголосовать, его аттестация случайным образом назначается одной из 64 подсетей для трансляции.

Именно здесь кроется уязвимость. Представьте ноду, чья задача — управлять трафиком для каналов 12 и 13. Весь день она добросовестно пересылает сообщения только из этих двух каналов. Но затем она внезапно отправляет вам сообщение, которое относится к каналу 45.

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

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

Метод оказался шокирующе эффективным. Используя всего четыре ноды в течение трех дней, команда успешно определила IP-адреса более 161 000 валидаторов, что составляет более 15% всей сети Ethereum.

Почему это важно: риски деанонимизации

Раскрытие IP-адреса валидатора — это не пустяк. Это открывает двери для целенаправленных атак, которые угрожают отдельным операторам и здоровью сети Ethereum в целом.

1. Целенаправленные атаки и кража вознаграждений Ethereum заранее, за несколько минут, объявляет, какой валидатор должен предложить следующий блок. Злоумышленник, знающий IP-адрес этого валидатора, может запустить атаку типа «отказ в обслуживании» (DDoS), перегрузив его трафиком и отключив от сети. Если валидатор пропускает свое четырехсекундное окно для предложения блока, возможность переходит к следующему валидатору в очереди. Если злоумышленник является этим следующим валидатором, он может затем получить вознаграждение за блок и ценные комиссии за транзакции (MEV), которые должны были достаться жертве.

2. Угрозы живучести и безопасности сети Хорошо обеспеченный ресурсами злоумышленник мог бы многократно выполнять эти «снайперские» атаки, вызывая замедление или остановку всего блокчейна (атака на живучесть). В более серьезном сценарии злоумышленник мог бы использовать эту информацию для запуска сложных атак по разделению сети, потенциально заставляя различные части сети расходиться во мнениях относительно истории цепочки, тем самым компрометируя ее целостность (атака на безопасность).

3. Выявление централизованной реальности Исследование также пролило свет на некоторые неудобные истины о децентрализации сети:

  • Чрезвычайная концентрация: Команда обнаружила пиры, размещающие ошеломляющее количество валидаторов, включая один IP-адрес, на котором работало более 19 000 валидаторов. Сбой одной машины может оказать непропорционально большое влияние на сеть.
  • Зависимость от облачных сервисов: Примерно 90% обнаруженных валидаторов работают на облачных провайдерах, таких как AWS и Hetzner, а не на компьютерах индивидуальных домашних стейкеров. Это представляет собой значительную точку централизации.
  • Скрытые зависимости: Многие крупные стейкинг-пулы заявляют, что их операторы независимы. Однако исследование выявило случаи, когда валидаторы из разных, конкурирующих пулов работали на одной и той же физической машине, создавая скрытые системные риски.

Меры по смягчению: как валидаторы могут защитить себя?

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

  • Создание большего шума: Валидатор может выбрать подписку на более чем две подсети — или даже на все 64. Это значительно затрудняет наблюдателю различение между ретранслируемыми сообщениями и сообщениями, сгенерированными самим валидатором.
  • Использование нескольких нод: Оператор может разделить обязанности валидатора между разными машинами с разными IP-адресами. Например, одна нода может обрабатывать аттестации, в то время как отдельная, приватная нода используется только для предложения высокоценных блоков.
  • Приватный пиринг: Валидаторы могут устанавливать доверенные, приватные соединения с другими нодами для ретрансляции своих сообщений, скрывая их истинное происхождение внутри небольшой, доверенной группы.
  • Протоколы анонимной трансляции: Могут быть реализованы более продвинутые решения, такие как Dandelion, который скрывает происхождение сообщения, передавая его по случайному «стеблю» перед широкой трансляцией.

Заключение

Это исследование убедительно иллюстрирует присущий распределенным системам компромисс между производительностью и конфиденциальностью. В стремлении к масштабированию P2PP2P-сеть Ethereum приняла дизайн, который скомпрометировал анонимность ее наиболее критически важных участников.

Выявив эту уязвимость, исследователи предоставили сообществу Ethereum знания и инструменты, необходимые для ее устранения. Их работа является важным шагом к созданию более надежной, безопасной и по-настоящему децентрализованной сети будущего.

Безопасное развертывание с Docker Compose + Ubuntu

· 6 мин чтения

В стартапах Кремниевой долины Docker Compose является одним из предпочтительных инструментов для быстрого развертывания и управления контейнерными приложениями. Однако удобство часто сопряжено с рисками безопасности. Как инженер по надежности сайта (SRE), я прекрасно осознаю, что уязвимости безопасности могут привести к катастрофическим последствиям. В этой статье я поделюсь лучшими практиками безопасности, которые я обобщил в своей реальной работе, сочетая Docker Compose с системами Ubuntu, помогая вам наслаждаться удобством Docker Compose, обеспечивая при этом безопасность системы.

Безопасное развертывание с Docker Compose + Ubuntu

I. Укрепление безопасности системы Ubuntu

Перед развертыванием контейнеров крайне важно обеспечить безопасность самой хост-системы Ubuntu. Вот несколько ключевых шагов:

1. Регулярное обновление Ubuntu и Docker

Убедитесь, что как система, так и Docker постоянно обновляются для исправления известных уязвимостей:

sudo apt update && sudo apt upgrade -y
sudo apt install docker-ce docker-compose-plugin

2. Ограничение прав управления Docker

Строго контролируйте права управления Docker, чтобы предотвратить атаки с повышением привилегий:

sudo usermod -aG docker deployuser
# Предотвратить легкое получение обычными пользователями прав управления Docker

3. Настройка брандмауэра Ubuntu (UFW)

Разумно ограничьте сетевой доступ, чтобы предотвратить несанкционированный доступ:

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

4. Правильная настройка взаимодействия Docker и UFW

По умолчанию Docker обходит UFW для настройки iptables, поэтому рекомендуется ручное управление:

Измените файл конфигурации Docker:

sudo nano /etc/docker/daemon.json

Добавьте следующее содержимое:

{
"iptables": false,
"ip-forward": true,
"userland-proxy": false
}

Перезапустите службу Docker:

sudo systemctl restart docker

Явно привяжите адреса в Docker Compose:

services:
webapp:
ports:
- "127.0.0.1:8080:8080"

II. Лучшие практики безопасности Docker Compose

Следующие конфигурации применимы к Docker Compose v2.4 и выше. Обратите внимание на различия между режимами без Swarm и Swarm.

1. Ограничение прав контейнера

Контейнеры, работающие от имени root по умолчанию, представляют высокие риски; переключитесь на пользователей без прав root:

services:
app:
image: your-app:v1.2.3
user: "1000:1000" # Пользователь без прав root
read_only: true # Файловая система только для чтения
volumes:
- /tmp/app:/tmp # Монтируйте определенные каталоги, если требуется доступ для записи
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE

Пояснение:

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

2. Сетевая изоляция и управление портами

Точно разделите внутренние и внешние сети, чтобы избежать exposing чувствительных сервисов общественности:

networks:
frontend:
internal: false
backend:
internal: true

services:
nginx:
networks: [frontend, backend]
database:
networks:
- backend
  • Сеть Frontend: Может быть открыта для публичного доступа.
  • Сеть Backend: Строго ограничена, только для внутренней связи.

3. Безопасное управление секретами

Конфиденциальные данные никогда не должны размещаться непосредственно в файлах Compose:

В одномашинном режиме:

services:
webapp:
environment:
- DB_PASSWORD_FILE=/run/secrets/db_password
volumes:
- ./secrets/db_password.txt:/run/secrets/db_password:ro

В режиме Swarm:

services:
webapp:
secrets:
- db_password
environment:
DB_PASSWORD_FILE: /run/secrets/db_password

secrets:
db_password:
external: true # Управляется через встроенное управление Swarm

Примечание:

  • Встроенные секреты Docker Swarm не могут напрямую использовать внешние инструменты, такие как Vault или AWS Secrets Manager.
  • Если требуется внешнее хранилище секретов, интегрируйте процесс чтения самостоятельно.

4. Ограничение ресурсов (адаптируйте к версии Docker Compose)

Ограничения ресурсов контейнера предотвращают исчерпание ресурсов хоста одним контейнером.

Режим Docker Compose для одной машины (рекомендуется v2.4):

version: "2.4"

services:
api:
image: your-image:1.4.0
mem_limit: 512m
cpus: 0.5

Режим Docker Compose Swarm (v3 и выше):

services:
api:
deploy:
resources:
limits:
cpus: "0.5"
memory: 512M
reservations:
cpus: "0.25"
memory: 256M

Примечание: В средах без Swarm ограничения ресурсов в разделе deploy не действуют, обязательно обращайте внимание на версию файла Compose.

5. Проверки работоспособности контейнеров

Настройте проверки работоспособности, чтобы заблаговременно выявлять проблемы и сокращать время простоя сервиса:

services:
webapp:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s

6. Избегайте использования тега Latest

Избегайте неопределенности, связанной с тегом latest в производственных средах, используйте конкретные версии образов:

services:
api:
image: your-image:1.4.0

7. Правильное управление журналами

Предотвратите исчерпание дискового пространства журналами контейнеров:

services:
web:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"

8. Конфигурация AppArmor в Ubuntu

По умолчанию Ubuntu включает AppArmor, и рекомендуется проверить статус профиля Docker:

sudo systemctl enable --now apparmor
sudo aa-status

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

9. Непрерывные обновления и сканирование безопасности

  • Сканирование уязвимостей образов: Рекомендуется интегрировать такие инструменты, как Trivy, Clair или Snyk, в процесс CI/CD:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
aquasec/trivy image your-image:v1.2.3
  • Автоматизированный процесс обновления безопасности: Пересобирайте образы как минимум еженедельно для исправления известных уязвимостей.

III. Пример из практики: Уроки ошибок конфигурации Docker Compose

В июле 2019 года Capital One пострадала от крупной утечки данных, затронувшей личную информацию более 100 миллионов клиентов 12. Хотя основной причиной этой атаки были ошибки конфигурации AWS, она также включала проблемы безопасности контейнеров, аналогичные описанной вами ситуации:

  1. Проблемы с разрешениями контейнеров: Злоумышленник использовал уязвимость в брандмауэре веб-приложений (WAF), работающем в контейнере, но с избыточными разрешениями.
  2. Недостаточная сетевая изоляция: Злоумышленник мог получить доступ к другим ресурсам AWS из скомпрометированного контейнера, что указывает на недостаточные меры сетевой изоляции.
  3. Раскрытие конфиденциальных данных: Из-за ошибок конфигурации злоумышленник смог получить доступ и украсть большое количество конфиденциальных данных клиентов.
  4. Ошибки конфигурации безопасности: Основной причиной всего инцидента стало накопление множества ошибок конфигурации безопасности, включая проблемы конфигурации контейнеров и облачных сервисов.

Этот инцидент привел к значительным финансовым потерям и ущербу репутации Capital One. Сообщается, что компания столкнулась со штрафами до 150 миллионов долларов из-за этого инцидента, а также с долгосрочным кризисом доверия. Этот случай подчеркивает важность конфигурации безопасности в контейнерных и облачных средах, особенно в управлении разрешениями, сетевой изоляции и защите конфиденциальных данных. Он напоминает нам, что даже, казалось бы, незначительные ошибки конфигурации могут быть использованы злоумышленниками, что приводит к катастрофическим последствиям.

IV. Заключение и рекомендации

Docker Compose в сочетании с Ubuntu — это удобный способ быстрого развертывания контейнерных приложений, но безопасность должна быть интегрирована на протяжении всего процесса:

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

Безопасность — это непрерывная практика без конечной точки. Надеюсь, эта статья поможет вам лучше защитить вашу среду развертывания Docker Compose + Ubuntu.