Разработка пулов ликвидности для блокчейн-ставок

Пул ликвидности ставки теряет устойчивость, когда расчёты держатся на ручных сверках и разрозненных правах. Мы разрабатываем такие пулы под ключ: проектируем механику, автоматизируем расчёты и распределение прав, закладываем защиту от манипуляций и простоев. На выходе — предсказуемые выплаты и доля спорных расчётов, падающая в разы.
Часто задаваемые вопросы

Почему пул ликвидности ставки теряет устойчивость

Тонкая ликвидность — пул, который держит несколько поставщиков, выглядит рабочим ровно до первой крупной ставки. Ставка размером в несколько процентов от его глубины съедает лучшие уровни, и проскальзывание уводит фактический коэффициент от того, что видел пользователь. Он уходит к другому источнику, а оставшаяся ликвидность получает ещё больший перекос.

Поставщик ликвидности считает доходность по комиссиям и редко закладывает непостоянные потери. При движении коэффициентов состав пула расходится с внешними ценами: арбитражники выкупают подешевевший актив и возвращают его после сдвига, в пуле остаётся перевес падающего актива. Комиссия за ставки этот разрыв покрывает не всегда, и первым из пула выходит тот, кто считает быстрее остальных.

Вторая группа проблем — расчётная. Исход по событию приходит с задержкой от источника, коэффициенты в это время пересчитываются по устаревшему состоянию, а выплаты висят в статусе «в обработке». Рассинхрон коэффициентов между пулом и внешними площадками открывает простой арбитраж: ставку берут по нашей цене, уже зная определённый исход.

Дальше разбираем, как это закрывается: ценообразование по глубине пула, лимиты на размер ставки относительно ликвидности, перекрёстное подтверждение исходов и очередь выплат с резервным фондом.

Измеримый эффект: что меняется в расчётах и выплатах

Пул ликвидности — это не одна функция выплаты, а цепочка: зафиксировать исход, взять цену на заданный момент, пересчитать доли и распределить начисления. Пока эти шаги живут в скриптах вокруг интерфейса биржи, каждое звено рвётся по-своему. Когда правила описаны в контракте, каждое звено становится измеримым.

Время расчёта и доступности. Раньше итог по событию собирали часами: выгрузка сделок, сверка с логами, ручной пересчёт долей. В контрактном пуле расчёт идёт одним проходом — итог появляется в пределах минуты после подтверждения исхода, а промежуточные состояния доступны в любой момент. Участник видит, из чего сложилась его доля, без запроса в поддержку.

Доля спорных расчётов. Спор почти всегда не про исход события, а про арифметику: чей курс, на какую секунду, с каким допуском. Момент фиксации, источник цены и порог отклонения прописываются в правилах пула; для тонких пар берём агрегированный источник вроде Chainlink и фиксируем медиану за окно. Доля спорных обращений падает с десятков процентов до единичных.

Проскальзывание и глубина. Размер позиции ограничен лимитом экспозиции на исход, вход и выход идут против зарезервированной части пула. Проскальзывание на типовой операции сокращается в разы: крупный вход больше не сдвигает котировку так, что выплата первому участнику съедает долю второго.

Классы отказов, которые уходят. Двойное начисление, выплата по устаревшей цене, зависший расчёт при недоступности внешнего сервиса — отдельные классы отказов, а не «редкие баги». Их закрывают идемпотентность начисления, жёсткое окно на фиксацию цены и резервный источник.

Сравнение схем пула: автоматическая, управляемая, гибридная

Схема пула определяет, кто выставляет котировки, откуда берётся глубина и как считается комиссия поставщика ликвидности. При запуске ставок реально выбирают между тремя конфигурациями — и каждая ломается на своём режиме нагрузки.

Вариант Когда подходит Ограничения
Автоматическое ценообразование по формуле от балансов резерва Ровный поток сделок, нет выделенного оператора, нужна работа без остановок На тонкой ликвидности односторонний перекос уводит цену от рынка, и арбитраж вычерпывает резерв
Управляемый пул с оператором Волатильные пары, узкий круг участников, нужна ручная корректировка котировок Реакция зависит от человека, растёт задержка между движением рынка и новой ценой
Гибридная схема расчёта с внешним источником ликвидности Нужна глубина на старте и защита от резких движений Сложнее учёт долей и накопленной комиссии, добавляется зависимость от внешнего поставщика

Где каждая схема ломается

Автоматическая не терпит разрывов между резервами: как только одна сторона пула опустеет, расчётная цена перестаёт отражать рынок, а поставщики ликвидности фиксируют убыток вместо дохода. Управляемая схема выдерживает волатильность, но проигрывает на объёме — оператор физически не успевает переставлять котировки при высокой частоте сделок.

