Война за размер блока

Джонатан Бир

От издателей

Перевод книги Джонатана Бира The Blocksize War о том, как Биткоин-коммьюнити отстояло своё видение протокола, сделан командой Биткоин-энтузиастов (телеграм-каналы Bitcoin Translated и Hype Coin News) и распространяется на безвозмездной основе. Приобрести оригинал, отблагодарив тем самым автора, можно на амазоне. Команду обеспечившую перевод, можно поблагодарить биткоинами. В формате электронной книги текст издан Анкап-тян. Ее также можно поблагодарить различными способами, не сводящимися только к биткоинам.

Меценаты

Без них перевод книги бы вовсе не начался.

Anton Kovalenko и его сервис Lightning Network/Qiwi/Yandex.Money

Dashmaster и его паблик в Телеграм

Sergei Orlov

Глава 1. Первый удар

Cобытие, заставшее многих в Биткоин-пространстве врасплох и потрясшее сообщество, произошло в субботу, 15 августа 2015 года. Два самых известных и уважаемых Биткоин-разработчика на тот момент, Майк Хирн и Гэвин Андресен, выпустили новую версию протокола, не отличающуюся обратной совместимостью. Новый клиент назывался Bitcoin XT. Биткоин подарил многим такую надежду, восторг и возможности, но теперь казалось, что новое начинание приведет к беспорядку, угрозе для сети и потенциальной катастрофе. Как сообщила спустя пару дней газета The Guardian:

Биткоин-войны начались [1]

На первый взгляд, война была сосредоточена лишь на одной достаточно узкой проблеме — ограничении максимального размера блоков, составляющих блокчейн Биткоина. Bitcoin XT предлагал увеличить объем свободного места в блоках. В 2015 году предельный размер блоков составлял 1 МБ, и Bitcoin XT предлагал увеличить этот лимит до 8 МБ и затем удваивать его каждые два года вплоть до 2036 года, когда лимит составит около 8 000 МБ. Причина этого предложения заключалась в том, что по мере роста популярности системы, блоки заполнялись транзакциями все больше, и предельный размер блока был близок к достижению, что сулило появление полных блоков (курсив пер.). Сторонники увеличения лимита утверждали (в тексте далее крупноблочники), что более высокая пропускная способность необходима для того, чтобы Биткоин мог масштабироваться и стал доступной глобальной платежной системой. Они опасались, что если лимит будет регулярно достигаться, это сделает сеть сложной для использования и слишком дорогой, что негативно скажется на перспективах ее роста. По мнению Гэвина и Майка, мы движемся в сторону кризиса, когда пользователи могут отказаться от использования сети, и необходимо принимать меры. Оппоненты Гэвина и Майка были обеспокоены выпуском клиента, не обладающего обратной совместимостью, опасаясь, что он может расколоть сеть на два лагеря, вызвав хаос и неразбериху.

Эта война за размер блоков сокрушала и раскалывала экосистему Биткоина в течение следующих двух лет. По мере развития конфликта выяснилось, что борьба была, возможно, гораздо более комплексной, чем простой спор о максимальном размере блоков; битва шла в самом основании, в ДНК Биткоина. По сути, спор шел о четырех в определенной мере взаимосвязанных вопросах:

Уровень доступного пространства в каждом блоке Биткоина — по сути, должно ли конечное состояние сети характеризоваться избыточным объемом, доступным в блоках, или постоянно заполненными блоками.

Как изменить правила протокола Биткоин — должны ли правила валидности Биткоин-блоков меняться относительно легко, или они должны быть более надежными и меняться только в исключительных обстоятельствах, при широкой поддержке всех заинтересованных сторон.

Значение узлов обычных пользователей — в какой степени (если таковая вообще имеет место быть) валидирующие узлы обычных конечных пользователей имеют право голоса в процессе принятия решений об обеспечении соблюдения правил протокола Биткоин.

Временные предпочтения — является ли Биткоин технологическим стартапом, для которого приоритетным является завоевание доли рынка в краткосрочной перспективе, или же это долгосрочный проект, новые глобальные деньги, и при принятии решений следует думать на десятилетия вперед.

На тот момент, однако, основное внимание было сосредоточено конкретно на вопросе ограничения размера блоков. Подавляющее большинство участников сообщества согласились с тем, что размера блока в 1 МБ недостаточно. Однако не было единого мнения о том, каким должен быть этот лимит и как его изменить. Большинство также согласилось с тем, что предложенное увеличение в Bitcoin XT было слишком агрессивным и требовалось более умеренное решение.

Первый ход в этой войне был сделан Майком и Гэвином, представителями так называемого лагеря "больших блоков". Они были просто обязаны были сделать первый ход; в конце концов, их оппоненты выступали за статус-кво. Майк и Гэвин сделали это предложение несколькими месяцами ранее, однако именно в августе 2015 года клиент был официально выпущен, и они призвали пользователей запустить его, поэтому именно тот период мы отмечаем в качестве официального начала боевых действий. Это не значит, что Майк и Гэвин считали свои действия враждебными или действовали из корыстных побуждений; война — это лишь мой подход к описанию развернувшейся картины.

Bitcoin XT был программной реализацией Bitcoin Improvement Proposal 101 (BIP 101), одного из многих в длинной череде предложений по увеличению размера блоков. Впервые это предложение было официально опубликовано Гэвином Андресеном несколькими месяцами ранее, 22 июня 2015 года. В силу особенностей протокола, нельзя было просто увеличить лимит. Для этого требовалась методология активации — система, позволяющая добиться того, чтобы сеть Биткоина приняла новые правила. Выбранная методология активации в данном случае состояла из особого сигнального дня и порога сигнализирования майнерами. Самой ранней возможной точкой активации было 11 января 2016 года, то есть примерно пять месяцев спустя. Кроме того, активация требовала голосования биткоин-майнеров. Майнеры должны были сигнализировать в добываемых ими блоках о поддержке предложения. Если бы 750 блоков отметили поддержку в любом из периодов длиной в 1000 блоков, обновление активировалось бы. После этого действовал бы двухнедельный льготный период, прежде чем правило вступит в силу и лимит размера блоков будет окончательно увеличен. Если бы майнеры не достигли этого порога в 75%, предложение было бы признано неудачным.

Программное обеспечение Bitcoin XT вызвало много споров в так называемом лагере "малых блоков", прежде всего потому, что это обновление не обладало обратной совместимостью. По сути, это означает, что все, кто управляет Биткоин-нодой, соответствующей всем правилам, должны будут обновить свое программное обеспечение. Если бы не все согласились на обновление, то, согласно мировоззрению сторонников малых блоков, это могло бы привести к расколу Биткоина и появлению двух разных криптовалют. Такой тип обновления называется хардфорком и является самой экстремальной формой обновления. Этот тип обновления может изменить Биткоин любым способом — от увеличения лимита предложения Биткоина выше 21 миллиона до изъятия криптовалюты у любого ходлера (долговременного держателя криптовалюты) и передачи их кому-то другому. Многие биткоинеры придерживались мнения, что нельзя или не следует проводить хардфорк, не убедившись предварительно в широкой поддержке со стороны пользователей сети. По их мнению, именно это свойство придавало сети устойчивость; это означало, что никто не сможет отобрать их монеты, и обеспечивало надежность лимита предложения в 21 миллион. В этом, по их мнению, и заключалась вся суть Биткоина. Поэтому некоторые считали хардфорк в обход консенсуса атакой на сеть. Другие явно не соглашались с этой точкой зрения; они считали, что Биткоин должен быть гибким, чтобы развиваться и достигать новых вершин, а конкретный вопрос — предельный размер блоков — не был серьезным изменением. Они считали, что упоминание о лимите в 21 миллион монет — ничто иное, как ошибочный пример “скользкой дорожки” и отвлекающий маневр.

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

24 августа 2015 года, всего через девять дней после выпуска Bitcoin XT, было опубликовано письмо поддержки от некоторых крупнейших и наиболее значимых компаний в отрасли.

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

Мы считаем, что работа завершена, и пришло время донести наше мнение в ясной и прозрачной форме. После долгих бесед с разработчиками Bitcoin Core, майнерами, нашими техническими командами и другими участниками индустрии мы считаем увеличение максимального размера блока верным путем к достижению успеха.

Мы поддерживаем внедрение BIP101 и считаем аргументы Гэвина о необходимости в больших блоках и возможности их реализации — при сохранении децентрализации Биткоина — убедительными. Блоки BIP101 и блоки размером в 8 Мб уже поддерживаются большинством майнеров, и мы считаем, что индустрии пора объединиться и поддержать эту инициативу.

Наши компании будут готовы к увеличенным блокам к декабрю 2015 года, и мы запустим код, поддерживающий это обновление. На фоне роста сообщества, сейчас, как никогда, важно, чтобы мы стремились к прочному консенсусу для обеспечения надежности сети. Мы обязуемся поддерживать BIP101 в нашем программном обеспечении и системах к декабрю 2015 года и призываем остальных присоединиться к нам" [2].

Письмо подписали руководители компаний BitPay, Blockchain.info, Circle, Kncminer, itBit, Bitnet, Xapo и BitGo. Это были не только одни из крупнейших компаний в данной сфере; многие из них были хорошо финансируемыми и имели значительную венчурную поддержку. BitPay была одним из крупнейших платежных сетей в индустрии, а Blockchain.info — провайдером мобильных биткоин-кошельков номер один. Это письмо еще сильнее накалило ситуацию. С одной стороны, для индустрии было жизненно важно участвовать в решении вопросов развития и способствовать прогрессу, а с другой стороны, некоторые считали такой подход неверным. Биткоин должен был управляться на основном уровне, снизу вверх, по инициативе пользователей; лоббирование сверху вниз крупными корпорациями противоречит самой сути Биткоина. По мнению сторонников малых блоков, Гэвину следовало бы направить свои усилия на лоббирование интересов пользователей, пытаясь заручиться поддержкой увеличенных блоков с их стороны, прежде чем просить индустрию запустить новый клиент, не обладающий обратной совместимостью. По их мнению, это было бы более этично и, что особенно важно, более эффективно.

Можно также предположить, что Гэвином, возможно, двигало его эго. После многих лет разочаровывающих споров он, возможно, хотел продемонстрировать другим разработчикам уровень своего влияния и авторитет. Он добивался поддержки от тех, кого считал главными действующими лицами в этой сфере, в этой индустрии. Для Гэвина это была возможность показать противоречащим ему разработчикам, что они практически не имеют значения, что главные игроки индустрии даже не знают об их существовании. Это, несомненно, еще сильнее разгневало его оппонентов, которые заявили, что компании, подписавшие вышеупомянутый документ, не имеют никакого значения для сети Биткоин.

Вероятно, пришло время немного поговорить о Гэвине Андресене. Биткоин, конечно же, был создан Сатоши Накамото. Точнее, Сатоши спроектировал систему, написал и опубликовал первоначальную эталонную, хоть и отличающуюся рядом ошибок, реализацию Биткоина, а также был автором статьи “Биткойн: система цифровой пиринговой наличности”. Чуть менее чем через два года после запуска сети, в декабре 2010 года, Сатоши покинул проект. После этого он больше не вносил вклад в код и перестал оставлять комментарии на форуме. Гэвин объясняет, как, по его мнению, он взял на себя роль лидера проекта:

Со временем [Сатоши] стал доверять моим суждениям о написанном мною коде. И в конце концов он обвел меня вокруг пальца, попросив разместить мой адрес электронной почты на домашней странице Биткоина, и я ответил "да", не осознавая, что, разместив там мой адрес, он уберет свой. Я стал тем человеком, которому писал каждый, кто хотел узнать о Биткоине. Сатоши начал отступать с поста лидера и выдвигать меня в качестве руководителя проекта"[3].

На момент предполагаемой передачи полномочий программное обеспечение Биткоина было опубликовано на Sourceforge, где в январе 2011 года в качестве разработчиков были указаны два человека — Сатоши и Гэвин. Изложение событий Гэвином, конечно, оспаривается, и его оппоненты утверждают, что подтверждения предполагаемой передачи роли лидера со стороны Сатоши отсутствует. В частности, утверждение о "лидере проекта" кажется маловероятным и необоснованным. У Биткоина нет лидера. Гэвин контролировал репозиторий программного обеспечения Биткоина на Sourceforge, а затем на GitHub, пока не передал его Владимиру Ван Дер Лаану несколько лет спустя, в апреле 2014 года. Контроль над репозиторием программного обеспечения, разумеется, не означает контроль над Биткоином, поскольку пользователи Биткоина могут запускать любое программное обеспечение из любого репозитория. Это заблуждение распространялось на протяжении многих лет. Тем не менее, вполне вероятно, что утверждение Гэвина о переходе к нему власти от Сатоши в некоторой степени соответствует действительности, даже если сами заявления о лидерстве несколько преувеличены.

Однако, те, кто сосредотачивался на сомнительной версии передачи бразд правления Сатоши Гэвину, или на технической роли и власти последнего в отношении репозитория программного обеспечения Биткоина, совершенно упускали суть. Точнее, по обе стороны противостояния неоднократно выдвигали собственные аргументы, но на самом деле этот спор не имел значения. Не поддающееся количественной оценке влияние Гэвина на пространство было обусловлено его персоной и лидерскими качествами. Однако это труднее измерить, поэтому люди сосредоточились на том, как Сатоши передал ему проект и имела ли место такая передача. Ключевым моментом для понимания роли Гэвина в сообществе в то время является его личность. В своих публичных сообщениях на форуме и на мероприятиях он производил впечатление терпеливого, вдумчивого, спокойного и прагматичного человека. Именно эти черты характера и лидерские качества выделяли его среди других разработчиков больше, чем что-либо другое. Когда Гэвин говорил, люди слушали; он говорил осмысленно и не скупился на время, чтобы что-то объяснить. Это поведение резко контрастировало с таковым некоторых других разработчиков, которые иногда считались нетерпимыми к тем, кто обладал более слабыми техническими знаниями, или предпочитали оставаться за кулисами. Гэвин имел такой воспринимаемый уровень влияния на техническое сообщество благодаря тому, кем он был, а не из-за передачи ему власти.

Гэвин также внес значительный вклад в развитие Биткоина в первые несколько лет существования сети. В 2010 году Гэвин приобрел 20 000 биткоинов за 50 долларов. Затем он создал биткоин-кран — веб-сайт для раздачи биткоинов. Людям нужно было только заполнить капчу, после чего им бесплатно отправлялось около пяти биткоинов. Это в значительной степени способствовало успеху сети в первые дни, поскольку монеты были распространены среди широкого круга людей. В то время люди еще не понимали, что такое биткоин, и вряд ли стали бы посылать реальные деньги, чтобы купить монеты, принадлежащие непроверенной системе. С другой стороны, заполнение капчи было гораздо более простым первым шагом. Гэвин также стал одним из основателей Bitcoin Foundation в 2012 году, членом совета директоров которого он является. Помимо ряда других функций, одной из главных обязанностей фонда было оплачивать работу Гэвина над созданием Биткоина. Таким образом, Гэвин стал первым оплачиваемым разработчиком Биткоина. Он оставался в фонде в должности ведущего ученого до середины 2017 года.

Трудно переоценить уровень, которого достигло уважение к Гэвину со стороны многих членов биткоин-сообщества. Многие считали его "главным парнем". В техническом сообществе кипели глубокие, затяжные споры, но случайный наблюдатель о них и не подозревал. Для многих Гэвин был ключевой фигурой в этом пространстве. Именно в этом контексте следует оценивать решение Гэвина поддержать Bitcoin XT, предложенный Майком и призвать пользователей запустить хардфорк. Это был взрывной момент именно в силу авторитета, заработанного Гэвином. Если бы на его месте был кто-либо другой, воздействие не было бы столь значительным, и мы бы не стали свидетелями ни одного из последующих событий.

Что касается Майка Хирна, то он также был одним из ранних разработчиков Биткоина, начав работать над ним ещё в Google  в рамках 20% нормы свободного времени. Однако Майк не был вовлечен в реализацию референсного клиента в той же степени, что и Гэвин. В отличие от Гэвина, который являлся сторонником консенсуса и выглядел более консервативным и умеренным, Майк воспринимался как аутсайдер и рискованный человек. Майк проделал большую работу над Bitcoinj, библиотекой Java для работы с Биткоин-протоколом, которая подарила сообществу мобильные кошельки того времени. Вклад Майка в развитие проекта был, безусловно, важным и впечатляющим.

В августе 2015 года, когда война ожесточилась, самая интенсивная или безжалостная битва разворачивалась в социальных сетях. Двумя основными платформами для обсуждения Биткоина в то время были форум BitcoinTalk и сабреддит Биткоина /r/Bitcoin. Дебаты на Reddit и BitcoinTalk обострялись уже некоторое время, но запуск Bitcoin XT действительно подлил масла в огонь. В целом, большинство сообщений было в поддержку более крупных блоков. Идея больших блоков была проста и ясна: пропускная способность Биткоина должна быть увеличена. Для случайного наблюдателя аргументы против этого были, как правило, очень сложными и довольно запутанными. Кроме того, одного мегабайта казалось недостаточно, а история информатики говорит о том, что пропускная способность растет экспоненциально. Поскольку многих подобные заявления не устраивали, летом 2015 года Биткоин-форумы стали переполнены сообщениями в поддержку более крупных блоков и, как следствие, клиента, не обладающего обратной совместимостью. Повторяющихся постов было так много, что любые другие новости о Биткоине становилось все труднее найти. В результате на этих форумах усилилась модерация. Эта модерация, как оказалось, только еще больше раззадорила некоторых сторонников больших блоков: по их мнению, политика модерации, или, как они считали, цензурирования, препятствует масштабированию Биткоина.

BitcoinTalk и /r/Bitcoin контролировались одним и тем же человеком под ником Theymos. Его настоящее имя — Майкл Марквардт. Theymos был одним из первых пионеров в этой области, управляя bitcoin.it (Bitcoin Wiki), а также двумя основными форумами. Кроме того, он создал первый обозреватель блоков — веб-страницу, на которой можно было просматривать информацию о транзакциях Биткоина. Это имело решающее значение для раннего развития пространства и просвещения людей о том, как работает Биткоин. Его веб-сайт, blockexplorer.com, в конечном итоге был вытеснен сайтом blockchain.info примерно в 2011 году, благодаря инновационной и опережающей конкурентов графике blockchain.info. Theymos, похоже, в основном симпатизировал лагерю “мелких блоков”, по крайней мере, той позиции, что разумно заручиться широким согласием сообщества, прежде чем запускать клиенты, не отличающиеся обратной совместимостью.

17 августа 2015 года, через два дня после официального запуска Bitcoin XT, Theymos объявил о новой политике модерации Reddit. Эта политика оказалась крайне противоречивой и вызвала немало разногласий. Выпуск клиента Bitcoin XT также стимулировал значительное увеличение количества сообщений, а затем агрессивную модерацию этих сообщений, нуждающуюся в объяснениях.

r/Bitcoin создан, чтобы поддерживать Биткоин. XT, если/когда этот хардфорк будет активирован, он отделится от Биткоина и создаст отдельную сеть/валюту. Поэтому он и поддерживающие его сервисы не должны быть допущены на r/Bitcoin. В крайне маловероятном случае, если подавляющее большинство Биткоин-экономики перейдет на XT и устоится мнение, что XT — это настоящий Биткоин, то ситуация изменится, и мы будем обязаны разрешить лишь те материалы, которые связаны с XT. В этом случае определение самого понятия "Биткоин" изменится. Нет смысла поддерживать две несовместимые сети/валюты — есть только один Биткоин, и r/Bitcoin посвящен только ему.

Если хардфорк получит практически единогласное согласие со стороны Биткоин-экспертов и его поддержит подавляющее большинство пользователей и компаний, мы сможем с высокой точностью заявить, что эта новая сеть/валюта захватит экономику и станет новым определением Биткоина. (Майнеры не имеют значения в данной ситуации, и это не голосование). Этот вид хардфорка может быть принят на r/Bitcoin, как только будет установлено, что хардфорк не противоречит основам Биткоина (таким, как соблюдение графика эмиссии, например). На данный момент вокруг любого хардфорка, увеличивающего максимальный размер блока, всегда будет слишком много споров, но это, вероятно, изменится по мере учащения дебатов и исследований, а также по мере того, как блочное пространство станет более дефицитным. Я могу предположить, что какое-то увеличение размера блока может заручиться поддержкой сообщества уже через полгода, хотя это увеличение должно быть гораздо менее значительным того, которое предлагает XT; в противном случае не все участники согласятся на него в столь сжатые сроки.

Существует значительная разница между обсуждением предлагаемого хардфорка Биткоина (что ранее всегда приветствовалось здесь, даже несмотря на то, что я не было согласен со многим сказанным) и продвижением программного обеспечения, запрограммированного на отделение и создание конкурирующей сети/валюты. Последнее явно противоречит установленным правилам r/Bitcoin, и хотя технология Биткоина будет продолжать функционировать независимо от чьих-либо действий, сама попытка разделить Биткоин подобным образом нанесет вред экосистеме и экономике Биткоина.

Если 90% пользователей r/Bitcoin считают эти правила неприемлемыми, я предлагаю этим 90% пользователей r/Bitcoin покинуть пространство. И r/Bitcoin, и эти люди получат от этого только пользу. Я не хочу, чтобы кто-либо создавал треды, нарушающие правила, требующие изменений, клянчащие лайки, осуществляющие личные выпады против модераторов и т.д. Вы не убедите никого, находящегося в здравом уме, не предоставив реальных аргументов, а лишь потратите свое и наше время. Временные правила против обсуждения размера блоков и модерации отчасти призваны побудить тех, кто должен покинуть r/Bitcoin, сделать это, чтобы r/Bitcoin мог спокойно вернуться к обсуждению Биткоин-новостей[4].

Новые правила r/Bitcoin были достаточно просты: поскольку Bitcoin XT не достиг консенсуса среди пользователей и являлся несовместимым изменением, что привело бы к появлению новой монеты, продвижение этого программного обеспечения на сабреддите было запрещено. Это явно вызвало недовольство многих сторонников крупных блоков. Для них Биткоин-Reddit был главным дискуссионным форумом сообщества, и лоббирование желаемых изменений на этом форуме было самым уместным способом, который они могли себе представить. Аргументы против цензуры начали набирать обороты и оказались весьма убедительными. Если нельзя агитировать за изменения из-за отсутствия консенсуса, то как мы вообще сможем достичь консенсуса? Это был яркий пример уловки-22! Кто такой Theymos, чтобы решать, когда мы достигнем консенсуса? Биткоин принадлежит мне в той же степени, что и ему! Если у них есть веские аргументы, зачем прибегать к цензуре? Если Биткоин настолько хрупок, что требует подобного цензурирования, то он, видимо, довольно слабый и бесполезный. Если они хотят запретить Bitcoin XT, значит, он обязан быть лучшим решением... И так далее…

Чтобы осознать всю степень ярости против Theymos, следует рассмотреть, кем являлись многие из биткоинеров, по крайней мере, те, кто был достаточно вовлечен, чтобы следить за дебатами. Как правило, это были анархо-капиталисты или либертарианцы, которые решительно поддерживали свободу слова. Легко понять, почему послание против цензуры найдет отклик у этой части сообщества. В то же время многие присоединились к Биткоину, потому что не были довольны традиционной финансовой системой. Центральные банки проводили политику, с которой многие биткоинеры были категорически не согласны, например, программы количественного смягчения или другие экспансивные денежные политики. Как правило, биткоинеры чувствовали, что их голос игнорируется или считается несущественным каждый раз, когда они выражают несогласие с такой политикой. Именно поэтому многие стали биткоинерами; многие почувствовали, что на этот раз мы контролируем деньги, и никто другой! На этот раз наш голос будет иметь значение! Поэтому их разочарование и гнев по поводу того, что их голоса в Биткоине замалчиваются, были необъятны.

Результатом такой политики модерации стал раскол Биткоин-сообщества. Сторонники больших блоков постепенно перешли на альтернативный сабреддит Биткоина, /r/btc. Они также постепенно покидали BitcoinTalk и переходили на альтернативные форумы, такие как Bitco.in. Уровень взаимодействия между сторонами постепенно снижался, и люди тратили больше времени на общение с единомышленниками. Таким образом, сообщество стало гораздо менее сбалансированным, а предвзятость подтверждения стала серьезной проблемой.

Проще всего было бы обвинить в этом расколе Theymos. Однако, глядя на то, как развиваются другие сообщества в социальных сетях, можно предположить, что это было в какой-то степени неизбежно. Людям, как правило, нравится читать то, с чем они согласны, и следовать за теми, с кем они согласны. Конформизм (confirmation bias) сильно проявляется в социальных сетях и приводит к поляризации. Возможно, самым известным примером этого является политика, где как правые, так и левые продолжают читать правдивые истории на выбранной ими платформе, которые подтверждают их первоначальные предположения и идеологию. Люди все больше и больше укореняются в своих взглядах и имеют ограниченное представление о противоположных аргументах. На этом этапе, когда люди, находящиеся по обе стороны конфликта, получают огромное количество подтверждающих материалов, им трудно поверить, что кто-то может аргументированно придерживаться противоположной точки зрения. Поэтому тех, кто придерживается противоположной точки зрения, часто считают либо глупыми, либо коррумпированными, либо преследующими какие-то меркантильные цели. Эта динамика, безусловно, быстро начала проявляться в Биткоине. Учитывая тот факт, что подобная динамика наблюдалась во всех социальных сетях, было бы наивно обвинять Theymos в происходящем, хотя, он конечно сыграл не меньшую роль в расколе сообщества, чем другие участники конфликта.

Перечитывая пост Theymos о политике модерирования, становится очевидным, что он содержит множество нюансов, которые в то время не были оценены в полной мере. Во многих отношениях он оказался прав и опередил свое время. Bitcoin XT вполне мог привести к появлению новой конкурирующей монеты в силу отсутствия консенсуса. Возможно, было правильно разбить процесс обновления на два этапа: сначала добиться консенсуса пользователей в отношении изменений, и только потом выступать за запуск нового несовместимого клиента. Сегодня процесс обновления выглядит более понятным: если кто-то хочет выпустить несовместимый клиент, есть два возможных пути:

Создать новую альтернативную монету, отличную от Биткоина, что не требует широкого согласия сообщества;

Добиваться консенсуса, прежде чем выступать за то, чтобы кто-то запустил новый клиент. Только в случае достижения всеобщего консенсуса пользователи смогут запустить новый клиент, и тогда новая монета станет известна как Биткоин.

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

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

Однако было также очевидно, что, столкнувшись с конкретным вопросом, многие считали предложение по размеру блока Bitcoin XT слишком агрессивным в отношении увеличения размера блока до 8 000 МБ в течение следующих 20 лет по фиксированному графику. В конце концов, кто такой Майк Хирн, чтобы принимать подобные решения? И откуда он мог знать, что произойдет в будущем, когда поспешные и непредсказуемые изменения исторически не приводили ни к чему хорошему? Для многих более простое и умеренное увеличение имело больше смысла. Хотя почти все участники стремились к увеличению лимита, многие, похоже, считали, что Bitcoin XT провалится, а какое-то другое, более умеренное предложение, в конечном счете, окажется успешным. Для большинства сторонников крупных блоков Bitcoin XT был необходимым шагом, чтобы начать дискуссию и послужить катализатором для стимулирования встречного предложения. Возможно, это был первый из многих критических промахов со стороны лагеря сторонников больших блоков. Можно ли ожидать победы в войне, проиграв первое сражение?

Глава 2. Начало

На заре Биткоина, с 2009 по начало 2011 года, Биткоин-клиент был единственной составляющей программного обеспечения экосистемы. Это программное обеспечение изначально существовало для Microsoft Windows и состояло из кошелька, полной ноды и майнера. Не было ни мобильных приложений, ни мерчантов, ни игорных сайтов, ни даркнет-рынков, ни биржевых инструментов, ни самих бирж, ни институциональных инвесторов; только одно-единственное примитивное и базовое приложение. Все возможности ограничивались майнингом, отправкой и получением монет. В то время Биткоин был довольно бесполезен, и на первый взгляд система не имела большой ценности или потенциала. Чтобы заинтересоваться этим новшеством нужно было обладать недюжинным воображением. Нужно было видеть на много шагов вперед и концептуально представлять как система будет развиваться и изменяться со временем, шаг за шагом выстраивая предположения о том, как будет развиваться Биткоин. Многие из этих предположений никогда не проверялись и всесторонне не обсуждались; они просто считались само собой разумеющимися и принимались на веру. К 2015 году Биткоин существовал уже пять-шесть лет, и для тех, кто уже окунулся в эту сферу, такой срок был довольно долгим, чтобы сформировать то или иное мнение. У многих участников сообщества были разные, противоречивые предположения о том, как работает Биткоин, и степень этих разногласий никогда не раскрывалась. К тому времени эти разногласия всплыли на поверхность, и, поскольку Биткоин так много значил для этих людей, результаты могли оказаться уродливыми и непредсказуемыми.

Цена биткоина также значительно выросла: с нескольких центов в 2010 году до примерно $220 за монету к лету 2015 года. Таким образом, многие стороны конфликта получили значительную финансовую выгоду, инвестировав в биткоин на ранней стадии. Неприятным последствием этого стало то, что некоторые члены сообщества стали слишком самоуверенными, даже немного заносчивыми. Допустим, кто-то решил инвестировать в начале 2011 года, когда цена биткоина была ниже 1 доллара США. Возможно, он основывал свои инвестиции на определенных предположениях и конкретном видении. Затем они могли продолжать держать монеты до 2015 года, в результате чего их инвестиции выросли более чем в 200 раз. Подобное может повлиять на психологию инвестора: наверняка предположения, сделанные в 2011 году, были верными? В конце концов, они привели к такому значительному росту. Теперь он, вероятно, будет считать, что он очень хорошо разбирается в Биткоине и знает, что лучше всего делать в будущем, полагая, что в 2011 году он уже хорошо понимал Биткоин, что и помогло ему добиться таких больших успехов. К сожалению, люди не всегда осознают, что другие ранние участники с совершенно иными и противоречивыми взглядами также инвестировали в биткоин в начале 2011 года, тем самым сводя на нет эту несколько несовершенную и предвзятую логику. Часто казалось, что люди просто полагали, что остальные ранние инвесторы согласны с ними, а те, кто занимал противоположную позицию в войне за размер блоков, были новичками. Это в значительной степени объясняет, почему противостояние так быстро обострилось и стало таким жестоким.

Здесь стоит немного углубиться в раннюю историю Биткоина. На момент выпуска Биткоина ограничения на размер блока не существовало, хотя вполне вероятно, что большие блоки, возможно, более 32 МБ, сломали бы систему. Впервые ограничение было введено Сатоши летом 2010 года. 15 июля 2010 года Сатоши добавил следующую строку кода в репозиторий программного обеспечения:

Static Const Unsigned Int MAX_BLOCK_SIZE = 1000000;[1].

Программное обеспечение, содержащее это обновление, было выпущено 19 июля 2010 года. Новое ограничение в 1 МБ вступило в силу только 7 сентября 2010 года на высоте блока 79 400 (79 400 блоков с момента запуска Биткоина). Этот тип обновления был назван софт-форком, то есть новым правилом, ужесточающим ограничения на срок действия блока. Это софт-форк, потому что уменьшение лимита ужесточает правила. Увеличение лимита ослабляет правила и следовательно является хард-форком. В случае хард-форка все должны перейти на новое программное обеспечение, чтобы следовать новой цепочке. Однако в то время терминология софт-форк/хард-форк не была известна и стала использоваться только с апреля 2012 г.[2] Этот софт-форк с ограничением размера блока был первым новым правилом Биткоина, которое имело некую методику активации, в данном случае — сигнальный день, когда новые правила становились активными при определенной высоте блока. В то время Сатоши так и не назвал четкую причину введения ограничения размера блока. Многие сторонники больших блоков утверждают, что эта мера была лишь временной, хотя мне не удалось найти заметок, датирующихся тем  временем и подтверждающих это утверждение.

Следующее ключевое событие, представляющее интерес и широко упоминаемое сторонниками больших блоков, произошло 4 октября 2010 года. Не прошло и месяца после введения ограничения на размер блока, как один из разработчиков Биткоина, Джефф Гарзик, предложил отказаться от ограничения и увеличить лимит.[3] Он представил программное исправление, отменяющее ограничение в 1 МБ и заявил, что это обеспечит Биткоину возможность масштабирования до объёма транзакций Paypal. Хотя Джефф знал, что такая проблема в столь ранние дни не являлась актуальной, он считал инициативу важной с точки зрения маркетинга и нарратива. Всего через 15 минут Theymos ответил, заявив следующее: "Применение этого патча сделает вас несовместимым с другими клиентами протокола Биткоин". Затем в разговор вступил Сатоши:

+1 Theymos. Не используйте этот патч — вы потеряете совместимость с сетью, нанеся тем самым себе вред. В случае необходимости мы можем внести изменения позже.

На следующий день Сатоши сделал дополнительный комментарий, который сейчас является одним из самых цитируемых заявлений сторонников больших блоков:

Это можно сделать поэтапно, например:

If (Blocknumber > 115000)

Maxblocksize = Largerlimit

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

Когда мы приблизимся к указанной высоте блока, я смогу отправить предупреждение старым версиям, чтобы они знали, что им нужно обновиться.

Следует отметить, что в то время высота блока составляла 83 500; следовательно, достижение высоты блока в 115 000 заняло бы еще 31 500 блоков, то есть примерно семь месяцев. Для сторонников больших блоков намерение Сатоши здесь очевидно. Сатоши ввел лимит только как временную меру и уже давал инструкции по его увеличению, имея четкий план.

Однако в целом сторонники больших блоков не всегда смотрели на полную картину или контекст. Можно интерпретировать этот диалог таким образом, что Сатоши выступает против патча для немедленного увеличения лимита размера блока, поскольку это сделает пользователя несовместимым с сетью. Затем Сатоши занимает более осторожную позицию и продолжает описывать, как при желании можно увеличить лимит, с некоторыми механизмами безопасности для обеспечения плавного обновления. Эта формулировка больше похожа на точку зрения, высказываемую сторонниками малых блоков.

Следующее высказывание Сатоши, широко цитируемое  сторонниками больших блоков, относится к еще более раннему периоду, ноябрю 2008 года, еще до запуска Биткоина, где он говорит о том, что в конечном итоге сеть сможет обрабатывать столько же транзакций, сколько их обрабатывает Visa, — 100 миллионов в день. Эта цитата очень важна для приверженцев больших блоков и явно соответствует многим их представлениям о Биткоине:

Задолго до того, как сеть достигнет хоть отчасти сопоставимых масштабов, пользователям будет безопасно использовать упрощенную проверку платежей (SPV, прим. ред) для проверки двойной траты, для чего потребуется только наличие цепочки заголовков блоков, или около 12 КБ в день. Только людям, пытающимся создать новые монеты, потребуется запускать узлы сети. Сначала большинство пользователей будут управлять узлами сети, но по мере роста сети сверх определенного предела, эта инициатива будет все больше и больше переходить к специалистам с серверными фермами специализированного оборудования. Серверная ферма должна иметь только один узел в сети, в то время как остальная часть локальной сети подключается к этому узлу.

Пропускная способность не является таким фактором ограничения, как некоторые, возможно, думают. Типичная транзакция составляет около 400 байт (ECC очень компактна). Каждая транзакция должна быть передана дважды, поэтому допустим, она займет 1 КБ. Visa обработала 37 миллиардов транзакций в 2008 финансовом году, или в среднем 100 миллионов транзакций в день. Такое количество транзакций потребует 100 ГБ пропускной способности, что соответствует размеру 12 DVD или 2 фильмов в HD-качестве, или около $18 пропускной способности по текущим ценам.

Если сеть станет такой большой, на это уйдет несколько лет, и к тому времени отправка 2 фильмов высокой четкости через Интернет, вероятно, не будет казаться большой проблемой".[4]

Конечно, у приверженцев малых блоков есть ответ и на это высказывание. Они утверждают, что Сатоши делал эти комментарии исходя из предположения о существовании технологии упрощенной верификации платежей (SPV). Это означает, что легкие кошельки могут получить доказательство двойной траты в недействительном блоке и, следовательно, в обычных обстоятельствах не будут обязаны проверять все транзакции. Эта технология еще не разработана и может оказаться неосуществимой. Поэтому некоторые сторонники малых блоков утверждают, что теперь заявления Сатоши о конкуренции с Visa в пропускной способности не применимы. Это можно считать несколько педантичным аргументом и узкой интерпретацией значения SPV.

Приведенный ниже ответ на заявление Сатоши был опубликован в оригинальной ветке рассылки, где Биткоин был впервые анонсирован, за несколько месяцев до его запуска. Самый первый ответ Сатоши, когда он анонсировал Биткоин, был от некоего Джеймса Дональда, который уже выражал беспокойство по поводу емкости, всего через один день после объявления идеи:

Чтобы своевременно обнаружить и отвергнуть двойную трату, необходимо иметь большинство предыдущих транзакций по монетам, участвующим в транзакции, что, при наивной реализации, требует, чтобы каждый участник имел большинство предыдущих транзакций или большинство недавно произошедших транзакций. Если сотни миллионов людей совершают транзакции, это транслируется в существенную пропускную способность — каждый должен знать их все или значительную их часть".[5]

Что касается цитат Сатоши, используемых сторонниками небольших блоков, то, пожалуй, наиболее упоминаемой является цитата, когда Сатоши назвал конкурирующий клиент "угрозой для сети" и упомянул, что основной дизайн Биткоина был "высечен на камне", во время дискуссии с Гэвином в июне 2010 года:

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

Скрипт на самом деле является предикатом. Это просто уравнение, которое оценивается как истина или ложь. Предикат — длинное и незнакомое слово, поэтому я назвал его скриптом.

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

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

Я не верю, что вторая, совместимая реализация Биткоина когда-либо окажется хорошей идеей. Так много в конструкции зависит от того, чтобы все узлы получали абсолютно идентичные результаты в синхронном режиме, что вторая реализация будет угрозой для сети. Лицензия MIT совместима со всеми другими лицензиями и коммерческим использованием, поэтому нет необходимости переписывать ее с точки зрения лицензирования".[6]

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

Однако не стоит переоценивать мнение Сатоши. Многие сторонники небольших блоков заявили, что он теперь не имеет значения. По крайней мере, его мнение пятилетней давности не должно иметь значения, потому что с тех пор многое изменилось. Сейчас мы, вероятно, знаем о Биткоине гораздо больше, чем Сатоши тогда, благодаря опыту, полученному вследствие наблюдения за сетью в действии. Биткоин — это не религия, а Сатоши — не пророк, часто утверждают сторонники малых блоков. Решения должны приниматься только на основе научных достижений; то, что говорил Сатоши, не имеет никакого значения, утверждали они. Однако Биткоин действительно имеет некоторые черты, схожие с религией, и, похоже, многие так считают. В конце концов, религии очень успешны; возможно, эти характеристики в некоторой степени способствовали успеху Биткоина.

Сатоши действительно внес свой вклад в дебаты в 2015 году. В день публикации Bitcoin XT с одного из адресов электронной почты Сатоши (Satoshi@vistomail.com) было отправлено письмо, в котором излагалась позиция сторонников малых блоков, в том числе утверждалось, что он изменил свое мнение о масштабировании:

Я следил за недавними дебатами о размере блока через рассылку. Я надеялся, что дебаты улягутся и что предложение о форке достигнет широкого консенсуса. Однако с официальным выпуском Bitcoin XT 0.11A это вряд ли произойдет, и поэтому я вынужден поделиться своими опасениями по поводу этого очень опасного форка.

Разработчики этого Биткоина-самозванца утверждают, что следуют моему первоначальному видению, но ничто не может быть дальше от истины. Когда я создавал Биткоин, я разработал его таким образом, чтобы будущие изменения правил консенсуса не давались легко без почти единогласной поддержки. Биткоин был создан, чтобы  защитить себя от влияния харизматичных лидеров, будь то Гэвин Андресен, Барак Обама или Сатоши Накамото. Подавляющее большинство должно поддержать изменения, и они должны сделать это без принуждения или давления. Делая форк таким образом, эти разработчики нарушают "оригинальное видение", утверждая при этом, что чтут его.

Они используют мои старые записи, чтобы сделать заявления о том, каким должен был быть Биткоин. Однако я признаю, что с тех пор многое изменилось, и были получены новые знания, которые опровергают некоторые из моих ранних мнений. Например, я не ожидал появления майнинг-пулов и их влияния на безопасность сети. Сделать Биткоин конкурентоспособной денежной системой, сохранив при этом его свойства безопасности, — это не тривиальная задача, и нам следует потратить больше времени на поиск надежного решения. Я подозреваю, что нам нужно предоставить пользователям лучший стимул для запуска узлов, а не полагаться исключительно на альтруизм.

Если два разработчика смогут форкнуть Биткоин и преуспеть в переопределении понятия "Биткоин" перед лицом широко распространенной технической критики и с помощью популистских тактик, то у меня не останется выбора, кроме как объявить Биткоин неудачным проектом. Биткоин должен был быть как технически, так и социально надежным. Наблюдать за развитием нынешней ситуации было очень неприятно".[7]

Большинство сторонников больших блоков немедленно объявили письмо подделкой. Однако заголовки письма указывали на то, что оно действительно пришло от Vistomail. Таким образом, остается три варианта: 1) почтовый ящик Сатоши был взломан; 2) письмо отправили администраторы Vistomail; или 3) Это письмо действительно пришло от Сатоши. Вторая возможность кажется крайне маловероятной, поэтому похоже, что либо это сообщение подлинное, либо аккаунт был взломан. Взлом аккаунта, конечно, возможен, поскольку другой аккаунт Сатоши (Satoshi@gmx.com) ранее подвергался взлому, когда кому-то удалось сбросить пароль. В любом случае, это не имеет значения. Если один человек, такой как Сатоши, имел настолько сильное влияние на систему, что мог в одиночку спасти ее от этого кризиса, то Биткоин не смог бы пережить ранние дни собственного развития, когда он еще зависел от одного человека. Биткоин должен был быть надежным сам по себе, чтобы выдержать огромное давление, которому он будет подвергаться как спорная и революционная денежная система, без зависимости от одного человека, которого, предположительно, легко остановить или который может исчезнуть в любой момент. Возможно, именно поэтому Сатоши и исчез. Я бы хотел сообщить, что на этом предполагаемое участие Сатоши в этой истории закончилось. Однако, к сожалению, Сатоши, а точнее заявления о Сатоши, снова появляются в этой истории позже.

В 2010 году обсуждались вопросы масштабирования, но существенных разногласий не наблюдалось, все только учились. К апрелю 2011 года ситуация немного изменилась, и стало очевидным глубокое разногласие по поводу масштабирования, комиссий и долгосрочного стимулирования биткоин-майнинга. Все по-прежнему были вежливы и учтивы, но, похоже, возникло фундаментальное расхождение во мнениях. Пользователь BitcoinTalk "Vandroiy" задал вопрос о том как будут стимулироваться майнеры, когда субсидия за блок сойдет на нет. Конечно, все знали ответ на этот вопрос, поскольку в whitepaper говорится, что "единственным источником поощрения работы над блоками останутся комиссии".[8] Однако вопрос Vandroiy был куда сложнее. Как он сказал 22 апреля 2011 года:

Любой самостоятельный небольшой майнер намерен максимизировать прибыль. Его решение о том, какие транзакции включить, не имеет значительного влияния на размер комиссии. Таким образом, майнер будет включать все транзакции, платящие любую комиссию, даже очень низкую, чтобы получить максимальную прибыль. Это приводит к снижению цены на транзакции. В свою очередь, те майнеры, которые были едва прибыльны, получают ещё меньше дохода и вынуждены покидать сеть. Это снижает хэшрейт, сложность падает, и круг замыкается. По этой причине сложность, скорее всего, упадет почти до нуля".[9]

Анализируя точку зрения Vandroiy с экономической точки зрения, он, по сути, говорит, что предельные затраты на включение транзакции близки к нулю, и в условиях конкуренции цена равна предельным затратам. В этом случае рынок очистится при низких ценах, что иногда называют "проблемой смертельной спирали рынка комиссий". Однако это не обычный рынок, где единственной целью является достижение равновесной цены и клиринг; некоторые считают, что этот рынок имеет положительные внешние эффекты, или другую цель, как говорится в whitepaper, — стимулировать майнеров. Вопрос о том, действительно ли это является проблемой для Биткоина, оказался сам по себе спорным. Читая эту ветвь форума, создается впечатление, что примерно половина участников считает это проблемой, а вторая половина — нет. Даже Майк Хирн сначала, казалось, согласился с проблемой смертельной спирали, заявив, что она "кажется правдоподобной". Однако на следующий день, 23 апреля 2011 года, Майк вполне обоснованно пересмотрел свою позицию и больше не считал это проблемой:

Аргумент "спирали смерти" предполагает, что я буду включать все транзакции, независимо от того, насколько низка их комиссия/приоритет, потому что мне это ничего не стоит, и почему бы мне не принять бесплатные деньги? Однако в реальной жизни полно компаний, которые могли бы это сделать, но не делают, потому что понимают, что это подорвет их собственный бизнес".[10]

Большинство участников, считавших, что смертельная спираль рынка комиссий представляла собой проблему, похоже, остановились на предложенном решении: ограничение размера блока не позволит комиссии упасть слишком низко, поскольку пользователям придется конкурировать друг с другом за место в заполненных блоках. Таким образом, ограничение размера блока создаст то, что экономисты называют излишком производителя (разница между тем, что готов уплатить конкретный потребитель против рыночной цены товара, прим. ред.), который может стимулировать майнеров после того, как субсидии за нахождение блока прекратятся. Хотя эти разногласия, казалось, раскололи сообщество ровно пополам, никто не выглядел слишком обеспокоенным сложившейся ситуацией. Вместо того, чтобы продолжить дискуссию, в течение следующих нескольких лет публичные обсуждения по этому вопросу практически не велись. Все участники дискуссии, казалось, полагали, что Биткоин будет развиваться в предпочтительном для них направлении. В 2013 году Майк, похоже, признал смертельную спираль рынка комиссий как реальную проблему, но предложил в качестве потенциального решения "гарантийные контракты"[11], а не ограничение размера блоков.

Первым публичным свидетельством активной кампании по вопросу размера блока стало видео, подготовленное разработчиком Биткоина и сторонником малых блоков Питером Тоддом. В мае 2013 года он выпустил профессионально подготовленный видеоролик на YouTube[12]. В видео он утверждал, что необходимо, чтобы размер блока оставался небольшим, чтобы пользователи могли подтверждать все транзакции и поддерживать децентрализацию Биткоина. Автор видео даже советовал "игнорировать любого, кто выступает за изменение программного обеспечения, которое вы используете, чтобы увеличить размер блока более 1 МБ". Видеоролик подвергся многочисленным насмешкам со стороны сторонников больших блоков, которые в конечном итоге даже захватили сайт Питера, посвященный кампании в поддержку малых блоков keepbitcoinfree.org, и заменили его материалами в поддержку больших блоков.

Питер Тодд также возмутил многих сторонников больших блоков из-за своей позиции главного сторонника так называемой "замены комиссии" (RBF). RBF позволяет пользователям заменить биткоин-транзакцию (до ее подтверждения в блокчейне) новой транзакцией, состоящей из тех же входящих данных, только с более высокой комиссией. Майнеры, принимающие политику RBF, предпочитают включать транзакцию с более высокой комиссией. В противоположность, майнеры, не принимающие эту политику и следующие принципу first seen safe (FSS, буквально "первое увиденное безопасно"), будут включать транзакцию, которую они увидели первой. В целом, Майк, Гэвин и сторонники больших блоков были против RBF, в то время как малоблочники, как правило, поддерживали это обновление. Здесь следует упомянуть решающее различие между этим спором и войной за размер блоков: ограничение размера блоков является частью протокола Биткоина, в то время как RBF — это лишь политика майнеров. Поэтому майнеры могут делать то, что им нравится в отношении RBF, и здесь нет необходимости в консенсусе. Различие между правилом протокола Биткоина и любым другим аспектом системы, таким как RBF, было чрезвычайно важно для сторонников малых блоков, в то время как большинство приверженцев больших блоков не видели этого различия или не соглашались с тем, что оно имеет такое же значение. Некоторые считали это произвольным разделением, которое сторонники малых блоков придумали, чтобы добиться своего. Несмотря на это, основной экономический аргумент вокруг RBF был почти таким же, как и вокруг спирали смерти рынка комиссий.

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

Мне кажется, что ответ на эту очевидную дилемму зависит в первую очередь от уровня конкуренции в индустрии майнинга. Если майнинг сильно сконцентрирован в руках нескольких мелких игроков, то FSS представляется в некоторой степени логичной политикой, и аргумент о спирали смерти рынка комиссий не применим. Это объясняется тем, что решения, принимаемые этими майнерами, будут оказывать значительное влияние на экосистему и, таким образом, потенциально могут нанести ущерб их будущим доходам. Если уровень концентрации отрасли низкий, то влияние решений отдельных майнеров на экосистему более ограничено. Майнеры могут предпочесть максимизировать свою краткосрочную прибыль, а не заботиться о долгосрочном пользовательском опыте, на который их действия в любом случае не окажут существенного влияния. Эту проблему иногда называют трагедией общин. Если считать, что этот феномен применим в данном случае, то рациональным будет применение политики RBF, а риск “спирали смерти” представляется в некоторой степени реальным.

Споры о RBF, похоже, имели много общего со спорами о размере блоков:

Сторонники больших блоков ставили во главу угла краткосрочную перспективу, в то время как их оппоненты фокусировались на долгосрочной перспективе;

Сторонники больших блоков отдавали приоритет пользовательскому опыту, в то время как противники увеличения концентрировались на повышении надежности системы;

Сторонники больших блоков отдавали предпочтение росту, в то время как оппозиция была больше озабочена устойчивостью;

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

Стороны не обязательно были согласны с техническими аргументами противников, просто у них были разные предпочтения и они по-разному оценивали значимость каждого рассматриваемого компонента. К сожалению, это привело к отличающимся выводам, которые оказалось невозможно примирить.

В среду, 15 апреля 2015 года, в Лондоне состоялось официальное мероприятие Bitcoin Foundation под названием DevCore. На нем присутствовал Гэвин, который прилетел, чтобы выступить с основным докладом под названием "Почему нам нужна бóльшая цепь". Я также присутствовал на этом мероприятии. Гэвин был очень приветлив и открыт к обсуждению этого вопроса. Гэвин подчеркнул, что 1 МБ — это смехотворно мало, и что многие веб-страницы превышают этот размер. По его мнению, история информационных технологий была связана с экспоненциальным ростом и тем, что все становилось быстрее и больше. Неоднократно упоминался закон Мура; он использовался в качестве примера, демонстрирующего как системы улучшаются со временем, и что в конечном итоге у Биткоина будут гораздо бóльшие блоки, до гигабайта, и не будет никаких технических проблем с масштабированием. Гэвин лично сообщил мне, что он выступает за переход к лимиту в 20 МБ, но готов пойти на компромисс и, возможно, изменить его на 8 МБ в случае согласия остальных. Через несколько дней, 18 апреля 2015 года, Майк и Гэвин провели вечернюю сессию вопросов и ответов в Лондоне. Обсуждая размер блоков, где Гэвин высказал следующую точку зрения:

Возможно, мне придется просто воспользоваться своим положением и сказать: "Будет именно так, а если вам это не нравится, найдите другой проект". Честно говоря, именно это и произошло с проектом P2SH; я просто сказал: "Я выслушал всех, выслушал пару предложений, и вот что произойдет".[13]

Пока он это говорил, я окинул комнату быстрым взглядом. Большинство людей, казалось, были довольны тем, что Гэвин обладает такой силой. Однако, очевидно, было меньшинство людей, возможно, всего пять процентов или около того, которые были несколько возмущены сказанным и считали Гэвина высокомерным за этот комментарий; было видно, что им не по себе. По их мнению, Гэвин не руководил Биткоином; если он может просто воспользоваться своим положением и изменить протокол, то в чем смысл Биткоина? Упомянув P2SH, Гэвин напомнил о несколько спорном софт-форке Биткоина в 2012 году, у которого были конкурирующие предложения, и Гэвин, по сути, выбрал дальнейшее направление развития.[14] Пообщавшись после выступления, у меня сложилось четкое ощущение, что Майк подталкивает Гэвина принять более жесткую позицию в споре о размера блоков, а Гэвин настроен менее решительно. Майк даже спросил, может ли Гэвин вытеснить других разработчиков из основного репозитория Bitcoin Core на GitHub и взять его под полный контроль. Из дальнейшего разговора с ними стало ясно, что Гэвин в конечном итоге присоединится к Майку и займет более жесткую позицию. Они оба явно считали, что как только Гэвин займет такую позицию, это окажется решающим фактором. Каким образом и когда Гэвин это сделает, и какие конкретные действия предпримет, мне тогда было неясно.

4 мая 2015 года Гэвин опубликовал блог-пост под названием "Пора выкатить более крупные блоки"[15]. Это было первое сообщение в серии постов, в которых он попытался ослабить обеспокоенность многих, связанную с увеличением размера блоков. Гэвин явно решил, что настало время продвигать более крупные блоки. 7 мая 2015 года ведущий разработчик проекта Bitcoin Core на GitHub, Владимир Ван Дер Лаан, сделал следующий комментарий в рассылке:

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

Bitcoin Core было названием эталонной реализации Биткоина и потомка клиента, который изначально создал Сатоши. Первоначально этот клиент назывался просто Bitcoin или Bitcoin-QT, однако название Bitcoin Core было принято в феврале 2013 года по предложению Майка Хирна[17], что сейчас кажется несколько ироничным. Ранее Гэвин передал право собственности на репозиторий Bitcoin на GitHub Владимиру, чтобы Гэвин мог больше сосредоточиться на исследовательской стороне протокола. Здесь также есть некоторая ирония, поскольку Гэвин, по-видимому, передал контроль, чтобы иметь возможность исследовать такие области, как комиссии и блокчейн. Возможно, в то время это казалось более важной ролью по сравнению с утомительной работой по обслуживанию репозитория; это не рассматривалось как отказ Гэвина от власти. Позже сторонники больших блоков расценили решение Гэвина передать контроль Владимиру как критическую его ошибку. Однако их оппоненты обычно утверждали, что у Владимира не было реальной власти, и что владение репозиторием было сродни работе уборщика. Окончательное решение о слиянии кода принималось только при наличии широкого согласия группы разработчиков, поэтому в конечном итоге контроль над репозиторием не имеет значения. В дополнение к этому, что очень важно, правила Биткоина не определяются изменениями в репозитории программного обеспечения; они определяются клиентами, с которыми пользователи уже работают. Конечно, репозиторий мог публиковать новые версии клиента с изменениями протокола, но функции автоматического обновления не существовало, и никто не был обязан обновляться. Это очередной пример различий, которые были важны для сторонников малых блоков, но сторонники увеличения просто не видели разницы или отрицали ее наличие. По мнению приверженцев больших блоков, в руках Bitcoin Core было сконцентрировано слишком много власти, поэтому он быстро стал их главным врагом.

Как бы кто ни относился к власти ведущего разработчика проекта, комментарий Владимира о его "слабой" оппозиции увеличению размера блока в ближайшем будущем показался весьма значимым. Казалось, хард-форк не будет включен в Bitcoin Core, несмотря на значительное лоббирование со стороны Гэвина, и поэтому возможности Гэвина были несколько ограничены. 29 мая 2015 года Гэвин гораздо более агрессивно намекнул на то, что он планирует сделать: он может переключить свое внимание на Bitcoin XT и поддержать альтернативный не имеющий обратной совместимости Биткоин-протокол. Несмотря на нижеприведенное письмо, которое было довольно ясным, я никогда не верил в это и не считал это угрозой; я думал, что это какая-то тактика ведения переговоров.

Если мы не сможем прийти к соглашению в ближайшее время, тогда я попрошу помощи в рецензировании/представлению патчей к проекту Майка Bitcoin-XT, которые реализуют значительное увеличение сейчас и продолжат рост с течением времени, чтобы нам никогда больше не пришлось переживать все эти раздоры и дебаты.

Затем я попрошу помощи в лоббировании мерчантов, биржи, компании, обслуживающие  кошельки, и другие компании, использующие инфраструктуру Биткоина (и всех, кто согласен со мной в том, что большие блоки нужны нам как можно скорее), чтобы они запустили Bitcoin-XT вместо Bitcoin Core и заявили о своей поддержке обновленной версии. Мы сможем наблюдать за распространением в сети, отслеживая версии клиентов.

Возможно, к тому времени, когда это произойдет, будет достигнут консенсус, что большие блоки нужны в ближайшее время; если да, то отлично! Раннее развертывание сыграет роль раннего тестирования, а все уже развернутое программное обеспечение будет готово к большим блокам.

Но если среди разработчиков по-прежнему не будет консенсуса, но движение "Большие блоки сейчас" будет успешным, я попрошу помощи у крупных майнеров, чтобы они сделали то же самое, и использую механизм голосования за версии блоков soft-fork, чтобы (надеюсь) получить большинство, а затем и супербольшинство, желающих производить большие блоки. Цель этого процесса - доказать всем сомневающимся, что им лучше начать поддерживать более крупные блоки, иначе они останутся позади, и дать им шанс обновиться до того, как это произойдет.

Потому что если мы не сможем прийти к консенсусу, то окончательным решением для определения консенсуса будет то, какой код использует большинство мерчантов, бирж и майнеров".[18]

21 июля 2015 года Питер Вюлле, один из разработчиков Биткоина, который в прошлом работал с Майком Хирном в Google, предложил увеличить размер блока через хард-форк. Питера считали сторонником малых блоков. На мой взгляд, это было компромиссное предложение в ответ на давление со стороны Гэвина. Предложение получило номер BIP 103 и содержало благодарность Владимиру Ван Дер Лаану и разработчику по имени Грегори Максвелл за их рекомендации[19], что указывало на их потенциальную поддержку. Предложение предусматривало активацию хард-форка в январе 2017 года, после чего лимит размера блоков будет увеличиваться на 17.7 процента в год до 2063 года. Предложение не содержало никакой методологии активации. Судя по всему, оно должно было послужить катализатором для дальнейшего обсуждения, а затем, после достижения согласия, планировалось определить методику активации.

Я считаю это предложение важным моментом. График увеличения размера блоков действительно казался несколько консервативным, однако я считал такой подход частью переговоров. Я ожидал, что Гэвин положительно отреагирует на предложение, возможно, выдвинет встречное предложение, и стороны смогут постепенно двигаться навстречу друг другу. Казалось, что мы постепенно приближались к разрешению проблемы. К моему удивлению, Гэвин и его сторонники не отреагировали положительно на BIP 103. Они посчитали предложенное увеличение настолько незначительным, что это было скорее оскорблением, чем прогрессом. К сожалению, BIP 103, похоже, не помог. При предложенном в BIP 103 ежегодном увеличении на 17.7 процента казалось вероятным, что спрос на транзакции Биткоина превысит этот темп роста. Сторонники больших блоков, в свою очередь, хотели добиться прямо противоположного; они хотели, чтобы лимит размера блоков увеличивался быстрее, чем спрос. Если обе стороны хотят противоположных вещей, можно ли вообще достичь компромисса?

Для сторонников больших блоков приоритетом был пользовательский опыт. Избежание наполнения блоков было ключевым моментом, иначе пользователям пришлось бы ждать подтверждения своих транзакций непредсказуемое количество времени. Какой мерчант примет биткоин в качестве способа оплаты, если он настолько ненадежен? Заставляя пользователей соревноваться друг с другом в борьбе за место в блоке, мы по определению лишаем некоторых пользователей возможности использовать Биткоин, заставляя их искать альтернативу. Это расценили как ужасную бизнес-стратегию. Какая платформа может быть успешной, если она намеренно отталкивает пользователей?

Для сторонников малых блоков это не являлось такой уж проблемой. Для них полные блоки не были каким-то кризисом; напротив, они были признаком успеха. Они указывали на то, что Биткоин становится популярным, и наступает новый сбалансированный уровень принятия пользователей, отражающий ограничение размера блока. Они иногда высмеивали аргумент своих оппонентов о том, что комиссии становятся слишком дорогими и вынуждают пользователей покидать сеть, уподобляя это некоему парадоксу: "Никто больше не ходит туда... там слишком тесно".

Кроме того, сторонники малых блоков склонны считать полные блоки необходимыми и неизбежными в долгосрочной перспективе. Это было необходимо для предотвращения “спирали смерти” рынка комиссий, и продолжения работы майнеров над удлинением цепочки блоков, когда субсидия за нахождение блока станет низкой. Считалось жизненно важным всегда иметь избыток транзакций, которые не попали в блоки, и ожидали добавления; таким образом, у майнеров всегда бы был стимул создавать новые блоки. Если бы не было полных блоков и избытка транзакций, зачем майнеру вообще заниматься добычей, не приносящей дохода? Вместо этого майнеры выключали бы свое оборудование, экономили бы электроэнергию и ждали, пока после каждого блока снова накопится запас транзакций. Такая работа майнеров значительно снизила бы безопасность сети. Крупноблочники считали эти рассуждения крайне неуместными. Субсидии за блок будут существовать десятилетиями; зачем терять клиентов сейчас ради того, что может стать проблемой через 20-100 лет?

Малоблочники также считали, что полные блоки неизбежны в любом случае. В конце концов, если пространство в блоках доступно, почему бы его не использовать? Любой мог хранить в блокчейне все, что угодно, например, свою музыкальную коллекцию или зашифрованные документы. Спрос на дешевые, реплицированные хранилища, по сути, неограничен, утверждали они. Поэтому требование увеличить лимит сверх ожидаемого спроса является бессмыслицей. Действительно, один человек мог бы легко заполнить все пространство самостоятельно. В ответ на это сторонники крупных блоков вновь привели аргумент о стимулах майнинга; майнеры не стали бы этого делать, утверждали они, майнеры не допустили бы такого объема данных в блоках. В дополнение к этому крупноблочники утверждали, что в первые пять лет существования Биткоина блоки не были полными, что, по их мнению, способствовало его успеху. Зачем кому-то делать рискованный шаг, меняя это теперь?

К сожалению, сообщество не приблизилось к согласию, и Гэвин продолжил реализацию своего плана. Говорят, что в июле 2015 года Гэвин проинформировал некоторых китайских майнеров и майнинговые пулы о своем предложении.[20] В Пекине состоялась встреча, на которой майнеры, как говорят, не согласились с Гэвином, настаивающем на увеличении размера блока до 20 МБ, поскольку китайская коммуникационная инфраструктура считалась слишком слабой для быстрой передачи блоков такого размера. По слухам это привело к соглашению о размере блока в 8 МБ. За кулисами Гэвин готовился к запланированному на август большому обновлению, до которого осталось всего несколько недель.

В разделе "Вопросы и ответы" на сайте Bitcoin XT было сказано следующее:

Решения принимаются по договоренности Майка и Гэвина, причем в случае возникновения серьезных разногласий окончательное решение остается за Майком".[21]

В некоторых частях сообщества это только усилило впечатление, что все это было захватом власти со стороны Майка. Кто он такой, чтобы "принимать окончательное решение"? Не то чтобы Майк был чем-то плох, он казался довольно приятным парнем; просто такое откровенное заявление казалось неправильным подходом. Биткоинерам нравится чувствовать себя хозяевами положения, они хотят владеть ситуацией и обладать финансовым суверенитетом. Это совсем не входило в послание Bitcoin XT, которое, как оказалось, было слишком сосредоточено вокруг Майка лично. В этом кроется второй серьезный просчет со стороны сторонников больших блоков: Bitcoin XT слишком сильно ассоциировался с Майком, вместо того, чтобы принять подход нацеленного на рядового пользователя. Даже использование персоналии Гэвина, вероятно, повысило бы шансы на успех.

Глава 3. Масштабирование I, Монреаль

В выходные 12 и 13 сентября 2015 года в Монреале, Канада, прошла конференция под названием “Scaling Bitcoin 2015 Phase 1”. Она была заявлена как попытка помочь разрешить конфликт, мучивший сообщество в то время. По крайней мере, это была возможность для главных героев по обе стороны дебатов поговорить друг с другом. Похоже, что большая часть обсуждения до сих пор велась через онлайн-форумы; Считалось, что в ходе личных бесед у людей может быть больше шансов понять точку зрения друг друга. Кто мог возразить против этого?

Важно отметить, что присутствовали те, кого многие считали главными действующими лицами по обе стороны дебатов: Гэвин Андресен (сторонник больших блоков) и Грегори Максвелл (сторонник малых блоков). Грегори, разработчик протокола, был стойким и бескомпромиссным сторонником аргумента в пользу меньших блоков, возможно, менее склонен идти на компромиссы, чем кто-либо другой. Грегори был исключительно умен и, как мне показалось, обладал чрезвычайно глубоким пониманием большинства различных областей исследований, которых касался Биткоин, от информатики и криптографии до теории игр. Иногда его называли Биткоин-магом. Его самый первый публичный пост на BitcoinTalk в мае 2011 года был посвящен комиссиям за транзакции и стимулам для майнинга и описывал, как сборы необходимы для защиты сети[1].

В 2014 году Грегори стал соучредителем Blockstream, компании, которая, казалось, полностью состояла из сторонников малых блоков и с бизнес-моделью, которая зависела от повышения комиссий за транзакции, поскольку Blockstream предлагал потенциальные решения этой проблемы. Проблемы, которой, по мнению сторонников больших блоков, не было, точнее, не должно быть. Поэтому Blockstream ненавидели крупноблочники, которые считали, что компания имеет конфликт интересов и стимулирует сохранение малых блоков. В защиту Blockstream имеется немало свидетельств того, что большинство соучредителей и сотрудников компании поддерживали аргументы в пользу малых блоков задолго до того, как компания была создана. Некоторые из сторонников крупных блоков по-видимому просто путали причину и следствие. Мне казалось, что сотрудники Blockstream присоединились к компании из-за ранее существовавшего представления о масштабировании, а не из-за того, что пришли к нему после присоединения к Blockstream. С другой стороны, конформизм и групповое мышление - настоящие проблемы, и, возможно, они обе играют свою роль. Однако, вопреки утверждениям сторонников теории заговора, никто в Blockstream не совершал умышленных злонамеренных действий; любая ошибка в аргументации, вероятно, была подсознательным. То же самое можно сказать о Гэвине и сторонниках крупных блоков.

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

Продолжая с автомобильной аналогией, у вас есть штат специалистов на пит-стопе, которые только что добавили усиленные поршни, противоударный контроллер топливной смеси замкнутого цикла, нитрофорсаж, и недавно изобрели и планируют к установке турбонаддув, всё это вместе с обеспечением ремонда и покраски машины (которые выглядят как их наиболее заметные аналогии; потому что они легко объяснимы). И в то время как они обсуждают степень компрессии и высокооктановые топлива, и видимую невозможность сделать машину одновременно очень быстрой и безопасной с текущими технологиями, парень с обочины, попивающий пиво из банок на своей бейсболке, говорит “Никаких проблем ребят: давайте уберём тормоза”, и толпа возбуждается: наконец-то появился кто-то, кого заботит скорость [2].

Грегори получил прозвище «One Meg Greg» из-за его поддержки малых блоков, и, возможно, его ненавидели сторонники крупных блоков больше, чем кого-либо другого.

Как человек, увлеченный дебатами о размерe блоков, учитывая присутствующих игроков, я чувствовал, что мне просто необходимо посетить конференцию в Канаде. Я подумал, что, возможно, Гэвин и Грегори будут открыто всё обсуждать и добиваться прогресса в разрешении конфликта, и я очень хотел стать свидетелем этого. В то время я работал в Лондоне в компании по управлению инвестициями под названием Ruffer. У меня оставался ограниченный отпуск, и я не мог его увеличить. Однако конференция проходила на выходных. Я разработал план, как быстро прилететь и улететь, посетив конференцию, и почти не пропуская работу. Я вылетел рейсом из Лондона в 18:45 в пятницу и приземлился в Монреале в 20:50 по местному времени. Затем я вернулся домой ночным рейсом, вылетел из Монреаля в 22:35 в воскресенье и прибыл в Лондон в 10:10 утра в понедельник, где я мог отправиться прямо из аэропорта на работу. Я пропустил пару часов работы в пятницу вечером, а в понедельник приехал немного позже: идеально.

Я думал о том, чтобы объясниться с коллегами в офисе и попросить больше свободного времени. В конце концов, это была инвестиционная компания, и эту поездку можно было отнести к категории инвестиционных исследований. Поэтому мне был бы не нужен такой напряженный график. Ruffer - это крупная инвестиционная компания, известная тем, что она точно предсказала мировой финансовый кризис 2008 года и извлекла из него прибыль. Компания, похоже, постоянно беспокоилась о риске высокой инфляции, вызванной смягчением денежно-кредитной политики со стороны центральных банков и перспективой большого бюджетного дефицита. Команда действительно казалась очень умной, любопытной и открытой для новых идей. Многие люди в компании также хорошо разбирались в монетарной истории. И действительно, в течение моей первой недели в компании один из старших сотрудников оттащил меня в комнату и спросил, как я определяю деньги. Таким образом, Биткоин казался потенциально подходящим для Ruffer, по крайней мере когда-нибудь в будущем. Однако, пару лет назад, в 2012 и 2013 годах, я много говорил о Биткоине с некоторыми из моих коллег. Хотя они всегда были вежливы и уважительны, мне показалось, что общее впечатление было несколько негативным. Вероятным лучшим вариантом было не упоминать об этой поездке, поэтому я выбрал путь интенсивного двухдневного тура в Канаду, а не более расслабленный график официальной деловой поездки.

Тогда я мало что знал, но почти ровно через пять лет после этой конференции, когда война за блоки была ничем иным, как уходящей из памяти древней историей, Ruffer купил битконов на сумму около 700 миллионов долларов для своих клиентов (около 2,5 процента клиентских портфелей). Это могло бы обозначать монументальный момент для экосистемы, особенно в Великобритании. Уважаемая и консервативная организация, такая как Ruffer, купив биткоин, оказала значительное влияние на восприятие криптовалюты финансовым истеблишментом.

Я прибыл в свой отель в Канаде, который находился в нескольких минутах ходьбы от места проведения конференции, около 2 часов ночи в субботу по местному времени. Я очень устал, но все же смог послушать часовой подкаст о конфликте из-за размера блоков в дебатах между Гэвином и Адамом Бэком[3]. Адам был единственным человеком, упомянутым в исходной статье Биткоина со ссылкой на Hashcash, разработанную им в 1997 году, и в конечном итоге он стал одним из ведущих персонажей в дискуссии о малых блоках. Адам был президентом Blockstream. В то время он, похоже, занял более умеренную позицию, чем Гэвин, предлагая свою поддержку идеи увеличения размера блока до 2 МБ, затем 4 МБ, а затем 8 МБ с двухлетним промежутком времени между изменениями (BIP 248). Это не казалось слишком далеким от того, чего хотел Гэвин, за исключением того, что Адам выступал против продолжающегося увеличения до 8000 МБ, которое поддерживал Гэвин. В подкасте я помню, как Гэвин сказал со ссылкой на Сатоши, что узлы могут работать в дата-центрах, обрабатывающих множество транзакций. Адам возразил, что сейчас майнинг стал более централизованным, чем во времена Сатоши. Эта централизация майнинга означала, что баланс изменился: пользователи, запускающие узлы для проверки правил и сохранения децентрализации сети, теперь стали более важными, чем раньше. Важно понимать, что, когда Сатоши был активен в сообществе, не было реального различия между проверяющими узлами и узлами майнинга. По сути, они были одним и тем же. К 2015 году все изменилось; появились специализированные майнинговые фермы.

Я прибыл на место проведения конференции в 8 утра в субботу, и там присутствовало несколько сотен гостей. Атмосфера была спокойной и тихой. Большинство людей, казалось, не знали друг друга и, как и я, считали себя любопытными наблюдателями в этом споре, а не участниками. На самом деле казалось, что хорошие люди присутствуют по обе стороны дебатов, и я чувствовал, что мероприятие было полезным и продуктивным. Большинство выступлений было посвящено компьютерным наукам о масштабировании Биткоина, с особым упором на научный метод и любой анализ, который содержал данные и статистику о технических ограничениях сети. Главным организатором мероприятия оказался Пиндар Вонг, бывший член Правления ICANN, обладающий опытом управления Интернетом, который также стоял за одним из первых в мире интернет-провайдеров. Большое внимание на конференции было уделено извлечению уроков из споров по вопросам управления в интернет-организациях, таких как Internet Engineering Task Force (IETF), и возможному применению этих уроков к Биткоину.

Больше всего мне понравились два выступления: Питера Ризуна об экономике размера блока, и Джеффа Гарзика о различных предложениях по предельным размерам блока. Выступление Питера было сосредоточено на экономической теории ограничения размера блока. Он считал, что аргумент о “спирали смерти” рынка комиссий не применим, поскольку без ограничения размера блока можно иметь функционирующий рынок комиссий. Тем не менее, он заявил, что не нулевая инфляция была предположением в его теории, что нормально, если выстраивается прогноз на ближне- и среднесрочную перспективу. Для тех, кто сосредоточен на долгосрочной устойчивости системы, это предположение могло показаться неуместным. Питер рассматривал ограничение размера блока как производственную квоту, являющуюся препятствием для свободного рынка, который, как он утверждал, будет определять комиссию за транзакцию более эффективным образом. Питер закончил свое выступление, сославшись на цензуру на Bitcoin Reddit тех, кто выступал за удаление производственной квоты и DDoS-атаки на клиенты и майнинговые пулы, поддерживающие удаление квоты, такие как Bitcoin XT и Slushpool, соответственно. Питер также упомянул узлы, поддерживающие сокращение производственной квоты. Он показал на экране круговые диаграммы, иллюстрирующие два процента узлов в сети Биткоин, использовавшие Bitcoin XT 15 августа 2015 года, и выросшие до пятнадцати процентов к 30 августа 2015 года. Затем Питер предсказал, что эта производственная квота не сработает.

Биткоин сломает ограждения, возведённые группами с особыми интересами, пытающимися блокировать поток транзаций (block the stream of transactions, прим. пер.). Это всё, что я хочу сказать о рынке комиссий[4].

Вышеупомянутая фраза о «стриме» явно была отсылкой к Blockstream, и этот комментарий вызвал значительный смех в аудитории. Некоторые из наиболее чувствительных сторонников малых блоков бормотали, что это троллинг и он нарушает дух сотрудничества на конференции.

Еще одна презентация, которую стоит упомянуть, - это доклад Джеффа Гарзика, озаглавленный «Проблемы, влияющие на предложения по размеру блока». Джефф был еще одним разработчиком протокола, который предложил убрать ограничение на размер блока через несколько недель после его добавления в 2010 году, как упоминалось в Главе 2. Несмотря на это, Джефф всегда производил впечатление человека, занимающего умеренную позицию, зачастую формулируя обе стороны аргумента. Похоже, он пытался позиционировать себя в споре как посредника, способного преодолеть разрыв между обеими сторонами, и он, по-видимому, никогда не поддерживал Bitcoin XT. Однако он, вероятно, действительно хотел принять какое-то решение как можно раньше, но ему не хватило терпения как у остальных сторонников малых блоков. Джефф подчеркнул в своем выступлении, что ограничение в 1 МБ - это в значительной степени маркетинговая проблема, которая удержит компании от запуска своих биткоин-программ.

Ещё одна проблема, которую я называю проблемой Fidelity. Fidelity это одна из многих компаний на Уолл-стрит, которые смотрят в сторону экспериментирования с Биткоином и они, как многие другие, говорят, что если они переключатся на свою бета-программу (проект в состоянии предварительной готовности к рынку), они исчерпают ёмкость Биткоина. Это делает гипотетический проект невозможным с самого начала, поскольку они не могут обещать перспектив роста[5].

Днем конференция разбилась на более мелкие группы. Меня определили в группу из пяти или шести человек, вместе с Гэвином. Другие рассказывали об уроках, которые они извлекли из споров, связанных с криптографическими протоколами, например, о спорных решениях о том, как выбрать хеш-функцию. Они говорили о необходимости диалога и терпения. Обсуждалась концепция «приблизительного консенсуса», методология, используемая IETF, которая включает оценку «чувства группы».

Рабочие группы приходят к решениям через “приблизительный консенсус”. Консенсус IETF не требует, чтобы все участники пришли к единому мнению, хотя это предпочтительно. В общем, должен быть доминирующий взгляд рабочей группы. (Однако, нужно отметить, что “Доминирование” не определяется на основе объёма поддержки, а скорее является некоторым смыслом общего соглашения). Консенсус может быть определён подсчётом поднятых рук, гулом, или любыми другими способами, на которые согласится рабочая группа (конечно же в ходе приблизительного консенсуса). Обратим внимание, что 51% поддержка в рабочей группе не является приблизительным консенсусом и 99% лучше, чем “приблизительный”. Задача председателя состоит в том, чтобы определить, достигнут ли “приблизительный консесус” [6].

Затем настала очередь Гэвина. По сути, он сказал, что все эти разговоры о диалоге и терпении - это здорово, но в какой-то момент нужно принять окончательное решение, и кто-то или какой-то процесс должен быть определён, чтобы принять это окончательное решение. Проблема здесь, заявил он, в том, что никто не знал, кем и как оно будет принято. То, что он сказал, было разумным, однако я чувствовал, что он все больше расстраивается и теряет терпение. Это неудивительно, учитывая огромное давление, которое он должен был испытывать как один из людей, на которых все были сосредоточены. В то время я очень уважал Гэвина за его готовность участвовать в этой дискуссии, когда проще было бы вообще не беспокоиться о конференции, как это сделал Майк Хирн.

На этой конференции я впервые встретил Грегори лично. Читая его сообщения в Интернете, у меня сложилось впечатление, что он был исключительно умен, являлся сильной личностью, быстро мыслил и был несколько нетерпеливым и нетерпимым к тем, у кого было слабое техническое понимание некоторых концепций в компьютерных науках или протоколе Биткоин. Я был удивлен его личностью во плоти; он казался спокойным, любопытным, вежливым, вдумчивым и открытым, совсем другим Грегори, чем можно было ожидать.

В коридоре конференции во время одного из перерывов я заметил, что Гэвин и Грегори сели рядом друг с другом и начали разговаривать. Это то, на что надеялись многие участники: главные действующие лица с каждой стороны обсуждают этот вопрос. Со временем группа, наблюдающая за дискуссией, становилась все больше и больше, поскольку все больше и больше хотели услышать то, о чем говорилось. Разговор, казалось, не касался обсуждаемых вопросов, а затем замедлился. Обе стороны чувствовали себя неловко, особенно Грегори. Его предпочитаемым форматом обсуждения явно были веб-форумы, где беседа была открыта для просмотра всем. Что-то столь важное, как протокол Биткоин, не должно обсуждаться в таком закрытом формате, по крайней мере, если будут приняты какие-либо решения. Поэтому разговор закончился довольно быстро и ничего не было сказано по существу.

Формат и тема конференции, безусловно, были склонны к видению развития сторонников малых блоков. Был заметен упор на исследования и обсуждение, а не на принятие каких-либо решений. Формат научных заслуг определенно заключался в том, как много сторонников малых блоков хотело, чтобы пространство эволюционировало. Крупноблочники по-видимому предпочитали более деловой подход; они рассматривали Биткоин не как какой-то теоретический научный проект, а как реальный мир, живую систему с реальными пользователями. В целом, сторонники крупных блоков были активными пользователями Биткоина, и они хотели упростить их использование, чтобы им не мешали теоретики-компьютерщики, которые, по их мнению, даже не используют Биткоин. Сторонники крупных блоков обвинили организаторов конференции в том, что они слишком усложнили проблему и использовали мероприятие в качестве задержки, чтобы выиграть время. Они цинично переименовали серию конференций Scaling Bitcoin в «Stalling Bitcoin» (“Застойный Биткоин”, прим. пер.).

Глава 4. Масштабирование II - Гонконг

Через несколько месяцев после "Масштабирования I", 6-7 декабря 2015 года в Гонконге прошла вторая фаза серии конференций "Масштабирование". Гонконг был выбран из-за его непосредственной близости к Китаю, где располагались многие майнеры биткойна. В то время отсутствие взаимодействия между майнерами и разработчиками считалось серьезной проблемой, и для её решения было выбрано именно такое место проведения встречи. Так получилось, что к этому моменту я решил уйти из Ruffer и переехать в Гонконг, поэтому время и место проведения этой конференции были для меня очень удобными. Я использовал возможность найти квартиру в городе и провёл в этом регионе целую неделю. Позднее Гонконг стал одним из ключевых полей сражений в этом конфликте, и, если кому-то хотелось стать свидетелем разворачивающейся войны, это, безусловно, было хорошим выбором места для наблюдений.

Конференция проходила в Киберпорте, бизнес-парке на западной стороне острова Гонконг, с видом на океан. Проект Киберпорта вызвал в Гонконге споры. Он был одобрен, потому что задумывался как технологический центр и инкубатор стартапов. Однако там располагалось не так много технологических компаний, большая часть огромного пространства оставалась пустой, что порождало обвинения в том, что это просто замаскированный жилой комплекс. Правительство одобрило проект развития от компании Pacific Century Group, контролируемой Ричардом Ли, сыном гонконгского магната недвижимости Ли Ка-Шинга. Проект был скандально согласован без открытого тендера, что привело к обвинениям в несоблюдении правил [1]. Можно предположить, что мы вдаёмся в излишние детали, но эти детали удивительным образом легли в основу теорий заговора, выдвинутых некоторыми наиболее непримиримыми сторонниками больших блоков. Horizon Ventures, венчурная фирма Ли Ка-Шинга, инвестировала в Blockstream, и поэтому связь конференции с Киберпортом указывалась в качестве доказательства заговора истеблишмента с целью нанести ущерб Биткоину и сохранить малый размер блока. То же самое говорилось о французской страховой компании AXA, венчурное подразделение которой также инвестировало в Blockstream. Бывшим генеральным директором AXA был Анри де Кастри, председатель руководящей группы Бильдербергского клуба, закрытого собрания мировой финансовой и политической элиты, что предоставляло идеальный материал для сторонников теории заговора. Эти безумные и глупые теории снова и снова повторялись на /r/btc.

Атмосфера в Гонконге была намного более живой и насыщенной, чем в Монреале. Напряжение было значительно выше. Конференция выглядела менее продуктивной и менее полезной, чем монреальская. Не было ощущения, что на ней между двумя сторонами ведется много полезных диалогов и дискуссий; просто споры и столкновения, в основном люди говорят, а не слушают. В первый вечер на вечеринке по случаю открытия я попытался уловить настроение толпы. Это было гораздо более масштабное мероприятие, чем в Монреале, с более широким кругом людей. Настроение было очень оптимистичным: подавляющее большинство людей были сторонники крупных блоков, которые ожидали, что с увеличением лимита размера блока проблема будет решена в течение нескольких месяцев. Большинство людей, казалось, думали, что аргументы в пользу маленьких блоков постепенно опровергаются и что лишь крошечное меньшинство выступает против хардфорка по увеличению лимита размера блока.

Что касается самих сессий, то, как и в Монреале, они были в основном техническими. Ключевым отличием Монреаля от этой конференции было присутствие майнеров. Одним из наиболее ожидаемых заседаний была рабочая группа по майнингу в субботу днем. [2] На сцене было семь человек, представляющих индустрию майнинга. Многие из них говорили на китайском; в то время считалось, что на Китай приходится около 65 процентов мирового хешрейта*. Сессия началась с вопроса о том, поддерживают ли они увеличение лимита размера блока. Большинство ответили утвердительно, однако некоторые сделали оговорки, например, что лучше действовать осторожно или что необходимо развивать диалог между Китаем и Западом. Большую часть переводов с китайского на английский выполнял Бобби Ли, который в то время был генеральным директором и основателем биржи BTCC. Бобби был горячим сторонником Биткоина и одним из ключевых пропагандистов криптовалюты в Китае. На панели обсуждались два предложения: BIP 101 (реализованный Bitcoin XT) и BIP 100 (предложение Джеффа Гарзика, позволяющее майнерам голосовать за то, каким должен быть предел размера блока). Большинство майнеров отдали предпочтение BIP 100, а не BIP 101. Возможно, это неудивительно, поскольку BIP 100 предоставил майнерам больше дискреционных полномочий.

Ван Чунг, оператор одного из крупных майнинговых пулов, F2Pool, сказал, что майнеры - единственная партия, которая имеет возможность голосовать, поэтому именно майнерам и принимать решение. Он утверждал, что Биткоин - это система с Proof-of-Work, и нет никакого механизма, позволяющего голосовать кому-либо ещё. Однако он добавил, что ограничение на размер блока в 8 МБ слишком велико, так как синхронизация узла займёт слишком много времени, что, по его словам, приведет к катастрофе.

Большинство майнеров, похоже, согласились с тем, что они контролируют сеть и что это решать предстоит им, однако они считали, что у них недостаточно информации, чтобы принять правильное решение. Сторонники малых блоков в основном не верили, что майнеры имеют право принимать решения по протоколу Биткоина, и что конечные пользователи либо контролируют, либо должны контролировать сеть. Они утверждали, что Proof-of-Work нужен лишь для решения проблемы двойной траты; майнеры просто определяют порядок транзакций. Однако большинство майнеров считало, что решать им; отчасти из-за предвзятости, поскольку люди стремятся к большей власти, но также и из-за того, что их лоббировали обе стороны. В конце концов, почему их лоббируют и просят проголосовать, если решение принимают не они? Что касается того, действительно ли у майнеров есть такая власть, это оставалось неясным. Стойкие сторонники малых блоков утверждали, что у майнеров никогда не было такой способности, поскольку они никогда не принимали монеты Bitcoin XT, в то время как другие полагали, что если будет достигнут порог активации 75 процентов, Bitcoin XT станет новым Биткойном, поскольку Bitcoin XT будет цепью "с наибольшей работой" (наибольшим накопленным хэшрейтом [*] Proof-of-Work). По их мнению, именно эта концепция наибольшей работы контролировала управление биткойнами, и пользователи сплотились бы вокруг наибольшего хешрейта. В каком-то смысле каждая сторона была права, исходя из своих предположений, что пользователи будут вести себя так же, как они сами. Если Bitcoin XT достигнет 75-процентного порога, а затем все перейдут на клиент с более крупными блоками, тогда будет один новый Биткоин, с более крупными блоками. Однако, если пользователи отвергнут обновление, исходная цепочка сохранится, и майнеры не смогут это контролировать. Проблема здесь в том, что большинство предполагало, будто другие пользователи будут вести себя так же, как они, не учитывая, что они могут действовать иначе.

После рабочей группы по майнингу в боковой комнате состоялась ещё одна дискуссия с майнерами. Это было обсуждение в режиме круглого стола, а не на сцене. Насколько мне известно, эта сессия не была официальной частью конференции. Это было то, что хотели увидеть многие участники конференции, и по мере того, как эта сессия продолжалась, небольшая комната в конечном итоге наполнилась людьми, поскольку все лихорадочно пробирались туда. В конце концов в комнату втиснулось около 80 человек; всем приходилось стоять. На этой второй встрече некоторые майнеры заявили, что хотят работать вместе с разработчиками Биткоина и прийти к соглашению. Однако спустя годы после этого события мне сообщили, что резолюция была не такой уж примирительной; в ней настойчиво указывалось, что именно майнеры контролируют протокол. Этот посыл предположительно был потерян при переводе, поскольку переводчик хотел попытаться помочь разрешить ситуацию, а не сделать разговор трудным и конфликтным. Очевидно, один из майнеров тогда заявил, что у них есть реальный бизнес, они инвестируют реальные деньги и производят блоки, дающие им реальную власть в сети, в то время как у разработчиков нет такого влияния.

Кажется, сейчас подходящее время, чтобы ввести в эту историю Роджера Вера, поскольку он также присутствовал на конференции. Роджер называет себя первым инвестором в биткойн-стартапы. У него определённо был успешный инвестиционный послужной список в этой сфере - он поддерживал такие компании, как Blockchain.info, Bitpay и Kraken. Роджер был одним из самых известных и неустанных евангелистов Биткоина в первые дни, и он всегда относился к Биткоину с огромным энтузиазмом. Говорят, что, впервые открыв для себя Биткоин, Роджер был так взволнован открывающимися возможностями, что был госпитализирован на несколько дней. [3] В частности, он всегда очень интересовался использованием биткоинов для платежей и сыграл важную роль в принятии Биткоина, агрессивно побуждая торговцев принимать в них платежи. Возможно, из-за неослабевающего энтузиазма по поводу биткоинов, который не всем пришёлся по вкусу, он получил прозвище «Биткоин Иисус».

До увлечения биткоинами у Роджера Вера была компания по продаже компьютерных компонентов MemoryDealers.com. До этого он был осужден за незаконную онлайн-продажу взрывчатых веществ в США, за что отбыл тюремный срок. После своего освобождения из тюрьмы Роджер не проводил в США много времени. Он официально отказался от гражданства США в 2014 году и к этому моменту проживал в Токио. Насколько я могу судить, до этого Роджер интересовался практической и деловой стороной Биткоина, и до войны за размер блоков его мало интересовали технические или компьютерные аспекты системы. Роджер был также хорошо известен в биткоин-сообществе своими гарантиями пользователям о платёжеспособности биржи MtGox в июле 2013 года после просмотра «многочисленных банковских выписок» [4]. К сожалению, в то время MtGox был неплатежеспособен и потерял тысячи биткойнов. [5] Через несколько месяцев после заверений Роджера, в феврале 2014 года, MtGox потерпел крах. Это в некоторой степени повредило репутации Роджера, однако у людей в сообществе короткая память, да и всегда появляются волны новых участников. Как бы то ни было, к зиме 2015 года MtGox уже казался древней историей.

Роджер был владельцем альтернативного биткоин-субреддита, /r/btc, и, учитывая его откровенные либертарианские взгляды, он был категорически против того, что он воспринимал как цензуру в основном субреддите /r/bitcoin. В тот момент на конференции Роджер не был известен в качестве одного из главных сторонников больших блоков. Зато в тот момент у него была громкая и очень публичная ссора с генеральным директором OKCoin, Старом Сюем, по поводу домена bitcoin.com и предположительно мошеннического контракта. [6] Похоже, это было как-то связано с Чанпенгом Чжао (тогда технического директора OKCoin), который впоследствии основал чрезвычайно успешную криптовалютную биржу Binance. Мы не будем здесь вдаваться в подробности, но смысл в том, что в то время Роджер казался отвлеченным на другие вещи и не был напрямую вовлечен в спор о размере блока; тем не менее, очевидно, что он был сторонником крупных блоков.

Джефф Гарзик снова выступил на конференции и рассказал о плюсах и минусах основных вариантов, которые, по сути, сводились к четырём путям развития: BIP 101, его собственная идея BIP 100, простое разовое увеличение до 2 МБ (BIP 102) или оставить всё как есть. После выступления его спросили, как будет приниматься решение. Он ответил:

Я думаю, что это будет больше похоже на процесс, в рамках которого в Монреале мы собирали входные данные. Сейчас в Гонконге мы изучаем все проблемы, стоимость валидации, различные предложения и так далее. Затем, на третьем этапе, мы возвращаемся к началу и снова общаемся бизнесами, пользователями, майнерами, и тогда приходим к приблизительному консенсусу. Мой общий ответ: нам нужно, чтобы все наши соображения были озвучены. Каждый сможет узнать, что вот так думает Дж. Гарзик, а вот так думает BitPay. Я думаю, что прозрачность и обсуждение - это и есть путь к нахождению ответа. Я думаю, что закулисные сделки, частные визиты к разным людям - не позволят его найти. Мы должны делать всё публично. Так работает открытый исходный код. [7]

В конце конференции Джефф снова вернулся на сцену. На этот раз он попросил аудиторию высказать своё мнение о различных предложениях. Он делал предложение, и если аудитория соглашалась, они аплодировали. Когда он перешёл к идее о простом увеличении до 2 МБ, в зале раздались аплодисменты. Около 70 процентов делегатов, похоже, аплодировали с энтузиазмом. Однако небольшое меньшинство было явно недовольно этим процессом и обратилось к людям с просьбой прекратить хлопать. Они хотели, чтобы решения принимались на основании заслуг, а не на основании того, кто громче всех хлопает на мероприятии. Однако большинство людей сочло это безвредным. Похоже, на конференции сложилось единодушное мнение, что выходить за рамки 2 МБ на данный момент слишком рискованно. Многие докладчики, в том числе сторонник крупных блоков Джонатан Тоомим, представили технические аргументы в пользу того, почему в текущих условиях развития сети 2 МБ безопасны, а если мы перейдём к намного более высоким значениям, более длительное время распространения блока может вызвать проблемы для сети. Большинство майнеров, похоже, согласились с этой логикой.

После конференции не было обозначено четкого пути развития. Однако мне казалось очевидным, что Bitcoin XT мертв. Считалось, что на тот момент могли быть уместными 2 МБ, но не 8 МБ. Bitcoin XT не был официально отозван, и его сторонники не признали, что они слишком агрессивно настаивали на слишком большом лимите. Такое признание могло бы помочь разрешить ситуацию. Для сторонников малых блоков Bitcoin XT создал кризисную ситуацию, вызвав напряженность и разногласия, которые усложнили разрешение проблемы размера блока. А для сторонников крупных блоков это был необходимый катализатор для разгона дебатов.

После конференции я пошел ужинать с семью или восемью людьми из Blockstream, за пределы острова Гонконг, в Коулун. Большая часть дискуссии за ужином касалась технических вопросов, вроде возможностей сжатия или агрегирования подписей биткоин-транзакций. Затем обсуждение перешло к Гэвину и его тактике. «Разве Гэвин не понимает, что биткоинерам не нравится, когда им указывают, что делать?» - размышляли они. «Люди уверены, что это они владеют биткоинами, и им хочется контролировать ситуацию. Bitcoin XT был навязан им сверху, без каких-либо попыток продемонстрировать, что пользователи контролируют положение дел, что это их решение.» Они полагали, что с тактической точки зрения Гэвин, похоже, совершил здесь большую ошибку. Все за столом, похоже, согласились с этим и были удивлены очевидной оплошностью Гэвина. Они всё ещё выражали ему симпатию; большинство из них хотели, чтобы Гэвин прислушался к их советам и попытался снова увеличить лимит размера блока, через совместные обсуждения, что позволило бы пользователям чувствовать больший контроль над своими деньгами. Один из собравшихся указал, что если бы Гэвин просто сообщил пользователям, что выбор за ними, они, вероятно, все просто последовали бы за ним. Однако Гэвин не сделал этого, потому что, похоже, просто не верил, что выбирать должны именно пользователи.

Мы сели на паром обратно на остров Гонконг поздно ночью. Я помню, как смотрел на высокие небоскребы в центре Гонконга, города, который вскоре стал моим новым домом. В центре города преобладает сектор финансовых услуг или то, что некоторые биткоинеры называют традиционной финансовой системой. Ощущение власти, создаваемое этими зданиями, задавало перспективу нашим дебатам. Нас было всего несколько сотен человек, спорящих в комнате в Гонконге. Был ли Биткоин действительно настолько важным? Сможет ли Биткоин однажды встать и бросить вызов финансовой системе? Если мы не можем разрешить наш спор сейчас, когда это серьёзно волнует лишь несколько сотен человек, на что Биткоин вообще может надеяться в будущем? Я думал об огромном давлении, которое будут оказывать на Биткоин основные экономические и политические игроки по мере его роста. По сравнению с этим то, что делали Майк и Гэвин, выглядело ничтожным.

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

Однако с точки зрения сторонников крупных блоков увеличение лимита размера блока не было изменением правил. Напротив, оно воспринималось как следование изначальному видению. Это было изменение правил в буквальном смысле и с точки зрения информатики, поскольку при увеличении размера блока сетевая дисциплина становилась менее строгой. Однако они думали, что если лимит сохранится, то произойдут серьезные экономические изменения и изменение подхода: мы перейдем от незаполненных блоков к заполненным.

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

Эта система управления была далека от совершенства и делала ее потенциально слишком негибкой, но из всего, что у нас было, только это казалось потенциально устойчивым. Это напомнило мне цитату Уинстона Черчилля: «Демократия - худшая форма правления, за исключением всех остальных». Возможно, система, в которой, если не будет всеобщего консенсуса в отношении изменений, преобладают правила статус-кво, является наихудшей формой управления Биткоином - за исключением всех остальных.

Глава 5. Сегвит

В первой сессии второго дня конференции по масштабированию Биткоина в Гонконге одним из основных выступлений был доклад биткоин-разработчика Питера Вуилле - о том, что называется "отделённое свидетельство" (Segregated Witness или SegWit). SegWit - это способ увеличения размера биткоин-блока с сохранением обратной совместимости (то есть это был софтфорк, а не хардфорк). Биткоин-транзакция состоит из различных компонентов, одним из которых является подпись, подтверждающая трату. Эта подпись обычно является самой большой частью транзакции в зависимости от объема данных. SegWit был новым форматом транзакции, в котором подпись не нужно включать в старый блок, который по-прежнему имел ограничение в 1 Мб. Клиенты, которые обновились до SegWit, увидят новый блок, содержащий эти подписи; для этих новых клиентов старый лимит размера блока в 1 МБ был убран и заменён «лимитом веса» в 4 миллиона единиц. Лимит веса был определён как четырёхкратный объем данных без подписи в байтах плюс объём отделённых данных подписи в байтах. Это означало, что данные, содержащие подписи, получили дисконт при расчетах цены транзакции, но общий лимит оказывался около 2 Мб, и это, похоже, было ровно то, что люди и хотели: увеличение лимита размера блока примерно до 2 Мб.

Биткоин-разработчик из Флориды по имени Люк Даш-младший продемонстрировал способ, делающий SegWit совместимым (софтфорк) обновлением Биткоина. Люк считался одним из самых упёртых сторонников малых блоков, а для сообщества сторонников больших блоков он был столь же ненавистным, как и Грегори Максвелл. Люк совсем не боялся выделиться из толпы своими несогласованными мнениями. Этот убеждённый католик и отец семерых детей в каком-то смысле был Кассандрой технического сообщества - исключительно резким. Однако Люк явно имел очень сильное техническое понимание Биткоина, и его очевидное нелинейное мышление, обеспечивающее ему иной угол зрения на вещи, видимо, и помогло ему придумать этот финт, который другие разработчики попросту не могли бы реализовать.

Тем, кто это понимал, SegWit казался блестящим беспроигрышным предложением. Сеть может получить блоки размером 2 МБ, при этом мы избегаем проблемы несовместимости обновления. В дополнение к этому старые и новые кошельки могут беспрепятственно взаимодействовать друг с другом, и обновление оказывается совершенно необязательным: пользователи могут либо перейти на SegWit, либо продолжать использовать сеть в прежнем режиме. С точки зрения старых кошельков у SegWit-транзакций нет подписи. Однако кошелек по-прежнему видит транзакцию и признаёт её действительной после включения в блокчейн. SegWit также означает, что ёмкость блоков потенциально может увеличиваться быстрее, чем при простом хардфорке, увеличивающем предельный размер блока, потому что не требуется ждать, пока все обновятся, и новое место в блоках можно начать использовать достаточно быстро.

SegWit выглядел не только уверенным выигрышем для Биткойна, но и блестящим, намеренным или нет, тактическим ходом сторонников малых блоков в войне за размер блока. Предложение было настолько хорошим, что против него не было веских аргументов. Гэвину пришлось поддержать предложение SegWit, и по большей части он это сделал. [1] Если полагать, что конференции по масштабированию были закулисным заговором с целью выиграть время на реализацию SegWit, то замысел отлично сработал! Следует отметить, что я не выдвигаю здесь этого обвинения. Кампанию сторонников крупных блоков по хардфорку следовало остановить, и жизненно важное время было выиграно. Я помню, как в те дни разговаривал с некоторыми из давних сторонников крупных блоков. Они сообщили мне, что, по их мнению, это гениальное предложение выбило у них почву из-под ног.

Конечно, всё это было в теории. В гипотетическом мире, где все понимали SegWit и все действующие лица были рациональны, это было блестящим ходом. Если действительно вести спор о лимите размера блока, то SegWit упраздняет лимит и заменяет чем-то другим, лишая спор смысла. Однако на деле всё вышло не так просто. SegWit был исключительно сложным, и его почти никто не понимал. Это был первый серьезный пример того, как сторонники малых блоков переоценили интеллект своих оппонентов или, по крайней мере, переоценили способность своих оппонентов понимать аспекты информатики. Рассуждая задним числом, это предложение следовало бы просто назвать как-то вроде «увеличение блоков до 2 Мб». Вместо этого у него было очень загадочное и сбивающее с толку название, которое выглядело очень подозрительно для сторонников крупных блоков, которые хотели чего-то ясного и простого, доступного их пониманию. Сторонники крупных блоков отметили, что ход вроде как исходит от их врага, а им нужен был контроль над ситуацией. Они рассматривали SegWit как просто ещё один способ затормозить внедрение крупных блоков. Поэтому, не особо разбираясь в SegWit, они выступили против него.

По мере того как SegWit начал набирать обороты в техническом сообществе, среди сторонников крупных блоков начали расти заблуждения и недопонимания. Эти недоразумения и слухи включали (ниже далеко не полный список) следующее:

SegWit это «не настоящее» увеличение лимита размера блока, он только сжимает транзакции (действительно, не обновившиеся клиенты всё еще видят SegWit-блоки, будто они размером в 1 Мб, но это также верно и для хардфорка, при котором старые узлы тоже видят обрезанные до 1 МБ блоки. С SegWit обновившиеся узлы видят блоки размером более 1 Мб, а это, предположительно, ровно то, что требуется сторонникам крупных блоков);

Биткойн основан на цепи цифровых подписей, которые SegWit удаляет, тем самым разрывая цепь и создавая угрозу безопасности;

Если майнер не обновляется для поддержки SegWit и создает блок, этот блок будет отклонен обновленными клиентами. Это увеличивает риск разделения цепи (но должно происходить только в том случае, если майнер использует специальное программное обеспечение, разработанное для разделения цепи);

Если пользователь перейдёт на SegWit, он не сможет отправлять средства пользователю, который не обновился;

Обновление SegWit может быть отменено, и тогда монеты внутри выходов SegWit могут быть украдены кем угодно (однако отмена SegWit была бы уже хардфорком).

Многие обвинения были бессмысленными, и поэтому было нелегко сформулировать опровержение. Похоже, они возникли из-за того, что большинство людей изначально не понимало основ биткоин-транзакций. Например, часто упоминалась фраза «адрес в формате SegWit», но у SegWit не было нового или другого формата адреса. Если люди не понимают даже обычную механику транзакций биткоинов, объяснить механику SegWit оказывается и вовсе невозможно.

SegWit оказался настолько сложным, что даже Джефф Гарзик, похоже, его не понял. Он думал, что будет «два стакана» для рынка комиссий: один, связанный со старым лимитом в 1 Мб, а другой - с новым лимитом в 4 миллиона единиц веса [2]. Фактически, два ограничения, размер блока и вес блока, были сконструированы таким образом, чтобы они согласовывались друг с другом и, следовательно, были эквивалентны, что обеспечивало возможность иметь единый стакан. Это не критика Джеффа; идея SegWit была чрезвычайно трудной для полной оценки и понимания, что оказалось её фундаментальной слабостью. Это просто служит иллюстрацией того, что, хотя с технической точки зрения SegWit был хорошим шагом вперед, из-за его сложности было попросту невозможно доказать это биткоин-сообществу.

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

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

Нелинейное масштабирование вычислений хэша подписи означает, что по мере увеличения количества входов в транзакции количество операций хеширования, необходимых для проверки транзакции, увеличивается квадратично, а не линейно. Эта проблема масштабирования была препятствием для внедрения крупных блоков, поскольку злоумышленники могли создавать транзакции, которые требовали так много времени на проверку, что сеть могла застопориться. Эта проблема на самом деле была одной из основных причин, по которой сторонники малых блоков противодействовали увеличению лимита размера блока - злоумышленники могли использовать эту слабость. Атакующий может создать блок, содержащий множество таких крупных транзакций, для проверки которых обычному компьютеру может потребоваться много часов. Поэтому для многих сторонников малых блоков до устранения этой проблемы ни о каком увеличении лимита размера блока не могло быть и речи. Они высмеивали крупноблочников за самоуспокоенное игнорирование этой уязвимости, и за отсутствие параноидального мышления. И наоборот, сторонники крупных блоков, похоже, считали Биткойн почти неразрушимым, или антихрупким, как они часто выражались. Сторонники малых блоков объяснили надёжность системы упорным трудом и осторожностью команды разработчиков, но сообщество не ценило это в той мере, в которой следовало бы. Для большинства крупноблочников ключевым приоритетом был именно лимит размера блока, а исправление подобных ошибок, по их мнению, было не настолько актуально.

Тем не менее, если использовать SegWit, эти ошибки оказываются исправлены. С точки зрения сторонников малых блоков это имело смысл. С SegWit можно сохранять старый лимит в 1 Мб для старых транзакций с ошибками, которые плохо масштабируются, и в то же время иметь больше места для новых транзакций без ошибок. С инженерной точки зрения SegWit выглядел просто фантастикой. Проблема, опять же, заключалась в сложности; большинство пользователей биткоинов не подозревало об этих проблемах и не беспокоилось о них. Между тем Биткоин - это больше, чем просто инженерия и информатика. Это также социальная система, живая платежная, экономическая и финансовая система. Если смотреть под этими углами, было менее очевидно, в чём смысл SegWit.

Хотя идея SegWit была представлена на конференции в декабре 2015 года в Гонконге, её ещё нужно было реализовать, проанализировать, протестировать и обсудить. Только в ноябре 2016 года SegWit был наконец внедрён в Bitcoin Core - долгое ожидание продолжалось более десяти месяцев. Несмотря на то, что он был внедрён в Bitcoin Core, это не означало, что люди могли начать использовать SegWit. SegWit означал изменение или, точнее, ужесточение правил протокола, софтфорк. На этот случай существовала методология активации. Выбранный механизм активации заключался в том, что майнеры должны были сигнализировать о поддержке. Если 95 процентов блоков сигнализировали о поддержке в течение интервала корректировки сложности, состоящего из 2016 блоков, софтфорк активировался после ещё одного двухнедельного льготного периода. Если по прошествии 12 месяцев активация не произойдёт, процесс обновления будет прерван.

Для сторонников крупных блоков такая методология активации была неуместной. Они утверждали, что никогда ни в чём нельзя прийти к согласию на 95 процентов. Это позволит любой небольшой коалиции майнеров, владеющей всего пятью процентами хешрейта, заблокировать изменение. Некоторые сторонники крупных блоков сочли выбор 95-процентного порога активации как способ потянуть время, и предпочли 75-процентный порог в Bitcoin XT. Сторонники крупных блоков были склонны рассматривать флаги майнеров как голосование, как процесс принятия решений. В этом контексте 95 процентов не имели особого смысла. С другой стороны, сторонники малых блоков рассматривали флаги как сигнальный механизм или средство безопасности. По их мнению, пользователи сами определялись с правилами протокола, а сигналы майнеров были необходимы лишь для обеспечения безопасного перехода на новые правила. Это не считалось политическим процессом голосования.

К тому же значение в 95 процентов было выбрано не на пустом месте. Все три последних софтфорка Биткоина были активированы с использованием того же 95-процентного порога: BIP 66 (ограничение подписей кодировкой DER) в июле 2015 года; BIP 65 (внедрение команды временной блокировки для трат) в декабре 2015 г .; и BIP 68, BIP 112 и BIP 113, три разных софтфорка, которые активировались одновременно в июле 2016 года. Авторы SegWit всего лишь решили продолжить использование этой (или слегка измененной) методологии активации. Следует отметить, что предыдущие софтфорки внедрялись не идеально. Активация BIP 66 в июле 2015 года вызвала разделение блокчейна на участке в несколько блоков, так как майнеры, похоже, не смогли обновиться до софтфорка, несмотря на отметку о том, что они обновились. Обновление в июле 2016 года также заняло больше времени, чем ожидалось, и сообществу пришлось лоббировать майнинговые пулы, чтобы те сигнализировали о его поддержке. Майнинг-пулы, выступавшие в дискуссии на стороне крупных блоков, медленнее обновлялись до этого, не имевшего отношения к спору, софтфорка, возможно, из-за своего общего разочарования в Bitcoin Core.

Учитывая вышеупомянутую историю и новую напряженность в сообществе, к моменту выпуска SegWit, имела место значительная неопределенность насчёт того, будут ли майнеры его активировать. Действительно, один из майнинговых пулов, ViaBTC, заявил, что не будет поддерживать обновление, ещё до того, как содержащий его клиент был выпущен. [3] Хотя SegWit и был настоящей инженерной магией, он не сумел особенно помочь в ослаблении напряженности конфликта.

Глава 6. Lightning Network

SegWit предоставил пользователям возможность создавать транзакции, которые не могли быть изменены злонамеренными третьими сторонами (решена проблема уязвимости транзакций для третьих лиц, transaction malleability). Это считалось важнейшим компонентом так называемой Lightning Network, технологии масштабирования второго уровня для Биткоина. Без этого исправления реализовать Лайтнинг было бы слишком сложно.

Lightning Network была впервые представлена в статье Джозефа Пуна и Тадеуша Дрийи в феврале 2015 года. Несколькими месяцами позже схожая статья с описанием этих решений второго уровня была опубликована Кристианом Декером [1]. В статьях описывался механизм платежной сети второго уровня поверх Биткоина. Подобные концепции обсуждались в биткоин-пространстве в течение многих лет. В сущности, эта идея, похоже, шла ещё от Сатоши. [2] Смысл работы Лайтнинга состоит в объединении нескольких платежей в меньшее количество биткоин-транзакций. Биткоин-транзакции используются для открытия платежных каналов, которые, будучи единожды настроенными, обеспечивают поток повторяющихся платежей. У компаний могут быть каналы с множеством разных контрагентов, образующие в результате единую сеть. Платежи могут двигаться по цепочке связанных между собой каналов, пока не достигнут конечного получателя (это называется маршрутизацией или роутингом платежей, прим. ред).

Для некоторых сторонников малых блоков эта архитектура второго уровня имела огромный смысл как основа высокопроизводительной и дешёвой глобальной платежной системы. Платежные системы, основанные на блокчейне, обычно работают в режиме «оповещение для всех», то есть при совершении платежа необходимо транслировать транзакцию всем участникам сети. Затем все участники должны обработать эту транзакцию, чтобы убедиться, не для них ли этот платёж. Эта система считается крайне неэффективной, особенно для небольших платежей. Если кто-то покупает кофе во Франции с помощью биткоинов, зачем продавцу билетов на концерты в Японии нужно проверять эту транзакцию? По сути, именно так всегда работали криптовалютные ончейн-платежи, и с точки зрения сторонников малых блоков для небольших платежей эта архитектура не имела большого смысла; она была нужна только как базовый слой денежной системы. Сеть Лайтнинг обеспечивает повышение эффективности, поскольку использует более логичную структуру платежной сети. Транзакция, вместо того, чтобы транслироваться всем, может быть отправлена ​​напрямую получателю платежа, в рамках более или менее одноранговой архитектуры. Если одна из сторон транзакции нечестна и пытается украсть деньги, другая сторона может транслировать транзакцию в блокчейн Биткоина и вернуть средства. Таким образом, блокчейн и механизм биткоинового консенсуса Proof-of-Work используются в качестве службы разрешения споров. Пока обе стороны честны, все нюансы, неэффективность и ограничения масштабируемости PoW могут быть оставлены за кадром.

Основное беспокойство сторонников крупных блоков было в том, что им казалось, будто Лайтнинг используют просто в качестве предлога, лишь бы не увеличивать лимит размера блока. Для них это было совершенно недопустимо. Внедрение сети Лайтнинг представлялось очень сложным, негарантированным и, в лучшем случае, её можно было бы всерьёз использовать лишь спустя годы, между тем проблема размера блока требовала срочного решения. Крупноблочники рассчитывали на широкомасштабное принятие биткоина в торговле, и 2015 год стал в этом плане периодом огромного успеха. В 2015 году Expedia, Overstock, TigerDirect, Newegg, Dell, Rakuten и Microsoft начали разрешать клиентам оплачивать в той или иной форме покупки биткоинами. В апреле 2016 года начал принимать платежи в биткоинах магазин видеоигр Steam. Эти магазины не использовали лайтнинг, они использовали транзакции ончейн. Если Биткоин пойдёт по пути внедрения Лайтнинга, платежное решение, которое выбрали эти магазины, станет ненадежным из-за высоких комиссий и длительного времени подтверждения. Это окажется катастрофой для сети, магазины, скорее всего, перестанут принимать биткоины и никогда не вернутся к этой практике из-за неудачного опыта. Хотя у Лайтнинга была технически превосходная архитектура, это не имело значения. В конце концов, многие из этих коммерческих бизнесов действительно перестали принимать биткоины, так что опасения сторонников крупных блоков оказались в значительной степени справедливыми. На ум приходит фраза «лучшее враг хорошего». Не увеличивать размер блока было явно плохим бизнес-решением. Потеря этих магазинов была огромным разочарованием для сторонников крупных блоков.

Однако для адептов малых блоков Биткоин не был бизнесом или платежной системой, взявшей на себя роль VISA, Paypal и Mastercard. Это была новая форма денег, нечто гораздо более амбициозное и потенциально способное куда сильнее трансформировать общество и экономику. Скорее, Биткоин бросал вызов центральным банкам. В целом, сторонники малых блоков не имели ничего против того, чтобы Биткоин стал быстрой и дешевой платежной системой; просто это пожелание шло вторым после их основного приоритета - новой надёжной формы денег.

Это было не просто расхождение во мнениях: для адептов малых блоков их приоритет был разумным стратегическим ходом, в то время как приоритет крупноблочников казался наивным. Платежи в биткоинах были быстрыми и дешёвыми по сравнению с некоторыми другими централизованными формами платежей, такими как кредитные карты и банковские переводы. Однако, стоит Биткоину набрать обороты, эти платежные сервисы могут просто снизить комиссию и ускорить транзакции. Действительно, с точки зрения IT-архитектуры этому ничто не препятствует; централизованные платежные сети более эффективны. Централизованные IT-системы в принципе способны обрабатывать больше транзакций, быстрее и с меньшими затратами, чем Биткоин или любая другая децентрализованная система. Причина, по которой централизованные платежные системы этого не сделали, заключалась в отсутствии конкуренции и некоторых юридических проблемах, связанных с администрированием, но их можно было преодолеть. Это произошло не из-за какого-то фундаментального недостатка в технологии централизованных баз данных. Если бы Биткоин был ориентирован на то, чтобы оставаться недорогой платежной сетью, что для всех было желательно, то, конечно, в краткосрочной перспективе он бы получил долю рынка; однако в долгосрочной перспективе его преимущество оказалось бы неустойчивым. Напротив, превращение в новую форму денег, способную осуществлять неблокируемые электронные транзакции, было тем, с чем традиционный финансовый истеблишмент не смог бы конкурировать. Следовательно, именно это должно было стать драйвером его долгосрочной устойчивой ценности. И вновь, таким образом, всё свелось к разногласию во временных предпочтениях.

Таким образом, для тех, то отстаивал малые блоки, проблема заключалась не в выборе между платежной сетью и надёжной денежно-кредитной системой, где крупноблочники предпочитали первое, а мелкоблочники - второе. Дело в том, что идея сети быстрых и дешевых платежей не позволяет создать модель с устойчивым конкурентным преимуществом. Технология блокчейн просто не имеет характеристик, которые делают её пригодной для этого; она не масштабируется. Единственный способ получить и то, и то - это решения второго уровня, такие как Лайтнинг.

Поскольку идея Лайтнинга была очень сложной, это, конечно, привело к недопониманию, как и в случае с SegWit. Были ложные утверждения, что монеты, заблокированные внутри лайтнинг-каналов, подвержены кредитному риску, и что Лайтнинг каким-то образом вызовет проблему кредитной экспансии Биткоина. Высокая степень сложности Лайтнинга, безусловно, была проблемой, и некоторые серьезные опасения были вполне обоснованными. Возник вопрос, как обеспечить наличие у каналов достаточной ликвидности для облегчения платежей. Лайтнинг предполагал наличие комиссий, которые пользователи должны платить, чтобы стимулировать предоставление ликвидности, и было неясно, позволит ли существующая динамика эффективно масштабировать Лайтнинг в дешёвую и надёжную платёжную сеть. У Лайтнинга также было несколько других проблем по сравнению с платежами в сети Биткойн, например, требовалось, чтобы получатель транзакции был в сети и взаимодействовал с отправителем, чего ончейн-транзакции не требовали. Лайтнинг также подразумевает, что пользователи контролируют свои каналы и управляют ими, чтобы обеспечить достаточную ликвидность и предотвратить с них кражу. Вот эти проблемы для сторонников малых блоков были настоящими. Однако предполагалось, что в долгосрочной перспективе эти проблемы будут постепенно скрыты от пользователей, и сторонние службы или умные кошельки обеспечат те или иные автоматизированные механизмы для их решения. И снова мы упираемся во временное предпочтение: на развитие и созревание этих систем может уйти много лет.

Крупноблочники могут более или менее легитимно утверждать, что сторонники малых блоков это очень продвинутые компьютерные гики, склонные к сложным, технически элегантным, но непрактичным решениям. Утверждается, что им не хватает деловой хватки, и они не понимают, когда требуется более простое решение всех этих проблем. Что касается Лайтнинга, это одна из тем, где на сегодняшний день сторонники крупных блоков оказываются в целом правы. На момент написания, хотя Лайтнинг набирает обороты, и технология быстро совершенствуется, освоение лайтнинга в торговле всё ещё невелико. Принятие магазинами биткоинов в конце 2015 года было более значительным, чем сегодняшнее распространение Лайтнинга. Тем не менее, я по-прежнему с оптимизмом смотрю на Lightning Network, и, если размышлять в масштабе десятилетий, успех всё ещё возможен.

Глава 7. Bitcoin Classic

К концу 2015 года война стала заметно интенсивнее. Были даже волны распределенных атак типа «отказ в обслуживании» (DDoS) на узлы Bitcoin XT. 28 декабря 2015 г. пользователь Reddit /u/tl212 прокомментировал:

Меня задидосили. Это была массированная DDoS-атака, которая положила моего (сельского) провайдера. Из-за этих преступников жители пяти городов потеряли доступ к интернет-серверу на несколько часов. Это определённо убедило меня отказаться от хостинга узлов. [1]

Эта акция действительно казалась довольно агрессивной и была явно неоправданной. Примечательно, что поступило сообщение о настолько мощной атаке, что она полностью отрубила интернет-провайдера. Атаки действительно оказали существенное пагубное воздействие на сеть Bitcoin XT, и поэтому в какой-то мере можно утверждать, что они сработали. Я не знаю каких-либо сторонников малых блоков, чья личность известна, и которые поддерживали бы такое неэтичное поведение, но некоторые анонимы, выступающие на этой стороне, действительно оправдывали случившуюся акцию на BitcoinTalk, называя его «встречной атакой». Однако одну вещь эта атака действительно выявила - насколько важна большая, распределенная и надежная P2P-сеть, которой Bitcoin XT на тот момент не обладал. Кто стоял за этими атаками, так и осталось неизвестным, хотя несколько месяцев спустя прошёл слух об операторе ботнета, которому анонимно заплатили в биткоинах за запуск атаки. Поведение злоумышленников считалось неэтичным даже сторонниками малых блоков, многие из которых считали его потенциально контрпродуктивным и способным оттолкнуть союзников. На мой взгляд, это редкий пример тактической ошибки из лагеря малых блоков, конечно, если предположить, что это было выступление мелкоблочника, а не какая-то операция под ложным флагом. Война велась за то, чтобы убедить людей присоединиться к избранной стороне, и такие агрессивные действия не могли принести успех. Насколько мне известно, эта форма атаки больше не играла заметной роли в войне за блоки.

3 января 2016 года Брайан Армстронг, генеральный директор Coinbase (одной из крупнейших спотовых бирж в отрасли и компании с самой впечатляющей поддержкой со стороны венчурного капитала), сделал у себя в блоге публикацию в поддержку более крупных блоков. Брайан также поддерживал Гэвина и имел противоречивые взгляды на то, куда развивать Биткоин.

К счастью, Биткоин имеет встроенный механизм обновления с элегантным дизайном. Если большинство биткоин-майнеров «голосуют» за конкретное обновление, то это по определению новая версия биткойна. Количество голосов, которые получает каждый майнер, пропорционально вычислительной мощности, которой они участвуют в сети (поэтому голоса нельзя подделать) [2].

Мнение о том, что за какой бы цепью блоков ни стояла наибольшая хэш-мощность, это и будет Биткоином, казалось, не имело большого смысла для адептов малых блоков. С их точки зрения биткоин-узлы строго применяют конкретный набор правил; блок должен соответствовать этим правилам, иначе он будет проигнорирован. Для них именно это было принципиально важной частью работы Биткоина. Если бы майнеры просто попытались изменить правила по-своему, это привело бы к разделению цепи и появлению новой монеты. Монета, соответствующая первоначальным правилам, продолжит оставаться оригинальным биткоином.

Мелкоблочники, как правило, считали полные узлы важными для соблюдения правил протокола, в то время как для крупноблочников это не имело особого значения. Они исходили из того, что большинство пользователей использует не полные узлы, а лёгкие клиенты, подключающиеся к сторонним полным узлам. Однако даже в рамках картины мира, при которой пользователи не держат полных узлов, у них всё ещё остаются кошельки. Все пользовательские кошельки, хотя и не обеспечивают соблюдение всех правил протокола, но обеспечивают, по крайней мере, соблюдение некоторых из них. Помимо размера блока, у Биткоина есть ещё множество правил и условностей, например, форматы транзакций, подписи для подтверждения расходов, структура дерева Меркла, формат заголовка блока и т.д. Действительно ли Брайан и крупноблочники полагали, что любая сущность, за которой стоят вычислительные мощности, даже просто цепь хэшей без какой-либо привязки к данным о транзакциях, может или должна определяться как Биткоин? Даже в рамках представлений крупноблочников, где конечные пользователи используют только лёгкие узлы, блоки все равно должны были соответствовать некоторым правилам.

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

Я часто пытался исследовать видение этой темы некоторыми сторонниками крупных блоков. Я задавал им такие вопросы, как: что произойдет, если майнеры увеличат инфляцию выше лимита предложения в 21 миллион и передадут эти монеты себе; если эта цепочка будет обеспечена большей работой, то будет ли это биткоином? Обычно они отвечали примерно так: «Майнеры никогда бы этого не сделали»; или «Биткоин - это теория игр и стимулы, если бы майнеры сделали это, цена упала бы»; или «теория игр построена так, что майнеры этого не делают». Я же утверждал, что если бы майнеры сделали это, все узлы и кошельки сочли бы эту цепочку недействительной. Если майнеры нарушат лимит предложения монет, вы просто не увидите эти блоки. Крупноблочники обычно отвечали на это, что «узлы не имеют значения»; для них Биткоин всегда определяется по самой обеспеченной работой цепочке, независимо от того, принята она узлами или нет. Если пользователь хочет быть частью Биткоина, ему может потребоваться загрузить и установить для своего узла новое программное обеспечение, чтобы убедиться, что он имеет дело именно с цепочкой, обеспеченной наибольшей работой, независимо от того, нарушает ли она некоторые правила или нет.

Мне было не до конца ясно, кто здесь прав. Это должно было зависеть от того, как люди себя поведут. Если все будут вести себя в логике крупноблочников и загружать на свои узлы новые клиенты, чтобы следовать по самой длинной цепочке, то да, они окажутся правы. Однако, если все поведут себя как сторонники малых блоков и станут упорно держаться своего первоначального клиента, тогда правыми окажутся уже они. Это оставалось открытым вопросом, и никто не мог быть уверен на 100 процентов в правильном ответе. Экстремисты с обеих сторон были убеждены в своей правоте, однако их взгляды выглядели довольно узколобыми. Обе стороны построили ментальную модель, предполагающую, что люди будут вести себя так же, как они. Реальность, конечно же, заключалась в том, что разные люди имеют разные идеи и взгляды, и поэтому ведут себя по-разному. Представления крупноблочников, по-видимому, полагались на то, что с ними соглашались почти все, в то время как мелкоблочникам было достаточно согласия любого значительного меньшинства. С этой точки зрения мне казалось, что малые блоки - более правильная позиция. Некоторые люди будут обновлять свои клиенты, а некоторые нет, поэтому мы можем получить разделение сети.

Это различное видение роли полных узлов в обеспечении соблюдения правил привело к дальнейшей путанице. Выступающие за малые блоки часто говорили, что они против увеличения лимита размера блока, поскольку это сделало бы стоимость поддержки узла слишком высокой, что могло бы уменьшить общее количество узлов и привести к централизации. Их оппоненты ошибочно интерпретировали это как опасения, что будет недостаточно ретрансляционных узлов, и поэтому одноранговая сеть, по которой распространяются данные транзакций, может быть слишком слабой. Таким образом, сеть будет централизована вокруг нескольких крупных узлов. Однако сторонников малых блоков беспокоил не этот тип централизации. Их больше волновала мысль о том, что недостаточное количество конечных пользователей сможет запускать биткоин-клиенты, которые полностью проверяют все правила протокола, что может подорвать децентрализацию исполнения правил протокола. Крупноблочники, казалось, вовсе не понимали этой проблемы и считали, что конечным пользователям не обязательно нужна возможность запускать собственные клиенты полного типа. Таким образом, для них риск того, что из-за больших блоков запуск полных узлов окажется чрезмерно дорогим, не казался серьезной проблемой. Эти разные взгляды, по сути, означали, что обе стороны транслировали друг другу свою повестку, но не пытались понять точку зрения друг друга.

Эта путаница часто смешивалась с аналогичным заблуждением о том, как работает Биткоин. А именно, с популярной идеей о том, что "атака 51%" может позволить украсть пользовательские средства даже без наличия валидной подписи расходующей стороны. Но майнеры не могут этого сделать, по крайней мере, в мире малых блоков; всё, что майнеры могут сделать при атаке 51% - это осуществить транзакции с двойной тратой, когда имеется действительная подпись для двух конфликтующих транзакций. Нельзя сказать, что все крупноблочники этого не понимали; в какой-то мере понимание присутствовало. Просто это была новая область науки, исследуемая впервые. По этому вопросу с обеих сторон существовала значительная неуверенность, и требовалось время, чтобы прийти к взаимопониманию. Отсутствие ясности в этой области уменьшило способность игроков на стороне крупных блоков достигать своих целей. Если бы более они более концентрированно сосредоточились на том, чтобы убрать из правил протокола ограничение на размер блока, а не создавали путаницу в отношении того, существуют ли такие правила вообще, они могли бы добиться большего успеха.

Мнение Брайана о том, что истинная цепь определяется хешрейтом, похоже, подкрепляется последним предложением в whitepaper Биткоина, которое гласит:

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

Эта цитата часто распространялась и повторялась сторонниками крупных блоков. Однако неясно, разделял ли вообще Сатоши это видение. Действительно, в whitepaper также говорится:

Мы рассматриваем сценарий, когда злоумышленник пытается создать альтернативную цепочку быстрее, чем создаётся честная. Даже если это будет выполнено, система от этого не станет открытой для произвольных изменений, таких как создание ценности из ничего или получение денег, которые никогда не принадлежали злоумышленнику. Узлы не собираются принимать недействительные транзакции в качестве оплаты, а честные узлы никогда не примут блок, содержащий их. Злоумышленник может попытаться изменить только одну из своих транзакций, чтобы вернуть недавно потраченные деньги. [3]

Выше Сатоши ясно дает понять, что узлы действительно применяют определённые правила. Важно оценивать whitepaper в контексте: в первую очередь, речь шла о потенциальном решении проблемы двойной траты. Пользователи, запускающие узлы для обеспечения соблюдения правил, не были ключевым новшеством системы; таковым было Proof-of-Work. Майнеры определяли порядок транзакций. Именно в этом контексте, по утверждениям сторонников малых блоков, и следует оценивать последнюю строчку документа. Однако эти две цитаты в whitepaper кажутся несколько противоречащими друг другу.

Многим казалось, что существуют принципиально разные взгляды на то, как работает Биткоин. Однако эта потенциальная трудность не обязательно должна была напрямую вызывать проблемы в этой войне за размер блока. Крупноблочники больше всего хотели, разумеется, более крупных блоков. Они хотели дать майнерам полную свободу действий в отношении размера блока, будь то система, подобная BIP 100, где майнеры голосуют за конкретный лимит, или вовсе полное удаление лимита размера блока из правил протокола Биткоина. Вместо этого вокруг этой проблемы возникла путаница: крупноблочники часто утверждали, что имея перевес по хешрейту, можно сделать почти всё, без добавления каких-либо уточнений. Отсутствие фокусировки и ясности сильно повредило лагерю больших блоков. Им стало намного труднее привлекать пользователей на свою сторону. Аргумент о том, что в случае хардфорка по увеличению лимита размера блока, поддержанного большинством майнеров, пользователи будут устанавливать новый клиент с большим лимитом на размер блока, имел для меня большой смысл; в этом и была цель крупноблочников. Однако аргумент о том, что кто-либо загрузит и установит новый клиент, чтобы следовать по более длинной цепочке, которая крадет монеты у отдельных пользователей и передает их майнерам, не имеет особого смысла. Если бы это действительно произошло, у меня есть серьёзные основания полагать, что крупноблочники быстро бы отказались бы от своих утверждений об отсутствии сетевых правил. Поэтому, возможно, видимая разница во взглядах была не такой глубокой. Крупноблочники просто хотели блоки большего размера. Они выдвинули этот аргумент о цепочке, наиболее обеспеченной работой, которая определяет Биткоин, поскольку думали, что это помогает их делу.

В своем блоге Брайан написал о том, что Coinbase неизменно поддерживает Bitcoin XT:

Я думаю, что BitcoinXT - одно из нескольких хороших предложений, которыми мы были бы довольны, но сверх этого людям не стоит много читать о нём (мы держим рабочие узлы различных типов, включая Bitcoin Core, XT, кастомный узел собственной разработки, о котором мы писали ранее, работающий в нашем масштабе, и мы, вероятно, добавим в будущем новые узлы, такие как BitcoinUnlimited)

Незадолго до этого поста с объяснением Брайан публиковал твиты (теперь удалённые), в которых выражалась поддержка Bitcoin XT. Практически сразу после этого Coinbase была удалена из перечня рекомендованных кошельков на сайте Bitcoin.org. Этот веб-сайт был одним из основных источников информации о Биткоине, и изначально он был создан Сатоши [4]. Это агрессивное действие было очень похоже на политику модерации на Bitcoin Reddit. Это приводило в ярость крупноблочников, которые сочли такой поступок мелочным, детским и вызывающим разногласия. С другой стороны, сторонники малых блоков заявили, что Coinbase фактически объявила о своем намерении перейти с биткоина на альткоин. Поэтому они считали, что его больше не следует указывать на веб-сайте Биткоин, ибо это вызывает путаницу. Как и цензура Reddit, это действие, похоже, только укрепило решимость крупноблочников и ещё больше раскололо сообщество.

В конце декабря многие, казалось, были удивлены продолжающейся поддержкой, которую Брайан оказывал Bitcoin XT, поскольку на тот момент идея казалась почти мёртвой, коль скоро большинство майнинговых пулов заявили, что увеличение до 8 Мб это слишком много. В том же посте Брайан поместил скриншот с таблицей Excel, показывающий предпочтения майнеров в отношении размера блока. На скриншоте видно, что все три основных майнинговых пула выступают против Bitcoin XT. За шесть месяцев, прошедших с тех пор, как майнеры согласились на 8 Мб, их мнения изменились. Теперь на повестке дня стояло простое, более консервативное увеличение до 2 Мб, и, похоже, оно набирало обороты.

14 января 2016 года произошел еще один поворотный момент в войне за размер блока. Майк Хирн, главный сторонник Bitcoin XT, был настолько разочарован отсутствием прогресса в вопросе о размере блока, что объявил Биткоин неудавшимся экспериментом и анонсировал продажу всех своих монет [5]. Майк высказал мнение:

В результате гражданской войны Coinbase - крупнейший и самый известный биткоин-стартап в США - была удалена с официального сайта Биткоина за выбор «неправильной» стороны и запрещена на форумах сообщества. Когда отдельные части сообщества совершают злобные нападки на людей, познакомивших миллионы пользователей с криптовалютой, это значит, что вокруг все действительно посходили с ума.

То, как Майк Хирн «хлопнул дверью», освещалось во многих средствах массовой информации и, по всей видимости, привело к 10-процентному падению цены биткоина с 432 до примерно 388 долларов США.

Через пару дней после объявления Майка, 16 января 2016 года, Джихан Ву написал в Твиттере следующее:

Лузер Майк Хирн допустил множество расистских и несправедливых высказываний в адрес китайских биткоинеров. Это объясняет, почему он не сумел получить достаточную поддержку [6].

Джихан был одним из самых влиятельных и значительных игроков в сфере майнинга. Он был соруководителем и соучредителем Bitmain, китайской компании, которая производила майнеры, имела собственные майнинговые фермы и управляла майнинг-пулами. Джихан был явно зол на выходку Майка, однако его критика воспринимается несколько иронично, поскольку Джихан вскоре зарекомендовал себя как ведущий игрок в лагере больших блоков. Что касается утверждения Джихана о расизме Майка, то это показалось мне странным, поскольку во всех моих взаимодействиях с Майком это вообще никак не проявлялось. С другой стороны, некоторые крупноблочники высказали антикитайские комментарии в моём непосредственном присутствии. Например, они заявляли, что отсутствие поддержки XT имеет причиной в китайской лояльности репрессивному статус-кво, и проводили параллели с широкой поддержкой коммунистической партии в Китае. Это объяснение отсутствия поддержки XT, на мой взгляд, было нелепым и возмутительным, и проистекало из обычной предвзятости, которая была широко распространена в этом вопросе. Возможно, Майк тоже высказывал подобную ​​точку зрения, но это маловероятно. На следующий день Майк указал в посте на форуме, что у него были бурные телефонные переговоры с китайскими майнерами. Видимо, переговоры не привели к желаемому результату, и, возможно, именно это и послужило причиной обвинений в расизме. В посте также объяснялось, почему изначально в качестве лимита в Bitcoin XT было выбрано 8 Мб; восемь - счастливое число в Китае.

Почему восемь? Потому что это китайский омоним слов «процветание» или «богатство»:

Восьмёрка постоянно всплывает в китайском биткоин-сообществе. Таким образом, наш выбор, очевидно, не был основан на каком-либо научном анализе. Очевидно, что наличие констант протокола Биткоина, определяемых рифмами, это сомнительная мера, но, тем не менее, мы пошли на компромисс и сделали это.

После того, как Core отклонил модифицированный теперь BIP 101, мы с Гэвином вместе выпустили XT. В этот момент майнеры поменяли свои установки. Они заявили, что никогда не запустят ничего, кроме Core, и точка, конец сказки. Это «требование» раньше не оговаривалось. В личных разговорах (у меня было несколько телефонных созвонов с майнерами по всему миру, включая майнеров в Китае) и публичных заявлениях они дали понять, что их лояльность к Core абсолютна, и какие бы изменения мы ни внесли в XT, они бы никогда не запустят этот клиент. Таким образом, дальнейший поиск компромисса не имеет смысла [7].

Примерно в этот момент, когда в гроб XT был забит последний гвоздь, сторонникам крупных блоков потребовалась новая причина для объединения. Новая попытка добиться крупных блоков называлась Bitcoin Classic [8]. Это был простой разовый переход к лимиту в 2 Мб, гораздо более умеренное и разумное предложение, чем 8000 Мб, которые подразумевались в Bitcoin XT. На этот раз главным разработчиком предполагался Гэвин, а не Майк. Джефф Гарзик теперь также поддержал это предложение и был указан на веб-сайте Classic как разработчик. У Classic, в силу более умеренного подхода к размеру блока, было больше шансов на успех, чем у XT.

Практически все майнеры и крупные игроки отрасли согласились с разовым скачком до 2 Мб. С другой стороны, имелся прецедент: кампания по упразднению правила консенсуса Биткоина только что провалилась, и теперь крупноблочники снова пытались сделать то же самое. Это, казалось, вселяло надежду в лагере малых блоков. Биткоин-майнер Джонатан Тоомим утверждал на конференции по масштабированию в Гонконге, что 2 Мб - это безопасный лимит, и он отстаивал Bitcoin Classic. Мелкоблочники прозвали монету «ToomimCoin» [9], пытаясь связать Classic с Джонатаном Тоомимом, так же, как Bitcoin XT был связан с Майком. Bitcoin Classic был официально выпущен 10 февраля 2016 года. [10]

Методология активации Bitcoin Classic была почти идентична Bitcoin XT, без каких-либо улучшений. Не было также никаких усилий для достижения широкого консенсуса перед тем, как побуждать пользователей запускать клиент. Действительно, крупноблочники не желали этого делать. Мало того, что они хотели блоки большего размера, они также, по-видимому, презирали методологию активации, отстаиваемую противоположным лагерем. Это было связано с потерей доверия, а также гневом из-за цензуры и других предполагаемых агрессивных действий мелкоблочников. Таким образом, Bitcoin Classic сохранил 75-процентный порог активации для майнеров, который использовал Bitcoin XT. Мне это показалось тактической ошибкой. Если бы они выбрали более умеренную методологию активации с упором на безопасность, у крупноблочников была бы возможность разделить лагерь малых блоков, а в перспективе и выйти победителями в этом конфликте.

В целом сторонники малых блоков выступили против 75-процентного порога по нескольким причинам. Флаг в заголовке блока считался сигнальным механизмом безопасности, указывающим, что все готовы к обновлению. По их мнению, обновление само по себе не должно вызывать споров или голосований. В апреле 2012 года софтфорк P2SH был активирован с порогом 55%. Однако после этого обновления 45% майнеров, которые не обновились, создавали недействительные блоки ещё несколько месяцев после активации. Это было сочтено проблемой, и поэтому на будущее был выбран новый 95-процентный порог, который используется до сих пор. Для сторонников крупных блоков флаг майнера был процессом голосования или принятия решения. При таком сценарии 75 процентов представлялись подавляющим большинством, а 95 процентов - нереальной целью. Вдобавок к этому крупноблочники считали, что 75% хешрейта с лёгкостью обеспечит построение наиболее длинной цепочки. По их мнению, 51% вполне достаточно для управления сетью, а 75% это даже избыточно крупный запас.

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

На этом этапе конфликта игроки из лагеря крупных блоков не осознавали, что выбранная ими методология активации значительно снижает их собственные шансы. Это было почти то же самое, что пойти в бой, привязав себе руку за спиной. Напомню, что крупноблочники пытались увеличить лимит размера блока: действующее правило подразумевало, что блоки должны были быть 1 Мб или меньше, а они хотели, чтобы блоки были 2 Мб или меньше. Таким образом, правило малых блоков является подмножеством правил больших блоков, и это создает асимметрию. Если произойдёт хардфорк и сеть разделится, узлы крупноблочников будут рассматривать цепь с малыми блоками как валидную, в то время как узлы мелкоблочников будут считать цепь с большими блоками невалидной. В случае конфликтного разделения цепей эта асимметрия даст преимущество сторонникам малых блоков. Это означает, что если цепь мелкоблочников когда-либо перехватит лидерство в Proof-of-Work, цепь с большими блоками попросту исчезнет в результате обычного удаления отвергнутых блоков (т.н. wipeout). Это может показаться незначительной угрозой, особенно если цепь с крупными блоками поддерживает подавляющее большинство майнеров, но нужно рассматривать ситуацию с точки зрения разделения. Если в результате простой случайности после создания первого блока размером более 1 Мб далее в лидерах окажется цепь с малыми блоками, это сотрёт цепь с большим блоком. Для стороны, поддерживающей большие блоки, это может иметь разрушительный эффект, так как майнеры будут опасаться когда-либо снова произвести больший блок.

Если рассматривать всё с точки зрения финансовых рынков, асимметрия ситуации потенциально становится ещё более значительной. Финансовые спекулянты получают возможность покупать криптовалюту, поддерживаемую цепью малых блоков и продавать токены крупноблочников. В результате крупноблочная монета будет терять в цене, а мелкоблочная - расти, что, в свою очередь, будет стимулировать майнеров ради увеличения вознаграждения переключаться на майнинг мелкоблочной монеты. Это может в конечном итоге привести к полному уничтожению цепи с крупными блоками, что принесёт спекулянтам большую прибыль.

У этой проблемы было простое решение: методология активации могла требовать, чтобы первый блок в точке активации был больше 1 Мб; это привело бы к чистому разделению, при котором ни одна цепочка не была бы уязвима для уничтожения. Однако, когда я обсуждал это с поддерживающими крупные блоки, мне сказали, что это не проблема в силу подавляющего превосходства их в поддержке майнерами. Считая, что Биткоин определяется через лидерство по хешрейту, они не хотели подрывать эту веру внедрением дополнительных контрольных точек. Получалось, что идеология больших блоков заставляет их делать свою сеть более уязвимой. Один известный представитель лагеря малых блоков, обсуждая со мной этот вопрос, сказал, что лучше не мешать противнику совершать ошибку и не поднимать эту тему в обсуждениях. Некоторые мелкоблочники предпочитали держать этот потенциальный инструмент про запас в качестве аварийного механизма на случай, если цепь крупных блоков с указанной уязвимостью и впрямь будет запущена. По мере развития военных действий до крупноблочников дошла уязвимость их позиции, и они действительно приняли подход чистого разделения блокчейнов через контрольную точку. Однако на это им потребовалось время до лета 2017 года.

У Bitcoin Classic (наряду с Bitcoin XT) был ещё один недостаток, который в сочетании с упомянутой выше асимметрией только усугубил для них ситуацию: 75-процентное скользящее окно активации. Как упоминалось ранее, Биткоин использовал для активации софтфорков 95-процентный порог активации, но порог должен был соблюдаться в течение фиксированного двухнедельного срока. Напротив, хардфорк Bitcoin Classic имел скользящее 75-процентное окно; это означало, что если в 750 блоках есть отметка о поддержке Classic в любой последовательный период из 1000 блоков, форк активируется. Предположим, что майнеры обновляются постепенно, что, безусловно, имело место в случае предыдущих обновлений. Поскольку льготный период составляет всего четыре недели, это, по сути, означает, что на тот момент, когда был произведен первый большой блок, примерно 25 процентов майнеров по-прежнему будут добывать только мелкие блоки. Если бы использовались фиксированные окна голосования, даже с 75-процентным порогом, это, по крайней мере, позволило бы получить более чем 75-процентную поддержку. При плавающей же окне ситуация может быть хуже. Если делать статистический анализ сигналов майнеров, предполагая медленное внедрение, то Classic, вероятно, преодолел бы 75-процентный порог по флагам поддержки ещё до того, как 75 процентов майнеров обновятся. Наиболее вероятным сценарием предполагается распределение 29% против 71% [11].

Таким образом, скользящее окно почти гарантированно приводило к хаотическому расколу. Крупноблочники настаивали на том, чтобы идти в бой со связанными за спиной руками и с завязанными глазами. Вне зависимости от исходного соотношения сторон, вероятным исходом была победа мелкоблочников.

Это скользящее окно казалось совершенно ненужным, и некоторые разработчики биткоинов неоднократно объясняли это Гэвину. Однако Гэвина это не беспокоило, поскольку, по его мнению, поддержка крупных блоков была подавляющей. Следовательно, это не было важной проблемой. Возможно, со стороны Гэвина было бы благоразумнее прислушаться к этой обратной связи, поскольку при очень небольших дополнительных усилиях он мог бы увеличить шансы сделать обновление как можно более плавным и потенциально привлечь на свою сторону больше людей. Действительно, Гэвин всегда мог ошибаться в своем предположении об уровне поддержки Bitcoin Classic. Лучше перестраховаться, чем сожалеть, - думал я. Такой необдуманный отказ не был похож на старого доброго Гэвина, который всегда казался мне более осторожным и более открытым. Казалось, его общее разочарование ситуацией в какой-то степени затуманило его суждения, и он понемногу терял терпение. Возможно, эта потеря Гэвином терпения была полностью оправдана, и, возможно, все эти высказывания опасений из лагеря малых блоков были просто способом тянуть время. Мелкоблочники неплохо с этим справлялись. Не было так, что мелкоблочники говорили: «Просто исправьте эти две вещи, и мы поддержим Classic». Если бы Гэвин внёс требуемые исправления, те же люди просто перешли бы к обсуждению новых найденных ими проблем клиента Classic. Например, они попросили бы его изменить заголовок блока, чтобы лёгкие клиенты знали, что произошел хардфорк - это было ещё одной функцией безопасности, которую мелкоблочники часто требовали. Как и в большинстве эпизодов в ходе войны, правда, вероятно, находится где-то посередине, но тот факт, что сторонники крупных блоков рано или поздно решили некоторые из этих проблем, указывает, что в утверждении о том, что они сами наносили себе ущерб изначально выбранной системой активации, есть доля правды.

Несмотря на эти потенциально катастрофические недостатки в методологии активации Bitcoin Classic, популярность Classic росла. Почти все венчурные компании Сан-Франциско, поддерживаемые Кремниевой долиной, такие как Coinbase, поддержали Classic. Слабые стороны Bitcoin Classic были слишком теоретическими, слишком техническими, не получили широкого обсуждения и мало кем осознавались. В этот момент сторона крупноблочников набрала обороты и начала побеждать в войне. Все больше и больше майнинговых пулов, таких как Bitfury Group, начали заявлять о своем намерении поддерживать Bitcoin Classic [12]. Всё больше компаний экосистемы также заявляло о своей поддержке. Однако количество блоков, сигнализирующих о поддержке Bitcoin Classic, было довольно низким, и, похоже, мало кто из пользователей держал узлы с клиентом Classic.

В феврале 2016 года было проведено мероприятие под названием «Круглый стол Сатоши». Это было второе из серии ежегодных мероприятий, продолжавшихся до 2020 года и дававших лидерам в индустрии блокчейна возможность собираться и обсуждать различные вопросы. В повестке дня на этот раз доминировал вопрос о размере блока. Я не присутствовал на этом мероприятии, поэтому не могу предоставить информацию из первых рук. Однако Брайан Армстронг был там вместе со своим тогдашним коллегой, Чарли Ли, основателем Litecoin и братом Бобби Ли. После конференции Брайан написал сообщение в блоге, в котором критиковал нескольких разработчиков Bitcoin Core и заявлял о своей поддержке Bitcoin Classic. Насколько я помню, изначально пост был более резким по отношению к Bitcoin Core, однако он был быстро исправлен на более умеренный.

По моему мнению, возможно, прямо сейчас самый большой риск для биткоина, по иронии судьбы, заключается в том, что больше всего помогало ему в прошлом: разработчиках Bitcoin Core.

Команда Core состоит из людей с очень высоким IQ, но после того, как я провёл с ними некоторое время в последние выходные, появилось кое-что, очень беспокоящее меня в их команде. Некоторые из них демонстрируют очень плохие коммуникативные навыки или недостаточную зрелость - это подрывает способность Биткоина привлекать новых разработчиков для продвижения протокола. Они предпочитают «идеальные» решения «достаточно хорошим». И если идеального решения не существует, они, похоже, не возражают против бездействия, даже если это подвергает Биткоин риску.

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

Если вы хотите обеспечить успех Биткоина, я бы посоветовал вам в ближайшее время перейти на Bitcoin Classic.

Я также привёл пример веб-браузеров. Команды Chrome и Safari - жёсткие конкуренты, но они также посещают одни и те же конференции и сотрудничают с IETF в области стандартов. На конференциях также присутствуют многие другие конкурирующие компании. Но они не проявляют вражды и не воюют друг с другом. Мы все работаем в одной отрасли и во многом остаёмся друзьями. Такую же картину хотелось бы видеть и для команд, работающих над протоколом Биткоина. Предоставляя возможность выбора на рынке, вы добьетесь большего, а не меньшего прогресса [13]

Вышеприведённое кратко излагает, пожалуй, самые спорные части сообщения Брайана. Это явно отражало растущее недовольство некоторыми разработчиками Bitcoin Core и желание, чтобы Биткоин освободился от них.

Брайан привел пример конкурирующих команд разработчиков веб-браузеров, Chrome против Safari. Для сторонников малых блоков это со всей очевидностью означало, что Брайан не понимает ситуации. У веб-браузеров не было никакой глобальной системы консенсуса. Вся эта война, с точки зрения мелкоблочников, была совершенно не про конкурирующие команды; речь шла о конкурирующих правилах сетевого консенсуса и, следовательно, о конкурирующих криптовалютах, о потенциальных рыночных ценах и финансовых потоках между рынками двух монет, а также обо всех сложностях, которые могло повлечь за собой разделение блокчейна. Bitcoin Classic в действительности даже не был по-настоящему конкурирующим. Это был в основном тот же код, что и в клиенте Bitcoin Core, с некоторыми изменёнными параметрами. Настоящие конкурирующие команды действительно существовали, их код сильно отличался от кода команды Bitcoin Core. Эти другие биткоин-клиенты были написаны на других языках, как, например клиенты Libbitcoin или BTCD. Неспособность понять разницу между конкурирующими монетами и конкурирующими командами была ключевой ошибкой сторонников крупных блоков. С точки зрения мелкоблочников, крупноблочники хотели блоки большего размера, но не понимали, как работает Биткоин и как проводить хардфорк, поэтому они позволили своему разочарованию излиться на команду Bitcoin Core и её клиент, ставшие удобным козлом отпущения.

Несмотря на отсутствие выраженного сигнализирования о принятии Bitcoin Classic со стороны майнеров, в феврале 2016 года казалось, что майнеры будут по крайней мере готовиться к тому, чтобы просигналить, и активация хардфорка выглядела вполне реальной. В то же время и поддержка Classic со стороны Coinbase теперь выглядела убедительно. Учитывая некоторые особенности процесса активации и намерения мелкоблочников, серьёзность которых крупноблочники не сумели вовремя распознать, Биткоин, как мне казалось, двигался к серьезному кризису и расколу. На этом этапе войны сторона крупных блоков была в более сильной позиции, чем когда-либо, но в то же время и у их оппонентов всё еще оставались тузы в рукаве. Биткоин оказался на грани катастрофического краха.

Глава 8. Круглый стол в Гонконге

20 февраля 2016 года я гулял по холмам вокруг Гонконга с группой друзей. Ближе к вечеру я как раз поднялся на вершину Львиной скалы и любовался открыточным видом на Гонконг, с островом вдалеке. Ожидая, пока остальные участники группы присоединятся ко мне, я проверил свой телефон, просмотрел сабреддит/r/btc и наткнулся на сообщение о встрече в Гонконге между майнерами и разработчиками для обсуждения масштабирования Биткоина. [1] Судя по прилагаемым картинкам, встреча должна была состояться там же, где и вторая конференция по масштабированию - в Киберпорте. Стремясь не упустить возможность, я сразу же отправился вниз с горы, чтобы взять такси прямо до места проведения, даже не дождавшись, пока все из моей группы достигнут вершины. Меня не приглашали на мероприятие, но если уж там будут обсуждаться правила протокола и, возможно, приниматься решения, а Биткоин - открытая сеть, я полагал, что имею такое же право быть свидетелем событий, как и все остальные. Конечно же, меня нельзя исключить! Это было бы несправедливо! С таким уверенным настроем я направился на мероприятие.

Я приехал около четырёх вечера. Всё происходило в маленькой комнате, где присутствовало от 30 до 40 человек, все тусовались небольшими группами и тихо болтали. Разработчики из США болтали в одном углу, а Адам Бэк и майнеры переговарились между собой в другом конце комнаты. Среди присутствующих разработчиков были Кори Филдс из США (который раньше работал с Гэвином в Bitcoin Foundation), Джонсон Лау (разработчик из Гонконга, соавтор SegWit), Люк Даш-младший, Мэтт Коралло (разработчик из США и соучредитель Blockstream) и Питер Тодд. В ходе своей беседы они сказали мне, что приехали в Гонконг, чтобы посвятить майнеров в тонкости технологии Биткоина и провести дружеское обсуждение. Разработчики также хотели убедить их не запускать Bitcoin Classic. Однако некоторые из майнеров очень увлеклись хардфорком и пригрозили, что перейдут на Bitcoin Classic.

Было видно, что напряжение в комнате становилось очень высоким. Далее я перешёл в другой конец комнаты. Джихан Ву и Микри Чжан, два соучредителя Bitmain, сидели за столом рядом друг с другом в окружении нескольких других представителей индустрии майнинга, которые желали обсуждений. Джихан выглядел очень взволнованным, и окружающие хотели, чтобы он успокоился. Внезапно Джихан сказал что-то вроде: «Мы собираемся поддержать Classic; Core проведет хардфорк, или мы откажемся от Core!» Все вокруг Джихана выглядели встревоженными, а затем снова попытались его успокоить. Через несколько минут разговоры возобновились.

После громкого объявления Джихана о том, что майнеры сделают хардфорк до 2 Мб, препирательства начались вновь. «Если Bitcoin Core хочет быть частью Биткоина, ему необходимо провести хардфорк», - сказал он. Затем один из разработчиков ответил, что SegWit «уже имеет 2 Мб, а Bitcoin Core работает над SegWit». «Нет!» - заявил Джихан - «Нам нужен хардфорк до 2 Мб, а не SegWit». Чувство разочарования в комнате было очень сильным; всё это было высказано ещё до того, как я приехал, и участники повторялись. Беседы продолжались ещё несколько часов, по одному и тому же кругу. Взаимное недоверие было полнейшим.

Обе стороны, казалось, согласились с тем, что эта неопределенность вокруг Classic и хардфорка вредна для Биткоина. Постепенно оформлялась идея, что для Биткоина было бы хорошо, если бы все присутствующие пришли к согласию и объявили о едином плане. Я помню, как кто-то сказал, что это успокоит рынки и повысит цену. Если и было что-то, насчёт чего согласие было общим, так это желание более высокой цены на криптовалюту. Таким образом, возникла цель согласовать текст, который будет опубликован, с изложением дальнейших действий для Биткоина. Я не помню точно детали появления этой идеи.

Адам Бэк и ряд разработчиков во время переговоров общались с некоторыми из своих коллег по Blockstream в США по телефону и через мессенджеры. Те явно были в ярости на Адама за то, что он делал, отправляя гневные сообщения и отчаянно пытаясь убедить его остановиться. Я могу представить, какие сообщения они могли писать; они, вероятно, утверждали, что Биткоин должен оставаться аполитичными деньгами, а правила не должны определяться за кулисами в ходе закрытых политических переговоров. Следующим пунктом их разногласий был хардфорк: они были обеспокоены тем, что Адам и другие разработчики совершат хардфорк, в то время как они были убеждены, что SegWit - лучший способ продвижения вперед. Во всяком случае, они дали понять, что не станут одной из сторон этого соглашения. Тем не менее, поскольку предполагалось, что это единственный способ остановить Bitcoin Classic, обсуждения продолжились.

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

Также на встрече присутствовал Самсон Моу, тогда работавший на принадлежавшей Бобби Ли бирже BTCC. Я помню, что он был один из многих, кто стоял за этим текстом и был автором части черновиков. В то время Самсон был большим энтузиастом малых блоков, которому, казалось, нравилось высмеивать крупноблочников. Это сделало его одной из наиболее ненавидимых крупноблочниками фигур, наряду с Грегори Максвеллом, Адамом Бэком и Люком Дашем-младшим. В апреле 2017 года, примерно через год после этого события, Самсон должен был присоединиться к Blockstream в качестве директора по безопасности.

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

Когда текст был окончательно согласован, все собрались в круг в центре комнаты, протянув руки друг к другу, чтобы сделать фотографию, которая проиллюстрирует консенсус. Точнее, все кроме Адама Бэка и Мэтта Королло, которые продолжали перечитывать текст и размышлять над ним, пока делалась эта знаменитая фотография. Лица были исключены из фотографии; были видны только руки. Большинство майнеров, казалось, были рады, и улыбались в момент съёмки. В отличие от них, у многих разработчиков были опустошенные, грустные лица, и они отворачивались от камеры.

Основная часть согласованного текста выглядела следующим образом:

Мы продолжим работать со всем сообществом разработчиков протокола Биткоин, чтобы публично разработать безопасный хардфорк на основе улучшений в SegWit. Участники Bitcoin Core, присутствующие на круглом столе по Биткоину, представят реализацию этого хардфорка в качестве рекомендации для Bitcoin Core в течение трех месяцев после выпуска SegWit. Ожидается, что этот хардфорк будет включать в себя возможности, которые в настоящее время обсуждаются в технических сообществах, в том числе увеличение участка блока, не включающего подписи, до 2 Мб, при общем размере не более 4 Мб, и будет запущен только при условии широкой поддержки всего биткоин-сообщества. При наличии широкой поддержки сообщества, активация хардфорка, вероятно, произойдет примерно в июле 2017 года. В обозримом будущем мы будем использовать только системы консенсуса, совместимые с Bitcoin Core, в конечном итоге содержащие как SegWit, так и хардфорк.

В соглашении всем хоть что-нибудь, да обещалось. В нём говорилось, что хардфорк будет «принят только при условии широкой поддержки всего биткоин-сообщества». Это было ключевым моментом для сторонников малых блоков, поскольку такой подход мог использоваться ими для самооправдания. Они не подписывались на хардфорк сами; это было делом сообщества, о чём и были все предшествующие споры. Казалось, сторонники крупных блоков полностью проигнорировали эту часть соглашения. С их точки зрения, этого пункта можно было и не добавлять. Даже сегодня большинство крупноблочников игнорирует этот подход. Майнеры, подписавшие соглашение, обязались использовать только системы консенсуса, совместимые с Bitcoin Core, тем самым остановив внедрение Bitcoin Classic. Это было ключевым достижением для отстаивающих малые блоки. С их точки зрения (по крайней мере, с точки зрения некоторых) кризис удалось предотвратить. Что касается присутствовавших на встрече крупноблочников, для них главным было обязательство разработчиков написать код для хардфорка, который, по мнению майнеров, они затем смогут запустить и таким образом провести хардфорк.

В соглашении также сказано следующее.

Мы активируем SegWit к тому времени, когда такой хардфорк будет внедрён в Bitcoin Core. [2]

Джихан настаивал на включении этого пункта. В то время я не понимал этого, но многие сторонники крупных блоков интерпретировали это в том смысле, что они будут активировать SegWit только тогда, когда хардфорк будет внедрён в Bitcoin Core. Одно из основных опасений Джихана на встрече, и, вероятно, обоснованное, заключалась в том, что в Bitcoin Core не будут включать хардфорк, если этого не будет в соглашении. Поэтому Джихан настоял на этом пункте в качестве своей гарантии. Для него это означало, что SegWit не активируется до тех пор, пока хардфорк не будет выпущен в Bitcoin Core. Хотя в соглашении говорилось, что код SegWit будет выпущен за три месяца до кода хардфорка, для Джихана это не имело значения, потому что он все равно планировал ждать эти три месяца, прежде чем запускать код SegWit. Джихан намеревался использовать SegWit в качестве предмета торга для получения хардфорка. Если не будет кода хардфорка, он не собирался запускать SegWit.

Присутствовавшие сторонники малых блоков попросту не поняли этой логики. Они полагали, что майнеры в любом случае внедрят код SegWit, потому что это правильно. Использование SegWit в качестве предмета торга для получения хардфорка казалось им совершенно неуместным. Поэтому для них эта строка в соглашении не имела смысла. Они никогда не намеревались заставлять майнеров использовать SegWit; они просто предполагали, что майнеры всё равно захотят его использовать.

Соглашение никак не разрешило ситуацию, но лишь усилило недоверие. Каждая сторона интерпретировала его по-своему, а теперь могла ещё и предметно обвинять оппонентов в его нарушении. Это снова напомнило мне о геополитике и о том, как дипломаты проводят многие часы до глубокой ночи, пытаясь согласовать кусок текста, зная, что каждое из их правительств занимает непримиримую позицию. Пожалуй, самым известным примером подобного была резолюция 242 Совета Безопасности ООН, принятая в ноябре 1967 года.

Вывод вооруженных сил Израиля с территорий, оккупированных в ходе недавнего конфликта. [3]

Было неясно, означает ли это все территории, или некоторые территории. Это отсутствие ясности было, конечно, отчасти преднамеренным, поскольку обе стороны никогда не согласились бы с резолюцией, если бы предложение было более четким. Хотя для самих дипломатов эта резолюция в краткосрочной перспективе могла стать достижением, она явно не способствовала установлению прочного мира, поскольку обвинения сторон в нарушении этого соглашения продолжались десятилетиями. Такой подход был бы плохой моделью для Биткоина. Вспомнив эту аналогию, я понял, что мирное разрешение конфликта вокруг размера блока, при котором обе стороны были бы счастливы, оказывалось, к сожалению, маловероятным. Это было довольно сложно понять, учитывая, что Биткоину было всего шесть лет. Как я вообще мог сравнивать это разногласие с одним из самых трудноразрешимых политических и религиозных конфликтов на планете - всего через шесть лет после начала? Выглядело так, что Биткоин имеет много общих черт с религией, а в тех, конечно же, постоянно происходят форки учения и разделения паствы. Однако религии не являются финансовыми активами, и вы не можете менять их на рынке одну на другую. Это сделало динамику конфликта в Биткоине потенциально даже более интересной.

После того, как соглашение было подписано и опубликовано, следующим шагом для присутствующих на встрече была продажа его своим сторонам. Всем пришлось несладко. С точки зрения крупноблочников, майнеры проявили себя трусами. Остановка Bitcoin Classic и переход на Bitcoin Core были прямо противоположны тому, чего хотелось их лагерю. Они были убеждены, что это очередная попытка потянуть время со стороны мелкоблочников, и те не включат хардфорк в Bitcoin Core. Что касается лагеря малых блоков, то и они остались недовольны. Грегори Максвелл, технический директор и соучредитель Blockstream, где Адам был президентом, ясно выразил свои чувства, назвав группу на встрече в Гонконге «добродушными тупицами».

Просто пара добродушных тупиц несколько месяцев назад поехала в Китай, чтобы узнать и рассказать о проблемах, и умудрилась позволить запереть себя в комнате до 3-4 часов утра, пока они лично не согласились предложить хардфорк после Segwit. Теперь они изо всех сил пытаются выполнить задачу, которая кажется невозможной - соблюсти свою часть соглашения (хотя оно было заключено под принуждением и даже несмотря на то, что F2pool немедленно его нарушил), и при этом не отринуть свои личные убеждения и не потерять уважения технического сообщества. [4]

Достижение консенсуса по этому вопросу становилось всё труднее и труднее; чем дольше длился конфликт, тем упорнее и неподатливее становились люди. Постепенно всё меньше и меньше делалось из соображений пользы для Биткоина, и, к сожалению, всё больше для того, чтобы одолеть оппонентов и выиграть войну. По мере развития конфликта и продолжающихся споров каждая сторона всё больше и больше убеждалась в своей исходной правоте, и перспективы мирного урегулирования становились всё менее вероятными.

Большинство биткоинеров считает это соглашение и события в Гонконге позором и ошибкой. По моему мнению, которое, похоже, мало кто разделяет, соглашение действительно кое-что дало. Bitcoin Classic в то время набирал обороты: его поддерживали почти все крупные игроки отрасли, и майнеры, казалось, были очень близки к тому, чтобы поддержать его. Это было очень похоже на приближение к кризису. Гонконгское соглашение удержало нас у края пропасти.

Глава 9. Фейковый Сатоши

Понедельник 2 мая 2016 года стал одним из самых диких дней в стране биткоинов. Гэвин поразил нас настоящей бомбой. Он опубликовал пост, в котором заявил о своей убеждённости, вне всяких разумных сомнений, что Сатоши Накамото это австралиец по имени Крейг Стивен Райт. Гэвин утверждал, что видел в Лондоне криптографические доказательства этого.

Я верю, что Крейг Стивен Райт это тот человек, который изобрёл Биткоин.

Я летал в Лондон, чтобы встретиться с доктором Райтом пару недель назад, после того, как убедился в предварительной переписке по мэйлу, что с высокой долей вероятности это тот же человек, с которым я общался в 2010 и начале 2011 года. Потратив время на общение с ним, я убежден вне разумных сомнений: Крейг Райт - это Сатоши.

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

Во время нашей встречи я увидел блестящего, убеждённого, целеустремленного, щедрого - и стремящегося к конфиденциальности - человека, который соответствует Сатоши, с которым я работал шесть лет назад. И он раскрыл множество тайн, в том числе почему он исчез, когда он это сделал, и чем он был занят с 2011 года. Но я намерен уважать конфиденциальность доктора Райта и позволить ему самому решить, какой частью этой истории он поделится с миром.

Мы любим создавать героев - но также, кажется, обожаем их ненавидеть, если они не соответствуют недостижимому идеалу. Было бы лучше, если бы Сатоши Накамото был кодовым именем для проекта АНБ или искусственного интеллекта, посланного из будущего для развития наших примитивных представлений о деньгах. Он не таков, он несовершенное человеческое существо, как и все мы. Я надеюсь, что ему удастся спокойно перенести бурю, которую вызовет это объявление, и продолжать делать то, что он любит - учиться, исследовать и внедрять инновации.

Я очень счастлив возможности заявить, что пожал ему руку и поблагодарил его за то, что он подарил миру Биткоин.

Похоже, сначала многие пришли к выводу, что Гэвина, должно быть, взломали, поскольку его заявление было совершенно невероятным, и он никогда бы не сказал ничего подобного. Из-за этой проблемы Гэвина лишили доступа к репозиторию Bitcoin Core. Он по-прежнему мог предлагать правки в код, но у него больше не было полномочий добавлять их в основную ветку репозитория.

Однако несколько часов спустя из Нью-Йорка появилось видео Гэвина, на котором он повторил своё заявление. Хотя его утверждения казались диковинными, я не мог поверить, что Гэвин ошибся в чём-то настолько важном. Однако, конечно, я не собирался верить Гэвину на слово. Я ждал, когда, наконец, у меня будет возможность посмотреть сообщение от Крейга, подписанное одним из ключей Сатоши. Я предполагал, что это случится весьма скоро, и сообществу Биткоина, похоже, придется смириться с тем фактом, что Сатоши вернулся. Мое внимание сразу обратилось к войне за размер блока. Возможно, Гэвин сделал это из-за своего разочарования от непринятия Bitcoin Classic? Я подумал, что причиной этого, должно быть, послужила война за размер блока. Я начал размышлять дальше: возможно, Гэвин контролировал этот ключ в течение многих лет и теперь выбрал Крейга в качестве подставного лица? Тогда Сатоши/Крейг могли бы отстаивать Bitcoin Classic. Действительно ли Гэвин никогда бы не совершил подобного злодеяния?

Несколько часов спустя, вечером по гонконгскому времени, Крейг Райт опубликовал пост. К моему удивлению, пост был наполнен множеством не относящихся к делу фраз и скриншотов. Как и многие биткоинеры, я лихорадочно просматривал его, прокручивая вверх и вниз в поисках сообщения и подписи. Это ведь так легко сделать, и где же оно? Мой софт для проверки подписи был открыт и готов к работе. Примерно через пять минут непрерывной прокрутки страницы вверх и вниз до меня дошло. Этот пост нужен только для того, чтобы сбить с толку. Не было ни сообщения, ни подписи от Сатоши, всё выглядело, как банальный розыгрыш. Гэвина могли обмануть. Пост в блоге был написан так, чтобы те, кто не был достаточно подкован в криптографии, решили, что и впрямь увидели какое-то доказательство.

Да, в посте в том числе была и подпись от Сатоши. Однако, как отметил пользователь Reddit /r/JoukeH, она была просто взята из одной из транзакций, которые Сатоши подписал в блокчейне. Не было подписанного сообщения, утверждающего, что Крейг это Сатоши. Похоже, всё, что Крейг сделал - это скопипастил подпись из общедоступной цепочки блоков и добавил её в бессвязный пост в блоге, полный нерелевантного контента.

Объявление Гэвина совпало с тремя новостями - на BBC, The Economist и Wired, написанными журналистами, которые утверждали, что видели те же исходные доказательства в Лондоне. Плохой уровень журналистики о Биткоине меня не удивлял - он всегда был таким, хотя, надо сказать, Wired по крайней мере проявил в своей статье высокий уровень скептицизма. Пару лет назад, в марте 2014 года, Newsweek утверждал, что обнаружил Сатоши. Та история была столь же глупой; журналист, похоже, просто просмотрел телефонную книгу, обнаружил кого-то по имени Сатоши, а затем заявил, что это тот самый человек, не приведя никаких дополнительных доказательств.

6 мая 2016 года Владимир ван дер Лаан объяснил принятое решение об отъёме у Гэвина полномочий по одобрению правок в коде, и почему его доступ не был восстановлен.

Поэтому, когда возникает вопрос, должны ли мы снова сделать Гэвина ответственным за поддержку, мой ответ и ответы многих других - решительное «нет». Во-первых, в этом просто нет смысла, поскольку он больше не занимался поддержкой Bitcoin Core, и, помимо этого, многие считают, что наша продуктивность лишь вырастет, когда наши пути разойдутся.

Через несколько дней после поста Крейга, стоя на нью-йоркской сцене с Пиндаром Вонгом и основателем Ethereum Виталиком Бутериным, Гэвин повторил свои заявления о том, что Крейг это Сатоши. Это было весьма странно, учитывая, что Крейг представил в своем блоге недостоверные подтверждения. Гэвин никогда явно не отказывался от своего исходного заявления, хотя позже он признал, что, возможно, он мог быть «обманут» в Лондоне. Непонятно, зачем Гэвин вообще прилетел в Лондон, коль скоро доказательство могло быть легко представлено по мэйлу. Гэвин утверждал, что это нужно было сделать лично, потому что Крейг хотел сохранить возможность отрицания наличия у него подписи на случай, если приведённое им доказательство опубликует кто-нибудь другой. Эту несложную задачку можно было легко решить с помощью шифрования: Гэвин мог зашифровать секретное сообщение, используя публичный ключ Сатоши, а Крейг мог расшифровать его (если бы у него был приватный ключ). Это могло доказать Гэвину, что у Крэйга есть ключ, но Крейг мог продолжать публично это отрицать, утверждая, что Гэвин подделал его сообщение.

Весь этот скандал нанес серьезный удар по репутации Гэвина и стал огромной победой для сторонников малых блоков. Гэвин сам нанес выступающим за крупные блоки серьёзный ущерб, и ему некого было в этом винить, кроме самого себя. Крейг тоже был крупноблочником, и, возможно, это затуманило разум Гэвина. Мелкоблочники не могли поверить в свою удачу. В сообществе выступающих за малые блоки ходили шутки, что, возможно, Крейг это и впрямь Сатоши, что он поддерживает малые блоки, и цинично выполнил этот трюк, чтобы повредить лагерю крупных блоков. Лично мне было немного жаль Гэвина. На него в тот момент оказывалось огромное давление, а ошибки совершают все.

Что касается выступающих за малые блоки, среди них было почти полное согласие с тем, что Крейг совершил множество мошеннических действий, и почти все согласились насчёт того, что доказательств соответствия между Крейгом и Сатоши не представлено. Однако, что примечательно, крупноблочники поделились примерно пополам. Известный сторонник крупных блоков Роджер Вер, например, заявлял, что, по его мнению, Крейг, скорее всего, и есть Сатоши.

Думаю, есть достаточно свидетельств, позволяющих полагать, что это более вероятно, чем нет.

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

Следующую пару лет Крейга активно привечали в сообществе сторонников больших блоков, он выступал на их конференциях и посещал их общественные мероприятия. Многим мелкоблочникам Крейг казался чрезвычайно агрессивным человеком, было похоже, что он плохо разбирается в протоколе Биткоина, так что для многих он выглядел и звучал как классический аферист. Крейг был крупноблочником наиболее экстремального толка, например, называл SegWit «дерьмом» или заявлял, что по его задумке такой ерунды, как не майнящие узлы, вообще нет, есть только майнеры. Это радовало отдельных крупноблочников, в то время как другие видели наносимый им ущерб своему делу. Однако, похоже, они мало что могли с этим поделать, так как Крейга поддерживали многие лидеры лагеря крупных блоков.

Выступающие за малые блоки могли указать также на множество других доказательств мошенничества и обмана, совершенных г-ном Райтом. Например, г-н Райт отредактировал записи в своём блоге, датированные 2008 годом, семь лет спустя в 2015 году, чтобы выглядело так, будто он в то время писал статью о криптовалюте, хотя в копии блога за 2014 год этого комментария о криптовалюте нет. Ассоциируя себя с ним, сторонники крупных блоков нанесли огромный ущерб своему делу. Из-за этого многие нерешительные центристы отвернулись от них, решив оставаться нейтральными или присоединиться к стороне малых блоков. Привлечение и убеждение этих людей - в этом и заключалась вся суть войны за блоки. И только после того, как война закончилась, в ноябре 2018 года, остатки крупноблочников наконец расстались с Крейгом; ну, по крайней мере, большинство из них.

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

Глава 10. DAO

Летом 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 транзакций в секунду, не имели отношения к этой цели.

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

Поскольку 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 и произойдет хардфорк.[6]

Поначалу хардфорк прошел успешно. Цепь блоков с обновлёнными правилами продолжала наращиваться, в то время как цепь с исходными правилами не менялась. Некоторые из крупноблочников уже начали объявлять о победе и утверждать, что это урок для Биткоина: спорный хардфорк не вызывает раскола, - заявили они. Примерно через час после форка цепь с исходными правилами начала наращиваться. Затем, когда сложность уменьшилась (гораздо быстрее, чем в Биткоине), исходная цепь начала увеличиваться более быстрыми темпами. В то время как поначалу цепь с хардфорком, казалось, имела около 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 постепенно уходили в прошлое.

Глава 11. Масштабирование III - Милан

Ажиотаж вокруг Ethereum немного успокоил Биткоин. На радость сторонникам малых блоков, хардфорк с изменением лимита размера блока ушёл с повестки дня. Третья конференция по масштабированию проходила в Милане с 8 по 9 октября 2016 года. Мелкоблочники стремились оставить дискуссию о размерах блоков позади и двигаться дальше; они хотели положить конец непродуктивному изобретению велосипедов и идти вперед. Поэтому в центре внимания конференции были другие вопросы масштабирования, такие как Lightning и подписи Шнорра. Не было ни презентаций о предложениях по лимиту размера блока, ни лихорадочной беготни по месту проведения конференции в поисках ключевых лиц, принимающих решения, или ключевых встреч, на которых эти решения принимаются. На этот раз в программе доминировала сторона малых блоков, и о размере блока почти не было споров. Серия конференций превратилась из попытки разрешить кризис с размером блоков в техническую конференцию по Биткоину.

Однако на конференции присутствовал и небольшой контингент крупноблочников. Среди них были Роджер Вер и группа людей, поддерживающих альтернативное предложение по хардфорку под названием Bitcoin Unlimited. После провала Bitcoin Classic эта новая реализация начала завоёвывать симпатии крупноблочников в качестве основного предпочтительного клиента. В следующих главах это будет обсуждаться более подробно. Многие из крупноблочников носили свежеизготовленные на заказ футболки с надписью «Hard Fork Cafe» на груди. Это было частью их кампании по хардфорку. Я поговорил с несколькими сторонниками крупных блоков, которые были разочарованы тем, что им не разрешили выступить на мероприятии. Они говорили о том, насколько конференция стала однобокой.

Роджер Вер вместе с другими своими союзниками по лагерю Джерри Чаном и Джейком Смитом организовали в субботний вечер конференции альтернативную культурную программу. Мероприятие называлось «Вечеринка свободы слова», где предусматривались бесплатная еда и напитки, а также бесплатные футболки Hard Fork Cafe. Оно также включало выступления по темам, которые были запрещены на основной конференции. Насколько я помню, все китайские майнеры, приехавшие на конференцию в Милане, присутствовали именно на вечеринке свободы слова, а не на официальной. Возможно, это выглядит пустяками, и сосредоточиваться на вечеринках нет смысла. Однако я думаю, что это иллюстрирует крайнее чувство разочарования, испытываемое крупноблочниками. Они чувствовали, что их игнорируют и заставляют молчать в важном для них сообществе о важном для них вопросе. Они потеряли право голоса и ощущение причастности к Биткоину. Эта вечеринка была похожа на крик с требованием внимания; сторонники крупных блоков хотели оставаться в актуальной повестке. В сообществе наметился раскол, и было ясно, на какой стороне в этом расколе стояли некоторые из китайских майнеров, по крайней мере, те, которые были связаны с Джиханом Ву.

На следующий день после конференции, в понедельник, в Милане прошла небольшая встреча биткоин-разработчиков. В тот вечер группа получила сообщение от Джихана, что он больше не намеревается выражать свою поддержку SegWit, которую обещал в июле. Затем постепенно начали распространяться домыслы о контексте этого сообщения. Говорилось, что Джихан был разочарован отсутствием обсуждения хардфорка на конференции и возмущён исключением этого вопроса из повестки дня, что совсем не соответствовало ожиданиям Джихана. Также рассказывалось, будто Джихан был обижен тем, что разработчики не прислали машину, чтобы привезти его из аэропорта перед встречей в США в июле, и что он счёл это неуважением. Я не уверен, насколько правдивы были эти слухи, поскольку я слышал их из вторых и третьих рук от группы сторонников малых блоков. Я уверен, что информация была несколько искажена не в пользу Джихана, но, вероятно, в ней всё же была доля правды.

Лишь несколько месяцев спустя я узнал кое-какие детали о событиях конца лета 2016 года, которые могут лучше объяснить это решение майнеров. Тем летом Джейк Смит совершил поездку по некоторым из крупнейших майнинг-ферм Китая, и в том числе встретился с Джиханом Ву. На этих встречах он якобы убедил Джихана и некоторых майнеров не поддерживать SegWit. На тот момент Джейк был связан с компанией Роджера Вера, Bitcoin.com, и являлся убежденным сторонником крупных блоков. До этого он работал в Bitmain и поэтому имел хорошие связи с китайскими майнерами. Он был хорошо известен в китайском биткоин-сообществе, поскольку проживал в Пекине. Он также свободно говорил по-китайски. По информации, полученной от майнера, симпатизирующего стороне малых блоков, Джейк рассказывал им, что Bitcoin Core не следует доверять, и что SegWit опасен. Конечно, следует отнестись к этим сведениям с долей скептицизма, учитывая источник информации. Это событие - ещё один пример попыток лоббизма китайских майнеров сторонами конфликта: сперва Гэвин и Майк летом 2015 года, затем конференция по масштабированию в декабре 2015 года, Гонконгское соглашения в феврале 2016 года, Калифорниийская встреча в июле 2016 года, а теперь вот тур Джейка в августе 2016 года.

После Милана я вернулся в Гонконг и поговорил с местными майнерами. Было ясно, что к этому моменту их мнение изменилось. До этого они были разочарованы нечёткими и противоречивыми сообщениями разработчиков, и просто хотели лёгкого разрешения конфликта. Однако теперь так называемые китайские майнеры сами стали участниками этой войны. Они начали оценивать и осмыслять конфликт, и потому становились уже на свою собственную сторону. Самым ярким примером этого был Джихан Ву, который теперь зарекомендовал себя как главный игрок в лагере больших блоков, в то время как другие участники майнинговой отрасли, вроде оператора F2pool Ван Чуна, похоже, заняли иную позицию. Влияние Джихана Ву и Bitmain на отрасль было весьма значительным. У Bitmain были майнинговые фермы, майнинговые пулы и 75% рынка производства оборудования для майнинга. Поэтому любые операторы майнинговых ферм, которые хотели своевременно покупать новые майнеры, неизбежно оказывались на стороне Джихана. Это означало поддержку стороны Джихана в войне за блоки и, возможно, использование майнинговых пулов Bitmain и сигнализирование о поддержке Bitcoin Unlimited. Также среди мелкоблочников ходили слухи, что Bitmain скупает излишне большие количества некоторых компонентов, используемых в майнинговом оборудовании, таких как конденсаторы, и просит поставщиков об эксклюзивных контрактах. Для защиты своего господства на рынке Bitmain также использовала патентное законодательство, вплоть до предъявления иска бывшему сотруднику Ян Цзосиню за создание конкурирующей фирмы и якобы нарушение одного из патентов Bitmain. Таким образом, Bitmain оказалась в чрезвычайно сильной позиции на рынке, которую практически невозможно было поколебать. Независимо от того, считает ли кто-то эти потенциально антиконкурентные методы ведения бизнеса неэтичными или полностью законными, они действительно оказывали влияние на ход войны за блоки, гарантируя, что майнеры в основном оставались в лагере крупных блоков. Они также повлияли на консолидацию растущего числа врагов Bitmain и усиление их враждебности.

1 ноября 2016 года, через несколько недель после конференции и после нескольких задержек, наконец-то был выпущен Bitcoin Core 0.13.1. В эту версию были включены параметры активации для софтфорка SegWit. Теперь майнеры могли обновиться и сигнализировать о своей готовности к нему. Однако, учитывая новости от Джихана, перспективы были весьма неопределенными. После более чем года боев, распространившихся на множество самых разных театров военных действий и вовлёкших многих новых персонажей, по мере приближения к концу 2016 года война за блоки всё ещё продолжалась.

Глава 12. Bitcoin Unlimited

Поскольку Bitcoin Classic не смог набрать поддержку, в конце лета 2016 года сторонники крупных блоков сошлись на новом клиенте, увеличивающем лимит размера блока при помощи хардфорка, под названием Bitcoin Unlimited. Можно было бы подумать, что этот клиент просто снимает ограничение на размер блока, и теперь в блокчейне смогут быть блоки любого размера. Если бы это было так, Bitcoin Unlimited стал бы гораздо более успешным предложением. Однако если взглянуть на Bitcoin Unlimited более подробно, то окажется, что он не только очень сложен, но и имеет серьезные технические недостатки. Принятие такого сложного и уязвимого предложения было ещё одной грандиозной стратегической ошибкой крупноблочников. Среди сторонников малых блоков такое направление развития вызывало восторг, но об этом, разумеется, требовалось помалкивать - пусть крупноблочники будут прочно ассоциироваться с поддержкой слабого клиента. Bitcoin Unlimited был не только клиентом, но и официальной организацией с членством, уставом, президентом и голосованием участников.

Ключевая идея Bitcoin Unlimited заключалась в том, что майнеры и пользователи добавляли своим клиентам параметры, связанные с лимитом размера блока. Это а) максимальный размер генерации (MG) (только для майнеров): локальный лимит размера блока, который не будет превышен майнером, производящим блок; б) чрезмерный размер блока (EB): это размер блока, до которого его будет принимать узел и майнер; и в) глубина принятия (AD): это количество подтверждений, которое требуется блоку, прежде чем узел примет его, даже если размер блока больше EB. Критики утверждали, что если каждый устанавливает свои собственные правила, это означает, что сеть не будет сходиться к одной версии истории. Это предложение отличается от основной консенсусной особенности Биткойна: майнеры достраивают валидную цепь, которая накопила больше "работы" в Proof-of-Work. Новый клиент не только не делает этого, но и вводит концепцию глубины принятия AD, в которой майнеры могут сначала попытаться построить более короткую валидную цепь, однако, если они проиграют гонку, они могут затем перепрыгнуть на несколько блоков вперёд к более длинной цепи, которая теперь внезапно объявляется валидной (больше маленьких блоков позволят получить больше субсидий на блок, прим. ред.). В Bitcoin Unlimited не было такой методологии активации, как у XT или Classic; просто предполагалось, что он каким-то образом станет новым Биткоином после обновления майнеров. Поэтому многие сочли это предложение ещё более радикальным, чем предшествующие.

Стремясь узнать больше о Bitcoin Unlimited, в начале декабря 2016 года я посетил рекламное мероприятие Bitcoin Unlimited в Шэньчжэне (Китай). На мероприятии и во время промо-тура выступили: Роджер Вер, активный промоутер Bitcoin Unlimited; Джейк Смит; несколько сотрудников Bitcoin.com; члены организации Bitcoin Unlimited; некоторые из разработчиков Bitcoin Unlimited; и Хайпо Ян, генеральный директор майнинг-пула ViaBTC.

Первым выступил Роджер Вер, с синхронным переводом на китайский язык. Он говорил очень ясно и убедительно, отмечая следующие моменты:

Он был первым, кто инвестировал в биткойн-стартапы;

С 2009 года, когда был запущен Биткоин, до 2015 года блоки не были полными, а транзакции были дешевыми. Bitcoin Core целенаправленно использует стратегию полных блоков, что является серьезным изменением экономических свойств протокола;

До этого момента успех Биткоина обеспечивался низкими комиссиями за транзакции;

План развития всегда состоял в том, чтобы увеличить лимит размера блока, и это явно было заявлено всеми, но теперь появились новые люди и препятствуют этому;

На Reddit широко распространена цензура, и предложения по увеличению размера блока не обсуждаются. Таким образом, Bitcoin Core не хочет, чтобы люди принимали собственные решения;

Команда Bitcoin Core понимает компьютерный код, но не понимает экономику;

Команда Bitcoin Core хочет, чтобы Биткоин был сетью межбанковских расчетов с высокими комиссиями; Сатоши хотел, чтобы Биткоин стал электронными пиринговыми наличными, именно так и был озаглавлен Whitepaper Биткоина;

Есть альткоины, которые ждут своего часа, и если размер блока не увеличится, эти монеты заберут сетевой эффект Биткоина себе, раз уж Биткоин больше не сможет быть назван простым и удобным в использовании.

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

Роджер закончил свое выступление заявлением о том, что майнеры и пользователи должны перейти с Bitcoin Core на Bitcoin Unlimited. Однако он так и не упомянул никаких подробностей о новых механизмах, внедряемых в Bitcoin Unlimited. Несколько дней спустя в Гонконге прошло мероприятие Bitcoin Unlimited с аналогичной программой. Помнится, я размышлял о том, как же обидно, что Роджер сосредоточил всю свою энергию на этом внутреннем конфликте, вместо вовлечения в Биткоин новых пользователей и торговых площадок, как он делал это в прошлом.

Следующим выступающим в Шэньчжэне был Джерри Чан. Джерри говорил об идее стихийного консенсуса (emergent consensus, EC), которая заключается в том, что правила системы не являются фиксированными, а гибко реагируют на обстоятельства, а не навязываются разработчиками сверху вниз. EC это система, разработанная для решения проблемы, заключающейся в том, что если майнеры и узлы устанавливают свои собственные правила, они будут создавать несовместимые цепи блоков. Он пояснил, что в рамках новой модели майнеры смогут сами устанавливать лимит размера блока, и, благодаря системе EC, все блоки будут объединяться в единую цепь. Джерри привел различные примеры этого процесса в природе:

Вещи будут самоорганизовываться. Это обычное дело в природе. Молекулы воды организуются в снежинки, но не по воле Божьей, а потому что молекулы воды имеют форму, позволяющую им выстраиваться в шестиугольники и образовывать конструкции типа "снежинка". Птицы - разве кто-нибудь учит птицу, как следовать за вожаком стаи? Нет. Они могут буквально заснуть, пролетая сотни километров, и всё равно не разбиваются. Core заставляет вас поверить в то, что если вы позволите майнерам или пользователям решать все самостоятельно, случится полное дерьмо. Но при внедрении эмерджентного консенсуса лимит размера блока будет возникать сам, вполне естественным образом.

Конечно, утверждение Джерри о том, что текущие правила Биткоина были наложены сверху Bitcoin Core, было ложным представлением того, как видели систему сторонники малых блоков. В мире малых блоков правила определяются узлами, которые уже запущены пользователями. Эти правила очень жёсткие, и их изменение требует широкого согласия в сообществе. Похоже, что крупноблочникам никогда не удавалось аккуратно передать эту картину мира - то ли потому что они её не понимали, то ли потому что точное описание статус кво делало их предложения не такими уж убедительными.

Что касается мнения о том, что в природе многие системы сами приходят к равновесию или имеют структуру, не требуя планирования или согласования правил, было неясно, насколько это актуально для Биткоина. К этому моменту Биткоин уже был очень успешным; сеть работала достаточно надёжно в течение семи лет, преодолевая любые проблемы. Похоже, это вызвало в сообществе определённую степень самоуспокоенности, поскольку люди стали слишком оптимистичны в отношении надежности системы. Отвечая на вопрос о некоторых потенциальных слабостях Bitcoin Unlimited, его сторонники часто говорили, что Биткоин антихрупкий и справится с любыми вызовами. Аргумент о том, что Bitcoin Unlimited будет надёжным, потому что Биткоин настолько силён, что почти невозможно сделать что-то некорректное или вредное для Биткоина, казался мне невероятно слабым.

В дополнение к трём указанным параметрам в Bitcoin Unlimited также было нечто, именуемое «липкий шлюз». Если порог AD для узла превышен, он будет принимать блоки любого размера в течение 24 часов. В качестве обоснования указывалось предотвращение застревания AD-блоков за вершиной после увеличения размера блока, когда была создана последовательность из более крупных блоков. У этого решения было непреднамеренное, ироничное и извращённое последствие: дальнейшее увеличение лимита размера блока в течение 24 часов вынудит клиенты с более низким лимитом размера блока (EB) продолжать наиболее длинную цепь блоков, а клиенты с большим лимитом застрянут на более короткой цепи. Похоже, Bitcoin Unlimited был плохо сконструирован, и все возможные сценарии его работы не были продуманы. Это указывало на то, до какой степени отчаяния к тому моменту успели дойти в лагере крупных блоков.

У Bitcoin Unlimited было ещё несколько недостатков, в том числе так называемая «медианная EB-атака». Поскольку EB был, по сути, правилом консенсуса, и выбранные майнерами параметры EB были включены в их блоки, злоумышленники могли видеть распределение значений EB в сети. Враждебный майнер мог в результате выбрать среднее значение EB, чтобы, скажем, разделить цепь и хешрейт майнинга на две группы произвольного размера. Это выглядело критической уязвимостью. Отвечая на вопрос об этом, сторонники Bitcoin Unlimited обычно утверждали, что майнеры не глупы и не позволят этому случиться. Они также иногда утверждали, что для предотвращения этого майнеры и пользователи будут использовать одно и то же значение EB. Однако, если все майнеры и пользователи сходятся на одном и том же значении EB, желая предотвратить разделение цепи, это выглядит довольно похоже на модель безопасности, отстаиваемую сторонниками малых блоков, со всеобщим принятием единого набора правил. Чтобы увеличить лимит размера блока в Bitcoin Unlimited, нужно изменить настройки EB на большее значение, и тогда откроется вышеописанная уязвимость.

Bitcoin Unlimited также внес другие изменения в программное обеспечение, напрямую не связанные с ограничением размера блока. Разработчики Bitcoin Unlimited создали технологию для более быстрого распространения блоков, названную xThin, в отличие от аналогичной системы в Bitcoin Core, называемой компактными блоками. В разработке были и другие идеи, такие как параллельная проверка блоков и гибкие транзакции. Гибкие транзакции были новым форматом транзакций, похожим на SegWit, который, как сообщается, также исправлял уязвимость замены идентификатора транзакции. По плану предполагалось полностью запретить транзакции старого стиля (то есть ввести нулевое ограничение размера блока для транзакций старого стиля), а затем заставить всех пользователей принять новый формат транзакции. Ирония в том, что это была гораздо более агрессивная версия SegWit, против которой выступали разработчики Bitcoin Unlimited. SegWit по существу сохранил старый лимит в 1 МБ для старых транзакций и добавил больше места в блоках для новых транзакций.

Таким образом, было похоже, что многие из этих функций и предложений вовсе не были вызваны технической целесообразностью. Скорее можно было говорить о культурных различиях, о самолюбии и о желании быть вовлечёнными в разработку Биткоина. Большинство крупноблочников к этому моменту уже просто ненавидели и мелкоблочников, и разработчиков Bitcoin Core. Им не нравилось представление о том, что именно лагерь малых блоков контролирует Биткоин, им тоже хотелось быть его частью. Из-за этого желания большей активности Bitcoin Unlimited расширил сферу своей деятельности за пределы простого увеличения лимита размера блока и охватил множество областей. В конечном итоге это оказалось ошибкой и привело к краху Bitcoin Unlimited. После того, как война за размер блоков закончилась, некоторые в сообществе Bitcoin Unlimited признали эти ошибки.

Ранее, пока разработчики BU имели наибольшее влияние среди всех групп, выступающих за крупные блоки, некоторые из нас полагали, что BU следует сосредоточиться только на простой модификации кода Core путём увеличения лимита размера блока, вместо того, чтобы пытаться заставить всё сообщество принять сложный алгоритм размера блока («стихийный консенсус»). Мы также хотели, чтобы BU на время прекратил попытки реализовать свою версию гибких блоков. Важнейшей проблемой было увеличение размера блока и отход от версии Core с минимальными отвлекающими факторами. Настойчивое желание команды BU добавить кучу сложного кода вместо того, чтобы сосредоточиться на простоте, дало неприятные последствия, поскольку код BU имел несколько ошибок, приводивших к сбою в работе узлов. Это произвело у всего биткоин-сообщества впечатление, что разработчикам BU действительно нельзя доверять писать надежный код, и что им следует соизмерять свои амбиции со своими навыками программирования/тестирования.

Другой член сообщества прокомментировал:

Оглядываясь назад, мы видим, что внедрение EC было серьезной ошибкой.

Удивительно, но, несмотря на все эти потенциальные уязвимости, Bitcoin Unlimited пользовался поддержкой всего лагеря крупных блоков, от Брайана Армстронга из Coinbase до Гэвина, Джихана Ву и Роджера Вера. Никто из них особо не интересовался нюансами и появлением новых параметров. Им просто нужны были блоки побольше. Bitcoin Unlimited также получил поддержку со стороны майнинговых пулов, включая ViaBTC, GBMiners и BTC.TOP, также росло и число узлов, которые его поддерживали. Первым пулом, который поддержал его, был ViaBTC, майнинговый пул, который получил инвестиции от Bitmain и, по-видимому, в значительной степени находился под контролем Джихана Ву. Также считалось, что Bitmain контролирует и пул BTC.TOP. В начале 2017 года от 15 до 20 процентов хешрейта Биткоина указали на поддержку Bitcoin Unlimited. Bitmain также напрямую управлял пулами, такими как Antpool, который начал сигнализировать о поддержке Bitcoin Unlimited в марте 2017 года. Это увеличило поддержку Bitcoin Unlimited среди майнеров до диапазона от 45 до 55 процентов, уровня, на котором он оставался большую часть 2017 года.

Несколько биткоин-разработчиков из лагеря малых блоков обвинили некоторых майнеров в подделке голосов в поддержку Bitcoin Unlimited. Они заявили, что операторы пула изменили настройки пула для добавления в блоки данных, указывающих на Bitcoin Unlimited, несмотря на то, что для создания блоков все еще использовался Bitcoin Core. Они смогли определить это, посмотрев на транзакции в блоках, которые, по-видимому, были выбраны с помощью нового алгоритма в Bitcoin Core, который в Bitcoin Unlimited не был реализован. Эти очевидные «фальшивые голоса» иногда называли ложными флагами. Некоторые мелкоблочники, которые считали, что Bitcoin Unlimited плох сам по себе, рассматривали эти фальшивые флаги как ещё один пример злонамеренного поведения. Сигналы майнеров о том, какие правила консенсуса они применяют, должны быть механизмом, обеспечивающим плавное обновление правил протокола. Ложный сигнал можно считать подходом, который делает обновления более опасными. Фактически, ложная отметка в пользу Bitcoin Unlimited может рассматриваться как атака на Bitcoin Unlimited, так как это может привести к неудаче при активации. Крупноблочники, похоже, не распознали это и с энтузиазмом отреагировали на рост поддержки хэшрейта для Bitcoin Unlimited. Для них это было значительным импульсом. Флаги майнеров оставались важным политическим посланием, независимо от того, были ли голоса фальшивыми.

30 января 2017 года майнер, работающий под управлением Bitcoin Unlimited, произвел блок размером более 1 Мб. Возможно, это был первый произведенный блок с достаточным доказательством работы размером более 1 Мб. Вероятно, это была какая-то ошибка или случайность, так как за этим не было видно явной координации. Биткоин-узлы в сети отклонили блок как недействительный, что, по мнению сторонников малых блоков, как раз показывало, почему перед проведением хардфорка требуется согласие пользователей. Крупноблочники, такие как Роджер Вер, пытались замести этот инцидент под ковёр, утверждая, что застрявшие блоки (stale blocks) возникают постоянно, не признавая, что этот конкретный блок был не просто устаревшим, но и недействительным.

В марте 2017 года произошло событие, которое нанесло значительный ущерб репутации Bitcoin Unlimited. Количество доступных узлов Bitcoin Unlimited внезапно резко упало.

Согласно Nodecounter, всё шло своим чередом примерно в 18:00, когда было 776 активных узлов. Затем началось быстрое падение, и в 19:00 оставалось уже 696 узлов. Дно обозначилось в 23:00, когда осталось всего 182 узла. В 9 часов утра следующего дня всё вернулось к норме, в строю было 626 узлов. Думаю, если мы скажем, что BU отреагировал с невероятной быстротой или что 100% упавших узлов вернулись за это время в строй, это будет не очень корректным заявлением.

На самом деле падение было связано с критической DoS-уязвимостью, скрывающейся в коде xThin для Bitcoin Unlimited, не имевшем никакого отношения к лимиту размера блока. Уязвимостью воспользовались, что привело к сбою почти всех узлов Bitcoin Unlimited. Сторонники малых блоков активно оттаптывались на этом эпизоде и привлекали к нему внимание многих криптовалютных медиа. Падение узлов также расширило круг тех, кто принялся пристально следить за проектом. Раньше многие просто считали BU очередным клиентом с увеличенными блоками, но теперь они начали задавать более важные вопросы, например: что это за организация и почему там президент? Почему они меняют аспекты кода, не связанные с размером блока? Для чего нужен параметр AD? Есть ли другие критические ошибки?

Bitcoin Unlimited так и не смог полностью восстановиться после инцидента в марте 2017 года. Сама ошибка была не так уж и ужасна, однако в лагере малых блоков успешно воспользовались ей, чтобы привлечь внимание к другим огрехам в Bitcoin Unlimited. Сага о Bitcoin Unlimited была одним из худших периодов войны для крупноблочников, который они, вероятно, предпочли бы забыть. Они позволили себе руководствоваться самолюбием, гневом и разочарованием, чтобы поддержать плохо разработанный клиент - и тем изрядно порадовали своих противников. Ещё раз подчёркиваю: после того, как Bitcoin Unlimited был заброшен, почти ни один из крупноблочников не высказал раскаяния. Никто из них, похоже, не брал на себя ответственность и не задумывался, почему настаивать на клиенте с таким количеством потенциальных слабостей было опасно и потенциально разрушительно для Биткоина.

К марту 2017 года напряженность в сообществе ещё больше возросла. Теперь акцент сместился на идею о том, что крупноблочники перейдут на Bitcoin Unlimited, а затем также атакуют исходную цепь с малыми блоками, добывая пустые блоки и превращая в орфанные любые блоки, которые содержат транзакции. Такая стратегия должна была в результате убить цепь с малыми блоками. Джихан даже публично обсуждал идею атаки на Биткоин:

Возможно, атаковать его нет необходимости. Но атака - всегда один из вариантов.

Гэвин тоже сказал нечто подобное:

Не допустить, чтобы форк меньшинства по хэшрейту подтвердил хоть одну транзакцию - хорошая идея. Консенсус Накамото != Единодушие.

Ранний биткойнер Мени Розенфельд, который до этого момента в основном держался в стороне от войны за размер блоков, описал ситуацию следующим образом:

Гэвин Андресен, Питер Ризун и Джихан Ву в положительном ключе высказались в дискуссии о возможности того, что цепь хэшрейт-большинства атакует цепь меньшинства (посредством эгоистичного майнинга и DoS пустых блоков).

Это позор и противостоит всему, что представляет собой Биткоин. Биткоин - это добровольные деньги. Люди используют его, потому что хотят, а не потому что их принуждают.

По сути, они говорят, что если некоторые из нас хотят использовать валюту, описываемую текущим протоколом Bitcoin Core, то начать атаку, чтобы уговорить нас использовать их деньги - это нормально. Но нет, это не нормально - это постыдно, это моральное банкротство. Даже если им это удастся, они останутся с фиатными деньгами, а не с Биткоином.

Истинное генетическое разнообразие может быть достигнуто только при одновременном сосуществовании нескольких протоколов, конкурирующих друг с другом и эволюционирующих в самую сильную возможную версию Биткоина.

Это выходит за рамки конкретных дебатов о достоинствах BU и Core.

Тон крупноблочников самым явным образом изменился. Ранее они заявляли, что не будет никакого разделения и цепи малых блоков, а теперь активно обсуждали атаку на такую ​​цепь. В начале апреля у меня была беседа с одним из ключевых сотрудников Джихана в Гонконге. Он сообщил мне, что сторонники крупных блоков выделили бюджет в размере 100 миллионов долларов США для атаки на цепь малых блоков. План состоял в том, чтобы потратить эти деньги на энергию, добычу пустых блоков в цепи малых блоков и орфанизацию любых блоков с транзакциями. По его словам, это по сути «убьёт цепь». Я спросил, почему он хочет убить цепь малых блоков, и он объяснил, что мелкоблочники «застопорили Биткоин на годы, и они этого заслужили». Сама идея о том, чтобы потратить 100 миллионов долларов США только на то, чтобы отомстить своему противнику в войне, поистине иллюстрирует масштабы трясины, в которой мы оказались на том этапе конфликта. Я спросил, что произойдет после того, как будут потрачены 100 миллионов долларов США. Разве мелкоблочники не смогут возродить свою цепь? Похоже, у него не было на этот вопрос однозначного ответа. После долгой паузы он объявил, что они, возможно, попытаются собрать ещё денег и атаковать снова.

Пока шёл 2017 год, и война вступила в свой 18-й месяц, страдания с обеих сторон только усилилась. Джихан и большинство майнинговых пулов всё ещё не сигнализировали о поддержке SegWit, и цель в 95 процентов казалась почти недостижимой. Крупноблочники считали активацию SegWit поражением для своей стороны, поскольку блокирование SegWit было одним из важнейших рычагов контроля, которыми они располагали. Это был единственный крупный козырь, который остался у их лагеря, и они не хотели его терять. Это действительно вызвало разочарование у стороны малых блоков, однако, как мы помним, эта сторона была терпеливой, и смотрела на десятилетия вперед. Для крупноблочников ожидание чего-либо было гораздо более болезненным. Эта боль имеет большое значение для объяснения угроз атаки на цепь малых блоков.

Глава 13. Биржи

В то время пока бушевала война ландшафт индустрий в криптовалютной экосистеме значительно изменился. Наиболее значительным изменением стало появление и рост нескольких бизнесов по обмену криптовалюты, успех которых был обусловлен значительным спросом со стороны розничного рынка в Азиатско-Тихоокеанском регионе. Такие компании, как Poloinex, BitMEX и, что, пожалуй, наиболее важно, Bitfinex. Bitfinex была в то время, вероятно, самой важной компанией в плане ценообразования. В то время как базирующиеся в США компании, поддерживаемые Кремниевой долиной, такие как Coinbase, были стойкими сторонниками больших блоков, мнения этих новых игроков в основном не определились. Таким образом, для обеих сторон конфликта оставалась возможность поговорить с этими компаниями и пролоббировать свой подход. В целом справедливо сказать, что сторонники малых блоков справились здесь лучше, чем их оппоненты, хотя опыт Ethereum в 2016 году, вероятно, сделал для изменения настроений больше, чем что-либо ещё. Не имея особого опыта в войне, эти обменники были более прагматичными и, казалось, им были ближе аргументы сторонников малых блоков.

17 марта 2017 года (ещё одна важная дата в нашей саге) несколько крупных бирж, включая Bitfinex, Kraken и Bitstamp, нанесли серьезный удар по Bitcoin Unlimited. Они выпустили совместное объявление, в котором указывалось, что они не будут рассматривать Bitcoin Unlimited как Биткоин, даже если бы он имел большую часть хэш-мощности. Они также сказали, что «любая реализация, нарушающая консенсус» требует защиты от атаки повтора (replay attack).

Поскольку похоже, что мы можем увидеть хардфорк, инициированный проектом Bitcoin Unlimited, мы решили обозначить форк Bitcoin Unlimited как BTU (или XBU). Реализация Bitcoin Core будет продолжать торговаться как BTC (или XBT), и все биржи будут обрабатывать депозиты и снятия в BTC, даже если цепочка BTU имеет большую хэш-мощность. Некоторые биржи намерены разместить BTU, и все мы постараемся предпринять шаги для сохранения и обеспечения доступа клиентов к BTU. Однако ни один из нижеподписавшихся не может разместить BTU для торговли, если только мы не сможем независимо обрабатывать обе цепи без происшествий. Следовательно, мы настаиваем на том, чтобы сообщество Bitcoin Unlimited (или любая другая реализация, нарушающая консенсус) строило надежную защиту от атак повтора в обе стороны (форка и оригинального протокола, прим. ред.).

Этой позиции в конечном итоге последовали некоторые другие крупные трейдинг-платформы. Poloniex заявила, что:

Как минимум, любой новый форк должен включать встроенную защиту от атаки повтора.

В тот же день BitMEX последовал этому примеру, заняв аналогичную позицию:

Есть серьезные сомнения в том, что хардфорк Bitcoin Unlimited (BU) можно безопасно реализовать без дополнительных разработок. В случае форка мы поддерживаем план, предложенный Bitfinex, Bitstamp, BTCC и др. Ни одна биржа, включая BitMEX, не сможет поддерживать обе цепи по отдельности. По этим причинам BU не будет внесен в перечень торгуемых монет или использоваться в качестве валюты депозита / вывода средств до тех пор, пока не будет реализована защита от повтора, и BU не закроет риски реорганизации блокчейна на случай, если цепь Core станет длиннее.

Таким образом, теперь эти торговые платформы прояснили свои позиции. Они будут рассматривать Bitcoin Unlimited как альтернативную монету, а не как биткоин. К тому же они извлекли уроки из Ethereum Classic; Bitcoin Unlimited даже не будет поддерживаться их платформами, если к его коду не добавят защиту. При чтении этих заявлений казалось, что кто-то из сторонников малых блоков либо убедил их добавить нужные комментарии, либо даже помог в их составлении. Крупноблочники опробовали этот трюк с обращениями представителей отрасли ещё в 2015 году с Bitcoin XT, а теперь в эту игру принялись играть и за малые блоки.

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

Здесь стоит отметить, что экосистема торговли криптовалютой значительно изменилась с 2015 года. Теперь это было гораздо больше, чем просто спотовые биржи. Bitfinex, например, была не просто биржей; компания предлагала широкий спектр услуг, от торговли биткоинами с использованием заемных средств, фьючерсов на криптовалюту и деривативов до отдачи биткоинов в долг и долговых рынков. Если рассматривать финансовые последствия разделения сети или хардфорка, это значительно усложняло ситуацию. Например, если бы вы взяли монету в долг до разделения - нужно ли вам будет выплатить долг обеими монетами? Что, если бы вы открыли длинную позицию с плечом в биткоинах перед разделением - были бы у вас теперь длинные позиции с плечом для обеих монет, или только одной монеты, и как предполагается решать, какой именно монеты? Такая динамика совершенно справедливо заставила некоторые торговые платформы ещё больше обеспокоиться возможным расколом. Их бизнес-модель заключалась в том, чтобы работать круглосуточно и без выходных, поэтому они не могли просто отключиться и дождаться, пока всё устаканится. В лагере малых блоков, по-видимому, до некоторой степени понимали часть этих закономерностей, и могли апеллировать к ним, чтобы получить больше поддержки для своего дела.

18 марта 2017 года, через день после заявления бирж, Bitfinex приняла еще одно знаменательное решение, которое оказало длительное и существенное влияние на ход войны за размер блока. Bitfinex разместила на своей площадке фьючерсные контракты на Bitcoin Unlimited vs Bitcoin Core. Срок действия фьючерсных контрактов истекал в конце 2017 года. Платформа Bitfinex позволяла пользователям разделить свой биткоин на два токена, которые существовали на платформе Bitfinex: BCC (представляющий Bitcoin Core) и BTU (представляющий Bitcoin Unlimited). Эти два токена затем можно было свободно обменять на биткоины на платформе Bitfinex. Инвесторы, наконец, получили возможность выражать свое мнение, подтверждая его чем-то, поставленным на карту. В прошлом существовали веб-сайты для голосования за монеты, где люди делали комментарии о войне за блоки, отражающие одну из позиций, и держатели биткоинов могли подписывать эти сообщения приватным ключом, связанным с их биткоин-адресом. Эти веб-сайты можно было использовать для оценки мнения держателей биткоинов, но на кону ничего не стояло. Теперь, наконец, можно было рисковать реальными деньгами.

Это ознаменовало коренное изменение в войне: теперь вместо простого обмена гневными словами она монетизировалась. Некоторые в сообществе крупных блоков всегда чувствовали себя в ловушке. Они считали, что экономическое большинство на их стороне, и они победят, если им будет предоставлена финансовая свобода для выражения своих взглядов. «Пусть решает рынок!» - часто провозглашали они. Теперь, наконец, у нас в какой-то мере появился рынок. Большинство людей положительно отзывались об этом и в целом поддерживали Bitfinex. Был, правда, единственный недостаток: чтобы сделать ставку на исход в этой ситуации, приходилось брать на себя риск держания денег на депозите в Bitfinex в течение примерно девяти месяцев. К этому моменту послужной список Bitfinex был далек от совершенства, и компания в прошлом страдала от серьезных взломов. В 2017 году Bitfinex продолжила свою политику и разместила ещё четыре токена со ставками на исход разделения цепи - для всех остальных предложений по хардфоркам.

Что касается цены токена Bitcoin Unlimited, она никогда не превышала 20 процентов от цены биткоина. Он начал торговаться в диапазоне от 15 до 20 процентов, а затем упал примерно до трёх процентов в начале мая 2017 года. Затем цена монеты отражала перипетии войны за размер блока по мере всё новых битв: поднималась в конце мая 2017 года, а затем ещё раз в конце августа. Также было несколько технически обусловленных подъёмов цены: трейдерам иногда приходилось покупать токен фьючерсного контракта Bitcoin Unlimited, чтобы объединить его обратно с токеном контракта Bitcoin Core, получить из двух токенов обычный биткойн, и затем вывести свой депозит из Bitfinex. Наконец, в конце года токен Bitcoin Unlimited истек, так как связанного с Bitcoin Unlimited разделения цепи так и не произошло.

Глава 14. ASICBoost

В среду, 5 апреля 2017 года, случилась очередная сенсация, на сей раз из лагеря малых блоков. Это было электронное письмо Грегори Максвелла, адресованное списку рассылки биткоин-разработчиков. Мы не будем вдаваться здесь в подробности, так как это узкий технический вопрос. Основная идея обвинения Грегори заключалась в том Bitmain и Джихан солгали о причинах, по которым они выступали против SegWit. У Bitmain якобы была секретная фишка: компания разработала скрытую оптимизацию майнинга, экономящую усилия при доказательстве работы - но она не не работала бы, если бы блоки содержали транзакции SegWit. Причина их выступления против SegWit, таким образом, была финансовой, ради сохранения прибыльности Bitmain, а заявленные причины, вроде сложности технологии или попытки сохранения рычагов для вымогания хардфорка, не играли такой роли. Если бы обвинение было правдой, это бы означало нечестность Bitmain до такой степени, что фактически они оказывались злоумышленниками против протокола Биткоина.

Ниже приводится письмо Грегори:

Месяц назад я рассказывал об атаке на систему proof-of-work Биткоина, которую реализует ASICBOOST, и о различных шагах, которые можно было бы использовать для его блокировки в сети, если это станет проблемой.

Хотя большинство обсуждений ASICBOOST было сосредоточено на открытом методе его реализации, существует также скрытый метод его использования.

Когда я объяснил один из подходов к подавлению скрытого ASICBOOST, я понял, что мои слова в значительной степени также описывают структуру правок кода SegWit.

Авторы предложения SegWit приложили особые усилия, чтобы не быть несовместимыми с какой-либо системой майнинга, и, в частности, в какой-то момент изменили дизайн, чтобы приспособиться к работе с чипами для майнинга, в которые вшиты адреса для выплат.

Если бы об использовании этой атаки было известно, были бы предприняты усилия, чтобы избежать несовместимости - для разных случаев применялись бы разные алгоритмы. Но лучшие методы осуществления скрытой атаки в значительной степени несовместимы практически с любым методом расширения возможностей Биткоина по обработке транзакций - с единственным заметным исключением в виде блоков расширения (тут тоже есть свои проблемы).

Эта несовместимость могла бы пролить свет на мотивы части наиболее необъяснимых действий некоторых сторон в экосистеме майнинга, поэтому я начал искать подтверждающие доказательства.

Реверс-инжиниринг конкретного чипа для майнинга убедительно продемонстрировал, что ASICBOOST в нём реализован аппаратно.

Исходя из этого, я предлагаю для обсуждения следующее BIP. Это предложение не предотвращает атаку в целом, а только подавляет её скрытые формы, несовместимые с улучшениями протокола Биткоина.

Я надеюсь, что даже те из нас, кто решительно предпочел бы, чтобы ASICBOOST был полностью заблокирован, смогут объединиться, чтобы поддержать защитную меру, в рамках которой подавляется скрытое использование ASICBOOST, потенциально блокирующее улучшения протокола.

ASICBoost - это способ уменьшить объём работы, которую должен выполнять майнер при попытке хеширования в рамках PoW. SHA256, алгоритм хеширования, используемый для PoW Биткоина, перед вычислениями разбивает заголовок блока на 64-байтные блоки. Размер заголовка блока у Биткоина составляет 80 байт, поэтому он разделен на два фрагмента - фрагмент 1 и фрагмент 2. ASICBoost сохраняет значение одного из фрагментов одинаковым в течение нескольких попыток хеширования. Следовательно, майнер должен выполнять для этого фрагмента только часть работы, делая несколько попыток хеширования, что приводит к значительному повышению эффективности примерно на 20 процентов. Статью с описанием этой системы впервые опубликовал в марте 2016 года Тимо Ханке.

Этого можно было добиться двумя способами: открыто, поработав с битами, обозначающими версию, в заголовке блока Биткоина в первом фрагменте, чтобы создать энтропию, тогда как второй фрагмент остаётся статичным, позволяя сделать несколько попыток хеширования; или тайно. Скрытый ASICBoost намного сложнее и включает в себя возню с биткоин-транзакциями, чтобы найти коллизию в последних четырех байтах корня Меркла для транзакций. Корень Меркла попадает в оба фрагмента заголовка, причем последние четыре байта находятся во фрагменте 2. Таким образом, скрытый метод ускорения также сохраняет фрагмент 2 статическим, позволяя сделать несколько попыток хеширования. Эта скрытая манипуляция может происходить путем изменения порядка транзакций в блоке. Обновление SegWit требует, чтобы майнеры зафиксировали структуру транзакции в другом месте блока, что делает подобный тип манипуляции практически невозможным. Таким образом, SegWit непреднамеренно предотвращает скрытый ASICBoost.

По-прежнему существовала значительная неопределенность в отношении утверждения Грегори о том, что «обратный инжиниринг конкретного чипа для майнинга убедительно продемонстрировал аппаратную реализацию ASICBoost». В то время как большинство сторонников малых блоков, похоже, верили в это утверждение, мне не было ясно, достаточно ли доказательств в его поддержку. Возможно, мелкоблочники были настолько убеждены, что SegWit - хорошая идея, и что у Bitmain не было веских причин противостоять ему, что они ошибочно пришли к выводу, будто намерения Bitmain непременно должны быть гнусными. Такое утверждение очень хорошо вписывается в нарратив, объясняя поведение Bitmain, и по этой причине большинство в лагере малых блоков поверило в эту версию. Конечно, альтернативное объяснение поведения Джихана - что он просто был упёртым крупноблочником, который делал всё для победы своей стороны - также кажется вполне возможным. Это также вполне корректно объясняет его противодействие SegWit.

Через два дня после того, как было выдвинуто обвинение, Bitmain выпустила длинное и бессвязное опровержение:

Bitmain опробовала ASICBOOST в тестовой сети, но никогда не использовала ASICBOOST в основной сети, как это подразумевается в предложении Грегори Максвелла. Мы просим убедительных доказательств у любого, кто утверждает, что это ложь, потому что такие безосновательные утверждения токсичны для биткоин-пространства.

Bitmain имеет патент на ASICBOOST в Китае. Мы можем законно использовать его на наших собственных майнинг-фермах в Китае, чтобы получать от него прибыль и продавать публике контракты на облачный майнинг.

Оборудование для биткоин-майнинга быстро обесценивается. Bitmain постоянно представляет в открытую продажу новые, более эффективные модели майнеров. Таким образом, утверждение о том, что развёртывание ASICBOOST, которое может привести к 20-процентной разнице в энергоэффективности, это своего рода вредительство в рамках бизнес-модели Bitmain, является ложным.

SegWit не запущен, потому что условия, изложенные в Гонконгском соглашении, не были выполнены.

Недавнее предложение Грегори Максвелла предлагает поменять коллизию 2^32 на коллизию 2^64, чтобы усложнить ASICBOOST. Результатом этого будут убытки для владельцев патентов и вред для протокола Биткоина. Владельцы патентов ничего не получат, а протокол Биткойн станет более сложным.

Сообщество Биткоина постигло серьезное несчастье, когда Максвелл возглавил (sic) переворот против Гэвина Андресена и лишил его доступа к фиксации коммитов на гитхабе. Теперь мы, как сообщество, должны выяснить, как найти новую группу разработчиков Core, которая не будет заниматься атаками на одного из крупнейших инвесторов Биткойна (Вер), одну из крупнейших бирж (Coinbase) и крупнейшего поставщика майнингового оборудования (Bitmain).

Прежде всего следует отметить, что, несмотря на опровержение, Bitmain признала использование ASICBoost в тестовой сети, и, предположительно, скрытого алгоритма тоже. Следовательно, вполне вероятно, что они реализовали это аппаратно. До этого опровержения я не был уверен в точности обвинений. На мой взгляд, это довольно иронично, что характер отрицания значительно увеличивал вероятность правдивости обвинения. Bitmain даже продолжала утверждать, что они владеют патентом на ASICBoost в Китае и могут законно использовать его, если захотят, прежде чем защищать эту технологию как легитимную оптимизацию майнинга. Гораздо более эффективной политикой коммуникации было бы простое и чёткое отрицание, а не защита ASICBoost в гипотетическом сценарии, в котором его использовала Bitmain. Таким образом, отрицание ослабило позиции Bitmain, и сторонники малых блоков назвали его доказательством гнусного поведения. Даже если Bitmain в то время не использовал скрытый ASICBoost, они потенциально намеревались это сделать, и поэтому дух обвинения Грегори выглядел в некоторой степени точным: аргументы Bitmain против SegWit были фальшью. Похоже, в реальности всё дело было в деньгах.

Однако возможно и более простое объяснение. Bitmain просто плохо общалась на английском, и поэтому отрицание было таким слабым. Также в рамках этой войны уже сложилась определённая культура сражений - аргументировать каждый пункт. Может быть, позиция Bitmain состояла в том, что они не делали скрытого ASICBoost, но даже если бы и делали, то что с того? Не исключено, что Bitmain хотела подчеркнуть именно это, даже если компания действительно не внедряла ASICBoost. Опубликованное опровержение также подтвердило позицию Bitmain в войне блоков, согласно которой они не намерены запускать SegWit, поскольку условия Гонконгского соглашения не были выполнены. Конечно, с точки зрения сторонников малых блоков, это никогда и не предполагалось как услуга за услугу.

Примечательно, что Гэвин даже продолжил защищать Bitmain, основываясь на предположении, что компания использовала скрытый ASICBoost, и утверждая, что это была легитимная оптимизация майнинга с использованием программного обеспечения Биткоина.

Для Ethereum изменять свои правила, чтобы отменить кражу - не ОК, а для Биткойна изменять правила, чтобы предотвратить оптимизацию - это ОК?

Однако Гэвин, похоже, упустил суть. Проблема заключалась не в том, что скрытый ASICBoost был нелегитимным, а в том, что противодействие Bitmain технологии SegWit было основано на сокрытии своих мотивов, и в том, что в войне блоков один из основных игроков был мотивирован нечестными намерениями. Если бы Bitmain открыто выступила против SegWit по этой причине, всё было бы иначе.

Примерно во время скандала с ASICBoost несколько крупноблочников предлагало в качестве альтернативы SegWit другой софтфорк, позволяющий увеличить лимит размера блока - блоки расширения. Это предложение было сделано Эндрю Ли в блоге Purse.io, компании, связанной с лагерем крупных блоков. Этот план даже похвалил Роджер Вер, и Bitmain, похоже, тоже поддержала эту идею. Блоки расширения были первоначально предложены соавтором SegWit Джонсоном Лау в 2013 году, однако от этой идеи по большей части отказались, поскольку отправка монет из блока расширения в основную цепь проходила не особенно гладко. В противовес этому, в SegWit всё протекало без эксцессов.

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

Блоки расширения были способом получить увеличение лимита размера блока при помощи софтфорка, но сохранить возможность проводить скрытый ASICBoost. Таким образом, для лагеря малых блоков это предложение было ещё одним доказательством вины Bitmain. Мелкоблочники также обвинили Bitmain в финансировании недавней кампании по продвижению предложения о блоках расширения, что снова свидетельствовало о вине Bitmain в отношении ASICBoost. Точно так же, как крупноблочники не хотели принимать что-либо, реализованное в Bitcoin Core, их оппоненты, по-видимому, имели аналогичное предубеждение, и тот факт, что предложение о блоках расширения продвигалось и финансировалось Bitmain, гарантировало, что они выступили против него.

Патент ASICBoost считался значительной угрозой для Биткоина. Оказалось, что одна майнинговая компания может может приобрести патент, заявить об исключительных правах на использование технологии и затем доминировать в области майнинга благодаря преимуществам, которые может предоставить технология. Говорят, что для облегчения этой проблемы несколько биткоинеров приобрели патент по довольно высокой цене, а затем, в марте 2018 года, поместили патент в защитный патентный пул, так что он больше никогда не мог использоваться, кроме как для защиты от других патентов. Примерно с апреля 2018 года блоки в блокчейне Биткоина начали указывать на использование открытого ASICBoost. Открытый ASICBoost намного проще и эффективнее скрытого формата, а также позволяет избежать проблемы несовместимости с SegWit. В ноябре 2018 года Bitmain внедрила открытый ASICBoost в свою прошивку, и на сегодняшний день более 70 процентов блоков Биткоина добываются с использованием открытого ASICBoost. Что касается патента, так и осталось неясным, кто именно приобрёл патент, а цепочку прав собственности от изобретателя до того, кто предположительно поместил патент в защитный патентный пул, оказалось невозможно отследить. Поэтому то, что на самом деле произошло, остаётся немного туманным.

Даже сегодня я действительно не уверен, использовала Bitmain скрытый ASICBoost в основной сети или нет. Мнения экспертов по этому поводу неоднозначны. Думаю, шансы где-то 50:50.

Обвинение ASICBoost, похоже, оказало очень небольшое влияние на сообщество сторонников крупных блоков. В общем-то, они даже не поняли обвинения и отклонили его как еще одну пропагандистскую ложь от Bitcoin Core. Обвинение также мало повлияло на то, чтобы убедить больше людей присоединиться к лагерю малых блоков, в основном из-за сложности аргументов обвинения. Тем не менее, это, безусловно, оказало очень значительное влияние на укрепление взглядов многих мелкоблочников, которые теперь считали разрешение ситуации гораздо более неотложной задачей. Здесь разногласия по поводу ASICBoost сыграли значительную и монументальную роль в конфликте. Теперь было похоже, что сторонники малых блоков полны решимости принять меры.

Глава 15. Логово драконов

6 апреля 2017 года соавтор whitepaper Лайтнинга Джозеф Пун упомянул о секретном канале мелкоблочников, в котором принимаются многие решения по связям с общественностью:

Просто у них есть секретный канал, где они координируют свои пиар-кампании и троллинг. Об этом говорили многие (более пяти человек), и на него ссылаются в различных общедоступных местах, поскольку именно здесь принимается множество решений, связанных с PR.

Я чрезвычайно расстроен тем, что они нападают на меня за мои обращения в прессу, тогда как они используют более закулисную тактику, и вся команда Core прекрасно знает, что они делают, а кто-то, может, и сам вносит активный вклад.

Я думаю, что сообщество BU делает то же самое в своём slack-канале. Что меня расстраивает, так это то, что видные члены Core нападают на меня за мою деятельность и проявляют недоброжелательность. Это очень личное. Они изображают меня, будто я поднялся на продаже биткоинов, хотя я, вероятно, заработал меньше денег на них по сравнению со всеми другими известными членами сообщества. Я считаю это невероятно оскорбительным.

На следующий день крупноблочники раскопали видеопрезентацию Брэма Коэна, изобретателя Bittorrent, которая была представлена ​​в январе 2017 года. Во время презентации на экране случайно появился канал Slack под названием «dragonsden» ("Логово Драконов"), на сервере Bitcoin Core Slack. Это был частный канал с 21 участником. На экране можно было идентифицировать нескольких участников, которых крупноблочники знали как хорошо известных троллей из лагеря малых блоков, включая некоторых модераторов сабреддита Биткоина. Для крупноблочников это был крупный скандал, свидетельство координации на стороне малых блоков, связь между субреддитом Биткоина, командой Bitcoin Core и пропагандистской кампанией, которую вели мелкоблочники. В лагере больших блоков также, вероятно, были секретные каналы связи и координации, ориентированные на пиар. Такова была политическая природа ситуации: конфликт развился до такой степени, что подобные каналы связи были необходимы. Для меня был один ясный вывод из этого «скандала»; Мне просто нужно было попасть в Логово Драконов. Несколько недель спустя, после некоторых расспросов, я был там! Я пробрался в глубины Логова Драконов.

Канал был очень активен и полностью сосредоточен на войне за размер блока. Большая часть работы была связана с социальными сетями, связями с общественностью и тем, как лучше всего выявить слабые места в нарративах и аргументах, выдвигаемых крупноблочниками. Многие участники канала оказались очень преданными делу. Дискуссия часто сосредоточивалась на том, как убедить разных людей присоединиться к лагерю малых блоков, на том, чьё присоединение наиболее вероятно, и какие вопросы будут наиболее эффективными для привлечения внимания в социальных сетях. Также обсуждались мемы и их создание. Эта война также была войной мемов, и «Драконы», как иногда называли участников канала, были очень вовлечены в это дело. Многие из их мемов были смешными и должны были показать крупноблочников плохо разбирающимися в некоторых технических проблемах Биткоина, при этом в центре внимания находились Роджер Вер, Крейг Райт и Джихан Ву. Другая стратегия заключалась в том, чтобы связать Роджера Вера с Крейгом Райтом, хотя, честно говоря, Роджер сам сильно облегчал их задачу.

Что меня действительно впечатлило в Логове, так это интенсивность обсуждения, по крайней мере, в начале 2017 года. Канал был активен 24 часа в сутки, семь дней в неделю. Вне зависимости от времени дня в войне за блоки что-то происходило.

Остается под вопросом, всегда ли тактика, применявшаяся Драконами, была полностью этичной. Обе стороны, разумеется, обвиняли друг друга в закулисной борьбе. Обычно обвинения сводились к токсичности, скрытности, злонамеренности, нечестности и манипулятивности отдельных людей. Однако, по иронии судьбы, мне было очевидно, что методы и тактика, использованные каждой стороной в конфликте, были удивительно похожими; можно даже сказать, идентичными. В плане честности ни одна из сторон не имела в этой войне безупречного послужного списка, и, возможно, для любой из противоборствующих сторон было лицемерием указывать пальцем на другую, заявляя, что она ведёт себя особенно плохо или неэтично. Хотя внутри Логова происходили некоторые действия, которые я бы назвал довольно озорными, в этом не было ничего слишком зловещего. Разумеется, не было никаких свидетельств того, что с обеих сторон в этом конфликте происходило что-либо незаконное, за исключением, возможно, DDoS-атак, однако я не видел никаких доказательств того, что это было запланировано именно в Логове.

Глава 16. Litecoin

Одной из стратегий, обсуждавшихся в "Логове драконов" в этот период, была активация SegWit на Litecoin — альтернативной монете, часто рассматриваемой в качестве близкого родственника Биткоина. Это показало бы майнерам, что SegWit работает, и продемонстрировало бы, что многие недостатки SegWit, проповедуемые сторонниками крупных блоков, такие как уязвимости в безопасности протокола, на самом деле являются пустыми. Клиент софтфорка SegWit был выпущен 12 января 2017 года в версии Litecoin 0.13.2.1. В отличие от Биткоина, у которого порог активации составлял 95 процентов, у Litecoin порог активации майнеров равнялся 75 процентам. У Litecoin были такие же двухнедельные скользящие окна активации, за которыми следовал период возможной двухнедельной отсрочки активации. Большинство примечаний к релизу для этого клиента были написаны биткоин-разработчиком под псевдонимом Shaolinfry, а большая часть кода для SegWit была создана разработчиками Core. Shaolinfry, скорее всего, был участником "Логова драконов"; однако даже внутри "логова" истинная личность этого человека не была известна наверняка. Чарли Ли основал Litecoin и, похоже, причислял себя к сторонникам малых блоков. В то же время, сообщество Litecoin с энтузиазмом поддержало активацию SegWit, поскольку для них это была возможность внедрить новую технологию раньше Биткоина, что рассматривалось как очень позитивный момент.

Поддержка SegWit среди майнеров Litecoin постепенно росла, однако она все еще оставалась низкой, и было неясно, произойдет ли активация. Примерно 9 апреля 2017 года началась кампания за активируемый пользователями софтфорк (UASF) на Litecoin, чтобы принудить майнеров активировать SegWit. Движущей силой кампании стало разочарование пользователей отсутствием прогресса со стороны майнеров. Идея заключалась в том, что вместо порога активации майнеров пользователи могли бы запустить клиент, который просто активировал бы новые правила в определенный момент в будущем, независимо от состояния флагов майнеров. На данный момент кампания в основном заключалась в том, что пользователи добавляли флаг "UASF-Segwit-BIP148" в настройки  своего клиента Litecoin, чтобы это сообщение было видно другим участникам сети. Это сообщение не активировало ничего, а просто заявляло о намерениях пользователей.

Биткоин использовал эту методику активации в прошлом, в эпоху Сатоши, однако протокол перешел на сигнализирование майнеров, чтобы уменьшить вероятность разделения цепи или проблем при активации. Мне показалось, что если в Биткоине использование такой методики активации может быть рискованным, особенно для такого спорного обновления, как SegWit, то в случае с Litecoin это может быть довольно просто. Поддержка SegWit среди пользователей была практически всеобщей, и у Litecoin даже был основатель, который активно работал в этом пространстве и поддерживал обновление. Похоже, что UASF работает; майнеры получили сообщение, и количество флагов для SegWit на Litecoin начало расти. Активация теперь казалась неизбежной.

Однако примерно 17 апреля 2017 года хэшрейт Litecoin резко вырос. Этот новый хэшрейт не сигнализировал о поддержке SegWit и, похоже, блокировал активацию. Это очень походило на умышленную стратегию майнеров. Хэшрейт поступал из пулов LTC1BTC и LTC.TOP, контролируемых Цзян Жоэром (Jiang Zhuoer), которого многие считали доверенным лицом Джихана Ву. 19 апреля 2017 года Цзян Жоэр опубликовал в блоге сообщение, в котором объяснил свою позицию:

Хотя у меня есть свои сомнения по поводу SegWit (я — ХОДЛер Litecoin), если это наиболее широко принятый путь развития, то я не против него. Но я категорически против тактики, которую используют сторонники Segwit, чтобы добиться его активации, а именно UASF (DASF) и proof-of-DDoS. Если сторонники этой тактики получат одобрение, увидев их успех на примере Litecoin, то и Биткоин, и Litecoin станут уязвимыми системами, подверженными преступным манипуляциям.

В связи с этим я добавляю достаточное количество хэшрейта в свой пул, чтобы обеспечить следующее:

Гарантировать, что Segwit не активируется путем proof-of-DDoS.

Сообщество Litecoin будет ждать визита Чарли Ли в Китай, чтобы вместе принять это решение".

Теперь казалось, что войны за масштабирование Биткоина переместились в Litecoin, причем аргументы были практически идентичными. В этот период я напрямую разговаривал с Цзян Жоэром. Он объяснил мне, что не хочет внедрения SegWit в Litecoin без того, чтобы Litecoin также увеличил размер блока через хардфорк. Однако это казалось нелогичным, поскольку, в отличие от Биткоина, блоки Litecoin вообще не наполняются. Цзян объяснил мне, что дело в принципе: разработчики Litecoin должны были "ясно дать понять, что они произведут хардфорк, когда блоки станут полными", иначе это был бы неверный путь. Затем он объяснил мне, что активация SegWit в Litecoin была "игрой Bitcoin Core". Он был обеспокоен тем, что если SegWit активируется в сети Litecoin, то он может активироваться и в Биткоине. Он также был особенно возмущен предложенным UASF и тем, что это может быть предпринято и в Биткоине. По мнению Цзяна, UASF "противоречит интересам майнеров" и является "враждебным актом по отношению к майнерам". Из этого разговора было ясно, что Цзян и некоторые майнеры были крайне обеспокоены и почти напуганы перспективой UASF, который опроверг бы мнение, согласно которому майнеры имеют определенный контроль над протоколом.

Конечно, в словах Цзяна была доля правды. Из разговоров в "логове" я знал, что мелкоблочники абсолютно точно намеревались использовать активацию SegWit в Litecoin, чтобы поспособствовать внедрению обновления в Биткоине. Крупноблочники осознали это и теперь должны были переключить свои усилия на то, чтобы остановить SegWit в Litecoin. С другой стороны, было ясно, что фактическое сообщество Litecoin решительно поддерживает обновление, поэтому, возможно, действия сторонников крупных блоков здесь были немного неуместны.

21 апреля 2017 года, явно копируя Биткоин, в Китае был проведен круглый стол Litecoin с участием большинства майнеров, и было опубликовано соглашение:

Мы выступаем за то, чтобы решение об обновлении протокола Litecoin принималось на основе потребностей пользователей, через процесс голосования за круглым столом и активировалось голосованием майнеров.

...

Мы не выступаем за "UASF", который не проходит через (sic) какой-либо процесс голосования пользователей или сообщества. Такой тип принудительного обновления без консенсуса сообщества подвергает Litecoin риску раскола.

...

В процессе голосования участники сообщества единогласно приняли следующий план обновления протокола Litecoin:

Внедрить софтфорк Segregated Witness на Litecoin.

Когда заполнение блока Litecoin превысит 50%, мы начнем готовиться к решению по увеличению лимита размера блока в 1 МБ через хардфорк или софтфорк.

Наконец, мы хотим подчеркнуть, что данное заседание круглого стола представляет собой лишь консенсус участвующих членов и не может принимать решения от имени сообщества Litecoin.

Текст обязывал активировать SegWit, но также участники договорились начать подготовку к очередному увеличению лимита размера блоков, как только блоки будут заполнены на 50%. Для майнеров это выглядело как спасение чести: они активируют SegWit, но получают еще одно туманное обещание относительно потенциального хардфорка. В действительности майнеры, возможно, были вынуждены активировать SegWit из-за угрозы UASF, которая в случае Litecoin была вполне реальной. Гонконгское соглашение по Биткоину все еще было важно для Джихана, и это был способ сказать, что они по-прежнему хотят чего-то подобного в Биткоине — активации SegWit и увеличения лимита размера блоков через хардфорк. Конечно, в Биткоине блоки уже были заполнены более чем на 50%, поэтому хардфорк был необходим как можно скорее.

Соглашение также содержит несколько очевидных противоречий. В начале соглашения говорилось, что протокольные решения должны приниматься на заседании круглого стола, но позже в том же заявлении было указано, что решения не могут приниматься в процессе заседания, и все члены сообщества контролируют Litecoin. Это, похоже, указывает на то, что не все участники встречи придерживались одного и того же мнения об управлении, и что противоречивые заявления были включены, чтобы успокоить обе стороны. Это также дало понять, насколько сильно Джихан и некоторые майнеры были убеждены, что именно майнеры контролируют правила протокола. Из разговоров с Джиханом и Цзяном в то время мне показалось, что они постепенно осознают, что майнеры не обладают такой властью, как им когда-то мнилось, это их очень расстраивало, и они отчаянно пытались держаться за эту концепцию как можно дольше.

В мае 2017 года Litecoin торжественно активировал SegWit. После этого цена Litecoin стала резко расти: отчасти из-за воодушевления на фоне SegWit; отчасти из-за стратегии некоторых сторонников малых блоков, заключавшейся в покупке Litecoin, чтобы вызвать рост цены и создать позитивное представление о SegWit; но в основном из-за притока средств в эту сферу, поскольку в 2017 году на криптовалютном рынке начал формироваться пузырь. Затем некоторые члены “логова драконов” начали распространять позитивные сведения о SegWit: цена Litecoin выросла, а надуманные предсказания конца света от крупноблочников оказались пустышкой.

Это было явно хорошее начало 2017 года для мелкоблочников. Они одержали три победы подряд: с биржами, с ASICBoost и теперь с Litecoin. К лету 2017 года счет за год был следующим: мелкоблочники — три, крупноблочники — ноль. Эта война была связана с импульсом и его восприятием; люди просто хотели следовать за большинством и поддержать победителя. Кумулятивное воздействие этих побед было очень важным. Сторонники малых блоков были на подъеме.

Глава 17. Активируемый пользователями софтфорк

Идея о том, что Активируемый пользователями софтфорк (UASF) в Биткоине разрешит текущий тупик и активирует SegWit, похоже, также возникла от разработчика с псевдонимом Shaolinfry в электронном письме, отправленном в список рассылки Биткоина 25 февраля 2017 года:

Проблема с активацией через супербольшинство, сигнализирующее хэшрейтом, в том, что она привлекает ненужное внимание к майнерам, излишне политизируя их. Майнеры, уже неправильно истолковавшие сигнал о готовности как голосование, могут ощущать давление, полагая, что им предстоит «принять решение» от имени сообщества: кто сигнализирует, а кто нет, оказывается в фокусе общественного внимания, и это может сильно давить на неготовых к этому майнеров. Некоторые майнеры могут быть не в состоянии обновиться или предпочтут не участвовать в софтфорке - это их право. Однако теперь такой майнер может оказаться единственной причиной, по которой активация срывается для всех, в то время как софтфорк должен оставаться добровольной опцией! Эта ситуация явно противоречит добровольному характеру системы Биткоина, где участие на всех уровнях является добровольным и поддерживается хорошо сбалансированными стимулами.

Ниже я предлагаю обсуждение альтернативы - «сигнале об активации в назначенную дату», когда узлы начинают принудительный переход к новым правилам в заранее определённое время в будущем. Этот метод требует большего времени выполнения, чем триггер активации на основе хэшрейта, но предлагает ряд преимуществ и, возможно, обеспечивает лучший компромисс.

12 марта 2017 года Shaolinfry формализовал свое предложение, и оно стало известно как BIP 148. Идея заключалась в том, чтобы принудить майнеров сигнализировать о поддержке SegWit правилом консенсуса, тем самым активируя его. В каком-то смысле это был софтфорк для активации другого софтфорка. Принудительная сигнализация майнеров должна было начаться 1 августа 2017 года, примерно через четыре с половиной месяца. Затем это должно было активировать исходный софтфорк SegWit до истечения срока действия окна активации.

Мотивация

Segwit увеличивает размер блока, исправляет уязвимость транзакций для посторонних и упрощает обновление скриптов, а также дает множество других преимуществ.

Есть надежда, что майнеры отреагируют на этот BIP, активировав Segwit раньше, до того, как BIP вступит в силу. В противном случае этот BIP вызовет принудительную активацию развёртывания Segwit в рамках штатной процедуры до полуночи 15 ноября 2017 года.

Спецификация

Все метки времени ниже относятся к "медианному прошлому" (шестая метка времени в последовательности из 11 последних меток времени в блокчейне - прим. переводчика).

Этот BIP будет активен с полуночи 1 августа 2017 года (метка времени 1501545600) до полуночи 15 ноября 2017 года (метка времени 1510704000), если существующее развёртывание Segwit не заблокировано или не активировано до метки времени 1501545600. Этот BIP перестанет быть активным, если Segwit будет заблокирован.

Пока этот BIP активен, во всех блоках первые 3 бита заголовка NVersion должны быть равны 001, так же, как и поле Bit (1<<1) (в соответствии с существующей процедурой развертывания Segwit). Блоки, которые не сигнализируют должным образом, должны быть отклонены.

С точки зрения концепции малых блоков идея была крайне спорной и очень рискованной. Во-первых, большая часть нарратива лагеря малых блоков до этого момента была посвящена терпению и сугубо спокойному и безопасному изменению правил консенсуса. Предлагаемое обновление было опасным: от майнеров требовалось просигнализировать о поддержке, а если они этого не сделают, результатом может стать разделение цепи. Во-вторых, это было очень рискованно, потому что, если BIP 148 UASF потерпит неудачу, что казалось вполне возможным, это могло передать инициативу крупноблочникам. На текущем этапе войны они разделились на несколько фракций: например, на тех, кто считал Крэйга Райта Сатоши, и тех, кто считал его аферистом; на тех, кто считал Bitcoin Unlimited надёжной идеей, и тех, кто считал её ошибочной; на тех, кто подался в ICO, и тех, кто по-прежнему был верен Биткоину. Однако, надо отдать должное, до этого момента мелкоблочники в основном были едины. Для их стороны это было ключевым преимуществом, помогающим им пользоваться в этой войне большой поддержкой. Возникшая разноголосица в лагере малых блоков грозила расколоть его надвое, что могло иметь для их дела разрушительные последствия.

Например, Грегори Максвелл, один из самых влиятельных теоретиков на стороне малых блоков, выступил против UASF и чётко сформулировал эту точку зрения в письме от 14 апреля 2017 года:

Я не поддерживаю BIP148 UASF примерно по тем же причинам, по которым я поддерживаю Segwit: Биткоин ценен отчасти потому, что он обладает высокой безопасностью и стабильностью. Segwit был тщательно разработан, чтобы сейчас и в будущем люди могли рассчитывать на тот же или более высокий уровень инженерной надёжности.

Мне не кажется, что (Sic) подход, предложенный в BIP148, действительно соответствует стандарту, установленному самим Segwit, или существующим передовым методам разработки протоколов в нашем сообществе.

Основной недостаток BIP148 заключается в том, что принудительная активация существующих узлов (не связанных с UASF Segwit) _почти_ гарантируется при незначительном уровне сбоев.

Однако Segwit был тщательно спроектирован таким образом, чтобы после его активации старые немодифицированные майнеры _все_ могли продолжать работать как ни в чём ни бывало.

Старые узлы не будут видеть отделённые подтверждения трат, поэтому для них блоки с транзакциями Segwit не будут недействительными, даже если эти узлы не имеют поддержки Segwit. Они могут перейти на поддержку нового формата, когда им самим будет удобнее. Единственный риск, который несут не обновившиеся майнеры после активации Segwit, заключается в том, что если кто-то другой произведёт недействительный блок, они могут счесть его валидным и наращивать цепь над этим блоком - риск, на который многие майнеры уже сегодня часто идут, если занимаются шпионским майнингом.

Я не думаю, что BIP 148 это ужасное предложение: оно спроектировано лучше, чем то, что творится с различными альткоинами - но нашим нормальным стандартам оно не соответствует. Я уважаю мотивацию авторов BIP 148. Если ваша цель - максимально быстрая активация Segwit, тогда очень полезно воспользоваться наличием более 80% существующих узлов, которые уже поддерживают исходную версию Segwit.

Но скорейшее внедрение не должно быть нашей главной целью как сообщества - всегда есть какой-нибудь безрассудный альткойн или централизованная система, которые смогут внедрить что-то быстрее, чем это можем мы - попытка соответствовать этому только подорвет наши выдающиеся ценности - качества проектирования и стабильности.

«Прежде всего, не навреди». Нам следует использовать наименее разрушительные из всех доступных механизмов, а предложение BIP148 не соответствует этому критерию. Если послушать некоторых людей - не относящихся к разработчикам, на Reddit и тому подобных площадках - они видят в принудительном выбрасывании за пределы консенсуса при помощи BIP 148 некую добродетель, наказание за плохое поведение майнеров. Я не могу (Sic) более решительно отмежеваться от этой точки зрения, чем делаю это сейчас.

Разумеется, я не против концепции UASF как таковой, но _в норме_ софтфорк (любого вида) не должен давать риск сбоя майнинга, как не даёт его сама по себе активация Segwit. UASF - это самый первый из всех типов софтфорка и единственный вид форка, который практиковал Сатоши. P2SH был активирован в заданную дату, а все предыдущие форки были привязаны к определённому времени или высоте блока. Мы ввели активацию на основе сигнализации майнеров как часть процесса повышения стабильности Биткоина в качестве общего решения для тех периодов, когда экосистема находится в гармонии. Довольно странно видеть, что UASF изображается как нечто новое.

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

Были и другие предложения UASF, позволяющие избежать принудительного сбоя - просто определив новый сигнальный бит и разрешив майнерам и узлам, не обновленным в рамках UASF, оставаться без обновления. Я думаю, что эти предложения намного лучше. Их развёртывание будет медленнее, но я не думаю, что это недостаток.

Нам следует набраться терпения. Биткоин - это система, которая должна постепенно взрослеть и поддерживать человечество в течение долгого времени - через десять лет пара лет споров будет казаться ничем. Но репутация, которую мы зарабатываем благодаря стабильности и порядочности, поддерживая денежную систему, на которую люди могут рассчитывать, будет значить всё.

Если наши споры и вспомнят, то лишь в форме напоминания людям, что Биткоин не так легко изменить по прихоти, даже когда прихоти явно хороши, и как это защищает его от управления в духе управления всеми конкурирующими денежными системами, используемыми в мире. 🙂

Так что наберитесь терпения, не пытайтесь срезать углы. Segwit - хорошее усовершенствование, и мы должны уважать его, зная, что этого достаточно, чтобы его дождаться, и когда бы он ни был активирован, пусть он будет активирован наилучшим образом.

Одним из первых известных биткоин-разработчиков, поддержавших UASF, был Люк-младший, разработчик, который обнаружил, как вообще можно сделать SegWit софтфорком. Люк действительно обеими руками поддерживал альтернативные правила консенсуса, в то время как почти никто другой этого не сделал. Однако, учитывая его личность, это вряд ли его беспокоило, и выглядел он уверенно. Один из самых уважаемых разработчиков в лагере малых блоков, Питер Вуилле, который написал большую часть кода для софтфорка SegWit, также выступил против BIP 148. В мае 2017 года в открытом чате с Люком Питер сделал следующие комментарии:

Я предполагаю, что каждый экономически значимый полный узел отзовёт поддержку кода Bip148 буквально через несколько часов после того, как на его принятие не хватит хэшрейта.

...

Люк-мл.: Я думаю, ты ненормальный.

Стоит отметить, что Питер быстро извинился за «безумный» комментарий. Учитывая взгляды разработчиков, таких как Питер и Грегори, теперь казалось крайне маловероятным, что Bitcoin Core выпустит клиент, реализующий BIP 148. Для успеха UASF мелкоблочникам, по иронии судьбы, теперь требовалось самим запустить альтернативный клиент с другими правилами консенсуса, как это сделали крупноблочники в случае с Bitcoin XT, Bitcoin Classic и Bitcoin Unlimited.

Именно это и произошло: Люк в конце концов выпустил клиент, реализующий BIP 148, с тегом пользовательского агента в заголовке «/Satoshi:0.14.2/UASF-Segwit:0.3(BIP148)/». Пользователям было рекомендовано продолжать использовать Bitcoin Core, но изменить свой идентификатор пользовательского агента, чтобы показать поддержку BIP 148, что также было популярной практикой в то время. Некоторые утверждали, что это была плохая практика, поскольку клиент на самом деле не реализовал правила BIP148, однако другие отвечали, что это лишь декларация о намерениях, и указывает, что пользователи обновятся до 1 августа. Некоторые отмечали, что это было немного лицемерно, так как было именно тем поведением, за которое мелкоблочники высмеивали и критиковали крупноблочников.

В начале мая 2017 года я пообщался в Гонконге с одним из самых значимых закулисных сторонников UASF. Разработчик, с которым я разговаривал, написал код для клиента UASF и содержал несколько веб-сайтов в поддержку UASF. Я объяснял ему, что использование UASF рискованно и важно проявлять терпение в отношении правил консенсуса Биткоина. Он дал длинный и решительный ответ. «В обычное время вы правы, - заявил он, - однако сейчас не обычное время, мы находимся в состоянии войны». Он продолжил: «Биткоин находится в кризисной ситуации, Bitmain злонамеренно использует уязвимость ASICBoost, SegWit исправляет эту уязвимость, и нам нужно срочно его внедрять. Это чрезвычайная ситуация, поэтому у нас нет времени на нормальный терпеливый подход». Далее он объяснил, что на войне не всегда есть возможность выбрать правильное время. Он учитывал, что до активации UASF осталось всего несколько месяцев, но, по его словам, лагерь малых блоков в настоящее время занимает доминирующее положение в войне, и нет никаких гарантий, что это продлится долго. «Пришло время достать использовать наиболее мощное оружие, - провозгласил он, - когда мы сильны». Он продолжил: «У нас нет другого выбора, нам нужно действовать сейчас, обострить конфликт до уровня ядерной войны и решительно выиграть эту войну ради будущего Биткоина. Если мы этого не сделаем, мы рискуем проиграть, и Биткоин будет мертв». Этот разработчик, казалось, продумал все сценарии и был уверен, что BIP 148 сработает. По его мнению, значительным преимуществом был тот факт, что BIP 148 это софтфорк, подмножество текущих правил консенсуса, это облегчит майнерам задачу переключения на цепь BIP 148. Он считал, что BIP 148 - действенная угроза, но майнерам легко её избежать, просто активировав SegWit, так что намеченный согласно BIP 148 софтфорк в августе 2017 года по факту так и не не произойдет. «BIP 148 содержит код, который не применяется, если SegWit уже активирован», - пояснил он.

Первоначально эта идея вызывала споры в лагере малых блоков, но к маю 2017 года она приобрела значительную популярность. В Логове Дракона работали с полной отдачей, поддерживая BIP 148 и UASF. Самсон Моу даже организовал производство, продажу и распространение шляп с вышитыми спереди буквами UASF. Эта шляпа обычно была в цветах милитари и носилась мелкоблочниками на посвящённых Биткоину конференциях и тусовках, чтобы показать свою поддержку этой кампании на низовом уровне. На тот момент обсуждение UASF преобладало только внутри сообщества малых блоков, в то время как крупноблочники и более широкие слои криптовалютной индустрии в основном его игнорировали. И только к концу мая 2017 года идея получила более широкое распространение за пределами лагеря малых блоков.

С тактической точки зрения крупноблочники были слишком неповоротливыми, чтобы успеть среагировать и даже просто понять UASF. Они должны были увидеть потенциальный раскол в лагере малых блоков, а затем попытаться обратить на него внимание публики и использовать его, точно так же, как мелкоблочники поступали во время потенциальных расколов в лагере крупных блоков. Вместо этого крупноблочники в основном игнорировали UASF. Ближе к концу мая я поговорил с одним из самых известных игроков этого лагеря, чтобы обсудить UASF. Он заявил, что не верит, будто бы Грегори Максвелл действительно выступал против UASF; Он объяснил, что это была просто его «обычная ложь и игра». Похоже, к этому моменту уровень недоверия был настолько высок, что, в сочетании с совершенно иным пониманием работы Биткоина, крупноблочники практически не могли разобраться, что замышляют оппоненты. Мне казалось, что мелкоблочники наконец сделали свой ход и оставили слабое место в обороне. Раз уж война продолжается, крупноблочникам нужно реагировать и использовать дыру в защите, но они, похоже, не понимали, что делать.

Крупноблочники также, похоже, были искренне обеспокоены UASF. В начале войны они сильно недооценили размер и влияние лагеря малых блоков, ожидая легкой победы в войне. Они часто высмеивали мелкоблочников как наивных и незначительных. Но на данный момент, однако, после трёх неудачных попыток хардфорка - поражений, которые застали их врасплох - большинство крупноблочников, похоже, наоборот, переоценивали силу и влияние противников. На самом деле лагерь малых блоков был гораздо менее сильным, чем те думали. Основной причиной их успеха в победе над крупноблочниками до этого момента было их превосходное понимание Биткоина, тактические промахи самих крупноблочников и присущая Биткоину устойчивость к спорным изменениям правил протокола. Не имея полного понимания ситуации, в лагере крупных блоков вместо этого обвиняли в своих поражениях хитрых и мощных мелкоблочников. Таким образом, казалось, что крупноблочники уважают оппонентов, и многие из них опасаются UASF, который они рассматривают как следующую большую игру мелкоблочников. Они не видели тактических возможностей, которые это им давало. Таким образом, они не сумели ими воспользоваться.

На тот момент у UASF почти не было поддержки со стороны криптовалютных бирж. Большинство руководителей бирж, с которыми я разговаривал в то время, либо ожидали провала UASF, либо даже не знали, в чем дело. Уровень экономической поддержки UASF за пределами лагеря малых блоков был крошечным. Это был рискованный шаг со стороны мелкоблочников, и мне казалось вероятным, что в результате своего форка они могут оказаться в цепи с малым хэшрейтом, которая не будет считаться Биткоином. Крупноблочники должны были подумать о выпуске «контр-софтфорка», который бы запретил использование флагов BIP 148 в блоках. Эта цепь, вероятно, будет доминировать и экономически, и по хэшрейту. Появление контр-UASF также гарантировало бы чистое разделение, и цепь, не относящаяся к UASF, больше не была бы уязвима для уничтожения. Однако крупноблочники вообще не думали подобным образом. Они хотели увеличить размер блока через хардфорк; у них не было ни опыта, ни желания внедрять контр-софтфорк.

Джихан Ву был крайне возмущен кампанией за UASF. По его мнению, UASF подорвал созданный им нарратив о том, что майнеры имеют значительное влияние на правила протокола. 28 мая 2017 года Джихан разместил твит с фотографией жертв резни в Джонстауне, сопроводив его тегом #UASF. Его гнев и страх по поводу UASF явно были сильны.

В середине июня биржа ViaBTC, связанная с Джиханом Ву, разместила на платформе фьючерс на BIP 148. Очевидно, эта идея была взята у Bitfinex, с их появившимся несколькими месяцами ранее токеном Bitcoin Unlimited. Это была попытка подорвать BIP 148, точно так же, как фьючерсы Bitfinex подорвали Bitcoin Unlimited. Однако условия контракта были довольно странными и несколько нечестными. Если вы инвестировали в токен BIP 148, вы могли получить выплату только в том случае, если продолжали существовать как цепь токенов BIP 148, так и цепь с исходными правилами (цепь без BIP 148). Это было явно не то, чего хотели сторонники BIP 148. Они считали, что цепь с исходными правилами перестанет существовать, в частности, потому что цепь с исходными правилами была уязвима для стирания из цепи BIP 148. Следовательно, инвестирование в токен, зависящий от продолжения существования цепи, не связанной с BIP 148, не имело большого смысла для сторонников BIP 148. Контрактом не удалось достичь какого-либо значительного объема торгов, и, похоже, он не подорвал BIP 148.

14 июня 2017 года Bitmain опубликовала пост, в котором изложила экстренный план действий в ответ на UASF:

BIP148 очень опасен для бирж и другого бизнеса. Нет никаких признаков существенной экономической поддержки BIP148, и когда он проявится в блокчейне, экономическая поддержка, скорее всего, будет основана на спекуляциях. Майнинговая активность, стоящая за цепочкой UASF, может прекратиться без предупреждения, а инвесторы, которые купят эти токены под влиянием пропаганды BIP148, могут потерять все свои вложения. Любые биржи, которые решат поддерживать токен UASF после старта форка, должны учитывать связанный с ним риск остановки.

...

Цепь UASF представляет собой риск стирания исходной цепи. Если нет плана на случай непредвиденных обстоятельств, вся экономическая деятельность, которая происходит в исходной цепи после старта форка UASF, столкнётся с риском уничтожения. Это имеет катастрофические последствия для всей экосистемы Биткоина. UASF - это атака на пользователей и бизнесы, которые не согласны с немедленной активацией SegWit без увеличения размера блока, каковое увеличение является очень важным пунктом в Гонконгском соглашении, заключенном глобальным биткоин-сообществом в феврале 2016 года.

...

Этот план предполагает активируемый пользователями хардфорк или UAHF

...

Bitmain будет майнить цепь UAHF в течение минимум 72 часов после точки разветвления BIP148, выделив на это некоторый процент своего собственного хэшрейта. Bitmain, скорее всего, не будет немедленно передавать добытые блоки в общедоступную сеть, если этого не требуют обстоятельства. Это означает, что Bitmain сначала будет майнить свою цепь в частном порядке. Мы намерены опубликовать добытые блоки в следующих ситуациях (неполный список):

Цепь BIP148 активирована и впоследствии получает значительную поддержку со стороны индустрии майнинга, то есть после того, как BIP148 уже успешно привёл к разделу цепи;

Настроения рынка в отношении хардфорка с крупными блоками сильны, и экономические стимулы заставляют нас его майнить, например, обменный курс оказывается в пользу биткоинов с крупными блоками;

Если уже есть значительное количество других майнеров, публично занимающихся майнингом цепи крупных блоков, и мы решаем, что для нас рационально майнить, продолжая эту цепь. В этом случае мы также рассмотрим возможность присоединения к этой цепи и откажемся от нашей частной цепи, чтобы публичная цепь UAHF не подвергалась риску реорганизации.

Как только Bitmain начнет публично майнить цепь UAHF, мы будем делать это постоянно, игнорируя краткосрочные экономические стимулы. Мы считаем, что дорожная карта, включающая возможность корректировки размера блока, будет лучше обслуживать пользователей, поэтому мы ожидаем, что она приведёт к повышению рыночной цены в долгосрочной перспективе.

План Bitmain состоял в том, чтобы примерно в то же время, когда должен был активироваться UASF, активировать хардфорк, увеличивающий лимит размера блока. План хардфорка даже включал график увеличения лимита размера блока. Он должен был стартовать с 2 Мб в августе 2017 года, а затем постепенно увеличиваться заранее определенными шагами до 16,8 Мб к августу 2019 года. Этот план выглядел как своего рода угроза, нацеленная на сторонников UASF. Крупноблочники получат после хардфорка свою новую цепь, чего, по их мнению, мелкоблочники отчаянно надеялись не дать им достичь.

Хотя Джихан, похоже, не осознавал этого, этот план был на самом деле невероятно благоприятным для дела UASF, потому что это означало, что цепочка UASF с большей вероятностью получит преимущество в proof-of-work по сравнению с исходной цепочкой правил, раз уж Bitmain указала, что планируется перейти на альтернативную цепь хардфорка. В дополнение к этому Bitmain планировал тайно майнить новую цепь хардфорка в течение 72 часов. Это был очень плохой ход, если планировалось, что цепь хардфорка наберёт обороты, поскольку никто не мог видеть эту цепь или запускать клиент, поддерживающий его, а биржи не могли поддерживать соответствующий токен. Непонятно, что послужило мотивом для этого сообщения в блоге. Похоже, что Джихан был чрезвычайно зол и быстро разработал план, призванный расстроить своих противников, но совсем не продумал его. Разумеется, Джихану следовало объявить, что в случае UASF он продолжит работу над цепью с исходными правилами, а тем временем организоваь встречный UASF. Однако это привело бы к тому, что ему пришлось бы поддерживать ненужные ему блоки по 1 Мб, поэтому, возможно, он чувствовал, что у него нет особого выбора.

В Драконьем Логове с восторгом отметили пост в блоге Bitmain, так как он почти гарантировал им полную победу. Однако некоторые выбрали более осторожный тон: «Не думайте, что Джихан сделает что-то глупое только потому, что он это обещает». Мне показалось, что эта более осторожная позиция была правильным подходом. По мере приближения 1 августа Джихан, скорее всего, поймёт, что его план не имеет смысла, и переключится на что-то более эффективное.

По мере приближения дедлайна UASF игроки лагеря крупных блоков оказывались вне игры, поскольку не знали, как эффективно реагировать. Казалось, что у них не осталось жизнеспособных вариантов. Похоже, они наконец-то были близки к унизительному поражению, и понимали это. Им нужно было какое-то действие по спасению лица.

Глава 18. Нью-Йоркское соглашение

22 мая 2017 года в Нью-Йорке состоялась встреча, организованная Барри Силбертом из Digital Currency Group (DCG), направленная на разрешение конфликта. На встрече присутствовал Джихан Ву. В результате было достигнуто еще одно соглашение. Был опубликован следующий документ, названный Нью-Йоркским соглашением (NYA). Он гласил:

Мы согласны немедленно поддержать следующие параллельные обновления протокола Биткоин, которые будут внедрены одновременно и основаны на первоначальном предложении Segwit2Mb:

Активировать Segregated Witness при 80% пороге, подавая сигнал в четвертом бите

Активировать хардфорк на 2 Мб в течение шести месяцев.

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

Мы приглашаем все компании, майнеров, разработчиков и пользователей присоединиться к нам и помочь подготовить Биткоин к будущему развитию.

Группа компаний, поставивших свои подписи, представляет критическую массу экосистемы Биткоина. По состоянию на 25 мая в этой группе представлены:

58 компаний, расположенных в 22 странах

83.28% хэшрейта сети

5.1 миллиарда долларов США ежемесячного объема ончейн-транзакций

20.5 млн. биткоин-кошельков

Помимо этого, по состоянию на 24 мая, следующие компании обязались предоставить техническую и инженерную поддержку для тестирования и поддержки программного обеспечения для обновления, а также помочь компаниям в подготовке к обновлению:

Abra | BitClub Network | Bitcoin.Com | BitFury | BitGo | Bitmain | BitPay | Blockchain | Bloq | BTCC | Circle | Ledger | RSK Labs | Xapo.

Если вы хотите предоставить техническую и инженерную поддержку от имени своей команды, пожалуйста, сообщите нам об этом, и мы включим вас в вышеупомянутый список.

Соглашение было основано на более раннем предложении, поступившем в марте 2017 года от разработчика и исследователя протокола Биткоин Серджио Лернера. Идея заключалась в том, чтобы провести как SegWit, так и хардфорк, увеличив размер основной части блока, не относящейся к SegWit, до 2 МБ. В разговоре с окружением Барри, было сказано, что это компромисс, поскольку одни хотели SegWit, а другие — хардфорк, поэтому теперь каждый мог получить желаемое. Мне объяснили, что Барри был обеспокоен тем, что сеть зашла в тупик, и что чтобы сдвинуться с мертвой точки нужно что-то предпринять. Само соглашение, как утверждается, было составлено сотрудницей DCG Мельтдем Демирорс. Этот документ дал Джихану возможность сохранить лицо — методологию борьбы с потенциальной угрозой UASF, как и соглашение по Litecoin месяцем ранее.

Количество и значимость подписавших соглашение были очень впечатляющими. Всего было 58 подписантов, включая Гэвина Андресена, Роджера Вера из Bitcoin.com, Джихана Ву из Bitmain и Брайана Армстронга из Coinbase. Хотя многие (33 из подписавших) были портфельными компаниями DCG, широкая поддержка была оказана и за пределами этой группы, со стороны многих бирж и майнинг-пулов. Таким образом, многие наблюдатели в этой сфере пришли к выводу, что проблема размера блоков наконец-то решена, и успешная реализация соглашения практически неизбежна. Это соглашение стало значительным переворотом и достижением для крупноблочников в то самое время, когда они были слабы. Это выглядело как важный поворотный момент в конфликте. Крупноблочники были почти уничтожены, но теперь они снова оказались на высоте.

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

Что касается мелкоблочников, то они не были представлены в Нью-Йорке, и их мнение никак не отражалось в соглашении. В нем не было предложений с двойным смыслом или противоречивых утверждений; похоже, что оно было написано исключительно стороной крупноблочников. Примечательно, что в соглашении не упоминалась идея о том, что биткоин-пользователи контролируют протокол или что перед изменением правил протокола необходима поддержка пользователей. В NYA даже не прозвучала идея о том, что пользователи должны иметь право голоса. Соглашение было представлено, будто крупные корпорации навязывают правила пользователям по принципу "сверху вниз". Если бы Биткоин работал таким образом, это подорвало бы основное ценностное предложение валюты. Стороны, подписавшие NYA, не считали важным лоббировать и убеждать пользователей перед активацией форка. Наоборот, это выглядело как угроза или ультиматум.

Это не только подрывало основное ценностное предложение Биткоина, но и было плохой тактикой. Пользователи хотят чувствовать себя хозяевами положения и не любят, когда им указывают что делать. Поэтому NYA напоминала повторение Bitcoin XT, Bitcoin Classic и Bitcoin Unlimited. Крупноблочники снова совершили те же ошибки, только на этот раз обзавелись гораздо большей поддержкой индустрии. Однако следует отметить, что несколько очень значимых и становящихся все более известными представителей индустрии не подписали NYA. Наиболее примечательным было отсутствие поддержки Bitfinex, возможно, самой экономически значимой компании на тот момент. Отсутствие Local Bitcoins (крупнейшей P2P-биржи на тот момент), Poloniex, BitMEX и майнинг-пула Slush также не осталось незамеченным.

Самым простым разделом соглашения для сторонников мелких блоков был раздел "Активировать Segregated Witness при 80-процентном пороге, сигнализируя в бите 4". Это не имело смысла, поскольку SegWit активируется в бите 1, а не в бите 4. Майнеры могли сигнализировать, в четвертом бите, однако это не приводило к активации SegWit. По всей видимости, судя по разговору с кем-то из присутствующих на встрече, Джихан настаивал на этом моменте, возможно, потому что на него месяцами оказывали давление, требуя отметить поддержку SegWit в бите 1, и он не хотел уступать требованиям мелкоблочников. Однако активировать SegWit в бите 4 было невозможно, и поэтому было не совсем понятно, что произойдет.

Почти сразу после публикации NYA, 22 мая 2017 года, разработчик программного обеспечения для Биткоина и майнинга Джеймс Хиллард предложил решение этой дилеммы с битом 4, названное BIP 91:

Я хотел бы предложить реализацию, которая выполнит первую часть предложения Барри Силберта независимо от второй:

"Активировать SegWit при 80% пороге, подавая сигнал в бите 4".

Цель состоит в том, чтобы минимизировать риск раскола цепочки и нарушения работы сети, максимизируя при этом обратную совместимость и обеспечивая быструю активацию Segwit на 80% пороге в бите 4.

Активируя Segwit сразу же и отдельно от любого хардфорка, мы сможем быстро масштабироваться без риска поспешного объединения Segwit с хардфорком, которое почти наверняка вызовет широкомасштабные проблемы.

Джеймс предложил, чтобы SegWit активировался в два этапа, через два софтфорка. Первый софтфорк будет активирован с использованием 80-процентного порога сигнализации майнеров, упомянутого в NYA, и сделает сигнализацию для SegWit в бите 1 обязательной. Затем активируется последний софтфорк, сам SegWit. Это также делало обновление совместимым с BIP 148 (UASF), так как он также делал обязательной сигнализацию SegWit в бите 1. На самом деле, BIP 91 был написан совместно Джеймсом Хиллардом и Shaolinfry, автором BIP 148. В конечном итоге был выпущен клиент под названием Segsignal, который представлял собой Bitcoin Core, пропатченный для поддержки BIP 91. BIP 91 был довольно агрессивным и быстрым механизмом обновления, который активировался, если 269 блоков сигнализировали о поддержке в 336 окнах, что соответствует 80% порогу.

Что касается клиента, полностью реализующего NYA, то быстро выяснилось, что он будет называться BTC1, а ведущим разработчиком станет Джефф Гарзик, который предложил Сатоши увеличить лимит размера блока через несколько недель после того, как он был впервые введен в 2010 году. Джеффа попросили сделать BTC1 совместимым с BIP 91 и активировать SegWit в бите 1, аргументируя это тем, что с технической точки зрения активация в бите 4 — это нонсенс. Первоначально Джефф отказался, хотя его аргументация показалась несколько запутанной.

29 мая произошла утечка электронного письма от генерального директора BitGo Майка Белше. В нем содержался план и сроки проведения NYA. Следует отметить, что, хотя BitGo была указана в NYA как одна из компаний, предоставляющих техническую поддержку для обновления, сама она не подписывала соглашение. В самом низу соглашения даже было указано: "Примечание: BitGo была ошибочно включена в этот первоначально опубликованный список. С тех пор эта ошибка была исправлена". Из разговора с некоторыми сотрудниками BitGo я понял, что они просили исключить компанию из списка, считая, что кастодиан и платежный процессор должен сохранять нейтралитет и поддерживать обе противоборствующие стороны. В любом случае, в просочившемся электронном письме содержался предложенный график, включающий выпуск альфа-версии программного обеспечения, запуск тестовой сети и начало сигнализирования к 21 июля.

Многие члены Биткоин-сообщества были в ярости, узнав, что разработка и планы по созданию клиента NYA велись в тайне, а не в публичном списке рассылки. Биткоин должен был быть открытой системой, подлежащей открытой проверке. Секретный список рассылки, управляющий процессом изменения консенсуса, считался противоречащим Биткоину. Однако причина, по которой это было сделано втайне, была ясна: если бы это было сделано публично, мелкоблочники, несомненно, нашли бы дыры в подходе оппонентов, что заставило бы их предложение выглядеть слабым. SegWit был чрезвычайно сложен, а альтернативная группа пыталась внедрить его, имея весьма ограниченное представление об обновлении. Оглядываясь назад, можно сказать, что проведение большей части процесса за закрытыми дверями было неверным решением, поскольку отсутствие тщательной проверки, как оказалось, привело к большему количеству ошибок.

В конце мая 2017 года давление на Джеффа, вызванное несовместимой активацией SegWit в бите 4, было огромным. Мелкоблочники и участники "Логова драконов" поняли, что это серьезный недостаток клиента BTC1, и если они убедят Джеффа внести это изменение и принять BIP 91, SegWit наконец-то сможет активироваться в Биткоине. После того как активация произойдет, сторонники мелких блоков смогут работать над остановкой второй части NYA — хардфорка. Социальные сети были полны комментариев о том, насколько деструктивно и несговорчиво ведет себя Джефф, отказываясь принять BIP 91, а его почтовый ящик, предположительно, был полон аналогичных требований и обвинений со стороны всего технического сообщества.

Наконец, 5 июня 2017 года Джефф не выдержал давления и включил BIP 91 в свой клиент BTC1. Теперь мелкоблочники добились своего; клиент NYA теперь реализовывал UASF. Внутри "Логова драконов" царило ликование.

На тот момент логика активации хардфорка также изменилась; теперь хардфорк в клиенте BTC1 был запланирован к активации через три месяца после активации SegWit (если, конечно, SegWit когда-либо будет активирован), а не через шесть месяцев. Однако я не смог понять, как в коде реализована логика активации, а также вокруг специфики сроков активации хардфорка возникла значительная путаница. Этот трехмесячный период был вдвое меньше шестимесячного периода, упомянутого в NYA, который был первоначально реализован в ранних версиях клиента BTC1. Из разговора с некоторыми инсайдерами BTC1 я узнал, что причина этого изменения, очевидно, заключалась в том, чтобы дать людям меньше времени на отказ от хардфорка после активации SegWit, что помогло бы гарантировать, что хардфорк состоится. Мне показалось, что это неправильный подход, который может сделать фазу хардфорка более трудновыполнимой, поскольку теперь у сторонников хардфорка будет меньше времени, чтобы убедить пользователей перейти на новую версию (три месяца вместо шести).

Что касается клиента BTC1, то он оказался полон ошибок даже после внедрения BIP 91. Возможно, Джефф не понимал SegWit и допустил некоторые ошибки с одноранговым уровнем SegWit, что потребовало дополнительных усилий для исправления. Помимо этого, как кто-то указал в электронном письме от 14 июня, клиент BTC1 даже не реализовал увеличение лимита размера блоков в хардфорке. Клиент сохранил ограничение веса в четыре миллиона единиц, что предотвратило бы хардфорк и гарантировало, что лимит размера блока никогда не увеличится. Похоже, Джефф так и не понял нового ограничения SegWit. Только после того, как на это было указано, после выпуска первой версии BTC1, он действительно реализовал в коде хардфорк. Сторонникам NYA оказалось слишком сложно удвоить то, чего они не понимали.

На Джеффа также оказывалось значительное давление с целью добавить защиту от атаки повтора в клиент BTC1, однако он воспротивился этому. Идея заключалась не в том, что BTC1 создаст новую монету, а в том, что после обновления должна была остаться только одна монета, а цепочка первоначальных правил должна была каким-то образом отмереть из-за подавляющей поддержки новой цепочки. Раскол Ethereum в 2016 году был уже давней историей, и большинство крупноблочников, казалось, забыли о нем. Поэтому, по мнению сторонников NYA, защита от атаки повтора была не нужна. Однако это было повторением тех же аргументов, которые ходили по кругу годами; некоторые люди считали, что первоначальная цепочка правил может преобладать, и поэтому защита была необходима. 14 июня Серджио Лернер, на чьем предложении основывалась NYA, поддержал защиту от атаки повтора. К этому моменту Джефф находился под огромным давлением со всех сторон:

Есть две группы людей, которые имеют два разных видения Биткоина. Ни одно из этих видений не является "неверным". Одна группа ценит больше такие вещи, как децентрализация, отсутствие правительства, цензуроустойчивость, анонимность. Эта группа считает, что Биткоин изменит наш мир через 20-30 лет. Чтобы достичь этой цели, крайне важно придерживаться этих ценностей. Спешить некуда. Для другой группы важнее такие вещи, как достижение миллиарда пользователей в ближайшие 5 лет или обслуживание реальных пользователей, не имеющих доступа к банковской системе сегодня, даже если это потребует политического соглашения сейчас. Оба видения имеют свои достоинства. Но они несовместимы. Защита от атаки повтора дает шанс каждому из этих "биткоинеров" воплотить свое видение в жизнь. Оба видения могут сосуществовать.(Sic)

16 июня 2017 года майнеры провели очередную встречу за круглым столом. На нем присутствовали почти все крупные майнинг-пулы. На встрече майнеры согласились поддержать NYA.

Первый релиз BTC1 не имел защиты от уничтожения, а, как уже объяснялось ранее в этой книге, продвигать спорный хардфорк без такой защиты — все равно что идти на войну, намертво связав руки за спиной. К маю 2017 года, после почти двух лет борьбы за хардфорки, Джихан Ву наконец осознал это и стал настаивать на защите от уничтожения. Джихан поддержал эту меру еще 12 мая 2017 года:

Поскольку это очень значительное изменение правил консенсуса, которое обсуждалось 4 года, мы можем добавить еще одно правило консенсуса: только на высоте, при которой будет активирован форк размер блока должен быть больше 1 000 000 байт. Это очень простой и понятный способ защиты от реорганизации цепи.

Когда давление на Джеффа усилилось, и стало ясно, что хардфорк NYA может оказаться более спорным, чем изначально предполагали его организаторы, он согласился добавить защиту от уничтожения. Джихан убеждал Джеффа добавить эту функцию в BTC1, и 20 июня Джефф согласился. Вместо того чтобы просто разрешить блокам быть больше 1 МБ после хардфорка, BTC1 теперь требует, чтобы первый блок был больше 1 МБ, что является основной формой защиты от уничтожения.

По просьбе Bitmain и BU реализовать функцию Anti-Wipeout; я и другие члены WG согласились по более широкой причине создания более предсказуемого обновления сети.

...

Традиционная последовательность хардфорка такова, что сетевой форк происходит *во время или после* изменения правила хардфорка, когда майнер создает первый блок размером более 1М. Предлагается ужесточить этот порядок, чтобы блок хардфорка *должен был быть* больше 1М в блоке, когда происходит изменение правила. Это сделает событие более предсказуемым, гарантируя, что форк произойдет именно в блоке X.

Эта функция была реализована плохо, и 11 июля 2017 года тестовая сеть BTC1 разделилась на две части. Оказалось, что кто-то майнил блоки тестнета в 50 раз быстрее, чем ожидалось, активировав хардфорк раньше времени. Затем из-за ошибки в реализации правила "больше 1 МБ" новые версии BTC1, которые требовали, чтобы первый блок был больше 1 МБ, разделились на цепочку, отличную от старой версии клиента BTC1. Это произошло потому, что первый блок не превышал 1 МБ, так как транзакций было недостаточно. Эта ошибка и разделение были снова использованы сторонниками мелких блоков, чтобы показать, что BTC1 был слабым и нестабильным клиентом. Команда BTC1 защищалась, указывая на то, что именно для этого и был создан тестнет. Однако это проиллюстрировало один момент: BTC1 пытался изменить правила консенсуса Биткоина в спешке и произвольно, и за это короткое время выпустил несколько клиентов, которые уже были несовместимы между собой из-за ошибок и других изменений, внесенных в последнюю минуту.

К началу июля около 80-95 процентов майнеров (по хэш-мощности) включали буквы "NYA" в добываемые ими блоки, и NYA выглядела так, будто она находится на лидирующей позиции. Однако почти никто из пользователей не использовал BTC1 или даже Segnet (только первую часть NYA); внедрение было практически нулевым. В то же время крупные биржи, с которыми я общался, не использовали ни BTC1, ни Segnet, ни клиент BIP 148; они использовали только Bitcoin Core. Поэтому перспективы выглядели весьма неопределенными.

Более того, майнеры и майнинг-пулы, с которыми я общался, также не запускали BTC1, несмотря на сигнализирование NYA. В середине июля 2017 года я разговаривал с сотрудниками двух майнинг-пулов, которые подписали и NYA, и новое соглашение, принятое за круглым столом майнеров в июне 2017 года. Поясню, если майнер работает на BTC1, то по умолчанию в этот момент он должен установить флаг как в бите 4, так и в бите 1; как только активируется первый софтфорк, бит 1 становится обязательным и активирует SegWit. Эти майнеры сказали мне, что они не доверяют клиенту BTC1 и поэтому запускают Segnet или Bitcoin Core. Те, кто использует Bitcoin Core, вручную включали флаг NYA и в бит 4 и/или в бит 1. Мне сообщили, что это совершенно секретно и что со мной поделились этим конфиденциально; публично же это было жизненно важно для демонстрации поддержки BTC1 и NYA, объяснили майнеры.

20 июля Джихан написал в Твиттере, что Bitmain запускает BTC1; правда, к этому моменту он также сообщил, что Bitmain изменила программное обеспечение, убрав флаг из бита 1. Джихан, по-видимому, стремился продержаться до последнего возможного момента перед активацией SegWit, чтобы он не активировался до того, как голосование за него станет обязательным.

Bitmain запускает программное обеспечение BTC1, но мы модифицируем его, чтобы на данном этапе голосовать только в бите 4.

С флагами был явный беспорядок, майнеры ставили флаги повсюду, вводя пользователей в заблуждение относительно того, что они на самом деле запускают. Например, пулы сигнализировали о поддержке NYA, но не запускали BTC1. Bitmain также был одним из ярчайших нарушителей, когда дело доходило до ложных сигналов. Например, Antpool (майнинговый пул Bitmain) фактически сделал отметку в бите 4 еще до выхода альфа-версии BTC1, указывая на то, что они используют клиент, которого еще не существует. Даже в июле 2017 года Bitmain все еще сигнализировал о поддержке Bitcoin Unlimited, хотя эта нода еще не реализовала BTC1 или SegWit, и поэтому их сигналы были противоречивыми.

Через несколько дней, ближе к концу июля 2017 года, Bitmain наконец-то подал сигнал в бите 1, всего за несколько дней до дедлайна. Мелкоблочники были в экстазе. После изнурительной кампании, спустя более чем 10 месяцев после выпуска SegWit, крупнейшая майнинг-компания наконец-то отметила его поддержку. Большинство мелкоблочников считали, что этого никогда не произойдет. Теперь активация SegWit наконец-то стала вероятной.

После этого 80-процентный порог для BIP 91 был наконец-то достигнут, и обновление было зафиксировано 21 июля 2017 года. Согласно этому новому временному правилу софтфорка, майнеры должны были отметить поддержку SegWit с 26 июля 2017 года. По мере приближения этой даты некоторые биткоинеры были обеспокоены повышенным риском. Если не все майнеры выполнят требование, с сетью могут возникнуть проблемы. Однако день настал, и все майнеры выполнили требования, сигнализируя в бите 1. Раскола цепи не произошло, и SegWit был окончательно зафиксирован, а затем активирован в сети Биткоин. При таком безумном беспорядке и сложности взаимосвязанных сроков и механизмов активации было практически невозможно уследить за происходящим. Казалось, что каждые несколько дней появлялся какой-то механизм активации или дедлайн. Если вы дочитали эту книгу до конца, вам может быть очевидно, что я был, мягко говоря, одержим этим конфликтом; однако на данном этапе даже мне было трудно следить за происходящим.

BIP 91 активировался непосредственно перед крайним сроком BIP 148 - 1 августа 2017 года, оставив лишь небольшой пятидневный промежуток между тем, когда BIP 91 сделал сигнализирование в поддержку SegWit обязательным, и тем, когда UASF должен был сделать то же самое. Такая близость указывала на то, что угроза UASF увенчался успехом. Принятие UASF было чудесным достижением. Современная победа Давида над Голиафом. UASF никогда не был реализован в релизе Bitcoin Core, и некоторые из наиболее влиятельных разработчиков Bitcoin Core открыто выступали против него.

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

Обновление BIP 91 было далеко не идеальным с точки зрения мелкоблочников; оно было слишком поспешным, короткие окна голосования в 336 блока были слишком малы (всего 2,33 дня), обязательное сигнализирование майнеров было рискованным и, что немаловажно, только майнеры работали с BIP 91, что делало обновление невероятно опасным. Это могло привести к тому, что майнеры и пользователи оказались бы на разных цепочках. Несмотря на это, каким бы несовершенным и опасным ни был процесс, мелкоблочники добились своего: SegWit активировался, и UASF, похоже, принудил Джихана сдаться. Теперь они могли сосредоточиться на том, чтобы остановить вторую фазу NYA — хардфорк.

Крупноблочники были в ярости от такого развития событий. Один из видных сторонников крупных блоков лично сказал мне, что "дурацкие кепки UASF сработали" и заставили майнеров активировать SegWit. Его особенно расстроил тот факт, что все это произошло до 1 августа; если бы это случилось после этой даты, версия крупноблочников о том, что NYA, а не UASF заставила активировать SegWit, была бы более убедительной. Крупноблочники чувствовали, что наиболее экстремальные участники движения мелкоблочников взяли Биткоин под контроль и активировали то, что крайне не нравилось сторонникам крупных блоков. На этом этапе они, похоже, разочаровались в Биткоине, и их даже не особенно беспокоила вторая фаза NYA.

Мне показалось, что, возможно, Джихан упустил возможность провернуть какой-то трюк. Он мог бы подождать, пока пройдет крайний срок 1 августа, а затем активировать SegWit. Это еще больше затруднило бы поддержку цепочки BIP 148 мелкоблочниками, поскольку SegWit все равно активировался бы на другой цепочке. Тогда Джихан мог бы утверждать, что он победил UASF. Однако Джихан решил этого не делать, и причина, по-видимому, заключалась в том, что UASF сработал. Джихан испугался раскола цепи, возможно, переоценил силу своих противников и поддался давлению.

После активации SegWit мелкоблочники получили значительную свободу для продвижения своей цепочки Биткоина вперед. Однако оставалась проблема, связанная с тем, что многие крупные компании в этой сфере, в частности американские и финансируемые венчурными инвесторами, взяли на себя обязательства по увеличению размера блока через хардфорк. Они не хотели, чтобы это была новая, альтернативная монета; они хотели, чтобы это был Биткоин. Заставить эти компании отступить было крайне сложно. Поэтому война за размер блока продолжалась. Хардфорк должен был состояться всего через три месяца, и поле битвы накалялось.

Глава 19. Bitcoin Cash

30 июня 2017 года в Арнеме (Нидерланды) прошла конференция крупноблочников под названием «The Future of Bitcoin Conference 2017». Среди спикеров были Джихан Ву, Эндрю Стоун из Bitcoin Unlimited, Крейг Райт (который выступил с длинной и бессвязной речью) и малоизвестный разработчик по имени Амори Сечет. Амори выступил с речью, озаглавленной «Назад к основам», в которой он представил нечто, охарактеризованное как «небольшой проект, над которым я работал». Он обрисовал планы относительно нового хардфорка с увеличением лимита размера блока и дополнительной защитой от атаки повтора, чтобы позволить тем, кто не хочет увеличения размера блока, продолжить свою старую цепочку. Амори анонсировал новый клиент, Bitcoin ABC, заявив, что это реализация плана, о котором Джихан объявил несколько недель назад - UAHF.

Примерно 12 июля 2017 года, всего за несколько недель до дедлайна UASF, назначенного на 1 августа 2017 года, был выпущен новый клиент Bitcoin ABC. В отличие от предыдущих хардфорк-клиентов, Bitcoin XT, Bitcoin Classic, Bitcoin Unlimited, а теперь и BTC1, в нём был установлен фиксированный день активации 1 августа 2017 года, а сигнализация майнеров не предполагалась. Совпадение с дедлайном UASF было намеренным. Новая цепь предполагала защиту от стирания, что обеспечивало чистое разделение цепи, и отличалась увеличенным лимитом размера блока, достигаемым через хардфорк. Новая альтернативная монета также должна была исключать SegWit, поскольку тот был крайне непопулярен среди крупноблочников, хотя на самом деле, если заглянуть под капот, Bitcoin ABC содержал большую часть обновления SegWit, включая новый алгоритм сбора транзакций, который исправил отдельные связанные с транзакциями ошибки. Однако было похоже, что в этой новой цепи всё ещё оставался возможен скрытый ASICBoost.

Наконец-то крупноблочники могли получить то, что они хотели: цепь блоков с большим лимитом размера, без использования клиентов, выпущенных Bitcoin Core, и без негибкого и осторожного подхода к изменению правил консенсуса, который крупноблочники ненавидели больше всего на свете. 17 июля 2017 года ViaBTC - который теперь был широко известен как прокси-пул Джихана, предназначенный для тестирования новых политик до того, как Bitmain сама начнёт их внедрять - заявил, что запустит новый майнинг-пул, который будет добывать эту монету. Они назвали монету Bitcoin Cash с тикером BCC. Этот тикер в конечном итоге изменится на BCH.

Монету, которая образуется после возможного разделения цепи в результате активации UAHF, мы обозначим токеном «Bitcoin Cash» (BCC)

Хотя Bitcoin Cash в сообществе крупных блоков поддерживали многие, большинство рассматривало его как резервный план или план на случай непредвиденных обстоятельств, который можно использовать в случае неудачи второго этапа NYA. 25 июля 2017 года генеральный директор Bitcoin.com Роджер Вер заявил, что:

Если этап "2X" в плане "Segwit2x" провалится, bitcoin.com немедленно переведёт все ресурсы компании исключительно на поддержку Bitcoin Cash.

23 июля 2017 года, когда до запуска Bitcoin Cash оставалась всего одна неделя, соучредитель одной из крупнейших в то время криптовалютных бирж Бен Дело поднял вопрос на Bitcoin ABC GitHub. Бен попросил об обязательной защите от повтора, вместо реализованной опциональной. Беспокойство Бена объяснялось его ролью доверенного лица для своих клиентов и тем, что он может либо потерять их Bitcoin Cash, либо ему придется потратить значительные ресурсы, чтобы предотвратить уязвимость своей платформы для атак повтора. Хотя некоторые сомневались, соответствует ли это духу первоначального плана Джихана, а обязательная защита от повторного воспроизведения была любимым требованием мелкоблочников, Амори, который стремился угодить биржам и убедить их поддерживать новый токен, выполнил просьбу Бена. За шесть дней до создания монеты в Bitcoin ABC была добавлена ​​обязательная двусторонняя защита от повтора. Таким образом, мы, наконец, должны были получить чистое разделение цепи, и стороны в этой войне могли мирно расстаться.

Поскольку ожидалось, что Bitcoin Cash будет иметь блокчейн с миноритарным хешрейтом, одна из проблем заключалась в том, что на старте блоки будут находиться слишком медленно, и двухнедельный период корректировки сложности, характерный для Биткоина, в данном случае растянется слишком надолго. Поэтому Bitcoin Cash снизил требования к сложности, что дало ещё одно непреднамеренное преимущество: это означало, что заголовки блоков Bitcoin Cash стали несовместимы с заголовками Bitcoin, и поэтому даже лёгкие клиенты и мобильные кошельки Биткоина смогли понимать, что не нужно ориентироваться на цепь Bitcoin Cash. Это была ещё одна ключевая функция безопасности, которую поддерживали в лагере малых блоков. Однако позже выяснилось, что новый алгоритм регулировки сложности в корне ошибочен, так как он побуждал майнеров покидать сеть, а затем возвращаться, как только сложность изменится и повысится прибыльность. Это привело к тому, что пропускная способность сети Bitcoin Cash значительно колебалась, что оказалось серьёзным недостатком и повлияло на надёжность Bitcoin Cash как платежной сети. Это также привело к более быстрой добыче блоков, что в конечном итоге обеспечило Bitcoin Cash опережение Биткоина примерно на 10 000 блоков по высоте блокчейна и, соответственно, более раннюю добычу монет за счёт субсидии при нахождении соответствующих блоков. Это была грубая ошибка Амори. Он должен был просто сделать разовую корректировку сложности в сторону уменьшения сразу после запуска Bitcoin Cash, вместо того, чтобы создавать совершенно новый алгоритм. Позднее алгоритм был значительно улучшен, однако на момент написания книги эта проблема ещё не была полностью решена.

По мере приближения вторника, 1 августа 2017 года, ажиотаж обеих воюющих сторон нарастал: этот день должен был стать поистине монументальным днем в блокчейн-пространстве. Последний общий для Bitcoin и Bitcoin Cash блок находился на высоте 478559 и был добыт в 13:16 по всемирному координированному времени 1 августа 2017 года майнинг-пулом BTC.com. Следующий биткоин-блок был добыт семь минут спустя пулом ViaBTC. Первый блок Bitcoin Cash никто не мог добыть ещё пять часов или около того, пока этого не сделал также ViaBTC. Сообщение внутри транзакции coinbase гласило: «Welcome to the world, Shuya Yang!» а размер блока составлял 1,9 Мб.

Монеты наконец разделились, и теперь каждая сторона могла следовать своему собственному видению. Следующий блок Bitcoin Cash также был добыт ViaBTC. Третий блок Bitcoin Cash, добытый поздно ночью по гонконгскому времени, был произведён неизвестным майнером, и на этот раз в сообщении coinbase была фраза: «Genesis Block 269-273 Hennessy Road Wan Chai Hong Kong».

Когда я пришел на работу рано утром на следующий день, я заметил, что подавляющее большинство блоков Bitcoin Cash содержало то же загадочное сообщение. Я быстро нашел адрес в Google Maps, и он оказался довольно близко к тому месту, где я жил. Как и любой настоящий фанатик криптовалюты, я немедленно встал из-за стола и направился туда. Примерно через 15 минут я прибыл на место и не увидел ничего примечательного. Ещё через пять минут, осмотревшись, я заметил Бена Дело, владельца биржи, настаивавшего на обязательной защите от повтора, который, похоже, тоже расследовал ситуацию, бродя взад и вперед по улице. Из разговора с ним я понял, что он был точно так же, как и я, глубоко сбит с толку. В конце концов мы обнаружили открытую дверь и за ней лестницу наверх. Мы стучали и кричали "есть кто-нибудь?", но ответа не было. Подумав, что это какая-то загадочная биткоин-игра, мы без приглашения поднялись по лестнице и обнаружили что-то, похожее на строительную площадку. Примерно через пять минут исследования мы наконец нашли кого-то, кто мог бы объяснить нам ситуацию. Здание должно было стать местом нового биткоин-пространства в Гонконге, для стартапов и собраний сообщества. Сообщение в блоках Bitcoin Cash было просто маркетингом, и у владельца организации, по имени Питер Нг, также была майнинговая ферма, которую он и выделил для Bitcoin Cash, чтобы помочь продвигать своё новое заведение. Однако сайт ещё не был готов, и мы приехали слишком рано. Разочарованные, что не нашли волшебный камень Bitcoin Cash, мы медленно ушли и каждый вернулся к работе.

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

В лагере малых блоков главной стратегией, похоже, было высмеивать новую монету как глупую идею. Некоторые мелкоблочники стали в порядке троллинга продвигать вместо Bitcoin Cash слово «BCash», удалив слово Bitcoin из названия и еще больше отделив его от Bitcoin. Похоже, это нашло отклик в душе некоторых крупноблочников, в частности Роджера Вера, который только поощрял дальнейшее использование этого имени. У разделения были и финансовый аспект: каждый держатель биткоинов до разделения теперь имел равное количество биткоинов и биткоин-кэша. Противоборствующие стороны могли продать монету, которая им не нравилась, и накопить больше той монеты, что была им по нраву. Мелкоблочники были уверены, что биткоин-кэш будет торговаться по низкой цене, возможно, около двух процентов от цены биткоина, показывая фундаментальные недостатки концепции крупных блоков, отсутствие спроса со стороны инвесторов и технические ошибки, которые обязательно должны были совершить крупноблочники. Некоторые мелкоблочники сразу заявили, что продадут свои BCash, снизив цену до двух процентов.

В частном порядке, глубоко внутри сообщества малых блоков, подход к Bitcoin Cash среди некоторых крупных держателей монет сильно отличался демонстрируемых на публике насмешек. Подход был куда тоньше и преследовал определённую тактику. Я помню, как в то время разговаривал с уважаемым членом сообщества малых блоков, владеющим большим количеством биткоинов. В частном порядке он сказал мне, что очень хотел бы не продавать свой биткоин-кэш слишком быстро. Он объяснил, что «жизненно важно обеспечить успех Bitcoin Cash», добавив, что, если продавать слишком много и слишком быстро, цена упадет, и крупноблочники растеряют оптимизм в отношении своей новой монеты. Большинство мелкоблочников хотели, чтобы крупноблочники покинули Биткоин и перестали создавать проблемы, продвигая опасные хардфорки, выступая за агрессивное увеличение лимита размера блока и откладывая важные обновления, такие как SegWit. Поэтому считалось важным обеспечить Bitcoin Cash достаточный «импульс для выхода», чтобы убедиться, что некоторые из крупноблочников ушли по-хорошему. Похоже, крупноблочники думали, что их оппоненты возненавидят идею Bitcoin Cash, предпочитая держать их в ловушке внутри Биткоина. Однако это оказалось неправильным представлением, поскольку почти все мелоблочники, с которыми я разговаривал, были рады их уходу.

Bitcoin Cash запустился так быстро, всего за месяц с момента зарождения идеи, что Bitfinex даже не успел запустить фьючерсный рынок. Монета просто была запущена. Торговля токеном началась почти сразу на нескольких биржах, таких как Kraken, при этом цена Bitcoin Cash составляла от 10 до 12 процентов от цены Bitcoin. Однако внести туда Bitcoin Cash было нельзя, поскольку оставалось неясным, был ли майнинг достаточно безопасным, чтобы биржи могли принимать депозиты. Таким образом, трейдеры могли торговать только Bitcoin Cash, выделенным на их счета по факту разделения. Например, если у пользователя был один биткоин на бирже Kraken до разделения, ему были выделены один биткоин и один биткоин-кэш. Запуск Bitcoin Cash вызвал серьезные проблемы для многих бирж, которые не могли удовлетворить потребности пользователей, желающих им торговать. Веб-сайты биржи перешли в автономный режим, и разрыв между отправкой и исполнением ордера стал чрезвычайно большим. Kraken, в частности, очень плохо справилась с ситуацией, и некоторые пользователи сообщали, что для исполнения рыночных ордеров требовались буквально дни.

Именно в этот момент ситуация немного усложнилась. Существовали не только спотовые биржи, но и платформы с кредитным плечом, использующие маржинальные и долговые рынки биткойнов, что создавало трудный выбор для бирж. Во время хардфорка Bitcoin Cash у разных финансовых платформ была разная политика. Например, платформа деривативов BitMEX по сути игнорировала Bitcoin Cash, а цена фьючерсов ориентировалась только на биткоины. Однако Kraken, скажем, поддерживала Bitcoin Cash таким образом, что тем, у кого были длинные маржинальные позиции в биткоине, также доставался биткоин-кэш. Таким образом, вы могли ввести на биржу один биткоин, открыть длинную позицию с трёхкратной маржой, а после разделения получить четыре монеты биткоин-кэша. И что особенно критично, на Kraken, если вы шортили биткоин во время форка, тогда вы автоматически оказывались в шорте и по биткоин-кэшу.

Разница правил на разных биржах могла быть использована, поскольку она обеспечивали асимметрию, которая теоретически могла позволить получить бесплатный биткоин-кэш. Например, продав биткойн на BitMEX и открыв длинную позицию на Kraken перед разделением. Bitfinex, крупнейшая в то время биржа, имела противоречия даже в собственных правилах. Если бы перед разделением вы ссудили свои биткоины на Bitfinex, вы получили бы право на биткоин-кэш после разделения. Однако, если бы вы перед разделением взяли биткоины в долг, после разделения у вас не появлялось долга по биткоин-кэшу. Это привело к дефициту на бирже и коэффициенту распределения Bitcoin Cash 0,85. Если на момент разделения у вас был на Bitfinex один биткоин, после разделения вам причиталось только 0,85 биткоин-кэша. Между тем, те кто воспользовался этой непоследовательностью в политике Bitfinex, получили солидную прибыль. Можно подумать, что эта политика неуместна, однако в то время всё это было настолько в новинку, что было трудно осмыслить происходящее и сформулировать корректные правила. Обоснованием этой политики было то, что нагрузка на клиентов, которые взяли биткоин в долг для покупки на бирже биткоин-кэша, могла оказаться слишком высокой, особенно если ликвидность Bitcoin Cash будет низкой.

После недели волатильной торговли 6 августа 2017 года основные биржи наконец начали принимать депозиты в биткоин-кэше. Первой такой биржей стала Bittrex. До этого момента у мелкоблочников не было возможности продать свой биткоин-кэш, если только они не хранили свои биткоины перед форком на бирже. Очень немногие биткоинеры любили так поступать; они предпочитали избегать риска контрагента и держать свои приватные ключи при себе. На этом этапе мелкоблочники могли, наконец, отправить свой биткоин-кэш на биржу и продать его. Многие из них хотели продать свои запасы биткоин-кэша как можно скорее, поскольку считали, что они переоценены и что цена упадет, как только и другие получат возможность продать. Первым делом нужно было потратить биткоины, отправив их в другой кошелек, и только затем импортировать закрытый ключ в свой новый кошелек Bitcoin Cash, чтобы получить возможность тратить уже новые монеты. Таким образом, биткоины ни на одном шаге не подвергались риску из-за уязвимостей безопасности в клиентах Bitcoin Cash. Далее мелкоблочники могли отправить свой биткоин-кэш на Bittrex и начать продавать. Однако ждать пришлось долго. Учитывая нестабильность хешрейта Bitcoin Cash, которая была обусловлена ​​новым алгоритмом регулировки сложности, биржи требовали множества подтверждений, и для внесения депозита потребовалось несколько часов. Все желающие продать Bitcoin Cash выстраивались в очередь в блоках, ожидая достаточных подтверждений для продажи.

Наконец, когда были добыты первые блоки, которые позволили пользователям торговать, цена Bitcoin Cash мгновенно упала почти на 20 процентов. Трейдеры настолько стремились продать Bitcoin Cash, что мгновенно сливали монету по цене спроса, как только биржа подтверждала поступление депозита. Так продолжалось несколько часов: цена на Bitcoin Cash падала каждый раз, когда добывался новый блок. В лагере малых блоков использовали это в своей пропаганде, а в соцсетях над этим активно шутили. Некоторые торговые фонды подметили эту закономерность, связанную с тем, что мелкоблочники продавали из идеологических соображений, и принялись её эксплуатировать. Эти фонды покупали биткоин-кэш в момент появления новых блоков, когда мелкоблочники принимались продавать, а затем распродавали купленное в интервале между блоками. Рыночные махинации, вызванные разделением цепи, были весьма необычными.

После этого начального ажиотажа и нескольких ралли Bitcoin Cash цена, похоже, установилась в диапазоне от 7 до 15 процентов. В Логове Драконов и некоторых группах в Телеграме, где собирались мелкоблочники, установился довольно сложный и осторожный подход. Ходили сообщения, призывающие людей не продавать биткоин-кэш менее чем за семь процентов от цены биткоина. Обоснование сводилось к тому, что это механизм, чтобы заставить крупноблочников расплачиваться. Допустим, цена конверсии между Bitcoin Cash и Bitcoin составляет один процент; это означает, что, если бы у крупноблочников до разделения было всего 210 000 биткоинов, они теоретически могли бы скупить и захватить весь рынок биткоин-кэша, весь 21 миллион монет. Как только это будет сделано, крупноблочники смогут поднять цену и получить солидную прибыль, что сделает их богатыми и позволит противостоять Биткоину с позиции силы. Напротив, если бы обменный курс составлял десять процентов, то же самое действие обошлось бы крупноблочникам в десять раз дороже. Некоторые из лагеря малых блоков опасались этой проблемы, и именно поэтому они призвали своих собратьев-мелкоблочников не спешить с продажами, и по крайней мере не продавать ниже семи процентов. «Заставь их заплатить» было популярной фразой, которая в то время распространилась в приватных кругах среди мелкоблочников. Все эти разработки казались мне абсолютно захватывающими. То, что раньше было холодной войной, по сути, схваткой за коммуникации и правила игры, теперь превратилось в финансовую горячую войну за инвестиционные потоки, рынки, торговлю и прибыль.

В начале сентября 2017 года я встретился с группой из нескольких известных крупноблочников. По их общему мнению, главной целью появления Bitcoin Cash было продемонстрировать угрозу, чтобы вынудить широкую экосистему принять вторую фазу NYA. С появлением Bitcoin Cash люди должны были увидеть, что со стороны крупноблочников "игры кончились". Собравшиеся заверили меня, что план сработал, поскольку угроза со стороны Bitcoin Cash и впрямь оказалась вполне реальной. Я помню, как подумал, что ошибиться ещё сильнее они просто не могли. Во-первых, Bitcoin Cash привёл к разделению цепи; это напомнило майнерам и биржам, что если произойдет вторая фаза NYA, разделение цепи также почти неизбежно. Разделение Ethereum в июле 2016 года произошло больше года назад и уже улетучилось из памяти, и теперь Bitcoin Cash стал свежим напоминанием. Bitcoin Cash также обеспечил биржам серьёзную дополнительную административную нагрузку и привёл к появлению целого ряда сложностей, таких как управление маржинальным балансом и долговыми рынками. Меньше всего биржи хотели сделать это снова уже через несколько месяцев. В то же время в сообществе малых блоков теперь утверждали, что крупноблочники нарушили NYA, поддержав новую спин-офф монету, и поэтому NYA стало недействительным. Действительно, если после подписания соглашения можно поддерживать несколько ветвей цепи, в чём смысл соглашения? Утверждая, что Bitcoin Cash поможет обеспечить согласие экосистемы на второй этап NYA, крупноблочники совершенно неправильно поняли ситуацию и фактически откатили назад все результаты переговоров. Похоже, что они снова выстрелили себе в ногу. Ещё одна крупная тактическая ошибка.

Глава 20. SegWit2x

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

По мере развития конфликта главные герои на стороне больших блоков менялись. В первом раунде мелкоблочники обыграли Гэвина Андресена и Майка Хирна, а затем во втором раунде Роджера Вера и Джихана Ву. Наконец, настало время побеждать третью группу персонажей, Джеффа Гарзика и Майка Белше. Джефф был ведущим разработчиком клиента SegWit2x, а Майк, генеральный директор BitGo, каким-то образом принял эстафету за команду больших блоков. К этому моменту Роджер Вер и Джихан Ву в основном отошли от войны, вместо этого сосредоточив свои усилия на продвижении Bitcoin Cash.

3 августа 2017 года в код Bitcoin Core была внедрена правка, блокирующая узлам BTC1 соединение с Bitcoin Core. Поскольку ожидалось, что сети в любом случае разделятся, можно утверждать, что это был хороший шаг для обеих монет, позволяющий им иметь более сильные связи с узлами своей сети. Однако Джеффу Гарзику это не понравилось, и он прокомментировал:

Это приводит к разделению цепи, даже несмотря на то, что узлы Bitcoin Core и Segwit2x сегодня подтверждают транзакции на 100% по одним и тем же правилам; Это создает разделение цепи из-за предполагаемого отклонения от правил в будущем. Результат - кучка островков неопределённости. Это очень враждебное и небезопасное изменение, сделанное ещё до развёртывания форка Segwit2x.

Хотя технически такое изменение соединений узлов Bitcoin Core было преимуществом для обеих монет в случае разделения, политический месседж был очевиден. Bitcoin Core не будет внедрять SegWit2x и продолжит работу над существующим блокчейном Биткоина.

Еще одна тактика, использованная лагерем малых блоков, чтобы попытаться убедить сообщество не запускать BTC1, заключалась в том, чтобы подчеркнуть очевидное лицемерие со стороны Джеффа Гарзика. В 2012 году Гарзик излагал нарратив малых блоков, делая ровно те же акценты, что и мелкоблочники сегодня:

51% мощности хеширования или даже 90% ничего не значит, если клиенты коллективно отказываются принимать и передавать ваши блоки.

В феврале 2013 года Гарзик даже говорил об экономических последствиях хардфорка и проблемах, связанных с отсутствием обязательной защиты от повтора. Это было особенно болезненно для меня, поскольку именно в его исполнении я впервые столкнулся со многими из этих аргументов. И теперь, по иронии судьбы, тот же самый человек развивал и продвигал свой клиент, делая в точности то, против чего он сам возражал около четырех лет назад. Конечно, изменение мнения с течением времени может быть вполне нормальным, и это вовсе не означает, что Джефф вёл себя злонамеренно или лицемерно. Тем не менее, это заставило мелкоблочников обвинить Джеффа в том, что он «продался парням в костюмах». В феврале 2013 года Джефф писал:

Крайне важно понять концепцию и, да, экономические последствия хардфорка, прежде чем даже приближаться к экономическому анализу изменения максимального размера блока. Хардфорк - это важное событие, которое выбивает законных пользователей из сети, делает монеты бесполезными или потенциально делает одни и те же монеты доступными для траты в двух разных местах, в зависимости от того, контактируете вы с обновлённым узлом или нет. Это, если выбрать драматический термин, событие уровня вымирания вида. Если всё сделано неправильно, хардфорк может лишить разумных продавцов возможности доверять получаемым биткоинам, самой основе их экономической ценности. Кроме того, хардфорк сродни смене конституции: хардфорк подразумевает возможность переписать основные правила протокола Биткоина, будь то размер блока, лимит 21M, хеш SHA256 или другие жестко заданные параметры. Таким образом, всегда существует риск того, что майнеры, пользователи и разработчики непредсказуемо изменят не только размер блока, потому что с инженерной точки зрения есть смысл заложить смену и всех прочих трудноизменяемых функций в один хардфорк. Для всех пользователей Биткоина по широте экономических последствий это вариант сродни ядерной войне.

Еще одна тактика мелкоблочников заключалась в работе с официальным списком сторонников SegWit2x на основе документа NYA. План состоял в том, чтобы организовывать встречи и звонки с компаниями и объяснять недостатки NYA; в частности, что форк вызовет разделение цепи, которое, в отличие от Bitcoin Cash, не будет иметь обязательной защиты от повтора, что, вероятно, приведёт к потере средств. В подписантах был длинный список компаний, и, возможно, некоторые из них не понимали слабых сторон NYA. Если бы кто-то из них дезертировал, это бы сильно подорвало позиции NYA. Это бы показало, что план имеет негативную динамику, а консенсус отсутствует даже среди первоначальных подписантов, не говоря уже о консенсусе со стороны более широкого сообщества.

Первое дезертирство произошло 22 августа 2017 года. Bitwala объявила, что не будет следовать соглашению:

Мы получаем всё большее количество запросов относительно поддержки Bitwala Нью-Йоркского соглашения (сокращенно «NYA»).

Соглашение помогло досрочно преодолеть порог активации Segregated Witness, так что столь необходимый софтфорк прошёл без каких-либо проблем. Примерно в то же время ряд майнеров решил создать биткоин-форк на основе того же генезис-блока, что и у Биткоина, назвав эту монету «Bitcoin Cash» («BCH») - удалив Segregated Witness из своей цепи и внеся изменения, включающие поддержку блоков размером до 8Мб.

Bitwala не нанимает и не спонсирует биткоин-разработчиков, поэтому у нас мало влияния на то, что делает команда разработчиков Core. Мы хотели бы соблюдать соглашение, на которое мы подписались (как один из первых участников, в неведении о том, что большинство разработчиков не будет подписывать соглашение). Однако мы также являемся сервисной компанией, которая всегда будет ориентироваться на то, что используют и хотят использовать наши клиенты.

Мы не будем активно отделяться через форк от того, что мы считаем «Биткоином», то есть цепи, поддерживаемой текущей командой разработчиков Core.

Это был важный момент в битве против второй фазы NYA: первое отступничество. Однако это не было идеальным дезертирством. Bitwala, похоже, хотела ориентироваться на цепь, поддерживаемую «текущей командой разработчиков Core», а не на цепь с текущими правилами, если только на изменение правил не сложится массового запроса. Это привело к неправильному представлению о том, что эта битва ведётся между разработчиками и майнерами, и что Bitwala выбрала сторону разработчиков. Несмотря на то, что этот взгляд соответствовал "крупноблочному" представлению о мире, мелкоблочники всё же праздновали победу и записывали её на свой счёт.

Несмотря на это отступничество, Майк Белше стремился продолжать продвигать проект и держаться в его русле. 23 августа 2017 года он написал в список рассылки SegWit2x, заявив:

Коль скоро активация SegWit успешно прошла, самое время разослать быстрый апдейт по проекту. Возможно, вы заметили, что в последнее время команда SegWit2x ведёт себя довольно тихо. Это хороший знак, поскольку он указывает на то, что код работает так, как и ожидалось. Цель SegWit2x - создать простой и стабильный код, который относительно «скучен». Если в ближайшие недели вы мало что услышите о разработке SegWit2x, это будет хорошим знаком.

31 августа один из майнинговых пулов, подписавших соглашение, F2Pool, объявил о намерении не поддерживать SegWit2x. Хотя на тот момент пул всё ещё имел в заголовках своих блоков флаг «NYA», оператор пула Ван Чун сказал, что пул планирует удалить флаг при ближайшем перезапуске своих серверов. Это было ещё одним критически значимым отступлением от NYA. При наличии большого майнинг-пула блокчейн Биткоина продолжит наращиваться, и, пока инвесторы предпочитают блокчейн с исходными правилами (что казалось на тот момент вполне вероятным), больше майнеров будет склонно нарушить соглашение и добывать исходный биткоин, чтобы максимизировать свою прибыль.

1 сентября CEO и основатель компании Wayniloans, также подписавшей NYA, , твитнул, что они никогда не соглашались со всеми пунктами NYA, и что соглашение изменилось после того, как Wayniloans подписала его. Несколько недель спустя это было подтверждено в почтовой рассылке, на что Барри Силберт ответил, выразив некоторое разочарование:

Вы, конечно, можете отозвать поддержку SegWit2x, но ваше заявление ниже не вполне точное. У меня есть письмо от вас, датированное воскресеньем, 21 мая, в 20:40 по восточноевропейскому времени, подтверждающее поддержку окончательного полного заявления, опубликованного затем 23 мая. Кроме того, в качестве напоминания - это ко мне обратились с предложением добавить в подписанты соглашения Wayniloans, а не наоборот - поэтому я понятия не имею, откуда вы берёте свои утверждения.

С этого момента количество дезертиров стало увеличиваться. 26 сентября 2017 года отвалилась Vaultoro:

Мы подписались задолго до форка Bcash. Подписались, потому что я хотел помочь обоим лагерям выйти из тупика. Это сработало, теперь у нас есть Segwit. Как любой хороший бизнесмен, я верен своему слову/подписи и выполнил бы 2х, но без защиты от повтора - не могу.

Южноамериканская биржа surBTC также отказалась от поддержки NYA:

Тем не менее, мы не можем претендовать на роль «экспертов по масштабированию» Биткоина. Мы не верим в попытки форсировать изменения, которые разработчики Bitcoin Core считают небезопасными. Техническая подготовка команды, которая в настоящее время сотрудничает над основным проектом Биткоина, имеет беспрецедентный уровень, и мы считаем, что они, по крайней мере, как группа, являются непредвзятыми экспертами, которые заслуживают хотя бы голоса по этому вопросу. Несмотря на то, что мы были бы счастливы иметь блоки умеренно большего размера для удовлетворения растущего спроса, мы чувствуем, что для того, чтобы делать это ответственно, Биткоин нуждается в поддержке (по крайней мере большинства) разработчиков Bitcoin Core. Мы не увидели этой поддержки, и нам не нравится то, что мы сейчас видим в репозитории кода Btc1 с точки зрения технических соображений и норм сотрудничества в open source.

Затем из соглашения вышла британская биржа Crypto Facilities. Генеральный директор Kraken, компании, которая в конечном итоге купит Crypto Facilities, также выразил несогласие с SegWit2x из-за отсутствия защиты от повтора. Другая подписавшая сторона, Bitfury, также указала, что потенциально не хотела бы проходить вторую фазу NYA. Теперь было уже почти невозможно уследить за всеми отступниками, и соглашение, похоже, разваливалось.

Со стороны лагеря крупных блоков тоже были дезертиры. Другой подписант, Yours, объявил, что полностью переходит на цепь Bitcoin Cash. Главный собственный майнинговый пул Bitmain, Antpool, также начал майнить Bitcoin Cash. Конечно, можно утверждать, что поддержка или добыча Bitcoin Cash не означает отказа от соглашения. Можно сказать, что для бизнеса ради прибыли вполне законно добывать несколько монет или поддерживать монеты из разных цепей. Это, конечно, нормальный и приемлемый бизнес. Однако, если подписавшие могут продолжать поддерживать две монеты после разделения, и майнеры могут свободно майнить обе цепи, можно утверждать, что NYA в значительной степени бессмысленно, и обе цепи выживут. Именно поэтому, как утверждали мелкоблочники, и была необходима обязательная защита от повтора, а без нее SegWit2x был бы потенциально враждебным и, следовательно, не должен поддерживаться ответственным бизнесом.

Несмотря на то, что перспективы SegWit2x стремительно исчезали, а запрос на защиту от повтора возрастал, 8 октября 2017 года Майк Белше продолжал продвигать повестку:

«Защита от повтора», как вы это называете, разделяет цепь. Это просто не имеет смысла - вы внезапно лишитесь 10+ миллионов SPV-кошельков, которые в противном случае прекрасно работали бы. Цель Segwit2x - помочь избежать этого. Сегодня мы находимся на пути к развертыванию Segwit2x, и подавляющее большинство майнеров всё ещё сигнализируют об этом. Вдобавок к этому 99,94% узлов и SPV-клиентов будут автоматически следовать этой наиболее длинной цепи (Segwit2x). Я знаю, что некоторые не хотят, чтобы Биткоин работал таким образом, но именно так и реализуются обновления Биткоина.

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

6 октября 2017 года Bitfinex внедрила торговлю "токенами разделения цепи" для обновления SegWit2x, так же, как они это сделали для Bitcoin Unlimited ранее в том же году. Монеты торговались по цене от 20 до 4 процентов от биткоина, демонстрируя, что большая часть экономики, по крайней мере, инвесторы и трейдеры, предпочитала исходные правила Биткоина, а не SegWit2x.

Bitfinex также прояснила свою позицию в отношении разделения цепи, заявив, что изначально она будет рассматривать цепь с существующими правилами или то, что она называет «действующей реализацией», как Биткоин, а цепь SegWit2x - как альтернативную монету под названием «B2X». Эта политика Bitfinex будет применяться, даже если у B2X мощность хеширования будет больше. Однако Bitfinex оставила дверь открытой для поддержки NYA, заявив, что «рыночные силы могут предложить альтернативную схему маркировки». По сути, Bitfinex показывала, что в конечном итоге инвесторы и трейдеры должны определять, какая монета будет считаться биткоином, путем выяснения того, какая монета имеет более высокую рыночную цену.

Поскольку проект предлагаемого протокола консенсуса Segwit2x, вероятно, будет активирован, мы решили на данный момент обозначить форк Segwit2x как B2X. Действующая реализация (основанная на существующем протоколе консенсуса Биткоина) будет продолжать торговаться как BTC, даже если цепь B2X будет иметь большую мощность хеширования. Делаем это по практическим и эксплуатационным причинам. Политические соображения здесь неактуальны. Хотя мы не можем изменить или переназначить символы тикера, мы можем изменить метку или описание, связанное с этим символом тикера. В настоящее время BTC по-прежнему будет обозначаться как «биткоин», а B2X будет обозначаться как «B2X». Это будет оставаться в силе до тех пор, пока рыночные силы не предложат альтернативную, более подходящую схему маркировки для одной или обеих сетей.

Примерно через неделю, 13 октября 2017 года, BitMEX выступила с ещё более сильным заявлением, чем Bitfinex, также указав, что будет рассматривать B2X как альтернативную монету, даже если у нее будет более высокий хешрейт, чем у Биткоина:

Предложение SegWit2x (B2X) направлено на увеличение размера блока. Это изменение запланировано на ноябрь 2017 года. Это изменение несовместимо с текущим набором правил Биткоина, и поэтому может быть создана новая монета. Сторонники этой новой монеты надеются, что она станет известной в качестве биткоина, однако какая именно монета называется биткоином, решают не сторонники нового токена. Лишь инвесторы и трейдеры могут решить, какая монета имеет наибольшую ценность. Чтобы этот процесс работал бесперебойно, необходима надежная двусторонняя защита от повтора транзакций. Насколько мы понимаем, предложение SegWit2x не содержит двустороннюю защиту от повтора транзакций, включенную по умолчанию. Поэтому BitMEX не сможет поддерживать SegWit2x. Таким образом, BitMEX не будет поддерживать распространение B2X, а также BitMEX не будет нести ответственности за любые отправленные нам B2X. Эта политика будет применяться, даже если цепь SegWit2x получит большую часть хешрейта.

23 октября генеральный директор BitMEX Артур Хейс опубликовал в блоге пост под названием «Торговля ShitCoin2x». Мем «ShitCoin2x» был радостно встречен мелкоблочниками, и для последних оставшихся сторонников NYA ситуация выглядела мрачной. Запусти они свою монету, было похоже, что получится ещё один альткоин, торгующийся ниже 10 процентов от цены биткоина.

На следующий день Джефф Гарзик объявил, что запускает новый альткоин под названием «Метроном». Для мелкоблочников это была еще одна возможность пырнуть проект SegWit2x, заявив, что ведущий разработчик потерял к нему интерес и теперь работает над другими проектами. Bloomberg сообщил об этом анонсе следующим образом:

Джефф Гарзик, один из кучки ключевых разработчиков, которые помогли создать программную подложку для Биткоина, известную как блокчейн, воочию увидел её недостатки. Поэтому он решил создать цифровую валюту получше. Он называет её Метроном и говорит, что монета будет первой, которая сумеет переключаться между различными блокчейнами. Такая мобильность означает, что если один блокчейн выйдет из строя в результате раздоров между разработчиками или редкого использования, владельцы метрономов смогут переместить свои активы в другое место. Это должно помочь монетам сохранить ценность и обеспечить их долговечность, сказал в телефонном интервью Гарзик, соучредитель стартапа Bloq, создавшего Метроном.

23 октября 2017 года Coinbase объявила о своей политике в отношении SegWit2x. Coinbase подписала NYA и к этому моменту не отказалась от его поддержки. Компания также имела опыт поддержки всех других попыток хардфорка, и поэтому её политика в отношении данного раскола была ожидаемой. Однако, как и Bitfinex с BitMEX, Coinbase указала, что отказалась от NYA и будет рассматривать монету SegWit2x как альтернативную монету:

Форк Биткоина Segwit2x, по прогнозам, состоится 16 ноября и временно приведет к созданию двух блокчейнов Биткоина. После форка Coinbase продолжит называть текущий блокчейн Биткоина биткоином (BTC), а отделившийся блокчейн - Bitcoin2x (B2X).

В сообществе малых блоков праздновали этот прогресс во взглядах. Coinbase, похоже, наконец-то присоединилась к их лагерю, и это был последний гвоздь в гроб SegWit2x. Мелкоблочники отправили множество емейлов и сообщений генеральному директору Coinbase Брайану Армстронгу, поздравляя его с новой политикой. Coinbase несла фидуциарную ответственность за защиту активов клиентов и в любом случае потенциально поддерживала обе стороны разделения, поэтому некоторые утверждали, что для любого хранителя средств пользователей неприемлемо подписывать какое-либо соглашение, обязывающее только одну сторону потенциального разделения. Возможно, теперь компания осознала, что подписание NYA было неуместным.

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

В нашем предыдущем посте мы указали, что на момент форка существующая цепочка будет называться Биткоином, а форк Segwit2x будет называться Bitcoin2x. Однако некоторые клиенты просили нас уточнить, что произойдет после форка. Мы собираемся называть цепь с наибольшей накопленной сложностью Биткоином.

Конечно, даже это заявление можно интерпретировать как отказ от NYA; цель первоначального соглашения заключалась в том, чтобы подписавшие его стороны поддержали новую монету в качестве Биткоина, а не занимали нейтральную позицию между исходной и новой монетой. Мелкоблочники с недоумением отреагировали на эту новую политику Coinbase, которую также переняло несколько других базирующихся в США бирж, таких как Gemini.

Если рассматривать процесс подробнее, новая политика Coinbase не имела особого смысла. Когда дело доходит до тикеров и списка ордеров, разве Coinbase не нужно будет выбирать монету, которая унаследует оригинал? Если нет, то Coinbase придётся закрыть биржу. Это выглядит плохим бизнес-решением, которое приведёт к потере дохода как раз тогда, когда повысится спрос на торговлю. Кроме того, в какой именно момент Coinbase определит, какая цепь имеет наибольший хешрейт: через час, день, неделю, месяц или год? Coinbase никогда не раскрывала этой тайны. К тому же было возможно, что преимущество по хешрейту станет колебаться между конкурирующими монетами. Майнеры также, вероятно, будут смотреть на рынки, чтобы определить, какая монета имеет большую ценность, и это поможет им понять, какую монету выгоднее добывать. Если биржи закроются, как майнеры примут это решение? Обе группы, биржи и майнеры, по сути, будут ждать друг друга. Разве Coinbase своим заявлением не отказалась от ответственности по обеспечению упорядоченного и функционирующего рынка в это нестабильное время? И от своей обязанности помочь облегчить экономический процесс, с помощью которого инвесторы могли бы выразить свое мнение, которое затем будет использоваться майнерами? Мне казалось, что подход, который выбрали Bitfinex и BitMEX, был гораздо более ответственным и ясным, чем беспорядочный и запутанный подход Coinbase.

К концу октября предубеждение против SegWit2x в сообществе Биткоина было уже почти непреодолимым. На локальных встречах по всему миру делались заявления против SegWit2x и подтверждения, что в качестве Биткоина будет рассматриваться цепь с исходными правилами. Заявления были сделаны локальными сообществами в регионах, включая Корею, Гонконг, Италию, Германию, Израиль, Бразилию и Аргентину. В израильском заявлении говорилось:

Мы считаем, что изменение протокола в валюте, сохраняющей название «Биткоин», особенно если требуется хардфорк, требует всеобъемлющего консенсуса. Хардфорк SegWit2x никоим образом не удовлетворяет подобному консенсусу, и пока это так, мы не можем называть полученную валюту «Биткоином».

Гонконгское сообщество использовало ещё более резкие выражения:

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

Последняя конференция по масштабированию, проведенная в ходе войны за размер блоков, Масштабирование IV, прошла в Стэнфордском университете в США в выходные 4 и 5 ноября 2017 года. Как и во время Масштабирования I в Монреале, у меня заканчивался ежегодный отпуск по работе, поэтому я решил прилететь из Гонконга, чтобы ненадолго заехать на выходные. Мероприятие прошло тихо и спокойно, и было ясно, что война подходит к концу. Практически никто на конференции не поддерживал SegWit2x. Однако из этого правила было одно заметное исключение. В конце первого дня с докладом на тему «Биткоин в Китае» выступил Бобби Ли. Бобби был одним из немногих восторженных сторонников SegWit2x, считающих, что это компромисс, объединяющий обе стороны. К этому моменту Бобби был одним из последних оставшихся сторонников SegWit2x, которые всё ещё считали его потенциально жизнеспособным. Это несмотря на то, что собственная биржа Бобби, BTCC (подписавшая NYA), внедрила токены разделения цепи SegWit2x, и монета SegWit2x торговалась по цене примерно 10 процентов от биткоина. Бобби упорно отказывался отступать от NYA. В конце выступления Бобби в Стэнфорде пришло время для вопросов. Однако незадолго до этого Бобби сказал:

Я собираюсь не говорить о SegWit2x и NYA, мы просто сосредоточимся на рынке Китая и всём остальном

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

Тем временем подходил ноябрь, и приближался дедлайн. SegWit2x должен был активироваться 15 ноября 2017 года на блоке с высотой 494784. По некоторым каналам крупноблочников начали циркулировать слухи. Джихан Ву предположительно сказал, что он будет майнить SegWit2x с убытком в течение не более двух дней, после чего, если продолжать майнинг SegWit2x будет невыгодно, он переключится обратно на Bitcoin и Bitcoin Cash. Bitmain уже потратил много денег на майнинг Bitcoin Cash, время от времени делая это в убыток, и, очевидно, стремился больше не выбрасывать деньги. Крупноблочники никогда особо не поддерживали SegWit2x, сердцем они были за Bitcoin Cash. SegWit2x не получил поддержки со стороны пользователей. У него не было сети узлов. Поскольку почти все использовали Bitcoin Core, биржи либо отклонили SegWit2x, либо заняли нейтральную позицию. Теперь единственная поддержка, оставшаяся у SegWit2x - майнеры - похоже, тоже исчезала. Труп SegWit2x плыл по течению. Мелкоблочники выглядели настроенными на оглушительную победу. Вопрос был уже не в том, случится ли она, но лишь в том, когда.

Глава 21. Победа

В среду, 8 ноября 2017 года, в 16:58 UTC, когда до активации SegWit2x оставалась всего одна неделя, в список рассылки SegWit2x было отправлено письмо от Майка Белше, подписанное видными сторонниками SegWit2x. Это письмо было, по сути, безоговорочной капитуляцией; вторая фаза NYA была официально отменена. У сторонников SegWit2x не было выбора — если бы они не прекратили свои попытки, это привело бы к появлению новой альтернативной монеты, которая была бы менее популярна, чем Bitcoin Cash. Именно в этот момент, спустя 816 дней после начала войны, я отметил официальное прекращение боевых действий.

Усилия по реализации Segwit2x начались в мае с простой целью: увеличить размер блока и улучшить масштабируемость Биткоина. В то время Биткоин-сообщество находилось в кризисе после почти трех лет ожесточенных дебатов, и консенсус по Segwit казался миражом, поскольку майнеры поддерживали его лишь на 30%. Segwit2x впервые добился успеха в августе, выйдя из тупика и быстро приведя к успешной активации Segwit. С тех пор команда переключила свои усилия на вторую фазу проекта — увеличение размера блока на 2 МБ.

Наша цель всегда заключалась в плавном обновлении Биткоина. Хотя мы твердо верим в необходимость увеличения размера блока, есть кое-что, что мы считаем еще более важным: сохранение единства сообщества. К сожалению, очевидно, что на данный момент мы не достигли достаточного консенсуса для плавного увеличения размера блока. Продолжение нынешнего пути может расколоть сообщество и затормозить развитие Биткоина. Это никогда не было целью Segwit2x.

Мы считаем, что по мере роста ончейн-комиссий в конечном итоге необходимость увеличения пропускной способности блокчейна станет очевидной . Когда это произойдет, мы надеемся, что сообщество объединится и найдет решение, возможно, прибегнув к увеличению размера блока. До тех пор мы приостанавливаем наши планы по предстоящему обновлению до 2 МБ.

Мы хотим поблагодарить всех, кто внес конструктивный вклад в Segwit2x, независимо от того, были ли вы "за" или "против". Ваши усилия — это то, что делает Биткоин великим. Биткоин остается величайшей формой денег, известной человечеству, и мы по-прежнему стремимся защищать и стимулировать его рост во всем мире.

Майк Белше, Венсес Казарес, Джихан Ву, Джефф Гарзик, Питер Смит и Эрик Ворхиз

После того как Bitcoin XT, Bitcoin Classic и Bitcoin Unlimited пали, а теперь и BTC1 был официально отозван сторонниками, война закончилась. Крупноблочники выдохлись; они видели, что их методология не работает, и не собирались запускать очередное спорное хардфорк-предложение. После более чем двух лет напряженной войны это была сенсационная победа сторонников малых блоков. Они наконец-то добились своего, причем не только в отношении самого ограничения размера блоков, но и, что очень важно, в отношении методики изменения правил протокола. Теперь, наконец, стало общепризнанным, что организация встреч с крупными корпорациями и попытки принять решение об изменении правил протокола не сработают. У большинства майнеров также не было возможности смягчить правила протокола. Если вы хотите изменить правила протокола, необходимо убедить и заручиться поддержкой конечных пользователей и инвесторов, которые должны согласиться на новые правила. Именно рядовые пользователи обладают окончательным правом принятия решений, и именно этот финансовый суверенитет делает Биткоин уникальным и привлекательным. После ошеломляющей победы нарратив малых блоков, согласно которому конечные пользователи должны были согласиться с изменениями правил протокола, наконец-то был признан убедительным.

Однако не все с этим согласились. Некоторые участники сети, особенно сторонники крупных блоков, интерпретировали войну как битву между Bitcoin Core и майнерами. По их мнению, Bitcoin Core победил, а майнеры проиграли, поэтому разработчики Bitcoin Core теперь контролируют Биткоин. Этого мнения все еще придерживались, несмотря на то, что UASF не был реализован командой Bitcoin Core. В сознании некоторых людей идея протокола, контролируемого конечными пользователями, слишком сложна для восприятия. Вместо этого они ищут какую-то личность или организацию, которая контролирует систему. Некоторым не под силу понять идею протокола, который достиг глобального консенсуса, не имея лидера. По их мнению, в 2015 году лидером был Гэвин, затем Джихан, а теперь — Bitcoin Core. Что касается того, действительно ли Биткоин является системой без лидера, каковой он себя позиционирует, и будет ли это продолжаться вечно, жюри еще не определилось. Однако после драмы и махинаций, связанных с войной за размер блоков, ясно одно: надежда на то, что это утверждение верно, еще есть.

Новость об отказе от SegWit2x, вызвала колоссальный рост стоимости Bitcoin Cash, который теперь был последней функционирующей монетой, поддерживающей крупноблокчников. В воскресенье, 12 ноября 2017 года, во время самого разгара криптовалютного пузыря, Bitcoin Cash совершил монументальное ралли. За несколько дней до письма Майка Bitcoin Cash торговался на уровне около восьми процентов от цены биткоина. Однако через несколько дней он достиг пика, составив около 48 процентов от цены биткоина, после чего вскоре рухнул. Когда Bitcoin Cash достиг пика, большинство мелкоблочников все еще радовались своей недавней победе и праздновали свой триумф. Однако с трудом верится, что они не были обеспокоены перспективой потери короны самой большой по рыночной капитализации монеты. Считается, что ралли было вызвано розничными инвесторами из Южной Кореи, которые в этот период были особенно безумны по отношению к криптовалютным рынкам. Однако ралли быстро сошло на нет.

Во время ценового бума Bitcoin Cash в ноябре 2017 года крупноблочники были невероятно рады своим огромным доходам. Некоторые из тех, с кем мне довелось пообщаться, приобрели еще больше Bitcoin Cash на пике "пузыря", надеясь, что он обгонит биткоин. В то время в Telegram существовала большая блокчейн-группа под названием "Смерть цепи" (Chain Death), в которой говорилось о потенциальной гибели цепи Биткоина и становлении Bitcoin Cash в качестве доминирующей монеты. У меня не было доступа к этой группе, однако один из участников показал мне некоторые диалоги на своем экране. В группу входили многие известные крупноблочники, и во время ценового ралли в ноябре 2017 года активность была очень высокой, а атмосфера в группе была ничем иным, как сплошным ликованием.

Идея "Смерти цепи" заключалась в том, что в какой-то момент цена Bitcoin Cash вырастет, возможно, из-за ее большей полезности в качестве средства обмена. Это сделает майнинг Bitcoin Cash более выгодным, что заставит майнеров отказаться от Биткоина и перейти на Bitcoin Cash. В этот момент цепочка Биткоина остановится и ее продление станет невозможным. Биткоин бы умер, а Bitcoin Cash взошёл на пьедестал. Конечно, для защиты от этого сценария у Биткоина был механизм корректировки сложности, однако на это ушло бы две недели. По мнению крупноблочников, можно было уничтожить цепочку Биткоина до того, как произойдет эта корректировка сложности. В сознании мелкоблочников эта надежда их оппонентов была полным идиотизмом. В конце концов, сторонники мелких блоков были терпеливыми; они просто ждали бы, пока сложность не изменится, сколько бы времени это ни заняло. Кроме того, существовал вопрос корректировки сложности Bitcoin Cash, которая происходит гораздо быстрее, чем раз в две недели в Биткоине. Если цена Bitcoin Cash росла и к ней присоединялось больше майнеров, сложность Bitcoin Cash увеличивалась, тем самым заставляя майнеров возвращаться в Биткоин еще до того, как сложность Биткоин-майнинга корректировалась вниз. Крупноблочники, похоже, так и не оценили этот аспект корректировки сложности, по крайней мере, на тот момент.

15 ноября, когда наконец наступил момент активации SegWit2x, выяснилось, что клиент полон критических ошибок. Хардфорк должен был произойти на высоте блока 494 784, однако по какой-то причине клиенты BTC1 застряли на два блока раньше на высоте 494 782. Из-за ошибок в реализации клиент активировал некоторые свойства хардфорка на два блока ранее. Это могло стать катастрофой для бирж, которые намеревались делать снимки балансов пользователей на высоте блока хардфорка. Помимо этого, в BTC1 были и другие критические ошибки, делавшие майнинг на цепочке SegWit2x невозможным. Джефф сначала отрицал наличие проблемы, но через несколько дней исправил ее. Из-за этих катастрофических ошибок цепь SegWit2x никогда не существовала, и на ней так и не был добыт ни один блок. Однако еще важнее технических недостатков SegWit2x, было то, что форк был повержен с помощью политических и экономических средств. Если посмотреть на это поражение через любую из соответствующих линз, то оно было сокрушительным.

20 декабря 2017 года произошли новые махинации с торговлей Bitcoin Cash. Coinbase выставила Bitcoin Cash на продажу, и в результате ажиотажа монета достигла отметки 8500 долларов США. Это рекорд в долларовом выражении, но не такой высокий показатель, как ноябрьский пик, при перерасчете в биткоинах. Как только монета появилась в списке, Coinbase не смогла справиться со спросом, и в системе возникли большие задержки. Это был очень неудачный листинг, и некоторые мелкоблочники, которые не лучшим образом относились к Coinbase из-за ее поддержки Bitcoin XT, Bitcoin Classic и даже Bitcoin Unlimited, восприняли ситуацию негативно. Они обвинили Coinbase в инсайдерских сделках, по сути, в сливе информации крупноблочникам до того, как Bitcoin Cash был включен в листинг.

Что касается Роджера Вера, который был неустанным сторонником больших блоков и хардфорка, то теперь он, наряду с Bitmain, стал главным пропагандистом Bitcoin Cash. Они организовывали конференции, мероприятия, вечеринки, поощряли принятие BCH мерчантами, раздавали брендированные товары и бесплатные монеты — все это продвигало Bitcoin Cash. Должно быть, они потратили десятки миллионов долларов на неустанное продвижение монеты в течение многих лет.

Однако, несмотря на все эти усилия, криптовалюта так и не смогла набрать обороты по сравнению с Биткоином. В течение следующих нескольких лет цена Bitcoin Cash отставала от него. Мало того, объем ончейн-транзакций Bitcoin Cash был даже ниже, чем у Биткоина, в то время как пропускная способность цепочки и увеличение лимита размера блока, как утверждалось, были основной движущей силой форка. Более того, в марте 2018 года выяснилось, что объем ончейн-транзакций Bitcoin Cash упал ниже, чем объем SegWit в Биткоине. SegWit способствовал росту объема ончейн-транзакций быстрее, чем Bitcoin Cash. Основная идея Bitcoin Cash — большие блоки — была почти полностью уничтожена. Однако ключевым моментом для крупноблочников был не фактический объем транзакций, а философия избыточных мощностей; так что, если спрос все же возникнет, блоки не заполнятся.

Когда эта война уже стала преданием, в августе 2018 года Bitmain попыталась провести IPO в Гонконге. В документах листинга указывалось, что Bitmain инвестировала в Bitcoin Cash более 888 миллионов долларов США. Это была большая часть свободного денежного потока, который компания генерировала в 2017 году на криптовалютном бычьем рынке. На тот момент ценовые показатели Bitcoin Cash были слабыми, и компания понесла значительные убытки от пересчета рыночной стоимости. Джихан был страстным сторонником крупных блоков и неустанным борцом в войне, которая длилась более двух лет. Однако он позволил этому затуманить его рассудок и принял неверные инвестиционные решения. Компания Bitmain понесла большие потери в Bitcoin Cash.

Отчасти из-за трудностей с проведением хардфорка в Биткоине, сообщество Bitcoin Cash выбрало другой подход. Они проводили хардфорк каждые шесть месяцев — в мае и ноябре каждого года. В ноябре 2018 года, чуть больше, чем через год после запуска Bitcoin Cash, в этом сообществе возникла напряженность. Крейг Райт ("фейковый Сатоши"), которого в прошлом поддерживали многие члены сообщества крупных блоков, снова приложил к этому руку. Крейг выступал за еще более агрессивный график увеличения лимита размера блока, чем хотели многие другие члены сообщества Bitcoin Cash, вновь и вновь повторяя многие моменты повествования, которые крупноблочники использовали в войне за размер блока несколькими годами ранее. Воспользовавшись запланированной датой хардфорка 15 ноября, Bitcoin Cash разделился на две монеты: Bitcoin ABC и Bitcoin Satoshi's Vision, следующую видению Крейга. Сторона Bitcoin ABC сохранила название Bitcoin Cash, а Bitcoin Satoshi's Vision стала известна как BSV. В результате раскола и возникшей неопределенности стоимость Bitcoin Cash относительно биткоина продолжала снижаться. Как и ожидали мелкоблочники, некоторые сторонники крупных блоков начали постепенно приходить к мысли, что в случае спора о правилах исходный набор правил является ключевой точкой отсчета. Если отклониться от этой философии, то есть риск, что монета продолжит раскалываться на все более мелкие фракции. Крупноблочники болезненно переживали это на собственном опыте.

8 ноября 2018 года, в самый разгар битвы между Bitcoin ABC и BSV, Роджер Вер, заядлый крупноблочник, в показательном видеоблоге заявил следующее:

Вот что я в какой-то мере осознал благодаря происходящему: люди из Bitcoin Core ранее были действительно категорически против любого вида спорного хардфорка, и я думаю, что есть определенный смысл остерегаться этого, потому что сейчас мы видим, какой ущерб может быть нанесен спорным хардфорком

На момент написания книги в начале 2021 года Bitcoin Cash торгуется примерно на уровне одного процента от цены биткоина, и в этой сфере широко признается, что путь, выбранный крупноблочниками летом 2017 года, был не самым эффективным.

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

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

По сути, эта история о том, как мелкоблочники создали более убедительное и привлекательное повествование, чем их оппоненты. Новая форма денег, в которой пользователи устанавливают правила, оказалась лучшим нарративом, чем глобальная платежная система с высокой пропускной способностью и низкой комиссией, независимо от истинности того или иного утверждения. Деньги — это, в конечном счете, коллективная игра на доверии, и мелкоблочники показали себя достаточно эффективными игроками в этой игре, за что и были вознаграждены своей победой.

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

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

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

[ ] Хэшрейт — производный термин от hash и rate, обозначающий скорость генерации хэш-суммы специальной функцией.