История о различающихся взглядах
Итак, вот мы и здесь. Сообщество разделилось и был создан форк Биткоина, который затронет как программное обеспечение, так и, возможно, цепь блоков. Две стороны противостояния – Bitcoin Core и его немного изменённая версия – Bitcoin XT [автор статьи, Майк Хирн, является её основным разработчиком; основное изменение в Bitcoin XT – это увеличение лимита на размер блоков – прим. пер.]
Такой форк никогда не случался раньше, и я хотел бы объяснить суть происходящего с точки зрения разработчиков Bitcoin XT, чтобы нас не обвинили в том, что мы недостаточно разъясняли свою позицию.
Форк Биткоина – тема, которая может заинтересовать многих людей, поэтому эта статья предназначена для широкой публики, а не для узких специалистов, так что она не требует ни глубоких технических знаний, ни ознакомления с историей вопроса.
Основополагающее видение Биткоина было чётко изложено Сатоши Накамото. Существующий спор – о росте Биткоина. В 2008 году Сатоши ответил на вопрос о возможности роста Биткоина как инфраструктуры следующим образом:
В 2008 году Visa обработала 37 миллиардов транзакций, в среднем по 100 миллионов в день. Такое количество транзакций потребовало бы 100 гигабайт трафика (размер 12 DVD или двух фильмов в HD-качестве), для чего понадобилось бы около $18 по нынешним расценкам на трафик.
Чтобы биткоин-сеть стала такой же огромной, потребуется много лет, и к этому времени пересылка двух фильмов по интернету не будет представлять собой проблему.
Сатоши был намного более беззаботным по отношению к вопросу о технической стороне роста Биткоина, чем многие из нас сейчас. Он с самого начала считал, что Биткоин станет популярным, и знал, что подобный успех изменит то, как люди используют его систему. В 2010 он сказал следующее:
Было бы неплохо держать файлы блокчеина небольшими настолько долго, насколько это возможно.
Но впоследствии не стоит волноваться о том, насколько большими они станут.
Однако, на текущий момент, пока они до сих пор маленькие, будет правильным продолжать держать их такими, чтобы новые пользователи смогли подключиться к сети быстрее. Но как только я наконец-то реализую программное обеспечение, которое будет работать только в режиме клиента [SPV-клиент – прим. пер.], это сразу станет неактуально.
В 2011 году я попробовал подтвердить интуитивные предположения Сатоши рядом математических расчётов: что если Биткоин станет настолько популярным, что заменит Visa? Я получил однозначный ответ на этот вопрос – вам никогда не потребуется более одного компьютера, даже для таких огромных объёмов. Я также воплотил в жизнь программное обеспечение (кошельки в режиме клиента), о котором говорил Сатоши, перед тем как он отошёл от дел.
План Сатоши объединил нас вместе. Он изменил жизни сотен тысяч людей по всему миру. Некоторые из нас покинули свою основную работу, другие уделяют свободное время его проекту, а кто-то основывает целые компании. Именно идея о том, что обычные люди могут платить друг другу с помощью блокчеина, создала и сплотила это огромное сообщество.
Это тот план, на который я подписался. Это тот план, на который подписался Гэвин Андресен. Это тот план, на который подписались многие разработчики, основатели стартапов и биткоин-иевангелисты.
Сейчас этот план находится под ударом. В последние месяцы стало ясно, что небольшая группа людей имеет радикально другое видение Биткоина. Эти люди никогда не чувствовали себя уверенными относительно намерений Сатоши, потому что они боятся успеха: что если технология никогда не продвинется? Что если люди больше не смогут запускать полную ноду Биткоина у себя на компьютере? Не сделает ли это Биткоин менее децентрализованным и больше похожим на банки? Что если люди будут пользоваться Биткоином, в то время как он не будет безупречным?
Теперь, когда Сатоши отошёл от дел, эти люди планируют резкие перемены: превращение Биткоина в сеть платёжных хабов, резкий рост комиссий на обычные транзакции, отмену поддержки мобильных P2P-кошельков, отказ от решения вопросов по улучшению поддержки неподтверждённых транзакций, и многое другое, что никогда не упоминалось в документации Сатоши. Их так называемая Lightning network, которая продвигается в качестве альтернативы архитектуре Сатоши, в реальности не существует. Если же она будет воплощена в жизнь, то это будет большое отхождение от того Биткоина, который мы все знаем и любим. Вот один пример из многих: биткоин-адреса в Lightning network работать не будут. Чем они будут заменены, пока неизвестно (потому что работа над этим ещё не проведена). Существует ещё множество удивительных подвохов, о которых я написал целую статью. Поэтому очень сомнительно, что полученный результат будет лучше, чем тот Биткоин, который мы имеем сейчас.
Что случилось со свободным рынком?
В теории, ничто из вышеперечисленного не должно было бы стать проблемой. Lightning Network, воплощаемая поверх блокчеина, нуждается в сравнительно небольших и простых обновлениях протокола для того, чтобы она лучше работала в полную силу. Таким образом, люди, которые хотят исследовать это направление развития, свободны поступить так. Если то, что получится из Lightning Network, будет лучше чем простой Биткоин, то рынок предпочтёт проводить платежи этим методом – всё честно. Текущая архитектура Биткоина – вряд ли последнее слово в электронных платежах. Вполне разумно полагать, что наступит день, когда она будет вытеснена другим решением.
Но система, которую из себя представляет Биткоин, работает уже сегодня. Она включает в себя целую экосистему: разработчиков, обменники, кошельки, людей, покупающих и продающих биткоины, биткоин-банкоматы, литературу по Биткоину, приложения, проводящиеся конференции, и просто огромное количество людей, которые смогли понять, как работает Биткоин.
Кто в этой экосистеме, имея свободный выбор, решит перейти на радикально отличающуюся систему?
Мы этого не знаем. Но люди, которые лоббируют Lightning Network, не хотят, чтобы это решал рынок. Вот что пошло неправильно!
Длительное время назад Сатоши вставил в код временную затычку: он ограничил размер каждого блока одним мегабайтом. Он сделал это для того, чтобы поддерживать размер блокчеина небольшим в первое время его существования, до тех пор, пока не будут разработаны SPV-кошельки (которые также известны как «ноды, работающие в режиме клиента» или «неполные ноды»). Как видно из приведённой выше цитаты, он никогда не считал это решение перманентным, и говорил о том, что от него необходимо избавиться, когда придёт время. Совместно с моим уважаемым коллегой Андреасом Шилдбахом, я реализовал первый SPV-кошелёк в 2011 году: мы создали первый и до сих пор наиболее популярный кошелёк для Android. С тех пор SPV-кошельки были реализованы для всех платформ. Таким образом, та причина, по которой Сатоши установил временное ограничение, давно уже устранена.
С ростом Биткоина рос и средний размер блоков. Обоснованные расчёты, строящиеся на том, что информация о Биткоине и дальше будет распространяться, показывают, что мы достигнем потолка текущей системы где-то в следующем году, или, в крайнем случае, в 2017. А ещё один ценовой пузырь или широкое медиа-освещение могут нас подвести к этому потолку намного быстрее. Результаты этого, скорее всего, нам не понравятся.
Поэтому именно сейчас необходимо увеличить лимит на размер блоков, или отказаться от него вообще. Таков был план с самого начала. Именно в этом месте и начинается проблема: те, кто не хотят, чтобы Биткоин масштабировался, буксуют процесс развития. Они видят редко представляющуюся возможность принудительно изменить задуманный изначально путь Биткоина в сторону совершенно другой технологии. Они ещё не знают точной архитектуры этой технологии, и, как видно, ещё не имеют готовых разработок. Они считают, что блокируя масштабирование блокчеина, они могут «заинтересовать» (т.е. заставить) биткоин-сообщество перейти на другую технологию, которая больше по вкусу им самим.
Зачем ограничивать блокчеин?
До сих пор в этой статье я не конкретизировал аргументацию этих людей, и не указал конкретно, кто они. Я долго думал о том, чтобы указать в статье конкретные имена, но в итоге счёл это бесполезным. Те, кто пристально следят за разворачивающейся драмой, уже их знают, а те, кто не следят, всё равно не узнают имён причастных людей.
Достаточно будет сказать, что эти люди или имеют коммит-доступ к репозиторию Bitcoin Core, либо работают с теми, кто его имеет.
Так что давайте вместо личностей попробуем обсудить их агрументацию и доводы, которых довольно много. Про каждый из них Гэвин и я написали опровергающие статьи. Иногда ответы были простыми, иногда для опровержения требовалось проведение глубокой кропотливой работы: например, проведение сетевых симуляций.
Лучшее место для того, чтобы узнать об этих доводах – блог Гэвина. Я хотел бы привести ссылки на похожие доводы, опровергающие, в свою очередь, работу Гэвина, но, увы, таких просто нет.
Сегодня мы можем обобщить результаты длинных изнуряющих дебатов, разделяя доводы против увеличения лимита на следующие группы:
- Если Биткоин в текущем виде «сломается», то сообщество будет заинтересовано придумать что-то лучшее;
- Лимит на размер блоков должен быть увеличен, но пока ещё рано это делать (а когда именно, не уточняется);
- Если Биткоин будет масштабирован, то он может стать менее децентрализованным и перестанет быть «тем самым» Биткоином.
Существуют и другие: если какой-то из доводов, о которых вы слышали, здесь не приведён, вы можете прочитать о нём в блоге Гэвина.
Первый пункт однажды может стать правдой: сложно сравнивать Биткоин с теоретическими системами, существующими только на бумаге. Однако, все, кто изучал альтернативные подходы, считают, что ни один из них не может быть реализован в течение 12 месяцев, а за это время биткоин-сеть уже скорее всего выйдет за пределы своей пропускной способности (см. примеры: 1, 2).
Второй пункт слишком расплывчат, чтобы высказать по нему конкретные возражения. Существуют убедительные причины полагать, что апгрейд всех полных нод может занять как минимум год, в то время как превышение пропускной способности сети вызовет серьёзные проблемы. Мы должны были начать процесс масштабирования ещё вчера. В списке рассылки биткоин-разработчиков участвуют два человека, которые имеют профессиональные знания о планировании пропускной способности для крупных проектов, и они оба считают, что процесс надо начинать уже сейчас. Настаивать на том, чтобы отложить это процесс на неопределённое время – непрофессионально.
Последний пункт наиболее проблемный и горячо обсуждаемый. Он основан на двух предположениях:
- Если Биткоин может расти, он будет расти, и он будет расти быстрее, чем будут падать цены на обслуживание, несмотря на технологический прогресс;
- «Небольшой», но в некотором абстрактном смысле более «децентрализованный» Биткоин лучше, чем «большой» Биткоин, которым смогут пользоваться все.
Было бы здорово, если бы Биткоин был настолько привлекателен, что спрос на транзакции бесконечно рос: тогда я мог бы прекратить разработку ПО и ждать, пока цена на монеты вырастет, и я стану богатым. Но мы живём в реальном мире, и Биткоин находится на рынке, где существует конкуренция. Рост – это не дарованное свыше благо. Каждый новый присоединившийся к сети пользователь требует усилий и времени. Спрос на Биткоин растёт и сейчас, но небольшими темпами. Хотел бы я с уверенностью сказать, что стоимость поддержки полной ноды будет расти: это означало бы то, что Биткоин будет расти быстрее, чем вся индустрия компьютерного железа! А она поразительна: когда в 2007 году был запущен первый iPhone, он стоил $500. Всего спустя 7 лет, смартфон Forme P9 продаётся лишь за $30. А ведь этот смартфон имеет не только все возможности, которые имел тот iPhone, но и многие другие.
Со вторым предположением мы переходим к основе всех дебатов: должны ли мы допускать рост Биткоина, если это потребует изменения структуры сети в процессе?
Текущая система, где каждый пользователь является нодой сети – не лучшая идея для широкого масштабирования. Это было бы примерно так же, как если бы каждый пользователь Usenet запускал свой NNTP-сервер. Архитектура Биткоина позволяет быть пользователям просто пользователями.
– Сатоши Накамото, июль 2010 г.
Основатель Биткоина дал чёткий ответ на этот вопрос: ДА.
И мы постоянно работали над тем, чтобы ответ не изменился. Потому что «НЕТ» нарушит социальный контракт между всеми пользователями сети и пойдёт против желаний очень многих людей в биткоин-сообществе.
Те, кто действительно верят в то, что Биткоин – только для узкой категории гиков, которые подробно разбираются в деталях работы сети, а не для простых людей, могут создать свой альткоин с ограничением на размер блока в качестве одного из из основополагающих элементов видения этой системы. Но почему-то вместо этого они пытаются превратить Биткоин в такую сеть, используя старую неудачную затычку в коде.
Непринятие решений
Почему все эти вопросы не могут быть решены более цивилизованным путём, чем открытый раскол?
Если говорить просто, то процесс принятия решений в Bitcoin Core элементарно не работает!
В теории, как и все остальные open source-проекты, Bitcoin Core имеет лидера. Его работа – ведение проекта и принятие решений о том, что в него будет добавлено, а что нет. Хороший лидер учитывает обратную связь, взвешивает аргументы, а затем принимает решения. Но в случае Bitcoin Core, разговоры о лимите на размер блока не заканчиваются уже в течение нескольких лет.
Проблема заключается в том, что любое изменение, вне зависимости от очевидности в его необходимости, может быть полностью отклонено, если оно становится «спорным». Это означает, что любой человек с коммит-доступом может его заблокировать. Наличие 5 человек, которые имеют такой доступ, а также учёт мнений и многих других насчёт «спорности» – это ничто иное, как рецепт тупика. То, что лимит на размер блока никогда не предполагался вечным становится неважным: спор, возникший по этому вопросу сам по себе означает невозможность отмены лимита. Это похоже на собрание, которое никогда не кончается из-за того, что нет председательствующего. Можно процитировать одного из коммиттеров, который вполне доволен существующим тупиком: «Биткоину лидер нужен так же, как рыбе нужен велосипед».
Что насчёт всех остальных?
К сожалению, не все согласны с тем, что нужно прислушаться ко всему сообществу.
Однако, увеличение лимита на размер блоков поддерживается многими членами сообщества, среди которых:
- Разработчики наиболее популярных кошельков под iOS, Android и одного из наиболее популярных веб-кошельков. Все они обслуживают миллионы пользователей;
- Несколько крупнейших биткоин-бирж;
- Два крупнейших оператора биткоин-платежей, которые обслуживают большую часть рынка;
- Крупные майнинг-пулы, включая китайские;
- Двое из пяти коммиттеров в Bitcoin Core (Гэвин и Джефф);
- Опросы пользователей на форумах показывают поддержку в 75-80%.
Этот список далеко не полон. Многие другие ключевые игроки рынка не дали публичных комментариев по данному вопросу, но выразили поддержку Гэвину и мне в личной переписке.
Так что, как видите, это не какая-то странная акция по захвату Биткоина, которую начали мы с Гэвином. Если бы не мы продвигали предлагаемые изменения, то это наверняка делал бы кто-то другой.
Как те, кто продвигает идею о том, что лимит в 1 Мб должен остаться, объяснили свою позицию своим оппонентам?
Никак, так как они не считают нужным ни объяснять её, ни слушать мнение других людей. Можно процитировать одного влиятельного участника Bitcoin Core:
Если начать слушать биткоин-компании, мы рискуем получить ложное чувство консенсуса.
Но биткоин-компании собрали людей, которые разбираются в технологии, любят Биткоин и свою работу, уделяют этому направлению много времени. Однако их общее мнение и взгляды почему-то считаются «ложным чувством консенсуса».
Как насчёт разработчиков кошельков? Именно они знают всё о повседневных потребностях обычных пользователей.
Их тоже никто не спрашивал. А когда они заговорили сами, ничего не произошло, потому что их мнение сочли не относящимся к делу.
И это неудивительно: те, кто управляют Bitcoin Core, считают, что значимость чьего-либо мнения зависит от того, сколько они написали кода именно для Bitcoin Core. Со временем становится всё более ясно, что «консенсус», о котором они так часто говорят, в реальности означает только консенсус между небольшим количеством людей, независящий от мнения всего сообщества.
Другими словами, «консенсус разработчиков» – это маркетинговая уловка, скрывающая правду. А правда заключается в том, что всего два или три человека могут в корне изменить Биткоин так, как они захотят.
Осознают ли они то, что большое количество людей с ними не согласны? Нет. Вот ещё одна цитата одного из коммиттеров:
Гэвин, по всей видимости, единственный, кто среди сообщества разработчиков Bitcoin Core настаивает на
этом [увеличении лимита – прим. пер.] Многие из моих коллег [в компании Blockstream – прим. пер.] выражают беспокойство о выживании Биткоина как децентрализованной системы, и их беспокойство представляет из себя мнение подавляющего большинства технологического сообщества.
Это утверждение может быть правдой только в том случае, если классифицировать всех остальных разработчиков, работающих на Биткоин вне Bitcoin Core, как не «технологических».
Как этот спор может быть разрешён?
Очевидно, что это большая проблема. Коммуникация между сторонами сторонами не работает, и обе стороны считают, что яро защищают децентрализацию и то самое «Единственно верное видение Биткоина». Сообщество разделилось.
Таким образом, для решения вопроса остаётся один вариант. Мы можем создать изменённую версию программного обеспечения для майнеров и предоставить им возможность голосовать. Если большинство майнеров перейдёт на новую версию, то после первого блока с размером более 1 Мб, меньшинство останется на ответвлённом блокчеине. Для того, чтобы присоединиться назад к большинству, им потребуется тоже обновиться. Если же большинство никогда не перейдёт на новую версию, то форк не случится и мы упрёмся в ограничение в 1 Мб.
Нам кажется, что такой вариант должны поддерживать все: ясно, что консенсус не может быть достигнут обычными механизмами, и попытка провести что-то похожее на голосование – это неплохой вариант, чтобы как-то сдвинуться с мёртвой точки.
Но мы приходим к последнему и наиболее фатальному источнику разногласий.
Из пяти коммиттеров Bitcoin Core, Гэвин и Джефф поддерживают форк, но остальные трое считают, что любой спорный хард-форк – непродуманное, сумасшедшее и безрассудное решение, которое никогда не должно было случиться, а его претворение в жизнь может навредить Биткоину, возможно даже фатально.
Мы принципиально не согласны с таким подходом. Мы не думаем, что небеса разверзнутся, если блокчеин разделится. Мы считаем, что люди, которые останутся на стороне маленьких блоков рано или поздно обновят программное обеспечение и присоединятся к остальным. Им будет предоставлено достаточно времени, чтобы они могли узнать об изменениях и подготовиться к ним. Но, конечно же, это не влияет на мнение разработчиков Bitcoin Core, которым не нравятся хард-форки, и они настойчиво выступают против них.
Если вкратце, то они считают, что единственный механизм Биткоина, который может проверить адекватность их работы, никогда не должен использоваться.
Я не думаю, что они действительно хотели, чтобы дело дошло до этого, но, увы, так получилось. Их подход заключается в том, что не должно существовать никакой альтернативы их решениям. Что всё то, что им не нравится по какой-либо причине, никогда не должно появиться на свет… И в том, что Биткоин – их личная игрушка, с которой они могут делать всё, что им заблагорассудится.
Такое положение дел не может продолжаться далее. Bitcoin Core показали, что они не могут реформироваться, поэтому его необходимо оставить в стороне.
Вот почему был создан форк Биткоина.
Мы надеемся, что все это поймут.
Автор: nikzh