132 / 691MINI

Miniscript

Bitcoin Script की संरचित भाषा

Miniscript, Bitcoin Script के सीमित subset का structured और typed representation है। यह spending conditions को जोड़ने, properties analyze करने और हर script के लिए अलग logic बिना valid satisfaction बनाने देता है।

Miniscript नया opcode, consensus rule या general-purpose programming language नहीं है। यह human spending policy और concrete Bitcoin Script के बीच की layer है, जो आम तौर पर wsh() या Taproot output descriptor में होती है।

Miniscript signatures, hashlocks, timelocks और उनके combinations वाले Bitcoin Script के चुने subset को ही structure करता है। यह consensus नहीं बदलता और opcode नहीं जोड़ता; funds को final Script सुरक्षित करता है, Miniscript analyzable representation है।

Spending policy “A या 144 blocks बाद B” जैसा intent बताती है। Compiler concrete Miniscript चुनता है, जो Bitcoin Script में translate होता है। Output Descriptor script को keys, derivation, network और checksum से भी बाँधता है, जैसे wsh(...).

pk(), older(), after(), sha256(), and_v(), or_d() और thresh() की exact semantics हैं। v: जैसे wrappers type या behavior बदलते हैं। B, V, K और W types stack interfaces enforce करते हैं ताकि केवल compatible expressions compose हों।

Satisfaction वह witness है जो branch को true करता है; dissatisfaction AND, OR और threshold जोड़ने के लिए canonical false है। Generic signer available signatures, preimages और timelocks से path चुनता है। Miniscript private key नहीं बनाता और missing condition bypass नहीं करता।

after(n) absolute nLockTime और older(n) BIP 68 relative nSequence उपयोग करता है। Height और time locks compatible तथा transaction fields सही होने चाहिए; अंत में policy text नहीं बल्कि consensus Bitcoin Script spend validate करता है।

Static analysis Script और witness size, operations, signature checks, stack elements और satisfaction paths की cost bound कर सकता है। Result P2WSH या Tapscript context पर निर्भर है और consensus तथा standardness resource limits दोनों मानता है।

Type correctness safe composition देती है, sensible custody policy नहीं। Malleability analysis देखता है कि third party conditions तोड़े बिना valid satisfaction बदल सकती है या नहीं। Guarantees समान hash preimages access जैसे assumptions पर निर्भर हैं; duplicate keys forbidden हो सकती हैं।

एक policy अलग Script और witness sizes वाले equivalent Miniscripts में compile हो सकती है। Compiler cost model optimize करता है; 9@ जैसे weights probability hints हैं, consensus rule नहीं। दूसरी compilation आम तौर पर अलग Script और addresses बनाती है।

Descriptor wallet में Miniscript key origins के साथ wsh() या Taproot script path में होता है। PSBT transaction और derivation data signers तक ले जा सकता है, पर device को descriptor और policy support करना चाहिए। Screen पर keys, threshold, timelocks और unexpected branches जाँचें।

Exact checksummed descriptor, key map, derivation paths, network, receive/change branches, range और scan birthday सुरक्षित रखें। Parser/analyzer चलाएँ, कई addresses derive करें और regtest या signet पर हर satisfaction test करें। Funding से पहले watch-only recovery और signing जाँचें। स्रोत: 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.

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Bitcoin Script, Output Descriptor, Multisig, Andrew Poelstra, Timelock, Bitcoin. इस प्रविष्टि का उल्लेख यहाँ भी है Output Descriptor, Bitcoin Script opcode, Dead Man’s Switch, Andrew Poelstra.

DOC · 001BIP 379 — Miniscriptविनिर्देश ↗DOC · 002Miniscript Reference — Specification and Analyzerविनिर्देश ↗DOC · 003Bitcoin Core — Output Descriptorsदस्तावेज़ ↗DOC · 004Bitcoin Core 24.0 — Miniscript Supportदस्तावेज़ ↗DOC · 005BIP 388 — Wallet Policies for Descriptor Walletsविनिर्देश ↗
1 अगस्त 2026 को समीक्षा की गईस्रोत पहले · यह निवेश सलाह नहीं है