Короткий ответ: классическая script multisig задаёт в Bitcoin-скрипте набор публичных ключей и порог, например «нужны две подписи из трёх». MuSig2 – интерактивная схема Schnorr-подписи, где участники объединяют публичные ключи и совместно создают одну подпись. Базовая MuSig2 требует участия всех ключей n-of-n, поэтому она не заменяет произвольный порог m-of-n без дополнительных конструкций. В Taproot обе модели могут сосуществовать: агрегированный key path и отдельные script path условия.
Как работает script multisig
В обычном пороговом сценарии кошелёк строит скрипт из условия и публичных ключей. Запись вида 2-of-3 означает, что из трёх участников должны подписать любые двое. В descriptors такое условие выражается через `multi()` или `sortedmulti()`, а Taproot script path поддерживает родственную форму `multi_a()`. Конкретный тип выхода, порядок ключей и правила их деривации должны одинаково трактоваться всеми кошельками.
Ключевое свойство m-of-n состоит в выборе подмножества подписантов во время расходования. Если один участник недоступен, две оставшиеся стороны в схеме 2-of-3 могут выполнить перевод. Эта гибкость имеет цену: используемые ключи и пороговое условие закодированы в скрипте. При расходовании средства раскрывается соответствующая ветка, и наблюдатель может увидеть, что транзакцию потратила мультиподписная конструкция, а не обычный одиночный выход. Точная видимость зависит от формата выхода и того, какой путь был использован.
В классических script-путях применялась операция `OP_CHECKMULTISIG`; в Taproot-пути можно использовать `OP_CHECKSIG` и `OP_CHECKSIGADD`. Это всё равно скриптовое условие: блокчейн проверяет отдельные подписи и исполнение ветки. Для пользователя важны не только число ключей, но и совместимость координаторов, обмен PSBT, порядок derivation paths, резервное копирование дескриптора и проверка адресов на устройстве. Полезный общий обзор кошельков с несколькими участниками есть в статье о мультиподписном кошельке.
Что делает MuSig2
BIP 327 стандартизирует MuSig2 для BIP340-совместимых Schnorr-подписей. Участники получают агрегированный публичный ключ, а затем проводят интерактивный процесс, который позволяет им вместе сформировать одну подпись. В глазах обычной проверки BIP340 это выглядит как подпись агрегированного ключа, а не набор подписей каждого участника. Поэтому в Taproot-выходе key path с MuSig2 может выглядеть как обычный одно-ключевой путь.
Эта компактность улучшает приватность и уменьшает объём данных в сравнении с раскрываемым скриптом, когда всем участникам нужно подписать расходование. Но базовая MuSig2 – это n-of-n: необходимо участие всех агрегированных ключей для совместной подписи. Она не даёт автоматически правила 2-of-3, 3-of-5 или «два из трёх». Для пороговой подписи с иными гарантиями нужна отдельная схема, например threshold-протокол, либо резервное скриптовое условие в Taproot.
Интерактивность значит, что подписанты должны обменяться материалами нескольких раундов. Одноразовые nonce критичны для безопасности: повторное или неправильное использование секретного nonce может привести к раскрытию ключа. Реализация должна следовать спецификации и корректно связывать сессию с сообщением, агрегированным ключом и участниками. Нельзя подменять этот протокол самодельным «сложением подписей» или считать, что любое приложение с несколькими подписями уже использует MuSig2.
Главные различия в практическом сценарии
- Порог. Script multisig поддерживает m-of-n в рамках используемого скриптового формата. Базовая MuSig2 требует все n участников.
- Что видно в блокчейне. Script-путь раскрывает условие и нужные элементы сценария. MuSig2 key path обычно оставляет одну агрегированную подпись, похожую на одиночную BIP340-подпись.
- Обмен перед расходованием. Обычной мультиподписи нужно собрать требуемые подписи и данные скрипта. MuSig2 требует согласованного интерактивного протокола, включая безопасную обработку nonce и сессии.
- Отказоустойчивость. В 2-of-3 можно пережить отсутствие одного участника. В MuSig2 n-of-n отсутствие любого подписанта блокирует обычный совместный key-path расход.
- Размер и комиссии. Агрегированный key path может хранить меньше данных при трате, но фактические затраты зависят от выхода, ветки, размера транзакции и условий сети. Нельзя обещать универсальную экономию без расчёта конкретного сценария.
MuSig2 не обязательно исключает запасной скрипт. Taproot позволяет задать агрегированный ключ как key path и при необходимости committed script tree с альтернативными условиями траты. Пока конкретная ветка не используется, её содержимое не раскрывается обычному наблюдателю; при обращении к ветке соответствующие данные появляются в транзакции. Это позволяет сочетать компактный совместный расход с заранее предусмотренным восстановлением, но только если ключи и правила резервной ветки были корректно настроены и сохранены.
Как выбирать между моделями
Для семейной казны или команды сначала сформулируйте требование к доступности: нужно ли, чтобы могли подписать любые двое из трёх, или все участники могут собраться на каждой операции. Если важен произвольный порог и прозрачные правила восстановления, script multisig обычно проще объяснить и проверить. Если нужен компактный n-of-n расход с приватностью Taproot и все участники готовы поддерживать совместимую интерактивную подпись, можно рассматривать MuSig2.
Ни один вариант не защищает от ошибочной конфигурации автоматически. До перевода значительной суммы сверяйте адрес и политику на независимых устройствах, проверяйте публичные ключи каждого участника, тестируйте получение и расход на небольшой сумме, а также фиксируйте, как восстановить доступ при поломке устройства. Для передачи параметров кошелька используйте описание скрипта: Bitcoin descriptors помогают выразить ключи и условия, но не заменяют секреты и процедуру резервного копирования.
Поддержка зависит от конкретной версии кошелька, формата дескриптора, PSBT-координатора и подписывающего устройства. Даже если Bitcoin Core поддерживает определённые операции MuSig2, это не означает, что та же комбинация доступна во всех мобильных или аппаратных кошельках. Перед использованием сверяйте версию и спецификацию в документации своего ПО. Дополнительную практику совместной подписи можно увидеть в материале о настройке Safe multisig, хотя Ethereum Safe использует иную модель, чем Bitcoin-скрипты.
Итог
Script multisig – это явное пороговое условие в Bitcoin-скрипте, удобное для m-of-n и заранее известных правил восстановления. MuSig2 – способ совместно получить одну BIP340-совместимую подпись агрегированного ключа, прежде всего для n-of-n. Выбор зависит от того, важнее ли гибкий порог, приватность key path, простота координации или совместимость оборудования. Главное – не путать агрегирование ключей с произвольной пороговой схемой и заранее проверять весь путь от создания адреса до восстановления кошелька.



