لا تُنفَّذ المعاملة إلا إذا حملت
توقيعاً صالحاً من كل
موقِّع مطلوب. خلال التطوير المحلي، عادةً ما تحتفظ بهذا المفتاح على هيئة
Keypair وتوقّع مباشرةً. أما في
بيئة الإنتاج فالسؤال الجوهري مختلف: أين يوجد المفتاح الخاص، ومن يملك صلاحية تفويض التوقيع به؟
لا تضمّن المفاتيح الخاصة أبداً في كود جانب العميل، ولا تحزمها داخل واجهة أمامية، ولا ترفعها إلى نظام التحكم في الإصدارات. فمن يحصل على المفتاح يكتسب تحكماً كاملاً في أموال ذلك الحساب.
أساليب التوقيع
| الأسلوب | مكان تخزين المفتاح | الجهة الموقِّعة | الأنسب لـ |
|---|---|---|---|
| keypair محلي | ملف أو متغير بيئة على الجهاز | كودك مباشرةً | التطوير المحلي، الاختبارات، CI |
| محفظة المتصفح | محفظة المستخدم النهائي (مثل Phantom، Solflare) | المستخدم النهائي، لكل معاملة على حدة | تطبيقات dApps الأمامية حيث يوقّع المستخدمون معاملاتهم بأنفسهم |
| Cloud KMS / HSM | خدمة مفاتيح مدعومة بالأجهزة (AWS KMS، GCP KMS، Vault) | تطلب الخلفية توقيعاً من الخدمة | خدمات الخلفية، عمليات الخزينة، البيئات الخاضعة للتنظيم |
| محافظ مُدارة / MPC | مقسَّمة أو محفوظة لدى بنية تحتية خاصة بالمزوّد | يوقّع المزوّد بالاشتراك وفق سياستك | المحافظ المدمجة، سير عمل الموافقات، الحضانة المؤسسية |
يُعدّ keypair المحلي الأسلوب الوحيد الذي يضع مادة المفتاح الخام داخل تطبيقك. كل أسلوب إنتاجي يحتفظ بالمفتاح في بنية تحتية مخصصة ويطلب منها التوقيع نيابةً عنك.
التوقيع من الخلفية
عندما يحتاج الخادم إلى التوقيع (لدفع الرسوم، أو إرسال معاملات البرنامج، أو
إدارة الخزينة)، استخدم خلفية مخصصة لإدارة المفاتيح بدلاً من keypair خام. تحتفظ مؤسسة سولانا بـ Keychain، وهي
مكتبة توقيع موحّدة (بـ Rust وTypeScript وPython وGo) تعرض واجهة
SolanaSigner واحدة عبر جميع الخلفيات الواردة في الجدول أعلاه: Memory،
وHashiCorp Vault، وAWS KMS، وGCP KMS، وFireblocks، وPrivy، وTurnkey، وCDP، وCrossmint،
وDfns، وPara، وOpenfort، وUtila، وFordefi.
نظراً لأن الواجهة مشتركة بين جميع الخلفيات، يمكنك التطوير محلياً باستخدام
مفتاح في الذاكرة والتبديل إلى خلفية إنتاجية عبر الإعدادات، دون
الحاجة إلى إعادة كتابة كود التطبيق (أما الخلفيات التي تتولى البث نيابةً عنك، مثل Crossmint،
فيتم استدعاؤها عبر مسار التوقيع والإرسال بدلاً من ذلك). Keychain متوافق مع
@solana/kit و
Rust SDK وsolders (Python) وsolana-go v2
(Go).
Keychain
توقيع موحّد عبر المفاتيح المحلية، وKMS، وHSM، وخلفيات المحافظ المُدارة.
اختيار الخلفية
قارن بين نماذج الحضانة واختر خلفية التوقيع المناسبة لتطبيقك.
للاطلاع على قائمة تدقيق الإنتاج الشاملة — إدارة المفاتيح، وأمان RPC، والمراقبة — راجع جاهزية الإنتاج.
Is this page helpful?