Читать «На шифре. Инсайдерская история криптовалютного бума» онлайн
Лора Шин
Страница 52 из 117
Он решил во что бы то ни стало разрулить эту проблему. Пока остальные писали софтфорк для клиентов 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 по североамериканскому восточному времени Виталик, Кейси Детрио (парень Мин), Авса и другие разработчики, в том числе Мартин Бече из Индианы, сидели на летней веранде кафе в «Билл и Мелинда Гейтс-Холл» с видом на атриум и бейсбольное поле. На Кейси была футболка с надписью «Шрирача ОСТРЫЙ соус чили», а Виталик был одет в футболку с огромным рисунком кошачьей головы и передних лап, сжатых