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

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

AMM v4

CPMM

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

CLMM

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

Farm v6

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

LaunchLab

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

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

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

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

لم تقم Raydium بتعيين سلطة ترقية أي برنامج إلى null. يعمل البروتوكول تحت مبدأ أن البرامج تحتاج إلى أن تكون قابلة للترقية (لإصلاح الأخطاء، إضافة امتدادات مثل Token-2022، إصلاح انجراف التكامل). المقايضة: يثق المستخدمون بأن Squads multisig 3/4 سيقوم فقط بنشر ترقيات مراجعة جيدًا. بالنسبة للمستخدمين الذين يريدون بديلاً غير قابل للتغيير، برنامج AMM v4 الأقدم كان مستقرًا منذ آخر تدقيق له؛ صفر ترقيات في 18 شهرًا. مسار الكود هذا فعليًا مجمد على الرغم من أن السلطة لا تزال موجودة.

سلطة AmmConfig

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

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

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

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

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

تكوين Squads multisig

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

التحقق من السلطة على السلسلة

أبسط طريقة للتحقق من سلطة ترقية البرنامج الحالية:
الإخراج يتضمن:
إذا لم تكن Authority هي عنوان Squads multisig المتوقع، فهناك خطأ ما. تنشر Raydium عناوين السلطة المتوقعة على reference/program-addresses. بالنسبة لأدوار مسؤول AmmConfig / المجموعة، جلب الحساب على السلسلة وفك التشفير:

تغييرات السلطة التاريخية

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

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

الأخطاء الشائعة للمتكاملين

1. تخزين عناوين السلطة مؤقتًا

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

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

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

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

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

مؤشرات

المصادر: