что такое uniswap и как использовать

Инструкция по Uniswap: как пользоваться децентрализованной криптовалютной биржей

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

По мере популярности DeFi-токенов, вторую жизнь получили и децентрализованные биржи.

В 2020 году децентрализованные биржи (DEX) стали достаточно зрелыми по сравнению с тем, что было всего несколько лет назад. Одним из конкретных DEX, которая в этом году набирает обороты в мире децентрализованного финансирования (DeFi), является Uniswap, торговая платформа, которая в пятницу вечером содержала 1,3 миллиарда долларов и доминировала в большинстве приложений более чем на 18%.

Протокол Uniswap — самая популярная торговая DEX-платформа на сегодняшний день. Uniswap затмевает большинство претендентов своими 71,9% от совокупного объема торговли на DEX. Поскольку эта плафтомрма самая ликвидная на сегодняшний день, именно рассказываем именно про нее.

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

Навигация по материалу:

Что такое Uniswap?

Сервис uniswap это децентрализованная биржа, существующая в виде двух смарт-контрактов, размещенных на блокчейне Ethereum, и публичный клиент с открытым исходным кодом front-end. Несмотря на компактность, приложение является стопроцентным сетевым маркет-мейкером, позволяющим обменивать токены ERC 20 на ETH, и наоборот. Унисвап также позволяет вам вносить свой вклад в пулы ликвидности для любого токена ERC 20 и, получать вознаграждение в виде биржевых сборов.

Слово Uniswap переводится с английского как большое дело. Получается, что возможность обмена любого токена ERC20, включая базовую монету эфириум, без посредников, позволяющая любому человеку с ETH-адресом внести свой вклад в ликвидность биржи и, таким образом, заработать это немалый подвиг как со стороны разработчиков, так и со стороны клиентов данной P2P площадки.

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

Токен UNI демонстрирует высокий рост и за последнюю неделю подорожал почти на 70%. Это, конечно, впечатляет, но давайте разберемся в механизме работы протокола унисвап, чтобы понять стоящий ли это проект или очередной скам.

Как работает платформа?

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Как уже было сказано биржа uniswap работает с помощью двух смарт-контрактов на блокчейне Ethereum (ETH).

Использование uniswap exchange v2 требует вызова парного контракта через контракт «маршрутизатора», который вычисляет сумму сделки (или депозита) и переводит средства в парный контракт.

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

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

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

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

Uniswap v2 добавляет новую функцию, которая позволяет пользователю получать и использовать актив перед выполнением оплаты, если это происходит в рамках одной атомарной транзакции. Для этого используется контракт обратного вызова, задаваемый пользователем, в промежутке между передачей запрошенных токенов и принудительным исполнением обмена. Как только обратный вызов завершен, контракт проверяет новые балансы и подтверждает, что сделка состоялась. Другими словами, если у вас нет денег на балансе, контракт не будет запущен, а если монеты есть обмен произойдет автоматически. За каждую операцию взимается комиссия в размере 0,5% от суммы сделки. Размер fee можно отрегулировать как в меньшую, так и в большую сторону, в зависимости от того хотите ли вы сэкономить, или приоритетом является скорость обмена.

Пулы ликвидности (Liquidity Pools)

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

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

Сделать расчеты можно прямо в официальном приложении Live Exchange. Укажите сумму ETH для депозита, и эквивалент в токенах ERC 20 автоматически рассчитывается по текущему обменному курсу из контракта. С каждого совершенного свопа взимается комиссия, эти деньги распределяются между поставщиками ликвидности. Сумма вознаграждения каждого участника зависит от размеров депозита.

Как создать аккаунт?

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

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

Готово, можно начинать обмен или вносить токены на депозит. В разделе Charts можно выполнить предварительный анализ состояния рынка.

Как выбрать токен для обмена?

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

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

Uniswap — как подключить кошелек?

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Нажмите Connect to a wallet и выберите один из совместимых кошельков. Рекомендуется использовать браузерное приложение MetaMask в обозревателе Chrome.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Если у вас нет кошелька, создайте его, для этого нужно:

