61 / 691DESC

Output Descriptor

Ausgabedeskriptor

Ein Output Descriptor ist eine maschinenlesbare Beschreibung einer Menge von Bitcoin-Ausgabeskripten und der zu ihrer Ableitung nötigen Schlüssel. Damit lässt sich eine Adress-Policy präzise wiederherstellen, nicht nur ein einzelner Schlüssel oder eine Adresse.

Ein Descriptor ist weder Adresse noch Seed oder Wallet-Datei. Ein Ausdruck wie wpkh(...) legt scriptPubKey-Typ, Schlüsselquelle, Ableitung und optionalen Range fest; Wallet-Zustand wie letzter Index und Scan-Birthday muss separat gesichert werden.

Ein Output Descriptor beschreibt eine Menge von scriptPubKeys samt Daten zum Ableiten oder Ausgeben. wpkh(KEY) steht für native SegWit-Ausgaben dieses Schlüssels. Er ist keine Bitcoin-Adresse, kein Seed und kein vollständiges Wallet-Backup.

pk(), pkh(), wpkh(), sh(), wsh(), addr() und raw() bestimmen das exakte Ausgabeskript. Verschachtelung wie sh(wpkh(KEY)) ändert scriptPubKey und Adresse; derselbe xpub in einem anderen Wrapper definiert daher eine andere Wallet.

Ein Schlüssel kann den Ursprung [fingerprint/path], danach xpub und weitere Ableitung tragen. Key origin hilft dem Signer beim Pfadabgleich, doch der fingerprint ist weder kryptografische Identität noch Geräteauthentisierung; Exporte über einen vertrauenswürdigen Kanal prüfen.

Die Wildcard /* erzeugt einen ranged descriptor und verlangt beim Ableiten einen Range. Multipath <0;1> kann Receive- und Change-Zweig verbinden. Next index, verwendete Adressen, gap limit und scan birthday speichert der Descriptor allein nicht.

Die acht Zeichen hinter # sind die BIP-380-Descriptor-Checksum. Sie erkennt viele Tipp- und Vertauschungsfehler, ist aber keine Signatur, Verschlüsselung oder Herkunftsgarantie; nach absichtlicher Änderung lässt sich eine neue gültige Checksum berechnen.

Ein öffentlicher Descriptor mit xpub erlaubt Beobachtung und Ableitung ohne Signatur. Enthält er xprv, WIF oder anderes privates Material, kann er Ausgaben ermöglichen und ist wie ein Seed zu schützen. getdescriptorinfo liefert öffentliche Normalform und hasprivatekeys.

multi(k,...) bewahrt die angegebene Reihenfolge; Umordnung ändert Skript und Adressen. sortedmulti(k,...) sortiert die Schlüssel bei jeder Ableitung lexikografisch. Das Backup braucht threshold, alle cosigners, key origins und Wrapper; ein Seed genügt nicht.

tr(KEY) beschreibt den Taproot key path, tr(KEY,TREE) zusätzlich einen script-path-Baum. Dessen Form verändert Merkle root und Adresse; eine ungeordnete Skriptliste reicht nicht. Miniscript oder multi_a formulieren Bedingungen, ersetzen aber nicht den vollständigen Descriptor.

importdescriptors übernimmt den Descriptor mit Checksum sowie timestamp, active, internal, range und next_index. timestamp steuert den Scanbeginn; ein zu spätes birthday verbirgt alte Historie bis zum richtigen Rescan. Nicht all dieser Zustand steckt im Ausdruck.

Vor Geldeingang getdescriptorinfo ausführen und checksum, isrange, issolvable sowie hasprivatekeys prüfen. Mit deriveaddresses mehrere externe und Change-Adressen ableiten und mit Quell-Wallet oder Hardware-Wallet-Display vergleichen. Die vollständige Wiederherstellung vorab testen. Quellen: 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.

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Wallet, Watch-only Wallet, Multisig, PSBT, Miniscript, Bitcoin. Auf diesen Eintrag verweisen außerdem Watch-only Wallet, Extended Public Key (xpub), PSBT, Miniscript.

DOC · 001BIP 380 — Generic Output Script DescriptorsSpezifikationDOC · 002BIP 383 — multi() and sortedmulti() DescriptorsSpezifikationDOC · 003BIP 386 — tr() Output Script DescriptorsSpezifikationDOC · 004Bitcoin Core — Output DescriptorsDokumentationDOC · 005Bitcoin Core RPC — importdescriptorsDokumentation
Geprüft am 1. August 2026Quellenbasiert · Keine Anlageberatung