Russian
February 25, 2021

Пулы ликвидности в Minter 2

Одним из основных нововведений Minter 2 станут пулы ликвидности, которые позволят:

  • Обменивать любые монеты (резервные, безрезервные, глобальные и локальные)
  • Создавать собственные торговые пары (например: ваша кастомка со стейблкоином USDC)
  • Зарабатывать на предоставлении ликвидности

В статье рассмотрим как это все работает.

До выхода Minter 2 в мейннет, будем пользоваться тестовой сетью, потом статья будет обновлена.

Полезные ссылки:

AMM

Пул ликвидности (Liquidity pool) - торговая пара монет/токенов с заблокированными средствами провайдеров ликвидности, которые обеспечивают ликвидность этой пары. Покупая или продавая монету через пул ликвидности, трейдер использует заблокированные средства пула. В отличие от централизованных бирж с лимитными ордерами и стаканами, в пулах ликвидности не нужно выставлять ордер и ожидать его исполнения. Торговля осуществляется автоматическим маркет-мейкером (АММ).

АММ обеспечивает автоматическое вычисление цены токена в торговой паре путем уравновешивания количества обоих токенов в этой паре. Существует понятие константы, которая вычисляется по формуле:

x * y = k

Где x - количество первой монеты, y - количество второй монеты, k - их произведение. Эта константа обозначает размер пула и измеряется в единицах. Для примера, возьмем пул MNT/USDM:

X = 160388.49 MNT

Y = 99.19 USDM

K = X * Y = 160388.49 * 99.19 = 15908934.32

Эта константа не может уменьшаться при совершении покупки/продажи токенов в этой паре. Наоборот, с каждым свапом, она увеличивается благодаря комиссиям 0.2%, таким образом увеличивая размер самого пула. А чем больше пул за счет комиссий, тем больше на этом зарабатывают провайдеры ликвидности (о них поговорим чуть ниже).

На данный момент, цена 1 MNT = 0.00062 USDM (Y / X, то есть 99.19 / 160388.49). Давайте попробуем купить 50 USDM за MNT и посмотрим как изменится цена и константа:

В подтверждающем окне видим сколько покупаем USDM, сколько тратим MNT, путь (роут) и комиссию.

Итак, мы купили 50 USDM (то есть забрали их из пула), потратили 163369.6 MNT (то есть добавили их в пул). В потраченную сумму включается комиссия пула 0.2%, то есть 326.73 MNT. После совершения трейда, параметры пула стали такими:

Количество монет в пуле изменилось, также как и цена (стала 1 MNT = 0.00015 USDM). Проверим константу, умножив друг на друга количество обоих токенов:

X = 323758.09 MNT

Y = 49.19 USDM

K = X * Y = 323758.09 * 49.19 = 15925660.45

Константа увеличилась за счет комиссий -> Соотношение монет изменилось -> Цена изменилась.

Формулы

Для начала, определим переменные:

  • X - количество первой монеты в пуле до трейда
  • Y - количество второй монеты в пуле до трейда
  • K - константа пула до трейда
  • X_new - количество первой монеты в пуле после трейда (X - Coin0)
  • Y_new - количество второй монеты в пуле после трейда
  • K_new - константа пула после трейда
  • Coin0 - количество первой монеты для трейда
  • Coin1 - количество второй монеты для трейда
  • Fee - комиссия пула 0.2%

Текущая цена первого токена:

Price = Y / X

Цена первого токена после трейда:

Price_new = Y_new / X_new

Количество первой монеты в пуле после трейда:

X_new = X - Coin0

Сколько нужно потратить второй монеты Coin1 (включая комиссию Fee), чтобы купить определенное количество первой монеты Coin0:

Coin1 = (K / (X - Coin0) - Y) / (1 - Fee / 100)

Количество второй монеты в пуле после трейда:

Y_new = Coin1 + Y

Комиссия за трейд, которая пополняет пул:

Coin1 / 100 * Fee

Провайдеры ликвидности

Для того, чтобы трейдер мог покупать и продавать токены через пул, в этом пуле должна быть ликвидность. Ее обеспечивают провайдеры ликвидности. Зачем им это делать? Чтобы получать долю от тех самых 0.2% комиссии, которую трейдер платит за каждую сделку в пуле.

Добавление и удаление ликвидности

Добавление ликвидности - это предоставление собственных средств в пул. Благодаря этим средствам, трейдеры могут совершать сделки, а АММ контролирует соотношения монет в пуле и регулирует цену в зависимости от направления сделки (покупка или продажа).

Добавить ликвидность можно в уже существующий пул. Допустим, вышеупомянутый MNT/USDM. Для начала, посмотрим еще раз на текущие параметры пула:

