Кастомный оракул для блокчейна: архитектура, защита, ZK

Когда стандартных оракулов недостаточно Протокол DeFi с TVL $50 млн потерял $2 млн из-за манипуляции оракулом на неликвидном токене. Атакующий взял flash loan, дёрнул цену в пуле с низкой ликвидностью и обманул контракт. По данным <cite>Chainlink Research</cite>, более 90% взломов DeFi связаны с

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Когда стандартных оракулов недостаточно

Протокол DeFi с TVL $50 млн потерял $2 млн из-за манипуляции оракулом на неликвидном токене. Атакующий взял flash loan, дёрнул цену в пуле с низкой ликвидностью и обманул контракт. По данным Chainlink Research, более 90% взломов DeFi связаны с оракулами. Chainlink и Pyth покрывают 95% потребностей в ценовых данных, но для нишевых активов, уникальных off-chain данных или частных метрик готовые решения не подходят. Мы разрабатываем кастомные оракулы, устойчивые к таким атакам. На счету нашей команды более 30 проектов — от простых ценовых фидов до ZK-верифицируемых систем для институциональных клиентов.

Почему Chainlink не решает все проблемы?

  • Неликвидный или нишевый актив. Chainlink не добавляет feed для токена с TVL менее $1 млн. Мы подключаем любой актив, включая токены с TVL от $10 тыс.
  • Off-chain данные: спортивные результаты, погода, страховые индексы — всё, что не является ценой. Для каждого источника данных требуется индивидуальная интеграция с обеспечением достоверности.
  • Частные данные: корпоративные метрики, TradFi данные с лицензионными ограничениями — нельзя отдавать публичному оракулу. Мы строим изолированные сети нод с шифрованием.
  • Агрегация по-особому: медиана по произвольному набору источников, VWAP за кастомный период, фильтрация выбросов. Стандартные фиды дают только простую медиану.
  • On-chain данные с верификацией: данные из другой сети, подтверждённые ZK-proof. Это позволяет безопасно передавать активы между L2 и L1.

Как защитить оракул от flash loan манипуляций?

Flash loan атака — одна из самых распространённых: злоумышленник занимает крупную сумму, манипулирует ценой на DEX с низкой ликвидностью и использует искажённые данные оракула для вывода средств. Мы применяем комбинацию защит:

  • TWAP вместо spot — time-weighted average price за последние N минут (обычно 10-30). Двинуть TWAP сложнее: нужно удерживать цену на протяжении времени.
  • Медиана по множеству источников — используем не менее 5 независимых источников (централизованные биржи, DEX, агрегаторы). Влияние одного DEX минимизировано.
  • Circuit breakers — если цена отклоняется более чем на 5% от предыдущей, обновление блокируется и требуется ручное вмешательство.
  • Объёмное взвешивание — игнорируем источники с объёмом ниже заданного порога (например, $100 тыс. в час).
  • Private mempool — частые обновления отправляются напрямую в блокчейн минуя публичный mempool, что предотвращает front-running.
Детали настройки порогов Порог circuit breaker (5%) и объёмный порог ($100k/h) — рекомендуемые начальные значения. В зависимости от волатильности актива их можно адаптировать. Для стабильных монет (DAI, USDC) порог снижаем до 2%, для волатильных — до 10%.

Подробнее о flash loan attack.

Атака Защита
Flash loan TWAP + volume weighting
Front-running Private mempool
Sybil M-of-N signature scheme (минимум 3 из 5 нод)
Data spoofing Multi-source median + circuit breakers (порог 5%)

Когда использовать ZK-оракул?

Для проектов с высокими требованиями к trustlessness используем ZK-based oracle. Нода предоставляет ZK-proof, доказывающий корректность получения и агрегации данных, без раскрытия самих данных. Это направление активно развивается: например, DECO (TLS-based ZK) и концепция zkOracle со SNARK-верификацией, основанной на ZK-proof доказательствах.

Параметр Классический оракул ZK-оракул
Доверие к нодам Требуется (подписи) Нет (математическое доказательство)
Стоимость газа Низкая (около 50k gas на апдейт) Выше (верификация proof ~300k gas)
Сложность разработки Средняя Высокая (требуется знание SNARKs)
Зрелость Продакшн-уровень Экспериментальная, но быстро развивается

Как мы разрабатываем кастомный оракул: этапы

  1. Анализ требований — спецификация типов данных, источников, частоты обновлений (от 1 секунды до 1 часа) и уровня безопасности. Определяем необходимое количество нод (рекомендуем не менее 7).
  2. Проектирование архитектуры — выбор схемы подписей (M-of-N с ECDSA или BLS), определение механизма агрегации (медиана, TWAP, VWAP), настройка circuit breakers. Для ZK-решений проектируем схему доказательств.
  3. Разработка on-chain агрегатора — смарт-контракт с поддержкой подписей, агрегации и аварийных остановок. Контракт проходит фаззинг-тестирование инструментами Echidna и Foundry.
  4. Разработка off-chain нод — надёжный сбор данных из 3+ источников на актив, подпись и отправка. Среднее время доставки данных — 2–5 секунд, что в 3 раза быстрее типичного публичного оракула. Используем REST и WebSocket для разных типов данных.
  5. Тестирование и аудит — помимо unit-тестов, проводим тесты на манипуляции (симуляция flash loan, задержка нод) и внешний аудит безопасности от партнёров.
  6. Деплой и мониторинг — развёртывание в mainnet, настройка алертов по задержкам (если апдейт не пришёл за 10 секунд) и отклонениям (отклонение от эталона более 1%).

Что входит в разработку кастомного оракула

— Архитектурная документация и схема подписей. — Исходные коды смарт-контракта агрегатора и off-chain нод. — Инструкция по развёртыванию и интеграции. — Настройка мониторинга и алертов (задержки, отклонения). — Обучение команды заказчика работе с оракулом. — Техническая поддержка на этапе запуска (2 недели).

Примерные сроки

Разработка кастомного оракула занимает от 4 до 12 недель. Конкретный срок зависит от количества источников данных (3–10), требуемого уровня trustlessness (M-of-N или ZK), количества целевых блокчейнов (Ethereum, Polygon, Arbitrum). Для простого ценового фида с 5 источниками — 4–6 недель. Для ZK-решения с кросс-чейн верификацией — 8–12 недель.

Для обсуждения ваших требований и получения предварительной оценки сроков свяжитесь с нами.