مسارات اشتقاق BIP-44: كيفية توليد المحافظ للعناوين
عند إعداد محفظة عملات رقمية وتوليد عبارة البذور، يجب أن تنتج هذه البذرة الفردية آلاف العناوين عبر عشرات البلوكتشين المختلفة — كل منها له مفتاحه الخاص والعام وتنسيق العنوان الخاص به. يحدد BIP-44 الهيكل التنظيمي الذي يجعل هذا ممكناً: شجرة هرمية من المفاتيح مشتقة من جذر واحد، مع تدوين مسار موحد يضمن بقاء المحافظ قابلة للتشغيل المتبادل.
فهم مسارات الاشتقاق ضروري لأي شخص يحتاج لاسترجاع الأموال في محفظة مختلفة، إدارة محافظ متعددة العملات، أو استكشاف أخطاء "الأرصدة المفقودة" بعد استعادة عبارة البذور.
الهيكل الهرمي لاشتقاق المفاتيح
BIP-32: الأساس
يبني BIP-44 على BIP-32 (المحافظ الهرمية المحددة)، الذي يعرف طريقة لاشتقاق شجرة غير محدودة من أزواج المفاتيح من مفتاح رئيسي واحد. قدم BIP-32 مفهومين أساسيين:
اشتقاق المفاتيح الفرعية — من أي مفتاح موسع (مفتاح خاص أو عام مع رمز السلسلة)، يمكنك اشتقاق مفاتيح فرعية بفهارس مختلفة. كل فرع يمكنه بدوره اشتقاق أطفاله الخاصين، مما يخلق شجرة.
الاشتقاق المعزز مقابل الطبيعي — الاشتقاق الطبيعي يسمح باشتقاق مفاتيح فرعية عامة من مفتاح عام أب (مفيد للمحافظ للمراقبة فقط). يتطلب الاشتقاق المعزز مفتاح الأب الخاص ويوفر عزلة أمان أقوى بين الفروع. يتم كتابة الفهارس المعززة تقليدياً بعلامة اقتباس (على سبيل المثال، 44').
BIP-43: حقل الغرض
أسس BIP-43 الاتفاقية المتمثلة في استخدام المستوى الأول من شجرة الاشتقاق للإشارة إلى "الغرض" — بشكل أساسي معيار BIP الذي يتم متابعته. يستخدم BIP-44 الغرض 44'، BIP-49 يستخدم 49' (لعناوين P2SH المتوافقة مع SegWit)، BIP-84 يستخدم 84' (لـ SegWit الأصلي)، و BIP-86 يستخدم 86' (لـ Taproot).
BIP-44: المسار الكامل
يحدد BIP-44 مسار اشتقاق من خمسة مستويات:
m / purpose' / coin_type' / account' / change / address_index
لكل مستوى معنى محدد:
| المستوى | الحقل | معزز | الوصف |
|---|---|---|---|
| 1 | الغرض | نعم (44') | يحدد معيار الاشتقاق |
| 2 | نوع العملة | نعم | يحدد العملة الرقمية |
| 3 | الحساب | نعم | يفصل الأموال إلى حسابات منطقية |
| 4 | التغيير | لا (0 أو 1) | خارجي (0) أو تغيير داخلي (1) |
| 5 | فهرس العنوان | لا (0, 1, 2...) | رقم العنوان المتسلسل |
الغرض (44')
حقل الغرض يكون دائماً 44' لاشتقاق معيار BIP-44. القيم الشائعة الأخرى:
49'— BIP-49 (P2SH-wrapped SegWit)84'— BIP-84 (Native SegWit / Bech32)86'— BIP-86 (Taproot / P2TR)
هذه تحدد أنواع العناوين المختلفة وتشرح في BIP الخاصة بكل منها.
نوع العملة
يحدد نوع العملة العملة الرقمية التي تنتمي إليها المفاتيح المشتقة. تتضمن أنواع العملات المسجلة:
| العملة | نوع العملة | بادئة المسار |
|---|---|---|
| Bitcoin | 0' | m/44'/0' |
| Bitcoin Testnet | 1' | m/44'/1' |
| Litecoin | 2' | m/44'/2' |
| Dogecoin | 3' | m/44'/3' |
| Ethereum | 60' | m/44'/60' |
| Ethereum Classic | 61' | m/44'/61' |
| Cosmos | 118' | m/44'/118' |
| Solana | 501' | m/44'/501' |
| Cardano | 1815' | m/44'/1815' |
| Polkadot | 354' | m/44'/354' |
يتم الاحتفاظ بالسجل الكامل لأنواع العملات في SLIP-44 ويحتوي على أكثر من 1000 إدخال.
الحساب
يسمح مستوى الحساب للمستخدمين بإنشاء حسابات منطقية منفصلة داخل نفس المحفظة، مشابهة لوجود عدة حسابات بنكية. الحساب 0' هو الافتراضي:
m/44'/0'/0'— حساب Bitcoin 0m/44'/0'/1'— حساب Bitcoin 1m/44'/60'/0'— حساب Ethereum 0
تستخدم الحسابات اشتقاقاً معززاً، مما يعني أن معرفة المفتاح العام الموسع لحساب واحد لا تكشف مفاتيح حساب آخر. هذا يوفر عزلة الخصوصية بين الحسابات.
التغيير
يميز مستوى التغيير بين:
- 0 (السلسلة الخارجية) — العناوين المعطاة للآخرين لاستقبال المدفوعات.
- 1 (السلسلة الداخلية) — العناوين التي تستخدمها المحفظة داخلياً لإرجاع التغيير إلى نفسك.
في نموذج UTXO في Bitcoin، عندما تنفق ناتج المعاملة، يجب استهلاك الناتج بالكامل. إذا كنت ترسل 0.5 BTC من ناتج 1 BTC، يتم إرسال 0.5 BTC المتبقية إلى عنوان تغيير يتحكم به محفظتك. تحافظ سلسلة التغيير على هذه العناوين منفصلة عن عناوين الاستقبال لأغراض تنظيمية وخصوصية.
Ethereum والبلوكتشينات القائمة على الحسابات الأخرى لا تستخدم سلسلة التغيير بنفس الطريقة، حيث أنها لا تملك نموذج UTXO. عادةً ما تستخدم محافظ Ethereum السلسلة الخارجية فقط (التغيير = 0).
فهرس العنوان
فهرس العنوان هو الرقم المتسلسل للعنوان داخل سلسلة. تزيد المحافظ هذا العداد في كل مرة يتم توليد عنوان جديد:
m/44'/0'/0'/0/0— العنوان الأول المستقبِلm/44'/0'/0'/0/1— العنوان الثاني المستقبِلm/44'/0'/0'/0/2— العنوان الثالث المستقبِلm/44'/0'/0'/1/0— عنوان التغيير الأولm/44'/0'/0'/1/1— عنوان التغيير الثاني
مسارات الاشتقاق للعملات الرقمية الرئيسية
Bitcoin
يستخدم Bitcoin عدة مسارات اشتقاق تقابل أنواع العناوين المختلفة:
| المعيار | المسار | نوع العنوان | البادئة | مثال |
|---|---|---|---|---|
| BIP-44 | m/44'/0'/0' | Legacy (P2PKH) | 1... | 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa |
| BIP-49 | m/49'/0'/0' | SegWit-compat (P2SH-P2WPKH) | 3... | 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy |
| BIP-84 | m/84'/0'/0' | Native SegWit (P2WPKH) | bc1q... | bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 |
| BIP-86 | m/86'/0'/0' | Taproot (P2TR) | bc1p... | bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297 |
مهم للاسترجاع: إذا قمت باستعادة عبارة البذور في محفظة جديدة ولم ترَ رصيدك، قد تكون المحفظة تفحص مسار اشتقاق مختلف عن المحفظة الأصلية. جرب التبديل بين أنواع العناوين Legacy و SegWit و Taproot، أو حدد مسار الاشتقاق يدويًا.
Ethereum
يستخدم Ethereum عادة مسار اشتقاق واحد:
m/44'/60'/0'/0/0 — الحساب الأول
m/44'/60'/0'/0/1 — الحساب الثاني (بعض المحافظ)
ومع ذلك، بعض المحافظ (مثل Ledger Live) تشتق حسابات متعددة على مستوى الحساب:
m/44'/60'/0'/0/0 — الحساب 0
m/44'/60'/1'/0/0 — الحساب 1
m/44'/60'/2'/0/0 — الحساب 2
بينما البعض الآخر (مثل MetaMask) تزيد فهرس العنوان:
m/44'/60'/0'/0/0 — الحساب 1
m/44'/60'/0'/0/1 — الحساب 2
m/44'/60'/0'/0/2 — الحساب 3
هذا عدم التناسق قد يسبب التباساً أثناء الاسترجاع. لاحظ دائماً أي برنامج محفظة أنشأ عبارة البذور الخاصة بك.
Solana
يستخدم Solana Ed25519 (منحنى بيضاوي مختلف عن secp256k1) مع المسار:
m/44'/501'/0' — Phantom, Solflare
m/44'/501'/0'/0' — بعض الحالات
Cardano
يستخدم Cardano مخطط اشتقاق مفاتيح مختلف (Ed25519-BIP32 / CIP-1852) مع المسار:
m/1852'/1815'/0'/0/0 — عنوان الدفع الأول
m/1852'/1815'/0'/2/0 — مفتاح التراهن الأول
لاحظ حقل الغرض 1852' (CIP-1852، سُمي على اسم سنة ميلاد Ada Lovelace) بدلاً من 44'.
الاشتقاق المعزز مقابل الطبيعي
فهم الفرق بين الاشتقاق المعزز والطبيعي حاسم للأمان.
الاشتقاق الطبيعي (غير معزز)
- يستخدم الفهارس من 0 إلى 2^31 - 1.
- يمكن اشتقاق المفاتيح العامة الفرعية من المفتاح العام الموسع الأب دون الحاجة إلى المفتاح الخاص للأب.
- الميزة: تمكن محافظ المراقبة فقط (مثلاً، خادم يمكنه توليد عناوين استقبال جديدة باستخدام xpub فقط، دون حمل مفاتيح خاصة).
- الخطر: إذا حصل المهاجم على كل من مفتاح فرعي خاص والمفتاح العام الموسع الأب، يمكنه حساب المفتاح الخاص للأب وجميع المفاتيح الخاصة للأشقاء.
الاشتقاق المعزز
- يستخدم الفهارس من 2^31 إلى 2^32 - 1 (مكتوب كـ 0' إلى 2^31 - 1').
- يتطلب المفتاح الخاص الموسع للأب لاشتقاق المفاتيح الفرعية.
- الميزة: المساس بمفتاح فرعي لا يساس بالأب أو الأشقاء.
- الخطر: لا يمكن اشتقاق المفاتيح العامة الفرعية من المفتاح العام الموسع للأب وحده (لا وظيفة مراقبة فقط على هذا المستوى).
لماذا يستخدم BIP-44 الاشتقاق المعزز للمستويات الثلاثة الأولى
الغرض، نوع العملة، والحساب كلها معززة (44'/0'/0') لأن:
- المساس بمفتاح خاص للعنوان (على المستوى غير المعزز 5) يجب أن لا يساس بالحساب.
- يجب عزل الحسابات بعضها عن بعض.
- يجب عزل العملات المختلفة بعضها عن بعض.
مستويات التغيير وفهرس العنوان غير معززة (0/0) للسماح لمحافظ المراقبة فقط بتوليد عناوين استقبال دون المفتاح الخاص الرئيسي.
حد الفجوة
لا تفحص المحافظ عدداً لا نهائياً من العناوين. يقدم معيار BIP-44 مفهوم "حد الفجوة" — عدد العناوين المتتالية غير المستخدمة التي ستفحصها محفظة قبل التوقف. حد الفجوة المعياري هو 20.
إذا أنشأت العناوين من 0 إلى 25، لكن فقط العناوين 0 و 5 و 10 و 25 تلقت أموالاً، ستقوم المحفظة بـ:
- فحص العنوان 0 — به معاملات، استمر.
- فحص العناوين 1-4 — غير مستخدمة، لكن ضمن حد الفجوة.
- فحص العنوان 5 — به معاملات، إعادة تعيين عداد الفجوة.
- المتابعة حتى تواجه 20 عنواناً متتالياً بدون معاملات.
المشكلة: إذا أنشأت عناوين كثيرة تتجاوز حد الفجوة (شائع مع معالجات دفع التاجر)، قد لا تجد استعادة المحفظة جميع أموالك. قد تحتاج إلى زيادة حد الفجوة في إعدادات المحفظة أثناء الاسترجاع.
استخدم أداة اشتقاق المفاتيح SafeSeed لاستكشاف مسارات اشتقاق BIP-44 بشكل تفاعلي. أدخل عبارة بذور (استخدم عبارة اختبار، وليس عبارتك الحقيقية) وانظر كيف تنتج مسارات اشتقاق مختلفة عناوين مختلفة لعملات مختلفة. تتم جميع المعالجة في متصفحك.
المفاتيح الموسعة: xpub و ypub و zpub
تشفر المفاتيح الموسعة مادة المفتاح مع البيانات الوصفية حول مسار الاشتقاق:
| البادئة | المعيار | نوع العنوان | الشبكة |
|---|---|---|---|
| xpub / xprv | BIP-44 | Legacy (P2PKH) | Mainnet |
| ypub / yprv | BIP-49 | SegWit-compat (P2SH-P2WPKH) | Mainnet |
| zpub / zprv | BIP-84 | Native SegWit (P2WPKH) | Mainnet |
| tpub / tprv | BIP-44 | Legacy (P2PKH) | Testnet |
تخبر البادئة برنامج المحفظة أي نوع عنوان لاشتقاقه. إذا قمت بتصدير xpub واستيراده في محفظة تتوقع zpub، ستشهد عناوين مختلفة (غير صحيحة).
تحذير خصوصية المفتاح العام الموسع
مشاركة xpub (أو ypub/zpub) تسمح للمستقبِل بـ:
- اشتقاق جميع عناوين الاستقبال السابقة والمستقبلية.
- تتبع سجل معاملاتك الكامل والرصيد.
- ربط عناوينك معاً، مما يدمر فوائد الخصوصية لاستخدام عنوان جديد لكل معاملة.
لا تشارك المفاتيح العامة الموسعة إلا مع أطراف تثق بها بالكامل بخصوصيتك المالية (مثل محاسبك، محفظة مراقبة على خادمك الخاص).
مشاكل مسار الاشتقاق الشائعة
"استعدت عبارة البذور الخاصة بي لكن الرصيد يظهر صفر"
هذه هي مشكلة مسار الاشتقاق الأكثر شيوعاً. الأسباب المحتملة:
- نوع عنوان خاطئ — استخدمت عناوين SegWit (BIP-84،
m/84'/0'/0') لكن المحفظة الجديدة تفحص مسارات Legacy (BIP-44،m/44'/0'/0'). بدّل أنواع العناوين. - نوع عملة خاطئ — استخدمت بعض المحافظ نوع العملة 0 لجميع العملات في التطبيقات السابقة.
- حساب خاطئ — قد تكون استخدمت الحساب 1 أو أعلى.
- حد الفجوة — كانت عناوينك المستخدمة تتجاوز حد الفجوة الافتراضي البالغ 20.
- مسار اشتقاق مخصص — تستخدم بعض المحافظ مسارات غير معيارية.
"محفظتاي تعرضان عناوين مختلفة من نفس عبارة البذور"
إذا أنتجت محفظتان عناوين مختلفة من نفس عبارة البذور، فإنهما تستخدمان مسارات اشتقاق أو أنواع عناوين مختلفة. تحقق من إعدادات الاشتقاق في كلا المحفظتين.
قائمة تحقق الاسترجاع
عند استعادة محفظة من عبارة بذور:
- تحقق من أن المحفظة تدعم BIP-39.
- حدد نوع العنوان الصحيح (Legacy أو SegWit أو Taproot).
- تحقق من أن مسار الاشتقاق يطابق المحفظة الأصلية.
- زد حد الفجوة إذا استخدمت عدة عناوين.
- تحقق من جميع الحسابات (وليس فقط الحساب 0) إذا أنشأت حسابات متعددة.
متقدم: مسارات الاشتقاق المخصصة
تتطلب بعض حالات الاستخدام المتقدمة مسارات اشتقاق مخصصة:
- إعدادات التوقيعات المتعددة — يحدد BIP-48 مسارات الاشتقاق لمحافظ multisig:
m/48'/0'/0'/2'(لـ multisig SegWit الأصلي). - شبكة Lightning — قد تستخدم بعض تطبيقات Lightning مسارات اشتقاق مخصصة لمفاتيح القنوات.
- محافظ الخصوصية — قد تستخدم Wasabi ومحافظ أخرى تركز على الخصوصية مسارات محددة.
وثّق دائماً مسارات الاشتقاق التي تستخدمها. إذا لم تتمكن من إعادة بناء المسار الدقيق، لا يمكنك استرجاع الأموال.
الأسئلة الشائعة
ما هو مسار الاشتقاق في العملات الرقمية؟
مسار الاشتقاق هو تدوين منظم يحدد كيفية اشتقاق مفتاح أو عنوان معين من بذرة رئيسية في محفظة هرمية محددة (HD). يتبع الصيغة m/purpose'/coin_type'/account'/change/address_index، حيث يضيق كل مستوى إلى مفتاح معين في شجرة الاشتقاق.
لماذا تستخدم العملات الرقمية المختلفة أنواع عملات مختلفة؟
تضمن أنواع العملات المختلفة أن نفس عبارة البذور تنتج مفاتيح منفصلة وغير مرتبطة لكل بلوكتشين. هذا يمنع التداخل العرضي بين السلاسل ويضمن أن المساس بالمفاتيح على سلسلة واحدة لا يؤثر على المفاتيح على سلسلة أخرى.
هل يمكنني استخدام نفس عبارة البذور لـ Bitcoin و Ethereum؟
نعم. يمكن لنفس عبارة البذور BIP-39 اشتقاق مفاتيح لـ Bitcoin و Ethereum (وعملات رقمية أخرى كثيرة). يستخدمان مسارات اشتقاق مختلفة — Bitcoin عند m/44'/0'/0' و Ethereum عند m/44'/60'/0' — لذا فإن المفاتيح والعناوين المشتقة مستقلة تماماً.
ما الذي تعنيه علامة الاقتباس (') في مسارات الاشتقاق؟
تشير علامة الاقتباس إلى الاشتقاق المعزز. يتطلب الاشتقاق المعزز المفتاح الخاص للأب ويوفر عزلة أمان أقوى: المساس بمفتاح فرعي لا يكشف مفاتيح الأب أو الأشقاء. المستويات غير المعززة (بدون علامة الاقتباس) تسمح باشتقاق المفاتيح العامة الفرعية من مفتاح عام أب موسع.
لماذا تظهر محفظتي رصيد صفر بعد استعادة عبارة بذور؟
الأسباب الأكثر شيوعاً هي عدم تطابق مسار الاشتقاق. قد تكون محفظتك الأصلية قد استخدمت نوع عنوان مختلف (Legacy vs SegWit vs Taproot)، كل منها يستخدم مسار اشتقاق مختلف. حاول تبديل أنواع العناوين في محفظة الاسترجاع، أو حدد يدويًا مسار الاشتقاق المستخدم من قبل محفظتك الأصلية.