MetaMask работает с блокчейном эфира и поддерживает любые токены ERC-20. Чтобы токен отображался в интерфейсе кошелька, необходимо его добавить. Для этого заполните форму, указав адрес контракта, торговый тикер и название.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Подключения к бирже uniswap нажмите Connect to a wallet, и введите пароль или произведите синхронизацию приложений для разблокировки кошелька.

Как купить криптовалюту в Uniswap?

При успешной синхронизации ваш адрес и баланс отобразятся в правом верхнем углу интерфейса унисвап, и вы сможете совершать обменные операции. По умолчанию в строке From (предложение) отображается монета ETH, но вы можете выбрать один из 130 доступных токенов. Можно обменять на uniswap defi токены, например, Ballancer или CRV, а также стейблкоины и цифровые жетоны других проектов, базирующихся на эфириуме.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

С помощью токенов renBTC, renBCH, renZech можно осуществлять транзакции между Эфириумом и сетями Биткоина, Bitcoin Cash и Zcash. В выпадающем меню нижнего поля формуляра обмена, нужно указать токен, который вы хотите получить Enter an amount для расчета суммы сделки и если вас все устраивает, выполните обмен.

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

Важно! На платформе Uniswap иногда можно попасть на мошенников, торгующих поддельными токенами. Перед покупкой убедитесь, что данная обменная пара зарегистрирована на сервисе мониторинга coingesko, а еще лучше проверьте адрес контракта данного актива.

Плюсы и минусы биржи

Преимущества использования UniswapНедостатки Uniswap
Децентрализованный, не зависящий от третьих лиц. Не нужно создавать аккаунт и проходить верификацию личностиСвопы потребляют много газа
Пулы ликвидностиПрисутствуют мошеннические проекты
Возможность обмена любого токена ERC20Чтобы держать обменные курсы Uniswap сбалансированными биржа вынуждена полагаться на арбитражных трейдеров
Сложно провести манипуляции курса (дамп/памп).
Высокая скорость выполнения операций
Открытый исходный код

Где выгоднее покупать криптовалюту? ТОП-5 бирж

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

Надежность площадки в первую очередь определяется объемом торгов и количеством пользователей. По всем ключевым метрикам, крупнейшей криптовалютной биржей в мире является Binance. Также Binance самая популярная криптобиржа в России и на территории СНГ, поскольку имеет наибольший оборот денежных средств и поддерживает переводы в рублях с банковских карт Visa/MasterCard и платёжных систем QIWI, Advcash, Payeer.

Специально для новичков мы подготовили подробный гайд: Как купить биткоин на криптобирже за рубли?

Рейтинг криптовалютных бирж :

#Биржа:Cайт:Оценка:
1Binance (выбор редакции)https://binance.com9.7
2Bybithttps://bybit.com7.5
3OKExhttps://okex.com7.1
4Exmohttps://exmo.me6.9
5Huobihttps://huobi.com6.5

Критерии по которым выставляется оценка в нашем рейтинге криптобирж :

Подведет итоги

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

Полностью анонимная площадка без верификации кажется довольно привлекательной, но обмен через свопы менее выгоден из-за дорогих транзакций. Токен UNI пока не стал драйвером роста ETH, и после непродолжительного роста, начал проседать в цене.

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

Дата публикации 03.10.2020
Подписывайтесь на новости криптовалютного рынка в Яндекс Мессенджер.
Поделитесь этим материалом в социальных сетях и оставьте свое мнение в комментариях ниже.

Источник

Понимаем Uniswap: Иллюстрированное руководство

Одним из самых популярных трендов в криптовалютной индустрии, сменивший эпоху ICO, в 2019 году стали проекты DeFi — проекты и протоколы для децентрализованных финансов. Основа концепции DeFi — это децентрализованная возможность обмена, инвестирования и кредитования, беспрепятственно на практике и абсолютно демократично по структуре, с полным контролем своих средств, которые доверяются не конкретным персонам, а смарт-контрактам и алгоритмам.

