Перевод оригинальной статьи: Uniswap Explained
Автор статьи: William M. Peaster
Я являюсь лишь переводчиком темы, с добавлением небольших примечаний для лучшего понимания.Разбираемся в том, что представляет из себя Uniswap.
Децентрализованный протокол для торговли Uniswap - это самый большой хит сети Ethereum за последнее время, и проект размещаемый с помощью этого протокола имеет гораздо больше шансов стать популярным. В этом статье мы разберем, что представляет из себя Uniswap и как он работает, как размещать (листить) токены и участвовать в пулах ликвидности с помощью этого протокола.
Что такое Uniswap и как он работает?Uniswap - это автоматизированный протокол ликвидности с открытым исходным кодом в сети Ethereum, написанный на языке смарт-контрактов Vyper, который позволяет легко размещать и торговать токенами стандарта ERC20. Uniswap основывается на таких ценностях как: децентрализация, устойчивость к цензурированию, безопасность и инклюзивность (любой желающий участвует в работе протокола), Uniswap стал самой популярной автоматизированной биржей маркет-мейкером в сети Ethereum (AMM) с момента запуска "Uniswap V1" в ноябре 2018 года.
Протокол Uniswap служит основой для децентрализованной биржи с торговыми парами, причем каждая со своим эквивалентом. Все пары управляются отдельными контрактами Uniswap. Эта модель позволяет любому человеку стать "поставщиком ликвидности" (LPs) для данной пары, например, как в случае с ETH/USDC, если он предоставит соответствующие средства для создания пары: внеся 1 ETH и 400 USDC, если цена составляет 400 долларов, или 2 ETH и 800 USDC и так далее.
За внесенные средства поставщики ликвидности Uniswap пропорционально получают "токены ликвидности" пула (LP shares),
которые выражают "вашу долю" в ликвидности пула и процент сколько вы заработаете комиссий от торговых операций в пуле(примечание AnatanVS). Примечательно, что внесенная ранее ликвидность может быть выкуплена назад за эти "токены ликвидности" в любое время. Также, протокол Uniswap взимает комиссию в размере 0,30% со всех сделок и распределяет её пропорционально между соответствующими поставщиками ликвидности. Из этого можно сделать вывод, что протокол Uniswap предлагает простую и эффективную биржу для торговли токенами стандарта ERC20, а также площадку для заработка людям, желающим стать поставщиками ликвидности.
Uniswap V1 будет существовать еще долго, как и Ethereum, но при этом обновленные контракты Uniswap V2 были запущены в основной сети в мае 2020 года. Новая система предлагает
ряд ключевых оптимизаций, включая пары токенов стандарта ERC20/ERC20, ценовые оракулы устойчивые к манипуляциям цен, мгновенные обмены (свапы) и многое другое. На момент написания этой статьи Uniswap V2 обеспечивал почти 200 миллионов долларов общей ликвидности и более 60 миллионов долларов в 24-часовом объеме торгов. Более того, разработчики протокола уже находятся в процессе создания
Uniswap V3.
Автоматизированный маркет мэйкер (AMM) и Дексы с книгами ордеров (биржевыми стаканами).В децентрализованном финансовом секторе Ethereum'а на сегодняшний день доминируют два вида децентрализованных бирж, или Дексов: дексы на основе книг ордеров и дексы на основе AMM.
Дексы с биржевыми стаканами имеют зависимость от ордеров на покупку и продажу соответствующего токена. Ордера на покупку называются Бидами (bids), а ордера на продажу Асками (asks). С этой целью эти биржи размещают Биды и Аски для каждой точки цены, причем “верхняя часть стакана” показывает, определенное количество самых низких Асков и самых высоких Бидов в данное время. Минусы бирж с книгами ордеров заключаются в том, что они плохо работают для неликвидных рынков, а также они особенно подвержены рыночным манипуляциям и
фронт-раннингу (front-running). Примеры Дексов с книгами ордеров: 0x, INDEX и Ethfinex.
С другой стороны, Дексы на основе AMM, такие как Uniswap, полагаются на то, что называется “алгоритмическими агентами” или “денежными роботами”, а не книги ордеров. Ключом к этой модели Дексов являются пулы ликвидности, в которые пользователи размещают свои активы, которые точно настроенный алгоритм объединяет в единую биржу. Каждый AMM имеет свой собственный индивидуальный алгоритм со своими плюсами и минусами. В итоге, цены для пользователей определяются с использованием уникальной формулы алгоритма, а не с помощью списка ордеров bid и ask.
Каким образом устанавливаются цены?Существует несколько видов Дексов на основе AMM, Uniswap - это вид Дексов называемый
“Маркет-мейкер постоянного результата” (“Constant Product Market Maker”), или CPMM. Это означает, что Uniswap, как и другие CPMMs, полагается на уравнение x*y=k для создания ценового спектра для пар токенов в зависимости от доступной ликвидности этих пар.
Например, если бы Uniswap имел торговую пару EXAMPLECOIN/ETH, то предложение EXAMPLECOIN (X) уменьшилось бы, если бы предложение ETH (Y) увеличилось, причем и обратное утверждение было бы одинаково верно, чтобы сохранить константу K, т.е. стоимость всего пула EXAMPLECOIN. “Если построить график, то получится гипербола всегда доступной ликвидности, но по все более высоким ценам, которые приближаются к бесконечности с обоих сторон”, -
отличное объяснение сделанное ранее командой Chainlink.
Как добавить токен на Uniswap?Любой человек или команда разработчиков со своим проектом может без чьего бы то ни было разрешения разместить токен на Uniswap для торговли. Сейчас мы вместе разберемся как это работает.
Во-первых,
нам нужно зайти на биржу Uniswap. Мы попадём на следующую страницу:
Далее жмём на кнопку
“Select a token” ("выбрать токен"):
В поле
“Search name or paste address” (”Искать по имени или вставьте адрес") вставляем адрес контракта токена ERC-20, который мы хотим добавить.
С целью обучения defiprime выпустил 1 миллион тестовых токенов B52, и отправил на мой wmpeaster.eth адрес 100 000 токенов, чтобы я мог показать вам, как работает листинг на Uniswap. Смарт-контракт B52 можно найти по адресу
0xc47828014f40322fc24d9c2340ef29d754d67cf4, поэтому мы вставим этот адрес в вышеупомянутое поле “Search name or paste address”. Как только это будет сделано, Uniswap мгновенно найдет 100 000 токенов B52:
Идем дальше, мы конечно же захотим нажать на только что выбранный токен B52. Как только мы это сделаем, будет показан экран предупреждения:
Uniswap показывает это предупреждение потому что процесс листинга не требует разрешения, а это означает, что как добросовестные, так и плохие участники могут легко добавить свои токены с использованием протокола Uniswap. Предостерегая нас от потенциально опасных проектов, Uniswap подчеркивает, что мы сами в первую очередь отвечаем за то чтобы не попасться в лапы мошенников. В нашем примере B52-это просто тестовый токен, и мы знаем, что он безопасен, поэтому жмем кнопку кнопку
“I understand” (“Я понимаю ответственность”). Теперь мы возвращаемся к основному торговому интерфейсу Uniswap, в верхней части которого находятся кнопки
“Swap” (“Обмен”) и
“Pool” (“Пул”). Нажмем на кнопку
“Pool”, и мы увидите следующее:
Жмем кнопку
“Add Liquidity” ("Добавить ликвидность") и, если появится запрос, опять вставим адрес контракта токена, далее выбираем свой токен (B52) в выпадающем меню, и в итоге мы попадаем на страницу, которая выглядит следующим образом:
Поскольку мы являемся первыми и единственными поставщиком ликвидности для пары ETH/B52, любое соотношение токенов ETH к B52, которое добавим в пул, будет определять цену токена B52. Например, если добавляем 0.1 ETH и 100 000 B52 в пул пары, начальная цена B52 будет равна 0.000001 ETH, или около $0.0004 USD по текущим ценам ETH. Если добавляем 0.2 ETH и 100 000 B52, начальная цена B52 составит 0,000002 ETH/$0,0008 и так далее.
Примечание: эту ценовую политику важно учитывать при листинге новых токенов с помощью протокола Uniswap. Проекты могут разместить на Uniswap лишь какую то часть от общего количества выпущенных ими токенов, что отразит именно то ценовое соотношение токена к ETH какое они захотят. Например, мы могли бы разместить на Uniswap только 10 токенов B52 против 2 ETH, но последующая рыночная активность могла бы сыграть с нами плохую шутку, и показать насколько ценен тестовый проект B52 на самом деле.
Как только мы настроим соотношение токенов, которое желаем, нам нужно будет разрешить Uniswap обработку наших токенов B52. В качестве демонстрации мы выбираем для финансирования тестового пула 0,1 ETH и 50 000 токенов B52, затем нажимаем кнопку
“Approve B52” (“Подтвердить B52”). Далее необходимо отправить транзакцию, поэтому мы жмём кнопку
“Confirm” ("Подтвердить”), как предложено ниже:
Теперь нам нужно подождать, пока произойдет подтверждение транзакции. Как только это случится, Uniswap активирует кнопку
“Supply” (“Добавить”) в нашем пользовательском интерфейсе, и мы сможем её нажать:
В итоге перед нами появится запрос на окончательное подтверждение, который выглядит следующим образом:
Когда мы будем готовы, просто жмем на кнопку
“Create Pool & Supply” ("Добавить и Создать пул"), отправляем транзакцию (но обязательно указываем достаточную стоимость "газа" в gwei) и ждем пока она пройдет. Как только это произойдет, наш пул ликвидности будет создан, что приведет к тому, что наш токен будет размещен на Uniswap.
Далее мы можем перейти в Uniswap на вкладку
“Pool” (“Пул”) и просмотреть панель мониторинга нашего поставщика ликвидности (LP), которая выглядит следующим образом:
Как работают пулы в Uniswap?Пулы ликвидности Uniswap - это создаваемый криптовалютный пул на основе смарт-контракта для размещения активов, дающий возможность зарабатывать поставщикам ликвидности.
Иными словами, пулы ликвидности Uniswap состоят из пулов токенов, каждый из которых защищен своим собственным отдельным смарт-контрактом, где Ethereum выступает в качестве базовой инфраструктуры. Пользователи могут торговать через эти пулы самостоятельно без необходимости получения разрешения центра (его просто нет), 24/7 и без создания учетной записи.
Получение комиссий за проведение пользователями торговых операций в пуле - это отличный стимул для поставщиков ликвидности (LP) создавать пулы и размещать там свои активы. Получить более подробную информацию о том, как именно работают эти пулы, вы можете на этом же сайте, перейдя по
ссылке.
Как добавить ликвидность в Uniswap?Итак, а теперь поговорим о добавлении ликвидности в уже существующий пул Uniswap. Этот процесс во многом аналогичен описанной выше последовательности листинга нового токена.
Для начала перейдем к интересующему нас пулу. Для этого в Uniswap перейдем на вкладку
“Pool” ("Пул") нажав на нее, а затем нажмем на кнопку
“Add Liquidity” (“Добавить ликвидность”). Нам будет предложено отправить транзакцию с указанным соотношением токенов, и как только эта транзакция подтвердится, наша ликвидность будет добавлена в пул. На рисунке ниже вы можете видеть, как я отправляю 3000 B52 и 0.0068468 ETH в пул B52/ETH Uniswap со своего второго адреса.