После долго ожидания это наконец-то случилось – версия Bitcoin Core 0.13.1 подготавливает активацию протокола Segregated Witness. Новый релиз доступен для скачивания с 27 октября, однако новый формат транзакций, даже в самом лучшем варианте развития событий, не будет активирован до конца ноября.

В безумной истории развития Биткоина вряд ли было обновление, которого ждали с таким же воодушевлением, как Core 0.13.1. В новой версии программного продукта есть только одно главное нововведение – она активирует протокол Segregated Witness (SegWit), улучшенный формат транзакций, уже внедренный в Core 0.13.

Преимущества SegWit

SegWit предполагает отделение подписи от транзакции. Впервые подобная идея была высказана Питером Вюлле, (Pieter Wuille), разработчиком Bitcoin Core на конференции Scaling Bitcoin Workshop, прошедшей в конце 2015 года. На первый взгляд, SegWit кажется не более чем формальностью – подписи и так не хранятся в самой транзакции, а в дополнительном пакете данных. Но если копнуть чуть глубже, то становится ясно, что новый протокол имеет весомые преимущества для всей сети Биткоин. Вот главные из них:

  • SegWit устраняет все известные варианты изменения транзакций под внешним давлением. Это значительно упрощает разработку некоторых умных контрактов, например тех, которые создаются в Lightning Network.
  • SegWit уменьшает размер транзакции. В то время, как количество перемещающихся по сети данных остается тем же, подпись больше не является составляющей, входящей в размер блока. Если все транзакции будут производиться с использованием технологии SegWit, то эквивалентный старому формату размер блока будет в среднем составлять от 1.7 до 2.0 МБ при реальном объеме 1 МБ.
  • Благодаря отделению подписей, SegWit меняет порядок расчетов комиссионных сборов. Это позволит избавиться от довольно извращенной тенденции к наводнению базы неистраченных выходов (UTXO) транзакциями, содержащими мало «входов» и много «выходов», а также сократит расходы на очистку UTXO.

Помимо этого, SegWit упростит внедрение мягких обновлений (soft forks) в будущем, упрощая таким образом реализацию таких идей, как использование более надежных типов подписей Schnorr вместо ECDSA. Также, новый протокол изменяет размер операции sighash линейно, а не экспоненциально, что позволяет избежать задержек в валидации блоков, упрощает создание аппаратных кошельков и увеличивает безопасность транзакций, заверенных несколькими подписями.

Подводные камни

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

Одной из главных причин, по которой разработчики Core хотят увеличить производительность сети при помощи SegWit, вместо того чтобы увеличить размер блока, является то, что только в первом варианте можно будет осуществлять мягкое обновление. В то время, как принудительное обновление (hard fork) требует обязательное изменение каждого узла, для мягкого обновления необходимо только, чтобы пакет обновлений установили майнеры.

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

Учитывая все преимущества, которые предлагает SegWit, разработчики Core уверены, что майнеры охотно примут обновление. Версия 0.13.1 включает детальный план активации протокола к концу ноября, если не возникнет непредвиденных обстоятельств.

Сроки активации

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

После событий, произошедших на прошлой неделе, задержка в активации SegWit вполне возможна. Пулы ViaBTC и Bitcoin.com поддерживают альтернативный клиент Bitcoin Unlimited, разработчики которого не желают внедрять SegWit. А так как оба указанных пула вместе имеют долю примерно в 10-15% хэшрейта сети, они вполне могут предотвратить внедрение нового протокола. По крайней мере, на некоторое время.

Если говорить о долгосрочной перспективе, то скорее всего, несмотря на противостояние ViaBTC и прочих, активация SegWit все же произойдет. Однако существует большая вероятность того, что пулы-противники будут использовать неопределенное положение SegWit в качестве своеобразного заложника для проведения в жизнь жесткого обновления, которое обещали некоторые разработчики Core в так называемом «Гонконгском соглашении».