486 / 691SEED-GEN

Seed Generation

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

تحصل ⁦Seed Generation⁩ على مدخل غير قابل للتنبؤ وتطبق معالجة محددة بدقة للمحفظة. لا يثبت عدد الكلمات الصحيح أو المجموع الاختباري الصالح وحدهما جودة العشوائية أو السرية.

في ⁦BIP39⁩ تتحول الإنتروبيا الأولية إلى عبارة تذكّر، ثم تنتج العبارة مع ⁦passphrase⁩ الاختيارية بذرة ثنائية. يشتق ⁦BIP32⁩ منها المفتاح الرئيسي و ⁦chain code⁩. هذه القيم والخطوات ليست قابلة للتبادل؛ وقد تستخدم صيغ نسخ احتياطي أخرى مسارات مختلفة.

يوفر ⁦BIP39⁩ تمثيلا مقروءا لعشوائية يولدها الحاسوب، لا لجمل يبتكرها الإنسان. لذلك لا يعادل اختيار اقتباس معروف أو ترتيب شخصي للكلمات توليد الإنتروبيا وفق المسار المحدد. [BIP39 — Mnemonic generation and seed conversion]

تنتظر ⁦Linux getrandom()⁩ تهيئة المصدر بالإعدادات الافتراضية. وقد تعيد ⁦GRND_NONBLOCK⁩ الخطأ ⁦EAGAIN⁩ بدلا من الانتظار. يجب احترام الحالة والطول المعاد؛ ولا يجوز عرض فشل القراءة باعتباره مدخلا تم الحصول عليه بنجاح. [Linux getrandom — Initialization and return values]

توفر ⁦Web Crypto getRandomValues()⁩ بايتات آمنة تشفيريا لمصفوفة أعداد صحيحة؛ وفوق ⁦65536⁩ بايت تثير ⁦QuotaExceededError⁩. لا يثبت الالتزام بهذه الواجهة وحده صحة الكود المحمل أو المعالجة اللاحقة أو حماية العبارة من التسريب. [W3C Web Crypto — getRandomValues contract]

يضيف ⁦BIP39⁩ مقدار ⁦4⁩ بتات اختبارية إلى ⁦128⁩ بتا من المدخل لإنتاج ⁦12⁩ كلمة؛ وللمدخل ذي ⁦256⁩ بتا يضيف ⁦8⁩ بتات لإنتاج ⁦24⁩ كلمة. تشتق هذه البتات من ⁦SHA256⁩ وليست إنتروبيا مستقلة إضافية. [BIP39 — Mnemonic generation and seed conversion]

يشتق ⁦BIP39⁩ بذرة بطول ⁦512⁩ بت عبر ⁦PBKDF2-HMAC-SHA512⁩ و ⁦2048⁩ تكرارا. يستخدم العبارة وملحا من النص الحرفي ⁦mnemonic⁩ مع ⁦passphrase⁩، وكلاهما بصيغة ⁦UTF-8 NFKD⁩. عند غياب ⁦passphrase⁩ تكون فارغة؛ ولا يثبت طول الناتج وجود ⁦512⁩ بت من إنتروبيا المدخل. [BIP39 — Mnemonic generation and seed conversion]

يعالج ⁦BIP32⁩ البذرة بواسطة ⁦HMAC-SHA512⁩ ومفتاحه ⁦Bitcoin seed⁩، ثم يقسم الناتج إلى مفتاح خاص رئيسي و ⁦chain code⁩. قيمة المفتاح الصفرية أو الخارجة عن النطاق المسموح غير صالحة؛ ولا تستخدم البذرة كاملة مباشرة كمفتاح خاص واحد. [BIP32 — Master key generation]

ينشر ⁦BIP39⁩ متجهات تضم الإنتروبيا والعبارة والبذرة، ومنها ⁦passphrase⁩ الاختبارية ⁦TREZOR⁩. يثبت التطابق التحويل لذلك المدخل، لا عدم قابلية المولد الفعلي للتنبؤ. لا يجوز استخدام مدخل اختبار علني كنسخة احتياطية سرية لأموال حقيقية. [BIP39 — Mnemonic generation and seed conversion]

يربط ⁦NIST SP 800-90C⁩ مصادر الإنتروبيا بآليات التوليد. لذلك يجب أن يتتبع تقييم المحفظة النسخة المحددة ومعالجة الأخطاء وتمرير القيم إلى الخطوات التالية. لا يثبت دليل على مكون واحد وحده أمان العملية كلها أو تخزين النسخة الاحتياطية لاحقا. [NIST SP 800-90C — Random bit generator constructions]

للحصول على صورة أوضح، اقرأ هذا المدخل مع Random Number Generator, BIP 39, HD Wallet, Seed Phrase. تشير إلى هذا المدخل أيضًا Random Number Generator, CSPRNG, Deterministic RNG, Entropy Mixing.

DOC · 001BIP39 — Mnemonic generation and seed conversionمواصفة ↗DOC · 002Linux getrandom — Initialization and return valuesتوثيق ↗DOC · 003W3C Web Crypto — getRandomValues contractمواصفة ↗DOC · 004BIP32 — Master key generationمواصفة ↗DOC · 005NIST SP 800-90C — Random bit generator constructionsمواصفة ↗
المصادر أولًا · ليست نصيحة استثمارية