Гибридная схема расчёта закрывает обе крайности, если внешний источник ликвидности синхронизирован с внутренним учётом. При рассинхроне расходятся доли участников и начисленная комиссия поставщика ликвидности, а сверка превращается в ручной разбор. Поэтому схему фиксируют до старта: смена модели затрагивает уже распределённые доли и историю начислений.

Этапы работы: от аудита механики до передачи регламентов

Пул ликвидности для ставок — это связка контрактов, оракула исходов и расчёта выплат. Ошибка в любом слое становится видна уже на живых деньгах, поэтому этапы идут строго последовательно: следующий стартует только после проверки предыдущего.

  1. Аудит механики пула. Разбираем приём ставок, расчёт доли поставщика ликвидности и поведение системы при перекосе пула в одну сторону. Результат — карта узких мест с оценкой риска по каждому.
  2. Схема потоков средств. Фиксируем контуры — приём ставок, резерв выплат, вознаграждение поставщиков — и то, как между ними двигаются средства. Схема становится общей точкой правды для разработки и проверки.
  3. Настройка расчёта исходов. Определяем источник результата, сколько подтверждений требуется и по какому правилу закрывается расчёт при расхождении данных. Именно здесь возникает большинство спорных ситуаций.
  4. Реализация и внутренняя проверка. Закрываем граничные сценарии: нулевая ликвидность, отмена события, резкий рост объёма ставок.
  5. Проверка на исторических данных. Прогоняем механику на прошлых событиях и реальных профилях ставок, сверяем расчёт выплат с ожидаемым и смотрим поведение пула на волатильных отрезках.
  6. Передача документации и запуск. Отдаём описание контуров, политики расчёта, порядок развёртывания, план отката и чек-листы сопровождения.

После передачи ваша команда ведёт пул самостоятельно: решения зафиксированы в регламентах, а не держатся в головах инженеров.

Схемы потоков, матрица прав и регламенты расчёта

Расчётный контур переживает и команду, которая его собрала, и подрядчика, который его настраивал: меняются администраторы, подписанты, состав пула. Поэтому каждый артефакт отдаём в виде, читаемом без доступа к переписке и закрытым каналам — по нему новый инженер или ваш аудитор восстановит логику движения средств.

  • Схема движения средств — от пополнения пула до начисления награды и вывода: на каком шаге меняется баланс, какой контракт вызывается, где средства задерживаются в промежуточном состоянии.
  • Схема ролей — депозитор, оператор параметров, казначей, наблюдатель: какие операции подписывает каждая роль и где кончаются её полномочия.
  • Матрица прав доступа — таблица «роль × операция»: смена комиссии, лимиты, пауза, обновление логики, вывод собранных комиссий. Для критичных операций указан порог подписей и круг держателей ключей, рядом — журнал изменений параметров: кто, когда и по какой причине менял ставку.
  • Регламент разбора спорных исходов — как фиксируем расхождение (срез балансов на момент расчёта и журнал событий), за какой срок отвечаем, кто принимает решение и как кейс закрывается записью в журнал.
  • Инструкция по аварийной остановке — пошаговый порядок паузы, судьба начисленных, но не выведенных наград, обратный ввод пула в работу с проверкой инвариантов.
  • Регламент обновления расчётной логики — прогон на копии пула, окно изменений, перенос состояния, заранее описанный откат на предыдущую версию.
  • Документация расчётного контура — формулы начисления и правила округления, порядок срезов состояния, поведение на границах: нулевая ликвидность, резкий вывод крупного участника.

Кейс: оборот вырос, доля спорных расчётов упала в разы

Пул под блокчейн-ставки на спортивные события запускался на смешанной схеме: ликвидность лежала в нескольких кошельках, коэффициенты считал расчётный модуль по курсу, который оператор заводил вручную. В пиковые выходные пул не успевал закрывать крупные позиции, выплаты уходили с задержкой до 9 часов, а расхождение между зафиксированным курсом и рыночной ценой разбирали вручную.

Доля спорных расчётов доходила до 7,4% от всех событий сезона. Каждый спор — остановленный вывод, переписка и пересчёт задним числом; поставщики ликвидности уводили объём, потому что не понимали, как формируется цена.

Что изменили

Пул разделили на ядро и резерв под крупные выплаты — просадка одного рынка перестала двигать цену всего пула. Курс и события выплат привязали к оракулу Chainlink и задали коридор расхождения: при выходе за него приём ставок на рынке закрывается автоматически, расчёт идёт по последней подтверждённой цене.

Выплаты перевели на пакетный расчёт с детерминированным порядком и журналом событий: повторная отправка не создаёт вторую выплату, зависшая транзакция поднимается автоматически. Панель по каждому рынку показывает глубину, проскальзывание и долю отклонённых ставок.

Что стало

