Метод ранжирования пулов криптовалют на примере платформы Curve Finance
Автор: Караваев П.С., Курочкин П.С., Мастинен Н.В.
Журнал: Экономика и бизнес: теория и практика @economyandbusiness
Статья в выпуске: 3-1 (109), 2024 года.
Бесплатный доступ
В статье представлен метод приоритизации пулов криптовалют на примере платформы Curve Finance. Он может быть применён как для определения привлекательности пулов для пользователей, так и для определения важности пулов для платформы: для распределения пользователями весовых голосов между пулами и для распределения платформой дополнительных награждений между пользователями системы обмена криптовалютами. Также разобраны некоторые математические аспекты работы пулов криптовалют в Curve Finance.
Криптовалюты, модель приоритизации, пул криптовалют
Короткий адрес: https://sciup.org/170203015
IDR: 170203015 | DOI: 10.24412/2411-0450-2024-3-1-140-147
Текст научной статьи Метод ранжирования пулов криптовалют на примере платформы Curve Finance
В последнее десятилетие криптовалюты набирают популярность. Многочисленные пользователи криптовалютных платформ и систем заинтересованы в обмене различных токенов. Один из инструментов обмена - пулы криптовалют.
Пулы представляют собой интерфейс для обмена токенов. Они являются аб- страктной сущностью с некоторой ликвидностью, в которой существуют запасы нескольких типов токенов. На протоколе Uniswap V2 реализован один из основных видов пулов. В случае для двух токенов пользователи могут обменивать некоторое количество одного токена на другой, поддерживая инвариант запасов пула [1]:
% ■ у = const
(здесь %, у - запасы первого и второго токенов соответственно). Также существует вариант пула, который поддерживает константной сумму количеств токенов. Такие пулы подходят для обмена стейбл- коинов с константными ценами (например USDT, USDC, DUSD) и описываются следующей формулой в случае двух токенов в пуле:
% + у = const
Платформа Curve Finance предприняла попытку модификации формулы, на которой основывается обмен в пулах [1]. Их формула для вида пулов Stableswap является комбинацией формул (1) и (2):
-
1) Сначала определяется параметр D -условный (константный) запас всех токе-
- Z! D
нов в пуле, определяемый суммой количеств всех токенов пула в случае равных цен.
Формула (1) переписывается в следующем виде:
Формула (2) переписывается в следующем виде:
П=(У) п (4)
(здесь х i - количества токенов в пуле).
-
2) Далее инвариант пула определяется линейной комбинацией формул (3) и (4):
-
£-^-1-^ + П*; =£'°n + Q (5)
(здесь р - константа).
Эта формула плохо зарекомендовала себя в случае сильного отклонения цен друг от друга [1]. В связи с этим было сделано следующее усовершенствование - параметр р стал динамическим, вычисляемым по следующей формуле:
о _ Д -п^
р = у^ (6)
(здесь Д - константа).
-
3) Соответственно, итоговая формула — формула (5) с учётом модификации (6) – выглядит так:
Д - п п
-2
^
+ D = Д - D - пп +
у П + 1 пп - п Xt
Характерная уникальная кривая связывания, применяемая платформой Curve Finance, больше похожа на сторону восьмиугольника, чем на изогнутую линию. В случае пула из двух токенов формула (7) проиллюстрирована на рисунке.

