Розробка кастомного оракула

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

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

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

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

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

Розробка кастомного оракула

Chainlink та Pyth закривають 95% потребностей у цінових даних. Але існують випадки, коли готове рішення не підходить: специфічний ілліквідний актив без покриття, нестандартний тип даних, мінімальна вимога до довіри третім особам, або спеціальна потреба агрегації. Тоді розробляють кастомний оракул.

Коли потрібен кастомний оракул

  • Ілліквідний або нішевий актив: Chainlink не додає feed для токена $1M TVL
  • Off-chain дані: спортивні результати, погода, страхові індекси — специфічні
  • Приватні дані: корпоративні метрики, TradFi дані з ліцензійними обмеженнями
  • Спеціальна агрегація: медіана від конкретних джерел, VWAP для кастомного періоду
  • On-chain дані з верифікацією: дані з іншого ланцюга через ZK proofs

Архітектура кастомного оракула

Компоненти

Зовнішні джерела даних
    ↓ (HTTP/WebSocket)
Мережа Oracle Node
    ├── Node 1 (отримує, підписує, подає)
    ├── Node 2 (отримує, підписує, подає)
    └── Node N (отримує, підписує, подає)
         ↓ (підписані звіти)
On-chain контракт агрегатора
    ├── Збирає звіти
    ├── Перевіряє підписи  
    ├── Агрегує (медіана/TWAP)
    └── Публікує результат

On-chain агрегатор

contract CustomOracle {
    struct Report {
        uint256 value;
        uint256 timestamp;
        bytes signature;
    }
    
    mapping(address => bool) public trustedNodes;
    uint256 public requiredReports;
    
    function submitReport(uint256 value, uint256 timestamp, bytes calldata sig) external {
        require(trustedNodes[msg.sender], "Not trusted node");
        
        // Перевірити підпис
        bytes32 messageHash = keccak256(abi.encodePacked(value, timestamp));
        address signer = recoverSigner(messageHash, sig);
        require(signer == msg.sender, "Invalid signature");
        
        _pendingReports[roundId][msg.sender] = Report(value, timestamp, sig);
        
        if (_pendingReportCount[roundId] >= requiredReports) {
            _finalizeRound(roundId);
        }
    }
}

Oracle Node

Off-chain вузол періодично:

  1. Отримує дані з джерел
  2. Агрегує (медіана, зважене середнє)
  3. Підписує ECDSA
  4. Подає транзакцію до агрегатора

Верифіцируємий оракул з ZK Proofs

Для високих вимог до trustlessness — ZK-based оракул. Вузол надає ZK proof, що дані корректно отримані та агреговані.

На практиці експериментально та обчислювально дороговизна — але розвивальний напрямок.

Захист від маніпуляції оракулом

Flash loan + маніпуляція: атакуючий бере flash loan, рухає ціну на DEX, експлуатує протокол при маніпульованій ціні.

Захисти:

  • TWAP замість spot: Time-Weighted Average Price складніше манипулювати
  • Кілька джерел: медіана з кількох бірж
  • Circuit breakers: відхилити коли відхилення > X%
  • Volume-weighted: ігнорувати джерела з аномально низьким volume

Розробка кастомного оракула: 4-12 тижнів залежно від джерел, мереж та вимог trustlessness.