Hi-Tech

Как мы заработали $100 тысяч на торговле криптокотятами

Перевод материала подготовил Артём Слободчиков.

Главный герой истории: Founder Cat #4 («Котёнок-Основатель №4»)

Ниже — история о том, как мы заработали $107 тысяч, инвестируя в CryptoKitties, и ненадолго даже поставили мировой рекорд по самой крупной продаже крипто-коллекционного токена (сейчас мы на втором месте). Сейчас все уже слышали о CryptoKitties («Криптокотятах») — забавной игре, вирусная популярность которой обрушила трафик криптовалюты Ethereum.

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

Что-то явно было не так: транзакции зависали в очереди и получали подтверждение гораздо медленнее обычного. История началась обычным субботним вечером (2 декабря 2017 года), когда я отлаживал какой-то смарт-контракт на Ethereum. 66d. Короткое расследование показало, что неподтвержденных (pending) транзакций в сети было в 10–20 раз больше обычного, и необычно много транзакций шли на один и тот же таинственный адрес 0x06012.. Так я впервые узнал о существовании «Криптокотят», которым предстояло стать знаменитыми в ближайшие дни.

Инвестиционная стратегия

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

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

Площадка предлагала четыре способа сортировки: начинать с самых дешёвых, самых дорогих, самых новых или самых старых (уточнение: с тех пор дизайн сайта поменялся). Вопрос был в том, каких криптокотят покупать. А вот самые старые, как бриллианты, навсегда. Первые три варианта, очевидно, нестабильны: более дешёвые, дорогие или новые котята могли появиться в любой момент.

Цена Founder Cat №1 была ещё выше, около 150 эфиров. Поэтому мы решили купить Founder Cats («Котят-основателей») с однозначными номерами, несмотря на их высокую цену: кто-то недавно выкупил их по 25 эфиров за штуку, а потом снова выставил на рынок, увеличив цену вдвое (50 эфиров, то есть $25 тысяч).

Мы считали, что хайпу еще расти и расти, поэтому выставили котят на продажу по цене 250 эфиров за штуку, то есть в пять раз дороже, чем при покупке. Олег купил Founder Cat №4, №6, №8 по 50 эфиров за штуку, а я выложил $5000 за двадцатипроцентную долю в Founder Cat №4.

Урок усвоен: когда делаешь покупку на $25 тысяч, лучше не пытаться сэкономить $20 на комиссии. К слову, мы убили примерно час из-за того, что изначально выставили низкий gas price (комиссия майнерам за транзакцию) — пришлось переустанавливать MetaMask.

Реальность, конечно, оказалась еще абсурднее. Едва повесив трубку после разговора с Олегом, я задумался, что эта сделка имеет все шансы стать моим новым рекордом на самый абсурдный способ потратить $5000.

Тонкое искусство выхода на пике

Учитывая то, насколько она аддиктивна, заниматься чем-то ещё было сложно. В следующие несколько дней игра вошла в фазу вирусного взрыва. Игроки могли либо покупать котят, либо разводить их, чтобы получать новых. Долго это безумие продолжаться не могло — игровой процесс был значительно проще, чем у Pokemon Go. Мы предположили, что всё кончится максимум через пару недель, так что было важно заранее сформулировать рациональную стратегию выхода и придерживаться её.

«Google Тренды» для запроса cryptokitties. Разбиение по странам там, кстати, тоже весьма интересное

Во-первых, «Google Тренды» для запроса cryptokitties показывали, насколько часто люди гуглили игру — это хороший способ предсказывать интерес и будущие вливания денег. Мы использовали три метрики.

Когда мы только купили котят, на игру приходилось примерно четыре процента, а на пике популярности — 20%. Во-вторых, GasGuzzlers показывает смарт-контракты, которые потребляют больше всего газа в сети, и общий объём потребляемого ими газа.

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

Выплачивается в эфирах. Газ (gas) — плата, взимаемая с разработчиков за выполнение смарт-контрактов в сети Ethereum.

Однако пятого и шестого декабря все метрики достигли потолка, и к концу шестого числа популярность явно начала спадать. Четвёртого и пятого декабря несколько менее престижных котят (№35, №78 и №87) были куплены почти по 200 эфиров за штуку, так что мы были уверены в выборе цены.

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

