Недавно я делаю обзор методов оценки трека DeFi. После изучения некоторых случаев Uniswap является типичным представителем с точки зрения влияния и итеративной логики.

Внутренняя логика перехода Uniswap от V1 к V4, а также запуска протокола UniswapX — это функциональные инновации и оптимизация механизма для транзакций DEX.

В версии 1 изначально реализован AMM в области шифрования, в версии 2 снижена подверженность риску ETH и запущен ценовой оракул, которым труднее манипулировать, в версии 3 решена проблема низкой эффективности капитала за счет централизованной ликвидности, в версии 4 реализована настраиваемая DEX, а протокол UniswapX был усилен за счет аукционный механизм. Конкурентоспособность сторонних агрегаторов позволяет оптимизировать проскальзывание цен.

История развития Uniswap

Нет необходимости вдаваться в подробности о статусе и влиянии Uniswap. Согласно данным Dune, Uniswap по-прежнему остается DEX с наибольшей долей рынка.

Будучи ведущей DEX, она не существует уже давно, но ее неоднократно повторяли. Давайте посмотрим на процесс разработки:

В июне 2017 года Виталик опубликовал статью «О пути независимости»;

В ноябре 2018 года был выпущен Uniswap V1: поддержка транзакций между ETH и ERC-20Token;

В марте 2020 года был выпущен Uniswap V2: поддержка транзакций между любыми двумя парами токенов ERC-20;

В мае 2021 года был выпущен Uniswap V3: улучшающий коэффициент использования средств LP и предлагающий концепцию агрегированной ликвидности;

В июне 2023 года был запущен Uniswap V4: введена настройка контракта Hooks для предотвращения утечки стоимости;

В июле 2023 года был запущен Uniswap X: агрегирование ончейн и оффчейн ликвидности, защита MEV.

Uniswap V1: попытка автоматического маркет-мейкинга

В 2017 году Виталик опубликовал на своей личной странице статью («О независимости пути»), в которой впервые представил автоматизированных маркет-мейкеров (AMM) в области шифрования, что является методом торговли, отличным от CEX. Конечно, этот подход уже давно обсуждается в некриптовалютных кругах (например, в традиционных финансовых кругах).

Мы знаем, что на фондовом рынке, рынке фьючерсов или существующей CEX большинство транзакций проводится в книге заказов (режим книги заказов). Маркет-мейкеры (такие как брокеры и централизованные биржи) сопоставляют заказы покупателей на покупку и заказы продавцов на продажу, когда цены совпадают, тем самым завершая транзакции между покупателями и продавцами.

Однако в случае децентрализации возникли проблемы. Причина в том, что в децентрализованной среде DEX (кто угодно может участвовать в создании рынка) трудно сопоставлять транзакции в режиме книги заказов, чтобы обеспечить соответствующую ликвидность и скорость транзакций. и Опыт относительно скудный, и без достаточной ликвидности трудно сравниться с операционной эффективностью CEX.

В этой статье Виталика на рынке шифрования представлена ​​новая концепция: автоматический маркет-мейкер.

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

TokenA и TokenB образуют постоянные продуктовые отношения:

tokenA_balance(p) *tokenB_balance(p)=K (K остается неизменным)

Это торговая система, ориентированная на ликвидность, которая называется «Маркет-мейкер постоянного продукта» (CPMM).

При таком подходе цена может быть задана путем определения любой (монотонной) связи между токенами A и токенами B и расчета их производных в любое время, образуя таким образом независимого от пути маркет-мейкера.

Три стороны: LP, трейдеры, арбитражеры.

В рыночном механизме АММ нет конкретного контрагента, аналогичного модели стакана заявок. Фактическая стоимость актива определяется по математической формуле постоянного продукта. В определенной степени его можно сравнить с контрагентом. это смарт-контракт, который может реализовать транзакцию с активом.

