Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
لكل برنامج من برامج Raydium دور امتياز واحد على الأقل — مفتاح يمكنه ترقية البرنامج أو إنشاء تكوينات جديدة أو سحب رسوم البروتوكول. تقليل ما يمكن لهذه الأدوار فعله (وحمايتها خلف توقيعات متعددة مع تأخيرات) هو الدفاع الأساسي ضد مسؤول مخترق. تُفصّل هذه الصفحة الأدوار وكيفية تأمينها عملياً.

الأدوار حسب البرنامج

AMM v4

CPMM

جمع رسوم المنشئ لا يقدم دور امتياز. CollectCreatorFeePermissionless يقبل أي دافع، يقيد مالك المستقبل إلى PoolState.pool_creator، ويقيد كلا الوجهتين إلى ATAs الكنسية لذلك المنشئ. يمكن للمتصل تمويل ATAs المفقودة وتشغيل الكنس لكن لا يمكنه إعادة توجيه الرسوم.

CLMM

إنشاء مجموعات إضافية لزوج في عنوان مشتق من seed_index (CreateCustomizablePoolV2) لا يحتاج إلى دور. قبل ترقية 2026-10-22 كانت تتطلب PDA Permission صادرة عن مفتاح permission_pda_admin مخصص؛ تم حذف ذلك الدور وحساب Permission وتعليماته الإدارية الاثنتان. limit_order_admin هو دور تشغيلي ضيق متعمد. يوجد بحيث يمكن لحارس خارج السلسلة كنس الأوامر المملوءة دون الحاجة إلى أن يكون صاحب الأمر متصلاً. مفتاح الحارس ساخن (يعيش على VM الحارس) ويتم تدويره بشكل مستقل عن التوقيعات المتعددة أعلاه. بشكل ملموس، سلطة الحارس محدودة بـ:
  • SettleLimitOrder — دفع إخراج الأمر المملوء إلى ATA المالك بسعر حد الأمر.
  • CloseLimitOrder — إغلاق حساب أمر مستقر بالكامل لاسترجاع الإيجار (الإيجار يذهب إلى مالك الأمر).
لا يمكنه استدعاء OpenLimitOrder أو IncreaseLimitOrder أو DecreaseLimitOrder أو تعديل أي حقل مجموعة أو التوقيع على أي تعليمة أخرى — يتم فرض هذه الفحوصات على السلسلة بواسطة قيود البذرة و has_one في هيكل Accounts للتعليمة. في أسوأ الحالات، يمكن لحارس مخترق أن يكون غير متاح (تبقى الأوامر متوقفة حتى يقوم المالك بتسويتها بنفسه) أو تسوية/إغلاق أوامر قابلة للملء بشرعية بترتيب مختلف؛ لا يمكنه نقل أموال المستخدم إلى أي مكان آخر غير حيث أذن به المالك بالفعل.

Farm v6

المزارع الفردية ليس لديها مسؤول بروتوكول — يتحكم منشئ كل مزرعة فقط في مزرعته، وسلطات المنشئ محدودة (لا يمكنه الاستيلاء على حصص المستخدم، لا يمكنه تغيير رمز الرهن).

LaunchLab

قائمة السماح لمسؤول المنصة تقيد نفسها بنفسها: فهي تحد من حسابات GlobalConfig التي قد تستخدمها الإطلاقات تحت تلك المنصة. لا تمنح سلطة على منصات أخرى أو أموال إطلاق موجودة. تعيش عناوين السلطة المفوضة الكنسية في reference/program-addresses.

سلطة ترقية البرنامج

تستخدم برامج Raydium آلية ترقية BPF Loader v3 القياسية في Solana. سلطة الترقية لجميع البرامج هي Squads multisig 3/4. لماذا 3/4: عدد كافٍ من الموقعين بحيث لا يكون الاختراق الواحد كافياً؛ قليل بما يكفي بحيث يكون تنسيق ترقية شرعية قابلة للتتبع. الأربع سلطات مستقلة، موقعون على أجهزة باردة معزولة يحتفظ بها أعضاء الفريق الأساسي. التوقيع المتسلسل يمنع الموافقات المتوازية على نفس المعاملة؛ تحمل المعاملات نافذة انتهاء صلاحية ثابتة. يتم مراجعة عمليات Multisig بشكل دوري بالشراكة مع برنامج STRIDE في Solana (Asymmetric Research).

