Недавно я делаю обзор методов оценки трека DeFi. Изучив некоторые случаи, Uniswap является типичным представителем в плане влияния и итеративной логики. В этой статье проводится всесторонний обзор Uniswap.
Внутренняя логика итерации Uniswap с V1 по V4, а также запуск протокола UniswapX, представляют собой функциональную инновацию и оптимизацию механизма для транзакций на DEX.
V1 изначально реализовал AMM в области шифрования, V2 сократил риск экспозиции к ETH и запустил ценовой оракул, который сложнее манипулировать, V3 решил проблему низкой капиталоемкости через централизованную ликвидность, V4 реализовал настраиваемую DEX, и протокол UniswapX был укреплен через механизм аукциона. Конкурентоспособность сторонних агрегаторов позволяет оптимизировать проскальзывание цены.
Нет необходимости вдаваться в подробности о статусе и влиянии Uniswap. Согласно данным в реальном времени Dune, Uniswap по-прежнему является DEX с наибольшей долей рынка.
Как ведущий DEX, он существует не так давно, но прошел множество итераций. Давайте посмотрим на процесс развития:
В июне 2017 года Виталик опубликовал статью On Path Independence;
В ноябре 2018 года был выпущен Uniswap V1: поддержка транзакций между ETH и ERC-20Token;
В марте 2020 года был выпущен Uniswap V2: поддержка транзакций между любыми двумя парами токенов ERC-20;
В мае 2021 года был выпущен Uniswap V3: улучшение уровня использования средств LP и предложение концепции агрегированной ликвидности;
В июне 2023 года был запущен Uniswap V4: была введена настройка контракта Hooks для предотвращения утечки стоимости;
В июле 2023 года был запущен Uniswap X: агрегирующий ликвидность на цепи и вне цепи, защита MEV.
В 2017 году Виталик опубликовал статью "О независимости пути" на своей личной веб-странице, в которой впервые был представлен автоматический рыночный создатель (AMM) в области шифрования, который является методом торговли, отличным от CEX. Конечно, этот подход давно обсуждается вне криптокругов (например, в традиционных финансовых кругах).
Мы знаем, что на фондовом рынке, рынке фьючерсов или существующих Централизованных Биржах (CEX) большинство сделок проводится в стакане ордеров (режим стакана ордеров). Рыночные организаторы (такие как брокеры и централизованные биржи) сопоставляют ордера на покупку покупателей и ордера на продажу продавцов, когда цены совпадают, тем самым завершая сделки между покупателями и продавцами.
Однако возникли проблемы в случае децентрализации. Причина в том, что в децентрализованной среде DEX (любой может участвовать в создании рынка) сложно сопоставить транзакции в режиме ордерного стакана для обеспечения соответствующей ликвидности, скорости транзакций и Опыт относительно плохой, и без достаточной ликвидности сложно сопоставить операционную эффективность CEX.
В этой статье Виталика представлена новая концепция на рынке шифрования: Автоматический Маркет Мейкер. В этой концепции ценообразование активов осуществляется с помощью ценовых алгоритмов, а не через традиционную модель ордер-бука.
В модели AMM нет необходимости в котировках маркет-мейкеров или системном сопоставлении, и трейдеры могут напрямую использовать ликвидность в пуле для осуществления обмена активами.
ТокенA и токенB образуют постоянное отношение продукта: баланс токенаA(p) * баланс токенаB(p) = K (K остается неизменным)
Это торговая система, основанная на ликвидности, эту модель называют Constant Product Market Maker (CPMM). При этом подходе можно сформировать независимого от пути маркетмейкера, определив (монотонное) отношение между токеном A и токеном B и вычислив его производные в любое время, чтобы получить цену.
В механизме создания рынка AMM нет конкретного контрагента, аналогичного модели ордер-бука. Фактическая стоимость актива определяется математической формулой постоянного продукта. В определенной степени его можно сравнить с контрагентом, который является смарт-контрактом и может реализовать автоматизированную торговлю активами.
Кто-то должен обеспечить ликвидность в умном контракте, а поставщик ликвидности является LP (Поставщик Ликвидности). LP обеспечивает ликвидность для транзакций, внедряя активы в умные контракты в пуле, тем самым получая доход от комиссий за транзакции.
После того, как LP создаст первичный пул ликвидности, трейдеры могут обменивать токены через пул, арбитражеры возьмут на себя инициативу поддерживать цены на активы согласованными с рыночными ценами через ценовой арбитраж между различными рынками.
В Uniswap V1, выпущенном в ноябре 2018 года, все активы могут быть погашены через ETH. Для транзакций между ETH и ERC-20Token любой может добавить токены для торговли с местным ETH. ETH в основном является посредником в торговле активами.
Предположим, что один ETH в настоящее время стоит 100TokenA, и пул ETH/TokenA состоит из 10 ETH и 1000 TokenA.
В настоящее время стоимость 10 ETH и 1 000 TokenA такая же, как 1 000 долларов США, и соотношение стоимости активов 1:1.
k=10 *1000=10000, этот продукт остается неизменным без добавления дополнительной ликвидности.
Предположим, я хочу продать 5 ETH в пул, тогда это должно быть:
y=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, мы продолжим давать пример:
Основная формула UniswapV1: x∗y=k
Теперь, как поставщик ликвидности, мы продолжаем добавлять 10 ETH и 1000 TokenA в пул в качестве начальной ликвидности. В это время 1 ETH равен 100 TokenA, и постоянное произведение двух количеств активов равно 101000=10000( xy=10000,x=100y).
На данный момент, если цена 1 ETH увеличивается до 200 TokenA, мы можем конвертировать: x*y=10000, x=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.071200+1414.21=2828.41. Если рассчитать на основе начальных 10 ETH и 1000 TokenA, текущая цена должна быть 10200+1000=3000TokenA.
Разница в этой части дохода (3000-2828.41=171.59ТокенA) является неустойчивой потерей。
Потери из-за нестабильности происходят из-за механизма автоматического создателя рынка децентрализованных бирж, поставщики ликвидности корректируют средства на основе колебаний цен, что приводит к потере основных средств и упущенной прибыли.
Поскольку они выступают как покупатели, так и продавцы, они вынуждены увеличивать количество активов, которые они удерживают, когда цены падают, и уменьшать количество активов, которые они удерживают, когда цены растут, что приводит к убыткам.
Конечно, вы также можете выбрать хеджирование и управлять рисками, открывая короткие/длинные контракты на ETH.
Для того чтобы мотивировать пользователей выступать в качестве LP и обеспечивать ликвидность, а также поощрять их нести ценовую волатильность, создан токен LP. Это вознаграждение для поставщиков ликвидности, которые могут получить определенный процент комиссии за каждую транзакцию (UniswapV1, трейдеры оплачивают 0,3% за транзакцию, которая принадлежит поставщику ликвидности). В то же время он также служит сертификатом для LP для снятия добавленной им самим ликвидности.
Еще одно понятие - это проскальзывание торговли, друзья, которые часто занимаются торговлей на DEX, определенно будут с ним знакомы. Как система торговли, управляемая ликвидностью, красивое уравнение постоянного продукта AMM - это плавная кривая, и цена постоянно изменяется в соответствии с отношением между спросом и предложением.
Если вы торгуете большим количеством токенов в данный момент, произойдет проскальзывание, и будет определенное различие между вашей ожидаемой ценой и ценой, которую вы фактически получите от пула. Другими словами, между желаемой вами ценой и ценой сделки будет разрыв.
Uniswap V1 поддерживает только транзакции между торговыми парами ERC-20/ETH. По сути, он использует ETH в качестве промежуточной валюты для обмена между токенами ERC-20. Хотя путь транзакции прост, он создает риски экспозиции ETH для поставщиков ликвидности. Риски экспорта, неустойчивых потерь и проскальзывания.
В Uniswap V2 все еще основан на механизме "постоянного продукта рыночного создателя", но обновление V2 принесло улучшение эффективности, включая: поддержку любых двух пар токенов ERC-20 для торговли, что означает, что любой токен ERC20 может быть создан - пары ERC20 без необходимости пары через путь перехода ETH.
Я не буду вдаваться в подробности по этому вопросу. Обновление V2 включает в себя множество аспектов. Есть еще два важных момента: улучшение price.Oracle, выполнение flash loan.
В процессе Uniswap V1 цена, рассчитанная путем деления резервных фондов двух активов в пуле, не является безопасной для использования в качестве прогноза цены на цепи, поскольку ее легко можно манипулировать.
Одной из целей этого обновления V2 является увеличение затрат и сложности манипулирования ценами。
В версии V1, предполагая, что другие контракты используют текущую цену ETH-DAI для расчета деривативов, злоумышленник, манипулирующий измеренной ценой, может купить ETH от пары ETH-DAI, вызвать расчет деривативного контракта по завышенной цене, а затем ETH будет продана обратно в пару, вернув ее торговлю к ее истинной цене. В этом случае транзакции могут происходить даже как атомарные транзакции или с контролирующими порядок транзакций майнерами в пределах блока.
В V2, чтобы определить равновесие рыночной цены, цена обновляется один раз за блок, и цена обмена токенов определяется перед следующим блоком, то есть цена рынка токенов основана на последней сделке в предыдущем блоке.
В этом обновлении также предоставляются новые данные для прогнозирования цен: средневзвешенная цена по времени TWAP. Накопление относительных цен двух активов в начале каждого блока позволяет другим контрактам на Ethereum оценивать средневзвешенную цену двух активов за любой временной интервал.
Более конкретно, в Uniswap V2 цена накапливается путем отслеживания накопленной суммы цены при взаимодействии кого-либо с контрактом в начале каждого блока. Исходя из отметки времени блока, каждая цена взвешивается с учетом времени с момента последнего обновления предыдущего блока. Это означает, что значение аккумулятора в любой момент времени (после обновления) должно быть суммой текущих цен за каждую секунду в истории контракта.
Пользователи оракула могут выбирать момент начала и окончания этого периода, стоимость для злоумышленников для манипулирования TWAP будет выше, и цена относительно сложно поддается манипуляциям.
Флеш-кредит - абсолютное новшество по сравнению с традиционной финансовой системой. Ведь реальные транзакции нельзя откатить, как на блокчейне.
Flash Swaps введены в V2. Пользователи могут безвозмездно предоставлять активы в пул и использовать их в других местах на цепи, вернув активы и уплатив соответствующие проценты в конце транзакции (оплата в той же атомарной транзакции). Если деньги не вернутся в обычном режиме, тогда транзакция будет отменена.
На самом деле, это позволяет любому человеку быстро одалживать любой актив, хранящийся в пуле Uniswap. В версии 1 пользователям не разрешается получать и использовать актив, пока они не заплатят за него. При использовании актива A для покупки актива B актив A должен быть отправлен в контракт, прежде чем можно будет получить актив B.
Есть и другие обновленные моменты: включая Uniswap V2, который имеет отрегулированную новую контрактную структуру, используя простой двоичный фиксированный формат для кодирования и обработки цен (точность), обновление комиссий протокола и поддержка мета-транзакций для выпущенных долей пула и т. д.
Фон: У Uniswap V2 есть проблемы с ликвидностью. Согласно вышеуказанному введению в механизм AMM, мы видим, что на V1 и V2 ликвидность пула фактически распределяется в области [0, +∞]. Другими словами, в пуле V2 разрешены любые цены. транзакции происходят (см. обратную гладкую кривую функции в постоянном продукте AMM).
На первый взгляд это кажется хорошей вещью. Диапазон торгов очень широкий, но на самом деле спрос на торговые пары с разной волатильностью в их ценовых диапазонах не такой велики, что приводит к серьезному дефициту ликвидности за исключением некоторых диапазонов торговли, низкая утилизация активов.
Как вы можете себе представить, бесполезно и расточительно предоставлять ликвидность по цене, находящейся настолько далеко от ценового диапазона, что цена может никогда не достичь этой точки.
В данном случае, чтобы улучшить финансовую ликвидность, Uniswap V3 ввел концепцию концентрированной ликвидности. То есть:
Поставщики ликвидности (LP) вправе выбирать обеспечение ликвидности в определенном ценовом диапазоне, что способствует повышению ликвидности и обеспечивает работу в высокоэффективном капитале. В то же время в терминах применения также можно осуществлять различные конфигурации для активов с разной волатильностью цен.
Каждый небольшой ценовой диапазон в V3 можно понимать как работу V2. Во время транзакции цена будет плавно двигаться по кривой. Когда цена достигнет определенного участка V2, она достигнет интервальной точки ценового интервала V3. В этот момент ценовая точка сдвинется на следующий ценовой интервал.
После понимания вышеуказанной концепции мы можем познакомиться с новыми существительными - ядром V3 являются тики.
Тики, тики — это наименьшие приращения, которыми можно торговать ценной бумагой. В V3 путем деления ценового диапазона [0, +∞] на бесчисленное количество мелкозернистых тиков реализованы ограничения на верхнюю и нижнюю границы каждого диапазона.
Ликвидность агрегируется через контроль гранулярности. Весь ценовой диапазон в V3 калибруется дискретными, равномерно распределенными Тиками. У каждого Тика есть индекс и соответствующая цена, и у каждого Тика будет своя собственная глубина ликвидности.
Математические принципы Uniswap V3 изменились, хотя они похожи на базовый уровень V2:
L=xy под корнем
L называется объемом ликвидности, а ликвидность в пуле представляет собой комбинацию двух количеств активов Token. Точно так же, произведение количеств двух токенов равно K, но поскольку у каждого Тика разная глубина ликвидности, эквивалентные формулы для разных глубин больше не совпадают.
Я не буду вдаваться в детали математических принципов. Ниже приведена статья Атиса Эльстса о математических принципах V3. Интересующиеся друзья могут прочитать ее сами.
В Uniswap V2 по-прежнему действует стандартная комиссия за транзакцию в размере 0,3%, в то время как в Uniswap V2V3 предусмотрено 3 разных уровня комиссий из-за различий в детализации - 0,05%, 0,3% и 1% соответственно. В это время LPs могут сосредоточить свою капитальную эффективность в наиболее часто торгуемых диапазонах, чтобы получить максимальную отдачу.
Кроме того, V3 еще раз оптимизировал оракул на основе V2. Теперь он больше не хранит только одну переменную накопления цены, а хранит набор переменных, что может увеличить срок службы данных, снизить комиссию за газ и сэкономить затраты.
Uniswap V4 основана на централизованной модели ликвидности Uniswap V3, позволяет любому развертывать новые централизованные пулы ликвидности на Uniswap с настраиваемой функциональностью, тем самым становясь эффективной и настраиваемой платформой DEX.
В V4 основной момент - контракт Hooks, цель - позволить каждому принимать эти компромисные решения путем введения "hooks".
Для каждого пула создатель может определить "Контракт Hooks", который выполняет логику на ключевых этапах жизненного цикла вызова. Эти Hooks также управляют комиссиями обмена пула и комиссиями вывода, взимаемыми с поставщиков ликвидности.
Хуки - это набор контрактов, разработанных третьими сторонами или официальными представителями Uniswap. При создании пула пул может выбрать привязать хук. Затем на определенном этапе транзакции пул автоматически вызовет привязанный к нему контракт хука. Контракт на ключевых точках в жизненном цикле вызывается, чтобы реализовать логику.
Другими словами, крюк - это внешний развернутый контракт, который выполняет определенную логику, заданную разработчиком, в указанной точке выполнения пула. Эти крючки позволяют интеграторам создавать централизованные пулы ликвидности с гибким и настраиваемым выполнением. Крючки могут изменять параметры пула или добавлять новые функции и возможности.
У каждого пула ликвидности Uniswap есть жизненный цикл: во время жизненного цикла пула ликвидности происходит несколько вещей, включая: создание пула с тарифом комиссии по умолчанию, добавление, удаление или перенастройка ликвидности, а также возможность обмена токенов и т. д. В Uniswap v3 эти события жизненного цикла тесно связаны и выполняются в строгом порядке.
Но чтобы создать пространство для настраиваемой ликвидности в Uniswap V4. Контракт Hooks создает метод введения кода для добывающих пулов, чтобы выполнять определенные операции в ключевые моменты жизненного цикла добывающего пула, такие как до и после обменов или до и после изменений позиции LP.
В двух словах, Хуки - это плагины для настройки того, как взаимодействуют пулы, свопы, комиссии и позиции LP, через контракты хукс. Разработчики могут инновировать поверх ликвидности и безопасности протокола Uniswap, создавая пользовательские AMM-пулы через хуки, интегрированные с умными контрактами v4.
Примеры функциональности, которую можно реализовать с помощью хук-контрактов, включают:
Основная логика Uniswap V4 такая же, как у V3, и не подлежит обновлению. Поскольку каждый пул для майнинга теперь определяется не только токенами и уровнями комиссий, из этого может быть создано несколько различных пулов для майнинга. И хотя каждый пул может использовать свой собственный смарт-контракт-хук, хуки ограничены определенными разрешениями, установленными при создании пула.
В V4 также есть некоторые архитектурные изменения, такие как мгновенное учетное хранение (мгновенный счет), которое может значительно снизить комиссии за газ. Эта функция включена в EIP-1153, которая вводит "временное" хранилище и будет реализована после обновления Канкун (Ethereum Cancun).
Кроме того, версия V4 также использует режим синглтона (сохраняет все состояния пула в одном контракте), мгновенное учета (обеспечивает платежеспособность пула), восстанавливает поддержку родного ETH, поддерживает токены ERC-1155 и добавляет механизмы управления для улучшения.
UniswapX - это новый протокол на основе аукционов с открытым исходным кодом (GPL) без разрешений для торговли через AMM и другие источники ликвидности.
Протокол улучшит функциональность обмена в нескольких областях, включая:
Фон: Ончейн-транзакции продолжают инновации, что приводит к размножению пулов ликвидности и новым уровням комиссий, L2 и другие ончейн-протоколы также распределят ликвидность.
Решение: UniswapX стремится решить эту проблему через открытую сеть, которая передает сложность маршрутизации сторонним сторонам, которые должны конкурировать за заполнение транзакций с использованием ликвидности on-chain, такой как пулы AMM или их собственные частные запасы.
С UniswapX трейдеры смогут использовать интерфейс Uniswap, не беспокоясь о том, получают ли они лучшую цену. Транзакции трейдеров всегда будут прозрачно записаны и завершены on-chain. Все ордера работают на Uniswap Smart Order Router, который заставляет сторонние компании конкурировать с Uniswap V1, V2, V3 и, по запуску, V4.
В основном, UniswapX укрепляет механизм конкуренции и оптимизирует проскальзывание цен каждого активного пула через выбор маршрутизации сторонних сторон.
Кроме того, UniswapX также запустил новые попытки:
Без транзакций по газу, нет оплаты за неудачу. Трейдер подписывает уникальный оффчейн ордер, который затем подается ончейн третьей стороной, которая оплачивает газ от имени трейдера. Третья сторона включает комиссию за газ в цену транзакции, но может конкурировать за лучшую цену, выполняя несколько заказов пакетами и снижая транзакционные издержки.
Защита MEV, возвращение MEV, изначально полученного через арбитражную торговлю, трейдерам по более выгодной цене. UniswapX помогает пользователям избежать более явных форм вывода MEV: ордера, исполненные с использованием частных активов сторонних лиц, не могут быть "заключены между", и сторонние лица стимулируются использовать частные транзакционные ретрансляторы при маршрутизации ордеров к ончейн-ликвидности пулов.
Предстоящая межцепочная версия UniswapX объединит свопинг и мосты в одну непрерывную операцию. Используя межцепочный UniswapX, свопперы смогут мгновенно переключаться между цепями и с нетерпением будут ждать своего прогресса.
Внутренняя логика итерации Uniswap с V1 по V4, а также запуск протокола UniswapX является функциональным инновационным DEX (AMM).
V1 изначально реализовал AMM в области шифрования, V2 снизил риск для ETH и запустил ценовой оракул, который сложнее манипулировать, V3 решил проблему низкой эффективности капитала через централизованную ликвидность, V4 реализовал настраиваемую DEX, и протокол UniswapX был укреплен за счет механизма аукциона. Конкурентоспособность сторонних агрегаторов позволяет оптимизировать проскальзывание цен.
Мы видим, что Uniswap совершенствует себя на каждом этапе - снижая затраты на заем, оптимизируя пользовательский опыт, укрепляя осведомленность о конкуренции и внедряя новые технологии. Этот итеративный апгрейд является основой для того, чтобы хороший протокол просуществовал навсегда.
Недавно я делаю обзор методов оценки трека DeFi. Изучив некоторые случаи, Uniswap является типичным представителем в плане влияния и итеративной логики. В этой статье проводится всесторонний обзор Uniswap.
Внутренняя логика итерации Uniswap с V1 по V4, а также запуск протокола UniswapX, представляют собой функциональную инновацию и оптимизацию механизма для транзакций на DEX.
V1 изначально реализовал AMM в области шифрования, V2 сократил риск экспозиции к ETH и запустил ценовой оракул, который сложнее манипулировать, V3 решил проблему низкой капиталоемкости через централизованную ликвидность, V4 реализовал настраиваемую DEX, и протокол UniswapX был укреплен через механизм аукциона. Конкурентоспособность сторонних агрегаторов позволяет оптимизировать проскальзывание цены.
Нет необходимости вдаваться в подробности о статусе и влиянии Uniswap. Согласно данным в реальном времени Dune, Uniswap по-прежнему является DEX с наибольшей долей рынка.
Как ведущий DEX, он существует не так давно, но прошел множество итераций. Давайте посмотрим на процесс развития:
В июне 2017 года Виталик опубликовал статью On Path Independence;
В ноябре 2018 года был выпущен Uniswap V1: поддержка транзакций между ETH и ERC-20Token;
В марте 2020 года был выпущен Uniswap V2: поддержка транзакций между любыми двумя парами токенов ERC-20;
В мае 2021 года был выпущен Uniswap V3: улучшение уровня использования средств LP и предложение концепции агрегированной ликвидности;
В июне 2023 года был запущен Uniswap V4: была введена настройка контракта Hooks для предотвращения утечки стоимости;
В июле 2023 года был запущен Uniswap X: агрегирующий ликвидность на цепи и вне цепи, защита MEV.
В 2017 году Виталик опубликовал статью "О независимости пути" на своей личной веб-странице, в которой впервые был представлен автоматический рыночный создатель (AMM) в области шифрования, который является методом торговли, отличным от CEX. Конечно, этот подход давно обсуждается вне криптокругов (например, в традиционных финансовых кругах).
Мы знаем, что на фондовом рынке, рынке фьючерсов или существующих Централизованных Биржах (CEX) большинство сделок проводится в стакане ордеров (режим стакана ордеров). Рыночные организаторы (такие как брокеры и централизованные биржи) сопоставляют ордера на покупку покупателей и ордера на продажу продавцов, когда цены совпадают, тем самым завершая сделки между покупателями и продавцами.
Однако возникли проблемы в случае децентрализации. Причина в том, что в децентрализованной среде DEX (любой может участвовать в создании рынка) сложно сопоставить транзакции в режиме ордерного стакана для обеспечения соответствующей ликвидности, скорости транзакций и Опыт относительно плохой, и без достаточной ликвидности сложно сопоставить операционную эффективность CEX.
В этой статье Виталика представлена новая концепция на рынке шифрования: Автоматический Маркет Мейкер. В этой концепции ценообразование активов осуществляется с помощью ценовых алгоритмов, а не через традиционную модель ордер-бука.
В модели AMM нет необходимости в котировках маркет-мейкеров или системном сопоставлении, и трейдеры могут напрямую использовать ликвидность в пуле для осуществления обмена активами.
ТокенA и токенB образуют постоянное отношение продукта: баланс токенаA(p) * баланс токенаB(p) = K (K остается неизменным)
Это торговая система, основанная на ликвидности, эту модель называют Constant Product Market Maker (CPMM). При этом подходе можно сформировать независимого от пути маркетмейкера, определив (монотонное) отношение между токеном A и токеном B и вычислив его производные в любое время, чтобы получить цену.
В механизме создания рынка AMM нет конкретного контрагента, аналогичного модели ордер-бука. Фактическая стоимость актива определяется математической формулой постоянного продукта. В определенной степени его можно сравнить с контрагентом, который является смарт-контрактом и может реализовать автоматизированную торговлю активами.
Кто-то должен обеспечить ликвидность в умном контракте, а поставщик ликвидности является LP (Поставщик Ликвидности). LP обеспечивает ликвидность для транзакций, внедряя активы в умные контракты в пуле, тем самым получая доход от комиссий за транзакции.
После того, как LP создаст первичный пул ликвидности, трейдеры могут обменивать токены через пул, арбитражеры возьмут на себя инициативу поддерживать цены на активы согласованными с рыночными ценами через ценовой арбитраж между различными рынками.
В Uniswap V1, выпущенном в ноябре 2018 года, все активы могут быть погашены через ETH. Для транзакций между ETH и ERC-20Token любой может добавить токены для торговли с местным ETH. ETH в основном является посредником в торговле активами.
Предположим, что один ETH в настоящее время стоит 100TokenA, и пул ETH/TokenA состоит из 10 ETH и 1000 TokenA.
В настоящее время стоимость 10 ETH и 1 000 TokenA такая же, как 1 000 долларов США, и соотношение стоимости активов 1:1.
k=10 *1000=10000, этот продукт остается неизменным без добавления дополнительной ликвидности.
Предположим, я хочу продать 5 ETH в пул, тогда это должно быть:
y=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, мы продолжим давать пример:
Основная формула UniswapV1: x∗y=k
Теперь, как поставщик ликвидности, мы продолжаем добавлять 10 ETH и 1000 TokenA в пул в качестве начальной ликвидности. В это время 1 ETH равен 100 TokenA, и постоянное произведение двух количеств активов равно 101000=10000( xy=10000,x=100y).
На данный момент, если цена 1 ETH увеличивается до 200 TokenA, мы можем конвертировать: x*y=10000, x=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.071200+1414.21=2828.41. Если рассчитать на основе начальных 10 ETH и 1000 TokenA, текущая цена должна быть 10200+1000=3000TokenA.
Разница в этой части дохода (3000-2828.41=171.59ТокенA) является неустойчивой потерей。
Потери из-за нестабильности происходят из-за механизма автоматического создателя рынка децентрализованных бирж, поставщики ликвидности корректируют средства на основе колебаний цен, что приводит к потере основных средств и упущенной прибыли.
Поскольку они выступают как покупатели, так и продавцы, они вынуждены увеличивать количество активов, которые они удерживают, когда цены падают, и уменьшать количество активов, которые они удерживают, когда цены растут, что приводит к убыткам.
Конечно, вы также можете выбрать хеджирование и управлять рисками, открывая короткие/длинные контракты на ETH.
Для того чтобы мотивировать пользователей выступать в качестве LP и обеспечивать ликвидность, а также поощрять их нести ценовую волатильность, создан токен LP. Это вознаграждение для поставщиков ликвидности, которые могут получить определенный процент комиссии за каждую транзакцию (UniswapV1, трейдеры оплачивают 0,3% за транзакцию, которая принадлежит поставщику ликвидности). В то же время он также служит сертификатом для LP для снятия добавленной им самим ликвидности.
Еще одно понятие - это проскальзывание торговли, друзья, которые часто занимаются торговлей на DEX, определенно будут с ним знакомы. Как система торговли, управляемая ликвидностью, красивое уравнение постоянного продукта AMM - это плавная кривая, и цена постоянно изменяется в соответствии с отношением между спросом и предложением.
Если вы торгуете большим количеством токенов в данный момент, произойдет проскальзывание, и будет определенное различие между вашей ожидаемой ценой и ценой, которую вы фактически получите от пула. Другими словами, между желаемой вами ценой и ценой сделки будет разрыв.
Uniswap V1 поддерживает только транзакции между торговыми парами ERC-20/ETH. По сути, он использует ETH в качестве промежуточной валюты для обмена между токенами ERC-20. Хотя путь транзакции прост, он создает риски экспозиции ETH для поставщиков ликвидности. Риски экспорта, неустойчивых потерь и проскальзывания.
В Uniswap V2 все еще основан на механизме "постоянного продукта рыночного создателя", но обновление V2 принесло улучшение эффективности, включая: поддержку любых двух пар токенов ERC-20 для торговли, что означает, что любой токен ERC20 может быть создан - пары ERC20 без необходимости пары через путь перехода ETH.
Я не буду вдаваться в подробности по этому вопросу. Обновление V2 включает в себя множество аспектов. Есть еще два важных момента: улучшение price.Oracle, выполнение flash loan.
В процессе Uniswap V1 цена, рассчитанная путем деления резервных фондов двух активов в пуле, не является безопасной для использования в качестве прогноза цены на цепи, поскольку ее легко можно манипулировать.
Одной из целей этого обновления V2 является увеличение затрат и сложности манипулирования ценами。
В версии V1, предполагая, что другие контракты используют текущую цену ETH-DAI для расчета деривативов, злоумышленник, манипулирующий измеренной ценой, может купить ETH от пары ETH-DAI, вызвать расчет деривативного контракта по завышенной цене, а затем ETH будет продана обратно в пару, вернув ее торговлю к ее истинной цене. В этом случае транзакции могут происходить даже как атомарные транзакции или с контролирующими порядок транзакций майнерами в пределах блока.
В V2, чтобы определить равновесие рыночной цены, цена обновляется один раз за блок, и цена обмена токенов определяется перед следующим блоком, то есть цена рынка токенов основана на последней сделке в предыдущем блоке.
В этом обновлении также предоставляются новые данные для прогнозирования цен: средневзвешенная цена по времени TWAP. Накопление относительных цен двух активов в начале каждого блока позволяет другим контрактам на Ethereum оценивать средневзвешенную цену двух активов за любой временной интервал.
Более конкретно, в Uniswap V2 цена накапливается путем отслеживания накопленной суммы цены при взаимодействии кого-либо с контрактом в начале каждого блока. Исходя из отметки времени блока, каждая цена взвешивается с учетом времени с момента последнего обновления предыдущего блока. Это означает, что значение аккумулятора в любой момент времени (после обновления) должно быть суммой текущих цен за каждую секунду в истории контракта.
Пользователи оракула могут выбирать момент начала и окончания этого периода, стоимость для злоумышленников для манипулирования TWAP будет выше, и цена относительно сложно поддается манипуляциям.
Флеш-кредит - абсолютное новшество по сравнению с традиционной финансовой системой. Ведь реальные транзакции нельзя откатить, как на блокчейне.
Flash Swaps введены в V2. Пользователи могут безвозмездно предоставлять активы в пул и использовать их в других местах на цепи, вернув активы и уплатив соответствующие проценты в конце транзакции (оплата в той же атомарной транзакции). Если деньги не вернутся в обычном режиме, тогда транзакция будет отменена.
На самом деле, это позволяет любому человеку быстро одалживать любой актив, хранящийся в пуле Uniswap. В версии 1 пользователям не разрешается получать и использовать актив, пока они не заплатят за него. При использовании актива A для покупки актива B актив A должен быть отправлен в контракт, прежде чем можно будет получить актив B.
Есть и другие обновленные моменты: включая Uniswap V2, который имеет отрегулированную новую контрактную структуру, используя простой двоичный фиксированный формат для кодирования и обработки цен (точность), обновление комиссий протокола и поддержка мета-транзакций для выпущенных долей пула и т. д.
Фон: У Uniswap V2 есть проблемы с ликвидностью. Согласно вышеуказанному введению в механизм AMM, мы видим, что на V1 и V2 ликвидность пула фактически распределяется в области [0, +∞]. Другими словами, в пуле V2 разрешены любые цены. транзакции происходят (см. обратную гладкую кривую функции в постоянном продукте AMM).
На первый взгляд это кажется хорошей вещью. Диапазон торгов очень широкий, но на самом деле спрос на торговые пары с разной волатильностью в их ценовых диапазонах не такой велики, что приводит к серьезному дефициту ликвидности за исключением некоторых диапазонов торговли, низкая утилизация активов.
Как вы можете себе представить, бесполезно и расточительно предоставлять ликвидность по цене, находящейся настолько далеко от ценового диапазона, что цена может никогда не достичь этой точки.
В данном случае, чтобы улучшить финансовую ликвидность, Uniswap V3 ввел концепцию концентрированной ликвидности. То есть:
Поставщики ликвидности (LP) вправе выбирать обеспечение ликвидности в определенном ценовом диапазоне, что способствует повышению ликвидности и обеспечивает работу в высокоэффективном капитале. В то же время в терминах применения также можно осуществлять различные конфигурации для активов с разной волатильностью цен.
Каждый небольшой ценовой диапазон в V3 можно понимать как работу V2. Во время транзакции цена будет плавно двигаться по кривой. Когда цена достигнет определенного участка V2, она достигнет интервальной точки ценового интервала V3. В этот момент ценовая точка сдвинется на следующий ценовой интервал.
После понимания вышеуказанной концепции мы можем познакомиться с новыми существительными - ядром V3 являются тики.
Тики, тики — это наименьшие приращения, которыми можно торговать ценной бумагой. В V3 путем деления ценового диапазона [0, +∞] на бесчисленное количество мелкозернистых тиков реализованы ограничения на верхнюю и нижнюю границы каждого диапазона.
Ликвидность агрегируется через контроль гранулярности. Весь ценовой диапазон в V3 калибруется дискретными, равномерно распределенными Тиками. У каждого Тика есть индекс и соответствующая цена, и у каждого Тика будет своя собственная глубина ликвидности.
Математические принципы Uniswap V3 изменились, хотя они похожи на базовый уровень V2:
L=xy под корнем
L называется объемом ликвидности, а ликвидность в пуле представляет собой комбинацию двух количеств активов Token. Точно так же, произведение количеств двух токенов равно K, но поскольку у каждого Тика разная глубина ликвидности, эквивалентные формулы для разных глубин больше не совпадают.
Я не буду вдаваться в детали математических принципов. Ниже приведена статья Атиса Эльстса о математических принципах V3. Интересующиеся друзья могут прочитать ее сами.
В Uniswap V2 по-прежнему действует стандартная комиссия за транзакцию в размере 0,3%, в то время как в Uniswap V2V3 предусмотрено 3 разных уровня комиссий из-за различий в детализации - 0,05%, 0,3% и 1% соответственно. В это время LPs могут сосредоточить свою капитальную эффективность в наиболее часто торгуемых диапазонах, чтобы получить максимальную отдачу.
Кроме того, V3 еще раз оптимизировал оракул на основе V2. Теперь он больше не хранит только одну переменную накопления цены, а хранит набор переменных, что может увеличить срок службы данных, снизить комиссию за газ и сэкономить затраты.
Uniswap V4 основана на централизованной модели ликвидности Uniswap V3, позволяет любому развертывать новые централизованные пулы ликвидности на Uniswap с настраиваемой функциональностью, тем самым становясь эффективной и настраиваемой платформой DEX.
В V4 основной момент - контракт Hooks, цель - позволить каждому принимать эти компромисные решения путем введения "hooks".
Для каждого пула создатель может определить "Контракт Hooks", который выполняет логику на ключевых этапах жизненного цикла вызова. Эти Hooks также управляют комиссиями обмена пула и комиссиями вывода, взимаемыми с поставщиков ликвидности.
Хуки - это набор контрактов, разработанных третьими сторонами или официальными представителями Uniswap. При создании пула пул может выбрать привязать хук. Затем на определенном этапе транзакции пул автоматически вызовет привязанный к нему контракт хука. Контракт на ключевых точках в жизненном цикле вызывается, чтобы реализовать логику.
Другими словами, крюк - это внешний развернутый контракт, который выполняет определенную логику, заданную разработчиком, в указанной точке выполнения пула. Эти крючки позволяют интеграторам создавать централизованные пулы ликвидности с гибким и настраиваемым выполнением. Крючки могут изменять параметры пула или добавлять новые функции и возможности.
У каждого пула ликвидности Uniswap есть жизненный цикл: во время жизненного цикла пула ликвидности происходит несколько вещей, включая: создание пула с тарифом комиссии по умолчанию, добавление, удаление или перенастройка ликвидности, а также возможность обмена токенов и т. д. В Uniswap v3 эти события жизненного цикла тесно связаны и выполняются в строгом порядке.
Но чтобы создать пространство для настраиваемой ликвидности в Uniswap V4. Контракт Hooks создает метод введения кода для добывающих пулов, чтобы выполнять определенные операции в ключевые моменты жизненного цикла добывающего пула, такие как до и после обменов или до и после изменений позиции LP.
В двух словах, Хуки - это плагины для настройки того, как взаимодействуют пулы, свопы, комиссии и позиции LP, через контракты хукс. Разработчики могут инновировать поверх ликвидности и безопасности протокола Uniswap, создавая пользовательские AMM-пулы через хуки, интегрированные с умными контрактами v4.
Примеры функциональности, которую можно реализовать с помощью хук-контрактов, включают:
Основная логика Uniswap V4 такая же, как у V3, и не подлежит обновлению. Поскольку каждый пул для майнинга теперь определяется не только токенами и уровнями комиссий, из этого может быть создано несколько различных пулов для майнинга. И хотя каждый пул может использовать свой собственный смарт-контракт-хук, хуки ограничены определенными разрешениями, установленными при создании пула.
В V4 также есть некоторые архитектурные изменения, такие как мгновенное учетное хранение (мгновенный счет), которое может значительно снизить комиссии за газ. Эта функция включена в EIP-1153, которая вводит "временное" хранилище и будет реализована после обновления Канкун (Ethereum Cancun).
Кроме того, версия V4 также использует режим синглтона (сохраняет все состояния пула в одном контракте), мгновенное учета (обеспечивает платежеспособность пула), восстанавливает поддержку родного ETH, поддерживает токены ERC-1155 и добавляет механизмы управления для улучшения.
UniswapX - это новый протокол на основе аукционов с открытым исходным кодом (GPL) без разрешений для торговли через AMM и другие источники ликвидности.
Протокол улучшит функциональность обмена в нескольких областях, включая:
Фон: Ончейн-транзакции продолжают инновации, что приводит к размножению пулов ликвидности и новым уровням комиссий, L2 и другие ончейн-протоколы также распределят ликвидность.
Решение: UniswapX стремится решить эту проблему через открытую сеть, которая передает сложность маршрутизации сторонним сторонам, которые должны конкурировать за заполнение транзакций с использованием ликвидности on-chain, такой как пулы AMM или их собственные частные запасы.
С UniswapX трейдеры смогут использовать интерфейс Uniswap, не беспокоясь о том, получают ли они лучшую цену. Транзакции трейдеров всегда будут прозрачно записаны и завершены on-chain. Все ордера работают на Uniswap Smart Order Router, который заставляет сторонние компании конкурировать с Uniswap V1, V2, V3 и, по запуску, V4.
В основном, UniswapX укрепляет механизм конкуренции и оптимизирует проскальзывание цен каждого активного пула через выбор маршрутизации сторонних сторон.
Кроме того, UniswapX также запустил новые попытки:
Без транзакций по газу, нет оплаты за неудачу. Трейдер подписывает уникальный оффчейн ордер, который затем подается ончейн третьей стороной, которая оплачивает газ от имени трейдера. Третья сторона включает комиссию за газ в цену транзакции, но может конкурировать за лучшую цену, выполняя несколько заказов пакетами и снижая транзакционные издержки.
Защита MEV, возвращение MEV, изначально полученного через арбитражную торговлю, трейдерам по более выгодной цене. UniswapX помогает пользователям избежать более явных форм вывода MEV: ордера, исполненные с использованием частных активов сторонних лиц, не могут быть "заключены между", и сторонние лица стимулируются использовать частные транзакционные ретрансляторы при маршрутизации ордеров к ончейн-ликвидности пулов.
Предстоящая межцепочная версия UniswapX объединит свопинг и мосты в одну непрерывную операцию. Используя межцепочный UniswapX, свопперы смогут мгновенно переключаться между цепями и с нетерпением будут ждать своего прогресса.
Внутренняя логика итерации Uniswap с V1 по V4, а также запуск протокола UniswapX является функциональным инновационным DEX (AMM).
V1 изначально реализовал AMM в области шифрования, V2 снизил риск для ETH и запустил ценовой оракул, который сложнее манипулировать, V3 решил проблему низкой эффективности капитала через централизованную ликвидность, V4 реализовал настраиваемую DEX, и протокол UniswapX был укреплен за счет механизма аукциона. Конкурентоспособность сторонних агрегаторов позволяет оптимизировать проскальзывание цен.
Мы видим, что Uniswap совершенствует себя на каждом этапе - снижая затраты на заем, оптимизируя пользовательский опыт, укрепляя осведомленность о конкуренции и внедряя новые технологии. Этот итеративный апгрейд является основой для того, чтобы хороший протокол просуществовал навсегда.