الـ descriptor ليس عنوانًا ولا seed ولا ملف wallet. تعبير مثل wpkh(...) يحدد نوع scriptPubKey ومصدر المفاتيح وderivation وrange اختياريًا؛ أما آخر index وscan birthday فيجب حفظهما منفصلين.
يصف Output Descriptor مجموعة scriptPubKey والمعلومات اللازمة لاشتقاقها أو إنفاقها. يعني wpkh(KEY) مخرجات SegWit أصلية من ذلك المفتاح. وهو ليس عنوان Bitcoin ولا seed ولا نسخة wallet احتياطية كاملة.
تحدد pk() وpkh() وwpkh() وsh() وwsh() وaddr() وraw() نص الإخراج بدقة. التغليف مثل sh(wpkh(KEY)) يغير scriptPubKey والعنوان؛ لذلك يعرّف xpub نفسه داخل wrapper مختلف wallet مختلفة.
قد يتضمن المفتاح أصلًا [fingerprint/path] ثم xpub وderivation لاحقة. يساعد Key origin الـ signer على مطابقة المسار، لكن fingerprint ليس هوية تشفيرية ولا مصادقة للجهاز؛ يجب التحقق من export عبر قناة موثوقة.
ينشئ wildcard /* ranged descriptor ويتطلب range عند الاشتقاق. يمكن لصيغة multipath مثل <0;1> جمع فرعي receive وchange. لا يحفظ descriptor وحده next index أو العناوين المستخدمة أو gap limit أو scan birthday.
الأحرف الثمانية بعد # هي descriptor checksum وفق BIP 380. تكشف أخطاء كتابة وتبديل كثيرة، لكنها ليست توقيعًا أو تشفيرًا أو إثبات مصدر؛ ويمكن لمن يغير التعبير حساب checksum صالح جديد.
يسمح descriptor عام يحوي xpub بالمراقبة والاشتقاق دون توقيع. وإذا حوى xprv أو WIF أو مادة خاصة فقد يتيح الإنفاق ويجب حمايته مثل seed. يعيد getdescriptorinfo الصيغة العامة القياسية وhasprivatekeys.
يحفظ multi(k,...) ترتيب المفاتيح، لذا يغير تبديلها النص والعناوين. يرتب sortedmulti(k,...) المفاتيح معجميًا في كل derivation. يجب أن تحفظ النسخة threshold وكل cosigners وkey origins وwrapper؛ لا تكفي seed واحدة.
يصف tr(KEY) مسار Taproot key path، ويضيف tr(KEY,TREE) شجرة script path. يغير شكل الشجرة Merkle root والعنوان، فلا تكفي قائمة نصوص غير مرتبة. يمكن لـ Miniscript أو multi_a التعبير عن شروط، لكنهما لا يستبدلان descriptor كاملًا.
يقبل importdescriptors الـ descriptor مع checksum وبيانات timestamp وactive وinternal وrange وnext_index. يحدد timestamp بدء scan؛ وقد يخفي birthday متأخر التاريخ حتى rescan صحيح. ليست كل حالة wallet داخل التعبير.
قبل استلام الأموال شغّل getdescriptorinfo وافحص checksum وisrange وissolvable وhasprivatekeys. اشتق عدة عناوين خارجية وchange باستخدام deriveaddresses وقارنها مع wallet المصدر أو شاشة hardware wallet. اختبر استعادة كاملة أولًا. المصادر: BIP 380 — Generic Output Script Descriptors; BIP 383 — multi() and sortedmulti() Descriptors; BIP 386 — tr() Output Script Descriptors; Bitcoin Core — Output Descriptors; Bitcoin Core RPC — importdescriptors.
للحصول على صورة أوضح، اقرأ هذا المدخل مع محفظة, Watch-only Wallet, Multisig, PSBT, Miniscript, Bitcoin. تشير إلى هذا المدخل أيضًا Watch-only Wallet, Extended Public Key (xpub), PSBT, Miniscript.