Uniswap - история создания самой успешной DEX-площадки. От безработного до основателя крупнейшей крипто-компании.
Статья подготовлена Телеграм каналом Budapest CryptoMercury
Канал | Чат | Телетайп
V0 — Рождение Uniswap
2 ноября 2018 года было публично объявлено о запуске Uniswap в основной сети Ethereum. В захватывающий, вызывающий тревогу момент я отправил твиты-объявления своим примерно 200 подписчикам.
Многие люди впервые услышали о проекте. Для меня это стало кульминацией многолетней работы и огромной помощью на этом пути.
Uniswap изменил мою жизнь...
Хайден Адамс
Начало. Путь до Uniswap. Увольнение, депрессия.
Хайден Адамс окончил Университет Стоуни-Брук со степенью инженера-механика с отличием и получил работу в компании Siemens.
Главное направление компании в тот момент было машиностроение. Для Адама это была работа мечты, ты только закончил университет и это твоя первая работа - Адам цеплялся за неё из-за всех сил.
6 июля 2017 года Адама Хайдена уволили, депрессия и подавленность - единственные чувства, которые он испытывал в тот момент.
На тот момент у Адама был очень хороший друг Карл Флёрш - он работал в Ethereum Foundation. Вот отрывок из переписки друзей:
Хейден : Меня только что уволили :(
Карл : Поздравляю, это лучшее, что могло с тобой случиться!!! Машиностроение — умирающая область. Эфириум — это будущее, и вам еще рано. Ваша новая судьба — писать смарт-контракты!
Хейден : Разве мне не нужно уметь программировать?
Карл : Не совсем, программировать легко. В любом случае, никто пока не понимает, как писать смарт-контракты. Ethereum, proof-of-stake, доверительные вычисления и т. д.
Хейден : Хорошо…
Именно тогда и было положено начало Uniswap. DEX площадке, которой будет суждено обогнать Binance и Coinbase по ликвидности. Площадке, которая станет самым большим обменником в мире криптовалют. Тогда Адам даже не мог себе представить насколько интересной может быть жизнь...
Глава 1. Осознание, изучение. Первая версия Uniswap.
Адамсу понадобилась неделя, чтобы приступить к работе. Он осознал, что новая жизнь впереди - нужно изучать...
Вооружившись пару сотнями долларов на жизнь в месяц и диким желанием изменить свою жизнь Адамс начал изучать абсолютно неизвестную для себя сферу:
Я был полон решимости попробовать и провел следующие два месяца, изучая основы Ethereum, Solidity и JavaScript.
С октября по ноябрь Адамс работал над созданием прототипа Uniswap, включая смарт-контракт и свой самый первый веб-сайт. Контракт имел единственного поставщика ликвидности и допускал только простые свопы. По ссылке вы можете взглянуть как выглядела DEX-swap площадка с самым большим оборотом в криптовалюте 6 лет назад.
Создание POC было моим первым шагом в кроличью нору программируемых денег. Это было самое интригующее, над чем я работал в своей жизни. Это даже не было похоже на работу.
Глава 2. Devkon-3. Первый инвестор. Первое интервью.
Так получилось, что Карл Флёрш (друг нашего главного героя) был довольно именитым человек в определенных кругах.
Карл выступал на Devkon-3 - довольно именитое мероприятие среди крипто-энтузиастов. Так получилось, что Карл использовал демонстрацию Uniswap в качестве примера мощи криптоэкономики и финансовых приложений с открытым исходным кодом на Ethereum.
Через два дня после выступления с Адамсом связался некий Паскаль Ван Хекке .
Он внимательно следил за развитием автоматизированных маркет-мейкеров на Ethereum и выразил заинтересованность в поддержке Uniswap. Он даже дал грант, чтобы профинансировать следующий месяц исследований.
Мы начали еженедельно звонить, чтобы обсудить прогресс. Паскаль предложил новые идеи. Однако, что более важно, наши звонки привнесли в мою работу ощущение структуры и ответственности. У Uniswap было две основные нерешенные проблемы, которые я решил решить с инженерным мышлением:
По мере углубления в программирование Адамс всё больше и больше восхищался безграничными возможностями Эфириума.
И все же в эфире что-то было не так - Адамс понимал это. Крупные проекты на Эфириуме воплощали в себе некоторые из его свойств, но лишь немногие использовали их полностью. Основные точки отказа, цензурируемые приложения и чрезмерно сложная архитектура. DAPP были разработаны исключительно вокруг идеи иметь токен для случаев использования, которые явно в нем не нуждались.
Я начал думать об Uniswap не только как об учебном инструменте для себя, но и как об инструменте для других. Я не мог представить себе мир, в котором он конкурировал бы с «настоящими» проектами. Вы знаете — те, которые привлекли от 20 000 000 до 150 000 000 долларов летом 2017 года. Но, возможно, это может служить примером приложения, которое действительно воплощает Ethereum.
В декабре 2017 Адамс полетел в Нью-Йорк на встречу крипто-энтузиастов вместе с Карлом.
На тот момент Ethereum уже становился популярным, а Карла узнавали многие люди, из-за его работы в Ethereum. В тот день произошел забавный случай:
Карла узнал репортер Coindesk, который спросил его о пересечении ячеистых сетей и криптографии. Карл не хотел давать интервью, поэтому направил репортера к своему другу Адамсу. Тот понятие не имел о решениях Layer 2 и просто пытался что-то сказать, и даже был процитирован в статье.
Глава 3. Предварительная альфа-версия Uniswap
К концу января 2018 года все основные проблемы со смарт-контрактами были решены. Биржевые контракты могут поддерживать несколько поставщиков ликвидности, используя внутренний токен ликвидности для отслеживания доли каждого LP в сгенерированных комиссиях и базового обеспечения. Заводской контракт позволял любому добавить поддержку токена. Все токены были связаны с ETH, что позволяло использовать его в качестве посредника для свопов между чем угодно в рамках одной транзакции.
Адамс связался с Callil сразу после завершения обновленных смарт-контрактов Uniswap, и подробно обсудил проект.
Callil предложил помочь с фронтендом — который сейчас отставал от контрактов. Работая над другими своими проектами, Каллил спроектировал и построил новый гладкий интерфейс для Uniswap поверх моей невероятно дерьмовой кодовой базы React.
Через несколько недель стало совершенно ясно, что мой код реагирования был неприемлемо плохим. К счастью, недавно я встретился с другом из колледжа, Усиэлем Вилчисом . Усиэль только что закончил учебный курс по кодированию (в который он попал по совету нашего общего Карла Флёрша).
Вам следует научиться программировать — Карл Флёрш
Стремясь улучшить свое резюме и опыт, Усиэль согласился провести рефакторинг кодовой базы интерфейса Uniswap.
К марту 2018 года мы втроем создали полнофункциональную демоверсию Uniswap - Вот оно
Глава 4. Встреча с Бутериным, новые знакомства, выступления
К Апрелю 2018 Адамс был безработным уже 10 месяцев. Криптовалюта, на которую он жил упала на 75%. Несмотря на то, что денег было мало Адамс принял серьёзное решение - полететь на Deconomy 2018.
Адамс попытался пройти на конференцию без билета, но получил отбор от охраны. К счастью, на это мероприятие прилетел тот самый друг Адамса - Карл. Он договорился с охраной и провёл Адамса внутрь.
Именно в тот день Карл познакомит Адамса с Виталиком Бутериным:
Карл : Это мой друг Хейден, он сделал Uniswap!
Виталик : Привет, приятно познакомиться! Это с открытым исходным кодом?
Адамс: Конечно!
Виталик : Какой адрес?
Адамс : https://github.com/haydenadams/uniswap
Виталик : читает мой смарт-контракт на своем телефоне
Виталик : Вы не думали написать это в Vyper? Кроме того, вы должны подать заявку на грант фонда Ethereum.
Идеи Виталика уже тогда были востребованы. Сразу после возвращения из Сеула Адамс две недели переписывал контракты в Vyper.
На тот момент не было руководств или инструментов разработчика, как у Solidity, но он смог использовать исходный контракт Casper FFG в качестве справки. В то время это был единственный контракт Vyper, который он смог найти, кроме простых примеров в основном репозитории Vyper.
В этот момент Адамс понимает, что ему нужно расширять круг своих друзей. Ещё в Сеуле Карл пригласил Адамса на небольшое светское мероприятие - сначала он отказался, но потом принял решение прийти туда.
Там Адамс познакомился и подружился с Филипом Дайаном , Дэном Робинсоном и Энди Милениусом . Помимо того, что они были замечательными людьми, все они сыграли решающую роль в успехе Uniswap и повлияли на его будущее направление.
Две недели спустя, в мае, Адамс прилетел в Торонто на Edcon 2018. Это была первая конференция Ethereum, на которой он прошел проверку безопасности. Адамс провел 3 дня, участвуя в переговорах, встречаясь с людьми и демонстрируя Uniswap. Все четверо друзей по криптографии были там и познакомили Адамса с кучей других людей - крипто-социальная сеть расширялась.
Среди друзей, которых я приобрел в Edcon, Jinglan Wang заслуживает похвалы, поскольку с тех пор она является фантастическим консультантом.
Адамс впервые лично встретился с Дэвидом Ноттом, бывшим разработчиком Vyper. Он сказал ему, что переписал Uniswap в Vyper. На следующее утро в 8 утра Адамс проснулась от телефонного звонка. Дэвид Ноттон сказал, что Адамс через два часа должен выступить с докладом о Vyper, включая живую демонстрацию. Uniswap был единственным DAPP, написанным на Vyper.
Я объяснил, что только две недели назад изучил Vyper, никогда не выступал на публике и вообще понятия не имел, что делаю. Дэвид заверил меня, что все в порядке — двух недель работы над Vyper было более чем достаточно, чтобы публично и авторитетно заявить о нем. Итак, я произнес свой первый доклад :
https://youtu.be/61PWFQpR1YQ?list=PLjB3u3uCYxnxXUXEYIp9V8aSxMyuyVdFg&t=3729
NYC Blockchain Week 2018
Адамс продолжал развивать нетворкинг. Он посетил NYC Blockchain Week. Следующую неделю он провел, посещая бесконечное множество мероприятий и вечеринок.
Там он встертил Ричарда Бертона, котоырй был основателем Balance, стартапа кошелька Ethereum. Адамс показал ему свою демку, и он сразу захотел понять, как она работает. Завязался долгий разговор.
До этого момента я считал свою роль в Uniswap в основном технической. Когда кто-то спрашивал, как это работает, я часто начинал с того, что рассказывал им математическую формулу, стоящую за этим. Многие люди ушли в замешательстве.
Ричард помог мне понять, что люди, не понимающие Uniswap, были моей проблемой, а не их проблемой. Разработчики были лишь небольшой частью большой картины. Если я хотел, чтобы люди использовали мой проект, мне нужно было говорить об этом на их условиях, понятным для них образом.
Самая большая нерешенная проблема Uniswap была социальной.
Глава 5. Вещи становятся реальными
Примерно в это же время Адамс решил, что Uniswap — это то, что он хочет довести до конца. Он наметил, что нужно для запуска mainet.
- Завершенные, готовые к производству смарт-контракты
- Отзывчивый, удобный торговый интерфейс
- Аудит безопасности смарт-контрактов
- Готовый технический документ
- Документы для разработчиков
Тут на помощь приходит ранее упомянутый друг Фил — эксперт по безопасности блокчейна. По его совету (и с его введением) Адамсу удается получить расценки от Runtime Verification на формализованную модель Uniswap, обзор кода высокого уровня и частичную формальную проверку смарт-контрактов.
Принимая все это во внимание, он подает заявку на грант Ethereum Foundation в размере 50 000 долларов + указанная стоимость от RV.
Лето 2018 года началось с того, что Адамс продолжал одержимо заниматься рефакторингом смарт-контрактов Uniswap, работал над официальным документом и посещал крипто-мероприятия в свободное время. В течение следующих двух месяцев он провёл собеседования, а затем ждал ответа о гранте.
Я ежедневно работал в офисе Balance, которым Ричард и остальные члены команды Balance — Кристиан Барони , Джин Чинг и Майк Демераис — любезно разрешили мне пользоваться. Зная, что у меня заканчиваются средства, Ричард даже был достаточно щедр, чтобы дать мне личный грант, чтобы поддержать мои усилия.
Я начал посещать еженедельные встречи под названием Whiteboard Wednesday в офисе Balance. Каждую среду в течение 2 часов всех и каждого, работающих над криптопроектом, приглашали поделиться своим недельным прогрессом.
Получив грант, Адамс немедленно заключил контракт с Runtime Verification для оформления и аудита контрактов. В ходе серии телефонных разговоров с Daejun Park , Yi Zhang и Xiaohong Cheng из RV он подробно рассказал о механизме и наиболее важных свойствах Uniswap.
Они начали с создания формализованной модели Uniswap. Затем они создали спецификацию кода, которая переработала математические операции, чтобы свести к минимуму ошибку округления и всегда отдавать предпочтение поставщикам ликвидности, а не трейдерам. С результатами этой работы можно ознакомиться здесь .
Я изменил контракты, чтобы они соответствовали спецификации. Затем RV выполнила высокоуровневую проверку кода, в ходе которой они рекомендовали ряд проверок безопасности, исправления, связанные с согласованностью, и другие незначительные изменения. Список этих улучшений можно найти здесь.
Наконец, код контракта Uniswap был заморожен, и RV начала работу по формальной проверке реализации контрактов на соответствие желаемым свойствам спецификации. Это был самый долгий этап процесса.
Пока шел аудит, Адамс нанял Каллила в качестве подрядчика, чтобы начать разработку рабочей версии торгового интерфейса Uniswap. Демонстрационный интерфейс работал хорошо, но казался слишком запутанным для готового продукта.
Глава 6. Подготовка к запуску
Вернувшись в Нью-Йорк, Адамс решил запустить Uniswap в Праге на Devcon 4 , если это будет возможно. Оставалось всего 5 недель, позже он скажет, что это были самые загруженные 5 недель в его жизни.
Пока шла официальная проверка, самой большой нерешенной задачей было внедрение последних дизайнов внешнего интерфейса Callil поверх готовой кодовой базы. Адамс нащупал подрядную фирму, которая могла бы построить это за месяц, и был представлен Дэну Цуи , генеральному директору Kyokan . Спасибо Рику Дадли за вступление!
Кодовая база должна была быть переписана почти полностью с нуля. Адамс нанял подрядчика, потому что считал, что для создания полнофункционального интерфейса Uniswap в столь короткие сроки в соответствии со стандартами, на которые он надеялся, потребовалась целая команда. Вместо этого он получил кое-что получше — Джеки Чан , вице-президент по инженерным вопросам в Kyokan.
Поскольку Джеки пришел почти без контекста Uniswap, он написал длинную и подробную спецификацию внешнего интерфейса , чтобы ускорить процесс, в то время как Каллил предоставил очень подробные проекты для каждой части интерфейса. За один месяц Джеки почти полностью самостоятельно создал интерфейс запуска Uniswap. С несколькими небольшими деталями на помощь пришел Кенни Трэм из Kyokan.
Примерно за неделю до Devcon я закончил документацию и технический документ. Кроме того, были получены результаты официальной проверки RV . Проблем не обнаружено! Однако команда Runtime Verification выразила обеспокоенность. Uniswap не был должным образом изучен на предмет атак с повторным входом, что является причиной взлома DAO . Я обратился к Филу Дайану за советом.
Он был крайне занят подготовкой к презентации своего последнего исследования на Devcon 4 , но тем не менее пообещал просмотреть смарт-контракты на предмет повторных атак перед запуском. Из-за характера последней минуты, это, конечно, будет внутренний аудит — не будет записи, и результаты не будут обнародованы.
Глава 7. Devcon 4. Мерч и запуск.
Адамс Хайден понял, что Devcon - идеальное место для презентации своего продукта. Он заключил контракт с Callil на разработку футболки для Uniswap, чтобы раздать ее на конференции.
Я хотел, чтобы запуск был моментом. Что-то, в чем люди могли бы участвовать. Рубашка должна быть высокого качества — рубашка, которую люди действительно захотят носить.
За неделю до главного мероприятия в жизни Адамса были сделаны конечные варианты того, как будет выглядеть одежда:
У Адамса и команды из 2-ух человек была неделя, чтобы сшить одежду и доставить её на конференцию в другую страну.
День 1
Девкон шел полным ходом! Адамс бродил по конференц-центру, раздавая футболки, рассказывая о Uniswap всем, кто его слушает, намекая, что скоро состоится запуск.
Днем Каллил и я впервые лично встретились с Джеки. После некоторого общения мы приступили к исправлению оставшихся ошибок, добавив улучшения UX.
День 2
Половину второго дня Адамс провел, бродя по конференции и наблюдая за докладами. Днем он снова встретился с Джеки и Каллилом. И у них было понимание — Uniswap как проект должен иметь целевую страницу отдельно от торгового интерфейса. В тот день они создали uniswap.io с нуля.
День 3
Наконец, на третий день Devcon Адамс получил ответ от Фила (главного специалиста по проверке кода и безопасности). Насколько он мог судить, на контракты биржи Uniswap не было атак с повторным входом, если только функция передачи токена не была специально разработана для повторного входа в Uniswap.
Это казалось приемлемым результатом — если токен был разработан для атаки на Uniswap, ликвидность для этого конкретного токена могла быть украдена. Все обычные токены ERC20 были защищены от повторного ввода.
День 4
2 ноября 2018 года — в последний день Devcon 4 — смарт-контракты были развернуты в основной сети Ethereum. Затем были развернуты uniswap.io и app.uniswap.org/# . Наконец, Адамс связался со всеми, кто выразил заинтересованность в предоставлении ликвидности при запуске.
Около 30 000 долларов США было внесено в контракты одним провайдером, разделенным на 3 токена. Это позволяло совершать свопы на сумму около 100 долларов. Больше ничего не оставалось делать.
Я провел около часа, сидя в одиночестве на мешке с фасолью, сочиняя и переписывая твиты о запуске. К счастью, мимо прошла моя подруга Эшли и помогла просмотреть мои твиты.
Я нажал кнопку, нервничая, но взволнованный тем, что меня ждет в будущем. За этим последовало огромное излияние поддержки, идей и сотрудничества, превзошедшее мои самые смелые ожидания.
Эпилог
Вот такая история... В ней мы смогли увидеть Uniswap с другой стороны. Мне очень нравится смотреть на компании именно таким образом, ведь если ты знаешь через что прошла компания, то твой анализ становится в разы лучше.
Адамс Хайден - великий человек. Он создал самую большую по ликвидности DEX площадку. Ежедневный объем транзакций на Uniswap составляет более $1ТРЛН - а когда-то это начиналось с твита на 200 человек... Вот такая интересная штука - жизнь.
Читатель, спасибо за внимание, я надеюсь, что тебе понравилась эта небольшая книга.
Я напоминаю, что у меня есть свой канал, где выходит много интересных постов на тему криптовалюты и заработка на ней. Твоя подписка - лучшая благодарность.
Благодарности:
https://t.me/minikcrypto - миник, мой братик. Пишет годные посты с ресерчем Соланы и Эфириума, также круто расписывает активности.
https://t.me/cryptomanul - главный певец в крипте. Очень крутой и умный парень, в канале постит только годную инфу без щитпоста.
https://t.me/workIncrypts - саня ворк в крипте, очень много полезного контента на любой вкус. Подписывайтесь и получайте море хорошей альфы.
https://t.me/ANPATA - Анпата, гений эфира, делает много денег и делится этим в канале. Подписку на него офрмляем.
https://t.me/odyssey_crypto - крутой мужик, у него есть крутой пост по амбам, советую оформить подписку и почитать его труды.
https://t.me/Aitoclub - самый богатый школьник на планете. Физерочек не нуждается в рекламе, подписку быстро офрмили.
https://t.me/cashhunter0 - очень крутой мужик, выносит разные активности вместе с манулом. Считаю, что подписки достоин - только годная инфа в канале.
https://t.me/lizacallit - амбассадор Кибер Конекта, круто выносит активности на перспективу бычки, советую подписаться и делать вместе с ним абузы.
https://t.me/kwitrolove - приятный мужик, крутая инфа в канале, подписку оформляем, привет от меня передаем.
https://t.me/igorizuchaetcrypty - создатель бренда одежды, крутой ресерчер и приятный человек. Медиа-гигант, а это говорит о многом - подписочку оформляем.
https://t.me/HinkoK - медиа-акула, имеет свой ютуб канал, пишет крутые посты у себя в группе. Советую подписаться, если не сделали это, ведь от него прет мотивацией.
https://t.me/sugimotoimmortal - крутой паренек, дает нормальную альфу по солане, подписываемся.
https://t.me/evilmeett - канал с очень годной инфой, читаю его давно и за качество ручаюсь, однозначно подписка
https://t.me/alliancealfa - годная инфа, нфт, темки для заработка - советую подписаться, чтобы не пропустить полезной информации