public

Глава 10: DAO

Летом 2016 года внимание многих участников криптовалютного сообщества начал привлекать проект под названием "DAO"...

Время чтения 12 мин

Летом 2016 года внимание многих участников криптовалютного сообщества начал привлекать проект под названием "DAO" (Децентрализованная автономная организация). DAO был смарт-контрактом, построенным на Ethereum и оформленным как своего рода автономный инвестиционный фонд. Вместо унылой модели обычных инвестиционных фондов, управляемых сверху вниз, DAO должен был делать инвестиции в соответствии с голосами пользователей и регулироваться кодом в смарт-контракте, а не законом.

Ethereum – это криптовалюта, впервые задуманная в 2013 году одним из ранних биткоинеров, Виталиком Бутериным. В 2014 году проект собрал средства через предпродажу монет, и летом 2015 года Ethereum наконец заработал. На тот момент Ethereum исполнился всего год, но его сообщество уже участвовало в некоторых довольно амбициозных проектах. Говорят, что Виталик изначально хотел построить свою платформу смарт-контрактов на основе Биткоина, однако Биткоин не был достаточно гибким, чтобы делать то, что хотел программист. Недостаточно гибкими были не только код и структура Биткоина, но и сообщество – сторонники малых блоков, такие как Грегори Максвелл и Люк Младший – видели в гибкости потенциальную угрозу безопасности. Поэтому, естественно, Виталик и большая часть сообщества Ethereum, как правило, вставали на сторону сторонников крупных блоков.

По своему эффекту война за размер блока в Биткоине стала для Ethereum этаким сержантом-вербовщиком. Сообщество Ethereum могло теперь изображать Биткоин как старую технологию, негибкую и зациклившуюся на маленьких блоках размером в 1 Мб. Ethereum, с другой стороны, имел гораздо более гибкий подход, выражающийся в динамическом лимите размера блока, который могли регулировать майнеры (в Ethereum это называется лимитом газа, и это ограничение относится к вычислительной мощности, необходимой для отработки различных функций внутри блоков, а не к количеству используемых данных). В то время как комиссии за транзакции в биткоинах начали расти, комиссии Ethereum были очень низкими. Эта маркетинговая стратегия Ethereum оказалась очень успешной, и многие биткоинеры переключили свое внимание на Ethereum, полагая, что Ethereum – молодая динамичная криптовалюта будущего.

Для некоторых адептов крупных блоков то, что биткоинеры переключились на Ethereum, было проблемой, вызванной мелкоблочниками. Те были настолько упрямы, что люди теряли терпение и уходили. [1] Биткоин обречен потерять долю рынка. Торговые площадки вот-вот перейдут на Ethereum, и тогда Биткоин точно потерпит неудачу. Впрочем, ограничение размера блока действительно отталкивало некоторых от Биткоина, но это была не единственная причина успеха альткоинов. Основной движущей силой этой тенденции была возможность заработать. Успех Ethereum вызвал волну подражателей и разработку новых криптовалют. Авторы этих протоколов часто подчеркивали предполагаемые и широко распропагандированные проблемы масштабируемости Биткоина и утверждали, что их новый проект решил эти проблемы. Биткоинеры-мелкоблочники, похоже, не беспокоились об этом. Их интересовало трансформирование денежной системы в целом; альткоины, претендующие на выполнение 40 000 транзакций в секунду, не имели отношения к этой цели.

По иронии судьбы, хотя эти альтернативные монеты и были источником разочарования для некоторых сторонников крупных блоков, они также нашли их заманчивыми. Им было легче отказаться от Биткоина и переключиться на альтернативы, чем продолжать утомительную битву. Я не могу не подчеркнуть, насколько сторонники малых блоков выиграли от этой тенденции. Во время этого кризиса пространство альтернативных монет быстро росло, и их сторонники были сосредоточены на привлечении денег путем предложения монет и зарабатывании денег на повышении цен этих монет. Если бы у них не появился этот выход, они, возможно, остались бы в Биткоине, ведя войну за размер блоков, и их масса была бы слишком велика, чтобы мелкоблочникам удалось преодолеть такое большинство. За два года войны в экосистеме произошли фундаментальные изменения – от биткоин-пространства к пространству криптовалют. В новой реальности аргумент о том, что Биткоин должен пойти на компромисс, чтобы удовлетворить каждого, не имел смысла. На любую нужду появлялся свой альткоин.

