Taproot в Bitcoin: key path и script path
Taproot позволяет представить выход с путём ключа и предусмотренными путями скрипта. Для библиотеки это способ описать обычное совместное действие и резервные условия, не раскрывая всё дерево при каждом расходовании. В уроке разберём, что остаётся публичным и какие сведения требуются восстановлению.
Криптографические значения в тексте обозначены словами. Мы не рассчитываем tweaked-ключи, не создаём Taproot-адрес и не подписываем расходование. Цель — понять модель политики до выбора совместимых инструментов.
Внутренний и выходной ключ
В конструкции Taproot внутренний ключ участвует в формировании выходного ключа с учётом предусмотренного обязательства относительно дерева скриптов. В выходе используется итоговый ключ установленной формы. Его нельзя считать буквально тем же публичным значением, которое оператор первоначально выбрал как внутреннее.
Это различие важно для наблюдения и подписи. Если подписант располагает секретом внутреннего ключа, он должен применить предусмотренную обработку для корректного пути ключа. Если инструмент понимает лишь простое неподготовленное значение, наличие секрета не доказывает готовность расходовать выбранный выход.
В объясняющем дескрипторе можно показать tr(INTERNAL_KEY,TREE). Эта запись описывает форму, но не является импортируемым досье. Реальная политика содержит точные ключи, происхождение и дерево. Короткий адрес не раскрывает оператору всю информацию, нужную для восстановления резервных условий.
Путь ключа
Если участники могут сформировать подходящую подпись для выходного ключа, расходование происходит по пути ключа. Тогда предусмотренное дерево не раскрывается через исполнение его ветвей. Для организации такой путь может соответствовать обычному согласованному действию.
Однако возможность совместной подписи требует отдельного протокола. Из предыдущего урока известно, что несколько сотрудников не получают её автоматически только из названия Schnorr. Политика обычного маршрута должна быть доступна используемым подписантам и включена в процедуру восстановления.
Путь ключа также не гарантирует, что он единственный. Если оператор не сохранил дерево или доверенно не проверил конструкцию, один адрес не объясняет все возможные разрешения. Это особенно важно при принятии чужой конфигурации для совместного кошелька.
Путь скрипта
При расходовании по одной из скриптовых ветвей предоставляются скрипт, необходимые данные выполнения и сведения, позволяющие проверить обязательство относительно нужной ветви. При этом не требуется раскрывать каждую неиспользованную ветвь как полный скрипт.
Для учебной библиотеки можно мысленно задать обычный путь согласия и резервный путь после относительного времени. Конкретная форма зависит от выбранной политики. Если резервный путь требует подпись сотрудника и возраст выхода, оба условия должны выполняться; факт достижения срока не отменяет подпись.
выход Taproot
├─ путь ключа: обычная совместная процедура
└─ дерево
├─ резервное условие A
└─ резервное условие B
Это схема собственной политики, не готовая конструкция скрипта. Мы не утверждаем, что любой набор слов автоматически компилируется в безопасное условие. Перед использованием нужны точная форма, инструмент и последующая проверка всех доступных и недоступных случаев.
Что видит наблюдатель
При пути ключа внешнему наблюдателю может быть неизвестно, сколько участников согласовывали действие. При пути скрипта раскрываются сведения используемого пути. В обоих случаях видны транзакция, суммы выходов и связи расходуемых объектов в публичном графе.
Поэтому Taproot не превращает оплату курса в анонимную передачу. Библиотека может связать адрес со счётом, провайдер RPC — запросы клиента, а совместное использование входов — ранее отдельные поступления. Скрытие неиспользованных условий решает более узкую задачу.
Размер расходования также зависит от пути. Обычная подпись может иметь компактную форму, а раскрытие скрипта и доказательства ветви добавляет данные. При подготовке бюджета нельзя использовать одну оценку для всех сценариев восстановления.
Резервная информация
Для восстановления нужны внутренний материал, дерево, пути происхождения и полномочия подписантов. Если сохранили только один приватный ключ без описания конструкции, поиск правильного выходного назначения может быть затруднён. Если сохранили только адрес, он помогает наблюдать известный выход, но не восстанавливает неизвестную ветвь.
Полный публичный дескриптор позволяет повторить структуру в совместимом инструменте. Секреты и совместная процедура обеспечивают выполнение соответствующего пути. Прикладная база объясняет, какие счета получили эти выходы. Каждый слой архивируется по своей роли.
Сотрудники должны также знать, какой путь доступен при потере участника. Если обычная совместная процедура перестала работать, резервная ветвь может помочь лишь при выполнении своих требований. Нельзя хранить её как красивую диаграмму без достаточных данных для подготовки расходования.
Выбор для учебного проекта
В первом платёжном прототипе библиотеке не обязательно использовать сложный Taproot-кошелёк. Простая согласованная политика может быть лучше для понимания и восстановления. Этот урок расширяет модель, чтобы разработчик не принимал поддержку одного адреса за поддержку всех возможностей.
Досье должно явно назвать доступные пути, нужных участников, время, данные восстановления и ожидаемые расходы. Для каждой ветви формулируется отдельный критерий будущего исполнения. Сейчас эти критерии только описаны: реальных подписей и проверки инструментов нет.
Частота пути и стоимость
Если резервная ветвь используется редко, её дополнительные данные могут быть приемлемыми для аварийного случая. Если она становится основным способом расходов, прежняя оценка стоимости и операционной сложности уже не соответствует работе библиотеки. Политика должна описывать ожидаемый обычный путь и допустимый резерв, а бюджет рассчитываться по фактически выбранному расходованию.
Это не является рекомендацией самостоятельно оптимизировать дерево ради минимального размера. Сначала проверяется доступность и правильность всех условий. Небольшая экономия не оправдывает непонятный путь, который невозможно восстановить. Учебная библиотека сохраняет читаемое досье и совместимые инструменты как исходное требование, а компактность рассматривает после него.
Резервный путь не следует раскрывать в обычном публичном статусе счёта без необходимости. Читателю достаточно проверить назначение оплаты, а оператору нужен полный восстановительный документ.
Правила конструкции и расходования заданы в BIP 341, а Tapscript — в BIP 342. После урока вы можете объяснить, почему адрес Taproot, внутренний ключ, дерево и процедура подписи являются разными частями одной политики, и почему резервная копия должна сохранить их связь.