Протокол для обмена активов на Ethereum Uniswap появился в 2018 году, и с тех пор стал одним из краеугольных камней инфраструктуры децентрализованных финансов.
Интересно, что Uniswap был первым проектом по программированию Хейдена Адамса, который он сделал в свободное от работы время. Первая версия Uniswap имеет всего 300 строк кода. Uniswap — удивительное в своей простоте изобретение.
Проект Bancor, собравший на ICO в 2017 году 150 млн. долларов обещал сделать нечто подобное, однако ликвидность на Bancor сейчас около 200 млн. долларов, а на Uniswap почти 3 млрд. долларов. 🤷♂️
Протоколом Uniswap можно пользоваться без чьего-либо разрешения из любой точки мира где есть Интернет. Вам не нужно регистрироваться или загружать свои документы. Если у вас есть Ethereum-кошелек и немного ETH вы уже можете ей пользоваться для обменов, либо предоставлять ликвидность. Эксперт по автоматическим маркет мейкерам Хасиб Куреши расскажет как Uniswap работает под капотом так, что поймет даже третьеклассник.
— AS
Автор: Хасиб Куреши, управляющий партнер в Dragonfly Capital
Введение в Uniswap для новичков
Представьте, что старый друг обратился к вам с такой бизнес-идеей:
“Я хочу сделать автоматический маркет мейкер. Он будет давать цены на актив 24/7 каждому, кто спросит. Цена всегда рассчитывается одной формуле: x*y=k. В общем, это все. Хочешь инвестировать в мою идею?”
Вы, скорее всего, рассмеялись бы ему в лицо… и не инвестировали бы на ранней стадии в Uniswap. Потому, что это в точности описывает механику работы крупнейшей децентрализованной биржи на Ethereum.
Uniswap появился будто из ниоткуда и уже стабильно обходит по объемам торгов такие биржи как Gemini, Bitstamp, Bittrex и т. д. Если вы не следили за развитием DeFi в последние год-полтора, то сейчас должно быть задаетесь вопросом: что вообще здесь происходит?
Uniswap для начинающих
Uniswap — это автоматический маркет мейкер (АММ). Проще говоря — робот, который всегда дает возможность обменять один актив на другой, определяя текущую цену по простой формуле: x * y = k, где
x — количество единиц актива А;
y — количество единиц актива В;
k — фиксированное значение.
Uniswap пересчитывает цену активов для каждой сделки таким образом, чтобы при перемножении x на y всегда получалось одно и то же число.
Такой способ определения цены может показаться странным. Как при помощи перемножения двух чисел для получения фиксированного значения удается вывести справедливую цену на актив? Рассмотрим практический пример.
Предположим у нас есть ящик, в котором лежит 50 яблок (а) и 50 бананов (b). На Uniswap ящики, где хранятся активы называются пулами. Пул всегда состоит из двух активов.
Любой желающий может воспользоваться пулом, чтобы купить яблоки за бананы или бананы за яблоки. Предположим, что начальный обменный курс между яблоками и бананами 1:1. Теперь нам надо определить константу, которую Uniswap будет поддерживать по ходу торгов. 50*50=2500.
Предположим, покупатель хочет купить из нашего фруктового пула одно яблоко. Сколько бананов он должен заплатить?
Если из пула хотят забрать одно яблоко, в нем останется 49 яблок. Получаем простое уравнение 49*b=2500, где b=51,02 банана. Так как у нас уже есть 50 бананов в пуле, нам не хватает 1.02 банана (в этой вселенной мы допускаем дробные бананы). Получается, что покупатель должен заплатить 1.02 банана за 1 яблоко.
Обратите внимание, что цена довольно близка к начальному курсу 1:1. Ордер на покупку маленький, потому проскальзывание цены небольшое. Но что если ордер на покупку будет больше?
Покупка 10 яблок обойдется в 12,5 бананов. 1,25 банана за 1 яблоко. А за 25 яблок придется отдать 50 бананов. 2 банана за 1 яблоко. Если количество одного из двух активов в пуле сокращается вдвое, то количество другого должно удвоиться.
Важно понимать, что Uniswap не может отклоняться от кривой ценообразования. Цена будет скользить по ней в обе стороны, в зависимости от того куда ее тянет рыночный спрос.
Но есть загвоздка. Если реальный обменный курс 1:1, то после покупки 10 яблок в пуле останется 40 яблок и 62,5 банана. Тут в игру вступает арбитражный трейдер и покупает 12,5 бананов, чтобы вернуть пул к исходному состоянию 50/50. В таком случае Uniswap даст ему цену 0,8 яблока за 1 банан.
Uniswap продает бананы со скидкой!
Алгоритм понимает, что у него на балансе слишком много бананов, потому он предлагает на них более низкую цену, чтобы привлечь в пул яблоки и сбалансировать инвентарь.
В Uniswap этот процесс происходит непрерывно. Цены слегка отклоняются от реального обменного курса, после чего возвращается на место благодаря арбитражникам.
Коротко о непостоянной потере
Uniswap взымает за каждую проведенную сделку комиссию в 0,3%. Она добавляется к номинальной цене. Например, если курс обмена яблок на бананы всегда будет 1:1, то эти комиссии будут накапливаться. Благодаря им в пуле со временем будет больше фруктов чем было изначально.
Но что будет когда курс внезапно изменится?
Допустим, бомбардировщик пролетая над банановой фермой случайно уронил на нее снаряд, уничтожив большую часть урожая. Бананы теперь на вес золота. Курс подскочил до 5 яблок за 1 банан. Что в таком случае произойдет на Uniswap?
В ту же минуту налетят арбитражеры и купят все бананы в пуле, которые оцениваются дешевле 5 яблок за банан. Своими покупками они подвинут цену вправо по кривой до отметки, пока не начнет работать равенство: 5b*b=2500.
Для этого арбитражным трейдерам, надо купить 27,64 банана за 61,8 яблока. Средняя цена составит 2,2 яблока за 1 банан, что намного ниже реальной рыночной цены. Таким образом “санитары рынка” сэкономили/заработали 76,4 яблока.
Откуда взялась эта прибыль? Кто предоставил им уцененные бананы?
Поставщики ликвидности, которые поместили свои фрукты в пул Uniswap.
Теперь пул в минусе на 76,4 яблока по сравнению с теми, кто просто имел 50 яблок и 50 бананов. Uniswap продал бананы поставщиков ликвидности (LP) слишком дешево, поскольку не мог знать, что они стали настолько ценными в реальном мире.
Это явление называется непостоянной потерей (Impermanent Loss или IL). Каждый раз когда курс обмена меняется арбиртажники подбирают активы по цене чуть ниже рыночной до тех пор пока пул не сбалансируется по уже знакомой формуле x * y = k. Эта потеря называется непостоянной из-за того, что если курс потом снова становится 1:1, то вы по факту ничего не теряете.
Поставщики ликвидности зарабатывают на комиссиях и теряют их из-за непостоянной потери. Все зависит от спроса и расхождения цен. Спрос (высокий объем торгов) работает на поставщиков ликвидности, а сильное отклонение цен от начальных значений — против.
О непостоянной потере на BanklessRU выходила отдельная статья.
Это суть Uniswap в двух словах. В будущем мы можем углубиться в изучение механики работы автоматических маркет мейкеров, но для базового понимания этого пока хватит.
____________________
Повышайте уровень своего понимания Ethereum и DeFi. Подписывайтесь на BanklessRU в Telegram.
Оригинал: What explains the rise of AMMs?
Предыдущая статья: Как сохранить приватность активов на Ethereum
Не финансовый совет. Этот блог ведется исключительно в образовательных целях. Он не дает инвестиционных рекомендаций и не подталкивает к покупке или продаже активов и проведению других финансовых операций. Проводите свое собственное исследование.