Лора Шин – На шифре. Инсайдерская история криптовалютного бума (страница 35)
Грифф четко обозначил, что он за хардфорк, и сказал: «Если можно откатить все существование The DAO… другие атаки на смарт-контракты, особенно такие крупные, уже не будут столь прибыльными. Они потеряют смысл».
Андрея из Chatroulette устраивал и софтфорк. Участникам вернули бы 70 % средств – не так уж плохо, учитывая, что произошло. Но, читая Slack-канал The DAO, он пришел к выводу, что сообщество предпочтет хардфорк. Для него это было очередной причиной, почему криптовалюты так привлекательны. Все открыто, надо только прочитать. Это тебе не акции, где нужно быть инсайдером. Можно заглянуть в репозиторий GitHub, зайти в Slack, посмотреть, что говорит народ. Андрей знал мнение программистов, видел, к чему склоняется сообщество. Хардфорк неизбежен. Токены DAO торговались по курсу от 5,4 до 12 центов – или 0,005–0,009 ETH. Он произвел свои подсчеты.
В среду 22 июня, на следующий день после того, как группа «Робин Гуд» спасла 7,3 миллиона ETH, Лефтерис написал очередной длинный пост в пользу хардфорка. Некоторые детали еще предстояло обсудить – например, конкретный курс для возмещения (ведь некоторые платили больше 1 ETH за сотню токенов), но он сказал, что на это уйдет недели три максимум. «Всем вернется 100 % эфира – гарантированно», – написал он.
Затем он объяснил, что в случае софтфорка требовалось бы возвращать деньги, которые разошлись как минимум по четырем разным вселенным. 1. В главной DAO майнерам придется отказаться от всех транзакций из нее, за исключением тех, что инициированы мультисигом куратора и контрактом RHG. Когда майнеры начнут цензурировать блокчейн, RHG атакует «темную» DAO (№ 59, принадлежащую первому хакеру) и переведет оттуда эфир в дочернюю DAO. Хакер не сможет последовать за ними, потому что его транзакции будут заблокированы. Пройдя остальные шаги создания дочерней DAO и все периоды голосования – и «при условии, что все пойдет как надо», – они получат доступ к 3,64 миллиона ETH хакера через семьдесят один день. 2. 7,6 миллиона спасенного эфира в разных DAO Белых шляп, проходящие сложный процесс вывода, придется ждать тридцать восемь дней. 3. Затем – экстрабаланс в 344 907 ETH. Экстрабалансом назывался излишек, выплаченный теми, кто вложился в The DAO по курсу не 1 ETH за 100 токенов, а 1,05–1,5 ETH. Эти деньги станут доступными всего через четырнадцать дней. 4. Наконец, все темные мини-DAO хакеров-подражателей, воспользовавшихся эксплойтом главной DAO: «Не стоит оставлять их без наказания», – написал Лефтерис. Их ждало бы то же, что и темную DAO. Назвав софтфорк «сложным процессом», Лефтерис предупредил, что он «сильно отвлечет сообщество Ethereum», но признал, что «таким образом держателям токенов вернется значительная часть эфира».
Последний вариант – на самом деле и не вариант вовсе: без форков. «Скажу как есть – это кошмарный сценарий», – написал он. На момент публикации поста кто-то уже снова вкладывал эфир в The DAO – «наверняка со злым умыслом», сказал Лефтерис. Без форка войны DAO продолжались бы вечно.
И снова, как и во всех постах до этого, он под конец рекомендовал хардфорк, но добавил: «Я верю, что сообщество сделает правильный выбор».
Пока он писал, группа «Робин Гуд» выяснила, что операция по спасению прошла не так уж гладко. В DAO Белых шляп проникли семь других субъектов, и RHG опознали все, кроме двух – аккаунта и контракта, то есть двух основных ингредиентов, которые необходимо получить для атаки повторного входа. Код контракта не был открыт. И заодно эта парочка – аккаунт и контракт – вошла и во все остальные сплиты. Так бы поступил только тот, кто тоже планировал атаковать (или спасать) DAO. Тогда они и решили, что новое лицо в DAO Белых Шляп – хакер. Можно было опять перевести средства, но нападающий, скорее всего, просто присоединится к ним в следующем сплите. Это будет вечный День сурка. Лефтерис указал в посте адрес «потенциального злоумышленника»: 0xe1e278e5e6bbe00b 2a41d49b60853bf6791ab614.
На следующий день «потенциальный злоумышленник» выложил открытое письмо на Reddit через Bitcoin Suisse – биржу Никласа Николайсена, человека пиратской внешности, который помог Ethereum Foundation обосноваться в Цуге. Николайсен объяснил, что владелец адреса 0xe1e278e5e6bbe00b2a41d49b60853bf6791ab614 сам вышел на связь с Bitcoin Suisse и опубликовал набор цифр и букв – криптографическое доказательство, что аккаунт действительно принадлежит автору письма. Bitcoin Suisse писали:
Мы получили сообщение следующего содержания от владельца вышеупомянутого адреса:
Привет.
Итак, я решил выйти на свет.
У меня для вас следующее сообщение. Я не верю, что переводить куда-либо средства из DAO Белых шляп будет в наших интересах, и я этому помешаю.
Сейчас я рассматриваю варианты. Скоро еще выйду на связь.
Фабиан написал: «Я могу подтвердить, что это он», – и запостил хеши, доказывающие, что сообщение действительно поступило от «так называемого злоумышленника в DAO Белых шляп» – аккаунта 0xe1e.
Сообщество не знало, что думать о послании. Одни считали, что нападающий хочет их расколоть, чтобы они не приняли решение о форке, – то есть тянет время. Но один пользователь Reddit написал: «Это бы привело к обратному эффекту и укрепило поддержку форка».
С тех пор как Андрей понял, что Ethereum пойдет на хардфорк, он собирал токены DAO, как кит – планктон. Они торговались от 5,4 до 12 центов – на 35–60 % ниже своей стоимости до атаки. Если чутье его не подводило, скоро сотня токенов снова повысится до прежней стоимости в 1 ETH и он получит куда больше эфира, чем вложил в The DAO.
Ему нравилось возиться со скриптом The DAO, изучать функции, смотреть, что можно делать со смарт-контрактами. Он попытался написать такой же, как у хакера, для атаки повторного входа. Увидев, как RHG спасает средства, он решил войти вслед за ними во все дочерние DAO с собственными контрактами. Больше этого никто не сделал, а значит, даже первый хакер уже не принимал участия в войнах DAO. Когда Лефтерис и Авса попросили хозяина адреса 0xe1e278e5e6bbe00b2a41d49b60853bf6791ab614 назваться, Андрей промолчал. Он хотел и дальше скупать токены задешево.
Он решил обратиться к сообществу и попросил свою биржу Bitcoin Suisse выложить сообщение на Reddit. Увидев, как участник RHG «подтвердил» личность отправителя, он рассмеялся, представив, что если за этим наблюдает первый хакер, то он наверняка теряется в догадках: «Что за хрень! Это еще кто?»
Из-за угрозы новых атак стоимость токенов не росла; Андрей продолжал скупать их со скидкой.
Со времени атаки от сообщества постоянно поступали различные предложения и петиции в попытках либо повлиять на результат, либо измерить поддержку хардфорка. Одна петиция на change.org за хардфорк набрала 750 подписей. Самый популярный комментарий принижал нерушимость смарт-контрактов: «В крипте есть только один священный контракт – это общественный договор. Без него мы просто стая диких животных… Пора уже провести черту между тем, что отстаивает Ethereum, и тем, за что выступают анархо-фундаменталисты».
Опрос на Consider.it показал: за хардфорк выступает намного больше пользователей, чем против. В одном популярном комментарии «за» говорилось: «Мы покажем, что можем сами поддерживать порядок и защищаться и что сообщество дает сдачи ворам. И мы по-прежнему децентрализованы, потому что для принятия этого решения нужно большинство майнеров». Со стороны «против»: «Это предложение спасет наше DAO, но убьет Ethereum».
Это что касается более академических дебатов. А тем временем Стефан Туаль из Slock.it и Эмин Гюн Сирер, он же Гюн, – ребячливый профессор из Корнелла, перед атакой призывавший в статье к мораторию The DAO, – ввязывались в споры по всему твиттеру, Reddit и CoinDesk. 20 июня Стефан твитнул слайд из лекции Гюна со скриншотом его переписки по электронной почте за шесть дней до атаки. Там говорилось:
СБ, 11 июня 2016, 17:42:37 0400 Эмин Г Сирер <> написал
Всем привет
Я уверен, что знаю, как опустошить The DAO.
ВС, 12 июня 2016 13:34:09 – 0400 Эмин Гюн Сирер << написал
…Я все еще уверен, что у DAO-сплита есть уязвимость. Она нарушает паттерн вывода средств, обнуляя поле балансов только после окончания вызова. И я думаю, что перевести токены вознаграждения в откалывающуюся DAO возможно несколько раз. Это находится на строках 640–666 (ха!) в DAO.sol. Или я не прав?
Стефан твитнул: «.@el33th4xor [Гюн] знал об эксплойте, но не известил группу безопасности The DAO, в которую вступил 31/5 #theDAO».
Гюн был заблокирован и потому не видел твит, но написал: «Эти парни [Slock.it] готовы на все, лишь бы не признавать неудачу и не брать на себя ответственность». Он предложил подвергнуть Slock.it социальной изоляции.
Тейлор ван Орден из MyEtherWallet написала на Reddit под своим ником insomniasexx: «Хватит цапаться, как пятилетка, и повзрослей уже, черт возьми. Понятно, если бы ты был троллем. Но ты же профессор, на тебя люди смотрят».
Гюн ответил, что после публикации его статьи с призывом к мораторию The DAO Стефан и Грифф в частном канале предположили, что он знал о баге, но не сообщил, а потом обвинили в том, что он и является хакером. «Я так старался помочь им и сообществу, а они меня обвиняют в уголовном преступлении» (выделено Гюном).