Увы, радоваться выгодной сделке мне оставалось примерно двадцать минут. Спор мы разрешили самым очевидным образом: я продал ему свои 20% по оценке котёнка в 100 эфиров, в результате удвоив свои вложения за несколько дней.

Доска лидеров с «Котами Основателями» №18 и №4 в топе

Буквально через 20 минут после выкупа моей доли Олегом, я увидел продажу нашего котёнка №4 за 247 эфиров. Я продолжал наблюдать за площадкой из любопытства. Я был настолько уверен в том, что это сам Олег создаёт фейковую активность вокруг своего лота, что едва не поленился его об этом спрашивать.

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

Самые популярные контракты на Ethereum по данным GasGuzzlers. Текущий объём CryptoKitties в 0,92% — далеко позади доли 25% на пике

Бот для автоматического арбитража

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

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

  • Определить кластеры криптокотят, у которых должна быть примерно одинаковая цена. Мы ориентировались на три параметра: редкость (Rarity), задержка (Cooldown) и поколение (Generation). Достаточно дорогими были только котята из первого и нулевого поколений. Тех котят, у которых три показателя были одинаковыми, мы считали эквивалентными, игнорируя красоту картинок или вариации Cattribute — различные атрибуты криптокотиков.
  • Скупать дешёвых котят в каждом классе. В нашем случае мы покупали только самого дешёвого по каждому параметру.
  • Перепродавать дороже. В нашем случае мы хотели избежать нисходящей конкуренции с другими спекулянтами, так что продавали каждого криптокотика по цене чуть меньшей, чем у второго в категории. Примерно так же делает Google на своих аукционах второй цены.

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

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

Наш стикер с Котёнком №8. +10 к эффективности арбитража

Что до более технического уровня, есть несколько вариантов реализации этого алгоритма.

  • Каждый раз, когда вы видите зависшую транзакцию внесения на торги, можно попытаться выкупить криптокотёнка в том же блоке. Для этого можно запустить транзакцию «купить» с немного меньшей ценой. Например, если в транзакции «выставить на аукцион» фигурирует цена в 25 gwei, то в своей транзакции «купить» можно заплатить 24,999 gwei.
  • Либо можно выставить ровно ту же цену, то есть и транзакция «выставить на аукцион», и транзакция «купить» будут стоить по 25 gwei.
  • Альтернативно, можно дождаться, пока транзакция «выставить на аукцион» будет подтверждена в очередном блоке, и сразу после этого выслать транзакцию «купить» в следующий блок со значительно более высокой ценой за газ, например 100 gwei.

В первом случае вы рискуете оказаться в ситуации, когда вы чуть-чуть не успеваете в подтверждённый блок, после чего ваша транзакция может на несколько часов зависнуть в состоянии «обрабатывается», если на площадке резко возрастёт активность.

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

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

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

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

Мы бы изрядно повеселились, играя таким способом в злых гениев, но рынок падал слишком быстро, чтобы мы могли уделять столько внимания единичным покупкам конкретных криптокотят.

Итоги

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

С изображением животного выходят наклейки для ноутбука, футболки и даже значки ручной работы из серебра 985 пробы. Оставшемуся котёнку №8 достаётся всё внимание Олега. А если у вас есть опыт SMM — котёнок нанимает ассистента вести свой аккаунт в Instagram!

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

Тем не менее, игра остаётся интересной, и в нее можно играть и выигрывать. Да, у воображаемых котят нет никакой «обоснованной» или «справедливой» цены. И разумеется, предсказать, когда именно этот пузырь лопнет, было невозможно, хотя мы и были близки.

Здесь я снова удвоил свои деньги благодаря щедрой программе уравнивания пожертвований, которую Google предоставляет своим сотрудникам. Что до моих $5000 прибыли от этого приключения, я решил пожертвовать их Летней компьютерной школе через Московский центр непрерывного математического образования (ЛКШ — отличный детский лагерь и одно из мест, где я научился программировать), а также Freedom of the Press Foundation.

Блог автора, литературная помощь в составлении материала — Алина Асеева.

#блокчейн #криптовалюты #cryptokitties

Показать больше

Похожие публикации

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

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

Кнопка «Наверх»