132 / 691MINI

Miniscript

Strukturierte Sprache für Bitcoin Script

Miniscript ist eine strukturierte, typisierte Darstellung einer begrenzten Teilmenge von Bitcoin Script. Software kann damit Ausgabebedingungen zusammensetzen, Eigenschaften analysieren und eine gültige satisfaction ohne Sonderlogik je Script erzeugen.

Miniscript ist weder neuer opcode noch consensus rule oder Allzwecksprache. Es ist eine Zwischenschicht zwischen menschlicher spending policy und konkretem Bitcoin Script, meist eingebettet in einen wsh()- oder Taproot-Output-Descriptor.

Miniscript strukturiert nur eine ausgewählte Bitcoin-Script-Teilmenge für Signaturen, hashlocks, timelocks und Kombinationen. Es ändert consensus nicht und fügt keinen opcode hinzu; der erzeugte Script schützt die Coins, Miniscript ist seine analysierbare Darstellung.

Eine spending policy formuliert den Zweck, etwa „A oder B nach 144 Blöcken“. Ein compiler wählt konkretes Miniscript, das in Bitcoin Script übersetzt wird. Ein Output Descriptor bindet zusätzlich Schlüssel, derivation, Netzwerk und checksum, etwa wsh(...).

pk(), older(), after(), sha256(), and_v(), or_d() und thresh() haben exakte Semantik. Wrappers wie v: ändern Typ oder Verhalten ohne neuen Zweck. Die Typen B, V, K und W erzwingen Stack-Schnittstellen, sodass nur kompatible Ausdrücke komponiert werden.

Eine satisfaction ist witness data, die einen Zweig erfüllt; dissatisfaction ist ein kanonisches Falsch für AND, OR und threshold. Ein allgemeiner signer wählt Pfade anhand verfügbarer Signaturen, preimages und timelocks. Miniscript erzeugt keine private keys und umgeht keine Bedingung.

after(n) nutzt absolutes nLockTime, older(n) relatives nSequence nach BIP 68. Höhen- und zeitbasierte Locks müssen kompatibel und Transaktionsfelder korrekt sein; am Ende entscheidet consensus Bitcoin Script, nicht der policy-Text.

Statische Analyse begrenzt Script- und witness-Größe, Operationen, signature checks, Stackelemente und Kosten alternativer satisfaction-Pfade. Das Ergebnis hängt vom P2WSH- oder Tapscript-Kontext ab und muss consensus- sowie standardness-Limits erfüllen.

Typkorrektheit sichert Komposition, nicht automatisch eine kluge custody policy. Malleability-Analyse prüft, ob Dritte eine gültige satisfaction verändern können. Garantien beruhen auf Annahmen wie gleichem Zugriff auf hash preimages; doppelte Schlüssel können verboten sein.

Eine policy kann zu mehreren äquivalenten Miniscripts mit anderen Script- und witness-Größen kompilieren. Der compiler optimiert ein cost model; Gewichte wie 9@ sind Wahrscheinlichkeits-Hinweise, keine consensus rules. Andere Kompilierung erzeugt gewöhnlich andere Adressen.

In einer descriptor wallet steht Miniscript in wsh() oder einem Taproot script path samt key origins. PSBT kann Transaktion und derivation zu signers tragen, doch das Gerät muss descriptor und policy unterstützen. Schlüssel, threshold, timelocks und unerwartete Zweige am Display prüfen.

Exakten descriptor mit checksum, key map, derivation paths, Netzwerk, receive/change, range und scan birthday sichern. Parser und analyzer ausführen, mehrere Adressen ableiten und jede satisfaction auf regtest oder signet testen. Watch-only recovery und Signatur vor Finanzierung erproben. Quellen: BIP 379 — Miniscript; Miniscript Reference — Specification and Analyzer; Bitcoin Core — Output Descriptors; Bitcoin Core 24.0 — Miniscript Support; BIP 388 — Wallet Policies for Descriptor Wallets.

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Bitcoin Script, Output Descriptor, Multisig, Andrew Poelstra, Timelock, Bitcoin. Auf diesen Eintrag verweisen außerdem Output Descriptor, Bitcoin-Script-Opcode, Dead Man’s Switch, Pieter Wuille.

DOC · 001BIP 379 — MiniscriptSpezifikationDOC · 002Miniscript Reference — Specification and AnalyzerSpezifikationDOC · 003Bitcoin Core — Output DescriptorsDokumentationDOC · 004Bitcoin Core 24.0 — Miniscript SupportDokumentationDOC · 005BIP 388 — Wallet Policies for Descriptor WalletsSpezifikation
Geprüft am 1. August 2026Quellenbasiert · Keine Anlageberatung