Что такое непостоянные убытки? Непостоянные убытки (Impermanent Loss, IL) — это временные убытки в процессе удержания позиции на децентрализованной бирже на основе механизма автоматического маркетмейкера (AMM). Они представляют собой разницу в стоимости активов при хранении в кошельке (HODL) и удержании в пуле ликвидности.Непостоянные убытки возникают преимущественно в классических пулах, где провайдер ликвидности (Liquidity provider, LP) должен предоставить оба актива в равном соотношении, и один из активов волатилен по отношению к другому. Непостоянные убытки на примере пула ликвидности DAI/ETH биржи Uniswap, где оба токена представлены в пропорции 50:50: Стейкируем в пуле 1 ETH и 1000 DAI. Через неделю 1 ETH равен 2000 DAI.Если бы мы хранили 1 ETH и 1000 DAI, то прибыль составила бы 50% (стоимость 1000 DAI не изменилась бы, но цена 1 ETH выросла бы до 2000 DAI). Стейкирование токенов в AMM-пуле на Uniswap дает меньшую прибыль, чем 50% от простого хранения активов. Убытки называются непостоянными или нереализованными, поскольку не фиксируются до тех пор, пока токены ликвидности не выведены из пула. В примере выше, если цена ETH возвращается к исходным 1000 DAI и после этого выводятся средства, непостоянных убытков нет. Uniswap, SushiSwap и аналогичные AMM работают по простой формуле: x ? y = k x — число токенов для актива A;y — число токенов для актива B;k — так называемый постоянный продукт (constant product) пула — это значение не изменяется. Пример работы пула ликвидности DAI/ETH биржи Uniswap. Данные: The Chain Bulletin. Контракт удерживал токены примерной стоимостью $153,5 млн — 29 116,6 WETH и 76,7 млн DAI. На основе формулы выше рассчитываем значение k для этого пула в данный момент: 29 116,63 ? 76 737 921,22 ? 2,23 ? 10^12 k изменяется только когда пользователи добавляют или выводят ликвидность, или когда со сделок взимается комиссия (например, 0,3% в случае с Uniswap). Эти средства добавляются к общей ликвидности в пуле. Детальный пример взаимодействия с AMM-пулом: Стейкируем 1 ETH и 100 DAI в пуле на Uniswap. После этого общая ликвидность в пуле равна 10 ETH и 1000 DAI (доля провайдера ликвидности в пуле составляет 10%).В течение недели в пуле проводятся сделки на общую сумму в 100 ETH (50% в ETH и 50% в DAI), но цена ETH по отношению к DAI не изменяется. В течение недели ликвидность не добавляется в пул и не выводится из него. Общая ликвидность в пуле теперь составляет 10,15 ETH и 1015 DAI, с учетом накопленных комиссий в 0,3 ETH. Доля провайдера ликвидности в пуле по-прежнему 10%, но стейк вырос благодаря комиссионному сбору. Если по истечении недели вывести средства, непостоянных убытков не будет, поскольку соотношение цен между ETH и DAI осталось прежним. Непостоянные убытки в классических пулах Пример пула ликвидности DAI/ETH биржи Uniswap: Стейкируем 1 ETH и 100 DAI, доля провайдера ликвидности равна 10%. В пуле 10 ETH и 1000 DAI. Через неделю 1 ETH торгуется за 200 DAI.В пуле нет комиссионных сборов. Рассчитываем непостоянные убытки. Во-первых, рассчитываем k: k = 10 ? 1000 = 10 000 По отношению к DAI глобальная цена ETH выросла вдвое. Арбитражеры воспользовались возможностью дешево выкупить его из пула. Из-за повышенного спроса при ограниченном предложении цена 1 ETH достигла 200 DAI. В начале недели, когда 1 ETH стоил 100 DAI, в пуле было 10 ETH и 1000 DAI. Рассчитаем новое распределение активов в пуле после роста цены ETH. Для этого нужно установить несколько переменных, начиная с соотношения цен между активами. rt = цена а в b, где а и b — два актива в пуле. В нашем примере a — ETH, b — DAI. 1 ETH вначале торговался за 100 DAI. Следовательно, исходное значение r равно 100. Используем t, чтобы обозначить время, за которое вычисляется r. Комбинируя приведенное выше уравнение с фундаментальной формулой AMM, можно построить формулы для расчета количества каждого актива в пуле при любом заданном соотношении r в произвольный момент времени t: Применим эти формулы к исходной позиции: Получаем исходное состояние активов в пуле — 10 ETH и 1000 DAI. Теперь применим те же формулы в конце примера, когда 1 ETH торгуется за 200 DAI. Новое значение r равно 200. Подставим его в уравнения: После изменения цены ETH в пуле содержится около 7 ETH и около 1414 DAI. Можно проверить корректность расчетов: 7,07 * 1414,21 ? 10 000 Уравнение постоянного продукта остается в силе. Доля в пуле составляет 10%, поэтому после изменения цены ETH мы имеем право на 0,707 ETH и 141,421 DAI. Если бы активы (1 ETH и 100 DAI) просто хранились на кошельке, их стоимость составила бы $300. Однако номинированная в долларах стоимость средств в пуле составляет: 0,707 * 200 + 141,421 = 282,821 Используя эту величину, можно рассчитать непостоянные убытки из этого примера: 300 - 282,821 = 17,179 17,179/300 ? 0,0572 ? 5,72% 17,179 DAI или около 5,72% — это то, что мы получили бы, просто храня активы вместо размещения их в пуле. Прибыль от начальной позиции в 200 DAI получена, но прибыльнее было бы просто хранить монеты в кошельке. Простая формула для расчета непостоянных убытков: стейкированиеUSD/хранение USD - 1 Применим формулу к нашему примеру: 282,821/300 -1 ? -0,0572 ? -5,72% Чтобы определить точную долю в пуле (в каждом токене), можно использовать формулы (2) и (3), аналитические платформы Uniswap Analytics и SushiSwap Analytics или сторонние инструменты Croco Finance, Growing и APY.vision. Почему следует учитывать комиссии пула? В предыдущем примере исключены торговые комиссии. Хотя это упрощает расчет непостоянных убытков, комиссии следует учитывать. Они — неотъемлемый элемент экономики платформ на основе AMM. Чем больше комиссия, тем меньше непостоянный убыток. При достижении определенного объема торговых сборов участие в пуле приносит большую прибыль, чем хранение активов. Возьмем приведенный выше пример и добавим компонент в виде комиссии: Стейкируем в пуле 1 ETH и 100 DAI;Доля нашего стейка составляет 10% (в пуле 10 ETH и 1000 DAI);Через неделю 1 ETH торгуется за 200 DAI;Комиссионные сборы: 1 ETH и 100 DAI. Без учета торговых комиссий непостоянный убыток составляет 17,179 DAI. Поскольку доля в пуле составляет 10%, мы имеем право на 0,1 ETH и 10 DAI из накопленных комиссий. Поскольку ETH торгуется по 200 DAI, то 0,1 ETH стоит 20 DAI, а общая прибыль от комиссий составляет 30 DAI. Таким образом, общая сумма составляет $312,821 ($282,821 + $30). Вставим эти новые числа в формулу (4): 312,821/300 - 1 ? 0,042 ? 4,2% В этом примере непостоянный убыток составляет -12,821 DAI (17,179 - 30). Благодаря удержанию активов в пуле вместо хранения это не потеря, а прирост на 4,2%. Какая нужна формула для построения графика непостоянных убытков? До сих пор использовалась простая формула (4) для расчета непостоянных убытков. Она подходит для измерения текущего IL, но неудобна, если необходимо получить различные значения непостоянных убытков для разных цен. Из формул (1), (2) и (3) можно вывести еще одну для простоты расчета непостоянных убытков: Применим эту формулу к нашему примеру. Мы знаем, что начальное r равно 100 (1 ETH торгуется за 100 DAI), а окончательное r равно 200. Следовательно, p равно 0,5 (100/200). Используем эти значения: Именно такое число мы получили по формуле (4). Использование этой формулы с различными значениями p позволяет вывести показатели IL при разных изменениях цен. Эта формула не учитывает комиссию за торговлю. Если необходимо построить график для торговых комиссий, формула будет следующей: Рассчитывать сборы можно на основе данных APY, которые предоставляют некоторые AMM-платформы. График ниже иллюстрирует непостоянные убытки при различных изменениях цены. Например, пятикратное изменение стоимости влечет за собой IL в 25,5%, двукратное — 5,7%. Данные: Finematics. Работает ли механизм непостоянных убытков в других пулах? Curve — это децентрализованная биржа стейблкоинов и токенизированных биткоинов на базе механизма автоматического маркетмейкера. Ее пулы содержат только активы, которые должны обладать одинаковой или сопоставимой стоимостью: стейблкоины (USDC, DAI) или токенизированные биткоины (renBTC, wBTC). Риск непостоянных убытков в таких пулах минимален. Balancer предлагает пулы с произвольными соотношениями токенов. Например, если поставщик ликвидности хочет поставлять большое количество определенных токенов, он может выбрать пул, в которым эти монеты обладают большим весом, чем другие (пропорции могут составлять 80/20 или даже 98/2). Такая модель также минимизирует непостоянный убыток. Чем больше доля токена в пуле, тем меньше разница в результатах между хранением токена и предоставлением ликвидности в этом токене.Пулы второй версии Bancor автоматически изменяют удельный вес токенов на основе данных, которые сообщают ценовые оракулы. Благодаря этому даже в пулах с волатильными активами можно минимизировать непостоянные убытки. Как легко подсчитать непостоянные убытки? Понимание непостоянных убытков необходимо любому пользователю AMM-платформ. Можно произвести собственные подсчеты IL, воспользовавшись калькулятором на сайте dailydefi.org (за основу берутся формулы Uniswap). В целом, пользователи AMM-протокола всегда подвержены рискам издержек упущенной выгоды, независимо от движения цен. По сравнению с хранением, если цены активов растут, позиция участника растет не столь высокими темпами, если цены идут вниз — он больше теряет. На помощь приходят торговые комиссии и доходное фермерство — они помогают нейтрализовать непостоянные убытки так, что участие в АММ-пуле приносит большую прибыль, чем простое хранение активов.