Шрифт:
Закладка:
Он сообщил, что в первую очередь разработчики рассмотрят вариант софтфорка – то есть они не будут менять историю блокчейна, но изменят правила на будущее, чтобы хакер больше не смог поступить так с The DAO или любыми дочерними DAO. Это помешает ему (но при этом и всем остальным вкладчикам The DAO) вывести деньги даже по истечении двадцати семи дней.
Виталик предложил делать софтфорк, начиная с блока 1760000, который с высокой вероятностью выпадал на период в 27 дней. Напоследок он предостерег авторов смарт-контрактов от того, чтобы писать код с уязвимостью к рекурсивным вызовам и создавать контракты больше чем на 10 миллионов долларов (читай: конец неограниченным продажам токенов). Он не упомянул, что на всякий случай готовится и хардфорк.
После публикации его пост перестал открываться от наплыва пользователей, и людям пришлось скопировать текст на Reddit, чтобы его прочитали другие.
Как это ни удивительно, в 13:00 по берлинскому времени, вскоре после поста Виталика, атака прекратилась. К этому времени хакер собрал 3 641 694 ETH – 78 миллионов долларов по верхней стоимости ETH в тот день, 49 миллионов по нижней. Он вытянул 31 % всего ETH, хранящегося в The DAO. Никто не знал, почему он остановился, но команда Slock.it и другие разработчики предполагали, что, увидев угрозу Бутерина, преступник решил попробовать избежать софтфорка, забрав лишь часть ETH. (Несколько лет спустя Грифф предположит, что у хакера просто перестал работать контракт.)
День эксплойта стал настоящим адом для держателей ETH и токенов DAO. В день самого крупного объема торговли эфиром – когда из рук в руки переходило более 199 миллионов долларов – стоимость Ethereum рухнула с 21 доллара перед атакой до 14 после. Из-за потери 31 % ETH и обвала стоимость The DAO, которая еще утром составляла около 250 миллионов, в нижней точке 17 июня скатилась до 109 миллионов. Люди торопились избавиться от своих токенов, и цена рухнула с 0,19 доллара в предыдущий день до 0,06 доллара; на следующий она сползла до 0,05 доллара. Те, кто в панике продал свои токены DAO, потерял около двух третей вложенных средств. Пара десятков человек провели сплит, создав дочернюю DAO, но и при этом они выводили только 69 % принадлежавшего им эфира.
Несмотря на драматизм событий, напрашивался философский вопрос: взлом ли это? Или вообще ограбление? Может показаться, что это всего лишь умозрительный вопрос об очевидно неэтичном поступке. Но Виталик, исследователь до мозга костей, запостил в блоге текст на эту тему, который бурно обсуждали в сообществе. Поскольку коду разрешалось выводить эфир в дочернюю DAO и, поскольку девиз The DAO – «Код есть закон», рекурсивный вызов можно было рассматривать как законное использование контракта. Виталик делал вывод: кража или потери из-за смарт-контракта, «в сущности, зависят от разницы между реализацией и намерениями». Отсюда следует решение: укрепить безопасность, чтобы снизить вероятность таких промашек.
Человек, назвавшийся взломщиком, написал менее философскую версию этого поста, которая начиналась так:
Для The DAO и сообщества Ethereum.
Я внимательно изучил код The DAO и решил поучаствовать в проекте, найдя возможность, благодаря которой сплит вознаграждается дополнительным эфиром. Я воспользовался предоставленной возможностью и законно приобрел 3 641 694 эфиров, и хотел бы поблагодарить The DAO за это вознаграждение…
Я разочарован теми, кто считает использование этой умышленно созданной возможности «кражей». Я пользуюсь кодом в соответствии с условиями смарт-контракта, и моя юридическая фирма уведомила меня, что мои действия целиком соответствуют уголовному и гражданскому праву Соединенных Штатов. Для справки см. условия The DAO:
«Условия Создания The DAO представлены в виде кода смарт-контракта, существующего в блокчейне Ethereum под транзакцией 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Ни это объяснение, ни какие-либо другие документы или сообщения не могут изменить существующий код The DAO или добавить новые обязательства или гарантии. Любые объяснения или описания существуют только для ознакомления и не заменяют и не изменяют договорные условия кода The DAO в блокчейне. Если вы считаете, что между данным описанием или функционалом кода The DAO под транзакцией 0xbb9bc244d798123fde783fcc1c72d3bb8c189413 существуют конфликты или расхождения, обратите внимание, что все условия Создания The DAO контролируются кодом The DAO».
Также он заявил, что «софт- или хардфорк будут приравниваться к конфискации эфира, принадлежащего мне по праву и полученного законными методами в соответствии с условиями смарт-контракта» и что хардфорк «перманентно и неисправимо разрушит все доверие не только к Ethereum, но и к области смарт-контрактов и технологии блокчейна».
Пользователи Reddit писали под постом Виталика об атаке и софтфорке похожие комментарии: «Я сделал плохой контракт в первые дни ETH и потерял 2к ETH, можно их тоже вернуть?» IAMnotA_Cylon ответил: «Я знаю, что это шутка, но в ней только доля шутки. Ethereum работал именно так, как задумано. Я не считаю, что протокол нужно обновлять, если он работает, как задумано. При инвестировании вы соглашаетесь с риском». Но другой пользователь съязвил: «Мужик, который угнал мою тачку, знает о проводке в ней больше меня. Значит, это не преступление».
Еще один комментатор подытожил дилемму так: «Ethereum должен решить: либо отдать „хакеру“ деньги, которые он получил по праву и по условиям смарт-контракта, либо в „смарт-контрактах“ нет смысла».
Пока сообщество билось над философскими вопросами, другой держатель токенов DAO решил подойти к ситуации совсем иначе. В начале 2016 года Андрей Терновский, учредитель и СЕО социального вебкам-феномена Chatroulette, переехал в Швейцарию, в Цуг, ради более выгодного налогообложения, а также близости к университету. Несколько лет назад, когда он разместил на своем сайте рекламу от Google AdSense, Google закрыл его аккаунт, потому что ему было всего семнадцать лет. Позже технологический гигант послал ему чек в Россию. Терновский полагал, что чеки существуют только в кино, и подумал: «Почему Google шлет чеки? Что мне вообще делать с чеком американского банка?» К тому же Google задавал самые разные вопросы и просил заполнить анкеты по юридическим причинам. Даже PayPal, созданный для онлайн-платежей, не устраивал Терновского. И тут он узнал о биткойне. Через него можно рассчитываться с пользователями напрямую. Никто не задает вопросов. Он тут же увидел его превосходство.
Приехав в Цуг, он услышал о местной звезде криптовалют, Ethereum, и закупил ETH по цене от 6 до 10 долларов. Примерно в то же время начался краудсейл The DAO, он поучаствовал