В этой статье я расскажу что такое Uniswap Impermanent Loss, и почему это такая острая тема для провайдеров ликвидности.
Более конкретно, что вас ждёт в статье:
Небольшое погружение в то как работает Uniswap V2
Impermanent Loss для Uniswap V2
Погружение в то как работает Uniswap V3
Impermanent Loss для Uniswap V3
Проблемы провайдеров ликвидности или почему эта тема очень важна для них
Небольшое погружение в то как работает Uniswap V2
Uniswap - децентрализованная биржа, на которой можно обменять одни токены на другие. Там нету заявок на покупку или на продажу, а цена определяется формульно:
- количество токенов первого типа в пуле
- количество токенов второго типа в пуле
- константа, задающаяся начальными условиями: произведение кол-в токенов в момент времени перед обменом
Пусть в какой-то момент времени в пуле было монет и , и пусть какой-то человек хочет купить токены второго типа (), за токены первого типа в размере . Тогда происходит следующее.
В пуле теперь токенов, константа гиперболы та же, поэтому выполняется
Отсюда находим - сколько токенов он получит за отданные
Токены второго типа стали дороже. Цена, по которой произошел обмен: (либо перевернуть дробь, если хотим измерить в другой монете)
Откуда берется ликвидность в этих пулах?
Есть другая часть пользователей, которая предоставляет ликвидность в такие пулы - провайдеры ликвидности. Они кладут свои токены в эти пулы, и получают комиссии за каждый обмен токенов в этом пуле. Например, при свопе, описанном выше, сначала берется комиссия, и только потом происходит обмен токенов.
Комиссия за обмен распределяется между провайдерами ликвидности в соответствии с вкладом токенов в этот пул.
После обмена общее количество токенов первого типа выросло, а второго - уменьшилось, соответственно у провайдеров ликвидности соотношение кол-ва токенов, которое у них лежит в пуле, тоже поменялось.
Impermanent Loss (для Uniswap V2)
Когда другой пользователь произвел обмен токенов, цена одного токена к другому поменялась. Также поменялось и общее соотношение количества токенов в пуле и соотношение у каждого провайдера ликвидности.
Количество токенов, которые стали стоить дороже, уменьшилось, а тех что стали стоить дешевле - увеличилось.
В итоге суммарная стоимость активов у каждого провайдера ликвидности поменялась.
Один дифференциал обычно считаем положительным, второй - отрицательным, получим
- цена одного токена, выраженная во втором токене
Выведем формулу для Impermanent Loss Uniswap V2:
Суммарная стоимость активов в зависимости от цены:
Пусть в начальный момент времени юзер планирует положить в Uniswap V2 токены в количествах , . В начальный момент времени суммарная стоимость этих токенов равна:
Если бы человек не клал токены в юнисвоп, а просто "холдил" бы их, его суммарное портфолио в зависимости от цены:
Для упрощения формул, положим ,
То есть таким образом можно смотреть, насколько юзер в минусе / плюсе по сравнению с тем, как если бы он не клал токены в uniswap, а просто пассивно бы их держал на кошельке.
Иногда 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% второго токена и ликвидность снова не участвует обменах.
Зануляя либо либо , можем найти точное количество токенов оставшегося типа.
Количество токенов, когда цена поднялась выше верхней цены:
Количество токенов, когда цена опустилась ниже нижней цены:
Impermanent Loss (для Uniswap V3)
Аналогично выводу IL для Uniswap V2, запишем полную стоимость позиции в зависимости от цены:
Пусть как прежде
Если бы юзер не открывал юнисвоп позицию, а просто холдил в том же соотношении как в начальный момент времени:
Impermanent loss:
Немного упростим
Эта формула справедлива при выполнении неравенств, которые я писал чуть выше. На всякий случай продублирую ещё раз.
Проблемы провайдеров ликвидности
Теперь рассмотрим риск-профиль юзера, положившего ликвидность в Uniswap V3.
Риск-профиль - в данном случае зависимость суммарной стоимости позиции от цены.
При сильных падениях цены, во-первых, у юзера будет всё больше и больше дешевеющих токенов, соответственно он будет терять денег всё больше и больше - то есть можно сказать что у него незащищенный риск, связанный с ценой базового актива.
Юзеру вероятно хотелось бы быть менее зависимым от цены на базовый актив (e.g. цены на эфир, если это пара "eth-usdc"), и при этом всё ещё зарабатывать комиссии как провайдер ликвидности.
Что он может сделать?
Он может захеджировать (=защититься от риска) свою позицию.
А как это можно сделать - расскажу в следующих статьях.
Больше интересных статей из мира DeFi – в моём телеграм-канале:
Комментарии (2)
junsanich
07.09.2024 20:32Спасибо за статью, получилось действительно подробно объяснить механизм непостоянных потерь. Хотелось бы уточнить один момент: если взять формулу расчета impermanent loss, где IL = 1 - (2 * квадратный корень из (P1 / P0)) / ((P1 / P0) + 1) (не знаю как вставить формулу по нормальному), не могли бы вы подробнее описать, как изменится результат при использовании более узких диапазонов ликвидности в V3? Какие конкретные параметры, по вашему мнению, окажут наибольшее влияние на уменьшение непостоянных потерь в долгосрочной перспективе?
powerman
Тема интересная, но для хабра тут слишком много математики и слишком мало прикладного смысла. Было бы намного интереснее рассмотреть пару примеров с реальными объёмами/монетами/ценами, сколько в этих кейсах теряют провайдеры ликвидности, сколько получают комиссий, что выходит в конечном итоге для V2 и для V3. И что происходит если какая-то монета резко падает на CEX - как быстро и каким образом это отразится на DEX, не останутся ли провайдеры ликвидности с этой обесценившейся монетой вместо более ценных активов и т.п.