دليل إنشاء محفظة Solana: مفاتيح ed25519 والعناوين
جدول المحتويات
تُعد سولانا واحدة من أكثر سلاسل الكتل استخدامًا في كل من التمويل اللامركزي (DeFi) والتطبيقات الاستهلاكية، لكن عملية إنشاء المحفظة فيها تختلف بشكل جوهري عن بيتكوين وإيثريوم. منحنى بيضاوي مختلف، ومسارات اشتقاق مختلفة، وترميز عنوان مختلف، وافتراضات مختلفة حول إدارة المفاتيح. إذا كنت قادمًا من عالم بيتكوين أو إيثريوم، فإن هذه الفروقات مهمة --- وسوء فهمها قد يؤدي إلى فقدان الأموال أو اختراق الأمان.
يغطي هذا الدليل عملية إنشاء محفظة سولانا بالكامل: منحنى ed25519 البيضاوي، ومسارات الاشتقاق الخاصة بسولانا، وترميز عنوان Base58، واعتبارات الأمان الفريدة لنظام سولانا البيئي.
كيف تختلف سولانا عن بيتكوين وإيثريوم¶
على أعلى مستوى، يكمن الفرق في المنحنى البيضاوي. يستخدم كل من بيتكوين وإيثريوم secp256k1، وهو منحنى من مجموعة معايير التشفير الفعال (SECG). أما سولانا فتستخدم ed25519، وهو منحنى بصيغة إدواردز صممه دانيال ج. بيرنشتاين وزملاؤه. يمتد تأثير اختيار المنحنى عبر كل طبقة من طبقات المنظومة.
| الخاصية | بيتكوين / إيثريوم | سولانا |
|---|---|---|
| المنحنى البيضاوي | secp256k1 | ed25519 |
| نظام التوقيع | ECDSA | EdDSA (Ed25519) |
| حجم المفتاح الخاص | 32 بايت | 64 بايت (موسع) |
| حجم المفتاح العام | 33 بايت (مضغوط) | 32 بايت |
| ترميز العنوان | Bech32 / Hex | Base58 |
| مسار الاشتقاق | m/44'/0'/0' أو m/44'/60'/0'/0 | m/44'/501'/0'/0' |
تعكس خيارات تصميم سولانا أولوياتها: إنتاجية عالية والتحقق السريع من التوقيعات. التحقق من توقيعات Ed25519 أسرع بنحو الضعف مقارنة بتوقيعات ECDSA على secp256k1 --- وهذا أمر مهم عند معالجة آلاف المعاملات في الثانية. لمقارنة تقنية أعمق بين المنحنيين، راجع secp256k1 vs ed25519.
منحنى ed25519¶
Ed25519 هو مثال محدد لخوارزمية التوقيع الرقمي بمنحنى إدواردز (EdDSA)، يعمل على Curve25519. يُعرَّف المنحنى فوق الحقل الأولي 2^255 - 19 (ومن هنا جاء الاسم) ويستخدم صيغة إدواردز الملتوية:
-x^2 + y^2 = 1 + d*x^2*y^2
حيث d ثابت محدد. مستوى الأمان يبلغ تقريبًا 128 بت --- مماثل لـ secp256k1 --- لكن خصائص التنفيذ تختلف بشكل ملحوظ.
توليد المفاتيح¶
يبدأ المفتاح الخاص لسولانا كعدد عشوائي بحجم 32 بايت، يُسمى غالبًا "البذرة" في مصطلحات ed25519 (يجب عدم الخلط بينه وبين عبارة بذرة BIP39). تُجزَّأ هذه القيمة ذات 32 بايت باستخدام SHA-512 لإنتاج مفتاح موسع بحجم 64 بايت. تصبح البايتات السفلية 32 (بعد تقليم البتات) هي العدد المُستخدم للتوقيع. وتُستخدم البايتات العلوية 32 كعشوائية إضافية في عملية التوقيع.
يُشتق المفتاح العام بضرب نقطة الأساس B للمنحنى في العدد المُقلَّم. والنتيجة هي نقطة بحجم 32 بايت بصيغة إدواردز المضغوطة. هذا المفتاح العام بحجم 32 بايت هو أيضًا عنوان سولانا --- لا توجد خطوة تجزئة إضافية مثل Keccak-256 في إيثريوم.
32 بايت عشوائي → SHA-512 → مفتاح موسع 64 بايت
→ 32 بايت سفلية (مُقلَّمة) × نقطة الأساس B → 32 بايت مفتاح عام = عنوان سولانا
التوقيعات الحتمية¶
إحدى مزايا ed25519 مقارنة بـ ECDSA هي أن التوقيعات حتمية. يتطلب ECDSA رقمًا عشوائيًا مؤقتًا (nonce) لكل توقيع، ومولد أرقام عشوائية معيب يمكن أن يُسرِّب المفتاح الخاص بشكل كارثي (حدث هذا عدة مرات في تاريخ بيتكوين وإيثريوم). يشتق Ed25519 الرقم المؤقت من الرسالة والمفتاح الخاص، مما يقضي على هذه الفئة الكاملة من الثغرات الأمنية.
الأداء¶
التحقق من توقيعات Ed25519 سريع --- نحو 70,000 عملية تحقق في الثانية على نواة وحدة معالجة مركزية حديثة واحدة. هذا تقريبًا ضعف سرعة التحقق من ECDSA على secp256k1. بالنسبة لبنية سولانا التي تستهدف أوقات كتل تبلغ 400 مللي ثانية وإنتاجية معاملات عالية، فإن ميزة السرعة هذه كبيرة.
مسارات اشتقاق سولانا¶
مثل بيتكوين وإيثريوم، تستخدم محافظ سولانا اشتقاق المحفظة الهرمية الحتمية لتوليد مفاتيح متعددة من عبارة بذرة واحدة. المعيار لا يزال BIP39 لتوليد العبارات التذكيرية وBIP32 للاشتقاق الهرمي، لكن مع مسارات خاصة بسولانا.
المسار القياسي: m/44'/501'/0'/0'¶
مسار الاشتقاق الأساسي لسولانا هو:
m/44'/501'/0'/0'
تفصيل هذا وفقًا لـ BIP44:
44'--- الغرض: تسلسل BIP44 متعدد الحسابات.501'--- نوع العملة: 501 هو المؤشر المسجل في SLIP44 لسولانا.0'--- الحساب: الحساب الأول.0'--- مستوى "الباقي"، لكن في اصطلاح سولانا هذا هو فهرس العنوان.
لاحظ أن جميع المستويات الأربعة تستخدم الاشتقاق المُشدَّد (يُشار إليه بالفاصلة العليا). يختلف هذا عن مسار إيثريوم m/44'/60'/0'/0/0 الذي يستخدم اشتقاقًا غير مُشدَّد للمستويين الأخيرين. يوفر اختيار سولانا للمسارات المُشدَّدة بالكامل عزلًا أقوى بين المفاتيح المُشتقة: اختراق مفتاح مُشتق واحد لا يمكن أن يؤدي إلى اختراق المفاتيح الشقيقة.
حسابات متعددة¶
لإضافة حسابات إضافية، قم بزيادة فهرس الحساب:
- الحساب الأول:
m/44'/501'/0'/0' - الحساب الثاني:
m/44'/501'/1'/0' - الحساب الثالث:
m/44'/501'/2'/0'
بعض المحافظ (مثل Phantom) قد تدعم أيضًا زيادة الفهرس النهائي:
m/44'/501'/0'/0'm/44'/501'/0'/1'm/44'/501'/0'/2'
اعتبارات التوافق¶
لا تستخدم جميع محافظ سولانا نفس مسار الاشتقاق بالضبط. تاريخيًا، استخدمت واجهة سطر أوامر سولانا m/44'/501' (مستويان فقط)، بينما تستخدم معظم محافظ واجهة المستخدم الرسومية m/44'/501'/0'/0'. يعني هذا التباين أن نفس عبارة البذرة يمكن أن تُنتج عناوين مختلفة في محافظ مختلفة. عند استعادة محفظة، تحقق دائمًا من مسار الاشتقاق الذي تتوقعه المحفظة.
يعرض مُنشئ عبارة بذرة سولانا من SafeSeed مسار الاشتقاق الدقيق المُستخدم، حتى تعرف بالضبط أي مسار يتوافق مع أي عنوان.
إنشاء المحفظة خطوة بخطوة¶
إليك العملية الكاملة لإنشاء محفظة سولانا من عبارة بذرة BIP39، مُقسمة إلى خطوات منفصلة.
الخطوة 1: توليد الإنتروبيا¶
استخدم مُولد أرقام عشوائية آمن تشفيريًا لإنتاج 128 بت (لعبارة من 12 كلمة) أو 256 بت (لعبارة من 24 كلمة) من الإنتروبيا. في SafeSeed، يستخدم هذا Web Crypto API للمتصفح عبر crypto.getRandomValues().
الخطوة 2: إنشاء العبارة التذكيرية¶
أضف بتات المجموع التحققي SHA-256 إلى الإنتروبيا، وقسمها إلى أجزاء من 11 بت، وعيّن كل جزء لكلمة من قائمة كلمات BIP39. النتيجة هي 12 أو 24 كلمة إنجليزية. هذه العملية مطابقة لبيتكوين وإيثريوم --- BIP39 مستقل عن سلسلة الكتل. للاطلاع على شرح كامل، راجع BIP39 Explained.
الخطوة 3: اشتقاق البذرة الرئيسية¶
طبّق PBKDF2-HMAC-SHA512 بـ 2,048 تكرارًا على سلسلة العبارة التذكيرية (مع ملح كلمة المرور الاختياري) لإنتاج بذرة رئيسية بحجم 512 بت.
الخطوة 4: اشتقاق مفتاح سولانا¶
اتبع مسار الاشتقاق m/44'/501'/0'/0'، مع تنفيذ اشتقاق مفتاح فرعي HMAC-SHA512 في كل مستوى. نظرًا لأن سولانا تستخدم ed25519 بدلاً من secp256k1، فإن اشتقاق المفتاح الفرعي يستخدم معيار SLIP-0010 (وليس BIP32 مباشرة)، الذي يحدد كيفية اشتقاق مفاتيح ed25519 بشكل هرمي.
الناتج في نهاية المسار هو بذرة ed25519 بحجم 32 بايت.
الخطوة 5: توليد زوج المفاتيح¶
أدخل البذرة ذات 32 بايت في عملية توليد مفاتيح ed25519:
- احسب SHA-512 للبذرة للحصول على 64 بايت.
- طبّق تقليم البتات على 32 بايت السفلية (امسح أدنى 3 بتات، امسح أعلى بت، اضبط ثاني أعلى بت).
- اضرب نقطة الأساس B في العدد المُقلَّم للحصول على المفتاح العام بحجم 32 بايت.
يتكون زوج المفاتيح من المفتاح الخاص الموسع 64 بايت (البذرة + المفتاح العام) والمفتاح العام 32 بايت.
الخطوة 6: ترميز العنوان¶
يُرمَّز المفتاح العام بحجم 32 بايت باستخدام Base58 لإنتاج عنوان سولانا القابل للقراءة البشرية. لا تجزئة إضافية، لا بايت بادئة --- فقط ترميز Base58 الخام لبايتات المفتاح العام.
يمكنك إنشاء وفحص هذا التدفق بالكامل باستخدام مُنشئ المفتاح الخاص لسولانا من SafeSeed، الذي يعرض عبارة البذرة ومسار الاشتقاق والمفتاح الخاص والمفتاح العام والعنوان النهائي.
تنسيق عنوان Base58¶
تستخدم عناوين سولانا ترميز Base58 --- نفس أبجدية Base58 المُستخدمة في عناوين بيتكوين القديمة، التي تستبعد الأحرف المربكة بصريًا: 0 (صفر)، O (حرف O كبير)، I (حرف I كبير)، وl (حرف L صغير).
يبدو عنوان سولانا النموذجي هكذا:
7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV
الخصائص¶
- الطول: 32--44 حرفًا (الأكثر شيوعًا 43--44). يتغير الطول لأن ترميز Base58 ليس بعرض ثابت؛ بايتات الصفر الأمامية تُنتج أحرف
1أمامية. - مجموعة الأحرف:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz - بدون بادئة: على عكس بيتكوين (تبدأ بـ 1 أو 3 أو bc1) أو إيثريوم (تبدأ بـ 0x)، لا تحتوي عناوين سولانا على بادئة ثابتة. يجعل هذا التعرف البصري أصعب لكنه يُبقي العناوين قصيرة.
- بدون مجموع تحققي مُدمج: على عكس Base58Check (المُستخدم في عناوين بيتكوين القديمة)، لا يتضمن ترميز Base58 لسولانا مجموعًا تحققيًا. خطأ في النسخ قد يُنتج عنوانًا يبدو صالحًا لكنه يخص شخصًا آخر أو لا يخص أحدًا.
غياب المجموع التحققي يجعل التعامل الحذر ضروريًا. استخدم دائمًا النسخ واللصق بدلاً من النسخ اليدوي. عند الإمكان، استخدم رموز QR. وتحقق من تنسيق العنوان باستخدام مُدقق عنوان سولانا قبل إرسال أي أموال. لمقارنة أوسع لتنسيقات العناوين عبر سلاسل الكتل، راجع Crypto Address Formats Explained.
اعتبارات الأمان لسولانا¶
تنطبق المبادئ العامة لأمان المفاتيح على سولانا كما تنطبق على أي سلسلة كتل، لكن عدة عوامل خاصة بسولانا تستحق الاهتمام.
الإنشاء دون اتصال أمر حاسم¶
نظرًا لأن عناوين سولانا لا تحتوي على مجموع تحققي مُدمج، فإن الأخطاء أثناء الإنشاء أصعب في الكشف. إنشاء محفظتك دون اتصال --- على جهاز بدون اتصال بالشبكة --- يقضي على مخاطر التسريب ويمنحك بيئة خاضعة للرقابة للتحقق من المخرجات بعناية. أدوات SafeSeed مُصممة لهذا: حمّل الصفحة، اقطع الاتصال، أنشئ، وسجّل. للاطلاع على مبادئ الإنشاء العامة دون اتصال، راجع Online Seed Generator Safety.
ملفات أزواج المفاتيح¶
يخزن سطر أوامر سولانا المفاتيح الخاصة كمصفوفات JSON من 64 بايت (زوج مفاتيح ed25519) في ملفات تُسمى عادةً id.json. إذا صدّرت محفظتك من واجهة رسومية واستوردتها في سطر الأوامر (أو العكس)، فقد تواجه هذا التنسيق. احمِ ملفات أزواج المفاتيح بنفس صرامة حماية عبارات البذرة: شفّرها، خزّنها على وسائط معزولة عن الشبكة، ولا تتركها أبدًا على أجهزة متصلة بالشبكة.
حسابات التوكن¶
على عكس إيثريوم حيث تُحفظ رموز ERC-20 في نفس العنوان مع ETH، تستخدم سولانا حسابات التوكن المرتبطة (ATAs) --- حسابات منفصلة على السلسلة لكل نوع توكن. هذا تفصيل تنفيذي وليس مسألة أمان مفاتيح، لكنه يعني أن عنوان سولانا وحده لا يروي القصة الكاملة لممتلكاتك. جميع حسابات ATA المُشتقة من عنوان محفظة معين يتحكم فيها نفس المفتاح الخاص، لذا فإن نسخة عبارة البذرة الاحتياطية لا تزال كافية.
العناوين المُشتقة من البرنامج (PDAs)¶
يستخدم نموذج برمجة سولانا العناوين المُشتقة من البرنامج --- عناوين تُنشأ بشكل حتمي من معرف البرنامج ومجموعة بذور، وليس لها عمدًا مفتاح خاص مقابل. تُستخدم PDAs بواسطة العقود الذكية (البرامج) لإدارة الحالة على السلسلة. لا تحتاج إلى إنشاء أو نسخ احتياطي لـ PDAs؛ فهي ليست محافظ يتحكم فيها المستخدم.
أرقام Nonce الدائمة وتوقيع المعاملات¶
تتضمن معاملات سولانا تجزئة كتلة حديثة للحماية من إعادة التشغيل، مما يعني أن المعاملات تنتهي صلاحيتها بعد نحو 60--90 ثانية. هذا مهم لسير عمل التوقيع دون اتصال: تحتاج إلى جلب تجزئة كتلة حديثة (أو استخدام nonce دائم) على جهاز متصل، ونقلها إلى الجهاز غير المتصل للتوقيع، ثم بث المعاملة الموقعة قبل انتهاء صلاحية تجزئة الكتلة. تتعامل محافظ الأجهزة مع هذا تلقائيًا، لكن إذا كنت تبني نظام توقيع مخصصًا دون اتصال، فإن قيد التوقيت اعتبار تصميمي مهم.
أفضل ممارسات أمان المفتاح الخاص¶
تبقى الأساسيات هي نفسها بغض النظر عن السلسلة: لا تشارك عبارة البذرة أبدًا، ولا تخزنها رقميًا على جهاز متصل بالشبكة أبدًا، واستخدم التخزين البارد لأي ممتلكات كبيرة. للاطلاع على معالجة شاملة، راجع Private Key Security Best Practices.
عملية إنشاء محفظة سولانا مشابهة مفاهيميًا لبيتكوين وإيثريوم --- الإنتروبيا تصبح عبارة بذرة، والعبارة تصبح مفتاحًا رئيسيًا، ومسارات الاشتقاق تُنتج حسابات فردية. لكن المنحنى الأساسي (ed25519) ومعيار الاشتقاق (SLIP-0010) وتنسيق العنوان (Base58 خام بدون مجموع تحققي) تُنشئ مجموعة مميزة من تفاصيل التنفيذ المهمة للتوافق والاستعادة والأمان. فهم هذه الفروقات ليس أكاديميًا؛ إنه أساس حماية ممتلكاتك على سولانا.