Блокчейн/Уровень III · Сеть/3.3 Консенсус и управление/Урок 7
Активация Taproot и Speedy Trial
Механизм, который без голосования положил конец длившемуся год тупику
МатериалыЭксплорер блоков с историческими даннымиПримечания к выпуску Bitcoin Core 0.21.1Календарь для отслеживания хода событий с апреля по ноябрь 2021 года
Любопытство
- Почему сообщество согласилось насчёт подписей Шнорра, но целый год спорило о том, как их включить?
- Что меняется, когда у майнеров есть всего четыре месяца на сигнализацию о поддержке вместо окна без ограничения по времени?
- Почему между фиксацией и активацией Taproot прошло пять месяцев?
Исследование
- Taproot, включающий BIP 340, 341 и 342, ввёл подписи Шнорра и новые правила траты. Технически предложение почти не встретило сопротивления: разработчики сошлись в оценке преимуществ компактных подписей и улучшенной приватности. Тем не менее активация застопорилась, поскольку после спорной эпохи SegWit сообщество так и не решило, как развёртывать софт-форки. Код был влит в Bitcoin Core в октябре 2020 года и вышел в неактивном виде в версии 0.21.0 (январь 2021 года), но консенсуса о том, использовать ли сигнализацию BIP9 или механизм, активируемый пользователями, не было.
- Спор шёл вокруг параметра «lockinontimeout» (LOT) — варианта BIP8, при котором ноды принудительно активируют изменение в конце окна сигнализации независимо от поддержки майнеров. Сторонники утверждали, что это исключает вето майнеров; противники опасались, что это угрожает стабильности сети, поскольку при несогласии майнеров приведёт к расколу. Это напряжение сохранялось со времён тупика с SegWit в 2017 году, когда затяжные переговоры и угроза UASF в итоге вынудили пойти на компромисс. Сообщество искало способ, который уважал бы и намерения разработчиков, и экономическую реальность, без принуждения.
- Компромиссом стал «Speedy Trial», придуманный Расселом О’Коннором и описанный Дэвидом Хардингом в марте 2021 года. Он модифицировал BIP9, используя короткое окно сигнализации с высоким порогом, что позволяло майнерам быстро заявить о готовности. Если бы они этого не сделали, от предложения можно было отказаться или вернуться к нему позже. Такой подход избегал принудительного характера LOT и при этом ускорял процесс по сравнению со стандартным BIP9, при котором SegWit оставался неактивированным примерно девять месяцев сигнализации. Название отражало сжатые сроки: либо активация быстро удавалась, либо появлялись данные для будущих предложений.
- Speedy Trial был выпущен в версии Bitcoin Core 0.21.1 в мае 2021 года. В нем использовался сигнальный бит 2; время начала действия и таймаут определялись на основе среднего времени, прошедшего до этого момента; кроме того, было установлено минимальное значение для активации в размере 709,632, чтобы у кошельков и сервисов было время на подготовку. Период для сигнализации начался 24 апреля 2021 года и закончился 11 августа 2021 года. У шахтеров было примерно три с половиной месяца на то, чтобы отправить сигнал. Если они не достигали установленного порога, автоматический переход к режиму UASF не происходил, что сохраняло статус-кво, но создавало необходимость принятия четкого решения.
- Шахтеры проголосовали за внедрение Taproot в июне 2021 года, задолго до крайнего срока в августе. Быстрая реакция свидетельствует о широкой поддержке этой идеи среди шахтеров. В результате Taproot был активирован 14 ноября 2021 года на блоке номер 709,632 — при минимально необходимом уровне заполнения блоков. Это стало явным успехом механизма Speedy Trial: активация произошла без разделения сообщества или затяжного тупика. Критики отмечали, что даже короткий период для голосования позволяет шахтерам фактически использовать право вето.
- Спор о методах активации остаётся актуальным для последующих предложений, таких как ковенанты. Хотя Speedy Trial сработал для Taproot благодаря его бесспорности, его применимость к спорным изменениям неочевидна. Будущим разработчикам придётся взвешивать риск вето майнеров против угрозы нестабильности сети. Эпизод 2021 года показал, что экономические ноды и майнеры могут быстро прийти к согласию, когда технические достоинства очевидны, но такое согласие не гарантирует консенсуса по более спорным изменениям правил.
Ключевые факты
- Taproot (BIPs 340–342) был активирован в блоке 709,632 14 ноября 2021 года.
- Speedy Trial использовал окно сигнализации с 24 апреля по 11 августа 2021 года с порогом 90%.
- Speedy Trial (идея Рассела О’Коннора, описанная Дэвидом Хардингом в марте 2021 года) стал компромиссом между BIP9 и LOT.
- В мае 2021 года в версии Bitcoin Core 0.21.1 был введен механизм Speedy Trial.
- Speedy Trial устанавливает свой временной интервал исходя из среднего значения прошедшего времени, при минимальной высоте активации 709,632.
- Майнеры зафиксировали Taproot в июне 2021 года, задолго до августовского дедлайна.
Упражнение девять, шесть, три, один
9СобратьПеречислите 9 софт-форков биткоина или попыток активации (например, P2SH, BIP66, CSV, SegWit, Taproot), указав способ активации и сколько времени занял каждый из них.
6СгруппироватьСгруппируйте эти 9 в 6 групп по способу активации: flag day (заранее назначенная дата), квалифицированное большинство майнеров, сигнализация BIP9, активируемый пользователями софт-форк, Speedy Trial или иное.
3Выделить главноеСократите 6 групп до 3 компромиссов между сигнализацией майнеров и принуждением со стороны нод пользователей.
1КристаллизоватьНапишите одно предложение, объясняющее, почему короткий срок может разрешать тупиковые ситуации лучше, чем переговоры без ограничения по времени.
Проверка фактов
Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.
- BIP340: Schnorr Signatures for secp256k1 (P. Wuille, J. Nick & T. Ruffing)
- BIP341: Taproot: SegWit version 1 spending rules (P. Wuille, J. Nick & A. Towns)
- Bitcoin Core 0.21.1 Release Notes (May 2021)
- D. Harding, 'Speedy Trial' proposal on bitcoin-dev mailing list (March 2021)
- Optech Newsletter coverage of Taproot activation (November 2021)