Сегодня поговорим об одном из самых интересных проектов в этой области — Uniswap, протоколе для децентрализованного обмена токенами.

Теперь проект вышел далеко за рамки просто развлечения и стал одним из важнейших компонентов всей DeFi индустрии. И эта слава имеет обратную сторону — во время последних испытаний рынка на прочность, увы, но алгоритмы большинства участников спасовали перед обвальными настроениями рынка и умелыми одиночками, которые использовали уязвимости и пограничные нюансы функционирования сложных финансовых систем для своего обогащения. Подробнее можно почитать в хорошем материале ForkLog-а Черный четверг для DeFi.

Если вам стало интересно, как же все устроено — мы подготовили перевод отличного иллюстрированного руководства по механике работы проекта Uniswap.

Минутка рекламы: Хотите, чтобы для вашего проекта писала наша команда? Лонгриды, переводы (эта статья — наглядный пример наших возможностей), обзоры, новости — полный цикл, от выбора тем до оформления и публикации. В приоритете — биржи, кошельки, игры и сервисы. Интересно? Обращайтесь:raiden@coinindex.agency

Что такое Uniswap?

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

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

Если вы заинтересованы в лучшем понимании практической стороны использования Uniswap, рекомендуем эту статью: The Ultimate Guide to Uniswap

ERC20 токены

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

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

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

Обзор смарт-контрактов Uniswap

При просмотре веб-сайта Uniswap важно помнить, что это гораздо больше, чем просто интерфейс. С помощью набора смарт-контрактов Uniswap стандартизирует механизм обмена токенов ERC20. Любой может создать интерфейс, который подключается к этим контрактам, и сразу же осуществить обмен со всеми, кто использует Uniswap.

Существует два разных типа контрактов, из которых состоит Uniswap. Первый известен как биржевой контракт (Exchange). Контракты Exchange содержат пул определенного токена и Ether, с которыми пользователи могут осуществлять обмен. Второй тип контракта — это Factory, отвечающий за создание новых биржевых контрактов и привязку адреса токена ERC20 к его персональному биржевому контракту.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Пулы ликвидности ( Liquidity Pools)

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Вместо этого Uniswap использует Exchange контракты для объединения в один пул как Ether, так и определенного токена. При обмене Ether на токен, Ether отправляется в пул контракта, а токен возвращается пользователю. В результате трейдеру не нужно ждать контрагента для обмена или беспокоиться об указании цены. Поскольку любой может перечислить токен, и пользователям не нужно думать о сопоставлении с кем-либо, мы легко избегаем проблемы обеспечения начальной ликвидности.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Сумма, которая возвращается после обмена, основана на формуле автоматического маркет-мейкера. График ниже помогает проиллюстрировать, как работает эта формула. По сути, сумма, которую вам возвращают, зависит от соотношения эфира и токена в пуле. Независимо от объема, пользователь гарантированно выполнит свою сделку, потому что, чем больше актива вы добавляете в одну сторону пула, тем далее по кривой он продвигает вас к другому активу. Это означает, что чем больше заявка по отношению к пулу, тем меньше ставку вы получите.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Но если пользователи только отправляют криптовалюту, как поддерживается правильный курс эфира к токена?

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Теперь давайте предположим, что на рынке наблюдается движение, которое толкает цену ETH до 100 долларов на централизованной бирже. Из-за движения цены мы теперь можем видеть, что мы находимся вне баланса относительно рыночной цены, потому что теперь люди могут поменять 1 ETH на 150 DAI, используя Uniswap, тогда как рыночная цена на централизованной бирже составляет 100 долларов за 1 ETH.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

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

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

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

Обмен ERC20 ⇄ ERC20

При взаимодействии с одним контрактом Exchange пользователь может переключаться между Ether и конкретным токеном ERC20. Однако Uniswap позволяет пользователям напрямую обменивать токены ERC20 между собой, в одной транзакции.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Провайдеры ликвидности

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

