Разработка платформы предсказаний (prediction market) на блокчейне
Polymarket в 2024 году обработал более $1.5 миллиарда объёма торгов по президентским выборам в США. Механика проста: пользователи покупают shares в событии, цена share = implied probability. Если событие происходит — share worth $1. Если нет — $0. Рынок агрегирует информацию и «предсказывает» вероятности точнее большинства аналитиков. Построить такую систему технически сложно: три независимые задачи — создание рынков, поддержание ликвидности, автоматическое разрешение исходов — каждая с собственными уязвимостями.
Ключевые технические проблемы
Oracle manipulation при разрешении споров
Самое уязвимое место prediction market — механизм resolution. Кто решает, наступило ли событие? Варианта три: доверенный оракул (централизация), Chainlink / UMA (зависимость от сторонних протоколов), optimistic resolution с dispute period (децентрализация, но latency).
Chainlink подход работает для чётко верифицируемых событий: цена актива, спортивный результат через официальный API. Проблема: не все события имеют on-chain верифицируемый источник правды. «Выиграет ли X выборы» — субъективно интерпретируемое событие.
UMA Optimistic Oracle — более гибкий подход. Proposer предлагает исход, любой может оспорить в течение dispute window (обычно 24-72 часа), задепозировав collateral. Если оспорено — UMA token holders голосуют. Преимущество: работает для любого события. Недостаток: latency 2-3 дня на resolution.
Centralized multisig resolution — используется большинством протоколов на старте (включая ранний Polymarket). Быстро, но требует доверия к оператору. При спорных результатах — репутационный риск.
В нашей реализации для каждого типа рынка выбирается подходящий механизм. Для crypto price рынков — Chainlink. Для субъективных событий — UMA Optimistic Oracle. Multisig — только как fallback при failure других механизмов.
Ликвидность: AMM vs Order Book
Prediction markets традиционно используют два подхода к ликвидности:
CLOB (Central Limit Order Book) — пользователи выставляют limit orders. Polymarket работает на CLOB через Polygon. Преимущество: точные цены, минимальный slippage при наличии ликвидности. Недостаток: новые рынки без участников — нет ликвидности вообще.
AMM (Automated Market Maker) — протокол сам поддерживает ликвидность через математическую формулу. Augur V2 и Gnosis использовали LMSR (Logarithmic Market Scoring Rule). LMSR гарантирует, что рынок всегда принимает сделки, но protocol несёт potential loss (subsidizes liquidity).
Наш подход: Hybrid — начальная ликвидность через protocol-seeded AMM, CLOB для крупных трейдеров. AMM использует constant product формулу (адаптированную для бинарных исходов), LP positions выступают как automated market makers.
Токен стандарт для shares: ERC-1155
Каждый рынок имеет минимум два outcome токена (YES/NO, или несколько для multi-outcome). ERC-1155 — правильный выбор: один контракт управляет токенами всех рынков, batch transfer снижает gas при торговле несколькими рынками одновременно.
При создании рынка минтятся conditional tokens: за каждый 1 USDC коллатераля создаётся 1 YES + 1 NO токен. Суммарная стоимость YES + NO = 1 USDC (до resolution). После resolution один из токенов = 1 USDC, другой = 0.
Это паттерн Gnosis Conditional Tokens Framework (CTF) — battle-tested библиотека для prediction markets. Мы строим поверх CTF, а не с нуля.
Архитектура системы
Контрактный слой
MarketFactory — создаёт новые рынки. Параметры: question, resolution source, expiry, initial liquidity. Разворачивает AMM пул для каждого нового рынка.
ConditionalTokens (CTF) — Gnosis открытый контракт для выпуска conditional tokens. Проверен множеством аудитов, имеет production историю на Polymarket.
FixedProductMarketMaker (FPMM) — AMM контракт для каждого рынка. Использует constant product формулу адаптированную для N-исходов. LP providers добавляют ликвидность, получают LP shares, зарабатывают на trading fees.
ResolutionModule — управляет resolution процессом. Интегрируется с Chainlink / UMA, обеспечивает dispute механизм.
TreasuryManager — протокол берёт комиссию (0.5-2%) от каждого трейда. Управляет protocol reserves, которые используются для первоначального seeding ликвидности новых рынков.
Создание рынка и initial liquidity
Bootstrapping ликвидности — одна из сложнейших задач. Стратегия:
-
Protocol-seeded markets. Популярные рынки (выборы, крипто events) — protocol добавляет начальную ликвидность из treasury. LP shares остаются у protocol.
-
User-created markets. Любой может создать рынок, задепозировав initial liquidity. Это incentivize market creators — они получают trading fees от своего рынка.
-
Conditional liquidity rewards. LPs в первые N дней после создания рынка получают дополнительные governance токены. Аналог Uniswap liquidity mining.
Gas оптимизация для Polygon / L2
Prediction markets работают на L2 — газ на Ethereum mainnet делает мелкие сделки ($10-50) экономически невыгодными. Polygon — исторический выбор Polymarket. Alternatives: Base, Arbitrum.
На L2 gas стоит в 10-100x раз дешевле. ERC-1155 batch transfer снижает gas на 40-60% при торговле несколькими токенами одновременно. multicall паттерн для batch операций.
Процесс разработки
Аналитика (5-7 дней). Определение типов рынков, resolution механизмов для каждого типа, токеномики протокола. Изучение Polymarket, Augur, Metaculus как референсов.
Разработка контрактов (5-8 недель). CTF интеграция или кастомная реализация, FPMM логика, resolution модули. Тестирование через Foundry: fork-тесты, fuzz-тесты на AMM инварианты (sum of probabilities = 1).
Resolution интеграции (2-3 недели). Chainlink для верифицируемых событий, UMA Optimistic Oracle для субъективных.
Frontend (3-5 недель). Интерфейс создания рынков, trading UI, portfolio, resolution tracking. wagmi + viem для контрактных взаимодействий.
Аудит (обязателен). Сложность conditional tokens логики и потенциальный объём средств — обязательный внешний аудит.
Типичные ошибки в prediction market
Неправильный resolution без dispute механизма. Rogue оракул может разрешить рынок в пользу одного исхода при спорном результате. Без dispute mechanism у пользователей нет recourse.
Infinite approval exploit. Если UI запрашивает infinite approve на CTF контракт, а в нём обнаружится уязвимость — атакующий может дренировать все approval. Ограниченные approve или EIP-2612 permit.
Front-running при resolution. Между submission результата оракулом и его on-chain обработкой — window для front-running. Commit-reveal схема или VDF (Verifiable Delay Function) для критических рынков.
Ориентиры по срокам
MVP (бинарные рынки, Chainlink resolution, базовый AMM, Polygon) — 6-8 недель. Полноценная платформа с UMA, user-created markets, CLOB, governance — 2-4 месяца. Стоимость рассчитывается индивидуально.