إزالة سلطة الترقية

لم تقم Raydium بتعيين سلطة ترقية أي برنامج إلى null. يعمل البروتوكول تحت مبدأ أن البرامج تحتاج إلى أن تكون قابلة للترقية (لإصلاح الأخطاء، إضافة امتدادات مثل Token-2022، إصلاح انجراف التكامل). المقايضة: يثق المستخدمون بأن Squads multisig 3/4 سيقوم فقط بنشر ترقيات مراجعة جيداً. لا يوجد برنامج Raydium متجمد حالياً أو بطيء الحركة بما يكفي ليتم التعامل معه كبديل ثابت — AMM v4، تاريخياً الأكثر ثباتاً منهم، تم نشره مرة أخرى في 2026-07-22. آخر فتحة نشر لكل برنامج عامة؛ اقرأها قبل افتراض أن أياً منها نائم: (من حساب ProgramData لكل برنامج؛ solana program show <PROGRAM_ID> يُبلّغ عن نفس الفتحة.)

سلطة AmmConfig

إنشاء كل AmmConfig جديد له إذن — يصرح Squads multisig 3/5 بفئات رسوم وتباعد علامات جديدة. تشير المجموعات الموجودة إلى AmmConfig الخاص بها بواسطة PDA؛ فئة رسوم المجموعة هي ما يقوله AmmConfig. هل يمكن للمسؤولين تغيير AmmConfig موجود؟ نعم، من الناحية التقنية. updateAmmConfig قابل للاستدعاء من قبل المسؤول. عملياً، يتم تجنب التعديلات على AmmConfigs المنشورة لأنها تغير اقتصاديات جميع المجموعات التي تستخدم هذا التكوين بصمت. سياسة البروتوكول هي إنشاء AmmConfig جديد لأي تغيير والهجرة. هل يمكن للمسؤولين سرقة رسوم البروتوكول عبر التكوين؟ لا — يحتوي AmmConfig على معاملات الرسوم لكن ليس متلقي رسوم البروتوكول؛ هذا عنوان منفصل ثابت لكل مجموعة.

مطالبة رسوم البروتوكول

جزء من رسوم المبادلة (عادة 3–12 bps من 25 bps رسوم المبادلة، حسب التكوين) يتراكم في خزينة رسوم البروتوكول. يمكن للـ multisig سحب هذه الرسوم المتراكمة. لا يرى المستخدمون رصيد LP الخاص بهم يتغير من هذا — إنها حصة البروتوكول المخصصة مسبقاً، وليس أموال LP.

سلطة منشئ المزرعة

تمنح Farms v6 المنشئ القوة لـ:
  • تمويل خزينة المكافآت (إضافة المزيد من الرموز).
  • تمديد الجدول الزمني (دفع وقت الانتهاء لاحقاً).
  • استدعاء withdrawReward بعد وقت الانتهاء لاسترجاع رصيد الخزينة غير المستخدم.
منشئو المزارع لا يمكنهم:
  • سحب LP المراهن من المستخدم.
  • تغيير رمز الرهن.
  • تغيير معدلات الانبعاث بأثر رجعي (فقط للأمام عبر setRewards).
  • تجميد حصاد المستخدم.
يمكن لمنشئ مزرعة خبيث في أسوأ الحالات عدم تمويل الخزينة بشكل كافٍ بحيث تجف المزرعة؛ حصة المستخدم الأساسية آمنة دائماً.

تكوين Squads multisig

