تخط وانتقل إلى المحتوى الرئيسي

ما هو BIP39؟

تم إجراء التحديث اليوم

تصف مواصفات BIP-39 بشكل أساسي الخوارزمية والعملية لتوليد محافظ تشفيرية احتمالية (deterministic wallets) بناءً على العبارات الذهنية (mnemonic) (مجموعة من الكلمات سهلة التذكر).

تتكون المواصفات من جزأين رئيسيين:

  1. كيفية توليد العبارة الذهنية.

  2. كيفية تحويل العبارة الذهنية المولدة إلى بذرة ثنائية.

فيما يلي نظرة على كيفية توليد المحافظ التشفيرية الاحتمالية عن طريق وصف كل من هذين الجزأين أولاً.

توليد عبارة ذهنية

العملية الخوارزمية لتوليد عبارة ذهنية هي كما يلي:

العملية تتم كالتالي:

  1. إنشاء تسلسل عشوائي (entropy) يتراوح طوله بين 128 و 256 بت (بزيادات قدرها 32 بت).

  2. تطبيق SHA256 على التسلسل العشوائي الذي تم إنشاؤه في الخطوة السابقة لتوليد قيمة Hash، وأخذ أول N بت من قيمة Hash (طول الـ entropy / 32، على سبيل المثال، 128 بت، إذن N = 4) كـ Checksum للتسلسل العشوائي.

  3. إضافة الـ Checksum إلى نهاية التسلسل العشوائي الذي تم إنشاؤه في الخطوة الأولى، بحيث يكون للتسلسل العشوائي مع الـ Checksum في مثال الشكل 128 + 4 = 132 بت.

  4. تقسيم التسلسل العشوائي من الخطوة السابقة إلى مقاطع بحجم 11 بت (split)، بحيث يتم توليد 12 مقطعًا لتسلسل بطول entropy يبلغ 128 بت (132 / 11 = 12).

  5. في هذه المرحلة، يتم تعيين قيمة كل مقطع يحتوي على 11 بت إلى قاموس محدد مسبقًا يتكون من 2048 كلمة.

  6. المجموعة النهائية من الكلمات المولدة بترتيب التقسيم هي العبارة الذهنية.

توليد البذرة من العبارات الذهنية

بعد توليد العبارة الذهنية، يمكننا توليد البذرة باستخدام خوارزمية PBKDF2 لوظيفة توليد المفاتيح.

تتطلب PBKDF2 معاملين: عبارة ذهنية وملح (salt). الغرض من الملح هو جعل عملية القرصنة أكثر صعوبة، وفي BIP-39 يمكننا إدخال عبارة مرور كعامل أمان إضافي لحماية البذور.

«PBKDF2 هو جزء من سلسلة معايير التشفير بالمفاتيح العامة (PKCS) الخاصة بمختبرات RSA،
تحديداً PKCS #5 v2.0، المنشورة أيضاً كـ RFC 2898 لمهمة هندسة الإنترنت.»

استكمالًا لعملية توليد العبارة الذهنية المذكورة أعلاه، يوضح الرسم البياني التالي خوارزمية توليد البذرة.

  • المعامل الأول لـ PBKDF2 هو العبارة الذهنية التي تم توليدها أعلاه.

  • المعامل الثاني لـ PBKDF2 هو الملح (salt)، والذي يتكون عمومًا من سلسلة نصية واتحاد اختياري لسلاسل التشفير المقدمة من المستخدم.

  • تستخدم PBKDF2 خوارزمية HMAC-SHA512، والتي تستخدم 2048 عملية hash لإنتاج قيمة 512 بت كبذرة.

توليد محفظة HD من البذرة

سيتم استخدام البذرة المولدة أعلاه كبذرة جذرية (Root Seed) لمحفظة HD، ويمكن للبذرة الجذرية لأي محفظة HD إعادة إنشاء المحفظة بأكملها.

generate-hd-master-key.jpeg

بإدخال البذرة الجذرية إلى خوارزمية HMAC-SHA512، نحصل على قيمة hash بطول 512 بت، تستخدم الـ 256 بت اليسرى كمفتاح رئيسي خاص (Master Private Key) والـ 256 بت اليمنى كرمز سلسلة رئيسي (Master Chain Code). بعد ذلك، يمكن توليد المفتاح العام الرئيسي (Master Public Key) (264 بت) من المفتاح الرئيسي الخاص m.

كما ترى من الرسم البياني أعلاه، يتم توليد مفتاح HD باستخدام المعاملات التالية.

  • مفتاح الأب الخاص أو مفتاح الأب العام؛ (كلاهما مفاتيح ECDSA غير مضغوطة بطول 256 بت).

  • رمز سلسلة الأب (Parent Chain Code) بطول 256 بت.

  • رقم فهرس صحيح بطول 32 بت.

بالإضافة إلى ذلك، فإن العملية المذكورة أعلاه تكرارية ويمكن استخدام مفتاح الابن الخاص في الرسم البياني كـ مفتاح الأب الخاص في المستوى التالي.

من خلال إدخال (مفتاح الأب العام، رمز سلسلة الأب، رقم الفهرس) في خوارزمية HMAC-SHA512، يمكننا توليد مفاتيح فرعية خاصة به، ويمكننا تعديل رقم الفهرس لتوليد مفاتيح فرعية متعددة على نفس المستوى.

حول المفتاح الموسع

نظرًا لأن وظيفة اشتقاق المفاتيح هذه أحادية الاتجاه، لا يمكن استخدام أي من المفاتيح الفرعية لاستنتاج مفاتيحها الأصلية أو المفاتيح الشقيقة على نفس المستوى، فقط مفتاح الأب ورمز سلسلة الأب (التي تم توليدها من المفتاح ورمز السلسلة الخاصين بالأب) يمكن استخدامهما لاستنتاج جميع المفاتيح الفرعية ورموز السلسلة الفرعية، وبالتالي توليد المفاتيح العامة الفرعية والعناوين المقابلة لتوقيع المعاملات.

يُطلق على مزيج المفتاح ورمز السلسلة اسم المفتاح الموسع، ويمكن استخدام المفتاح الموسع لتوليد جميع الفروع من هناك فصاعدًا.

يمكن أن يكون المفتاح المقدم في المفتاح الموسع مفتاحًا خاصًا أو مفتاحًا عامًا، عند دمجه مع رمز السلسلة يُطلق عليه المفتاح الخاص الموسع و المفتاح العام الموسع على التوالي، ويُشار إليهما بـ (k, c) و (K, c) على التوالي، حيث المفتاح العام K = point(k).

يمكننا اشتقاق المفتاح العام الموسع من المفتاح الخاص الموسع والعكس غير صحيح، لذلك في بعض سيناريوهات المعاملات (مثل التجارة الإلكترونية)، يمكن توليد مفتاح عام وعنوان جديدين لكل معاملة لاستلام الدفعة، بينما يمكن تخزين المفتاح الخاص الموسع في محفظة ورقية أو محفظة جهاز لتوقيع المعاملات بأمان دون اتصال. كما نرى، فإن أمان المفتاح العام الموسع مرتفع نسبيًا، ويُظهر الرسم البياني التالي آلية نقل مفتاح الأب العام الموسع لاشتقاق مفتاح الابن الخاص وتوليد مفتاح الابن العام:

هل أجاب هذا عن سؤالك؟