В этой статье я расскажу что такое Uniswap Impermanent Loss, и почему это такая острая тема для провайдеров ликвидности.
Более конкретно, что вас ждёт в статье:
Небольшое погружение в то как работает Uniswap V2
Impermanent Loss для Uniswap V2
Погружение в то как работает Uniswap V3
Impermanent Loss для Uniswap V3
Проблемы провайдеров ликвидности или почему эта тема очень важна для них
Небольшое погружение в то как работает Uniswap V2
Uniswap - децентрализованная биржа, на которой можно обменять одни токены на другие. Там нету заявок на покупку или на продажу, а цена определяется формульно:
- количество токенов первого типа в пуле
- количество токенов второго типа в пуле
- константа, задающаяся начальными условиями: произведение кол-в токенов в момент времени перед обменом
Пусть в какой-то момент времени в пуле было монет и
, и пусть какой-то человек хочет купить токены второго типа (
), за токены первого типа в размере
. Тогда происходит следующее.
В пуле теперь токенов, константа гиперболы та же, поэтому выполняется
Отсюда находим - сколько токенов он получит за отданные
Токены второго типа стали дороже. Цена, по которой произошел обмен: (либо перевернуть дробь, если хотим измерить в другой монете)
Откуда берется ликвидность в этих пулах?
Есть другая часть пользователей, которая предоставляет ликвидность в такие пулы - провайдеры ликвидности. Они кладут свои токены в эти пулы, и получают комиссии за каждый обмен токенов в этом пуле. Например, при свопе, описанном выше, сначала берется комиссия, и только потом происходит обмен токенов.
Комиссия за обмен распределяется между провайдерами ликвидности в соответствии с вкладом токенов в этот пул.
После обмена общее количество токенов первого типа выросло, а второго - уменьшилось, соответственно у провайдеров ликвидности соотношение кол-ва токенов, которое у них лежит в пуле, тоже поменялось.
![](https://habrastorage.org/getpro/habr/upload_files/62c/3ab/cb2/62c3abcb2e6a6d432384fc33bdc482bc.png)
Impermanent Loss (для Uniswap V2)
Когда другой пользователь произвел обмен токенов, цена одного токена к другому поменялась. Также поменялось и общее соотношение количества токенов в пуле и соотношение у каждого провайдера ликвидности.
Количество токенов, которые стали стоить дороже, уменьшилось, а тех что стали стоить дешевле - увеличилось.
В итоге суммарная стоимость активов у каждого провайдера ликвидности поменялась.
Один дифференциал обычно считаем положительным, второй - отрицательным, получим
- цена одного токена, выраженная во втором токене
Выведем формулу для Impermanent Loss Uniswap V2:
Суммарная стоимость активов в зависимости от цены:
Пусть в начальный момент времени юзер планирует положить в Uniswap V2 токены в количествах ,
. В начальный момент времени суммарная стоимость этих токенов равна:
![](https://habrastorage.org/getpro/habr/upload_files/af0/8a6/166/af08a61669906bc4a4079ef345db1317.png)
Если бы человек не клал токены в юнисвоп, а просто "холдил" бы их, его суммарное портфолио в зависимости от цены:
Для упрощения формул, положим ,
То есть таким образом можно смотреть, насколько юзер в минусе / плюсе по сравнению с тем, как если бы он не клал токены в uniswap, а просто пассивно бы их держал на кошельке.
![](https://habrastorage.org/getpro/habr/upload_files/277/06e/939/27706e939921f1708cf2fb4a18877ffc.png)
Иногда Impermanent Loss называют просто зависимостью суммарной стоимости позиции от цены, потому что не всегда интересно сравнивать только с позицией холда токенов в изначальной пропорции.
Небольшое погружение в то как работает Uniswap V3
Важно:
Я здесь специально опускаю некоторые детали, связанные с устройством Uniswap V3 (например активация лишь некоторых price ticks, разное кол-во decimals у разных токенов, etc) так как в данном случае они не сильно влияют на результат, но усложняют статью.
В случае Uniswap V3 провайдеры ликвидности могут выбирать, в каком ценовом диапазоне будут использоваться их токены. Таким образом, предоставляемая ликвидность распределяется равномерно не на весь диапазон , а равномерно в отрезке
,
- нижняя,
- верхняя выставленная цена.
Это выгодно тем, что теперь, выставляя более узкий ценовой диапазон, доля юзера в ликвидности на конкретной цене (на конкретном 'price tick') становится больше, поэтому комиссий он заработает больше. Однако увеличивается и Impermanent Loss, который испытывает его позиция.
Идея аналогична с Uniswap V2. При обмене первого токена на второй так же прибавляется , и убавляется
.
В случае Uniswap V3 уже гипербола немного другая: приспустившись, она уже пересекает оси Ox и Oy.
Если сделаем замену переменных, можем привести эту гиперболу к привычному виду:
В случае когда выполняются неравенства, юнисвоп позиция находится в активном состоянии и генерирует комиссии.
Соответственно будут работать выведенные выше формулы, связывающие кол-во токенов, ликвидность и текущую цену (формулы из Uni V2):
Теперь выразим ,
:
Когда цена становится равной , ликвидность юзера уже не участвует с обменах и не получает комиссии. Также теперь у него 0% токенов первого (цена которых поднялась) типа и 100% токенов второго типа.
Аналогично с тем, когда цена упала до . Тогда у юзера теперь становится 100% первого (обесценившегося) токена и 0% второго токена и ликвидность снова не участвует обменах.
Зануляя либо либо
, можем найти точное количество токенов оставшегося типа.
Количество токенов, когда цена поднялась выше верхней цены:
Количество токенов, когда цена опустилась ниже нижней цены:
![](https://habrastorage.org/getpro/habr/upload_files/aa6/d1b/0c3/aa6d1b0c3eae758624695367cbed4029.png)
Impermanent Loss (для Uniswap V3)
Аналогично выводу IL для Uniswap V2, запишем полную стоимость позиции в зависимости от цены:
Пусть как прежде
Если бы юзер не открывал юнисвоп позицию, а просто холдил в том же соотношении как в начальный момент времени:
Impermanent loss:
Немного упростим
Эта формула справедлива при выполнении неравенств, которые я писал чуть выше. На всякий случай продублирую ещё раз.
![](https://habrastorage.org/getpro/habr/upload_files/7c2/715/299/7c271529935a0e0a2b5142c9afb4e884.png)
Проблемы провайдеров ликвидности
Теперь рассмотрим риск-профиль юзера, положившего ликвидность в Uniswap V3.
Риск-профиль - в данном случае зависимость суммарной стоимости позиции от цены.
При сильных падениях цены, во-первых, у юзера будет всё больше и больше дешевеющих токенов, соответственно он будет терять денег всё больше и больше - то есть можно сказать что у него незащищенный риск, связанный с ценой базового актива.
Юзеру вероятно хотелось бы быть менее зависимым от цены на базовый актив (e.g. цены на эфир, если это пара "eth-usdc"), и при этом всё ещё зарабатывать комиссии как провайдер ликвидности.
Что он может сделать?
Он может захеджировать (=защититься от риска) свою позицию.
А как это можно сделать - расскажу в следующих статьях.