Разработка протокола предсказаний (Azuro-стиль)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Разработка протокола предсказаний (Azuro-стиль)
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

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

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

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1354
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1248
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    951
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1186
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    643
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    925

Мы разрабатываем протоколы предсказаний в стиле Azuro — децентрализованные системы ставок на спортивные события, где пулы ликвидности выступают контрагентом, а смарт-контракты заменяют букмекера. Вы получаете on-chain решение с прозрачной математикой и защитой от манипуляций. Наш опыт — 5+ лет в Web3 и 10+ реализованных протоколов. Свяжитесь с нами, чтобы оценить проект под ключ.

Как работает Azuro-модель

Liquidity Pool как контрагент — разработка протокола предсказаний

В отличие от peer-to-peer ставок (протоколы типа Augur), Azuro использует pool-based модель. Провайдеры ликвидности вносят активы в pool, который автоматически выступает контрагентом для всех ставок. LP получают долю комиссий пропорционально вкладу.

Ключевой риск LP: если одна сторона события перегружена ставками, pool несёт одностороннее exposure. Azuro балансирует через reinforcement — динамическое изменение коэффициентов при дисбалансе. Чем больше ставок на один исход, тем ниже коэффициент на него и тем выше на противоположный. Математика:

newOdds = initialOdds * (1 - k * imbalanceFactor)

где imbalanceFactor — отношение ставок на каждую сторону. Правильная калибровка k — критична. Слишком агрессивная — коэффициенты падают до неинтересных. Слишком мягкая — pool накапливает односторонний риск.

Core/Express: структура ставок

Azuro различает Core (одиночные ставки) и Express (экспресс/аккумулятор). В Express произведение коэффициентов создаёт большой потенциальный выигрыш, но выплата происходит только при угадывании всех исходов. Контрактная логика Express: проверяем каждое событие последовательно, если одно проиграло — весь Express проигран, все заблокированные средства возвращаются в pool.

LP lockup — сложная часть. При принятии ставки pool резервирует потенциальную выплату (maxPayout = betAmount * odds). Эти средства недоступны для новых ставок пока событие не разрешено. При большом количестве одновременных событий locked/available ratio может упасть до 0.2 — pool физически не может принять новые ставки. Нужна механика maxExposure per event и global maxLockFraction.

Oracle и resolve: где ломаются протоколы

Разрешение результатов — наиболее уязвимое место. Централизованный oracle — single point of failure и manipulation. Azuro использует Data Providers (DP) — авторизованные адреса, которые могут подтверждать результаты. Несколько DP, консенсус-механизм для спорных случаев.

Типичные проблемы:

  • Delayed resolve. DP не подтверждает результат вовремя. Ставки заблокированы, LP не могут выйти. Нужен timeout: если результат не пришёл за N часов после scheduled event time — ставки автоматически рефандятся.
  • Wrong result. DP подтвердил неверный исход. Нужен dispute period (24-48 часов) + governance overrule через DAO или multisig. После dispute period результат финализируется.
  • Cancelled event. Матч отменён (дождь, VAR, disqualification). Протокол должен поддерживать CANCELED статус → полный рефанд всех ставок.

Архитектура контрактов

Ключевые компоненты

  • LP Contract — управление ликвидностью. ERC-20 LP-токены, addLiquidity, removeLiquidity с lock period (стандартно 7 дней — защита от flash liquidity attacks). Учёт locked/available funds.
  • Core Contract — приём ставок. bet(uint256 conditionId, uint256 outcomeId, uint256 amount, uint256 minOdds, uint256 deadline). Параметр minOdds — защита от odds slippage (аналог slippage protection в DEX). deadline — ставка отклоняется если блок > deadline.
  • Condition — одно событие. Структура: conditionId, gameId, outcomes[], reinforcement, margin, state, ipfsHash. ipfsHash содержит метаданные события (команды, время, тип). On-chain хранить строки — дорого.
  • PrematchCore / LiveCore — раздельные контракты для prematch и live ставок. Live ставки требуют более частого обновления коэффициентов (каждую минуту) и другой oracle-логики.