В любом случае, вернемся к DAO. Краудсейл The DAO стартовал 30 апреля 2016 года и продолжался до 25 мая 2016 года. Он привлек огромное внимание и собрал для фонда более 150 миллионов долларов США. В то время это было невероятное количество денег для рынка; более 14 процентов всех существующих Ethereum влилось в The DAO. Некоторые инвесторы считали его безрисковым, так как предполагалось, что у человека всегда есть возможность при желании выкупить вложенные Ethereum из фонда.

Поскольку Ethereum был еще молод, он был совершенно не готов к чему-то настолько сложному, как DAO. Но сообщество Ethereum любило экспериментировать и пробовать новое. Это одна из причин, по которой этих людей в первую очередь привлекал именно Ethereum. Им надоели консервативные биткоинеры.

Как вскоре выяснилось, DAO имела фундаментальные уязвимости на нескольких уровнях. Создание новых инвестиционных проектов должно было приводить к созданию новых видов токенов DAO, при этом каждый вид предполагал разные риски и вознаграждения. Это означало, что токены DAO не будут взаимозаменяемыми и должны торговаться по разным ценам, что с трудом понималось биржами и сообществом. Модель экономического стимулирования проекта также была не продумана. Например, когда дело дошло до решений об инвестициях, оказалось, что стимулов голосовать "против" инвестиционных предложений немного, поскольку деньги голосующих "против" все равно инвестировались в одобренные проекты, а те, кто воздержался, этого избегали. Кроме того, не было заявленного механизма для принуждения успешных проектов к возвращению прибыли в DAO, а код в смарт-контракте не всегда был похож на реализацию своего официального описания или назначения. Через несколько недель после завершения продажи токенов, 17 июня 2016 года, [2] (еще одна ключевая дата в истории криптовалюты) некий хакер обнаружил в коде дыру, которая позволила ему получить доступ к токенам ETH, принадлежащим DAO, и направить часть этих токенов в нечто под названием "дочернее DAO", над которым хакер потенциально может иметь значительный контроль.

Этот взлом ознаменовал начало так называемых "войн DAO", битвы за возвращение "украденной" хакером криптовалюты. К сожалению, битва не увенчалась успехом, поэтому сообществу Ethereum и разработчикам пришла в голову идея: можно просто изменить протокол Ethereum, чтобы вернуть средства. Для некоторых это решение было крайне спорным. Это было воспринято как спасение банкрота, против чего резко выступили многие в сообществе. Одна из причин, по которой многие присоединились к криптовалютному пространству, заключалась в том, что они хотели сбежать из системы, позволяющей подобные спасательные операции, вроде выкупа акций банков в 2008 и 2009 годах. В конце концов, почему именно DAO? Почему именно этот проект должен быть спасен, в то время как многие инвесторы в более мелкие проекты и смарт-контракты на Ethereum и раньше теряли деньги? Возможно, DAO был "слишком большим, чтобы провалиться", или, возможно, это было связано с личными интересами влиятельных разработчиков и членов сообщества Ethereum, которые контролировали протокол и вложили большие суммы денег в DAO. Для многих эти проблемы казались зеркальным отражением коррупции и других проблем традиционной финансовой системы, от которых они стремились уйти.

24 июня 2016 г. было предложено, чтобы Ethereum провел софтфорк, чтобы заморозить средства хакеров. [3] Примерно через четыре дня было обнаружено, что это предложение по софтфорку было ошибочным и потенциально могло подвергнуть сеть критическим DoS-атакам. Поэтому от софтфорка отказались, и было решено, что единственный способ вернуть средства – это хардфорк. Поскольку это событие застало биткоин-сообщество в самый разгар войны, поворот событий оказался весьма примечательным. Bitcoin Classic все еще маячил в качестве потенциального весьма спорного хардфорка, и тут Ethereum затеял свой собственный, не менее спорный. Война за размер блока в Биткоине была приостановлена ​​на несколько месяцев, поскольку все сосредоточились на Ethereum. Чтобы измерить уровень поддержки хардфорка, проводилось голосование монетами: люди могли голосовать своими монетами за то, поддерживают они хардфорк или нет. Перевес был подавляющим, более 95 процентов поддержали хардфорк. [4] Однако были обвинения в том, что опрос не был репрезентативным, поскольку в основном его продвигали те, кто поддерживал хардфорк, а те, кто выступал против, возможно, не голосовали. В дополнение к этому, участие держателей Ethereum было низким, около шести процентов [5]. Майнеров также спросили об их мнениях, и, как утверждается, более 90 процентов – то есть подавляющее большинство – поддержали хардфорк.

