Taproot — способ задать и доказать право расходовать биткоины. Он позволяет обычное расходование с одной подписью и, при необходимости, заранее подготовленные альтернативные условия. При использовании пути подписи сети не обязательно видеть, одобрил ли платёж один человек или несколько участников вместе, а также существовали ли другие неиспользованные правила.
Представим, что Алиса и Боб управляют общими деньгами. Пока они согласны, платежи должны одобряться совместно. Заранее можно предусмотреть и альтернативу: после определённой высоты блока Алиса сможет потратить средства одна. Taproot позволяет заложить такую договорённость, не публикуя весь запасной план при обычном совместном платеже. Это не автоматическая функция любого кошелька. Программа должна поддерживать выбранные условия, а участники — правильно подготовить их до получения средств. Алиса действительно получит согласованное право самостоятельного расходования. [1] [3]
Более простой вариант называется key path: сеть проверяет одну действительную подпись Шнорра для ключа, указанного в условиях выхода. Выход — конкретная сумма, созданная прежней транзакцией, которую теперь расходуют. Сама подпись не раскрывает число участников или наличие запасного скрипта. Другой вариант, script path, предъявляет использованный скрипт — конкретные правила — и данные для их выполнения. Дополнительно предоставляется доказательство control block, что правила входили в первоначальную договорённость. Остальные скрипты могут оставаться скрытыми, но использованный скрипт и его доказательство всё же раскрывают информацию. [1]
Schnorr Signature — вид цифровой подписи: математическое доказательство одобрения платежа соответствующим ключом. Подходящий протокол, например MuSig2, позволяет нескольким владельцам ключей создать общий ключ, а затем общую подпись. Алисе и Бобу не нужно передавать друг другу приватные ключи. Однако их кошельки должны поддерживать протокол и взаимодействовать при подписании. Taproot сам не объединяет подписи всех входов транзакции и не превращает любой кошелёк Multisig в одну подпись. Реализация важна: ошибочное повторное использование секретных значений nonce в протоколе подписания может раскрыть приватный ключ. [2] [5]
В основной сети Bitcoin адреса Taproot обычно начинаются с bc1p и используют Bech32m. Перед отправкой проверьте поддержку формата кошельком или сервисом и полный адрес. Taproot может уменьшить объём раскрываемых правил и данных для расходования. Но суммы и публичные связи между расходуемыми выходами он не скрывает. Выбранный путь и размер доказательства также влияют на комиссию: новый формат не означает автоматически самый дешёвый платёж. Если кошелёк использует Taproot для обычной оплаты одним ключом, придумывать запасной скрипт не требуется. [1] [4]
P2TR означает Pay to Taproot. В правилах это нативный SegWit версии 1 с 32-байтовой программой witness, представляющей открытый ключ выхода. Необязательные скрипты образуют дерево, криптографический отпечаток которого включён в этот ключ. При использовании одной ветви можно доказать её принадлежность, не раскрывая всё дерево. BIP 340 описывает подписи Шнорра, BIP 341 — правила Taproot, BIP 342 — язык Tapscript для скриптового пути. Обычная подпись Шнорра занимает 64 байта; явный выбор другого режима, определяющего подписываемые части транзакции, добавляет ещё байт. Эти детали обрабатывает кошелёк, а не ручное изменение адреса. [1] [2] [3]
Для полной картины прочитайте эту статью вместе с SegWit, Private Key, Транзакция, Lightning Network. На эту статью также ссылаются SegWit, Lightning Network, Hash, SHA-256.