Derivation Path هو تسلسل دقيق لاشتقاق مفتاح معين من مفتاح ابتدائي. تخيّل مجلدات الحاسوب: وجود القرص الصحيح لا يكفي إن فتحت المجلدات الخطأ. لكن مفاتيح المحفظة تُحسب رياضيًا، ولا يُبحث عنها في ملفات محفوظة. البيانات الابتدائية نفسها والمسار نفسه يعطيان النتيجة نفسها. وقد يؤدي مسار آخر إلى جزء آخر من المحفظة ذاتها. المسار ليس عنوان دفع أو كلمة مرور، ولا يعوض النسخة الاحتياطية.
تستعيد آنا محفظتها فيطلب البرنامج مسارًا لم تضطر إلى التفكير فيه من قبل. المحفظة تطبيق أو جهاز لاستقبال البيتكوين وإرساله. يبدو m/0/7 معقدًا، لكنه يُقرأ بالترتيب: m هو العقدة الخاصة الرئيسية، ويُشتق منها المفتاح الفرعي 0، ثم منه المفتاح الفرعي 7. العقدة هنا موضع في شجرة المفاتيح، وليست حاسوبًا على شبكة Bitcoin. الأرقام فهارس، أي مواضع مرتبة، وليست مبالغ أو أرقام معاملات. يستخدم معيار BIP 32 مفتاحًا موسعًا يحتوي، إلى جانب المفتاح نفسه، على chain code: بيانات إضافية لازمة لاشتقاق المفاتيح الفرعية. لذلك لا يكفي المسار المكتوب دون المفتاح الابتدائي لتوقيع دفعة. [1] [10]
لنأخذ m/84'/0'/0'/0/7. الجزء الأول بعد m يشير إلى BIP 84 لاستخدام SegWit الأصلي، وهو أسلوب لبناء العناوين وإنفاق الأموال. تليه Bitcoin mainnet، الشبكة الرئيسية ذات البيتكوين الحقيقي، ثم الحساب 0 وفرع الاستقبال الخارجي 0 والفهرس 7. هذا هو موضع العنوان الثامن لأن العد يبدأ من الصفر. يفصل الحساب مجموعة أموال، ويحدد الفرع غرض العناوين. في ترتيب BIP 44 يُخصص الفرع 1 للباقي الخاص بك، أي المبلغ الذي يظل للمرسل بعد الدفع. الخطوات الثلاث الأولى تحمل فاصلة عليا وتكون hardened، والأخيرتان عاديتان. ماذا تغير هذه العلامة؟ [2] [5]
المفتاح الخاص قيمة عددية سرية تستخدمها المحفظة لإنشاء توقيع رقمي يجيز إنفاق الأموال. Hardened يحدد طريقة اشتقاق تحتاج إلى المفتاح الخاص للأصل. أما الخطوة العادية فتسمح باشتقاق مفتاح عام فرعي من xpub، وهو مفتاح عام موسع. ومع نوع السكربت المناسب يمكن تكوين العناوين دون القدرة على توقيع المدفوعات. لكن xpub وحده لا يتجاوز خطوة hardened. وفق BIP 380، يعني 0' و0h الشيء نفسه، وليس 0 العادي. وللقارئ التقني: يقسم BIP 32 الفهارس ذات 32 بت إلى عادية من 0 إلى 2^31−1، وأخرى hardened من 2^31 إلى 2^32−1؛ تحوّل العلامة الصفر إلى الفهرس 2^31. حذفها عند النسخ يغيّر الحساب، لا شكل الكتابة فقط. [1] [7] [10]
يسمي BIP 43 أول مستوى hardened باسم purpose، أي غرض التنظيم. تساعد القيم المتفق عليها المحافظ على معرفة الاستخدام المعتاد للفرع. للمقارنة، يشير 44' إلى P2PKH التقليدي، وهو دفع تحميه بصمة تجزئة مفتاح عام؛ ويشير 49' إلى P2SH-P2WPKH، أي SegWit داخل غلاف أقدم للتوافق؛ ويشير 84' إلى P2WPKH الأصلي؛ و86' إلى single-key P2TR، وهو تركيب Taproot بمفتاح داخلي واحد. هذه طرق مختلفة لتحديد شروط إنفاق الأموال. الرقم وحده لا يحوّل المسار إلى السكربت المطلوب ولا يفرضه عبر إجماع الشبكة. يجب أن يُنشئ البرنامج المخرج الصحيح فعلًا. وليست كل المحافظ تستخدم هذه الاصطلاحات. [3] [2] [4] [5] [6]
قد تربط آنا فقط xpub لحساب واحد كي تتابع الدفعات الواردة، بدل ربط المحفظة كلها. إن كان مصدره m/84'/0'/0' فهو بالفعل عند مستوى الحساب. للوصول إلى مثالنا السابق لا يبقى سوى اللاحقة النسبية /0/7. إضافة مسار الجذر كله مرة أخرى تبدأ اشتقاقًا جديدًا من المكان الخطأ؛ فضلًا عن أن خطوات hardened لا يمكن تنفيذها من xpub. يتضمن المفتاح الموسع المصدّر عمقه في الشجرة وfingerprint الأصل، وهي علامة تعريف قصيرة، لكنه لا يسجل كل الخطوات السابقة. لذا لا يمكن دائمًا قراءة المسار الأصلي المفقود من xpub وحده. [1] [7]
يصف Descriptor المفاتيح وشروط الإنفاق كي يُنشئ البرنامج المخرجات التي يتابعها. يسمح BIP 380 بوضع fingerprint ومسار المنشأ بين قوسين مربعين قبل المفتاح. هذه خطوات نُفذت بالفعل. أما اللاحقة بعد المفتاح فتحدد الاشتقاق اللاحق، ويمكن أن تشير النجمة * إلى سلسلة من المفاتيح الفرعية. حجم fingerprint أربعة بايتات وقد تحدث تصادمات: قد تحمل مفاتيح مختلفة العلامة القصيرة نفسها. فهي ليست إثبات هوية ولا بديلًا للمفتاح. يتيح Bitcoin Core 29.0 الأمر deriveaddresses عبر RPC، واجهة برمجة العقدة. يحسب العناوين من descriptor والنطاق المحدد إن وُجد؛ الحساب وحده لا يستعلم عن الأرصدة ولا يرسل أموالًا. [7] [1] [9]
لا يستطيع المسار وحده إنتاج مفاتيحك دون البيانات الابتدائية. مشاركة xpub أمر مختلف: يستطيع متلقيه اشتقاق المفاتيح العامة للفرع المتاح، ومع نوع السكربت المناسب تتبّع عناوينه. لا يحصل بذلك على حق الإنفاق، لكن الخصوصية قد تتضرر. يحذّر BIP 32 أيضًا من خطر أقل وضوحًا: قد يكشف xpub الأصل مع مفتاح خاص فرعي مسرّب يمكن الوصول إليه بخطوات عادية المفتاحَ الخاص الموسع للأصل. تمنع حدود hardened هذه الطريقة المحددة للعودة نحو الأصل. لكنها لا تُبطل المفتاح المسرّب ولا تنقذ الأموال التي يتحكم بها. [1]
لنعد إلى الاستعادة. Seed Phrase هي كلمات النسخة الاحتياطية. وفق BIP 39، تنتج هذه الكلمات مع passphrase اختيارية قيمة seed، السر الابتدائي لإنشاء المفاتيح. Passphrase نص سري إضافي، وليست كلمة مرور التطبيق المعتادة. مع seed مختلف يؤدي المسار نفسه إلى مفاتيح مختلفة. يجب كذلك أن تتطابق الشبكة والحساب والفرع ونوع السكربت. وعلى البرنامج البحث في عدد كافٍ من العناوين والسجل: يوقف Gap Limit البحث بعد سلسلة عناوين غير مستخدمة. لذلك لا يثبت الرصيد الصفري وحده فقدان المفاتيح. تستطيع آنا مقارنة النتيجة بعنوان استقبال معروف ودفعات قديمة. قبول البرنامج للمسار يعني أنه يستطيع معالجته، لا أنه وجد المحفظة الأصلية بأكملها. [8] [2] [7]
للحصول على صورة أوضح، اقرأ هذا المدخل مع HD Wallet, Extended Public Key (xpub), Gap Limit, Output Descriptor, BIP 39, Seed Phrase. تشير إلى هذا المدخل أيضًا HD Wallet, Watch-only Wallet, Change Address, Extended Public Key (xpub).