Хардфорк был назначен на среду, 20 июля 2016 года. Чтобы не пропустить это событие, я забронировал рабочий день и следующий выходной. Я даже купил новый компьютер, чтобы у меня было достаточно локальных ресурсов для запуска обоих клиентов Ethereum: одного нового, с хардфорком, и одного старого. По мере приближения потенциального разделения, как настоящий криптофанатик, я сидел дома, управляя обоими узлами, с кучей открытых вкладок на сайтах, отслеживающих ордеры на обмен, чтобы видеть текущие цены Ethereum по мере развития событий. Я и многие другие энтузиасты криптовалют с нетерпением ждали, когда высота блока Ethereum достигнет отметки в 1 920 000 и произойдет хардфорк.

Поначалу хардфорк прошел успешно. Цепь блоков с обновленными правилами продолжала наращиваться, в то время как цепь с исходными правилами не менялась. Некоторые из крупноблочников уже начали объявлять о победе и утверждать, что это урок для Биткоина: спорный хардфорк не вызывает раскола, – заявили они. Примерно через час после форка цепь с исходными правилами начала наращиваться. Затем, когда сложность уменьшилась (гораздо быстрее, чем в Биткоине), исходная цепь начала увеличиваться более быстрыми темпами. В то время как поначалу цепь с хардфорком, казалось, имела около 98 процентов хэшрейта, вскоре баланс начал меняться, и исходная цепь начала набирать обороты, достигнув, пожалуй, от пяти до десяти процентов хэшрейта. Тогда цепи с исходными правилами потребовалось имя. Уже был Bitcoin Classic, так почему бы не назвать его Ethereum Classic?

Примерно через три дня после разделения биржи начали листинг Ethereum Classic. Poloniex, одна из ведущих бирж альткоинов на тот момент, разместила Ethereum Classic 23 июля 2016 года. [7] После этого цена Ethereum Classic начала расти. Насколько я помню, он начал торговаться на уровне около двух процентов от стоимости Ethereum и достиг пика 25 июля, составив более 50 процентов от нее. Ethereum Classic оказался чрезвычайно нестабильным. Более того, майнеры следовали за ценой. Корреляция была не идеальной, но по мере роста цены Ethereum Classic все больше майнеров добывали его, чтобы получить увеличенное вознаграждение за блок. После этого сторонники малых биткоин-блоков начали утверждать, что ситуация сложнее, чем предполагали их оппоненты: майнеры не столько определяют протокол, сколько следуют за трейдерами и инвесторами, чтобы максимизировать свою прибыль.

По мере роста цены Ethereum Classic он набирал все большие обороты. Оказалось, что майнеры просто следуют за деньгами. Именно тогда многие люди начали понимать, что хардфорк и разделение цепи обусловлены не только двумя ранее обсуждавшимися проблемами – хэшрейтом и компьютерными технологиями, – но и финансовыми рынками. Такое событие оказывается отличной возможностью для финансовых спекулянтов и трейдеров, которые могут торговать монетами разных форков.

Одним из ключевых персонажей среди поддерживающих Ethereum Classic был Барри Силберт. Барри не был сторонником малых блоков; он покупал Ethereum Classic исключительно для того, чтобы попытаться на этом заработать.

Купил свою первую цифровую валюту, не являющуюся биткоином… Ethereum Classic (ETC). При цене 0.50 доллара соотношение риска и доходности выглядит удачным. Моей философии это не противоречит. [8]

Годом ранее Барри основал Digital Currency Group и был одним из крупнейших инвесторов в этой сфере. Барри также был хорошо известен в сообществе тем, что выиграл аукцион по покупке биткоинов, конфискованных властями США на торговой даркнет-площадке Silkroad. Позже Барри еще украсит наш рассказ. Однако на тот момент он, хотя и вряд ли преднамеренно, помогал стороне малых блоков.

Не было никакой опасности, что Ethereum Classic наберет слишком большой вес, обогнав Ethereum по хэшрейту, а затем заставит все узлы с хардфорка переключиться на цепочку Classic. Виталик оказался слишком умен для этого. Хардфорк Ethereum был структурирован таким образом, что у него была контрольная точка, чистый разрыв, так что обе цепи после разделения существовали независимо от того, какая из них накопила больше работы. Это иногда называют "защитой от уничтожения", и перед разделением я тщательно прояснил этот момент с разработчиками Ethereum. Решение Bitcoin Classic не включать защиту от уничтожения теперь выглядело еще более наивным.