Кому-то необходимо предоставить ликвидность в смарт-контракте, и поставщиком ликвидности является LP (поставщик ликвидности). LP обеспечивает ликвидность для транзакций, вводя активы в смарт-контракты в пуле, получая тем самым доход от комиссий за транзакции. После того, как LP создаст первоначальный пул ликвидности, трейдеры смогут обменивать токены через пул, а арбитражеры возьмут на себя инициативу по поддержанию цен на активы в соответствии с рыночными ценами посредством ценового арбитража между различными рынками.

В Uniswap V1, выпущенном в ноябре 2018 года, все активы можно выкупить через ETH. Для транзакций между ETH и ERC-20Token любой может добавить токены для торговли с собственным ETH. ETH по сути является посредником в торговле активами.

Что произойдет в одном пуле, если мы захотим торговать?

Предположим, что один ETH в настоящее время стоит 100 TokenA, а пул ETH/TokenA состоит из 10 ETH и 1000 TokenA.

В настоящее время стоимость 10 ETH и 1000 TokenA равна 1000 долларов США, а соотношение стоимости активов составляет 1:1. k=10 *1000=10000, этот продукт остается неизменным без увеличения ликвидности.

Теперь предположим, что я хочу продать пулу 5 ETH, тогда должно быть:

у=10000/(10+5)=666,67,

Количество ETH в пуле увеличилось до 15, а количество USDC в это время стало 666,67, поэтому я обменял 5 ETH на 333,33 TokenA.

В настоящее время цена одного ETH в пуле составляет

666,67/15=44,44,

То есть один ETH равен 44,44 TokenA.

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

Непостоянные потери, токен LP, проскальзывание транзакции

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

Теперь, как LP, мы продолжим приводить пример:

Основная формула UniswapV1: x∗y=k

Теперь, как поставщик ликвидности, мы продолжаем добавлять в пул 10 ETH и 1000 TokenA в качестве начальной ликвидности. На данный момент 1 ETH равен 100 TokenA.

Постоянное произведение двух количеств активов составляет 10*1000=10000(x*y=10000,x=100y).

В это время, если цена 1 ETH увеличится до 200 TokenA,

Мы можем конвертировать:

х*у=10000,х=200y,

Таким образом, рассчитываются x=7,071 и y=1414,21.

В это время пул ликвидности изменился с первоначальных 10 ETH и 1000 TokenA на: 7,071 ETH и 1414,21 TokenA.

Нашли проблему?

В настоящее время, если я выкуплю все активы, я получу 7,071 ETH и 1414,21 TokenA. Фактическая стоимость, рассчитанная в TokenA, равна.

7,071*200+1414,21=2828,41,

А если рассчитать на основе первоначальных 10 ETH и 1000 TokenA, текущая цена должна быть

10*200+1000=3000TokenA.

Разница в этой части дохода (3000-2828,41=171,59TokenA) представляет собой непостоянный убыток.

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

Поскольку они действуют и как покупатели, и как продавцы, они вынуждены увеличивать сумму активов, которыми они владеют, когда цены падают, и уменьшать сумму активов, которыми они владеют, когда цены растут, что приводит к убыткам. Конечно, вы также можете выбрать хеджирование и управлять рисками, открывая короткие/длинные контракты на ETH.

Чтобы мотивировать пользователей выступать в качестве LP, обеспечивать ликвидность и поощрять их выдерживать волатильность цен, был создан токен LP. Это вознаграждение для поставщиков ликвидности, которые могут получить определенный процент от комиссии за обработку за каждую транзакцию (UniswapV1, трейдеры платят 0,3% за транзакцию, принадлежащую поставщику ликвидности). В то же время он также служит сертификатом для LP для вывода добавленной ликвидности.

Другая концепция — проскальзывание торговли, с которой наверняка знакомы друзья, которые часто занимаются торговлей на DEX. Будучи торговой системой, основанной на ликвидности, красивое уравнение постоянного продукта AMM представляет собой плавную кривую, а цена постоянно меняется в зависимости от соотношения между спросом и предложением.

Если вы торгуете большим количеством токенов в это время, произойдет проскальзывание, и будет определенная разница между вашей ожидаемой ценой и ценой, которую вы фактически получаете из пула. Другими словами, между желаемой ценой и ценой сделки возникнет разрыв.