Кроме того, большие пулы ликвидности полезны для пользователей, поскольку они допускают большие сделки, не отклоняя соотношение токена к ETH слишком далеко по кривой. Uniswap стимулирует пользователей добавлять ликвидность в пулы, вознаграждая провайдеров комиссией, которую взимает протокол. За обмен между эфиром и токеном взимается комиссия в размере 0,3%, а при обмене токенов на токены — примерно 0,6%.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

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

Прим. переводчика: следует понимать и риски, связанные с предоставлением ликвидности. Более подробно можно почитать в статье Uniswap: A Good Deal for Liquidity Providers? или хорошем обзоре Are Uniswap‘s Liquidity Pools Right for You?

Сейчас Uniswap переходит на новую версию V2, которая будет обладать множеством улучшений, в первую очередь связанную с ценообразованием и препятствованию атак на пулы, например, front-running-а. Обе версии протокола будут работать параллельно, поэтому мы сможем сравнить эффективность и посмотрим, как распределиться ликвидность.

Источник

Программирование DeFi: Uniswap. Часть 1

Введение

Мы сосредоточимся на том, как работают эти сервисы, попытаемся понять экономическую механику, которая делает их такими, какие они есть (а все DeFi основаны на экономической механике). Мы будем выяснять, разбирать, изучать и создавать основные механизмы DeFi.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Давайте начнем наше путешествие с Uniswap. Полный исходный код можно найти здесь.

Различные версии Uniswap

По состоянию на июнь 2021 года было запущено три версии Uniswap.

Первая версия (V1) была запущена в ноябре 2018 года и допускала обмен только между eth и токенами. А также были возможны обмены токенов на токены.

Вторая версия (V2) была запущена в марте 2020 года и представляла собой улучшение V1, позволяя осуществлять прямой обмен между любыми токенами ERC20, а также связанный обмен между любыми парами.

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

В этой серии мы разберем каждую из версий протокола и попробуем построить упрощенные копии каждой из них.

Эта статья посвящена Uniswap V1, чтобы соблюсти хронологический порядок и лучше понять, какие были улучшения от версии к версии.

Что такое Uniswap?

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Давайте узнаем больше о маркет-мейкерах.

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

Постоянное соотношение торгуемых пар

Вы, вероятно, уже слышали это определение, давайте посмотрим, что оно означает.

В основе Uniswap лежит формула постоянного соотношения торгуемых пар:

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Эта формула также отвечает за расчеты цен.

Разработка смарт-контрактов

Настройка проекта

Сначала создайте пустой каталог (я назвал свой zuniswap), перейдите в него по cd и установите HardHat:

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

Инициализируйте проект HardHat и удалите все из папок contract, script и test.

Токен-контракт

Uniswap V1 поддерживает обмен только между eth и токенами. Поэтому нам нужен смарт-контракт токенов и для этого мы возьмем стандарт ERC20. Давайте напишем его!

Это все, что нам нужно: мы расширяем смарт-контракт ERC20, предоставленный OpenZeppelin, и определяем собственный конструктор, который позволяет нам задать имя токена ( _name ), символ ( _symbol ) и начальное количество токенов ( initialSupply ). Конструктор также создаёт токены в количестве указано в initialSupply и отправляет их по адресу создателя токена.

Теперь начинается самое интересное!

Смарт-контракт Exchange

Uniswap V1 имеет только два смарт-контракта: Factory и Exchange.

Мы создадим смарт-контракт Exchange, а Factory оставим для другой статьи.

Давайте создадим новый пустой смарт-контракт:

Обеспечение ликвидности

Как мы уже выяснили, ликвидность делает возможными торги по токенам. Таким образом, нам нужен способ добавить ликвидность в смарт-контракт Биржи:

Эта реализация addLiquidity не является полной. Я намеренно сделал ее такой, чтобы больше сосредоточиться на функциях ценообразования. Мы восполним этот пробел в одной из последующих статьей.

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

И теперь мы можем протестировать addLiquidity, чтобы убедиться, что все правильно:

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