По иронии судьбы Coinbase добавила поддержку Ethereum только 21 июля 2016 года, [9] всего через день после разделения. Компания поддерживала Bitcoin Classic, и ее генеральный директор Брайан Армстронг считал, что хардфорк Ethereum успешно пройдет без раскола, коль скоро хардфорк получил сильную поддержку со стороны майнеров. В результате этого убеждения Coinbase, похоже, не предприняла надлежащих действий для защиты средств клиентов на случай, если это убеждение окажется ложным. Таким образом, Coinbase была уязвима к так называемой "атаки повтора" (replay attack). В первые несколько дней после разделения, при выводе Ethereum из Coinbase была вероятность, что Coinbase отправит две версии этой транзакции: одну на Ethereum и одну на Ethereum Classic. В отличие от Coinbase, ее партнеры, такие как Kraken и Poloniex, приняли меры, чтобы разделить свои монеты и предотвратить это. Некоторые опытные трейдеры в этой сфере смогли извлечь выгоду из такого недосмотра со стороны Coinbase. Они самостоятельно разделяли свои монеты на Ethereum Classic и Ethereum, а затем депонировали Ethereum на Coinbase. Далее без всякой торговли Ethereum выводился с Coinbase, при этом трейдер мог надеяться, что на его одноименный кошелек Ethereum Classic бесплатно отправят соответствующие монеты. В то время я разговаривал с несколькими людьми, которые утверждали, что успешно завершили эту "сделку", получив значительную прибыль. В конце концов, Coinbase узнала об ошибке, реализовала некоторую форму защиты от повторного воспроизведения и покрыла убытки за свой счет.

Что касается войны вокруг DAO, то в результате хардфорка восстановление "украденных" средств на стороне Ethereum было успешным. С "украденными" средствами в цепочке Ethereum Classic все было сложнее, и война продолжалась. Были и другие проблемы, например, кто должен получать восстановленные токены DAO на стороне Classic, внутри различных сегментов и дочерних DAO, но эта тема выходит за рамки нашей истории.

В конце июля 2016 года между майнерами и разработчиками Биткоина была организована еще одна встреча, на этот раз в Калифорнии. С целью избежать опасности снова быть обвиненными в достижении соглашения за закрытыми дверями, все участники для допуска на встречу должны были подписать следующее заявление:

Участники признают, что, поскольку правила консенсуса Биткоина устанавливаются пользователями на основе того, какое программное обеспечение они предпочитают запускать, предлагаемые изменения должны обсуждаться публично с участием всего биткоин-сообщества. По этим причинам никаких соглашений на предстоящей встрече заключаться не будет [10].

Прошу отметить, что я не присутствовал на этой встрече. Тем не менее, записи встречи были предоставлены биткоин-разработчиком Брайаном Бишопом. [11] Брайан проделал исключительную работу, записав многие события и дискуссии в ходе войны за размер блока. На трехдневном мероприятии присутствовал Джихан Ву, который прилетел в США, чтобы встретиться с разработчиками. В стенограмме не указывалось авторства реплик, однако для тех, кто знаком с главными персонажами криптовалютного мира, во многих случаях вполне реально определить, кто именно говорит. Время проведения мероприятия было выбрано не случайно: оно было назначено на конец июля, как раз тогда, когда согласно Гонконгскому соглашению требовалось выпустить код для хардфорка.

На этой встрече влияние разделения цепи Ethereum на возможный хардфорк Биткоина было очевидным, и большая часть дискуссии оказалась посвящена тому, какие уроки из этого можно извлечь. Теперь участники утверждали, что хардфорк почти неизбежно вызовет разделение цепи:

Вследствие состоявшегося раскола в Ethereum создается прецедент для Биткоина в отношении возможных будущих хардфорков. Для Биткоина при хардфорке может быть только два варианта: либо каждая сторона смиряется с наличием нескольких блокчейнов и принимает множественные атаки по нескольким направлениям, либо мы просто остаемся в основной цепи и пытаемся уничтожить все форки и побочные блокчейны. Других вариантов нет.

Затем один из разработчиков попытался разъяснить ситуацию и показать, почему в краткосрочной перспективе вряд ли состоится хардфорк, несмотря на Гонконгское соглашение:

Многие из подписантов [Гонконгского] соглашения провели неделю [в Нью-Йорке]. Мы провели большую работу по дизайну хардфорка. Мы обсуждали, как его правильно построить. Мы говорили о том, как сделать это таким образом, чтобы у нас не было тех же рисков, с которыми недавно столкнулся Ethereum. Мы говорили [в Гонконге] о том, как важно, чтобы Биткоин оставался единым, и как это важно для его долгосрочной стоимости. И [в Гонконге], и [в Нью-Йорке] ни у кого не было желания делать что-либо откровенно спорное. Нам потребуется консенсус по поводу любого хардфорка, который может произойти. Он должен быть абсолютно бесспорным. Хотя это, безусловно, тот случай, когда большую часть исследований и обсуждений требуется сделать более широко доступными, сейчас, безусловно, есть много опасений, что даже со стороны людей за пределами этой комнаты будет очень трудно достичь такого уровня консенсуса по хардфорку. Я хочу отметить, что хардфорки очень разрушительны для рынков. Они разрушительны для торговых площадок, рынков и даже целых экосистем. Мы должны это учитывать. Если для хардфорка не будет абсолютно обоснованной причины, тогда затраты перевешивают выгоды. Поэтому мы искали способы решить эти проблемы в Биткоине без хардфорка.

