Блокчейн/Уровень III · Сеть/3.3 Консенсус и управление/Урок 6
Активация SegWit и UASF
Противостояние между вычислительной мощностью и экономическими интересами
МатериалыЭксплорер блоков с историческими данными (например, blockchain.com или mempool.space)Репозиторий BIP на GitHubБлокнот для отслеживания битов версии и высот фиксации (lock-in)
Любопытство
- Почему софт-форк с широкой поддержкой пользователей большую часть года оставался неактивированным?
- Как активируемый пользователями софт-форк (UASF) смещает баланс сил от майнеров к операторам полных нод?
- Что предотвратило раскол цепи из-за BIP148 (UASF) 1 августа 2017 года?
Исследование
- BIP141, Segregated Witness, использовал сигнализацию BIP9, при которой для подтверждения готовности требовалось 95% блоков за период из 2 016 блоков. В течение 2016 года и в начале 2017 года поддержка майнеров застряла на уровне около трети хешрейта сети. Этот тупик создавал напряжённость, поскольку стандартный механизм активации полагался на то, что майнеры добровольно сообщат о готовности применять новые правила консенсуса.
- Разработчик под псевдонимом Shaolin Fry представил BIP148 в марте 2017 года как активируемый пользователями софт-форк (UASF): с 1 августа 2017 года участвующие ноды должны были отклонять любой блок, не сигнализирующий о SegWit. Это грозило расколом цепи, если бы большинство майнеров его проигнорировало, но срок теперь устанавливали ноды пользователей, а не майнеры.
- Нью-Йоркское соглашение в мае 2017 года было попыткой урегулировать спор между компаниями и майнерами. Подписавшие его стороны обязались сначала активировать SegWit, а затем провести хард-форк до 2 МБ, известный как SegWit2x. Большинство участников разработки Bitcoin Core выступили против хард-форковой части и не приняли в нём участия.
- Чтобы избежать раскола в августе, в июле 2017 года был принят BIP91. Это было отдельное развёртывание, которое фиксировалось, как только 80% блоков сигнализировали битом 4; после активации ноды BIP91 отклоняли блоки, не сигнализирующие о SegWit, что позволило собственной сигнализации SegWit преодолеть порог 95% и сохранило совместимость цепи с нодами BIP148.
- SegWit был внедрен 9 августа 2017 года (блок 479,808) и активирован в блоке 481,824 24 августа 2017 года. 1 августа 2017 года произошел жесткий форк Bitcoin Cash — отдельное событие, вызванное теми, кто отверг подход SegWit в пользу более крупных блоков. Оригинальная цепь продолжила работу с функцией SegWit, в то время как Bitcoin Cash пошел своим путем, используя собственную стратегию масштабирования.
- Запланированный на ноябрь 2017 года хард-форк SegWit2x был отменён из-за сильного сопротивления бирж и пользователей, опасавшихся необратимого раскола. Уроки этой истории оцениваются по-разному: сторонники UASF считают, что исход обеспечили ноды пользователей, а другие утверждают, что майнеры и компании сами решили активировать SegWit через Нью-Йоркское соглашение и BIP91. Так или иначе, оказалось, что спорным изменениям нужна одновременная поддержка майнеров, компаний и операторов нод.
Ключевые факты
- BIP148 (UASF), предложенный Shaolin Fry в марте 2017 года, предписывал нодам с 1 августа 2017 года отклонять блоки, не сигнализирующие о SegWit.
- SegWit был введен 9 августа 2017 года (блок 479,808) после того, как шахтеры дали сигнал по протоколу BIP91, и активирован 24 августа 2017 года в блоке 481,824.
- Bitcoin Cash отделился от Bitcoin 1 августа 2017 года через хард-форк с более крупными блоками, тогда как в исходной цепи был активирован SegWit.
- Нью-Йоркское соглашение (май 2017 года) подписали компании, представлявшие примерно 83% хешрейта; его часть с хард-форком до 2 МБ, SegWit2x, была прервана в ноябре 2017 года.
- Сигнализация BIP9 для SegWit началась в ноябре 2016 года, но застопорилась, несмотря на широкую поддержку пользователей, что побудило разработать UASF в качестве контрмеры.
- BIP91 зафиксировался при сигнализации 80%, а затем сделал сигнализацию SegWit обязательной, что позволило избежать раскола цепи из-за BIP148.
Упражнение девять, шесть, три, один
9СобратьПеречислите 9 ключевых дат с ноября 2016 года по ноябрь 2017 года, связанных с процессом активации SegWit.
6СгруппироватьСгруппируйте эти 9 дат в 6 этапов: первоначальный застой, предложение UASF, Нью-Йоркское соглашение, принятие BIP91, фиксация и активация SegWit, урегулирование после форка.
3Выделить главноеСократите 6 этапов до 3 ключевых движущих сил, которые определили исход процесса активации.
1КристаллизоватьНапишите одно предложение, объясняющее, почему операторы полных нод имеют значительное влияние на изменения протокола Bitcoin, хотя не контролируют майнинговое оборудование.
Проверка фактов
Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.
- BIP141: Segregated Witness (Consensus layer)
- BIP148: Mandatory activation of segwit deployment
- BIP91: Reduced threshold Segwit MASF
- J. Bier, The Blocksize War (2021)