В начале этого месяца сообщество Биткоина всколыхнуло предложение, названное UASF (User Activated Soft Fork, софтфорк, активируемый пользователями) от анонимного разработчика под псевдонимом “Shaolin Fry”. Он предложил «подтолкнуть» голосование по активации SegWit с помощью голосование не майнеров, а непосредственно узлов, то есть, теоретически, через выражение воли всех пользователей Биткоина, которые могут запустить полный клиент сети.
Это предложение некоторое время очень активно обсуждалось, но так как не был предложен надежный механизм его практической реализации, оно не получило развития. Однако, ShaolinFry пошел дальше, и создал предложение по улучшению Биткоина — BIP148, описывающий возможность проведения UASF. Правда, оно пока не содержит ничего, кроме описания.
Однако, это не помешало пулу Bitfury начать генерировать блоки с поддержкой этого предложения. За последние сутки замечено, как минимум, четыре таких блока. На иллюстрации ниже вы можете видеть первый из них, с подписью в области coinbase, содержащей строку /Bitfury/SEGWIT/BIP148:
К чему приведет реализация BIP148
Суть BIP148 состоит в том, чтобы активировать SegWit принудительно, подобно тому, как в 2012 году был внедрен механизм P2SH с помощью BIP16. Этот процесс отнесен к категории софтфорков, но по своему действию более походит на хардфорк.
UASF должен быть запущен в том случае, если SegWit не будет активирован майнерами до 1 октября 2017 года. Он предполагает установку на 1 октября «дня решения» (flag day), когда все узлы, поддерживающие этот «софтфорк», начинают отвергать блоки, не соответствующие установленным правилам, в рассматриваемом случае — те, в заголовке которых не установлен в единицу бит поддержки segwit (согласно BIP9). Таким образом, все поддержавшие UASF узлы не будут принимать и распространять блоки майнеров, которые не голосуют в поддержку SegWit (разумеется, в их число входят и пулы, голосующие за Bitcoin Unlimited).
Подобное поведение значительной части узлов приведет к раздвоению если не блокчейна, то самой глобальной сети Биткоина — блоки «без сегвита» не будут распространяться узлами UASF. Если таких узлов будет большинство, то майнеры, генерирующие «неправильные» блоки, останутся изолированными в узком кругу своих сторонников, или просто тех, кто не установил клиент с поддержкой SegWit.
По замыслу автора BIP148, этот процесс должен «выкинуть из сети» всех противников SegWit до даты окончания голосования майнеров. Таким образом, активация пройдет «без запинки» и не потребуется перезапуск голосования.
Но насколько чистым будет подобное голосование? Если майнеры подтверждают свои голоса работой своего оборудования, то голосование количеством узлов более похоже на «гонку ботнетов». И если BIP148 будет действительно включен в код Bitcoin Core или какого-либо альтернативного клиента, следует ожидать взрывного роста количества нод в сети — как с одной, так и с другой стороны.
Остается только понять мотивацию Bitfury, запустившего на части своих мощностей (около 15%) поддержку еще не реализованного в коде предложения. Возможно, таким образом пул и стоящая за ним компания предупреждают своих китайских противников, что готовы пойти до конца в конфликте, вызванном неприятием SegWit значительной частью майнеров? Или это только «проба сил», легкий троллинг противников и попытка завоевать лишние симпатии среди своих сторонников? Все возможно, но официального заявления от компании на данный момент не было.