Uniswap V2: адаптация, Oracle, мгновенный кредит

Uniswap V1 поддерживает транзакции только между торговыми парами ERC-20/ETH. По сути, он использует ETH в качестве переходной валюты для обмена между токенами ERC-20. Хотя путь транзакции прост, он создает риск ETH для поставщиков экспорта LP. , непостоянные потери и риски проскальзывания.

В Uniswap V2 он по-прежнему основан на механизме «постоянного маркет-мейкера продукта», но обновление V2 привело к повышению эффективности, в том числе: поддержка любых двух пар токенов ERC-20 для торговли, что означает, что может быть создан любой ERC20 — Пары ERC20 без необходимости сопряжения через переходный путь ETH.

Я не буду вдаваться в подробности по этому вопросу. Обновление V2 включает в себя множество аспектов, и еще два важных момента: улучшение ценового оракула и реализация срочных кредитов.

Улучшения в Price Oracle

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

Одной из целей обновления V2 является увеличение стоимости и сложности манипулирования ценами. В версии V1, предполагая, что другие контракты используют текущую цену ETH-DAI для расчета деривативов, злоумышленник, который манипулирует измеренной ценой, может купить ETH у пары ETH-DAI, инициировать расчет производного контракта по завышенной цене, а затем ETH. продается обратно паре, возвращая ее цену к ее истинной цене. В этом случае транзакции могут даже происходить в виде атомарных транзакций или с участием майнеров, контролирующих порядок транзакций внутри блока.

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

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

Точнее, в Uniswap V2 цена накапливается путем отслеживания совокупной суммы цены, когда кто-то взаимодействует с контрактом в начале каждого блока. На основе временной метки блока каждая цена взвешивается по количеству времени с момента обновления предыдущего блока. Это означает, что стоимость аккумулятора в любой момент времени (после обновления) должна быть суммой спотовых цен за каждую секунду истории контракта.

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

Реализуйте флэш-кредит

Флэш-кредит — это абсолютная инновация по сравнению с традиционными финансами. Ведь реальные транзакции нельзя откатить, как в блокчейне. Мгновенные кредиты на основе свопов были представлены в версии V2.

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

Фактически, это позволяет любому быстро предоставить в кредит любой актив, хранящийся в пуле Uniswap. В версии 1 пользователям не разрешено получать и использовать актив до оплаты за него. При использовании актива A для покупки актива B вам необходимо отправить актив A в контракт, прежде чем вы сможете получить актив B.

Есть и другие точки обновления: в том числе Uniswap V2, корректирующая новую структуру контрактов, использование простого двоичного формата с фиксированной запятой для кодирования и обработки цен (точность), обновление комиссий протокола, поддержка метатранзакций для выпущенных долей пула и т. д.

Uniswap V3: Повышение эффективности использования капитала

Предыстория: у Uniswap V2 проблемы с ликвидностью.

Согласно представлению о механизме AMM, приведенному выше, мы видим, что в V1 и V2 ликвидность пула фактически распределяется в области [0, +∞]. Другими словами, в пуле V2 разрешена любая цена. происходят транзакции (см. гладкую кривую обратной функции в постоянном продукте AMM).

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

Как вы понимаете, бессмысленно и расточительно предоставлять ликвидность по цене, настолько далекой от ценового диапазона, что цена никогда не достигнет этой точки.

концентрированная ликвидность

В данном случае, чтобы улучшить финансовую ликвидность, Uniswap V3 представил концепцию концентрированной ликвидности.

То есть: поставщики ликвидности (LP) могут свободно выбирать предоставление ликвидности в определенном ценовом диапазоне. Это может лучше обеспечивать ликвидность и работать в диапазоне высокой эффективности капитала, а также может использоваться в пулах активов с разной ценой. волатильность имеет разные конфигурации.

Любой небольшой ценовой диапазон V3 можно рассматривать как V2 в действии. Во время сделки цена будет плавно двигаться вдоль кривой. Когда цена достигнет определенного участка V2, она достигнет точки интервала цены V3. В это время цена скатится к следующему ценовому интервалу. .

