تستخدم محفظة البرامج رقمًا عشوائيًا لإنشاء مفتاح خاص رئيسي.
بعد ذلك، من خلال خوارزمية حتمية ولا رجعة فيها، يمكنها استخلاص عدد غير محدود من المفاتيح الخاصة الفرعية من هذا المفتاح الخاص الرئيسي.
لماذا نحتاج إلى خوارزمية حتمية ولا رجعة فيها؟
لأن حتمية تعني أنه يمكن دائمًا إنشاء جميع المفاتيح الخاصة الفرعية من نفس المفتاح الخاص الرئيسي، في حين أن لا رجعة فيه تعني أنه لا يمكن إعادة بناء المفتاح الخاص الرئيسي من أي مفتاح خاص فرعي.
ولهذا السبب يطلق عليها محفظة الحتمية الهرمية (HD). تشبه بنية اشتقاق المفاتيح الخاصة الشجرة: يمكن للمفتاح الأصلي اشتقاق مفاتيح فرعية متعددة، ويمكن لكل مفتاح فرعي اشتقاق مفاتيح حفيد متعددة، ويمكن أن تستمر هذه العملية إلى أجل غير مسمى.
عند إنشاء محفظة HD لأول مرة، أو عند عمل نسخة احتياطية للمحفظة، يتم إنشاء عبارة تذكيرية. العبارة التذكيرية هي سلسلة من الكلمات الإنجليزية. يتم استخدام هذا التسلسل لإنشاء البذرة، ثم يتم استخدام البذرة لإنشاء جميع المفاتيح الخاصة في المحفظة. بمعنى آخر، العبارة التذكيرية بمثابة نسخة احتياطية للمحفظة، لأنه يمكن استخدامها لاستعادة المحفظة. وتتوافق البذرة بدورها مع الرقم العشوائي الأصلي الموجود خلف المحفظة الحتمية.
إحدى المزايا الرئيسية لمحفظة HD هي أن المفتاح العام الرئيسي فقط هو المطلوب لإنشاء أي عدد من المفاتيح العامة الفرعية. بمعنى آخر، يمكن إنشاء عناوين عامة جديدة من المفتاح العام الرئيسي دون الحاجة إلى الوصول إلى المفاتيح الخاصة، سواء كان المفتاح الخاص الرئيسي أو المفاتيح الخاصة الفرعية. ومع ذلك، لا يزال من الممكن التحكم في كل هذه العناوين التي تم إنشاؤها في النهاية بواسطة المفتاح الخاص الرئيسي.
وبطبيعة الحال، يأتي هذا التصميم أيضا مع المخاطر. إذا تم الكشف عن العبارة التذكيرية، فهذا يعادل في الأساس كشف جميع المفاتيح الخاصة. وبمجرد حدوث ذلك، يتم فقدان أمان الأصول الرقمية في المحفظة فعليًا.
لماذا هناك حاجة إلى الكثير من المفاتيح الخاصة؟
يمكن فهم سبب حاجة المستخدمين إلى الكثير من المفاتيح الخاصة من خلال آلية التغيير في معاملات البيتكوين.
معاملة Bitcoin هي بنية بيانات تحتوي على المدخلات و المخرجات. ويتضمن أيضًا معلومات البرمجة النصية الضرورية التي تنقل القيمة من مصدرها (الإدخال) إلى وجهتها (الإخراج).
لفهم مدخلات ومخرجات البيتكوين، من المهم معرفة مفهوم UTXO (مخرجات المعاملات غير المنفقة). UTXO هي الوحدة الأساسية لمعاملة Bitcoin وتمثل مخرجات المعاملة غير المنفقة. يتم توزيع عملة البيتكوين الواحدة فعليًا عبر العديد من المعاملات والعديد من الكتل في شكل UTXOs. في الواقع، لا يوجد سجل مركزي لتخزين رصيد حساب بسيط؛ بدلاً من ذلك، لا يوجد سوى UTXOs اللامركزية المقفلة لأصحابها.
يمكن أن تمثل UTXO أي قدر من القيمة، ولكن بمجرد إنشائها، تصبح غير قابلة للتجزئة بنفس الطريقة التي لا يمكن بها تقسيم العملة المادية إلى النصف. إذا كانت قيمة UTXO أكبر من المبلغ المطلوب للمعاملة، فيجب إنفاق UTXO بالكامل، وسيتم إرجاع الفائض كتغيير.
على سبيل المثال، تخيل أن لديك UTXO بقيمة 20 وحدة وتريد أن تدفع وحدة واحدة. يجب أن تستهلك المعاملة UTXO المكونة من 20 وحدة كاملة وإنشاء مخرجين: يرسل أحد المخرجات وحدة واحدة إلى المستلم، بينما يرسل الآخر 19 وحدة إلى محفظتك كتغيير. وبهذا المعنى، فإن معظم معاملات البيتكوين تولد التغيير.
يؤدي هذا إلى سؤال آخر: هل يجب إرسال التغيير مرة أخرى إلى العنوان الأصلي أم إلى عنوان تم إنشاؤه حديثًا؟
عندما صمم ساتوشي ناكاموتو عملة البيتكوين، تم استخدام آلية تغيير العنوان، مما يعني أنه غالبًا ما يتم إنشاء عنوان جديد لتلقي التغيير من كل معاملة. وتتمثل فائدة هذا التصميم في أنه يساعد في حماية خصوصية المستخدم ويقلل من بعض المخاطر الأمنية.
في الحياة الواقعية، يمكن مقارنة ذلك بفتح عدة حسابات مصرفية بأسماء وهويات مختلفة في بنوك مختلفة. حتى لو تمكن شخص ما من مراقبة تدفق الأموال في كل حساب، يصبح من الصعب عليه تتبع كل ذلك وصولاً إلى المالك الحقيقي للأصول الرقمية. وهذا جزء مما يمنح البيتكوين مجهوليتها النسبية.
ولهذا السبب يحتاج مستخدمو المحفظة إلى الكثير من المفاتيح الخاصة. نظرًا لأن المفاتيح العامة والمفاتيح الخاصة موجودة دائمًا في أزواج، وقد تولد كل معاملة عنوان تغيير جديدًا، فإن تخزين المفاتيح الخاصة المقابلة لجميع هذه العناوين ونسخها احتياطيًا قد يصبح تحديًا تقنيًا كبيرًا. تعمل محفظة HD على حل هذه المشكلة من خلال السماح لجذر واحد بإنشاء أي عدد من المفاتيح العامة للأطفال والمفاتيح الخاصة للأطفال، مما يحسن بشكل كبير من سهولة استخدام المحافظ الرقمية.