За два сезона оборот пула вырос в 4,5 раза, глубина на самых нагруженных рынках держится в пределах 3% от целевой. Доля спорных расчётов упала до 0,8% — оставшиеся кейсы почти всегда связаны с ошибкой ввода у оператора, а не с логикой расчёта. Среднее время выплаты — 40 секунд, 99-й процентиль укладывается в 4 минуты даже в пиковые часы.

Чем расчёт по оракулу отличается от расчёта по мультиподписи?

Расчёт по оракулу берёт исход из внешнего источника — публичного стакана биржи или свода котировок с нескольких площадок. Мультиподпись исходит из решения группы подтверждающих: транзакция уходит только после того, как наберётся порог ключей. Первая схема подходит там, где исход — однозначное число, вторая — где результат требует трактовки: признание события, дисквалификация, юридический факт.

Задержка подтверждения у оракула складывается из интервала обновления источника и окна спора — расчёт укладывается в минуты и не зависит от присутствия людей. Мультиподпись ждёт подписи каждого участника порога: пока ключи собираются, пул держит открытую позицию, а котировка устаревает. На рынке с короткими раундами такая пауза превращается в систематический проигрыш по времени.

Стоимость подтверждения тоже разной природы. Оракул — плата за запросы и подписку на поток котировок, она предсказуема и не растёт вместе с числом ставок. Мультиподпись дешевле на редких расчётах, но требует держать набор ключей, следить за ротацией и оплачивать подтверждающих. Доверие: у оракула риск в источнике — манипуляция данными или сбой площадки, у мультиподписи — сговор подтверждающих, и порог лишь повышает его цену, но не убирает.

Схему расчёта выбирают по частоте расчётов и проверяемости исхода. Для ценовых и спортивных рынков — оракул со сводом нескольких источников, отсечкой аномальных значений и запасным каналом данных. Для событийных — пороговая мультиподпись с ротацией ключей, окном оспаривания и залогом. В гибридной схеме оракул закрывает раунд, а мультиподпись работает как апелляция внутри окна спора.

Вопросы по оракулам, экспозиции и комиссиям

Оракул даёт итог события, но между публикацией результата и выплатой лежит несколько технических оговорок. Они редко видны на тестах и всплывают уже после запуска пула, когда в нём лежат ставки.

Экспозиция считается как нетто-позиция по каждому исходу отдельно, а не по рынку целиком. Лимит на исход задаётся в параметрах пула: при его достижении приём ставок по этому исходу закрывается, а коэффициенты пересчитываются по фактическому распределению средств.

Что с открытыми ставками при спорном исходе?

Расчёт выплат замораживается, средства остаются на контракте пула. Окно разрешения удлиняется на период апелляции, итог фиксируется решением оракула; при таймауте срабатывает правило возврата тела ставки.

Когда списывается комиссия пула?

В момент расчёта выплаты, а не при приёме ставки. Она не выводится отдельным кошельком, а остаётся в пуле и увеличивает долю поставщиков ликвидности — доходность считается по факту расчёта.

Как добавить новый рынок, не останавливая пул?

Рынок — отдельная запись в реестре контракта при общем котле ликвидности. Он добавляется транзакцией администратора, получает лимит на исход и подключается к тому же оракулу; открытые ставки на других рынках не затрагиваются.

Что происходит с контрактами при смене логики расчёта?

Обновление идёт через прокси-контракт: меняется реализация, состояние пула и открытые ставки сохраняются. Версия логики фиксируется в момент ставки — уже принятые считаются по прежним правилам.

Обсудим задачу и вернёмся с оценкой и планом

Чтобы вернуться с оценкой объёма работ, а не с общими словами, нужна постановка задачи в вашей логике: какая сеть и тип стейкинга, чей токен принимается в пул, как начисляется вознаграждение и что происходит при выходе из пула. Чем конкретнее описана экономика, тем точнее мы разложим работы по этапам.

Отдельно проговорим доступы и данные — их отсутствие обычно и тормозит старт. Достаточно тестовой среды, доступов к контрактам и понимания, кто на стороне заказчика принимает результат. Из этого собираем состав работ, план внедрения и оценку объёма работ.

  • Постановка задачи: сеть, тип стейкинга, роли участников, сценарии входа и выхода из пула.
  • Экономика: источник вознаграждения, комиссия протокола, порядок распределения между поставщиками ликвидности.
  • Доступы и данные: репозитории, тестовая среда, узлы, доступ к контрактам и ключам с описанной моделью хранения.
  • Ограничения: лимиты на ввод и вывод, требования к отчётности перед участниками пула.
  • Состав работ: контракты, интеграция с кошельками, мониторинг позиций, проверки безопасности.
  • План внедрения: порядок этапов, точки приёмки, вывод в основную сеть, сопровождение после запуска.

На выходе вы получаете план работ с этапами, точками приёмки и зонами ответственности. Опишите задачу в свободной форме — вернёмся с оценкой и разбором спорных мест.

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1374
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142