Miniscript bukan opcode baru, consensus rule, atau bahasa pemrograman umum. Ia adalah lapisan antara spending policy manusia dan Bitcoin Script konkret, biasanya di dalam output descriptor wsh() atau Taproot.
Miniscript hanya menstrukturkan subset Bitcoin Script untuk tanda tangan, hashlocks, timelocks, dan kombinasinya. Ia tidak mengubah consensus atau menambah opcode; dana dilindungi Script hasil, sedangkan Miniscript adalah representasi yang dapat dianalisis software.
Spending policy menyatakan maksud seperti “A atau B setelah 144 blok”. Compiler memilih Miniscript konkret untuk diterjemahkan ke Bitcoin Script. Output Descriptor juga mengikat script dengan kunci, derivation, jaringan, dan checksum, misalnya wsh(...).
pk(), older(), after(), sha256(), and_v(), or_d(), dan thresh() memiliki semantik tepat. Wrappers seperti v: mengubah tipe atau perilaku. Tipe B, V, K, dan W memaksakan interface stack agar hanya ekspresi kompatibel yang tersusun.
Satisfaction adalah witness yang membuat cabang benar; dissatisfaction adalah nilai salah kanonis untuk menyusun AND, OR, dan threshold. Signer umum memilih jalur dari tanda tangan, preimages, dan timelocks yang tersedia. Miniscript tidak membuat private keys atau melewati syarat.
after(n) memakai nLockTime absolut, older(n) memakai nSequence relatif menurut BIP 68. Locks berbasis tinggi dan waktu harus kompatibel serta kolom transaksi benar; consensus Bitcoin Script, bukan teks policy, akhirnya memvalidasi pengeluaran.
Analisis statis membatasi ukuran Script dan witness, operasi, signature checks, stack elements, serta biaya jalur satisfaction. Hasil bergantung pada konteks P2WSH atau Tapscript dan harus mematuhi batas resource consensus dan standardness.
Kebenaran tipe menjamin komposisi aman, bukan custody policy yang bijak. Analisis malleability menilai apakah pihak ketiga dapat mengubah satisfaction valid tanpa melanggar syarat. Jaminan bergantung pada asumsi seperti akses hash preimages yang sama; kunci duplikat dapat dilarang.
Satu policy dapat dikompilasi menjadi beberapa Miniscripts setara dengan ukuran Script dan witness berbeda. Compiler mengoptimalkan cost model; bobot seperti 9@ adalah petunjuk probabilitas, bukan consensus rule. Kompilasi berbeda biasanya menghasilkan alamat berbeda.
Dalam descriptor wallet, Miniscript berada di wsh() atau Taproot script path bersama key origins. PSBT membawa transaksi dan derivation ke signers, tetapi perangkat harus mendukung descriptor dan policy. Periksa kunci, threshold, timelocks, dan cabang tak terduga pada layar.
Simpan descriptor ber-checksum, key map, derivation paths, jaringan, cabang receive/change, range, dan scan birthday secara tepat. Jalankan parser/analyzer, derive beberapa alamat, dan uji tiap satisfaction di regtest atau signet. Uji watch-only recovery dan signing sebelum mendanai. Sumber: 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.
Untuk gambaran yang lebih utuh, baca entri ini bersama Bitcoin Script, Output Descriptor, Multisig, Andrew Poelstra, Timelock, Bitcoin. Entri ini juga dirujuk dari Output Descriptor, Bitcoin Script opcode, Dead Man’s Switch, Andrew Poelstra.