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

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

Чому пул ліквідності ставки втрачає стійкість

Тонка ліквідність — пул, який тримають кілька постачальників, виглядає робочим рівно до першої великої ставки. Ставка розміром у кілька відсотків від його глибини з'їдає найкращі рівні, і прослизання відводить фактичний коефіцієнт від того, що бачив користувач. Він іде до іншого джерела, а залишкова ліквідність отримує ще більший перекіс.

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

Комісія за ставки цей розрив покриває не завжди, і першим із пулу виходить той, хто рахує швидше за інших.

Друга група проблем — розрахункова. Результат події надходить із затримкою від джерела, коефіцієнти в цей час перераховуються за застарілим станом, а виплати висять у статусі «в обробці».

Розсинхрон коефіцієнтів між пулом і зовнішніми майданчиками відкриває простий арбітраж: ставку беруть за нашою ціною, вже знаючи визначений результат.

Далі розбираємо, як це закривається: ціноутворення за глибиною пулу, ліміти на розмір ставки щодо ліквідності, перехресне підтвердження результатів і черга виплат із резервним фондом.

Вимірюваний ефект: що змінюється в розрахунках і виплатах

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

Час розрахунку й доступності. Раніше підсумок за подією збирали годинами: вивантаження угод, звірка з логами, ручний перерахунок часток.

У контрактному пулі розрахунок іде одним проходом — підсумок з'являється в межах хвилини після підтвердження результату, а проміжні стани доступні будь-якої миті. Учасник бачить, з чого склалася його частка, без запиту до підтримки.

Частка спірних розрахунків. Спір майже завжди не про результат події, а про арифметику: чий курс, на яку секунду, з яким допуском.

Момент фіксації, джерело ціни й поріг відхилення прописуються в правилах пулу; для тонких пар беремо агреговане джерело на кшталт 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