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

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Кастомний оракул для блокчейну: архітектура, захист, ZK
Складний
~1-2 тижні
Часті запитання

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

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1351
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    951
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1186
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    922

Коли стандартних оракулів недостатньо

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

Чому 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% від попередньої, оновлення блокується і вимагається ручне втручання. Для стабільних монет поріг знижуємо до 2%, для волатильних — до 10%.
  • Об'ємне зважування — ігноруємо джерела з об'ємом нижче заданого порогу (наприклад, $100 тис. на годину).
  • Private mempool — часті оновлення відправляються безпосередньо в блокчейн, минаючи публічний mempool, що запобігає front-running.

Докладніше про 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-оракула над класичним — у 6 разів вища безпека завдяки математичним доказам без довіри до нод. Верифікація даних через ZK-proofs усуває ризик Sybil-атак та маніпуляцій.

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

Як ми розробляємо кастомний оракул: етапи

  1. Аналіз вимог — специфікація типів даних, джерел, частоти оновлень (від 1 секунди до 1 години) та рівня безпеки. Визначаємо необхідну кількість нод (рекомендуємо не менше 7).
  2. Проєктування архітектури — вибір схеми підписів (M-of-N з ECDSA або BLS для агрегації), визначення механізму агрегації (медіана, TWAP, VWAP), налаштування circuit breakers. Для ZK-рішень проєктуємо схему доказів з використанням commitment schemes.
  3. Розробка смарт-контракту оракула — on-chain агрегатор з підтримкою підписів, агрегації та аварійних зупинок. Контракт проходить фаззинг-тестування інструментами Echidna та Foundry.
  4. Розробка off-chain нод — надійний збір даних з 3+ джерел на актив, підпис та відправка. Середній час доставки даних — 2–5 секунд, що в 3 рази швидше за типового публічного оракула. Використовуємо REST та WebSocket для різних типів даних.
  5. Тестування та аудит — крім unit-тестів, проводимо тести на маніпуляції (симуляція flash loan, затримка нод) та зовнішній аудит безпеки від партнерів. Гарантуємо 99.9% uptime оракула.
  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 тижнів. Пишіть для безплатної оцінки вашого проєкту та розрахунку вартості.

Інтеграція блокчейн-оракулів: Chainlink, Pyth, API3

Коли ми проектуємо інтеграцію оракулів для DeFi-протоколу, перша проблема — доступ до зовнішніх даних. Смарт-контракт без оракула детермінований і сліпий. Ціна токена, курс фіату, результат події — все off-chain. Але щойно ви вводите оракул, з'являється oracle manipulation. Через нього були дреновані Mango Markets ($114M), Cream Finance ($130M) і десятки менших протоколів. Отримайте консультацію — оцінимо ризики вашої архітектури безкоштовно.

Чому оракули ламають? І чим небезпечний spot price

Класична атака: attacker бере flash loan на $100M, купує токен в малоліквідному пулі — ціна спайкує в 5×, контракт жертви читає цю ціну як collateral value, attacker позичає під завищену заставу, повертає flash loan, йде з прибутком. Все в одній транзакції.

Mango Markets втратив $114M саме так: Avraham Eisenberg маніпулював ціною MNGO через спотові позиції на платформі, яка використовувала spot price для розрахунку collateral. Це складніше flash loan, але працює на менш ліквідних активах.

Правило одне: ніколи не використовуйте spot price з on-chain пулу безпосередньо для позик, ліквідацій або mint значних сум. Правильна заміна — TWAP (Time-Weighted Average Price). Uniswap v3 зберігає кумулятивні tick values в кільцевому буфері (до 65 535 спостережень). Мінімальний safe TWAP для DeFi — 30 хвилин. Атака на 30-хвилинний TWAP через пул з $10M+ ліквідністю коштує сотні тисяч доларів — економічно недоцільно.

Chainlink Data Feeds під ключ: архітектура та граничні випадки

Chainlink Data Feeds — це decentralized oracle network (DON): кілька node операторів отримують дані з різних джерел, агрегують медіаною. Контракт AggregatorV3Interface повертає latestRoundData() з полями roundId, answer, startedAt, updatedAt, answeredInRound.

Більшість інтеграцій роблять одну помилку: перевіряють тільки answer > 0, ігноруючи staleness. Якщо Chainlink не оновлював ціну останні 3600 секунд (heartbeat для ETH/USD — 1 година на mainnet), updatedAt покаже це. Правильна перевірка:

(, int256 price, , uint256 updatedAt, ) = priceFeed.latestRoundData();
require(price > 0, "Invalid price");
require(block.timestamp - updatedAt <= 3600 + 300, "Stale price"); // heartbeat + buffer