Компонент Ответственность
LiquidityTree Хранение LP позиций, расчёт withdrawable
OddsLib Математика коэффициентов, reinforcement
AzuroBet (ERC-721) NFT-токен ставки
BettingEngine Основная логика ставок и выплат
DataProvider Oracle для результатов
ProxyFront Entry point с permit2 поддержкой

Ставка как NFT

Каждая ставка — ERC-721 токен. Это позволяет: трансфер ставок между адресами, вторичный рынок (sell pending bet), агрегацию в wallet. tokenURI генерируется on-chain или хранится на IPFS с метаданными события.

Математика маржи

Azuro закладывает маржу в коэффициенты — не явный fee, а built-in spread. При бинарном исходе с true probability 50%/50%, коэффициенты будут не 2.0/2.0, а например 1.9/1.9 при 5% марже. Математика:

margin = 1 - (1/odds1 + 1/odds2 + ...)
trueOdds = publishedOdds * (1 - margin)

При правильной калибровке margin покрывает: operational costs DP, резерв для плохих результатов, profit protocol treasury.

Почему Azuro-модель лучше peer-to-peer?

В P2P-протоколах (Augur, PolyMarket) ликвидность распределена между исходами, что приводит к большому спреду и недостаточной глубине для крупных ставок. Azuro с pool-based моделью концентрирует ликвидность: один пул обслуживает все события, а reinforcement перераспределяет её динамически. Сравнение:

Параметр P2P (Augur) Pool-based (Azuro)
Глубина рынка Зависит от числа трейдеров Единый пул
Спред Высокий при низкой активности Низкий, регулируется reinforcement
Время исполнения Может быть долгим Мгновенное
Риск LP Нет прямого LP Требуется управление рисками

Azuro protocol documentation

Как защитить пул ликвидности от одностороннего риска?

Ключевая задача — не допустить, чтобы pool покрывал все ставки на один исход. Azuro использует reinforcement, но этого недостаточно. Дополнительные меры:

  • Max exposure per event — лимит на сумму ставок на одно событие. При превышении ставки отклоняются.
  • Global lock fraction — максимальный процент locked средств от всего пула (обычно 80-90%). Превышение блокирует приём ставок.
  • LP lock period — 7 дней, чтобы предотвратить pump-and-dump ликвидности.
  • Dispute period — защита от неверного результата.
Типичные ошибки при разработке
  • Отсутствие minOdds — ставки проходят с невыгодными коэффициентами после изменения.
  • Некорректная калибровка k — reinforcement слишком агрессивен или слишком слаб.
  • Игнорирование cancelled event — средства застревают навсегда.
  • Централизованный oracle без защиты — одна уязвимость ломает весь протокол.

Процесс работы

Аналитика (1 неделя). Определяем: какие спорты/события, prematch only или + live, модель oracle (централизованный DP или Chainlink Functions), tokenomics LP.

Проектирование (1-2 недели). Контрактная архитектура, схема LP lockup, dispute resolution flow, governance.

Разработка (6-10 недель). Smart contracts + oracle integration + Data Provider backend + subgraph для истории ставок + frontend. Параллельные треки.

Тестирование (2 недели). Симуляция экстремальных сценариев: 90% ставок на один исход, delayed resolve, simultaneous 1000 bet redeem.

Аудит. Обязателен — протокол держит реальные средства пользователей. Фокус аудита: oracle manipulation, LP drain через экзотические event scenarios, reentrancy в payout.

Что входит в работу

  • Архитектурная документация и диаграммы потоков
  • Исходный код смарт-контрактов (Solidity) с юнит-тестами
  • Интеграция оракула (Data Provider или Chainlink)
  • Subgraph для истории ставок (The Graph)
  • Deploy-скрипты и документация по деплою
  • Обучение вашей команды (2-3 дня)
  • Поддержка после запуска (1 месяц)

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

