Материал проверен 4 ноября 2026?
БК

ГЛАВНАЯ / ИНСТРУКЦИИ / ФЛАГИ SIGHASH TAPROOT: ЧТО ПОДПИСЫВАЮТ DEFAULT, ALL И ANYONECANPAY

Флаги sighash Taproot: что подписывают DEFAULT, ALL и ANYONECANPAY

Sighash-флаг определяет, какие части Bitcoin-транзакции привязываются к подписи. В Taproot SIGHASH_DEFAULT имеет значение 0x00 и по охвату выходов ведёт себя как ALL, но использует новый BIP341 signature message. ANYONECANPAY меняет набор учитываемых входов. Название флага не заменяет проверку всей подписи и её контекста.

Sighash

Подпись фиксирует выбранные поля транзакции

Sighash message – данные, хэш которых подписывается ключом. Набор включённых полей зависит от hash type и контекста spend. Для Taproot BIP341 определяет новую схему сообщений, которая учитывает поля транзакции, входы, выходы и данные потраченных выходов в соответствии с режимом.

При аудите проверяйте и подписанный смысл, и то, какие изменения после подписи остаются возможными. Если флаг позволяет добавлять входы или не фиксирует все выходы, другой участник потенциально может изменить эти части, сохранив валидность подписи.

DEFAULT и ALL

DEFAULT – нулевой Taproot hash type с охватом выходов как у ALL

SIGHASH_DEFAULT кодируется нулём. Если Taproot подпись не содержит дополнительный байт hash type, подразумевается DEFAULT; явный non-default hash type кодируется отдельно. По охвату outputs DEFAULT соответствует SIGHASH_ALL, но формирование signature message выполняется по правилам Taproot, поэтому не подменяйте его старой схемой legacy или SegWit v0.

SIGHASH_ALL явно фиксирует все выходы текущей транзакции. Сравните это с NONE и SINGLE, если они встречаются: эти типы задают иной охват outputs. В пакетной или совместной операции неверный режим может дать другим участникам возможность изменить неподписанные данные.

  • байт подписи проверен
  • DEFAULT не прочитан как legacy
  • охват outputs известен
ANYONECANPAY

Флаг меняет охват входов, но сам по себе не отменяет охват выходов

ANYONECANPAY означает, что signature message включает данные текущего входа вместо общего набора всех входов. Это может позволить добавление или перестановку других входов в разрешённых этим sighash режимом пределах. Какие поля текущего input входят в сообщение, зависит от BIP341 и выбранного hash type.

ANYONECANPAY комбинируется с режимом outputs. Пара ANYONECANPAY + ALL оставляет охват всех выходов, хотя не фиксирует все входы; ANYONECANPAY + NONE или SINGLE иначе ограничивают outputs. Поэтому прочитайте сочетание целиком, а не воспринимайте ANYONECANPAY как разрешение менять всё.

  • inputs и outputs анализируются отдельно
  • базовый режим сочетается с ANYONECANPAY
  • права изменения входов понятны
Проверка перед подписью

Проведите сценарий возможных изменений

В декодере или подписывающем устройстве проверьте Taproot witness, размер подписи и hash type. Для DEFAULT отсутствие дополнительного байта обычно кодирует нулевой тип; подпись с 65-байтовым форматом может содержать явный non-default hash type. Не делайте вывод только по длине без проверки протокольного контекста.

До подписи перечислите inputs и outputs, которые фиксируются, кто может добавить входы, кто контролирует сдачу, как покрывается комиссия и что будет, если участник не выполнит обещанное изменение. Для collaborative transaction сопоставьте флаг у каждого подписанта и повторно декодируйте финальную транзакцию.

  • сверьте сумму, адреса и сдачу в итоговой версии;
  • зафиксируйте, какие изменения после подписи разрешены;
  • проверьте финальную транзакцию после добавления входов или outputs.
FAQ

Частые вопросы

DEFAULT означает ALL?

По охвату выходов Taproot DEFAULT соответствует ALL, но использует отдельный BIP341 signature message.

Что меняет ANYONECANPAY?

Он меняет охват входов подписи, но влияние на outputs определяется базовым hash type.

DEFAULT всегда виден отдельным байтом?

Нет. В Schnorr подписи Taproot нулевой DEFAULT обычно представляется 64-байтовой подписью без дополнительного байта.

Можно ли менять выходы при ANYONECANPAY?

Не обязательно. С ANYONECANPAY можно сочетать разные output modes; проверьте конкретный hash type.

Показывает ли длина подписи весь смысл операции?

Нет. Нужны контекст Taproot, hash type, транзакция и данные потраченных выходов.

Итоговая проверка

Чек-лист: флаги sighash taproot: что подписывают default, all и anyonecanpay

  • тип Taproot spend определён;
  • DEFAULT и явный hash type различены;
  • охват всех inputs проверен;
  • охват outputs проверен отдельно;
  • ANYONECANPAY прочитан как режим входов;
  • комиссия и сдача понятны;
  • финальная версия повторно проверена перед broadcast.

Материал подготовлен редакцией сайта и проверен 4 ноября 2026 года. Условия бирж, кошельков и блокчейн-сетей могут меняться. Перед операцией сверяйте данные в интерфейсе выбранного сервиса.