При добавлении ликвидности, соотношение монет всегда должно быть 50% / 50%. Это базовое правило, которое позволяет сохранить пропорции монет в пуле, не влияя на цену. То есть, добавляя ликвидность, провайдер увеличивает объем пула, ликвидность, но никак не влияет на цену.

Добавить ликвидность можно через соответствующее меню консоли (Pools -> Add Liquidity):

Допустим, мы хотим добавить 100 000 MNT, для этого у нас должно быть 15.19 USDM (при цене ≈0.00015). После добавления ликвидности, балансы токенов в пуле увеличились на 100 000 MNT и 15.19 USDM:

Токены пула

После того как мы добавили ликвидность в пул, взамен мы получили токены пула. Эти токены - наша квитанция, которая в любой момент времени позволит обратно забрать свою ликвидность + долю от комиссий пула.

Технически, токены пула имеют вид: P-*

Где * - это идентификатор пула в виде цифры. Например, токены пула MNT/USDM называются P-1. Перейдя на страницу такого токена в эксплорере, мы можем посмотреть его параметры:

Технически, это безрезервный токен с CRR=0%, привязанный к конкретному пулу и имеющий свой объем (количество выпуска).

Справка. Токены пулов можно:

  • Отправлять на любой адрес (тогда адрес получателя будет иметь возможность забрать ликвидность из пула)
  • Добавлять в собственные пулы с любыми другими монетами и токенами. То есть, любой токен пула может свободно торговаться в сети Minter
Зачем это нужно? Все просто: теперь можно торговать долями ликвидности в пулах. Вы можете как купить чью-то долю в конкретном пуле, так и продать собственную.

В кошельке эти токены пула выглядят так:

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

Таким образом, мы можем посчитать свою долю пула, то есть Share (это процент ваших токенов пула от суммы всех токенов пула). Найти всех провайдеров ликвидности и посмотреть их доли можно на этой же странице:

Все ваши пулы, в которых вы провайдите ликвидность можно найти в консоле:

Последний пул на скриншоте - тот, в который мы добавили только что ликвидность, став провайдером с долей 23.6%.

Забрать ликвидность можно обратной операцией:

Здесь достаточно указать процент своей ликвидности, которую вы хотите забрать из пула. В этой форме можно увидеть количество обоих токенов, которые мы забираем.

Важно! Из-за волатильности цен, которая может быть в одном или обоих токенах пула, провайдер ликвидности может нести убытки в долларовом эквиваленте при отзыве ликвидности. Это называется непостоянная потеря (Impermanent Loss).

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

Почитать подробнее об этом можно здесь (англ) или здесь (рус).

Создание пула ликвидности

Нет пула, в который вы хотите добавить ликвидность? Не проблема, его можно создать, например с нашей собственным токеном MYCOIN и стейблкоином USDT. В Minter 2 мы можем создавать не только резервные монеты, но и безрезервные токены:

Создадим токен MYCOIN с начальной эмиссией 1 млн токенов. Они не будут обеспечены BIP, а также могут быть допечатаны (Mintable) или сожжены (Burnable) владельцем монеты.

Т.к. токен безрезервный, то для его обменности в сети Minter нужно создать с пул ликвидности, например со стейблом USDT (который уже есть в Minter, купить можно за MNT в пуле MNT/USDT).

В соответствующем меню (Pools) выбираем обе монеты и их пропорции, не забывая, что цена первой монеты = количество второй монеты / количество первой монеты. Если мы хотим сформировать цену 1 MYCOIN = 2 USDT, при создании пула нам нужно добавить в него в 2 раза больше USDT, чем MNT:

1 MYCOIN = 2000 USDT / 1000 MYCOIN = 2 USDT

После создания пула, его можно проверить в эксплорере.

За добавление ликвидности в пул (в данном случае вместе с созданием пула), мы получили токены пула, которые называются P-38. Теперь, любой другой участник сети сможет стать провайдером ликвидности в моем пуле. Для этого нужно:

  1. Купить MYCOIN (потому что кроме нашего пула, эту монету нигде не получить)
  2. Купить или иметь на счету USDT

Другой пользователь решает купить 10 MYCOIN и добавить их в ликвидность пула, став провайдером, совершает 2 операции:

Теперь, в этом пуле 2 провайдера ликвидности. Мы с 99% долей и другой участник с долей 1%:

Таким образом, помимо своих депонированных средств, при отзыве мы получим 99% комиссий, собранных пулом с момента моего провайдинга.

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


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

Подписывайтесь на канал @BipLenta 🌶, чтобы не пропустить новые гайды.