Немного о возможности форка в системе Биткоин (часть II)

05.07.2017

Немного о возможности форка в системе Биткоин (часть II)

Переход на новые стандарты консенсуса носит название активации. Первый софтфорк был осуществлен Сатоши Накамото в 2010 году, когда он ограничил размер блока до 1 Мб. С тех пор их величина строго лимитирована и любая единица, не соответствующая заданным параметрам, автоматически отвергается системой. Следует отметить, что активация была проведена весьма небрежно. Но на тот момент сеть была небольшой и объемы транзакций настолько незначительные, что никаких противоречий не возникало.

Позднее вступили в силу новые стандарты, согласно которым оценка блока проводилась не по его высоте, а исходя из временного параметра. Было организовано два форка, в результате которых внедрили BIP 16 и BIP 30. Первый механизм предусматривал использование мультиподписи при совершении транзакций, тогда как второй требовал указания уникальных идентификаторов при проведении операций.

Процедура BIP 34 предусматривала отражение в Coinbase данных о высоте блока. В итоге, появился новый вариант активации, называемый ЯСБ (что означает ЯвляетсяСуперБольшим). Этот BIP стал первым механизмом с майнерской активацией, сокращенно MASF. Планировалось, чтобы все без исключения версии блока прописывались в ходе запуска, начиная с единицы. Но их внедрение возможно только после того, как количество единиц новой версии достигнет 75% в последней тысяче блоков. А после достижения планки в 95%, единицы более ранней версии будут автоматически отвергаться системой.

Аналогичный механизм был использован в BIP 65 и BIP 66. Но по мере внедрения, стали очевидны его недостатки. Главной проблемой стали имеющиеся ограничения в работе механизма. Так, после очередного внедрения софтфорка происходило увеличение блока, но процедуру можно было провести только один раз. Плюс ко всему механизм не запускался, если предыдущая процедура не была завершена. Также активация всех последующих процедур была возможна только при условии успешного запуска предыдущих. Если процесс завершался неудачно, то дальнейшее разворачивание механизма было невозможным.

Подобные недостатки стали причиной разработки нового механизма активации, получившего название BIP 9. Его внедрение существенно изменило процедуру. Так, стало возможным параллельно запускать сразу несколько софтфорков. Кроме того, активация больше не имела привязки к номеру версии. Вместо этого в заголовке блока в графе «версии» можно было отражать разные значения. После запуска появилась возможность очистить поле и использовать его для проведения дальнейших процедур. Теоретически появилась возможность одновременной активации 29 форков. Успех начинания напрямую зависит от значения хешируемой мощности.

Другими словами, зависимость механизмов ISM и BIP 9 от вычислительных мощностей объясняется весьма просто. Хотя система не требует, чтобы обновление узлов происходило в одно и то же время, майнерам приходится проходить этот этап. В противном случае они не смогут внедрить новые стандарты, что, в свою очередь, не позволит им проверить работоспособность системы, отвергающей не законченные майнингом блоки. Применение сигнализирования позволило держать под контролем процесс до того момента, пока большинство майнеров не начали использовать новые стандарты. В итоге, риск разделения сети был сведен к минимуму.

Значение в 95% было выбрано для безопасности. Ведь активация софтфорка не подразумевает проведения голосования. Поэтому необходимо дать сообществу время для обсуждения и принятия идеи. Наиболее удачным вариантом можно назвать BIP 9, который сумел решить вопрос с координацией транзита, и при этом внести минимум изменений в сеть.

Но далеко не всегда активация проходит гладко. Ярким примером является запуск BIP 66. Большинство майнеров активно сигнализировали о готовности принять его, но так и не внедрили новых стандартов. В итоге, они создали цепочку поверх сети, которую отвергали узлы, принявшие BIP 66. Добытые блоки так и не были засчитаны системой, а работа майнеров осталась неоплаченной. Подобная деятельность впоследствии была названа майнингом без подтверждения и считается порочной практикой.

Механизм BIP 9 был использован для внедрения целого пакета форков, призванного активировать блокировку времени. Благодаря предпринятым мерам, запуск прошел без затруднений.

С появлением нового форка — BIP 141, получившего название SegWit, система раскололась на части и уже никогда не будет такой, как прежде. Нельзя сказать, что в криптовалютном сообществе наблюдался недостаток информации. Но этот форк, как никакой другой, вызвал целую волну непонимания. В итоге, он превратился в политизированный инструмент. С течением времени раскол в сообществе еще больше усугубился. При этом стороны особенно не пытались открыто обсудить имеющиеся проблемы масштабирования, которые явно дали о себе знать непосредственно перед внедрением форка.

Следует отметить, что представители крупных майнинговых пулов заявили о поддержке BIP, но после его активации, значительная часть мощностей отказалась от его принятия. Некоторые пулы пошли еще дальше и заявили о намерении внедрить ранние версии софта, которые уже несовместимы с остальной системой. Также они потребовали внести изменения в протокол, характер которых вызвал категорический отказ со стороны большей части разработчиков.


Назад