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

ГЛАВНАЯ / ИНСТРУКЦИИ / ANNEX В TAPROOT WITNESS: КАК РАСПОЗНАТЬ ДОПОЛНИТЕЛЬНЫЙ ЭЛЕМЕНТ

Annex в Taproot witness: как распознать дополнительный элемент

Annex – необязательный элемент Taproot witness. Узел распознаёт его по позиции и первому байту, убирает до выбора key path или script path, но учитывает в signature message и размере транзакции. Это не отдельная колонка базовой транзакции и не исполняемый Script.

Правило распознавания

Annex определяется по последнему элементу witness и маркеру 0x50

BIP341 рассматривает последний элемент witness как annex, если в witness не менее двух элементов и первый байт последнего элемента равен 0x50. После удаления annex протокол выбирает путь: один оставшийся элемент означает key path, два или больше – script path. Позиция элемента поэтому так же важна, как его байтовое содержимое.

Не любой байт 0x50 где-нибудь в транзакции означает annex. Убедитесь, что это Taproot-вход, проверьте число items и именно первый байт последнего witness элемента. Если нужного условия нет, annex не выделяется.

  • вход подтверждён как P2TR
  • последний witness item проверен по маркеру
  • условие числа элементов соблюдено
Содержимое

Annex не заменяет аргументы скрипта или control block

Для script path структурные последние элементы после возможного удаления annex – tapscript и control block. Annex не становится начальной частью стека исполнения tapscript. Его содержимое не исполняется как opcodes и не заменяет аргументы ветви, скрипт или доказательство дерева.

При key path подпись остаётся нужным элементом witness. Annex – отдельный item, а не произвольное продолжение подписи. При ручном декодировании сверьте последовательность с BIP341, иначе можно принять annex за ещё один аргумент или ошибочно определить путь расходования.

Подпись и вес

Annex покрывается подписью и увеличивает witness

BIP341 включает присутствие или отсутствие annex и его содержимое в Taproot signature message. Поэтому добавление, удаление или изменение annex может сделать подпись недействительной. Сверьте witness до подписания и не редактируйте его после создания подписи.

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

  • annex включён в signature message
  • witness size учтён в весе
  • txid и wtxid различены
Практическая проверка

Сначала отделите annex, затем классифицируйте оставшийся witness

Сохраните исходную последовательность witness items и их длины. Примените условие BIP341, отметьте annex или его отсутствие, затем определите key path либо script path по оставшимся элементам. В script path отдельно проверяются tapscript, control block, leaf version и Merkle proof.

При аудите подписи сверьте hash type, входные данные, outputs и annex commitment. Проверяйте raw transaction или wtxid: txid не включает witness. Декодер должен поддерживать Taproot и не терять данные при упрощённом отображении.

FAQ

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

Annex находится в scriptPubKey?

Нет. Это распознаваемый элемент witness Taproot-входа.

Первый байт 0x50 всегда означает annex?

Нет. Важны Taproot-контекст, позиция последнего элемента и число items.

Annex исполняется как tapscript?

Нет. Он удаляется до выбора пути и игнорируется при выполнении, но покрывается подписью.

Можно изменить annex после подписи?

Изменение может нарушить подпись, поскольку annex включён в signature message.

Annex влияет на вес?

Да. Он сериализуется в witness и учитывается в весе транзакции.

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

Чек-лист: annex в taproot witness: как распознать дополнительный элемент

  • вход подтверждён как P2TR;
  • позиция и маркер проверены;
  • annex отделён от signature/script/control block;
  • его commitment учтён до подписи;
  • witness включён в расчёт веса;
  • txid и wtxid не смешаны;
  • raw witness сохранён.

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