Пришло время обобщить информацию о децентрализованных обменниках, принципах их работы, сильных и слабых сторонах и подсветить ключевые отличия от централизованных решений. В этой статье я расскажу не только про устройство децентрализованных обменников, но и познакомлю с наиболее яркими образцами DeFi приложений такого типа. Этот обзор поможет новичкам сориентироваться в устройстве децентрализованных финансов. А если где-то останутся вопросы и пробелы, найти недостающую информацию можно с помощью нашей бесплатной карты развития на GitHub, которую мы вместе с коллегами собираем, чтобы помочь желающим быстрее погрузиться в мир web3. Когда я только начинал изучать разработку на блокчейн, иногда очень много времени уходило на то, чтобы разобраться в каких-то базовых понятиях и составить адекватное представление о возможностях, проблемах и перспективах продуктов в web3. Надеюсь, что эта статья поможет интересующимся сферой DeFi быстрее вникнуть в особенности работы децентрализованных обменников и понять тонкости и нюансы таких решений. Поехали! DEX (Decentralized exchange) — децентрализованный обменник. Это специальная площадка для торговли криптовалютами между участниками без вмешательства третьих лиц. Управление и администрирование такого сервиса не принадлежит никому или находится в руках сообщества. Поскольку доступ к активам осуществляется без помощи посредника, такой обменник можно назвать одноранговым или P2P. За заключением сделок между пользователями следят смарт-контракты, которые были размещены в блокчейн сети. Это позволяет снизить комиссию за операции.   В классическом понимании ликвидность — это показатель скорости обмена актива с учётом его рыночной стоимости. Когда есть покупатели, готовые купить актив по цене продавца, это говорит о его высокой ликвидности. И наоборот, низкая ликвидность говорит об отсутствии таких покупателей. Представь ситуацию —  продавец выставляет на продажу свой старенький ржавый Dodge Charger. Проходят недели, но никто не покупает автомобиль. Продавец отчаивается, когда понимает, что его автомобиль никому не нужен. Это пример низкой ликвидности. Но если бы автомобиль был продан в первый день, то это говорило бы о его высокой ликвидности. Не переживай за Dodge Charger — всегда найдется покупатель, который по достоинству оценит американскую легенду мускулкаров. Ликвидный рынок — это рынок, на котором можно легко купить и продать активы по справедливой стоимости. То есть существует высокий спрос со стороны тех, кто хочет приобрести актив, и достаточное предложение со стороны тех, кто хочет его продать. Рынок будет ликвидным при условии, что обмен токенов происходит максимально быстро. При любом обмене токенов продавец должен быть сопоставлен с покупателем или, наоборот, покупатель с продавцом. Если не окажется точки соприкосновения, то сделка будет невозможна.   Все пользователи обменника делятся на два типа: Маркет-мейкеры. Пользователи, которые делают предложение о покупке или продаже токена. Маркет-тейкеры. Пользователи, которые принимают предложение о покупке или продаже токена. Для того, чтобы сделка состоялась, мейкер должен предложить актив к обмену. Поскольку без него не будет  предложения, его часто называют создателем рынка. Созданное предложение не является залогом успешной сделки: для этого нужен исполнитель, или тейкер, который закроет предложение. Он заберет предложенный актив и в обмен отдаст собственный актив, который запросил мейкер.   Таким образом, маркет-мейкер отдает ликвидность, а маркет-тейкер её забирает.   Нередко роль маркет-мейкера берут на себя крупные игроки рынка. Это может быть и сам обменник.   Поставщики ликвидности — это пользователи, которые передают свои активы в резервы обменнику. Эти резервы используются для быстрого исполнения операций (обмен токенов). За предоставление ликвидности поставщикам полагаются комиссионные отчисления за транзакции. Этот процесс часто называют майнингом ликвидности или созданием рынка. Такие транзакционные сборы выражаются в процентных ставках. Проценты варьируются в зависимости от объема доступной ликвидности и количества транзакций.   Обратите внимание: маркет-мейкеры тоже являются поставщиками ликвидности. Мейкеры жизненно важны для привлекательности платформы как торговой площадки. Поэтому для маркет-мейкеров комиссия за проведение операций может быть ниже. Маркет-тейкеры используют ликвидность обменника, чтобы легко и быстро обменивать активы. За эту скорость они платят более высокую комиссию.   В свое время DEX пришел на замену CEX (Centralized Exchange).   CEX (Centralized Exchange) — это централизованный обменник. Управление и администрирование такого сервиса находится в руках одной организации, которая выступает в роли посредника при обмене средств между пользователями. Большинство централизованных обменников аналогичны традиционным финансовым сервисам, таким как Нью-Йоркская фондовая биржа. Поэтому интерфейсы таких обменников, как правило, более привычны и удобны для новичков. Большинство CEX основаны на модели OrderBook (книга заказов). В такой модели вся информация об операциях и балансах хранится внутри БД обменника.   Через CEX можно обменивать фиатные средства на криптовалюту (и наоборот) или криптовалюту на криптовалюту. Например, BTC на ETH. CEX позволяет использовать более сложные инструменты: маржинальная торговля  и лимитные ордера. Это возможно за счет модели Orderbook, так как эта модель хранит всю информацию об операциях. Технически информация находится во внутренней базе данных обменника. СEX требует отдельных операций для различных манипуляций с активами. Зачастую, обменники берут комиссию за все: за ввод средств, за вывод, за обмены, за хранение. При этом во власти CEX ограничить действия пользователей: запретить вывод или установить лимит на ввод. Проблемы с прозрачностью, безопасностью и высокой комиссией решают DEX на основе AMM. Здесь нет централизованного посредника, которому необходимо отчислять комиссию, а увеличить общую ликвидность DEX могут за счёт объединения.   Ниже я подготовил сравнительную табличку СEX vs DEX:  CEX DEX Орган управления   Одна организация, которая владеет обменником Сообщество пользователей. DAO Анонимность Нет. Требует KYC Да. Достаточно web3 кошелька Доступ к активам пользователя Да Нет Риск быть заблокированным Высокий Низкий Возможность работать с фиатными средствами Да Нет Отказоустойчивость Низкая Высокая Доп. возможности(Маржинальная торговля, внебиржевая торговля и т.д) Да Частично. Не все DEX обладают дополнительными инструментами. Более того, не для всех видов DEX имеется техническая возможность реализовать такие инструменты Прозрачность операций Нет Да Популярные сервисы Binance, Coinbase, Kraken, Gate и др Uniswap, dYdX, PancakeSwap, Curve, SushiSwap и др Децентрализованные обменники по модели устройства можно разделить на две группы: На базе AMM (Automated Market Maker), или liquidity pool based. Это обменники, которые реализуют автоматический обмен и ценообразование. На базе OrderBook (книга заказов), или OrderBook based.  Пользователи создают ордера на покупку или продажу токенов. Похоже на работу CEX, но отличие в том, что вся работа происходит внутри блокчейн сети. Orderbook может быть реализован полностью на смарт-контрактах on-chain. Либо гибридно. Основные вычисления off-chain, результат закрепления сделки on-chain. Гибридный подход нужен для минимизации записи информации в блокчейн, чтобы уменьшить расходы на газ. Про DEX на AMM и DEX на OrderBook подробнее я рассказывал в предыдущих статьях. Основных нюансов не так уж много. Я бы выделил три: Проблема с ценообразованием актива на момент выполнения транзакции. Это явление больше известно как проскальзывание цены (price slippage). Возникает из-за того, что транзакции выполняются не моментально, а по очереди, и на момент выполнения транзакции реальная цена актива может измениться под влиянием сделок других пользователей. Большая вероятность потери прибыли для поставщиков ликвидности, или так называемые непостоянные потери (Impermanent loss). Поставщик, который передал средства обменнику в качестве ликвидности, теряет доход в случае, если цена актива выросла гораздо больше профита, который предоставляет обменник в обмен за пользование средствами. То есть, если бы поставщик ликвидности продал активы как обычный участник рынка, он заработал бы больше, чем предложил обменник за вложения в пул ликвидности. "Другие участники большой игры". Arbitrage. Извлечение прибыли на разнице курса активов. С одной стороны несет положительный эффект, позволяя выравнивать стоимость активов между обменниками. С другой – порождает целый ряд негативных эффектов, которые влияют на обмены токенами между обычными пользователями. Подробнее про подводные камни децентрализованной торговли в деталях рассказывает третий материал цикла.   Ярким представителем этого типа обменников является dYdX. Сервис работает аналогично CEX. Пользователи могут создавать ордера на покупку и продажу по выбранным ценовым лимитам или рыночным ценам. Активы пользователей, как и в CEX, хранятся на кошельке обменника. Для пользователя доступен функционал ввода активов в обменник и вывода. Других известных DEX на orderbook мало. Причиной дефицита таких решений является недостаток ликвидности и сложность его обеспечения. Есть вероятность, что пользователям, придётся долго ждать, пока их ордера будут выполнены. Увеличить скорость исполнения ордеров позволяет большое количество пользователей, которые создают ликвидность своими ордерами. Часто на старте запуска такого обменника создается фейковая активность. Видимость создания и закрытия ордеров. Это позволяет пользователю быстрее закрывать свои рыночные ордера и чувствовать, что обменник действительно жив и работает в штатном режиме. Примерами популярных DEX на основе AMM являются Uniswap, Balancer, Bancor и другие. Каждая платформа имеет свои особенности, решая определённую проблему или даже несколько проблем сразу. О том, какие подходы применяют различные DeFi-протоколы для решения своих задач, расскажу ниже. Uniswap — один из самых успешных протоколов AMM в мире DeFi. Это децентрализованный протокол обмена на Ethereum, который позволяет совершать прямые обмены токенов, не храня средства пользователя в обменнике. Использовать протокол просто: нужно отправить свои токены из кошелька в смарт-контракт Uniswap. Взамен протокол вернет желаемые токены на кошелек напрямую из смарт-контракта. Первая версия протокола была опубликована Хайденом Адамсом в ноябре 2018 года в качестве доказательства концепции AMM. В его основе лежат простота использования, эффективное расходование газа, устойчивость к цензуре и безопасность. Несмотря на то, что первым концепцию AMM в Ethereum применил протокол Bancor, Uniswap одним из первых DEX на базе AMM популяризировал формулу маркетмейкеров на основе постоянного значения произведения. Протокол интересен как для трейдеров, так и для обычных пользователей. Блокчейн-разработчик может легко добавить обмены через Uniswap в свой контракт: он без проблем интегрируется в другие смарт-контракты, которым требуется гарантированная on-chain ликвидность. В Uniswap первой версии можно было обменивать ETH на ERC-20 токен, и наоборот. Поговорим о второй версии протокола, в которую добавили возможность обменивать токены ERC-20 на другие токены ERC-20. Согласно схеме, провайдер ликвидности добавляет три токена A и один токен B, а взамен получает 12.4 LP токенов пула. Они отображают долю активов провайдера в пуле. Дальше пара токенов работает по принципу АММ: принимает один токен и отдает взамен другой согласно формуле постоянного произведения. Более того, раз мы создаем пару, то мы задаем и цену. То есть то соотношение, в котором мы вложим нашу пару токенов, будет базовым для следующих поставщиков ликвидности. Ликвидная пара — это хранилище двух токенов, или резервы токенов А и B. На основе этих резервов рассчитывается цена токенов. 🚀 Любой пользователь может создать пул ликвидности и задать первоначальную цену, чтобы зарабатывать процент с каждого обмена. За создание пула Uniswap не берет комиссию. Структура Uniswap V2 состоит из ядра (Uniswap сore) и периферийных контрактов (Uniswap periphery). UniswapV2Pair.sol. Это основной контракт ядра протокола. Этот контракт отвечает за работу ликвидной пары — хранит резервы двух токенов. UniswapV2Factory.sol. Контракт фабрики регулирует создание и хранение ликвидных пар. UniswapV2Router01.sol и UniswapV2Router02.sol. Это контракты, которые предназначены для взаимодействия пользователя с протоколом. При помощи этих контрактов можно добавлять и забирать ликвидность, делать обмены. Что делать, если нужно обменять токены, для которых нет ликвидной пары? Для этого нужно использовать контракт UniswapV2Router02.sol. Он обеспечивает взаимодействие между всеми парами и может построить маршрут обмена. Например, у нас есть DAI, который мы хотим обменять на LINK. Такой пары нет, но есть пары DAI → ETH и ETH → LINK. Таким образом, протокол построит следующий маршрут обмена: DAI → ETH → LINK.   ✈️ Похоже на полёт из пункта А в пункт В с пересадками😉   Протокол фактически делает два обмена: кладёт DAI в первую пару и берёт из неё ETH, затем кладет его во вторую пару и берёт уже LINK. На схеме это выглядит так. Почему нужно использовать Router02, а не Router01? Дело в том, что у роутеров нет состояния и они не хранят балансы токенов. При необходимости их можно безопасно заменить на новый контракт реализации. Например, если обнаружены ошибки или нужно добавить новую логику. Именно это и было сделано в Uniswap v2, когда в Router01 обнаружились недочеты. Важно! Строить маршруты обмена — не единственная задача контракта Router02. Он также предоставляет методы для собственного обмена токенов, расчёта некоторых значений при обмене, а также методы для добавления и удаления ликвидности. Каждый смарт-контракт UniswapV2Pair.sol управляет ликвидной парой из резервов двух токенов ERC20. Поставщики ликвидности вносят ликвидность, т.е. создают рынок путем добавления двух токенов. Количество токенов эквивалентно стоимости токенов на момент добавления. После этого токены автоматически блокируются на смарт-контракте. Это может быть пара токенов ERC-20 стандарта или пара ETH - ERC20. Например, у Алисы есть USDT и 1INCH. Она видит, что такого пула ликвидности еще нет, поэтому у нее есть возможность задать курс, по которому будут обмениваться эти токены. Она решает установить курс 1500 1INCH по цене 1 USDT. Для этого она создает пул, в который отправляет 15000 1INCH и 10 USDT. Да, Алиса как первая создательница пула имеет право сама определить соотношение токенов в пуле — то есть назначить цену. Теперь Алиса – поставщик ликвидности. Ее средства заблокированы на смарт-контракте. Но как она докажет, что это ее средства, и как ей их вывести? Для этого существуют LP — liquidity pool tokens. В Uniswap такие LP-токены носят название UNI-V2. Чтобы посмотреть, на какие два токена можно обменять LP, достаточно зайти в Etherscan → чтение контракта и посмотреть адреса token0 и token1. Разберем на примере пары ETH → USDT. (https://etherscan.io/address/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852#readContract).   Во вкладке Read Contract нажимаем на token0 и token1. И видим адреса токенов пары.   Когда создается пул ликвидности, взамен чеканятся LP-токены, которые будут отражать долю поставщика ликвидности в данном пуле. Пока Алиса – единственный поставщик ликвидности, и у нее 100% LP-токенов. Такие токены еще называют shares. Теперь представим, что после Алисы подобную пару захотел создать я. Но тут проблемка: нельзя создать точно такую же пару, теперь мне можно только добавить ликвидность в пару Алисы. Причем я должен сделать это по текущему курсу. Например, если я хочу добавить 1500 1INCH, тогда мне нужно предоставить 1 USDT. После этого у Алисы будет 91% LP-токенов, а у меня 9%. А как вывести ликвидность? LP-токены всегда можно обменять обратно на резервы пула. Адаптер — это контракт, который реализует взаимодействие с контрактами Uniswap V2. На его примере я покажу, как можно взаимодействовать с контрактами Uniswap V2. В нем будут реализованы следующие возможности: добавление и удаление ликвидности; обмен 1INCH на USDT. Код адаптера можно посмотреть тут. Uniswap v3 основан на тех же принципах AMM c формулой постоянного значения произведения, что и ранние версии, но предлагает несколько нововведений. При этом разработчики третьей версии обещают нам повышенную эффективность использования капитала, большую точность ценового оракула и более гибкую структуру комиссий. Когда LP предоставляет ликвидность пулу Uniswap v2, она равномерно распределяется по кривой цен. Это позволяет обрабатывать все диапазоны цен от нуля до бесконечности, однако делает капитал весьма неэффективным. Проблема в том, что большинство активов торгуются в определённых диапазонах. Больше всего это заметно в пулах со стейблкоинами, у которых диапазон очень узкий. По этой причине в паре типа DAI/USDC могло использоваться только 0.5% ликвидности от всего пула в диапазоне от $0.99 до $1.01. Это приводит к тому, что 99.5% капитала практически никогда не используется. Представь, что ты добавляешь в пул ликвидности $100. Для этого покупаешь 50 DAI за $50 и 50 USDC тоже за $50. Затем ты кладёшь их в пул DAI/USDC. Из них для обмена используются только $0.5, а остальные $95.5 просто лежат, хотя ты мог вложить их куда-то ещё, чтобы заработать. Это крайне неэффективное использование капитала. Однако в Uniswap v3 поставщики ликвидности могут выбирать индивидуальный ценовой диапазон. Так капитал концентрируется в диапазонах, где происходит наибольшая часть торговли. В v3 созданы индивидуальные кривые цен для каждого поставщика ликвидности. Те диапазоны, которые накладываются друг на друга, создают комбинированную ликвидность. LP получают комиссии пропорционально их вкладу в заданном диапазоне. Рассмотрим ситуацию на примере. Допустим, Алиса и Боб хотят добавить ликвидность в пул ETH/DAI на Uniswap v3. У каждого есть по $10000, а текущая цена ETH = $1750. Алиса на весь свой капитал покупает ETH и DAI, а затем размещает во всём диапазоне аналогично пулам второй версии Uniswap. Получается, что она вложила 5000 DAI и 2.85 ETH. Боб, вместо того, чтобы вложить весь свой капитал, решает сконцентрировать ликвидность в диапазоне от $1500 до $2500. Для это он вкладывает 600 DAI и 0.37 ETH, что в сумме составляет $1200, а $8800 у него остается. В такой ситуации, пока цена будет колебаться в пределах от $1500 до $2500, и Алиса, и Боб будут получать одинаковые комиссии. Боб, вложив лишь 12% от той суммы, что вложила Алиса, будет получать такой же доход, при этом подвергая риску меньшую часть своего капитала. Важно отметить, что, пока трейдеры будут торговать в пределах этого диапазона, и Боб и Алиса будут получать доход с комиссий. Но, если цена выйдет за его пределы, доход получит только Алиса, а ликвидность Боба уже не будет участвовать в торговле. Этот механизм мотивирует поставщиков ликвидности охватывать своими позициями весь ценовой диапазон. То есть в теории Боб может либо добавить ликвидность ещё в несколько диапазонов, чтобы получить больший охват, либо обновлять свой диапазон в зависимости от того, куда будет двигаться цена. В первых двух версиях Uniswap каждая пара токенов соответствует одному пулу ликвидности. Пул применяет единую комиссию в размере 0.3% ко всем обменам. Этот уровень комиссий исторически хорошо работал для большинства токенов. Однако он слишком высок для некоторых пулов. Например, для пула стейблкоинов. И при этом он слишком низок для других пулов, особенно включающих очень волатильные или редко торгуемые токены. Uniswap v3 предоставляет несколько пулов для каждой пары токенов. И каждый из таких пулов имеет свою комиссию за обмен. Все они создаются одним контрактом-фабрикой, который позволяет создавать пулы с тремя уровнями комиссий: 0.05%, 0.3% и 1%. Если раньше мог быть только один пул для одной пары, к примеру, DAI/USDC, то сейчас таких пулов может быть три. В каждом из них будут разные значения комиссии. При этом предполагается, что вся основная ликвидность будет сосредоточена в том пуле, где уровень комиссии соответствуют риску активов. Интересный факт! Имея на руках токены UNI и «право голоса» в сообществе, можно вынести предложение по установке другого размера комиссии для определенного пула. Так было сделано в этом предложении. Если оно не отображается, попробуй переключить сеть в Metamask на Ethereum mainnet. Таким образом, три вида комиссий определяются уровнем риска пула ликвидности: Стабильные пары — 0.05%. Для пар с низкими колебаниями и для стейблкоинов. Пары со средним риском — 0.30%. Для популярных пар с высоким объёмом торгов. Пары с высоким риском — 1%. Для экзотических пар. Но это не все отличия, связанные с комиссиями. Если раньше доходы от комиссий автоматически инвестировались и выводились вместе со всей ликвидностью, то теперь они собираются и удерживаются пулом в виде отдельных токенов. Поставщик ликвидности может в любой момент забрать их себе. В первых версиях Uniswap поставщики ликвидности получали взаимозаменяемые токены LP в обмен на вложенные активы. В Uniswap v3 поставщики при добавлении ликвидности получают NFT (ERC-721 токен). NFT содержит информацию о пуле ликвидности и доле поставщика в этом пуле. Очевидно, что взаимозаменяемые токены ERC-20 не подойдут для отображения выбранного ценового диапазона каждым отдельным поставщиком. Давай перейдём на Etherscan и ознакомимся с NFT. Для просмотра информации, содержащейся в токене, вызови метод чтения positions(). Для вызова необходимо указать id токена, к примеру 315793. Каждый из NFT имеет несколько полей с данными. Самые важные из них: token 1 — адрес одного из токенов в пуле; token 2 — адрес второго токена в пуле; fee — комиссия за свапы в этом пуле; tickLower и tickUpper — минимальный и максимальный ценовые диапазоны, установленные поставщиком ликвидности; liquidity — предоставленная ликвидность этой позиции. Важно! Диапазон задан в тиках — это относительная величина, которая обновляется при каждом добавлении и удалении ликвидности. Условно, 1 тик равен изменению цены на 0.01%. NFT также имеет и графическое представление: На основании выбранного ценового диапазона ты можешь увидеть следующие параметры: в середине изображение кривой, которая представляет «наклон» выбранной позиции маленький значок кривой в правом нижнем углу. Показывает положение LP на кривой, где поставщик активен в пуле каждая позиция Uniswap v3 имеет уникальную цветовую схему, основанную на двух токенах, удерживаемых в пуле, поэтому разные пулы представлены разными цветовыми вариациями Больше примеров NFT Uniswap v3 pool смотри на маркетплейсе OpenSea. Таким образом, у поставщика ликвидности появляется персональный идентификатор, по-которому он может добавлять и удалять ликвидность в данный пул, а также забирать вознаграждение, которое накопилось за счет комиссии при обмене токенов в пуле. Важно! Благодаря возможности добавлять концентрированную ликвидность, токены LP больше не являются взаимозаменяемыми, как это было в Uniswap v2. Одна из основных проблем с DEX, которые используют формулу AMM, как Uniswap — это комиссии и проскальзывание цены при обмене токенов, что не подходит для торговли между стейблкоинами и активами, привязанными к одной и той же стоимости. Curve Finance первым адаптировал AMM для работы со стабильными токенами под низкие комиссию и проскальзывание.  Главная  цель Curve — упростить обмен активами близкими по стоимости. Это востребовано в экосистеме DeFi, поскольку есть много обёрнутых и синтетических токенов, которые стремятся имитировать цену базового актива. Синтетические токены – это финансовые инструменты. В народе, синты. Покупая их, ты участвуешь в ценовых движениях актива, на основе которого они созданы. При этом они не дают тебе ни права владения на базовый актив, ни гарантии его будущей поставки. Какой актив может быть синтом? Практически любой: криптовалюта, токен, товар, акция, биржевой индекс или фиатная валюта. Важно! Curve Finance в настоящее время поддерживает стейблкоины в долларах США, Евро, обёрнутые/синтетические BTC (Bitcoin) и обёрнутые/синтетические ETH-активы. На пике популярности, в январе 2022 года TVL Curve превышал $24 млрд, а ежемесячный объём торгов составлял более $6 млрд. Но даже после обвала криптовалютного рынка к середине 2022 года, Curve продолжает оставаться в пятерке лидирующих DeFi-сервисов с объёмом заблокированных средств свыше $5,7 млрд. Но вот что интересно: огромный объём ликвидности, предоставляемый Curve, позволяет множеству других DeFi-сервисов использовать его пулы в своих экосистемах. Например, он интегрирован с агрегатором ликвидности 1inch, а также с крупнейшими кредитными протоколами Aave и Compound. Первоначальная идея этого протокола — объединить большое количество стейблкоинов, чтобы минимизировать проскальзывание и защитить поставщиков ликвидности от непостоянных потерь. Когда этот протокол только появился на рынке, работала первая версия Uniswap. Кроме высоких проскальзываний, была и другая проблема: LP обеспечивали не менее половины своей ликвидности в ETH. То есть в нестабильном активе, незащищённом от непостоянных потерь. Также в первой версии токены торговались только через пул с ETH. Если вы хотели обменять токен A на токен B, Uniswap совершал две сделки. Токен A обменять на ETH в одном пуле, а затем ETH обменять на токен B. Это приводило к удвоению торговых комиссий. Чтобы повысить ликвидность токенов с низким уровнем объёма торгов, Curve представил концепцию базовых пулов и метапулов. Наиболее ликвидным базовым пулом является 3pool. Это пул стейблкоинов, состоящий из DAI, USDT и USDC. Соотношение трёх стейблкоинов в пуле зависит от спроса и предложения на рынке. Внесение монеты с меньшим коэффициентом принесёт пользователю более высокий процент от пула. Также есть пулы ликвидности, где один токен торгуется в паре с базовым пулом. Их называют метапулами. К примеру, в пуле ARTH/3pool, обмен происходит между токеном ARTH и базовым пулом, состоящим из 3-х различных стейблкоинов. Подробности можно узнать в  официальной документации. Когда Curve был запущен, он быстро рос, защищая слаборазвитый рынок стейблкоинов. Ранее децентрализованные биржи имели высокие комиссии, что создавало проблемы для тех, кто пытался перейти от одного стейблкоина к другому. В результате Curve.fi стал востребованным протоколом для обмена стейблкоинов из-за низких комиссий и низкого проскальзывания. К тому же, протокол дал поставщикам ликвидности различные инструменты для заработка, что позволило привлекать ещё больше ликвидности. Можно предоставить только один из стейблкоинов в пул, при этом теряя небольшую часть ликвидности. Или же выбрать другие стратегии и предоставить активы в пул в равной пропорции. Таким образом, Curve даёт гибкость в вопросе депозита ликвидности. Он позволяет распределять ваши средства по пулам без привязок к определенным парам, но теряя на проскальзывании. А проскальзывание необходимо для балансировки цены в пуле. Итак, Curve — автоматизированная децентрализованная биржа, похожая на Uniswap, предназначенная для стейблкоинов. Его интерфейс в стиле 90-х прост в использовании и позволяет любому получать выгоду от сделок между стейблкоинами с низким проскальзыванием. Ещё один протокол, который работает по принципу AMM — это Balancer. Здесь формулу AMM вывели на новый уровень, сделав её ещё более настраиваемой. У нас были пулы Uniswap, состоящие из равных частей всего двух активов. Затем Curve превзошел Uniswap, разрешив создание трипулов и снизив затраты, связанные с комиссиями и проскальзыванием. 💣 Взвешенные пулы Balancer сняли эти ограничения, позволив создавать пулы ликвидности, содержащие до восьми различных токенов. На Balancer взвешенные пулы могут состоять из любой пропорции восьми различных токенов. Следовательно, пулы ликвидности на Balancer больше не ограничиваются только тремя активами и не связаны постоянной формулой продукта, заставляющей пулы поддерживать равный процент каждого актива. Важно! Благодаря тому, что все токены хранятся в одном месте, совершать обмены гораздо выгоднее с точки зрения оплаты за газ. Также есть и внутренние обмены, которые позволяют выполнять свопы вообще без транзакций. Протокол Balancer можно сравнить со взвешенным индексным фондом в традиционных финансах. Индексные фонды — это фонды, работающие на инвестиционных стратегиях, которые предлагают пользователям владение частями различных активов в соответствии с определёнными пропорциями, т.е. индексом. Например, известный S&P 500 — это индекс, который отслеживает 500 крупнейших компаний на фондовом рынке. Владение долей индексного фонда S&P 500 означает, что стоимость вашей акции отражает состав всего индекса. Когда акции добавляются или удаляются из S&P 500, ваш индексный фонд перебалансируется в соответствии с изменениями. Пулы Balancer функционируют, как взвешенные индексные фонды для экосистемы DeFi. Они могут поддерживать портфели до восьми различных токенов ERC-20. В традиционном индексном фонде распределение активов производится в ручном режиме. Так получают сбалансированный портфель. Balancer же использует автоматическую перебалансировку активов в пулах каждый раз, когда совершается сделка. Это тысячи раз в день. Этот процесс помогает обеспечить активный рынок с торговыми возможностями, что приносит пользу как поставщикам ликвидности, так и трейдерам. Вместо того, чтобы платить сборы управляющему фондом, сборы за торговлю выплачиваются непосредственно поставщикам ликвидности, которые также еженедельно получают многоцелевые токены Balancer — BAL. Эти токены отражают долю собственности на платформе и предоставляют право голоса в решениях по управлению сообществом. Допустим, пул Balancer настроен на сохранение 80% своего значения в wETH и 20% своего значения в wBTC. Если произойдет проскальзывание, протокол скорректирует цены токенов для поддержания соотношения 80/20. Когда трейдер хочет купить wBTC за wETH, протокол алгоритмически сканирует свои пулы ликвидности по лучшей цене. По замыслу, пулы с лучшими ценами wBTC за wETH также будут пулами, которые больше всего нужно перебалансировать. Пул ликвидности и торговая платформа заперты в вечном алгоритмическом танце равновесия.🕺   На Balancer существует множество различных пулов ликвидности: Взвешенные пулы. Предназначены для общих случаев и не обязательно имеют ценовую корреляцию. Например, DAI/WETH. Цена определяется балансом пула, его весом и количеством обмениваемых токенов. Стабильные пулы. Подходят для токенов с мягкой привязкой и сильной корреляцией. Например, DAI/USDT/USDC. В таких пулах можно совершать значительно более крупные сделки до столкновения с существенным изменением цены. Они используют стабильную математику. В них более низкий спред, то есть разница между лучшими ценами заявок на продажу и на покупку.  Масштабируемые пулы. Подходят для токенов без привязки, которые сохраняют корреляцию, но могут медленно расходится со временем. Например, stETH/WETH. Управляемые пулы. Это пулы для управления динамичным фондом. Их особенности — это смещение веса для ребалансировки, приостановка обмена и платы за управление. Наиболее важной особенностью протокола Balancer является его набор алгоритмов, которые стимулируют взаимодействие между поставщиками ликвидности, пулами ликвидности и трейдерами в соответствии с двумя целями: ребалансировка пулов и поиск лучшей цены. Токены Balancer доступны для покупки на биржах и еженедельно распределяются среди поставщиков ликвидности. Чем больше ликвидности ты предоставишь пулу Balancer, тем больше токенов Balancer  заработаешь. Bancor утверждает, что является единственной децентрализованной платформой для ставок, которая позволяет получать пассивный доход через предоставление ликвидности.   По сути, Bancor — это децентрализованный обменник, где пользователи могут обменивать один актив на другой. Разница заключается в концепции односторонней ликвидности. Напомним: в большинстве DEX нет возможности внести только один актив. Обычно добавление ликвидности в пул требует наличие всех активов пула. Bancor устраняет эту проблему, предлагая одностороннюю ликвидность. Можно просто внести только ETH, а Bancor   токен BNT. Это токен платформы, который будет использован в качестве второго актива. Тем самым он заполнит вторую половину пула. Например, если вы вносите 100 ETH, а цена BNT — 2 ETH, то при внесении в пул 100 ETH протокол отчеканит 50 BNT. Но у вас доступ будет только к ETH. В таком сценарии инфляция токена BNT должна стремительно расти. Но, чтобы этого не происходило, при выводе средств из пула BNT сжигаются, как будто их никогда и не было. Поэтому данный механизм прекрасно работает. Более того, комиссии за обмены тоже начисляются в BNT, и они также сжигаются при выводе вознаграждения.  Токены BNT также используются в качестве промежуточного актива при торговле. Это означает, что при обмене, например, ETH на USDT, маршрут будет таким: ETH → BNT → USDT. При этом комиссия спишется на обоих этапах: одна половина достанется поставщикам ликвидности, а другая останется протоколу Bancor. Здесь мы подходим ко второй очень важной составляющей протокола — страхование от непостоянных потерь. Важно! Страхование от непостоянных потерь выгодно отличает Bancor от других DEX. Половина комиссий при обмене токенов остается протоколу. Помимо этого, Bancor забирает и часть доходов, полученных поставщиками ликвидности в размере 15%. Эти средства направляются в страховой фонд, который сможет покрыть убытки, если цена актива просядет относительно той, по которой актив добавлялся в пул ликвидности. Даже в случае сильной просадки, если не хватит средств из страхового фонда, их выплатят в BNT токене. Напоминает страхование автомобиля: если после ДТП авто нельзя восстановить, то вам выплатят деньги на покупку нового авто. Bancor позиционирует себя как платформа, на которой можно безопасно получать пассивный доход вместо того, чтобы просто держать средства на своем кошельке. При этом он ещё и защищает их от просадок в цене. Правда, чтобы получить полную защиту, то есть получить ту же сумму, которая была внесена, при выводе средств необходимо заблокировать свои средства на платформе не менее, чем на 100 дней. Но как Bancor гарантирует, что поставщики ликвидности могут получить правильную цену за токены, которые они заблокировали на платформе?  Bancor V2 утверждает, что решает эту проблему с помощью ценового оракула. Используя оракул, пулы Bancor автоматически корректируют долю токенов по отношению к их ценам. Это позволяет поставщику ликвидности вывести токены по той же стоимости, по которой он их депонировал. Wombat Exchange — это молодой и амбициозный AMM DEX протокол, запущенный в сети Binance Smart Chain. Он, как и Curve, специализируется на стабильных активах и объединяет в себе достоинства других протоколов. Традиционные DEX имеют изолированные пулы ликвидности. Резервы пулов хранятся отдельно друг от друга. Чтобы предоставить ликвидность токена в несколько пулов, нужно отправить токен на два разных смарт-контракта. Это разделение снижает общий потенциал использования капитала, так как каждая часть капитала будет использоваться лишь в одном из пулов. Например, банки работают по-другому. У них нет отдельных резервов для каждой торговой валютной пары. Они просто сохраняют резервы всей валюты и свободно производят обмен между любыми валютами. Wombat Exchange перенял стратегию банков и реализовал общий пул ликвидности. Пользователи протокола предоставляют одностороннюю ликвидность в один общий пул. Благодаря этому они могут получать более высокие вознаграждения. Трейдеры же обмениваются между собой любым стейблкоином без необходимости взаимодействовать с несколькими пулами. В действительности, это один большой пул ликвидности с кучей активов. За счёт этого снижается ценовое влияние при обмене больших объёмов активов, а также уменьшается проскальзывание. В настоящее время большинство транзакций со стейблкоинами в цепочке BSC осуществляются на PancakeSwap. Сравним проскальзывание транзакций между Wombat Exchange и PancakeSwap в торговой паре USDT/USDC. Для примера возьмем 10 тыс. и 100 тыс. При 10 тыс. проскальзывание на PancakeSwap составляет 10 USDC, тогда как проскальзывание на Wombat Exchange всего 1,6 USDC. Если возьмем 100 тыс., на PancakeSwap проскальзывание будет доходить до 414 USDC, а на Wombat Exchange составит 15,7 USDC. Применение общего пула ликвидности положительно влияет на масштабируемость протокола. Новые стейблкоины или обычные токены имеют низкую ликвидность в традиционных ликвидных парах. А могут и вовсе не иметь ликвидных пар. Общий пул решает эту проблему. Предоставление односторонней ликвидности в общем пуле позволяет повысить ликвидность новым стейблкоинам и масштабироваться. Для предотвращения проблем, которые могут произойти с токенами, а тем более со стейблкоинами, основной пул содержит в себе лишь самые ликвидные и проверенные стейблкоины: USDC, USDT и BUSD. А также самый удачный на данный момент децентрализованный стейблкоин со сверхобеспечением — DAI. Все остальные стейблкоины могут быть включены в side пул, который содержит низколиквидные и потенциально рисковые токены. Поэтому при какой-либо угрозе стейблкоину из side пула, его использование будет остановлено. Доступен будет только вывод активов из пула. Таким образом, основной пул с наибольшей ликвидностью не пострадает. В этом обзоре я рассказал про самые популярные DEX, работа которых основана на AMM. Все платформы имеют свои особенности: достижения в области преодоления «слабостей» AMM и свои недочёты. Функциональные отличия не мешают им преследовать похожие цели: дать возможность поставщикам ликвидности заработать, а пользователям – обменивать токены максимально эффективно. С каждым днём количество различных протоколов только увеличивается, а существующие постоянно обновляются. Разрабатываются новые концепции и инструменты для улучшения торговли, увеличения безопасности, снижения комиссий и рисков. Сфера DeFi растёт очень быстро, и DEX развиваются семимильными шагами. DEX можно воспринимать по-разному: одни считают такие решения утопией, другие –  будущим финансовой системы. Их достоинства в виде децентрализации, прозрачности, отказоустойчивости можно считать, как преимуществами, так и недостатками одновременно. Поэтому я перечислю потенциальные преимущества DEX, а ты можешь сам решить, насколько это скорее плюс, чем минус для пользователя. Разнообразие токенов. DEX предлагает огромное количество токенов для обмена. Но если вдруг ты не нашел нужного токена, можешь организовать собственный пул ликвидности. Для этого не требуется одобрение обменника или сертификация токена. Низкий риск взлома. Так как средства пользователей находятся на их собственных кошельках, обменники не имеют полный доступ к этим средствам. Это значит, что контроль за собственными средствами в руках пользователя. Риск взлома появится только в случае, если сам пользователь передаст право распоряжаться средствами третьим лицам. Даст approve(). Однако есть угроза поставщикам ликвидности, средства которых хранятся на смарт-контракте обменника. В случае взлома контрактов обменника, ликвидность может быть потеряна. Анонимность. Для использования DEX не требуется персональных данных пользователя. Необходим только web3 кошелек(Metamask, TrustWallet). Прозрачность. Благодаря технологии блокчейн возможно отследить практически любые передвижения активов. Децентрализация. Никто не может запретить использовать децентрализованный обменник конкретному пользователю. Даже если это сделать только в интерфейсе, пользователь всегда сможет взаимодействовать с контрактами напрямую. Это возможно, пока в сети есть хотя бы один обслуживающий узел. Без минусов тоже не обойтись,  мир ещё не придумал идеальное решение. Отсутствие валидации токенов. Достаточно сложно найти оригинальный токен и быть уверенным, что он не окажется скам-проектом. Это связано с тем, что любой пользователь может создать свой токен и разместить его в блокчейн. Здесь нужен некоторый опыт. Уязвимость смарт-контрактов. Риск взлома DEX ниже, но возможен. Огромный минус в том, что исправить этот минус невозможно в силу неизменяемости смарт-контрактов. Есть подходы, которые позволяют обновлять смарт-контракты, но тогда такие смарт-контракты становятся менее безопасными как раз из-за возможности обновления. Это замкнутый круг. Подводные камни децентрализованной торговли. Непостоянные потери, проскальзывание цены, арбитраж и т.д. Обо всем этом мы подробно поговорили. Более сложный процесс развития. Блокчейн накладывает свои ограничения на разработку, развитие и поддержку DEX. Разнообразие блокчейн сетей. До выбора DEX для использования необходимо определиться с сетью. Не все DEX поддерживаются во всех сетях. В этой статье мы рассмотрели, какие подходы используют различные DEX, чтобы нивелировать недостатки AMM модели. Если ты сумеешь глубоко погрузиться в область web3-разработки, возможно, сможешь предложить миру решения, которые откроют новые перспективы в DeFi. Главное, иметь желание наращивать «профессиональные мускулы» и держать руку на пульсе стремительного развития индустрии!  MetaLamp. Разработчик смарт-контрактов на Solidity