Базовый протокол с prematch ставками и централизованным DP — 2-3 месяца. Полный протокол с live betting, dispute resolution и DAO governance — 4-6 месяцев.

Стоимость рассчитывается после детальной оценки требований. Экономия на комиссиях по сравнению с централизованными решениями может достигать 40% за счёт устранения посредников. Закажите консультацию — оценим ваш проект.

Разработка DeFi-протоколов

Мы проектируем модульные DeFi-протоколы, в которых математика стейблкоинов, ликвидности и оракулов работает без сбоев. Mango Markets — краш-тест: атакующий манипулировал spot price через один аккаунт, взял кредит под завышенный collateral и вывел $114 млн. Оракул брал цену с единственного источника без TWAP. Не баг в коде — это архитектурное решение, которое стало уязвимостью. Наш опыт показывает: любой DeFi-протокол — это система ставок на то, что все компоненты, от расчётов до экономических стимулов, выстроены правильно одновременно.

Мы не пишем код под «если всё работает, не трогай». Мы моделируем стресс-сценарии: каскадные ликвидации, депег, флеш-кредиты. И только после этого — события, которые не сломают протокол.

Почему оракулы — критический компонент DeFi?

Большинство крупных взломов DeFi начинались с манипуляции оракулом. Разберём три слоя, которые мы используем в каждом проекте.

Spot price как оракул — не вариант. Uniswap v2 spot price можно сдвинуть flash loan за одну транзакцию. Цена в конце блока — единственное, что попадает в state, её и читает оракул. Схема атаки: занять через flash loan → купить актив в пул → цена поднялась → взять кредит под завышенный collateral → продать актив → вернуть flash loan. Одна транзакция.

TWAP как защита. Uniswap v3 observe() усредняет цену за период (30 минут). Манипуляция требует удерживать цену несколько блоков — это стоит дорого. Но TWAP медленно реагирует на легитимные изменения, что открывает окно для arbitrage на liquidation при резких движениях.

Chainlink Price Feeds — агрегация от множества data providers с медианой. Стандарт для lending. Проблема: heartbeat 1–24 часа и deviation threshold 0.5%. Если цена не двигается, фид может не обновляться сутки. В волатильном рынке — lag.

Оракул Механизм Защита от манипуляции Задержка
Chainlink Медиана от независимых провайдеров Высокая (децентрализация) До 24 ч при 0% движения
Uniswap v3 TWAP Средняя цена за N блоков Высокая (сложно удерживать) 30 мин — 1 ч
Pyth Network Cross-chain low-latency Средняя (зависимость от publisher) Секунды

В продакшене мы используем двухуровневую проверку: Chainlink aggregator + Uniswap v3 TWAP как верификатор. Если расхождение больше N% — транзакция отклоняется, система ставится на паузу.

Как защитить DeFi-протокол от flash loan атак?

Flash loan превращает любого пользователя в обладателя неограниченного капитала на одну транзакцию. Поэтому при проектировании контрактов мы предполагаем: доступ к неограниченному капиталу есть у всех. Это меняет threat model полностью.

Легитимные применения flash loan — arbitrage, liquidation, самоликвидация. Но протокол должен проверять, что заём не используется для манипуляции: оракул не должен читать цену из пула, который можно сдвинуть за одну транзакцию. Мы добавляем проверки на block.timestamp и минимальную глубину ликвидности.

Ключевые компоненты DeFi-архитектуры

Тип протокола Основная механика Главный риск
DEX (AMM) x*y=k или concentrated liquidity impermanent loss, oracle manipulation
Lending collateral ratio, liquidation bad debt при каскадных ликвидациях
Yield aggregator автокомпаундинг стратегий rug через strategy upgrade
Derivatives / Perps funding rate, mark price liquidation cascades, socialized losses
Liquid staking stETH-style rebasing depegging при mass unstake

AMM: от x*y=k до concentrated liquidity

Uniswap v2 использует x * y = k. LP-токены ERC-20 — каждый пул выпускает свой токен пропорционально доле. Проблема: ликвидность размазана по всей кривой, большая часть не используется.