Поняв вышеизложенную концепцию, мы можем познакомиться с новым термином — ядром V3 являются Ticks.

Тики, тики — это наименьшие дополнительные суммы, на которые можно торговать ценной бумагой. В V3 путем разделения ценового диапазона [0, +∞] на бесчисленное количество мелкозернистых тиков реализованы ограничения на верхнюю и нижнюю границы каждого диапазона. Ликвидность агрегируется посредством контроля детализации. Весь ценовой диапазон в V3 калибруется с помощью дискретных, равномерно распределенных тиков. Каждый тик имеет индекс и соответствующую цену, и каждый тик будет иметь свою собственную глубину ликвидности.

Математические принципы Uniswap V3 изменились, хотя они аналогичны базовому уровню V2:

L=xy под знаком корня

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

Я не буду вдаваться в подробности математических принципов. Ниже представлена ​​статья Атиса Элста о математических принципах V3. Заинтересованные друзья могут прочитать ее самостоятельно.

Uniswap V2 по-прежнему имеет стандартную комиссию за транзакцию в размере 0,3%, но в V3 из-за различной детализации предусмотрены три разных уровня комиссии, а именно 0,05%, 0,3% и 1%. В настоящее время LP могут сконцентрировать эффективность своего капитала в наиболее часто торгуемых диапазонах, чтобы получить максимальную прибыль.

Кроме того, V3 еще раз оптимизировал оракул на основе V2. Он больше не хранит только одну переменную накопления цен, а хранит набор переменных, что позволяет продлить срок службы данных, снизить плату за газ и сэкономить затраты.

Uniswap V4: настраиваемый DEX

Uniswap V4 основан на модели централизованной ликвидности Uniswap V3, что позволяет любому развернуть новый централизованный пул ликвидности с использованием пользовательских функций Uniswap, тем самым становясь эффективной и настраиваемой платформой DEX.

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

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

Крючки и пользовательские пулы

Хуки — это набор контрактов, разработанных третьими лицами или должностными лицами Uniswap. При создании пула пул может выбрать привязку крючка. Позже, на определенном этапе транзакции, пул автоматически вызовет привязанный к нему контракт. Контракт находится в стадии вызова ключевых точек жизненного цикла для реализации логики.

Другими словами, перехватчик — это развернутый извне контракт, который выполняет некоторую логику, определенную разработчиком, в назначенный момент выполнения пула. Эти крючки позволяют интеграторам создавать централизованные пулы ликвидности с гибким и настраиваемым исполнением. Хуки могут изменять параметры пула или добавлять новые функции и возможности.

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

В Uniswap v3 эти события жизненного цикла тесно связаны и выполняются в очень строгом порядке. Но чтобы создать пространство для настраиваемой ликвидности в Uniswap V4.

Контракт Hooks создает метод введения кода для развертывателей пула майнинга для выполнения определенных операций в ключевых точках жизненного цикла пула майнинга, например, до и после свопов или до и после изменения позиции LP.

Короче говоря, хуки — это плагины для настройки взаимодействия пулов, свопов, комиссий и позиций LP. С помощью контрактов хуков разработчики могут внедрять инновации в дополнение к ликвидности и безопасности протокола Uniswap путем интеграции со смарт-контрактами версии 4 для создания хуков. пользовательские пулы AMM.

Примеры функций, которые могут быть реализованы с помощью контрактов-перехватчиков, включают в себя:

Выполнение крупных заказов через TWAMM в течение определенного периода времени; Ордера с ограничением цен в сети, выполняемые по указанным ценам; Динамические комиссии, которые меняются в зависимости от волатильности; Внутренний механизм распределения MEV для поставщиков ликвидности.

Основная логика Uniswap V4 такая же, как и в V3, и не подлежит обновлению. Поскольку каждый пул теперь определяется не только слоем токенов и комиссий, на основе этого можно создать самые разнообразные пулы. И хотя каждый пул может использовать свой собственный смарт-контракт перехватчика, перехватчики ограничены определенными разрешениями, определяемыми при создании пула.