تشغل Raydium اثنين من Squads multisigs منفصلين لسطح مخاطر مختلف. يمكن فحص كليهما على السلسلة عبر واجهة Squads Protocol. الخصائص التشغيلية لـ multisig الترقية:
  • 24 ساعة timelock على أي معاملة. ترقية موافق عليها اليوم لا تُنفذ قبل 24 ساعة على الأقل، مما يعطي المستخدمين وقتاً للرد.
  • توقيع على أجهزة باردة معزولة. الأجهزة الباردة لديها بطاقات شبكة تمت إزالتها فعلياً؛ تتصل فقط بمحفظة أجهزة وتقرأ بيانات المعاملة عبر رمز QR من جهاز ساخن منفصل.
  • التوقيع المتسلسل. فقط بعد أن يقوم جهاز بارد واحد بإنشاء وتوقيع معاملة يمكن لجهاز بارد التالي البدء في عملية التوقيع الخاصة به — منع التوقيعات المتضاربة أو المتوازية على نفس المعاملة.
  • انتهاء صلاحية المعاملة. كل معاملة تحمل نافذة انتهاء صلاحية ثابتة، لذا تُلغي المعاملات القديمة تلقائياً.
  • فرض TOTP + مفتاح فعلي على الأجهزة الساخنة المستخدمة لبدء المعاملة والبث على السلسلة.
  • قائمة انتظار معاملات عامة. يمكن لأي شخص مراقبة الترقيات المعلقة على واجهة Squads.
لا يحتوي Squads multisig للخزينة على timelock — نطاقه أضيق والعمليات الروتينية (إنشاء AmmConfigs، كنس الرسوم) تحتاج إلى الهبوط في نفس اليوم. يحتفظ Squads multisig للخزينة أيضاً بسلطة برنامج-مسؤول محدودة المدرجة في جداول البرنامج لكل برنامج أعلاه؛ هذا ترتيب مؤقت ويتم مراجعته بشكل دوري مع شركاء أمان المشروع.

التحقق من الصلاحية على السلسلة

أبسط طريقة للتحقق من سلطة الترقية الحالية للبرنامج:
يتضمن الناتج:
إذا لم تكن Authority هي عنوان multisig المتوقع من Squads، فهناك خطأ ما. تنشر Raydium عناوين الصلاحيات المتوقعة على reference/program-addresses. بالنسبة لأدوار AmmConfig / pool admin، اجلب الحساب على السلسلة وفك تشفيره:
لا يحتوي AmmConfig على حقل admin — برنامج admin هو مفتاح عام مُترجَم في البرنامج (crate::admin::ID)، والسلطات التشغيلية لكل config هي protocolOwner / fundOwner. سلطة ترقية BPF منفصلة وتتعلق بمستوى المُحمِّل؛ اقرأها باستخدام solana program show.

تغييرات الصلاحية التاريخية

الاعتبارات من جانب المستخدم

ماذا يجب أن تفعل كمستخدم / LP / مُدمِج؟
  1. تحقق من سلطة الترقية قبل التخصيصات الكبيرة. تأكد من أنها تطابق multisig الموثق.
  2. راقب نشاط multisig. واجهة Squads تعرض المعاملات المعلقة؛ ترقية مجدولة تمنحك 24 ساعة للتراجع إذا اختلفت مع التغيير.
  3. استراتيجيات الاسترجاع الواعية للقفل الزمني. إذا كنت تشغل auto-compounder، تأكد من أن مسار التراجع لديك لا يتطلب تعليمة يتم تغييرها.
  4. لا تفترض عدم قابلية البرنامج للتغيير. يمكن ترقية كل برنامج Raydium؛ خطط لذلك.

الأخطاء الشائعة للمُدمِجين

1. تخزين عناوين الصلاحيات مؤقتًا

إذا قمت بترميز عنوان سلطة الترقية أو عنوان multisig admin في الكود الخاص بك وتم تدويره لاحقًا، فإن التحقق الخاص بك يفشل. اجلب من reference/program-addresses في وقت التشغيل أو قم بالتحديث بشكل دوري.

2. افتراض استقرار AmmConfigs

يمكن إنشاء AmmConfig جديد في أي وقت. يجب على المُجمِّع / الموجِّه الخاص بك إعادة جلب قائمة الإعدادات الكاملة بشكل دوري (كل ساعة مناسب).

3. متجهات الحزن من منشئ المزرعة

إذا كنت تودع في مزرعة منخفضة السمعة، يمكن لمنشئها إنهاء المزرعة مبكرًا واسترجاع خزينة المكافآت (بافتراض عدم قيام أي مستخدم بالمراهنة بعد). بمجرد قيام المستخدمين بالمراهنة، يتم فرض الحقوق النسبية من قبل البرنامج؛ الاسترجاع يحصل فقط على الباقي بعد الإنهاء العقلاني.

المؤشرات

المصادر: