Können Ausgabedeskriptoren verwendet werden, um jeden Miniscript-Ausdruck zu codieren?

Ausgabedeskriptoren bieten einen Standard, um Adresskörper zwischen verschiedenen Wallet-Implementierungen besser austauschbar zu machen. Es scheint, dass ein Ausgabedeskriptor verwendet werden kann, um jeden Miniscript-Ausdruck für einen bestimmten Schlüssel zu codieren. Können sie auch verwendet werden, um Sequenzausgabeskripts zu erstellen, die alle denselben Miniscript-Ausdruck verwenden, der auf eine Kette abgeleiteter Schlüssel angewendet wird?

Antworten (1)

Ja. Solche Deskriptoren werden als Bereichsdeskriptoren bezeichnet.

In einem Deskriptor werden Schlüssel in Form eines Schlüsselausdrucks bereitgestellt. Schlüsselausdrücke können einzelne Schlüssel selbst oder erweiterte BIP-32-Schlüssel sein, gefolgt von Ableitungsinformationen. Die Ableitungsinformationen können mit einem enden, *um anzugeben, dass untergeordnete Schlüssel abgeleitet werden sollen. In diesem Fall ist der Deskriptor ein Bereichsdeskriptor und jeder abgeleitete untergeordnete Schlüssel wird zu einem Schlüssel im Ausgabeskript.

Wenn Sie sich dann den Bereichsdeskriptor wie eine höhere Form eines xpub vorstellen, dann hätten Sie "abgeleitete Deskriptoren" bei jedem untergeordneten Index. Der untergeordnete Index 0 wäre ein Deskriptor, bei dem alles mit dem übergeordneten Element identisch wäre, mit Ausnahme der xpubs. Diese werden durch den von Index 0 abgeleiteten Schlüssel ersetzt. Index 1 enthält die von Index 1 abgeleiteten Schlüssel und so weiter.

Bei Bereichsdeskriptoren ist zu beachten, dass sich die Indizes im Gleichschritt bewegen, um ein kombinatorisches Aufblähen zu vermeiden. Wenn es also mehrere xpubs in einem Deskriptor gibt, werden alle Schlüssel vom selben untergeordneten Index abgeleitet. Index 0 hat alle Schlüssel, die mit Index 0 abgeleitet sind, Index 1 hat alle Schlüssel, die mit Index 1 abgeleitet sind, usw.

Ich habe Mühe zu verstehen, wie Miniskript und Deskriptoren zusammenarbeiten? Ist die Idee, dass ich A und B im folgenden Skript durch ein xpub ersetzen kann? Ursprüngliches Miniskript: and_v(v:pk(A),pk(B))Miniskript mit eingebetteten Deskriptoren:and_v(v:pk([b33.../44'/0'/0']xpubApf/1/*),pk([f34.../44'/0'/0']xpub6ER.../1/*))
@max Deskriptoren sind mehr als nur die Pubkeys. Sie sind wirklich die Ausdrücke sh(), multi(), tr(), wsh(), usw. Deskriptoren erstellen die Ausgabeskripte, während Miniscript die inneren Skripte beschreibt. Ein Deskriptor wäre beispielsweise wsh(and_v(v:pk(xpub..../*),pk(xpub.../*))). Der Deskriptor ist der äußere wsh(...)Ausdruck und das Miniskript ist der innereand_v(v:pk(xpub..../*),pk(xpub.../*))
Danke Andreas, ich glaube ich habe es jetzt verstanden. Deskriptoren dienen in erster Linie dazu, zu verstehen, welche Art von Adress-/Ausgabeskript verwendet werden soll, während Miniskript zur Beschreibung der Vertragslogik verwendet wird.