В V4 также есть некоторые архитектурные изменения, такие как Flash Accounting (мгновенная учетная запись), которые могут значительно снизить плату за газ. Эта функция включена в EIP-1153, который вводит «временное» хранилище, и будет реализована после обновления Cancun (Ethereum Cancun).

Кроме того, версия V4 также использует одноэлементный режим (сохраняет все состояния пула в одном контракте), молниеносный учет (обеспечивает платежеспособность пула), восстанавливает поддержку собственного ETH, поддерживает токены ERC-1155 и добавляет механизмы управления. Ожидайте улучшения.

UniswapX: усиление конкуренции

UniswapX — это новый протокол аукционов с открытым исходным кодом (GPL) для торговли через AMM и другие источники ликвидности. Протокол улучшит функциональность биржи во многих аспектах, в том числе: Повышение цен за счет объединения источников ликвидности. Безгазовые биржи для предотвращения MEV (максимальной стоимости добычи). Сбои транзакций. Никаких комиссий. В ближайшие месяцы UniswapX расширится до безгазовых кросс-чейновых бирж. .

Агрегация следующего уровня Агрегация следующего поколения

Предыстория: внутрисетевые транзакции продолжают обновляться, что приводит к увеличению пулов ликвидности, а новые уровни комиссий, L2 и другие внутрисетевые протоколы также будут рассеивать ликвидность. Решение: UniswapX стремится решить эту проблему с помощью открытой сети, которая передает сложность маршрутизации третьим сторонам, которым необходимо конкурировать за выполнение транзакций с использованием внутрицепной ликвидности, такой как пулы AMM или их собственные частные запасы.

С UniswapX трейдеры смогут использовать интерфейс Uniswap, не беспокоясь о том, получают ли они лучшую цену. Транзакции трейдеров всегда будут прозрачно записываться и рассчитываться в цепочке. Все заказы обрабатываются с помощью Uniswap Smart Order Router, который заставляет третьи стороны конкурировать с Uniswap V1, V2, V3 и, после запуска, V4.

По сути, UniswapX усиливает механизм конкуренции и оптимизирует проскальзывание цен каждого пула активов за счет выбора сторонней маршрутизации.

Кроме того, UniswapX также предпринял новую попытку: транзакции без газа, никаких комиссий в случае неудачи. Трейдер подписывает уникальный ордер вне сети, который затем отправляется в сеть третьей стороной, которая платит газ от имени трейдера. Третья сторона включает комиссию за газ в цену транзакции, но может конкурировать за лучшую цену. выполнение нескольких заказов в пакетном режиме и снижение транзакционных издержек. Защита MEV возвращает трейдерам MEV, первоначально полученную в результате арбитражных транзакций, по более выгодной цене.

UniswapX помогает пользователям избегать более явных форм вывода MEV: заказы, выполненные с использованием сторонних частных активов, не могут быть «зажаты», а третьи стороны заинтересованы в использовании частных ретрансляторов транзакций при маршрутизации заказов в пулы ликвидности в цепочке. Предстоящая кросс-чейн версия UniswapX объединит обмен и мост в одну бесшовную операцию. Используя кросс-чейн UniswapX, своперы смогут переключаться между цепочками за считанные секунды и с нетерпением ждут своего прогресса.

Основная тема Uniswap: итерация

Внутренняя логика перехода Uniswap от V1 к V4, а также запуск протокола UniswapX является функциональной инновацией DEX (AMM).

В версии 1 изначально был реализован AMM в области шифрования, в версии 2 снижена подверженность риску ETH и запущен ценовой оракул, которым труднее манипулировать, в версии 3 решена проблема низкой эффективности капитала за счет централизованной ликвидности, в версии 4 реализована настраиваемая DEX, а протокол UniswapX был усилен за счет аукционный механизм. Конкурентоспособность сторонних агрегаторов позволяет оптимизировать проскальзывание цен.

Мы видим, что Uniswap внедряет инновации на каждом этапе пути: снижает стоимость заимствований, оптимизирует взаимодействие с пользователем, повышает осведомленность о конкуренции и внедряет новые технологии. Это итеративное обновление является основой для хорошего протокола, который будет работать вечно.