На шифре. Инсайдерская история криптовалютного бума - Лора Шин
Шрифт:
Интервал:
Закладка:
Он решил во что бы то ни стало разрулить эту проблему. Пока остальные писали софтфорк для клиентов Geth и Parity (до того, как стало известно о потенциальных DoS-атаках), он думал только о хардфорке. У него было пятеро детей (одному – пять месяцев), но он о них практически позабыл. Ушел из соцсетей. Переехал к родителям. Там встречались он, Грифф и Саймон, пока его мать молча приносила рагу из говядины с картошкой и морковью или азиатскую лапшу из магазина. Грифф, бывший врач-массажист, видел, как напряжен Кристоф, и иногда разминал ему плечи. Стараясь не задумываться о возможных исках, Кристоф верил: с поддержкой Бога, жены и семьи худшее, что может с ним случиться, – это если он потеряет все свои деньги навсегда. Каждый день он гулял по часу и молился больше обычного, сблизившись с Богом как никогда в жизни.
Тяжелее всего было то, что для исправления ситуации ему приходилось руководить людьми, над которыми он не имел никакой власти. Нужно было обновлять клиенты протокола Ethereum, а он уже не работал в EF. В первые дни работы в Ethereum он предотвращал хардфорки. Тогда его даже не замечали. Теперь же он без конца писал посты, комментарии на Reddit, общался с программистами фонда и созванивался с Мин и Виталиком. Но фонд не желал брать решение на себя. Он предлагал решать сообществу. А поскольку в Ethereum нет формального управления, получалось, что люди в интернете просто переливали из пустого в порожнее.
И в интернете царил хаос. Все изображали из себя философов, размышляя на тему, является код законом в последней инстанции или нет. Глядя на их дебаты, Кристоф думал: «Это свободный рынок. Если они хотят навсегда оставить цепочку с The DAO и краденными средствами – пожалуйста. Решать только им». Он писал хардфорк, хотя и не представлял, понадобится ли он вообще. Впрочем, откровенно говоря, ни один вариант не был идеален. Если выбрать хардфорк, это решит проблему с The DAO, но повредит Ethereum. Софтфорк выглядел перспективнее, пока не оказался неосуществимым, – и от него отказываться было еще обиднее из-за утраты обязательных одно- и двухнедельных периодов ожидания для разных процессов, которые давали больше времени на поиск решения.
Но, написав код для хардфорка, посмотрев результаты голосования на carbonvote.com и увидев, как форумы и петиции демонстрируют 80–90-%-ную поддержку хардфорка, Кристоф зашел в чат скайпа, насчитывающий 150 человек – программистов Ethereum, кураторов The DAO, крупных инвесторов и других влиятельных лиц, и сообщил, что сообщество сделало выбор. Он показал свои спецификации хардфорка. Люди из Slock.it и EF тут же начали перекладывать ответственность друг на друга. Никому не хотелось стать тем, на кого покажет регулятор и скажет: «Это ты принял решение». EF не собиралось официально участвовать в этой ситуации с The DAO, и Кристофу оставалось искать кого-нибудь в Ethereum, кто внедрит хардфорк. Гэвин имплементировал его в Parity без промедления, но Parity охватывал лишь небольшую долю нод[18] сети, поэтому на самом деле Кристофу требовался клиент Go. Джефф как раз ушел в отпуск перед рождением первенца, но Кристоф договорился с Петером Силадьи, старшим разработчиком в команде Джеффа.
В конце концов определились и с тем, как конкретно поступать с экстрабалансом и другими нестандартными случаями. Группа программистов, в том числе первоначальные кураторы DAO Виталик и Влад, договорились распределять средства законным владельцам из мультисига.
17 июля Виталик выложил на Reddit пост с объяснением, что будет дальше: «С блока 1920000 начнется ХФ [хардфорк], и, по сути, появятся две цепочки: одна – с нестандартным изменением состояния, имплементированным в код Geth 1.4.10, другая – без. После этого можно ожидать, что одна ветка станет доминантной, а вторая либо забудется, либо продолжит существование и даже сохранит рыночную стоимость».
Позже Виталик скажет, что не сомневался в сохранении оригинального блокчейна, но тогда рекомендовал всем, кто хочет попасть в доминантный блокчейн, «воздержаться от экономических действий с блока 1920000 до момента, когда хардфорк „устаканится“ и станет ясно, какая именно ветка доминантная (примечание: некоторые биржи уже последовали этому совету, отключив депозитный функционал на 1 час)».
Он предложил контракт защиты от повтора, чтобы отправлять монеты в одной цепочке, а не в другой, но, как отметили на Reddit, это находилось далеко за пределами технических знаний большинства пользователей. Те, кто не умел этим пользоваться, при продаже монет, от которых хотели избавиться, – скажем, ETH-оригинала, – рисковали заодно потерять и свой ETH.
Петер Силадьи, помощник Джеффа, внедрил часть кода хардфорка. Клиент добавлял флажок – оставаться в оригинальном блокчейне или перейти в сплит. Голосование на carbonvote.com и другие опросы показали, что большинство предпочтет новую цепочку; в таком случае, если ее поддержит больше компьютеров, будет генерироваться больше блоков и она станет длиннее. Тут Петер понял: если новый блокчейн станет длиннее, оригинальный в принципе не выживет, потому что ноды синхронизируются с более длинной базой данных, и тогда попасть в оригинал станет уже просто невозможно – даже если поставишь флажок. Петер переделал все так, чтобы, если какие-то майнеры действительно захотят поддерживать жизнь в оригинале, они смогли бы это сделать даже в том случае, если новая цепочка станет длиннее.
Теперь EF мог с чистой совестью сказать, что люди сами выбирают блокчейн и фонд их ни к чему не принуждает.
Оставалось написать только контракт вывода средств, и это вызвался сделать Ник Джонсон – бывший работник Google, ныне разработчик Geth. Хватило всего двадцать одной строчки кода, чтобы контракт выдавал тому, кто пришлет токены DAO, соответствующее число ETH.
В среду 20 июля летняя утренняя прохлада в Итаке, штат Нью-Йорк, уступила жаре в 27 градусов. В этот день Инициатива криптовалют и контрактов (IC3) Корнелльского университета начинала курс в летнем учебном лагере и творческую мастерскую на тему Ethereum. Но сначала все ждали, когда Ethereum проведет хардфорк.
Вскоре после 9:15 по североамериканскому восточному времени Виталик, Кейси Детрио (парень Мин), Авса и другие разработчики, в том числе Мартин Бече из Индианы, сидели на летней веранде кафе в «Билл и Мелинда Гейтс-Холл» с видом на атриум и бейсбольное поле. На Кейси была футболка с надписью «Шрирача ОСТРЫЙ соус чили», а Виталик был одет в футболку с огромным рисунком кошачьей головы и передних лап, сжатых