Разработка системы оракулов для prediction markets

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка системы оракулов для prediction markets
Сложная
~1-2 недели
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Разработка системы оракулов для prediction markets

Prediction market работает на trust в oracle: если оракул врёт или ошибается — весь рынок теряет смысл. Система оракулов для prediction market сложнее чем ценовой feed — нужно обрабатывать субъективные вопросы, спорные исходы, форс-мажор, события которые не произошли.

Классификация рынков по требованиям к оракулу

Binary markets (да/нет): простейший резолвинг. «Цена BTC > $100K на 31 декабря?» → 0 или 1.

Scalar markets: «Какой будет цена ETH на 31 декабря?» → числовое значение в диапазоне.

Categorical markets: «Кто выиграет чемпионат?» → выбор из нескольких вариантов.

Conditional markets: «Если событие X произойдёт — что будет с Y?» — сложная зависимость.

Оракул-стек для Polymarket-style платформы

Polymarket — крупнейший prediction market ($1B+ volume), использует UMA Optimistic Oracle для большинства рынков и USDC на Polygon.

Многоуровневая система

Tier 1: Automatic Resolution
  ├── Price feeds (Chainlink/Pyth) для price-based markets
  └── Verifiable external data (sports APIs, election APIs)
  
Tier 2: Optimistic Resolution (UMA/Reality.eth)
  ├── Proposer → propose outcome + bond
  ├── Dispute window (2h - 24h)
  └── Если нет dispute → принято
  
Tier 3: Human Escalation
  ├── UMA DVM (token voter court)
  ├── Kleros arbitration
  └── DAO governance vote

Роль Market Creator

Каждый рынок создаётся с:

  • Resolution criteria: точные условия определяющие исход
  • Resolution oracle: какой oracle/процесс используется
  • Resolution timestamp: когда или как триггерится
  • Invalid conditions: когда рынок признаётся invalid (событие отменено, ambiguous)
struct Market {
    bytes32 questionId;
    string question;
    bytes resolutionCriteria;  // IPFS hash с полным описанием
    address oracle;             // UMA OO, Chainlink, кастомный
    uint256 resolutionTime;
    uint256 bondAmount;         // для UMA
    bool allowInvalid;         // может ли рынок быть invalid
}

Trusted Reporters / Verified Sources

Для sports и news events — trusted reporter model:

News Feed Integration: официальные API (AP, Reuters, ESPN) предоставляют machine-readable данные. Договорные соглашения обеспечивают надёжность источника.

Multi-reporter consensus: несколько независимых reporters должны согласиться. 3-of-5 threshold.

Reporter staking: reporters стейкают токены. Неправильный или манипулированный report → slashing. Экономический стимул к честности.

contract TrustedReporterOracle {
    mapping(address => bool) public trustedReporters;
    mapping(bytes32 => mapping(address => int256)) public reports;
    mapping(bytes32 => uint256) public reportCount;
    
    uint256 public constant QUORUM = 3;
    
    function report(bytes32 marketId, int256 outcome) external {
        require(trustedReporters[msg.sender], "Not trusted");
        require(reports[marketId][msg.sender] == 0, "Already reported");
        
        reports[marketId][msg.sender] = outcome;
        reportCount[marketId]++;
        
        if (reportCount[marketId] >= QUORUM) {
            _finalizeWithConsensus(marketId);
        }
    }
    
    function _finalizeWithConsensus(bytes32 marketId) internal {
        // Если все reporters согласны — принять outcome
        // Если есть разногласие — эскалировать в UMA/Kleros
    }
}

Обработка edge cases

Event cancelled: матч перенесён, выборы отменены. Рынок должен вернуть ставки (void). Это должно быть предусмотрено в resolution criteria.

Ambiguous outcome: results can be interpreted differently. Нужен escalation mechanism.

Late oracle data: оракул вернул данные через 2 часа после дедлайна — принимать или нет? Критерии нужно задать заранее.

Oracle manipulation: высокий бонд для UMA означает что манипуляция невыгодна экономически. Но нужна мониторинговая система.

Резолвинг analytics

Платформа должна трекать качество резолвинга:

  • Время от resolution timestamp до фактического resolve
  • % рынков resolved автоматически vs через dispute
  • История disputes и их исходов
  • Reputation scores reporters

Хорошо отлаженная oracle система — конкурентное преимущество prediction market. Пользователи доверяют платформе с прозрачной историей резолвингов. Разработка: 6-10 недель.