Глубокое погружение в Uniswap, часть 1 - теоретическая
Материал подготовлен каналом @shitcoinresearch
В начатом сегодня цикле статей мы хотим совершить глубокое погружение в самые основы DeFi — в теорию, лежащую в основе децентрализованной торговли и практику извлечения из нее прибыли. Мы хотим подойти к этой теме “снизу-вверх”, то есть через призму историй конкретных проектов, их идейного и технического развития.
Выбор проекта для этой, пилотной статьи, не подлежал сомнению. Героем сегодняшнего ресерча является первопроходец со многих точек зрения: это и первый протокол, применивший механизм AMM, ныне принимаемый как отраслевой стандарт; это и проект, раздавший первый крайне щедрый в истории Airdrop, это и наиболее популярный среди пользователей; и, проще говоря, самый успешный протокол в своей нише, это – настоящий “Единорог” децентрализованных финансов. Это, конечно же, Uniswap.
В следующей статье цикла, практической, вы узнаете как именно работать с инструментами Uniswap с целью извлечения прибыли. Особенно подробно будут затронуты методы работы с пулами ликвидности (V2 и V3), методы хеджирования Impermanent Loss, методы отслеживания позиций, будет много расчетов, графиков, визуализаций, stay tuned.
Корни идеи. Эврика Алана Лу и авторитет Виталика Бутерина
Как западная философия берет свое начало в трудах Аристотеля, так и значимые DeFi-примитивы получают импульсы к своему развитию в постах Виталика Бутерина.
Так, 3 октября 2016 года Виталик опубликовал пост на Reddit. В этом тексте он сперва лаконично сформулировал имеющуюся на тот момент проблему неэффективности классического способа поддержания ликвидности, который повсеместно применялся биржевыми площадками - так называемого “биржевого стакана” – книги лимитных ордеров, или как их называют опытные трейдеры “нереализованных объемов”:
“Основная проблема, которую я вижу сейчас на рынке MKR, etherdelta и прочих, – это высокие спреды, часто 10% и даже выше. В значительной степени это связано с тем, что маркет-мейкинг очень дорог, так как создание и удаление ордера требуют платы за газ, даже если ордера никогда не исполняются. Решения на основе “каналов состояния” теоретически могли бы решить эту проблему, но они далеки от реализации…”
Под “каналами состояния” Виталик имеет ввиду P2P-платежные каналы, подобные тем, что лежат в основе технологии Lightning Network, о которой у нас есть отдельный отчет - прим. автора).
Далее в этом посте Виталик следует принципу “критикуешь – предлагай”:
“…Предлагаемое мною решение заключается в том, чтобы использовать механизм "автоматического ончейн-маркетмейкера" применяемого на рынках предсказаний в контексте децентрализованной биржи…”
Рынки предсказаний – отдельная и емкая тема, которую мы сегодня обойдем стороной, а вот “автоматический маркетмейкер” (Automated Market Maker, AMM) – это безусловно важная деталь для сегодняшнего исследования. Изначально идея AMM принадлежала Алану Лу (Alan Lu) из команды сайдчейна Gnosis, а сама формула, лежащая в ее основе, выглядит как все гениальное просто:
где x и y – балансы резервов двух торгуемых друг к другу токенов, а k – их “постоянное произведение”, неизменяемый параметр, отвечающий за общий баланс пула.
Вот как этот механизм в своем посте описывает Виталик:
“…Механизм будет выглядеть примерно так: рынок содержит внутреннее состояние PRICE, которое является текущей рыночной ценой. Он также имеет два параметра, FEE и DEPTH. Если пользователь хочет купить ORDER_AMOUNT монет, он повышает цену до PRICE + ORDER_AMOUNT / DEPTH и платит ORDER_AMOUNT * (PRICE + ORDER_AMOUNT / DEPTH / 2) * (1 + FEE). По сути, это означает покупку бесконечно малого количества монет в каждой точке цены между старой и новой ценой…”
Под DEPTH здесь имеется ввиду глубина ликвидности, то есть общий объем резервов в пуле. Далее Виталик описывает механизм предоставления ликвидности в пул, то есть увеличения его DEPTH:
“…Пользователи имеют возможность "инвестировать" в рынок. Инвестирование и сброс средств пропорциональны: например, если рынок в настоящее время содержит 2000 ETH и 400 токенов, то инвестор должен предоставить 2000 * p ETH и 400 * p токенов, что увеличит DEPTH в 1 + p раз и даст инвестору 1 / (1 + p) "долю рынка…"
Мы приводим пост Виталика в первую очередь из исторических соображений. Если вы не схватили принцип работы AMM из этих двух абзацев – это нормально. В разделе “Uniswap V1. Фундаментальные механики протокола” мы расскажем об этом механизме более подробно.
Далее Виталик по касательной задевает систему мотивации пользователя предоставлять ликвидность:
“…Теория заключается в том, что в большинстве случаев собранные комиссионные будут больше, чем любые потери от атак на маркет-мейкера, а специфическая математическая структура маркет-мейкера гарантирует, что риск потерь, хотя и присутствует, но строго ограничен, в любом случае инвесторы являются той стороной, которая будет нести риск…”
В приведенном посте Виталик не раскрывает дизайн комиссий, которые платят пользователи за совершение обмена токенов, и которые получают провайдеры ликвидности в качестве вознаграждения за принимаемый ими риск. Но и о нем вы сможете узнать подробнее в следующих разделах данной статьи.
В заключение поста Виталик пишет:
“…Преимущество этой схемы с точки зрения эффективности заключается в том, что она предлагает очень низкие спреды, но в то же время требует транзакций в блокчейне только для фактических сделок, а не для размещения или отмены ордеров. Кроме того, эта схема относительно проста для понимания и реализации.”
Ну что ж, наверное для кого как…
Uniswap V0. Трудолюбивый Хайден Адамс
6 июля 2017 года гигантский немецкий конгломерат Siemens AG совершает историческое действие: компания увольняет 24-летнего выпускника Stony Brook University со степенью бакалавра инженера-механика Хайдена Адамса (Hayden Adams), для которого эта работа была первой с момента выпуска из колледжа.
Хайден написал об этом событии своему другу по университету Карлу Флорешу (Karl Floersch), на что тот ответил следующее:
“Поздравляю, это лучшее, что могло с тобой случиться!!! Машиностроение - это умирающая область. Ethereum - это будущее, и ты все еще Still Early! (непереводимое устойчивое выражение - прим. автора) Твоя новая судьба - писать смарт-контракты!”
Этот самый Карл Флореш, на момент написания статьи, уже 4-ый месяц занимает позицию CEO в OP Labs (L2 Optimism – их детище). На тот же момент Карл был на позиции Research в Ethereum Foundation.
Хайден решил послушать своего друга, но так как по его словам он не умел писать код, первые два месяца своей переквалификации он провел в обучении основам Ethereum, Solidity и JavaScript.
Первой же реальной работой, за которую взялся Хайден (и также по совету Карла) стала попытка реализовать предложенную Виталиком идею, то есть построить новую децентрализованную биржу, в основе которой лежит механизм AMM.
Уже в ноябре того же года, Хайден разработал и представил “proof-of-concept”: смарт-контракт (с единственным провайдером ликвидности) и веб-страницу dApp.
Стоит заметить, что этот демо-интерфейс уже выгодно отличался от единственно существующей на тот момент децентрализованной биржи - EtherDelta.
На этот момент с увольнения Хайдена прошло 5 месяцев, и по его словам, он жил “за счет крипты, которую ему посчастливилось купить в начале года”. И здесь любопытно обратить внимание на контекст, т.е. “фазу рынка”: с июля по декабрь 2017 года общая капитализация Топ-100 проектов (тикер $TOTAL) выросла на 870%, то есть средний рост в месяц за эти полгода составил 145%. Словом, Хайден вряд ли бедствовал. Однако, одно дело - просто жить, и совсем другое – делать изобретательский продукт с нуля и доводить его “до ума”, – до живой и рабочей версии. Безусловно, Хайден нуждался в финансировании. И он его нашел.
Точнее финансирование само его нашло в лице одного из поситителей Devcon 3 из Гааги - Паскаля Ван Хека. И здесь тоже есть интересная деталь. Демо-страница Uniswap, приведенная выше, появилась на экране Devcon 3 всего на 10 секунд - в середине выступления Карла Флореша. Причем за эти 10 секунд Карл не упоминает ни название протокола, ни имя создателя и даже приводит его как пример очень простой работы, буквально говоря следующее: “Это настолько легко! Каждый может сделать это!”. Но, судя по всему, Паскаль посчитал, что не каждый и, проявив завидную внимательность к деталям, связался с Хайденом. По итогу встречу Хайден получил финансовую поддержку в виде гранта от Паскаля на месяц работы и, что не менее важно, структурированность в процесс работы над протоколом.
Через пару месяцев, в конце января 2018 года, все основные проблемы смарт-контрактов были решены: протокол поддерживал множество провайдеров ликвидности, протокол позволял создавать кастомные LP (ERC-20токен + ETH).
В марте, после того как к фронт-енд разработке подключился очередной друг по альма-матер Юсиель Вильчис (Uciel Vilchis), был готово новая демо-страница Uniswap:
А уже в апреле, спустя 10 месяцев после увольнения и 75% проданного портфеля, Хайден покупает билеты в Сеул на Deconomy 2018, где лично встречается с Виталиком Бутериным. Виталик читает код смарт-контракта Uniswap со своего телефона и предлагает Хайдену две вещи: переписать код на языке Vyper и податься на грант от Ethereum Foundation.
В течение последующих четырех месяцев, к августу 2018 года, Хайден успешно справляется с обеими рекомендациями: Uniswap переписан на Vyper, и получает грант от Ethereum Foundation на $100,000.
С грантом в руках, Хайден занялся аудитом смарт-контрактов и дизайном рабочей версии продукта, для чего он нанял своего бывшего одноклассника из начальной школы Каллило Капуоззо (Callil Capuozzo), который на тот момент уже поработал дизайнером в Microsoft и Google.
Примерно в это же время происходит вторая встреча Хайдена с Виталиком на блокчейн-конференции ETHIS в Гонконге, кадр из которой стал мемом:
Перевод текста мема звучит так:
“Твое лицо, когда друзья продали крипту, а ты – нет”.
Тут опять же важен “рыночный контекст”: к концу сентября 2018 года общая капитализация Топ-100 проектов ($TOTAL) потеряла более 70%. Ретроспективно мы видим, что это была ровно середина медвежьего рынка того цикла.
Но, как вы уже понимаете, этот мем, как часто бывает, был несправедлив - на самом деле Хайден успешно распродал 70 или более % своего портфеля (если верить его словам).
Хайден ставит себе задачу выпустить проект в свет уже на Devcon 4, который пройдет в Праге уже в ноябре 2018 года.
Когда до Devcon 4 оставалось 5 недель, наибольшей проблемой оставался внешний вид приложения, его UX/UI дизайн. Чтобы успеть в эти сроки, Хайден нанял Джеки Чана, нет, не голливудского актера, а VP в Kyokan.
Джеки создал внешний вид конечного продукта за месяц, а Хайден в свою очередь финализирован документацию проекта и, как водится, белую бумагу.
Уже во время Devcon, во второй день, Хайден, Каллил и Джеки осознали, что им нужна лендинг-страница самого протокола, отдельная от страницы торгового интерфейса. Они сделали ее (uniswap.io) с нуля в тот же день.
2 ноября 2018 года, в последний, четвертый день конференции, менее, чем через год с начала работы, смарт-контракты Uniswap были запущены в основной сети Ethereum. Лендинг и dApp явились миру.
Uniswap V1. Фундаментальные механики протокола
Так что же представляла собой первая живая и рабочая версия протокола? Приведем ключевые тезисы из оригинальной документации V1:
- Протокол Uniswap состоит из серии обменных смарт-контрактов между ETH и другими ERC20-токенами;
- На один ERC20-токен приходится ровно один обменный смарт-контракт и он всегда обеспечивает возможность обмена только на ETH. Если токен еще не имеет контракта, он может быть создан любым желающим с помощью контракта-фабрики (factory contract);
- На каждом обменном контракте хранятся резервы как ETH, так и спаренного с ним ERC20-токена. Любой желающий может стать поставщиком ликвидности, то есть пополнить резервы контракта токенами. Ликвидность объединяется для всех поставщиков, а для отслеживания относительного вклада каждого поставщика используется внутренний "токен пула" (”liquidity pool token”, LP). LP-токены чеканятся при поступлении ликвидности в систему и могут быть сожжены в любой момент для изъятия пропорциональной доли резервов из пула;
- Торговые контракты для пар ETH-ERC20 представляют собой автоматизированных маркетмейкеров (AMM). Трейдеры могут совершать обмен между ними в любом направлении, тем самым изымая из резерва какое-то количество одного токена и пополняя резерв другого. Поскольку ETH является общей парой для всех ERC20-токенов, он может быть использован в качестве посредника, позволяющего совершать прямые сделки ERC20-ERC20 в рамках одной транзакции на уровне пользователя (“под капотом” совершая сделки ERC20-ETH-ERC20);
- Автоматический маркетмейкер (AMM) Uniswap базируется на формуле "постоянного произведения" (”constant product”: xy=k, где x и y – балансы резервов, k – некоторый неизменяемый параметр, отвечающий за общий баланс пула). Именно по этой формуле устанавливается обменный курс токенов на основе относительного размера их резервов, а также величины, на которую входящая сделка изменяет это соотношение. Покупка пользователем X количества ERC20-токенов из пула означает их изъятие взамен на добавление пропорционального количества ETH (Y). При этом, так как их общее математическое произведение (XY=K) должно оставаться неизменным, их обменный курс друг к другу неизбежно меняется.
- Чем больший объем резервов используется в конкретной сделке по отношению к общему размеру резервов пула, тем больше будет проскальзывание цены (”price impact”) при соверешнии этой сделки.
- При этом “Справедливая цена” токенов поддерживается за счет арбитража. Например, любой пользователь, увидев, что в каком-то пуле Uniswap после какой-то сделки цена ERC20-токена оказалась существенно ниже цены этого же токена на других торговых площадках, может купить эти токены из пула, пополнив его резервы ETH, тем самым увеличивая цену ERC20-токена относительно ETH. Или наоборот, купить токены на другой площадке и продать в Uniswap-пуле, если цена в нем сложилась выше. Таким образом, любые неэффективности ценообразования внутри пулов регулируются децентрализованной активностью трейдеров, зарабатывающих на арбитраже;
- Небольшая комиссия поставщика ликвидности (фиксированная для всех пар = 0,30%) изымается из каждой сделки и добавляется к резервам пула. Хотя соотношение резервов ETH-ERC20 постоянно меняется, код следит за тем, чтобы общий совокупный размер резервов увеличивался с каждой сделкой за счет этой комисси. Эти дополнительные резервы являются источником вознаграждения для поставщиков ликвидности: увеличивая общий резерв пула, они увеличивают резерв каждого отдельного LP-токена, то есть то колдичетсво токенов, которые участник получит в момент сжигания своего LP-токены (на выходе из пула). Чем больше поток транзакции (объем торгов), тем больше общий объем комиссий. Чем меньше поставщиков ликвидности, тем большую долю в общем пуле имеет каждый из них.
- Здесь надо остановиться на описании важного явления, которое является неизбежным следствием архитектуры пулов Uniswap. Так как провайдеры ликвидности в момент создания LP предоставляют токены в определенной пропорции (50%+50%), а сам пул является динамической системой с точки зрения соотношения резервов внутри пула (но не их “постоянного произведения”), провайдеры берут на себя риск так называемых “непостоянных потерь” (”impermanent loss”, IL). То есть, если с момента создания LP провайдером ликвидности, цена токена А например, выросла по отношению к цене токена B, то количество токенов А в пуле снизилось, а токенов B – увеличилось. И если провайдер хочет изъять ликвидность, то при сжигании своей LP он получает токены в новом соотношении (например, 60%+40%), тем самым “фиксируя” небольшой убыток в сравнении с тем, если бы он просто “держал” эти токены на своем кошельке. Этот убыток может быть “перекрыт” доходностью, которую получил провайдер за время предоставления своих токенов в пул, но это зависит от того, как удачно им был выбран пул и как долго он получал доходность. В редких случаях “непостоянных потерей” вообще удается избежать, если провайдер найдет такой момент выхода из LP, когда соотношение цен токенов в нем вернулось в изначальное значение (проще говоря, когда цены на входе и на выходе из LP равны). Именно поэтому такие потери и называются “непостоянными”, так как теоретически могут быть не понесены. В общем же случае, они всегда присутствуют в той или иной степени, поэтому при выборе пула для предоставления ликвидности провайдеру необходимо грамотно оценивать соотношение прибыли к риску нахождения в пуле, чему будет посвящена отдельная статья этого цикла;
- Поскольку Uniswap полностью работает ончейн, цены могут меняться в период между подписанием транзакции и включением ее в блок. Трейдеры могут ограничить колебания цен, указав минимальную сумму покупки для ордеров на продажу или максимальную сумму продажи для ордеров на покупку (то, что мы знаем под понятием “slippage”). По сути, это своего рода лимитный ордер, который автоматически отменяется в случае его неисполнения. Также пользователи могут установить предельные сроки выполнения транзакции, по истечению которых код будет автоматически отменять неисполненные ордера;
- Пользователи могут указать адрес получателя, если хотят получить купленные токены не на адрес, с которого совершается сделка.
Подытоживая, можно сказать, что первая рабочая версия Uniswap представляла из себя децентрализованное приложение, которое позволяло любому пользователю выступать в двух ролях:
- Ончейн-трейдер. Пользователь может обменивать ETH и любые ERC20-токены между собой. Величина потерь (”price impact”) при таком обмене напрямую зависит от отношения величины его ордера к общему резерву пула. Помимо этого при каждом обмене с трейдера взимается комиссия в размере 0,30%;
- Провайдер ликвидности. Пользователь может добавлять свои токены в равной пропорции с ETH в имеющиеся пулы (или создавать новые), получая тем самым пропорциональную вкладу долю владения резервами пула, которая увеличивается при каждом свопе от комиссий, оплачиваемых ончейн-трейдерами.
При этом любой пользователь может выступать в обеих ролях одновременно.
Именно в такой архитектуре протокол просуществовал полтора года, на протяжении которых он оставался самым популярным приложением в DeFi.
Uniswap V2. Джин выпущен из бутылки
Запуск второй версии протокола произошел 18 мая 2020 года. Оставляя неизменным свою миссию – быть прозрачной децентрализованной биржей с открытым кодом, сам код протерпел серьезные изменения:
- В отличие от первой версии, в Uniswap V2 любой ERC20-токен может быть напрямую спарен с любым другим ERC-20-токеном. Это сделано в первую очередь не для удобства трейдер, так как те и так получали такую возможность на уровне UX, но для провайдеров ликвидности. Теперь они могут инвестировать в самые разные позиции, номинированные в ERC20-токенах без обязательного удержания ETH. Например, это может быть стейблкоиновая пара DAI/USDC, которая по задумке должна иметь низкую волатильность, но большой торговый объем. Ниже приведены схемы, визуализирующие разницу между первой и второй версией протокола в разрезе свопов ERC20-ERC20:
Реализация свопа DAI-USDC в Uniswap V1:
Варианты свопов DAI-USDC в Uniswap V2:
Как видно из схемы, если два ERC20-токена напрямую не спарены, и не имеют общей пары между собой, они все равно могут быть обменены между собой, если между ними можно построить путь. За построение и оптимизацию таких путей отвечают контракты-маршрутизаторы (”router contracts”).
- Теперь, вместо “нативного” ETH в основных контрактах протокола используется обернутая версия ETH (”Wrapped Ether”, WETH). Впрочем, при желании, пользователи могут настроить контракты с нативным ETH;
- В этой версии протокола Uniswap сделал механизм отслеживания и передачи цены оракулами куда более устойчивым к манипуляциям. Для этого была введена система взвешенной по времени средней цены (”time-weighted average prices”, TWAPs): цена считывается на входе в определенный временной период и на выходе из него, и разница между этими значениями делится на длину этого периода (это может быть TWAP для 10 минут, для 1 часа, для 1 недели и т.д.);
- Также Uniswap V2 уделил большое внимание расширению арбитражных возможностей, добавив так называемые Мгновенные свопы (”Flash Swaps”), целью которых является “демократизация” арбитража (повышение его децентрализации). Теперь, если пользователь находит какую-то ценовую неэффективность внутри пула, ему не обязательно иметь средства на то, чтобы ей воспользоваться. Мгновенные свопы (или как их еще называют “мгновенные займы”) позволяют ему занять определенное количество токенов или ETH и сразу же продать их на другой площадке. Все, что ему нужно сделать – оплатить комиссию за газ. Впоследствии мгновенные свопы стали популярным техническим примитивом и имеют массу других применений в DeFi, но это мы оставим за рамками данной статьи;
- Смарт-контракты для Uniswap V2 были заново переписаны на языке Solidity (как помните, версия V0 была написано на нем же, пока Виталик не предложил переписать код на Vyper). К сожалению, мне пока не удалось найти информацию, чем был вызвано решение вернуться на Solidity.
Всего за год работы Uniswap V2 (начиная с мая 2020 года) до момента запуска следующей версии V3 (май 2021 года) протокол обеспечил $135 млрд торговых объемов, сохранив свое абсолютное лидерство среди децентрализованных бирж и даже обогнав по этому ключевому показатели многие централизованные сервисы.
Также именно в этот период произошел первый и при этом самый щедрый в истории криптоиндустрии Airdrop. Uniswap выпустил свои гавернанс-токены $UNI (перейдя на форму управления DAO) в рыночную циркуляцию 17 сентября 2020 года, раздав в тот же день по 400 токенов на каждый адрес, который провзаимодействовал хотя бы с одним смарт-контрактом протокола (даже если такая транзакция не финализировалась!). Всего в тот день было выпущено около 150 млн токенов (из 1 млрд максимально-запрогромированного предложения) и каждый токен $UNI был оценен рынком в ~4$, что составило около $600 капитализации или $1,600 потенциальной прибыли на каждый обычный кошелек. Небольшая часть адресов (чуть более 250) получили по 250,000 токенов $UNI - то были крупные провайдеры ликвидности и держатели ранее запущенных на Uniswap NFT-токенов “SOCKS”, которые представляли собой право покупки реальной пары носков ограниченной серии. Всего кошельков-получателей дропа оказалось 252,803. На следующий день, 18 сентября пик значения цены токена составил ~8.5$, после чего она резко опустилась обратно на уровень ~4$ а затем и ниже (~$1.8) и на протяжении 100 дней находилась в диапазоне $2-5. С января же 2021 года по май 2021 года цена выросла на ~800%, после чего ушла на долгую, идущую по сей день коррекцию.
И раз уж зашла речь о токене и его оценке рынком, то стоит отметить, что он наследует или даже порождает общую для всех токенов управления проблему – они все находятся в долгосрочном даунтренде к ETH, так как по сути их владение не приносит пассивной доходности, а лишь наделяет правами голосвания в DAO протокола. Сейчас такие токены называют “ токенами DeFi 1.0” и им противопоставляют “токены DeFi 2.0”, в основе которых лежит система распределения “реальной доходности”, то есть доходности, получаемой непосредственно самим протоколом от комиссий пользователей, которой он в той или иной пропорции делится с держателями его токена. Самыми яркими примерами таких протоколов на данный момент являются Gains Network ($GNS), Radiant Capital ($RDNT), Unibot ($UNIBOT). Что же касается самого $UNI, нам неизвестно как команда будет решать проблему полезности их токена и будет ли решать ее вообще. Возможно, в обозримом будушем Uniswap предпримет какие-то шаги к увеличению внутренней ценности своег токена и тогда мы обязательно либо дополним текущую статью, либо опишем их в статье отдельной.
Uniswap V3. Концентрация ликвидности
В марте 2021 года была анонсирована третья версия кода Uniswap, запуск которой в основной сети Ethereum произошел 5 мая того же года.
Основными изменениями протокола стали:
- В Uniswap V3 пользователи получили возможность предоставлять ликвидность на определенные диапазоны цен, делая их LP индивидуальными невзаимозаменяемыми (NFT) токенами. Эти индивидуальные LP-токены объединяются в единый пул, формируя комбинированную ликвидность (глубину пула). Эта технология получила название “концентрированная ликвидность”;
- Также, в новой версии протокола были добавлены новые “тиры” комиссий (”fee tiers”), позволяющие провайдерам ликвидности получать доходность, более соответствующую той степени риска, которую они на себя берут;
- Ценовые оракулы Uniswap не претерпели сильных изменений, но были оптимизированы с точки зрения простоты и стоимости интеграции, что положительно сказалось на стоимости газа, взимаемой сетью Ethereum за проведение транзакции.
Остановимся на первых двух пунктах подробнее, так как они оказали значительное влияние на дальнейшее развитие области (впрочем, как и все основные технологии, реализованные командой Uniswap).
Как вы уже знаете, в прошлых версиях Uniswap провайдеры ликвидности всегда предоставляли свой капитал на полный диапазон кривой x*y=k, от нуля до бесконечности, именно по этой причине, при формировании LP-токена, пользователю было необходимо предосталять два токена в равной пропорции (50%+50%). Для подавляющего большинства пулов, такое распределение ликвидности было неэффективным. Например, V2 пул DAI/USDC использовал всего около %0,50 капитала провайдеров ликвидности, так как диапазон движения цены внутри этой пары колеблется между $0.99 и $1.01. Теперь же пользователь может предоставить свои DAI+USDC только на этот диапазон, увеличивая эффективность капитала в 200 раз!
Однако, повышение эффективности капитала легко увидеть и на примере с волатильной парой (ETH/DAI):
Алиса и Боб хотят предоставить ликвидность в пул ETH/DAI на Uniswap v3. У каждого из них есть $1 млн. Предположим, что текущая цена ETH составляет 1,500 DAI.
Алиса решает разместить свой капитал во всем ценовом диапазоне (как она сделала бы это в Uniswap v2). Она размещает 500,000 DAI и 333,33 ETH (на общую сумму $1 млн).
Боб вместо этого создает концентрированную позицию, размещая средства только в ценовом диапазоне от 1,000 до 2,250 DAI за 1 ETH. Он вкладывает 91,751 DAI и 61,17 ETH на общую сумму около $183,500. Остальные $816,500 он оставляет себе, инвестируя их по своему усмотрению.
Хотя Алиса вложила в 5,44 раза больший капитал, чем Боб, они получают одинаковые комиссионные, пока цена ETH/DAI остается в диапазоне от 1,000 до 2,250.
Безусловно, это повышенная доходность не бесплатна с точки зрения риска. Чем более узок диапазон предоставления ликвидности, тем большее значение непостоянных потерь может понести провайдер ликвидности. Практическим рекомендациям, примерам использования, вычислениям риска/доходности и их визуализации, как для V2-пулов, так и для V3-пулов, будет посвещена отдельная статья этого цикла. Сейчас же считаем важным отметить, что предоставление ликвидности в V3-пулы не является “легкой” и “безрисковой” доходностью, и потому мы не советуем этот инструмент новичкам. Если вам интересно попробовать побыть в роли провайдера ликвидности на Uniswap, лучше начать с V2-пулов, поскольку там понести серьезные “непостоянные потери” можно только в случае серьезного изменения соотноешния цен (убедиться в этом можно, используя данный калькулятор).
Вместо единого для всех пар на Uniswap V2 значения комиссий 0,30%, Uniswap V3 добавил комисси двух новых “классов” – 0.05% и 1.00%.
Задумка этого нововведения в том, что провайдеры ликвидности теперь могут подбирать доходность в зависимости от ожидаемой волатильности (а следовательно и риска) пары: LP принимают на себя больший риск в некоррелированных парах, таких как ETH/DAI, и, наоборот, принимают минимальный риск в коррелированных парах, таких как USDC/DAI.
Безусловно, это неизбежно приводит к “фрагментации” ликвидности (теперь для каждой отдельной пары токенов теоритически может быть не 1, а 3 пула), но идея была в том, что рынок провайдеров со временем откалибрует эти пулы, исходя из риска нахождения в них. Команда протокола в описании V2 пишет: “Мы ожидаем, что закореллиованные пары (в первую очередь стейблкоиновые) будут концентрироваться вокруг уровня комиссии 0,05%, а “проверенные” пары с ETH (например ETH/DAI) – 0,30%, в то время как для “экзотических” активов (например ETH/UNIBOT) более подходящими могут оказаться комиссии свопа в 1,00%.
Вы не поверите, но ребята оказались совершенно правы — так все и произошло. Проблема «фрагментации» не оказала большого эффекта на эффективность пулов, при этом провайдеры ликвидности получили гибкий инструментарий. В общем, следует констатировать очередной успех дизайнеров протокола.
На данный момент протокол по-прежнему имеет львиную долю объемов в своем жанре DEXs, что подтверждается инфографикой по запросу Dune (данные приведены за последние 180 дней):
Uniswap V4. Wen? Soon
12 июня 2023 года Хайденом Адамсом была анонсирована следующая версия протокола – Uniswap V4.
И хотя о нем хочется рассказать также подробно, как и про уже реализованные версии, это по понятной причине, невозможно. Поэтому вы решили, что этому будущему обновлению мы также посвятим отдельную статью, когда соберем достаточное количество информации и сможем ее структурировать подобающим образом.
Заключение
Uniswap - это протокол с открытым кодом, созданный Хайденом Адамсом и ныне контролируемый DAO, который впервые позволил пользователям торговать активами на блокчейне вообще и на Ethereum в частности, не теряя на “спредах”, которые неибежно возникали в процессе обмена на существовавших в то децентрализованных биржах.
Uniswap удалось реализовать предложенный теоретиками новый менханизм автоматического маркет-мейкера, который обслуживается не книгой лимитных ордеров, требующих платы за создание, а новым примитивом – токен-пулами, работающих на основе смарт-конрактов и вознаграждающих пользователей за предоставление в них активов. Источником этой доходности являются комиссии трейдеров, уплачиваемые при совершении сделок.
Протокол за время своего существования ни разу не терял лидирующей позиции в созданной им области децентализованных бирж, был развернут на всех основных сетях, и в общем являет собой эталон DeFi-протокола, так как полностью соответствует основным требованием своей области:
- Наукоемкость. Историю Uniswap можно представить как историю доказательства научной гипотезы. Будучи доказанной, она легла в основу молодой науки и спровоцировала дальнейшие исследования. Более того, Uniswap представлял новые версии протокола, существенно расширяющие инструментарий для пользоваетелей за счет нетривиальных изобретений.
- Открытый код. Протокол не присваивает гипотезы, тем самым развивая DeFi в целом, а его механизм работы — полностью прозрачен, что не принуждает пользователя слепо ему доверять.
- Децентрализованная архитектура акторов. Трейдеры и провайдеры ликвидности действуют не сообща, у каждого из них свои собственные мотивы, но при этом никто из них не может действовать нечестно, так как Код — есть Закон (”Code is the Law”).
- Децентрализованная система управления. После того, как Хайден Адамс запустил рабочую версию протокола и убедился в том, что она устойчива, он передал контроль над Uniswap в DAO, а большую часть токенов управления получили ранние пользователи протокола.
- Безопасность. Смарт-контракты Uniswap за все время работы ни разу не был взломаны или использованы для атаки не протокол и потому используются другими протоколами-форками в своем ядре.
Материал подготовлен каналом @shitcoinresearch