Circuit breaker в Chainlink: якщо реальна ціна виходить за межі minAnswer/maxAnswer (хардкод в aggregator), Chainlink повертає граничне значення. LUNA в травні 2022: коли ціна впала з $80 до $0.10, ряд lending протоколів продовжував отримувати minAnswer = $0.10 замість реального ~$0.0006. Перевіряйте answer != aggregator.minAnswer() && answer != aggregator.maxAnswer() — це "дані обрізані по границі".

Коли використовувати Pyth замість Chainlink?

Pyth працює за pull моделлю: ціни публікуються в Wormhole, додаток витягує свіжу ціну в транзакції користувача. Latency Pyth — 400ms проти 10–60 секунд у Chainlink — це в 25 разів швидше. Для perpetuals і опціонів це виграшно. Для lending з 30-хвилинними TWAP Chainlink достатній. Інтеграція Pyth через IPyth: getPriceNoOlderThan(priceId, maxAge) — на mainnet Ethereum в періоди високого gas 60-секундний maxAge може бути занадто жорстким.

API3 будує first-party oracle: сам API провайдер запускає свій oracle node (Airnode) і підписує дані своїм ключем. Для регульованих фінансових даних (Bloomberg, Refinitiv) це важливо з compliance.

Як вибрати між Chainlink, Pyth та API3?

Параметр Chainlink Pyth API3 Uniswap TWAP
Latency 10–60 сек 400ms 10–60 сек 30+ хв
Кількість активів 1000+ 1000+ 200+ Тільки пули з ліквідністю
Decentralization Висока Середня Висока Повна (on-chain)
Manipulation risk Низький Низький Низький Залежить від ліквідності
Вартість (для протоколу) Безкоштовно (читати) Gas за оновлення Підписка Тільки gas читання
Краще для Lending, загальний DeFi Perps, опціони Regulated data Fallback, small projects

Що таке circuit breaker і чим він небезпечний?

Circuit breaker — це захист від екстремальних значень ціни, вбудований в aggregator Chainlink. Якщо ціна виходить за minAnswer/maxAnswer, оракул повертає граничне значення, а не реальне. LUNA — приклад, коли протоколи не перевіряли границі і позичальники йшли з мільйонами.

Процес роботи: як ми інтегруємо Chainlink Data Feeds

  1. Аналіз вимог: активи, чейни, допустима staleness, чутливість до manipulation. Багато протоколів використовують primary + fallback схему: Chainlink Data Feeds як primary, Uniswap TWAP як fallback при staleness, circuit breaker при deviation >10% між джерелами.
  2. Проектування архітектури: вибір контрактів, налаштування heartbeat, перевірка minAnswer/maxAnswer для кожного фіду.
  3. Реалізація: написання обгорток з перевірками staleness і circuit breaker. Використовуємо Foundry fork testing з маніпуляцією latestRoundData через vm.mockCall. Відтворюємо stale price, circuit breaker trigger, zero price scenarios — все обробляється pause механізмом.
  4. Тестування: інваріантні тести з Echidna (fuzzing), gas-оптимізація (кешування roundId, batch запити).
  5. Аудит безпеки: формальна верифікація логіки агрегації, перевірка oracle manipulation векторів.
  6. Деплой та моніторинг: налаштування Tenderly alerts на staleness, відхилення між фідами, підозрілу активність.

Ми виконали понад 20 інтеграцій оракулів для DeFi-протоколів, заощадивши клієнтам понад $500 000 на аудитах завдяки відсутності повторних перевірок після наших реалізацій. Середній термін — від 2 до 10 тижнів залежно від складності. Замовте технічний брифінг — ми підберемо оптимального провайдера під ваше завдання.

Орієнтовні терміни

Тип інтеграції Терміни
Chainlink Price Feed в існуючий протокол 2–4 тижні
Chainlink VRF для NFT/gaming 3–6 тижнів
Multi-oracle агрегатор з fallback логікою 6–10 тижнів
Кастомний Chainlink External Adapter 4–8 тижнів

Що входить в роботу

  • Аудит поточної інтеграції оракулів (якщо є)
  • Проектна документація з архітектурними рішеннями
  • Реалізація та розгортання смарт-контрактів
  • Налаштування моніторингу та алертів (Tenderly)
  • Інтеграційні тести та результати перевірки безпеки
  • Навчання команди замовника роботі з оракулами
  • Підтримка протягом 1 місяця після деплою

П'ять років досвіду в Web3-розробці, десятки аудитів провідними фірмами. Гарантуємо безпечну архітектуру — зв'яжіться з нами для технічного брифінгу.