092015–2017
Blocksize War: кто вправе менять правила Биткоина
Спор начался не с героев и злодеев, а с заполненных блоков. Завершился несколькими цепочками и практическим ответом: ни Hashpower, ни компании, ни разработчики сами по себе не определяют, что обязан принять узел.
Один мегабайт выглядел техническим параметром, с которым справятся более быстрые компьютеры и приличный тест производительности. К 2015 году он превратился в спор о будущем денег и о людях, имеющих право говорить, что такое Bitcoin. Gavin Andresen и Mike Hearn выступали за существенно большие блоки. Разработчики Pieter Wuille и Gregory Maxwell предупреждали о цене для операторов узлов. Майнеры, биржи, инвесторы и анонимные пользователи добавляли собственное давление. Blocksize War была не одной ссорой и не дуэлью двух лагерей. Это была двухлетняя череда предложений, ультиматумов, конференций, релизов и сроков, в которой каждая группа узнавала разницу между тем, на что может повлиять, и тем, что может навязать.
Полные блоки и два разных опасения
По мере роста использования блоки приближались к пределу, комиссии росли. Сторонники больших блоков предупреждали, что дорогие транзакции вытеснят повседневные платежи и сделают Bitcoin сетью для богатых. Сторонники осторожности опасались, что быстрый рост данных и требований затруднит домашний Full Node и сосредоточит проверку в дата-центрах.
Обе стороны говорили о децентрализации, но измеряли её по-разному. Одна — числом людей, способных оплатить транзакцию, другая — числом способных самостоятельно проверять правила. Bitcoin XT, Classic и позднее Unlimited обещали прямое увеличение. Разработка SegWit искала изменение формата транзакций и более эффективное использование места.
Одномегабайтный предел не был ни законом природы, ни исходной целью Bitcoin. Satoshi ввёл его для защиты молодой сети от чрезмерных блоков. Спор шёл не о праве изменить священную константу, а о скорости роста, при которой проверка не перейдёт к людям с самыми быстрыми соединениями, большими дисками и долгим терпением при первичной синхронизации. Даже небольшое техническое изменение несло долгосрочный образ того, кто сможет сказать: правила я проверил сам.
BIP101 от Andresen предлагал скачок до восьми мегабайт и дальнейший предсказуемый рост лимита. Hearn включил его в Bitcoin XT, и оба публично призвали майнеров и пользователей поддержать изменение. Для них полная очередь транзакций нарушала исходное обещание дешёвых электронных наличных. Если новичку придётся конкурировать высокой комиссией за маленький платёж, сеть, по их мнению, проиграет картам прежде, чем войдёт в обычную жизнь.
По другую сторону стояли не люди, желавшие оставить Bitcoin маленьким. Pieter Wuille предложил Segregated Witness, Gregory Maxwell и другие говорили о вторых слоях и эффективном использовании каждого байта. Их опасение смотрело на несколько шагов вперёд: большой блок сегодня навсегда повышает требования к связи, хранению и проверке. Когда домашний узел станет непрактичным, пользователь начнёт доверять чужому серверу. Оба лагеря защищали доступность, но видели её с разных сторон транзакции.
Нью-Йоркское соглашение
В мае 2017 года группа крупных фирм и майнеров объявила New York Agreement. План SegWit2x соединял быструю активацию SegWit с последующим Hard Fork до двухмегабайтного базового блока. Подписанты указывали на большую долю Hashpower и объёма транзакций и вели себя так, будто координация ведущих предприятий могла закончить спор.
Но соглашение не связывало пользователей другого ПО. Критики прежде всего отвергали идею закрытого совещания, обещающего от имени сети несовместимое изменение. Майнеры могут предлагать блоки, фирмы — давать им бренд; узел всё равно может признать их недействительными.
Первоначальное объявление говорило о 58 компаниях из 22 стран и 83,28 процента Hashpower. Весомые цифры не измеряли согласия независимых узлов или держателей вне сервисов подписантов. Связка SegWit и позднего Hard Fork создавала политический обмен: каждая сторона получит часть желаемого. Когда первая часть активировалась, а вторая осталась спорной, оказалось, что у пакета нет учреждения, способного принудить к завершению.
Соглашение организовал основатель Digital Currency Group Barry Silbert на конференции Consensus в Нью-Йорке. За столом сидели представители бирж, кошельков, платёжных и майнинговых компаний; реализацией SegWit2x руководил Jeff Garzik. Для уставших от спора предпринимателей это выглядело взрослым компромиссом: влиятельные люди наконец согласовали срок и подписались названиями фирм. Но в Bitcoin не было реестра членов, где их подписи означали бы квалифицированное большинство.
Критики реагировали не только на два мегабайта, но и на способ решения. Adam Back, Gregory Maxwell и другие предупреждали: несовместимое изменение с коротким сроком ставит пользователей перед фактом. Подписанты контролировали сервисы с большим потоком людей, майнеры могли предоставить большую часть Hashpower. Но удалённо поменять правила проверки узла в чужой квартире они не могли. Возникла странная ситуация: крупнейшие компании объявляли, что будут называть Bitcoin, а каждый хозяин узла сохранял собственную кнопку отказа.
UASF, BIP91 и цепочка, которая не раскололась
BIP148 предложил User-Activated Soft Fork: с 1 августа участвующие узлы должны были отвергать блоки, не сигнализирующие SegWit. Это было рискованное давление. Если экономически значимая часть сети останется в стороне, могли возникнуть конкурирующие истории или хаотические реорганизации.
Но ещё до решающего дня майнеры через BIP91 начали сигнализировать условия, ведущие к фиксации SegWit. Поэтому нельзя честно приписать результат одному участнику: угроза UASF изменила стимулы, майнеры координировали сигналы, существующие узлы применяли правила совместимого Soft Fork. SegWit активировался 24 августа 2017 года.
Узлы BIP148 не могли сами намайнить SegWit или заставить остальных использовать его. Они могли лишь заранее обещать не принимать определённую группу блоков после срока. Сила обещания зависела от поддержки бирж, торговцев, кошельков и держателей, чьи монеты придают цепочке экономический смысл. UASF стал публичным обязательством в координационной игре: действовал не приказ, а убедительная возможность того, что непослушная цепочка получит Hashpower, но меньше покупателей.
BIP148 опубликовал разработчик под псевдонимом Shaolinfry. Люди надевали кепки UASF и называли 1 августа днём независимости. За мемами стояла серьёзная ставка. Продолжи майнеры работу без сигналов при значительной экономической поддержке BIP148, истории могли временно разделиться, а пользователи — не знать, какой входящий перевод сохранит силу. Активист с узлом рисковал не лозунгом, а собственной способностью безопасно получать деньги.
BIP91 от James Hilliard дал майнерам способ согласоваться до срока и зафиксировать сигнализацию SegWit при более низком пороге. Когда поддержка резко выросла, каждая сторона увидела своё. Сторонники UASF — доказательство изменения стимулов под давлением пользователей; майнеры указывали на свою координацию, подписанты New York Agreement — на компромисс. История не даёт контрольного эксперимента, из которого можно убрать одну группу. Несомненно лишь то, что угроза конфликта заставила всех действовать раньше.
Bitcoin Cash отделился, SegWit2x отступил
1 августа отделился Bitcoin Cash с большими блоками и собственными правилами. Это была не перезапись исходных узлов, а новая несовместимая цепочка с общей историей до разделения. Затем рынок и пользователи могли оценивать и использовать оба актива отдельно.
Вторая часть New York Agreement должна была активировать двухмегабайтный Hard Fork в ноябре. 8 ноября организаторы приостановили его, признав недостаточность консенсуса для чистого обновления. Высокая сигнализация Hashpower не стала уверенностью, что экономика примет новые блоки как Bitcoin.
В момент разделения обе цепочки делили прошлую историю и одно состояние неизрасходованных монет. Владевший ключами до разделения при определённых условиях мог распоряжаться соответствующими активами с обеих сторон. Дальше цепочки принимали разные будущие блоки и строили собственный Network Effect. Раскол не заставил старые узлы изменить определение действительной транзакции; он дал сторонникам иных правил возможность нести издержки и результаты своего выбора.
Bitcoin Cash дал сторонникам больших блоков то, чего не могла дать бесконечная дискуссия: работающую цепочку по их правилам. Биржам пришлось назначать тикер, кошелькам — решать вопрос защиты от повторения транзакций, держателям — выбирать, продать, сохранить или игнорировать новые монеты. Спор частично переместился из рассылок на рынок. Цена, Hashpower и использование обеих цепочек стали выражать непрерывный выбор, а не разовое голосование за единственного победителя.
SegWit2x задумывался иначе. Его сторонники хотели, чтобы двухмегабайтная цепочка унаследовала бренд BTC и стала продолжением, не боковой ветвью. Ноябрь приближался, но широкой поддержки клиентского ПО и ясного плана безопасной работы двух цепочек не было. 8 ноября Mike Belshe, Wences Casares, Jihan Wu, Jeff Garzik, Peter Smith и Erik Voorhees объявили отсрочку. Они признали: без большего согласия продолжат разделять сообщество, которое хотели объединить.
Власть распределена, а не отсутствует
Войну часто превращают в безоговорочную победу пользователей. Точный вывод сложнее. Разработчики влияют на внимание и качество кода, майнеры — на порядок блоков, компании — на ликвидность и бренд, пользователи — на выбор ПО и контрагентов. Ни у кого нет всех рычагов, но у некоторых их заметно больше.
Bitcoin тогда не голосовал одним числом. Он координировался через код, публичные аргументы, деловые решения, сроки и готовность рискнуть разделением. Результат не был тихим или дешёвым. Именно в этом его смысл: правила сохранились не из-за отсутствия спора, а потому, что для изменения недостаточно убедить лишь самую заметную переговорную комнату.
Nakamoto Consensus определяет порядок транзакций внутри совместно принятых правил. Это не парламент, переписывающий сами правила голосованием Hashpower. Майнер может создать блок с огромным объёмом работы, но узел отбросит его, если он нарушает его программу. Поэтому выбор правил происходит вне самого Blockchain: в коде, версиях клиентов, ценах, договорах и выборе торговых партнёров. Blocksize War не открыла простую конституцию Bitcoin. Она показала систему, в которой изменение возможно, но никто не имеет гарантированного права назвать его консенсусом.
Люди с каждой стороны заплатили личную цену. В январе 2016 года Mike Hearn публично ушёл, объявив эксперимент неудачным. Gavin Andresen потерял прежнее положение в Bitcoin Core. Разработчики столкнулись с кампаниями, компании — с бойкотами, отдельные люди — с атаками, превращавшими техническое несогласие в проверку характера. Победный рассказ часто сплющивает их до предателей и героев. Точнее признать: многие защищали разные представления об одной цели и порой применяли давление, которое сами считали необходимой защитой.
После войны слово «консенсус» стало осторожнее. Оно уже не означало простого числа сигналов майнеров, списка фирм или согласия ведущих разработчиков. Оно означало состояние, когда достаточно участников считают изменение безопаснее разделения, а остальные не имеют воли или силы поддерживать конкурирующие правила. Это не изящная система голосования. Это постоянные переговоры, в которых возможность уйти придаёт вес людям без должностей — и никогда не гарантирует их цепочке цену, пользователей или безопасность.
Люди и понятия в Атласе
Источники и границы истории
- 01BIP 101 — Increase maximum block size
Одно из основных формальных предложений автоматического роста лимита.
- 02BIP 141 — Segregated Witness
Техническая спецификация SegWit и Block Weight.
- 03Digital Currency Group — Bitcoin Scaling Agreement at Consensus 2017
Исходный текст New York Agreement и список подписантов.
- 04SegWit2x Working Group — archived repository
Документация того времени о цели и реализации SegWit2x.
- 05BIP 148 — Mandatory activation of SegWit deployment
Спецификация и сроки UASF.
- 06BIP 91 — Reduced threshold SegWit MASF
Механизм координации майнеров, закрепивший сигнализацию до 1 августа.
- 07Bitcoin ABC — UAHF technical specification
Тогдашняя спецификация отделения Bitcoin Cash.
- 08SegWit2x mailing list — Onwards
Объявление от 8 ноября 2017 года о недостаточном консенсусе для Hard Fork.