Люк Младший, который был одним из подписантов соглашения, затем объяснил, что сдержал свое обязательство и написал код для возможного хардфорка. [12]

Один из присутствующих разработчиков, предположительно отсутствовавший в Гонконге, извинился за подрыв усилий разработчиков по созданию кода для хардфорка. Он сказал, что им казалось неуместным работать над хардфорком, когда некоторые майнеры говорили, что они заблокируют SegWit. Также он выражал опасения, что хардфорк сделает менее актуальным увеличение размера блока при помощи SegWit менее актуальным. Он также жаловался на публичные комментарии о том, чтобы не допустить SegWit, пока не будет обеспечен хардфорк, и что подобные угрозы вносили свой вклад в общее напряжение, усложняя тем самым появление хардфорка.

Я хотел бы извиниться перед вами и перед разработчиками за подрыв их усилий по созданию этого материала для вас, согласно их обязательствам. Я сделал это, потому что они принялись за работу в Нью-Йорке сразу после нескольких публичных комментариев о блокировке SegWit до появления хард-форка. В этой обстановке я чувствовал себя очень неуютно из-за предложений по хардфорку, замедляющих масштабирование Биткоина при помощи SegWit. Я сожалею о климате, который создали мои комментарии. Прошу прощения за это и за мои комментарии.

Затем последовал ответ на этот комментарий, предположительно от Джихана Ву, в котором он проницательно указал на эскалацию конфликта при коммуникации, в которую оказались вовлечены обе стороны. Затем Джихан намекнул, что он также чувствовал угрозу, и что угрозы исходили с обеих сторон.

Думаю, мне нужно это прояснить. Команда Segwit также исходит из [идеи] о том, что [Гонконгское] соглашение не будет соблюдаться. Мы вошли в штопор взаимных нападок и угроз. Может быть, обе стороны не хотят что-либо делать под давлением. Может быть, обе стороны на самом деле не хотят угрожать.

После мероприятия я поговорил с известным сторонником малых блоков, который присутствовал на встрече. Он сказал мне, что Джихан согласился помочь попытаться активировать SegWit, как только он будет выпущен, и что майнеры были напуганы событиями в Ethereum, поэтому не хотели делать ничего рискованного. Что касается утверждения об обязательстве активировать SegWit, мой собеседник, похоже, был излишне оптимистичным, и Джихан мог описать те же события совершенно иначе. Нетрудно предположить, что проблемы с коммуникацией могли развиваться далее.

Разделение блокчейна Ethereum стало поворотным моментом в войне блоков, даже в большей степени, чем странная сага о Крейге Райте. Теперь инициатива была на стороне малых блоков. Майнеры теперь боялись, что аналогичное событие произойдет и в Биткоине. До разделения Ethereum майнеры стремились просто что-нибудь попробовать; теперь их воззрения, похоже, изменились. Казалось, что Bitcoin Classic вряд ли будет активирован в краткосрочной перспективе. По иронии судьбы, хотя большинство мелкоблочников не хотят этого признавать, Ethereum, возможно, спас Биткоин. Однако война была далека от завершения. У людей короткая память, и уроки взлома DAO постепенно уходили в прошлое.


1 https://www.reddit.com/r/btc/comments/4u0cuq/congratulation_small_blockers_this_is_a_direct/

2 http://archive.is/76EZY

3 http://archive.is/7UUrY

4 https://futurism.com/the-dao-heist-undone-97-of-eth-holders-vote-for-the-hard-fork

5 https://medium.com/coinmonks/the-dao-is-history-or-is-it-47a6f457338a

6 http://archive.is/PaGgM

7 http://archive.is/xfvMY

8 https://twitter.com/BarrySilbert/status/757628841938472961

9 https://blog.coinbase.com/coinbase-adds-support-for-ethereum-b8046cf486d0

10 https://www.coindesk.com/no-scaling-agreements-industry-bitcoin-meetup

11 https://diyhpl.us/wiki/transcripts/2016-july-bitcoin-developers-miners-meeting/cali2016/

12 https://github.com/luke-jr/bips/blob/bip-mmhf/bip-mmhf.mediawiki

Tony Lightninng

Опубликовано 4 месяца назад