1 июня 2022, 20:00
Взлом криптоплатформы потряс блокчейн-сообщество
14 октября в доме недалеко от Лидса, Англия, Лоренс Дэй сидел на диване и ужинал, когда на его телефон пришло сообщение. Сообщение было от коллеги, который работал с ним над Indexed Finance — криптовалютной платформой, создающей токены, представляющие собой корзины других токенов — как индексный фонд, но на блокчейне. Коллега прислал скриншот с недавно совершённой сделкой, за которым следовал знак вопроса.
«Если не знать, что это, можно подумать: красивая сделка», — говорит Дэй. Но он знал достаточно, чтобы насторожиться: пользователь скупил определённые токены по сильно заниженной цене, что должно было быть невозможным. Что-то было серьёзно не так. Дэй подскочил, опрокинув еду на пол, и побежал в спальню, чтобы позвонить Диллону Келлару, соучредителю Indexed. Келлар сидел в гостиной своей мамы в Остине, в шести часовых поясах от Дэя, и разбирал DVD-плеер, чтобы вытащить из него один из лазеров. Подняв трубку, он услышал запыхавшегося Дэя, сообщившего ему, что платформа подверглась атаке. «Всё, что я ответил было: что?» вспоминает Келлар.
Они сели за ноутбуки и начали копаться в коде платформы, им помогали несколько знакомых и кот Дэя Финни (названный в честь пионера биткоина Хэла Финни), который примостился на его плече в знак поддержки. Indexed был построен на блокчейне Ethereum, публичном «гроссбухе», где хранятся данные о транзакциях — там же должна была храниться и запись об атаке. Потребовались бы недели, чтобы выяснить, что именно произошло, но, судя по всему, в результате махинаций платформа существенно занизила стоимость принадлежавших пользователям токенов и продала их злоумышленнику с огромной скидкой. В общей сложности человек или люди, стоящие за атакой, украли активы на сумму 16 миллионов долларов.
Келлар и Дэй заткнули дыры на платформе и исправили код настолько, чтобы предотвратить дальнейшие атаки, а затем занялись репутационным уроном. На Discord и Telegram каналах платформы держатели токенов обменивались теориями и взаимными упрёками, некоторые обвиняли команду и требовали компенсации. Келлар извинился перед сотнями пользователей Indexed в Twitter и взял на себя ответственность за уязвимость, которую не смог обнаружить. «Я облажался», — написал он.
Теперь стоял вопрос о том, кто осуществил атаку и вернёт ли он средства. Большинство крипто-эксплойтов принято считать делом рук кого-то внутри компании, пока не будет доказано обратное. «Стандартным вопросом будет: «Кто это сделал, и почему это разработчики?» говорит Дэй.
Пытаясь заснуть на следующее утро после атаки, Дэй вдруг понял, что один из партнёров с ним не связался. За несколько недель до инцидента программист под ником «UmbralUpsilon» — анонимность является стандартной историей в криптосообществах — связался с Дэем и Келларом по Discord и предложил создать бота, который сделает их платформу более эффективной. Они согласились и выслали ему задаток гонорара. «Мы надеялись, что он станет постоянным участником», — говорит Келлар.
Учитывая характер их общения, Дэй ожидал, что в связи с новостью о нападении UmbralUpsilon предложит помощь или выразит сочувствие. Однако ничего подобного не произошло. Дэй поднял историю сообщений и обнаружил там только свою часть переписки; UmbralUpsilon удалил свои сообщения и изменил имя пользователя. «Я подскочил на постели, как ошпаренный», — говорит Дэй.
Он поделился своими подозрениями с командой, которая в течение следующих нескольких дней прочёсывала цифровой след злоумышленника. Они обнаружили, что кошелёк Ethereum, использовавшийся для перевода токенов во время атаки, был связан с другим кошельком, который недавно использовался для получения выигрыша в хакерском конкурсе, и принадлежал он участнику конкурса, который иногда представлялся как UmbralUpsilon. Подняв регистрацию участника, они обнаружили, что она связана с профилем на GitHub, платформе для совместной разработки.
Профиль на GitHub был создан человеком, чей адрес электронной почты начинался с «amedjedo» и был связан с доменом, принадлежащим государственной школе в Онтарио. Дэй и его коллеги также нашли участника Википедии с похожим именем. Этот пользователь однажды редактировал страницу Википедии, посвящённую популярной канадской викторине для старшеклассников, добавив имя в раздел «Выпускники»: «Андеан Меджедович, выдающийся математик». Остальное заполнил Google. До недавнего времени Меджедович изучал математику в магистратуре Университета Ватерлоо в Онтарио. В его резюме было указано, что он интересуется криптовалютами.
Команда вздохнула с облегчением. Зачастую после того, как ответственных за атаку хакеров идентифицируют, они возвращают украденные средства в обмен на позволяющее спасти репутацию вознаграждение и звание «белого хакера» или, на сетевом жаргоне, «белых шляп». Дэй уже связался с UmbralUpsilon и предложил ему вознаграждение за безопасное возвращение токенов в размере 10% украденной суммы, выразив ему своё неохотное одобрение — «хорошо сыграно», — написал он, — но не получил ответа.
Тогда Келлар попробовал другую тактику, написав Меджедовичу и обратившись к нему по имени «Андеан». На этот раз Меджедович отреагировал, публично высмеяв пользователей Indexed в Twitter: «Вас переиграли. Вы ничего не можете с этим поделать. Такова криптовалюта». На личное письмо одного из членов команды о том, что если Андеан вернёт токены, ему заплатят 50 000 долларов, Меджедович ответил ссылкой на адрес Ethereum. «Пришлите деньги», — написал он. Но они не клюнули на наживку своего мучителя, которому, как они с удивлением обнаружили, было всего 18 лет.
Наконец, Келлар написал Меджедовичу сообщение с последней просьбой, прежде чем, по его словам, они будут вынуждены привлечь адвокатов и полицию. «Я прошу тебя сдаться сейчас и облегчить себе жизнь», — написал он. Подросток ответил «Xdxdxd» — смайликом, означающим безудержный хохот, и добавил: «Желаю удачи».
Когда Келлар и соучредители Indexed создавали платформу, они представляли её как шаг вперёд в развитии DeFi, или децентрализованных финансов, движения на основе блокчейна, которое стремится предложить более автоматизированную, менее опосредованную систему кредитования и торговли активами. Некоторые сторонники движения придерживаются утилитарного взгляда на DeFi, считая их улучшенной версией традиционных финансов с их посредниками, берущими комиссии, и со свойственной человеку медлительностью в принятии решений. Другие придерживаются более либертарианских взглядов, рассматривая DeFi как способ выхода из существующей системы и способ обойти правила и ограничения, налагаемые правительствами или корпорациями. Есть и скептики, которые считают, что всё это — мошенническая схема. Келлар, который называет себя «очень прогрессивным», принадлежит к лагерю утилитаристов. В возрасте 23 лет, бросив Техасский университет в Далласе, когда занятия информатикой перестали давать ему новые знания, он основал компанию Indexed, чтобы решить проблему торговли криптовалютами без ежедневных хлопот, связанных с управлением портфелем.
В традиционной финансовой системе, если инвесторы желают получить широкий и сбалансированный набор акций, они могут приобрести акции индексных фондов, передав повседневную задачу по покупке и продаже акций портфельному управляющему. Келлар создал аналогичную схему на блокчейне, где алгоритм управляет торговлей. Если менеджер индексного фонда ведёт портфель, содержащий базовые активы индексной акции, то алгоритм Indexed ведёт «пул» базовых токенов для каждого индексного токена. Пользователи могут обменять один или все базовые активы в пул в обмен на индексный токен — этот процесс называется «минтинг». Они также могут «сжечь» индексный токен, обменяв его обратно в пул в обмен на один или все базовые активы. Или, как в случае с биржевым фондом, пользователи могут просто покупать или продавать индексные токены на децентрализованных биржах, таких как Uniswap.
Индексные фонды принимают различные формы, для каждой из которых характерна своя инвестиционная стратегия. Некоторые, такие как S&P500, работают так: если стоимость одной из акций растет, пропорциональная стоимость этой акции в портфеле увеличивается соответственно. Другие стремятся поддерживать фиксированный баланс акций. Например, если вы хотите, чтобы акции Microsoft постоянно составляли 20% вашего портфеля, а стоимость акций выросла, портфельный управляющий продаст акции Microsoft, чтобы сохранить их долю на уровне 20%.
Келлар и его команда смоделировали Indexed на основе этого типа фонда, используя механизм под названием «автоматический маркет-мейкер» (АММ) для поддержания баланса базовых активов, как это делают многие платформы DeFi. В отличие от традиционного маркет-мейкера, AMM не покупает и не продаёт активы самостоятельно; вместо этого он помогает пулу достичь желаемого баланса активов, регулируя «пуловую цену» токенов-компонентов, чтобы дать трейдерам стимул покупать их из пула или продавать их в него. Когда пулу требуется больше конкретного токена, его цена в пуле повышается; когда пулу требуется меньше, цена снижается. Эта модель предполагала, что пользователи будут рационально взаимодействовать с протоколом, покупая по низким ценам и продавая по высоким.
Исключив менеджеров, Indexed может отказаться от комиссии за обслуживание, которую, например, взимает в размере 0,95% его более крупный конкурент, Index Coop, просто за хранение своего самого популярного индексного токена. (Indexed взимает плату за сжигание токенов и обмен активами внутри пула, но это касается лишь небольшой части пользователей). Компания также сэкономила на расходах, ограничив количество взаимодействий между платформой и сторонними организациями. Например, когда Indexed требовалось рассчитать общую стоимость пула, вместо того, чтобы проверять цены токенов на бирже, например, Uniswap, она иногда экстраполировала стоимость и вес самого большого токена в пуле, так называемого «эталона». Таким образом, платформа снижала комиссию, которая взималась за транзакции на блокчейне Ethereum. Келлар рассматривал полную пассивность как «естественное продолжение того, как уже работают индексные фонды».
Но пассивность также создавала и риски. Если в коде была уязвимость, кто-то мог воспользоваться ею напрямую, без необходимости обходить какую-либо человеческую защиту. А ограничение взаимодействия с блокчейном для снижения затрат влекло за собой компромисс: когда смарт-контракт — скрипт, который выполняется автоматически при соблюдении определённых критериев, — состоит из меньшего количества шагов, он может оставлять больше места для уязвимостей безопасности. Список взломанных криптовалютных платформ длинный и стремительно растёт: Poly Network, Wormhole, Cream Finance, Rari Capital и многие другие. «В DeFi часто говорят, что существует два типа протоколов», — говорит Дэй. «Те, которые были взломаны, и те, которые будут взломаны».
Келлар знал об одной возможной лазейке для атак: механизм, используемый Indexed для введения токена в пул. Когда происходит такая «переиндексация» — скажем, после того, как один токен обогнал другой по рыночной стоимости, чтобы претендовать на включение в фонд голубых фишек, — пул устанавливает начальную цену нового токена с помощью сложного уравнения. Одной из переменных этого уравнения является стоимость эталонного токена; если вы сможете каким-то образом нарушить ценообразование пула в отношении этого токена, в теории вы сможете заставить пул неправильно определить цену других токенов.
«Я потратил по меньшей мере две недели на изучение этого вопроса», — говорит Келлар. Но никто не обнаружил никаких ошибок, ни Келлар, ни два специалиста по безопасности, которых он нанял для проверки кода. Поэтому, по его словам, «я решил, что это не вектор атаки». Тем не менее, компания Indexed разместила на своём сайте предупреждение: «Мы уверены в безопасности наших контрактов... [но] мы не можем быть абсолютно уверены, что застрахованы от всех ошибок».
Платформа запустилась в декабре 2020 года и изначально предлагала два индексных токена: CC10, представляющий 10 главных по рыночной капитализации токенов на базе Ethereum, и DEFI5, отвечающий за пять главных токенов DeFi. Проект вскоре обрёл небольшую, но преданную аудиторию, в ней был и Дэй. Он получил докторскую степень в области теоретической информатики и степень магистра в области финансовой инженерии, где написал диссертацию по оптимизации портфеля индексов на фондовом рынке. Indexed соответствовал как его интересам, так и его относительно низкой склонности к риску. «Когда речь заходит об инвестициях вне криптовалют, я, по сути, довольно скучный», — говорит он.
Дэй и Келлар хорошо ладили. Их объединяло абсурдистское, «интернетное» чувство юмора, и, так как Дэй был экспертом по финансам со способностями к писательству, а Келлар был креативным программистом, их навыки дополняли друг друга. «Я как вордцел (человек с хорошими ораторскими навыками) на службе у шейп ротейтора (человека с математическим складом ума) по теориям Диллон», — говорит 33-летний Дэй. Он оставил работу в нефтегазовой компании и полностью перешёл в Indexed в апреле 2021 года.
На волне всплеска интереса к криптовалютам в том году Indexed взлетел, став вскоре вторым по величине и стоимости после Index Coop индексным протоколом на базе Ethereum. Они расширили свои амбиции, выпустив индексные токены и планируя выпустить обновление, которое позволило бы активам в пулах зарабатывать проценты. Balancer, платформа DeFi, на базе которой Indexed смоделировал свой код, была впечатлена настолько, что Indexed получила от неё грант — в знак уверенности в будущих перспективах компании.
Когда Indexed заработала, Меджедович, которого все зовут Энди, только начал программу обучения на степень магистра. Он собирался закончить программу за год. Он всё делал быстро. Программу по математике за 10 класс он освоил в начальной школе, среднюю школу окончил в 14, а степень бакалавра получил всего через три года обучения в Ватерлоо, одном из лучших учебных заведений Канады в области математики и информатики, и альма-матер соучредителя Ethereum Виталика Бутерина. К осени 2021 года Меджедович защитил свою магистерскую диссертацию по теории случайных матриц и планировал подавать документы в аспирантуру. «Я не могу вспомнить ни одного другого студента за все время моей работы здесь, который получил бы эту степень так рано», — говорит Дэвид Джао, профессор математики в Ватерлоо.
Как бы Меджедович ни был успешен в учёбе, его социальная зрелость отставала. Один из его бывших одноклассников, попросивший не писать его имени, чтобы он смог откровенно поговорить на деликатные темы, вспоминает, что он был «самоуверенным до такой степени, что это доходило до высокомерия» и вёл себя откровенно снисходительно по отношению к студентам, которых он считал менее умными. «Когда он что-то делал или говорил, он считал это непогрешимой, абсолютной истиной», — говорит одноклассник. Меджедович, очевидно, заигрывал и с экстремистскими идеями: его одноклассник рассказывает, что слышал, как он положительно отзывался о теории превосходства белых и евгенике. (До публикации мы запросили у Меджедовича комментарии на этот счет, но он не ответил).
Тем не менее, Меджедович находил друзей через общие интересы: шахматы и видеоигру League of Legends. Он также любил читать художественную литературу, особенно научную фантастику. В его профиле в одной из социальных сетей была цитата из романа Курта Воннегута «Колыбель для кошки» о тщетности стремления человечества к знаниям: «Тигр охотится, птица летает, человек сидит и гадает: „Почему, почему, почему?“ Тигр спит, птица садится, человек говорит себе, что понимает».
Меджедович также становился продвинутым программистом, регулярно участвовал в хакерском онлайн-соревновании под названием Code4rena, или C4, в котором разработчики соревнуются за денежные призы, которые компании выплачивают, чтобы обнаружить недостатки в своей системе безопасности. Он дважды выигрывал в конкурсах C4. «Он казался довольно дружелюбным и нормальным, искренним молодым парнем», — говорит Адам Авенир, который помогает в проведении C4 и переписывался с Меджедовичем до и после атаки на Indexed.
Затем Меджедович заинтересовался DeFi, особенно механикой AMM. «Всякий раз, когда я узнавал о новом DeFi продукте, я внимательно изучал, как он работает, и вкладывал в него деньги, если мне приходила в голову хорошая идея», — сказал он в электронном письме. (Меджедович отклонил просьбы о телефонном интервью, но согласился ответить на вопросы по электронной почте). По его оценкам, он провёл сотни часов, «играя с лежащей в основе этих продуктов математикой, экспериментируя с прибыльностью различных стратегий». Затем он написал ботов, которые совершали арбитражные сделки на этих платформах, которые увеличивали прибыль и помогали пулам работать более эффективно.
Прочитав на форуме об Indexed, он изучил его смарт-контракт и заметил в коде «возможность неправильного ценообразования» — инструмент, который, как и опасался Келлар, может позволить пользователям исказить внутренние расчёты цены пула при введении новых токенов. Он также увидел, что можно обойти защиту, ограничивающую объём определённых сделок внутри пула. «Сначала я не поверил, — сказал он. Он проделал расчеты несколько раз, и «на бумаге это сработало». Следующий месяц он потратил на написание скрипта для эксплойта уязвимости.
Он также связался с командой Indexed по Discord под ником UmbralUpsilon, задавая базовые вопросы о составе активов и ценообразовании и предлагая написать арбитражного бота для платформы. Оглядываясь назад, Дэй говорит: «Я подозреваю, что он хотел узнать у меня о возможных прорехах в безопасности, которыми он мог бы воспользоваться». Келлар и Дэй утверждают, что информация, которой они поделились, не сыграла значимой роли в атаке.
Наконец, в середине октября Меджедович был готов к развёртыванию кода. И, что не менее важно, два крупнейших пула Indexed как раз созрели для «переиндексации». Всё, что им требовалось, — это ввести минимальное количество нового токена — в обоих случаях это был Sushi, токен, соответствующий DeFi бирже SushiSwap.
Эксплойт уязвимости требовал выполнения сотен команд, объяснение которых в судебных документах заняло десятки страниц. Но процесс состоял из нескольких ключевых шагов. Для атаки на пул токенов, составлявших индекс DEFI5 (а позже — на пул CC10), Меджедович написал программу, которая брала «флэш-кредит» — механизм в криптовалютной торговле, предоставляющий пользователям доступ к средствам при условии их возврата в течение одного и того же набора заранее запрограммированных транзакций — на сумму 157 миллионов долларов. Затем его сценарий использовал значительную часть заёмных средств для скупки почти всего имеющегося в пуле токена UNI, соответствующего DeFi бирже Uniswap. Внезапный дефицит UNI вызвал резкий скачок его цены в пуле, поскольку алгоритм стремился побудить трейдеров прекратить обмен UNI и начать обменивать его обратно, чтобы восстановить первоначальный баланс. Чем больше UNI покупал Меджедович, тем больше росла его цена, в конце концов достигнув 860-кратного превышения его внешней рыночной цены. В общей сложности он потратил токены на сумму 109 миллионов долларов, чтобы купить UNI, который на самом деле стоил всего 5,2 миллиона долларов.
Атака на DEFI5, 7 основных шагов
-
Код Меджедовича берёт «флэш-кредит» на 157 миллионов долларов, состоящий из токенов-компонентов DEFI5, с указанием, что средства будут возвращены (с процентами) до завершения выполнения контракта.
-
Программа тратит 109 миллионов долларов на покупку почти всех токенов UNI пула DEFI5, приобретая партии по быстро растущим ценам — в конечном итоге в 860 раз превышающим рыночную цену UNI. UNI является эталонным токеном пула, на основе которого он экстраполирует свою общую стоимость, и при резком сокращении количества UNI стоимость DEFI5 снижается в 380 раз.
-
В процессе, известном как «минтинг», скрипт Меджедовича обменивает купленные им UNI плюс те, что он взял в долг — общей стоимостью 53,2 миллиона долларов — на недооценённые токены DEFI5 стоимостью 153,8 миллиона долларов.
-
Код берёт ещё один флэш-кредит, на этот раз на токен Sushi на сумму в 2,4 миллиона долларов, который вводится в пул DEFI5 в процессе, известном как «переиндексация».
-
Программа отдаёт Sushi в пул, обходя ограничение на количество нового токена, которое может быть введено. Затем скрипт обменивает Sushi всё ещё на недооценённые токены DEFI5.
-
Скрипт «сжигает» токены DEFI5, обменивая их на свои токены-компоненты, которые теперь включают Sushi. Посредством повторяющегося процесса минтинга и сжигания, пользующегося низкой стоимостью DEFI5, код в конечном итоге обменивает токены Sushi стоимостью 4 миллиона долларов на другие токены стоимостью 21 миллион долларов.
-
Почти 160 миллионов долларов в виде флэш-кредитов погашены. Оставшиеся токены, которые на тот момент стоили 11,9 млн долларов, остаются в кошельке Ethereum.
На первый взгляд это была бы безумная сделка, за исключением того, что UNI сыграл уникальную роль в пуле DEFI5. Это был эталонный токен — токен, на основе которого пул экстраполировал свою общую стоимость. Когда количество UNI в пуле резко сократилось, пул стал оценивать свою собственную стоимость в 380 раз меньше, чем она была на самом деле. В результате чего количество недавно введённого токена Sushi, которое требовалось для минтинга токена DEFI5, резко упало. Если бы Меджедович захотел, он мог бы обменять Sushi стоимостью 3 200 долларов на токены DEFI5 стоимостью 1 172 000 долларов. И если бы он просто сделал это, с Indexed всё было бы в порядке. Протокол устанавливает ограничения на количество новых токенов, которые пользователи могут обменять в пул, поэтому он смог бы получить только около 1,5% от стоимости пула, что, учитывая комиссии за транзакции, было бы для него невыгодно.
Вместо этого скрипт Меджедовича взял ещё один флэш-кредит, состоящий из токенов Sushi на сумму 2,4 миллиона долларов. И вместо того, чтобы обменять их в пул, он подарил их ему — на этот, казалось бы, иррациональный шаг, алгоритм Indexed не был рассчитан. Это «пожертвование» переполнило пул и обошло обычный лимит торговли новыми токенами. Это позволило программе Меджедовича свободно обменивать переоценённые Sushi на недооценённые токены DEFI5, затем обменивать их на базовые активы пула, выплатить кредиты и оставить себе остаток, который на тот момент составил 11,9 миллионов долларов. В результате атаки на пул CC10 общая сумма похищенных средств достигла 16 миллионов долларов.
В электронных письмах Меджедович вспоминает, что был удивлён тем, что эксплойт удался. «У меня было всего несколько попыток для того, чтобы схема сработала, прежде чем у меня закончились бы средства для оплаты транзакционных комиссий блокчейна» — написал он.
«Это было, безусловно, очень впечатляюще», — говорит Келлар. «Но это было бездарным применением его таланта».
Если Меджедович и думал о возврате токенов, то недолго. После того как команда Indexed идентифицировала его, он опубликовал в Twitter дерзкое стихотворение: "Одна лягушка прыгает в пул, делает кое-что крутое; / Они пытаются сварить её. "Не проводи эти сделки",— просят они в слезах, / Но лягушку это не тревожит, потому что на её стороне Бог«. Комментаторы его раззадоривали. Один разместил эмодзи с короной. Другой написал: «Обожаю этого парня».
Некоторые обратили внимание на использование им расистских выражений и тропов: Ethereum-адрес, который Меджедович использовал для атаки, включал число «1488» — условное обозначение неонацистского лозунга, а в самом коде он 16 раз написал слово на букву «н». Один из пользователей Twitter назвал его «Дилан Руф от пулов платформы Balancer», что является отсылкой к массовому стрелку, убившему девять чернокожих людей в церкви в Чарльстоне, штат Северная Каролина, в 2015 году. Меджедович лайкнул этот твит.
Несколько недель после атаки стали настоящим адом для Келлара и Дэя. Они метались между восстановлением протокола, ответами на вопросы в Интернете и разработкой плана компенсации для держателей похищенных токенов. По жестокому стечению обстоятельств, кот Дэя, Финни, погиб, попав под машину.
9 декабря, почти через два месяца после атаки, Келлар и Дэй подали иск против Меджедовича в Онтарио на основании того, что его действия можно расценивать как мошенничество и его необходимо заставить вернуть токены владельцам. Оказалось, что они были не первыми, кто это сделал. Анонимная компания Cicada 137 LLC, зарегистрированная в штате Делавэр, уже подавала иск на Меджедовича, но дело было закрыто, и Келлар и Дэй узнали об этом только после подачи собственного ходатайства. Согласно судебной жалобе, Cicada 137 — крупнейший держатель токенов, украденных в результате эксплойта: стоимость украденных токенов на момент атаки составляла около 9 миллионов долларов. (Бенджамин Батгейт, адвокат Cicada 137, отказался назвать своего клиента или клиентов).
К тому времени, когда Келлар и Дэй обратились в суд, Cicada уже получила постановление о замораживании оспариваемых токенов. Суд не мог реально контролировать кошельки Меджедовича, но если бы он перевёл куда-то средства, он бы нарушил закон. Cicada также получила ордер на обыск в доме родителей Меджедовича, где он жил. Но к тому моменту, когда 6 декабря обыск был проведен, он уже уехал, забрав с собой компьютерное оборудование. Его родители и младший брат заявили, что не знают, где он находится.
В своей жалобе адвокаты Келлара и Дэя заявили, что два конкретных этапа атаки нарушали законы, запрещающие манипулирование рынком и компьютерный взлом. Одним из этих этапов был обмен почти всех токенов UNI из пула DEFI5 — иррациональная с точки зрения обычных обстоятельств сделка, которая исказила ценообразование таким образом, что Меджедович смог выкупить токены из-под носа пользователей Indexed, которых алгоритм вынудил совершить продажу.
«Единственной целью этой сделки было ввести в заблуждение держателей токенов, чтобы заставить их расстаться с токенами на тех условиях, на которые они никогда бы не согласились», —говорит адвокат Стивен Эйлвард, представляющий интересы Келлара и Дэя. «Мы считаем, что это форма манипулирования рынком». Тот же аргумент применим к манипуляциям Меджедовича с пулом CC10.
Вторая незаконная сделка, по их мнению, была совершена, когда Меджедович переполнил пул бесплатными токенами Sushi, тем самым обманным путём заставив алгоритм позволить Меджедовичу обойти ограничение на объём определённых сделок. Эйлвард называет это «намеренным действием Андеана по отключению протокола безопасности, похожим на отключение системы безопасности в банке». Он утверждает, что это подпадает под «чрезвычайно широкое» юридическое определение взлома в Канаде, которое можно трактовать как «нарушение предписанного назначения компьютерной системы».
Меджедович официально не ответил ни на один из исков; он сказал мне, что у него даже нет адвоката в Онтарио. Но в наших переписках по электронной почте он утверждал, что совершил совершенно законную серию сделок. Ничто из того, что он сделал, «не связано с получением доступа к системе, доступ к которой мне не был разрешён», — сказал он. «Я не крал ничьи приватные ключи. Я взаимодействовал со смарт-контрактом в соответствии с его собственными общедоступными правилами». Люди, которые потеряли интернет-токены в этой сделке, сами стремились использовать смарт-контракт в своих интересах и занимали рискованные торговые позиции, которые они, очевидно, не до конца понимали«. Меджедович добавил, что, реализуя эту стратегию, он взял на себя «существенный риск». В случае неудачи он мог потерять «довольно большой кусок моего портфеля». (3 ETH, которые он мог бы потерять на комиссии, стоили на тот момент около 11 000 долларов).
Этот случай поднимает ряд спорных вопросов о том, как пользователям можно взаимодействовать с кодом на блокчейне. Например, истцы утверждают, что Меджедович сделал «ложное заявление», манипулируя стоимостью токенов в пулах. Но кто это сделал — Меджедович или алгоритм? Барри Сукман, адвокат из Торонто, специализирующийся на информационных технологиях, говорит, что это различие не имеет значения: «Отдельные лица несут ответственность за деятельность технологий, которые они контролируют».
И если Меджедович занимался обманом, то кого обманули? Это одно из оснований, на котором адвокат из Далласа Эндрю Лин, консультирующий Меджедовича, но официально не участвующий в рассмотрении исков против него в Онтарио, отвергает аргумент о ложном представлении. «Непонятно, кого именно он ввёл в заблуждение», — говорит Лин. «Он написал строчки кода. Сам код не является ни истинным, ни ложным».
Невозможно предсказать, какое решение примет судья, не зная всех фактов, которые могут всплыть в ходе расследования, говорит Андреа Матвишин, профессор права и инженерии в Государственном Университете Пенсильвании, изучающая вопросы кибербезопасности. Но дело вряд ли можно назвать однозначным, особенно учитывая аргумент Меджедовича о том, что он взял на себя риск. «Люди на Уолл-стрит часто получают большую и быструю прибыль, когда видят гэп на рынке и проводят стратегические исследования», — говорит Матвишин. «Я могу представить себе мир, где судья взвешивает различные факторы, после изучения технических и финансовых особенностей подобного сценария, и приходит к выводу, что там присутствовали переменные, которые делают это поведение более похожим на высокоспекулятивный сценарий торговли».
Неопределённость усугубляет правовая и нормативная «серая зона», в которой действуют DeFi. Любой человек, обладающий техническими знаниями, может создать инвестиционный инструмент, разместить его в Интернете и подвергнуть пользователей возможным эксплойтам. Председатель Комиссии по ценным бумагам и биржам США Гэри Генслер заявил, что он планирует контролировать криптовалютные торговые платформы, а Дэн Берковиц, бывший член Комиссии по торговле товарными фьючерсами, а ныне генеральный советник SEC, назвал DeFi «гоббсовским рынком» с продуктами, которые нарушают законы о торговле товарами. В марте Белый дом издал постановление с призывом к принятию нормативных актов, которые, помимо прочих целей, позволят «снизить риски, которые цифровые активы могут представлять для потребителей, инвесторов и защиты бизнеса».
Предлагаемые правила, возможно, не смогли бы предотвратить атаку на Indexed, но они могут помочь снизить риски и помочь в информировании трейдеров о потенциальных опасностях, говорит Райан Клементс, профессор права из Университета Калгари. Например, можно было бы перед запуском сделать обязательным проведение аккредитованными компаниями «аудита кода», а также регистрацию под настоящим именем.
Однако, говорит Клементс, обеспечение соблюдения закона будет сложной задачей. Правительства не могут «блокировать» децентрализованные платформы так, как они могут блокировать сайты, поскольку они работают на глобально распределённых блокчейнах. И даже если бы они могли это сделать, могли бы появиться платформы-имитаторы.
Пуристы DeFi предпочли бы держать правительства подальше от своих платформ. Крис Блек, управляющий сайтом DeFi Watch, написал в Твиттере, что атака на Indexed была «позором для DeFi», и раскритиковал команду за то, что она обратилась за помощью к такому централизованному институту, как суд. Келлар говорит, что не видит альтернативы — ведь у DeFi нет собственной системы правосудия. И, в любом случае, он считает, что DeFi должны действовать в рамках существующего правового поля. «Я думаю, что они должны быть децентрализованными в плане управления и менеджмента проектов», — говорит он. «Но нам нужен центральный орган для обеспечения соблюдения основных правил».
Через неделю после того, как Келлар и Дэй подали свой иск, Меджедович явился на виртуальное слушание в Zoom. Его камера была выключена, и он почти не говорил. Судья приказал ему либо передать оспариваемые активы нейтральной третьей стороне, либо лично явиться в суд на следующей неделе. Когда подошел срок, Меджедович всё ещё не передал токены и не явился в суд. Судья выдал ордер на его арест.
Теперь дело встало до тех пор, пока или власти смогут найти Меджедовича, или он сам решит явиться в суд. В несвязанных с криптовалютой делах, когда истцы получают заочное решение, суд просто обязывает банк заморозить счёт обвиняемого или передать его активы. Но из-за самой природы криптокошельков, доступ к которым возможен только с помощью приватного ключа, власти не могут добраться до токенов Меджедовича без его участия. Когда я спросил его, потратил ли он хоть что-то из полученной прибыли, он ответил: «Я не верю в трату денег». Кто-то недавно перевёл токены на сумму почти 400 000 долларов с использовавшегося в атаке на Indexed кошелька на сервис микширования криптовалют, который делает токены неотслеживаемыми, что позволяет предположить, что Меджедович может иметь доступ к части средств.
Почти все, с кем я разговаривал, хотят, чтобы Меджедович явился публике, если не для того, чтобы они могли вернуть свои деньги, то для того, чтобы суд смог рассмотреть спорные юридические вопросы. Батгейт, адвокат Cicada 137, говорит, что есть «веские основания полагать», что Меджедович бежал из страны. Правоохранительные органы Онтарио говорят, что не ведут активного преследования, а федеральная полиция Канады и ФБР отказались от комментариев. Но от того, что он будет скрываться, его проблемы с законом не исчезнут. «Я могу заверить Андеана Меджедовича, что судебный процесс не похож на изысканное вино, которое улучшается с возрастом», — написал судья Фредерик Майерс, который рассматривает дело.
Меджедовича симпатии общественности, мягко говоря, мало волнуют. В своих электронных письмах ко мне он чередовал прямые ответы с явным троллингом. Когда я спросил, даёт ли ему кто-то советы, он выбрал последнее: «На протяжении всего этого процесса я обменивался личными сообщениями со своим наставником Питером Тилем.... Именно он подстрекал меня сделать это!». (Представитель Тиля отказался от комментариев). Другие ответы включали отсылки к «симуляции предков», семьям с «бриллиантами, которые они хранят на других планетах», и программе ООН «по проникновению в чужие дымоходы с целью оставить копии трудов Фукидида под подушками». Задавать вопрос о том, действительно ли он имеет в виду то, что говорит, согласно постулатам интернетного шитпостинга, почти старомодно.
Меджедович спокоен относительно своего будущего: «Я не беспокоюсь о том, чтобы „найти работу“. Работа в клетке не совпадает с моим представлением о хорошей жизни». Он не исключил возможности создания собственных продуктов: «Если у меня когда-нибудь появится идея нужной и полезной технологии, я, конечно, создам её. Пока что меня не посещало божественное вдохновение в этой области».
Тем временем команда Indexed продолжает работать. В январе она запустила индексный токен, но с тех пор общая стоимость платформы упала ещё ниже, как и всё пространство DeFi, и выпуск запланированного обновления был приостановлен. «Ни у кого из нас нет прежнего желания работать над проектом после всего, что произошло», — говорит Келлар. Дэй добавляет, что «большинство людей понимают, что Indexed в полной мере не восстановится».
Что до хорошего, то у Дэя появилась новая кошка, Китнисс. И каким бы болезненным ни было нападение и его последствия, оно привлекло внимание: на Келлара и Дэя сыпятся предложения о работе в DeFi. Дэй также подает документы на поступление в юридические школы. «Не так много людей, которые могут преодолеть разрыв между техническими и юридическими рамками», — говорит он. «Я решил, что сам этим займусь».
В феврале, когда Меджедович всё ещё находился в бегах, Келлар и Дэй полетели на конференцию ETHDenver, ходили на вечеринки, посещали дискуссионные встречи и встретились с коллегами-разработчиками. Но большую часть времени они провели, общаясь друг с другом. Это была их первая встреча офлайн, и им было, что обсудить. Дэй отметил этот момент их совместным селфи: на нём Дэй улыбается, а Келлар выглядит смущённым. Он опубликовал его в Твиттере с подписью: «Отряд шейп ротейтеров на выезде».