MSTR Cat

Блокчейн/Уровень IV · Глубины протокола/4.2 Обновления/Урок 1

Taproot и подписи Шнорра

Ключ, скрывающий контракт, и подпись, которая помещается в карман

МатериалыБлок-эксплорер, позволяющий просматривать сырые транзакции в hexКошелёк с поддержкой адресов Taproot (bc1p)Спецификации BIP341 и BIP340

Любопытство

  1. Почему в блокчейне сложное многостороннее соглашение выглядит точно так же, как простой платёж одного человека?
  2. Как несколько приватных ключей могут объединиться в один публичный ключ так, что наблюдатели даже не узнают об их существовании?
  3. Какое математическое свойство делает подпись десяти человек неотличимой от подписи одного?

Исследование

  1. До Taproot сложное условие траты полностью раскрывалось при каждой трате монет (а в случае «голых» скриптов находилось прямо в самом выходе): трата с мультисига показывала ключи всех участников, таймлок — свою длительность, хешлок — свою структуру. Такая публичность создавала риски для приватности опытных пользователей и раздувала блоки избыточными данными. Сеть воспринимала все скрипты как открытую книгу, вынуждая сложные схемы транслировать всю свою логику каждой ноде и каждому наблюдателю.
  2. Taproot (BIP341) меняет модель обязательств (commitment). Теперь выход указывает на единственный 32-байтовый публичный ключ Q, вычисляемый как P + t·G. Здесь P — внутренний ключ, которым распоряжается основной владелец средств, а t фиксирует корень Меркла необязательного дерева альтернативных скриптов. В блокчейне такой выход выглядит как обычный платёж на один ключ, скрывая любую стоящую за ним сложность.
  3. В основе этой эффективности лежат подписи Шнорра (BIP340). В отличие от ECDSA, где используется кодирование DER переменной длины — в среднем 71–72 байта, — схема Шнорра даёт подпись фиксированного размера 64 байта (65 при типе хеша подписи, отличном от используемого по умолчанию). Фиксированный размер упрощает разбор и снижает вес транзакции. Линейность схемы Шнорра также делает возможной агрегацию ключей: с помощью протокола вроде MuSig2 несколько публичных ключей объединяются в один агрегированный ключ, и группа может подписывать как единое целое, не раскрывая отдельных участников.
  4. Потратить средства можно двумя разными путями. При трате по ключу (key path) все стороны действуют совместно и подписывают агрегированным ключом; итоговая транзакция неотличима от обычного платежа на один ключ. Никакие скрипты не раскрываются, никаких дополнительных данных не прикладывается. Это сохраняет приватность при кооперативном закрытии каналов Lightning или мультисиг-кошельков, гарантируя, что сложные финансовые схемы не выдают метаданных в публичный реестр блокчейна.
  5. Если договориться не удаётся, задействуется трата по скрипту (script path). Тратящий раскрывает один конкретный лист дерева Меркла вместе с доказательством его принадлежности к дереву. Неиспользованные ветви остаются скрытыми, сохраняя приватность альтернативных условий. Этот механизм, известный как мерклизованные абстрактные синтаксические деревья (MAST), позволяет разным правилам траты — например, отложенному выводу средств или аварийным ключам — сосуществовать в одном выходе, не раскрываясь до тех пор, пока это не станет действительно необходимо.
  6. Практические последствия значительны. Адреса в формате Taproot начинаются с ‘bc1p’. Стандарт MuSig2 (BIP327) стандартизирует процедуру агрегации ключей, что обеспечивает возможность использования механизмов множественных подписей в различных кошельках. Для аналогичных целей разрабатываются схемы типа FROST. По состоянию на ноябрь 2021 года, на блоке 709,632, сеть приняла эту структуру, что позволяет делать сложные скрипты менее объемными, дешевле в использовании и более конфиденциальными при совместном применении.

Ключевые факты

  • Taproot (BIP341) был активирован в ноябре 2021 года на блоке 709,632.
  • Выход Taproot фиксирует единственный ключ Q = P + t·G, где t — тегированный хеш от P и, если он есть, корня дерева скриптов.
  • Подписи Шнорра (BIP340) имеют фиксированный размер 64 байта, что избавляет от накладных расходов кодирования DER.
  • Трата по ключу (key path) не раскрывает никаких скриптов и неотличима от платежей на один ключ.
  • Трата по скрипту (script path) раскрывает только использованный лист скрипта, оставляя остальные ветви скрытыми.
  • MuSig2 (BIP327) обеспечивает агрегацию ключей по схеме n-of-n для совместимых мультисиг-кошельков.

Упражнение девять, шесть, три, один

9СобратьПеречислите 9 различных типов условий траты биткоинов или скриптов, существовавших до Taproot. Для каждого укажите, какие утечки приватности или издержки по размеру он создаёт в блокчейне.
6СгруппироватьСгруппируйте 9 условий в 6 категорий по тому, как они реализуются в выходе Taproot: полностью скрыты за счёт траты по ключу (key path), раскрываются только при споре, агрегируются через MuSig2 или затронуты другими структурными изменениями.
3Выделить главноеСведите 6 кластеров к 3 основным причинам, по которым сокрытие скриптов за одним ключом повышает эффективность сети и приватность пользователей.
1КристаллизоватьНапишите одно предложение о том, как структура дерева Меркла в Taproot позволяет заключать сложные финансовые соглашения, не раскрывая публично их условия.

Проверка фактов

Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.

Открыть в интерактивной академии →

EN PT ES ZH JA KO DE FR MS