Рис. График инварианта количеств токенов в пуле Stableswap [1]
Одной из основных проблем, которые решает платформа Curve Finance с помощью Stableswap, является уменьшение проскальзывания. Теоретически проскальзывание уменьшается в 100 раз в сравнении с Uniswap V2 [1].
Проскальзывание – частое явление на биржах, с которым можно столкнуться при покупке. Часто возникает ситуация, когда по текущей рыночной цене можно приобрести 100 токенов, в то время как следующие 100 могут стоить уже на 5% дороже. Это повышение цены вследствие непреднамеренной покупки валюты у более дорогих продавцов, называется проскальзыванием.
Платформа Curve Finance может похвастаться чрезвычайно низким проскальзыванием благодаря своей уникальной кривой связывания и невероятно большим объёмам криптовалюты, предоставляемым поставщиками ликвидности. Команда Curve утверждает, что на платформе Curve Finance можно совершить сделку на сумму более 5 млн $ США при проскальзывании менее 0,4%.
Постановка задачи
Пользователи платформы Curve Finance могут предоставить ликвидность, вложив криптовалюты в пулы. За это они получают LR-токены 3CRV, количество которых соответствует их доле вклада. Полученные токены 3CRV пользователи могут заморозить на определённое время, получая некоторое количество токенов veCRV. Токены veCRV предоставляют следующие привилегии:
-
1. могут быть напрямую обменены на токены CRV;
-
2. предоставляют возможность управлять платформой Curve Finance (соответствуют пропорциональному количеству голосов при принятии решений);
-
3. пропорционально их количествам распределяются полученные платформой комиссии.
Комиссии взимаются с пользователей, обменивающих криптовалюты в пулах: 50% комиссий распределяется между поставляющими ликвидность пользователями в соответствующем пуле, оставшиеся
50% получает платформа – вторую половину распределяют между обладателями токена veCRV.
Одной из основных задач является построение механизма распределения токенов 3CRV. Пользователям, поставляющим ликвидность в пулы, раздаются токены CRV из эмиссии в объемах, определяемых так называемыми весовыми голосами (gauge weights). Каждый пользователь выбирает, сколько процентов его голоса идет за какие пулы. В свою очередь, платформа может понести убыток, если каждый индивидуальный пользователь проголосует так, чтобы максимизировать свой доход. Для противодействия этому часть эмиссии может быть направлена на «подкупание» (награждение) пользователей – тогда они будут замотивированы голосовать оптимально.
Эти процессы напрямую связаны с ранжирование пулов. На Curve Finance имеется много пулов, агрегирующих в себе ликвидность по разным парам (группам) токенов. Разные пулы имеют разную доходность (которая приносится комиссиями от торгов) и зависимость доходности от размера пула. Поэтому приоритизация пулов для распределения весовых голосов пользователями или распределения награждений платформой является одной из ключевых задач.
Основная часть
В каком случае бирже выгодно, чтобы поставщики ликвидности поддерживали пулы? Утверждается, что это выгодно, когда в пуле используется такой токен, который имеет популярность на блокчейне (в том числе, на других криптовалютных биржах), но недостаточно популярен на Curve Finance. Платформа заинтересована в получении максимально большой доли оборота таких токенов относительно всего рынка на блокчейне. Для этого нужно повышать ликвидность пулов, содержащих эту валюту, чтобы уменьшить проскальзывание, которое отталкивает пользователей, обменивающих токены.
Будем использовать следующие параметры:
-
1) x1,x2,x3,. - токены, которые используются на платформе.
-
2) P1,P 2 ,P3, — — пулы токенов платформы Curve Finance.
-
3) 6(x j') - средний дневной оборот токена X j на платформе. Под оборотом подразумевается сумма количеств токена X j по всем транзакциям.
-
4) 8 (x ^ - средний дневной оборот токена X j на блокчейне.
-
5) k(X j ) - коэффициент, характеризующий актуальность токена. Будем считать его равным количеству пользователей блокчейна, которые когда-либо делали транзакции с этим токеном за последний месяц.
-
6) RT(.X t ) - риски, связанные с использованием токена X j - положительная величина, которая, может быть обратно пропорциональная количеству аудитов безопасности, которые были проведены с данным токеном. Для упрощённой модели будем считать риски одинаковыми.
-
7) R p (P j) - риски, связанные с использованием пула P j - положительная величина, обратно пропорциональная корню из стоимости всех токенов пула (например,
переведённых в доллары посредством USDT).
-
8) r^XpP j ) = RT(Xj) • RP(Pj) - совокупный риск использования пула P j и его токена X j . В рамках упрощения рассматриваемой модели можно считать, что r(X j ,P j ) = R p (P f ) .
Стоит заметить, что используется один из главных принципов блокчейна: любой пользователь Интернета может узнать информацию о транзакциях с данным токеном, то есть может вычислить средний оборот любого токена за выбранный период.
Мотивация введения параметра k(X j ) заключается в том, чтобы не допускать невыгодных для платформы ситуаций, когда пользователи блокчейна создают пул ликвидности на Curve Finance, а затем производят множество искусственных транзакций, что нерационально повышает ранг этого пула. Также отметим, что может быть выбран практически любой промежуток времени вместо месяца.
Обозначим через S(x , ) долю владения (платформой Curve Finance) оборотом токена X j :
S(Xj)
9(Xj)
6(Xj)
Основной параметр, который мы предлагаем использовать – привлекательность токена Xj в пуле Pj. Заметим, что эта привлекательность возрастает при повышении актуальности и убывает, если увеличиваются соответствующие риски или оборот на платформе, а значит может быть вычислена, например, так:
U(x рл =___УД)___ (9)
Теперь пусть пул P j состоит из токенов X 1 ,х2 , ... ,х . Определим его ранг следующим образом:
W(P j ) = minj = 1 .
, д (u(X j , P j) + С • ^/(x^V) •...•U(Xn,P j) )
Использование первого слагаемого – минимального токена в пуле – объясняется тем, что наиболее существенное влияние на пул в целом оказывает наиболее непривлекательный токен, который обычно яв- ляется нестабильным или ненадёжным. Например, пул, состоящий из трёх токенов Tokemak, ETH и USDT, является нестабильным и связан с большим риском именно из-за токена Tokemak со сравни- тельно маленькой капитализацией. В свою очередь пулы без Tokemak – состоящие из двух токенов ETH и USDT – являются надёжными и потому пользуются большой популярностью.
Использование второго слагаемого необходимо для эффекта сглаживания: привлекательности токенов сильно отличаются друг от друга, но при этом они должны одновременно учитываться в ранге всего пула. В отличии от среднего арифметического, среднее геометрическое больше подходит в ситуациях, когда некоторые привлекательности слишком большие по значению. Константа C нужна для нормировки второго слагаемого относительно первого и может быть использована для параметризации набора моделей ранжирования пулов.
Таким образом, ранг пула демонстрирует, насколько он перспективен для платформы (Curve Finance). Чем больше значение ранга пула W, тем более вероятно, что платформе будет выгоднее, чтобы провайдеры ликвидности вкладывались именно в этот пул. Одновременно с этим, чем больше ранг, тем более он стабилен или надёжен, то есть будет более популярен среди пользователей, обменивающих токены.
Применение формулы
Применим предложенную систему ранжирования к существующим на платформе Curve Finance пулам (все данные собраны 23 ноября 2023 года). Основные параметры выбранных 10 пулов представлены в таблицах №1 и №2. Данные были взяты непосредственно с платформы Curve Finance.
Информация об используемых в этих пулах токенах представлена в таблицах №3, №4 и №5. Данные об оборотах собраны с помощью сервиса CoinMarketCap [2], данные о количестве пользователей блок-чейна собраны с помощью сервиса Glassnode [3]. Сбор данных проходил единовременно со сбором данных о пулах (23 ноября 2023).
Формульные параметры параметры представлены в таблицах №6, №7, №8 и №9. Для упрощения записи среднего геометрического был введён параметр G, равный второму слагаемому в формуле (10):
G = nJu(x1,P j ) ....■ U(xn,Pj)
Риски, связанные с использованием пула, подсчитывались по следующей формуле:
rpW) =
^(ликвидность)
Для подсчёта итогового веса был выбран параметр С = 0,1. Округление производилось до целых или до трёх значащих цифр.
Таблица 1. Информация о пулах, часть 1.
Пул |
P1 |
P2 |
P3 |
P4 |
P5 |
Обмениваемые криптовалюты |
DAI USDT USDC |
USDC crvUSD |
crvUSD ETH CRV |
ETH LDO |
ETH toke |
Цена первого токена (в $) |
0.99 |
1 |
0.99 |
2078 |
2078 |
Цена второго токена (в $) |
1 |
0.99 |
2078 |
2.59 |
0.81 |
Цена третьего токена (в $) |
1 |
- |
0.58 |
- |
- |
Таблица 2. Информация о пулах, часть 2.
Пул |
P6 |
P7 |
P8 |
P9 |
P10 |
Обмениваемые криптовалюты |
DAI USDT USDC |
YFI ETH |
GEAR ETH |
FRAX USDC |
ETH MATIC |
Цена первого токена (в $) |
0.99 |
8575 |
0.0077 |
0.99 |
2078 |
Цена второго токена (в $) |
1 |
2078 |
2078 |
0.99 |
0.77 |
Цена третьего токена (в $) |
0.99 |
- |
- |
- |
- |
Таблица 3. Информация о токенах, часть 1
Токен |
X1 |
X2 |
X3 |
X4 |
название |
USDT |
USDC |
DAI |
crvUSD |
0(x t ) |
2259810 |
31349960 |
17427010 |
13012869 |
S^x t ) |
39334625277 |
5048898232 |
5346773679 |
16387434 |
$М |
0,0000575 |
0,00621 |
0,00326 |
0,794 |
k(xt) |
529286 |
162611 |
24700 |
192 |
U(xbP j ) •r(xbPJ) |
9212839342 |
26188435 |
7578197 |
242 |
Таблица 4. Информация о токенах, часть 2
Токен |
X5 |
X6 |
X7 |
X8 |
название |
ETH |
CRV |
LDO |
toke |
0(x t ) |
15320139 |
122613 |
171410 |
103 |
5(xt) |
11986734408 |
66900260 |
109464525 |
1419552 |
S(xt) |
0,00128 |
0,00183 |
0,00157 |
0,0000728 |
k(x^ |
2234463 |
3017 |
2601 |
54 |
U(x t ,P j ) -r^x t .P j ) |
1748281430 |
1646139 |
1661030 |
742063 |
Таблица 5. Информация о токенах, часть 3.
Токен |
X9 |
X10 |
X11 |
X12 |
название |
YFI |
GEAR |
FRAX |
MATIC |
0(x t ) |
105058 |
128418 |
1492146 |
66372 |
S(x t ) |
86172107 |
1629243 |
10171587 |
398919324 |
S(xt) |
0,00122 |
0,0788 |
0,147 |
0,000166 |
k(xt) |
922 |
132 |
383 |
17057 |
U(x t ,P j ) •r(x t ,P j ) |
756255 |
1675 |
2611 |
102518636 |
Таблица 6. Формульные параметры, часть 1.
U(x t ,P,-) |
X1 |
X2 |
X3 |
X4 |
X5 |
P1 |
128747693697 |
365978444 |
105903871 |
- |
- |
P2 |
- |
156143253 |
- |
1442 |
- |
P3 |
- |
- |
- |
1165 |
8423019628 |
P4 |
- |
- |
- |
- |
1352828711 |
P5 |
- |
- |
- |
- |
1842574173 |
P6 |
41160933039 |
117004148 |
33857711 |
- |
- |
P7 |
- |
- |
- |
- |
3279211638 |
P8 |
- |
- |
- |
- |
2317294112 |
P9 |
- |
301102866 |
- |
- |
- |
P10 |
- |
- |
- |
- |
3390730876 |
Таблица 7. Формульные параметры, часть 2.
U^.P,) |
X6 |
X7 |
X8 |
X9 |
X10 |
X11 |
X12 |
P1 |
- |
- |
- |
- |
- |
- |
- |
P2 |
- |
- |
- |
- |
- |
- |
- |
P3 |
7930911 |
- |
- |
- |
- |
- |
- |
P4 |
- |
1285313 |
- |
- |
- |
- |
- |
P5 |
- |
- |
782085 |
- |
- |
- |
- |
P6 |
- |
- |
- |
- |
- |
- |
- |
P7 |
- |
- |
- |
1418491 |
- |
- |
- |
P8 |
- |
- |
- |
- |
2220 |
- |
- |
P9 |
- |
- |
- |
- |
- |
30018 |
- |
P10 |
- |
- |
- |
- |
- |
- |
198831320 |
Примечание к таблицам №8 и №9: G = Ju(x 1 ,P j ) -...- U(xn,P j ), где х 1 , х2,...,хп — токены, из которых состоит пул P j .
Обсуждение результатов
Среди проанализированных пулов наибольший ранг имеют P1 и P10. Действительно, P1 является типичным представителем пулов платформы Curve Finance: он имеет одну из наибольших ликвидностей и состоит из стейблкоинов. Пулы такого же типа являются ключевой особенностью платформы: Curve Finance позволяет обменивать стейблкоины, используя собственный эффективный метод определения обменного курса. Важность и приоритетность пула P1 и подобных ему подтверждается в построенной модели ранжирования.
На третьем месте по рангу находится P6. Обмениваемые токены в P6 и P1 совпадают. Однако в P6 предусмотрена повышенная комиссия обмена, что означает большую награду поставщикам ликвидности с каждого обмена, но также означает,
что больший процент забирается у пользователей обмена. Вполне возможно, что повышенная награда в виде комиссий пула P6 простимулирует поставщиков ликвидности и спустя время P6 наберет большую ликвидность, чем P1, и тогда на нем может быть выгоднее менять большие суммы, чем на P1, поскольку будет меньше проскальзывание несмотря на повышенную комиссию. Однако маленькие суммы, где проскальзывание играет не столь существенную роль, вероятно, будет выгоднее менять на P1 даже если P6 обгонит P1 по ликвидности.
На второй позиции рекомендуется пул, состоящий из ETH и MATIC – двух токенов, которые являются нативными (основными, то есть используются для комиссий за транзакции) в сетях Ethereum и Polygon. С одной стороны, Polygon – популярная и проверенная сеть, обладающая низкими
Таблица 8. Формульные параметры, часть 3.
Параметры |
P1 |
P2 |
P3 |
P4 |
P5 |
Ликвидность (в $) |
195295358 |
35548997 |
23212020 |
598774 |
1110778 |
Rp(pj) |
0,0716 |
0,168 |
0,208 |
1,292 |
0,949 |
min U(x t ,Pj) |
105903871 |
1442 |
1165 |
1285313 |
782085 |
G |
1708843404 |
474447 |
4269354 |
41699028 |
37961169 |
W(p j ) |
276788211 |
48886 |
428100 |
5455216 |
4578202 |
Таблица 9. Формульные параметры, часть 4.
Далее идут P7, P4 P5 – парные пулы, частично состоящие из токенов относительно новых проектов, но уже успевших набрать популярность. Затем – P3, P9, P8, P2 – пулы, содержащие менее популярные токены. В частности, на момент написания статьи относительно новый токен crvUSD еще не набрал популярность вне Curve, поэтому пулы с ним модель оценивает довольно низко. Одно из возможных дальнейших улучшений модели заключается в учитывании собственных токенов плат-
формы Curve (crvUSD, CRV и другие), в популярности которых биржа имеет отдельный интерес, что подразумевает продвижение (завышение рангов) соответствующих пулов, содержащих такие токены.
Заключение
Таким образом, была представлена модель ранжирования пулов с одним варьируемым параметром. Задача, схожая с рассмотренной в статье, была предложена в рамках кейс-чемпионата Phystech Business Solutions (2022 г.). Решение, аналогичное описанному в статье, было представлено на кейс-чемпионате командой авторов (в том же составе) и было награждено призовым местом. Соответствующие идеи и формулы взяты за основу при написании этой статьи.