Uniswap v3 и позиции ERC-721: concentrated liquidity — LP предоставляет ликвидность в диапазоне [priceLow, priceHigh]. Capital efficiency до 4000x для стабильных пар. Но ERC-721 ломает vault-стратегии под ERC-20. Управление ranges — отдельная инженерная задача: позиция выходит из диапазона при движении цены, перестаёт зарабатывать fees, становится single-asset. Протоколы типа Arrakis Finance автоматически rebalance. Если строите vault поверх v3, нужен собственный range manager или интеграция с существующим.

Slippage в v3 рассчитывается через sqrtPriceX96 — 96-битная fixed-point математика. Ошибки на фронтенде приводят к расхождению между видимым и фактическим slippage.

Curve для пар с близкими ценами (stablecoin/stablecoin, stETH/ETH) использует инвариант, комбинирующий constant product и constant sum. Меньше slippage в диапазоне peg. Контракты на Vyper, код математически плотный, аудировать сложно.

Lending протоколы: collateral, liquidation, bad debt

LTV определяет максимальный кредит под collateral. Liquidation threshold — уровень ликвидации. Разница — буфер для liquidator. Типичный пример: LTV 75%, liquidation threshold 80%, bonus 5%. Если цена падает на 20%+, позиция открыта к ликвидации.

Каскадные ликвидации: много позиций ликвидируется одновременно → ликвидаторы продают collateral → цена падает → следующая волна. LUNA/UST 2022 — классический каскад.

Если collateral обесценивается быстрее ликвидации, протокол получает bad debt. Aave использует Safety Module (застейканный AAVE), Compound — reserves. Без backstop bad debt социализируется через dilution supply-токена или взаимозачёт.

Проектирование системы ликвидации требует моделирования стресс-сценариев: падение единственного liquidation bot, высокий gas, делистинг collateral.

Yield farming и incentive mechanics

Liquidity mining — раздача governance-токенов LP-провайдерам. Проблема mercenary capital: фармеры приходят, продают токены, уходят. TVL фиктивный.

Устойчивые механики: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking с penalty. Ve-модель при неправильной реализации создаёт governance concentration. Нужен timelock на изменения gauge weights и лимиты на votingPower.

Что входит в нашу разработку DeFi-протоколов

  • Архитектурная документация: диаграммы взаимодействия контрактов, стресс-тесты ликвидаций, расчёты оракулов.
  • Реализация на Solidity 0.8.x с OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) и Solmate для gas-optimised base contracts.
  • Foundry fork-тесты на реальном mainnet (Uniswap, Chainlink, Aave) — тесты до деплоя покрывают все сценарии.
  • Аудит: минимум два независимых аудитора для TVL от $1M. Code4rena или Sherlock для bug bounty.
  • Деплой с Gnosis Safe 3/5 multisig + timelock 48–72 часа.
  • Мониторинг через Tenderly (alerts, симуляции), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
  • Поддержка после запуска: обновления, патчи, апгрейды через proxy.

Наши компетенции и опыт

Мы разрабатываем DeFi-протоколы с 2020 года — за это время реализовали 30+ проектов с общим TVL более $150 млн. Среди клиентов — протоколы в топ-20 по TVL на Ethereum, Arbitrum и Base. Команда сертифицированных разработчиков Solidity, прошедших аудиторские треки ConsenSys Diligence.

DeFi на Wikipedia — базовые принципы, которые мы применяем на практике.

Сроки

  • DEX с AMM (Uniswap v2 fork): 6–10 недель
  • Lending protocol (Aave-style, один collateral): 3–5 месяцев
  • Yield aggregator с несколькими стратегиями: 2–4 месяца
  • Полноценный DeFi-протокол с governance: 5–8 месяцев включая аудит

Стоимость рассчитывается индивидуально — свяжитесь для оценки вашего проекта.

Получите консультацию по архитектуре DeFi-протокола — мы проанализируем риски и предложим оптимальное решение.