На раннем этапе развития Биткоина одним из важнейших вопросов было обсуждение его протокола. По итогам 2016 года можно с уверенностью сказать, что он вернул эти обсуждения на главную сцену. Причиной стал вопрос масштабирования сети, в частности, правильным ли будет возможность увеличение количества обрабатываемых в сети транзакций при помощи прямого увеличения размера блока Биткоина.
Судя по результатам ежегодного саммита разработчиков, большая часть сообщества согласна с тем, что лучшим решением является предложение Segregated Witness, внедрение которого должно увеличить пропускную способность сети Биткоина почти вдвое. С другой стороны, определённая часть сообщества с этим решением не согласна. Поэтому вопрос о плюсах и минусах SegWit до сих пор окончательно не решён.
Несмотря на то, что цена Биткоина вновь достигла максимальных отметок с 2013 года, похоже, что в 2017 году значение будет иметь совсем другое число – процент майнеров, которые согласятся обновиться на версию протокола, содержащую SegWit. На этом фоне 2017 год должен иметь стратегическое значение.
А пока вспомним, как развивались дебаты в прошлом году, и какие проекты и люди были с этим связаны.
Формирование двух лагерей
Итак, в конце 2015 года один из основателей Blockstream, разработчик Питер Вюлле (Pieter Wuille) презентовал предложение под названием Segregated Witness, увеличивающее пропускную способность сети без изменения размера блока путём изменения способа хранения транзакций.
Одним из преимуществ решения стала возможность его первичной реализации через софтфорк (то есть майнеры, которые его реализовали, могли сосуществовать в сети с майнерами, которые этого не сделали). Как продемонстрировал в прошедшем году Ethereum, хардфорк несёт в себе риск расщепления сети на две несовместимые версии.
После выхода технического описания Segregated Witness, предлагаемые решения проблемы масштабируемости разделились на две группы: одни стремились увеличить размер блока, а другие – оставить блок без изменений, оптимизируя другие аспекты протокола.
Поддержавшим Segregated Witness разработчикам Bitcoin Core пришлось прояснить свою позицию, запустив интернет-сайт, Twitter-канал и канал Slack.
Сторонники альтернативного решения тоже не теряли времени, и в феврале запустили клиент Bitcoin Classic, нацеленный на увеличение максимального размера блока с 1 до 2 МБ.
Практически одновременно с этим появился ещё один блок, представляющий собой консорциум майнеров и бирж, которые объявили о том, что они не собираются поддерживать предложения, подразумевающие хардфорк сети и любые другие радикальные меры.
Прогресс Bitcoin Core
Примерно в середине года, в мае, группа разработчиков Bitcoin Core собралась в Цюрихе для обсуждения кода Segregated Witness. Вскоре после этого разработчики Bitcoin Core внедрили код Segregated Witness в мастер-ветку кодовой базы Биткоина.
После нескольких месяцев тестирования разработчики Core объявили о том, что клиент Bitcoin Core версии 0.13.0 будет включать код SegWit. Помимо других технических обновлений, новая версия также включала более быструю смену блоков. В июле было объявлено об обновлении структуры распространения блоков в сети Биткоина.
Проект был направлен на оптимизацию сети при помощи увеличения скорости передачи информации о блоке между майнерами и соответствующего сокращения частоты встречаемости отвергнутых (orphaned) блоков.
Для этого разработчик и сооснователь Blockstream Мэтт Коралло (Matt Corallo) изменил конструкцию предшественника сети Bitcoin Relay Network – Fast Internet Relay Engine, заменив протокол TCP на UDP и обеспечив тем самым более быстрый обмен между узлами.
Препятствия, которые предстоит преодолеть
Тем не менее, несмотря на заметный прогресс команды Bitcoin Core, последние месяцы года доказали, что консенсус всё ещё не достигнут. Одно из препятствий приняло форму пула ViaBTC и владельца Bitcoin.com Роджера Вера (Roger Ver) – двух влиятельных противников дорожной карты Bitcoin Core.
В конце октября ViaBTC отказалсся от использования Bitcoin Core в пользу Bitcoin Unlimited – поддерживаемого Вером альтернативного программного продукта, не подразумевающего поддержку Segregated Witness. Вместо этого проблема масштабирования решается в нём при помощи изменяемого максимального размера блока, который может устанавливать консенсус майнеров.
Поскольку для активации Segregated Witness необходима поддержка 95% мощности сети, любой пул майнинга, обладающий более 5% мощности, может с успехом заблокировать этот процесс. Именно на этом месте оставил нас уходящий год: значительная поддержка Segregated Witness при противодействии активной группы оппонентов и молчании большинства майнеров.
Текущая ситуация
На время написания статьи более 50% узлов Биткоина работают на совместимых с SegWit клиентах 0.13.x, при этом активно голосуют в пользу SegWit всего 25% майнеров, и эта цифра остается неизменной с самого начала голосования. Около 7% узлов сети работает на версии Bitcoin Unlimited, при этом голосуют против Segwit около 22% майнеров. Правда, официальная позиция BW pool с 10% мощности хэширования, голосующего за блок 8 МБ, до сих пор не объявлена. В любом случае, это цифра, вполне достаточная для того, чтобы сеть не смогла переключиться на Segregated Witness.
Так или иначе, истории ещё далеко до завершения. Даже в случае успешной активации Segregated Witness, возможное увеличение объёма транзакций в 1.8 раз - теоретическая величина, применимая не ко всем транзакциям. И оно может выиграть только ограниченное количество времени, по прошествии которого вновь возникнут проблемы. Поэтому большинство разработчиков сходятся во мнении, что однажды размер блока всё же придётся увеличить.
Учитывая всё это, скорее всего, дебаты о размере блока в 2017 году будут продолжаться без гарантии победы любой из сторон, а значит, им необходимо будет договариваться.