Basic
August 17, 2023

Как работают DEX? AMM

Intro

В 3-м уроке мы говорили о том, как формируется цена на бирже. Биржевой стакан, рыночные, лимитные ордера и тд. На DEX же дела обстоят кардинально иным образом.

Вместо стакана цена на DEX устанавливается с помощью специального механизма под названием AMM. И вне зависимости от того, занимаетесь вы фармингом ликвидности, либо вам просто нужно свапнуть какую-то монетку, разбираться в принципе работы AMM однозначно нужно, ведь от этого зависят ваши деньги! Поэтому приступаем.

Что такое AMM?

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

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

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

История

Поэтому в 2016-2017 годах криптоэнтузиасты предложили идею AMM, которую с радостью подхватил и взял под свое крыло Виталик Бутерин. Первым наиболее известным и распространенным AMM стало решение от Uniswap, команда которого получила грант в $100,000 от Ethereum Foundation.

Также большую популярность набрал AMM Bancor, которые собрали на ICO $140 млн. и концепция AMM постепенно начала переходить в массы, впоследствии чего появились сотни DEX. Но хватит лирики, давайте в конце концов разберемся, как же он работает!

Механика

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

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

Сам процесс ценообразования происходит примерно следующим образом (за основу взят Uniswap):

  1. Формирование пула ликвидности: Пользователи вносят два различных токена (например, ETH и DAI) в пул ликвидности. Они указывают количество каждого токена, которое они готовы предоставить.
  2. Расчет начальной цены: Начальная цена токена в паре определяется исходя из отношения внесенных в пул токенов. Например, если в пул внесено 10 ETH и 1000 DAI, начальная цена будет 1 ETH = 100 DAI.
  3. Обмен токенов: Когда трейдер хочет совершить обмен одного токена на другой, AMM автоматически рассчитывает соответствующую цену на основе текущего состояния пула ликвидности.
  4. Изменение баланса пула: Каждый обмен меняет баланс токенов в пуле. Например, если кто-то купил ETH за DAI, количество ETH в пуле уменьшится, а количество DAI увеличится.
  5. Корректировка цены: После каждой сделки AMM автоматически корректирует цену токенов в паре на основе изменений баланса. Принцип здесь таков: чем больше токенов остается в пуле, тем выше их цена, и наоборот.
  6. Конвергенция кравновесию: С каждой торговой операцией цены медленно сходятся к истинному соотношению внесенных токенов. Этот процесс называется конвергенцией к равновесию.

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

Пример

Шаг 1: Формирование пула ликвидности

Предположим, что у нас есть два участника на DEX: Алиса и Артем. Алиса решает внести 5 ETH и 500 DAI в пул ликвидности ETH/DAI.

После этого состояние пула ликвидности выглядит так:

  • Баланс ETH: 5 ETH
  • Баланс DAI: 500 DAI

Шаг 2: Расчет начальной цены

В данном случае, начальная цена определяется как отношение внесенных токенов:

  • Начальная цена: 1 ETH = 100 DAI (так как в пуле 5 ETH и 500 DAI)

Шаг 3: Обмен токенов

Артем решает обменять 1 ETH на DAI. Давайте посмотрим, как это повлияет на пул ликвидности:

  • Баланс ETH: 4 ETH (5 ETH - 1 ETH)
  • Баланс DAI: 500 DAI + X (где X - это количество DAI, которые получит Aртем)

Шаг 4: Корректировка цены

AMM автоматически корректирует цену на основе нового баланса токенов в пуле. Допустим, X равно 90 DAI. Тогда новый баланс будет:

  • Баланс ETH: 4 ETH
  • Баланс DAI: 590 DAI (500 DAI + 90 DAI)

Новая цена будет:

  • Новая цена: 1 ETH = 147.5 DAI (590 DAI / 4 ETH)

Шаг 5: Конвергенция к равновесию

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

Риски

Да, AMM безусловно крутой и удобный механизм, но не без своих недостатков.

Риск 1 "Проскальзывание"

Проскальзывание (Slippage): Проскальзывание - это разница между ожидаемой ценой торговой операции и фактической ценой, по которой операция была выполнена. В традиционных биржах проскальзывание может быть вызвано низкой ликвидностью или большими объемами сделок, но в AMM оно связано с изменениями баланса токенов в пуле.

Чем больше сумма, которую вы хотите обменять, тем больше может быть проскальзывание. Это связано с тем, что при обмене большими объемами токенов меняется баланс в пуле, что влияет на цену. Таким образом, проскальзывание в AMM может быть больше, чем на традиционных биржах, особенно при больших объемах сделок.

Предположим, у вас есть автоматический маркет-мейкер (AMM) на платформе, который работает с пулом ликвидности для пары ETH/USDT. В данный момент цена 1 ETH равна 2000 USDT.

Вы решаете купить 5 ETH через этот AMM. Однако, из-за внезапного спроса, цена ETH начинает расти. Пока ваша торговля исполняется, цена ETH поднимается до 2050 USDT за 1 ETH.

Когда сделка завершается, вы обнаруживаете, что вы заплатили больше, чем ожидали, из-за роста цены ETH во время торговли. Расчетный курс был 2000 USDT за 1 ETH, но фактический курс составил 2050 USDT за 1 ETH. Это различие - это и есть проскальзывание.

Риск 2 "Impermanent Loss"

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

Например, предположим, что вы вложили в пул ликвидности 50% ETH и 50% DAI. Если цена ETH взлетит, вы можете столкнуться с ситуацией, когда ваша доля в ETH станет меньше, чем она была изначально. В результате, ваша общая стоимость может быть ниже, чем если бы вы просто держали токены вне пула.

Итог

AMM - крутой и продвинутый механизм в котором нужно разбираться. Благодаря ему у нас есть Liquidity Farming и возможность получения неплохого пассивного дохода на DEX. Но это уже тема отдельного поста, который выйдет в скором времени, и в рамках которого мы поговорим о защите от проскальзывания, а также Impermanent Loss.