Функция ценообразования

Теперь давайте подумаем, как мы будем рассчитывать биржевые цены.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Давайте придерживаться этой идеи и построим функцию ценообразования:

И давайте проверим это:

Причина в том, что Solidity поддерживает целочисленное деление с округлением до целого. Цена 0,5 округляется до 0! Давайте исправим это, увеличив точность:

После обновления теста он пройдет:

Таким образом, теперь 1 токен равен 0,5 eth, а 1 eth равен 2 токенам.

Все выглядит правильно, но что произойдет, если мы обменяем 2000 токенов на eth? Мы получим 1000 eth, а это все, что у нас есть по смарт-контракту! Биржа будет опустошена!

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

Причина этого в том, что функция ценообразования принадлежит формуле постоянной суммы, которая определяет kkk как постоянную сумму xxx и yyy. Функция этой формулы представляет собой прямую линию:

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

График функции постоянной суммы

Она пересекает оси x и y, что означает, что она допускает 0 в любой из них! Мы определенно не хотим этого.

Правильная функция ценообразования

Напомним, что Uniswap является маркет-мейкером постоянного соотношения торгуемых пар, что означает, что он основан на формуле постоянного соотношения торгуемых пар:

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Дает ли эта формула лучшую функцию ценообразования? Давайте посмотрим.

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Это выглядит интересно: функция теперь учитывает вводимую сумму. Попробуем запрограммировать ее, но учтите, что теперь мы имеем дело с суммами, а не с ценами.

Это низкоуровневая функция, поэтому пусть она будет private. Давайте сделаем две высокоуровневые функции-обертки для упрощения вычислений:

Итак, теперь мы получаем 1,998 токена за 1 eth и 0,999 eth за 2 токена. Эти суммы очень близки к тем, которые были получены с помощью предыдущей функции ценообразования. Однако они немного меньше. Почему так?

Формула постоянного соотношения торгуемых пар, на которой мы основывали наши расчеты цен, на самом деле является гиперболой:

что такое uniswap и как использовать. Смотреть фото что такое uniswap и как использовать. Смотреть картинку что такое uniswap и как использовать. Картинка про что такое uniswap и как использовать. Фото что такое uniswap и как использовать

Гипербола никогда не пересекает xxx или yyy, поэтому ни один из резервов никогда не равен 0. Это делает резервы бесконечными!

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

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

Давайте улучшим наши тесты, чтобы увидеть, как проскальзывание влияет на цены:

Как вы видите, когда мы пытаемся опустошить пул, мы получаем только половину того, что ожидали.

И последнее, что следует отметить: наша первоначальная функция ценообразования, основанная на соотношении резервов, не была ошибочной. На самом деле, она верна, когда количество токенов, которыми мы торгуем, очень мало по сравнению с резервами. Но для создания AMM нам нужно что-то более сложное.

Функция обмена

Теперь мы готовы к реализации обмена.

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

Наконец, последняя часть кода на сегодня:

Заключение

Вот и все на сегодня! Мы еще не закончили, но мы сделали многое. Наш смарт-контракт Биржи может принимать ликвидность от пользователей, рассчитывать цены таким образом, чтобы защититься от опустошения, и позволяет пользователям обменивать eth на токены и обратно. Это уже много, но некоторых важных частей все еще не хватает:

Добавление новой ликвидности может вызвать значительные изменения цен.

Поставщики ликвидности не получают вознаграждения; все обмены бесплатны.

Нет возможности удалить ликвидность.

Нет возможности обмениваться токенами ERC20.

Фабрика все еще не реализована.

Мы сделаем это в следующей части.

Серия статей

Программирование DeFi: Uniswap. Часть 1

Полезные ссылки

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

Давайте запускать децентрализованные биржи на цепочке так же, как мы запускаем рынки предсказаний». Сообщение на Reddit от Виталика Бутерина, в котором он предложил использовать механику рынков предсказаний для создания децентрализованных бирж. Это дало идею использовать формулу постоянного соотношения торгуемых пар.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *