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