Miniscript ليس opcode جديدًا ولا consensus rule ولا لغة برمجة عامة. إنه طبقة وسطى بين spending policy البشرية وBitcoin Script الفعلي، وعادة يُضمّن داخل output descriptor من نوع wsh() أو Taproot.
ينظم Miniscript مجموعة مختارة فقط من Bitcoin Script للتواقيع وhashlocks وtimelocks وتركيباتها. لا يغير consensus ولا يضيف opcode؛ يحمي الأموال Script الناتج، بينما Miniscript تمثيل قابل للتحليل يترجمه البرنامج أو يتعرف عليه.
تعبّر spending policy عن القصد مثل «A أو B بعد 144 كتلة». يختار compiler Miniscript محددًا ويترجمه إلى Bitcoin Script. ويربط Output Descriptor أيضًا script بالمفاتيح وderivation والشبكة وchecksum، مثل wsh(...).
لـ pk() وolder() وafter() وsha256() وand_v() وor_d() وthresh() دلالات دقيقة. تغيّر wrappers مثل v: النوع أو السلوك. تفرض الأنواع B وV وK وW واجهات stack فلا تتركب إلا التعبيرات المتوافقة.
Satisfaction هي witness تجعل الفرع صحيحًا؛ وdissatisfaction قيمة زائفة معيارية لازمة لتركيب AND وOR وthreshold. يختار signer عام المسار حسب التواقيع وpreimages وtimelocks المتاحة. لا ينشئ Miniscript private keys ولا يتجاوز شرطًا مفقودًا.
يستخدم after(n) nLockTime مطلقًا، ويستخدم older(n) nSequence نسبيًا وفق BIP 68. يجب توافق locks المرتبطة بالارتفاع والزمن وضبط حقول المعاملة؛ والتحقق النهائي لـ consensus Bitcoin Script لا لنص policy.
يمكن للتحليل الساكن تحديد حجم Script وwitness وعدد العمليات وsignature checks وعناصر stack وكلفة مسارات satisfaction. تعتمد النتيجة على سياق P2WSH أو Tapscript ويجب أن تحترم حدود consensus وstandardness.
صحة الأنواع تضمن تركيبًا سليمًا لا custody policy حكيمة. يفحص تحليل malleability هل يستطيع طرف ثالث تغيير satisfaction صالحة دون كسر الشروط. تعتمد الضمانات على افتراضات مثل تساوي الوصول إلى hash preimages، وقد تُمنع المفاتيح المكررة.
قد تترجم policy واحدة إلى Miniscripts متكافئة بأحجام Script وwitness مختلفة. يحسن compiler وفق cost model؛ الأوزان مثل 9@ إرشاد احتمالي وليست consensus rule. ترجمة أخرى تنتج عادة Script وعناوين مختلفة.
في descriptor wallet يوجد Miniscript داخل wsh() أو Taproot script path مع key origins. يستطيع PSBT نقل المعاملة وderivation إلى signers، لكن يجب أن يدعم الجهاز descriptor وpolicy. تحقق على الشاشة من المفاتيح وthreshold وtimelocks والفروع غير المتوقعة.
احفظ descriptor الدقيق مع checksum وkey map وderivation paths والشبكة وفروع receive/change وrange وscan birthday. شغّل parser/analyzer واشتق عدة عناوين واختبر كل satisfaction على regtest أو signet. اختبر watch-only recovery والتوقيع قبل التمويل. المصادر: 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.