61 / 691DESC

Output Descriptor

Дескриптор виходу

Output Descriptor — це машинозчитуваний опис набору вихідних скриптів Bitcoin і ключів для їх виведення. Він точно відтворює політику адрес, а не лише один ключ чи адресу.

Descriptor — не адреса, не seed і не файл гаманця. Вираз wpkh(...) задає тип scriptPubKey, джерело ключів, derivation і необов’язковий range; останній індекс та scan birthday треба зберігати окремо.

Output Descriptor описує набір scriptPubKey та дані для їх виведення або витрачання. wpkh(KEY) означає нативні SegWit-виходи. Це не Bitcoin-адреса, не seed і не повна резервна копія гаманця.

pk(), pkh(), wpkh(), sh(), wsh(), addr() і raw() визначають точний вихідний скрипт. Вкладення sh(wpkh(KEY)) змінює scriptPubKey та адресу; той самий xpub в іншій обгортці створює інший гаманець.

Ключ може містити походження [fingerprint/path], потім xpub і подальшу derivation. Key origin допомагає signer знайти шлях, але fingerprint не є криптографічною ідентичністю чи автентифікацією пристрою; перевіряйте експорт надійним каналом.

Wildcard /* створює ranged descriptor і потребує range під час виведення. Multipath <0;1> може поєднати receive та change. Descriptor сам не зберігає next index, використані адреси, gap limit чи scan birthday.

Вісім символів після # — descriptor checksum BIP 380. Він знаходить багато друкарських помилок і перестановок, але не є підписом, шифруванням чи доказом походження; після зміни можна обчислити новий коректний checksum.

Публічний descriptor з xpub дозволяє спостерігати й виводити без підпису. Descriptor з xprv, WIF чи іншим секретом може дозволити витрати, тому захищайте його як seed. getdescriptorinfo повертає канонічну публічну форму та hasprivatekeys.

multi(k,...) зберігає порядок ключів, тому перестановка змінює скрипт і адреси. sortedmulti(k,...) сортує ключі лексикографічно. Копія має містити threshold, усіх cosigners, key origins і обгортку; одного seed недостатньо.

tr(KEY) описує Taproot key path, а tr(KEY,TREE) додає дерево script path. Форма дерева змінює Merkle root і адресу, тому списку скриптів замало. Miniscript або multi_a задають умови, але не замінюють повний descriptor.

importdescriptors приймає descriptor з checksum та metadata timestamp, active, internal, range і next_index. timestamp визначає початок сканування; пізній birthday приховає історію до правильного rescan. Не весь стан міститься у виразі.

Перед отриманням коштів виконайте getdescriptorinfo та перевірте checksum, isrange, issolvable і hasprivatekeys. Через deriveaddresses виведіть кілька зовнішніх і change-адрес та звірте їх із вихідним гаманцем або дисплеєм hardware wallet. Перевірте повне відновлення. Джерела: BIP 380 — Generic Output Script Descriptors; BIP 383 — multi() and sortedmulti() Descriptors; BIP 386 — tr() Output Script Descriptors; Bitcoin Core — Output Descriptors; Bitcoin Core RPC — importdescriptors.

Для повної картини прочитайте також Гаманець, Watch-only Wallet, Multisig, PSBT, Miniscript, Bitcoin. На цю статтю також посилаються Watch-only Wallet, Extended Public Key (xpub), PSBT, Miniscript.

DOC · 001BIP 380 — Generic Output Script DescriptorsСпецифікація ↗DOC · 002BIP 383 — multi() and sortedmulti() DescriptorsСпецифікація ↗DOC · 003BIP 386 — tr() Output Script DescriptorsСпецифікація ↗DOC · 004Bitcoin Core — Output DescriptorsДокументація ↗DOC · 005Bitcoin Core RPC — importdescriptorsДокументація ↗
Перевірено 1 серпня 2026Спочатку джерела · Не інвестиційна порада