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

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

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

Polymarket в 2024 году — $1.5 миллиарда торгового объёма на президентских выборах. Но посмотри на любой «нишевый» рынок того же Polymarket — bid-ask spread 10-15%, ликвидность $50k total. Именно здесь ломается пользовательский опыт: пользователь хочет поставить $5000 на исход футбольного матча, но slippage съедает 8% ещё до начала события. Задача системы управления ликвидностью — сделать рынки ликвидными до и независимо от органического интереса трейдеров.

Как работает AMM для prediction markets

LMSR и его ограничения

Logarithmic Market Scoring Rule (LMSR) — исторически первый AMM для prediction markets. Цена исходов рассчитывается через p_i = e^(q_i/b) / sum(e^(q_j/b)), где q_i — количество акций исхода i, b — liquidity parameter. Преимущество: mathematically guaranteed market maker — рынок всегда ликвиден. Недостаток: неограниченные убытки маркет-мейкера при экстремальных движениях.

Более поздний CPMM (Constant Product, как в Uniswap v2) применяется в Polymarket: для бинарного рынка YES_shares * NO_shares = k. Цена YES = NO_shares / (YES_shares + NO_shares). Проще для понимания и имплементации, убытки bounded.

Conditional tokens (ERC-1155)

Современный стандарт для prediction markets — Gnosis Conditional Tokens Framework. Каждый исход события — отдельный ERC-1155 токен. Collateral (например, USDC) лочится в ConditionalTokens контракте. При разрешении условия (resolveCondition()) держатели winning outcome токенов могут redeem collateral 1:1.

Это позволяет строить составные рынки: комбинация исходов нескольких независимых условий — «AND-рынки». Например, позиция «ETH > $5000 AND BTC > $100k к декабрю» — это intersection двух conditional tokens.

Архитектура liquidity provisioning

Automated market making через Fixed Product AMM

Для каждого рынка деплоится пул ликвидности на основе Fixed Product AMM (FPMM). LP депонирует равные суммы всех исходов (для бинарного рынка — YES и NO токены). Начальная цена исходов = 50/50.

Контракт FPMMFactory создаёт FPMM инстанс для каждого рынка:

function create(
    address conditionalTokens,
    address collateralToken,
    bytes32[] memory conditionIds,
    uint[] memory outcomeSlotCounts,
    uint fee // basis points
) external returns (address fpmm)

Fee идёт провайдерам ликвидности — это их incentive. Проблема: fee от prediction markets обычно мала (0.1-2%), а риск для LP — значительный. LP держит позиции в исходах до разрешения. Если рынок сильно односторонний (все ставят на YES) — LP по сути накапливает много NO, которые могут обнулиться.

Incentive механика для LP

Простейший подход: liquidity mining — дополнительные rewards в токене протокола для LP. Но это временное решение; как только mining заканчивается, ликвидность уходит.

Устойчивее: dynamic fee — выше fee на рынках с низкой ликвидностью, ниже на высококонкурентных. Реализация: fee = base_fee + liquidity_adjustment, где liquidity_adjustment обратно пропорционален depth пула.

Ещё один паттерн: shared liquidity pool — вместо per-market пулов одна корзина ликвидности распределяется по нескольким рынкам. Контракт автоматически аллоцирует ликвидность туда, где price impact наиболее высок. Риск диверсифицирован, capital efficiency выше.

Oracle resolution и dispute mechanism

Самая чувствительная часть — разрешение исхода. Два подхода:

Centralized oracle. Trusted reporter адрес вызывает reportPayouts(). Быстро, но centralized. Для стартового этапа — приемлемо с multisig reporter.

Optimistic oracle (UMA-style). Proposer предлагает исход с bond. 48-72 часа dispute window. Disputer может оспорить с bond. Если оспорено — идёт голосование через UMA DVM или Kleros. Проигравший теряет bond. Устойчив к манипуляции: cost of dispute > reward от неправильного разрешения.

Chainlink + Sports/Events API. Для спортивных событий — Chainlink Any API с проверенными источниками (ESPN, официальные спортивные API). Декларативно, автоматически, без человеческого фактора. Ограничение: не все события имеют публичный API.

Проблемы производительности и gas

Prediction markets с большим числом исходов (>2) создают gas проблемы. Для события с 10 исходами (например, чемпионат мира, 32 команды) — FPMM свап требует обновления балансов всех 32 токенов в одной транзакции. Это О(n) операций SLOAD/SSTORE на каждый трейд.

Оптимизация: lazy evaluation — хранить только delta изменений, пересчитывать полный state только при необходимости (например, при redeem). Но это усложняет логику и требует тщательного тестирования инвариантов.

Для рынков с >5 исходами на Ethereum mainnet — экономически осмысленнее деплоить на Polygon или Base. Gas на L2 позволяет работать с 20-30 outcome markets без проблем.

Процесс разработки

Аналитика (3-5 дней). Выбор AMM механики (FPMM vs LMSR vs custom), oracle strategy, incentive модель для LP, target чейн.

Контракты (2-3 недели). Conditional tokens setup + FPMM factory + LP incentives + oracle adapters. Foundry с property-based тестами: «сумма probabilities всегда = 1», «redeem никогда не превышает collateral».

Oracle интеграция (1 неделя). Chainlink API или UMA optimistic oracle setup, dispute mechanism.

Frontend (1-2 недели). wagmi/viem интеграция, торговый интерфейс, отображение probability, LP dashboard.

Ориентиры по срокам

Базовый протокол для бинарных рынков с centralised oracle — 1-2 недели. Полноценная система с оптимистичным oracle, LP incentives и multi-outcome support — от 4-6 недель.

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