نموذج الأمان
تحدد هذه الصفحة بدقة من يتحكم في ماذا، وما القابل للترقية، وأين تقع حدود الثقة، قبل الانتقال إلى عدم الاحتجاز وبعده.
افتراضات الثقة
قبل (نموذج التجميع الاحتجازي)
| من | يتحكم في |
|---|---|
| خادم API لـ OrcaRail | WALLET_ENCRYPTION_KEY وhd_wallet_seed المشفّر |
| keeper لـ OrcaRail | صلاحية توقيع أحادية على كل عنوان إيداع |
| الدافع | محفظته الخارجية |
| التاجر | إعداد وجهة السحب؛ دون تحكم في الأموال قيد الانتقال |
الأثر: أي اختراق لـ OrcaRail يعرّض الأموال قيد الانتقال للخطر.
بعد (نموذج العقود غير الاحتجازي)
| من | يتحكم في |
|---|---|
| Safe 3 من 5 (EVM) | ترقية وكيل الـ factory (مع timelock)، والاسترداد الطارئ، ومراسم النشر |
| Squads 3 من 5 (Solana) | صلاحية ترقية برامج Anchor |
| EOA الـ keeper لـ OrcaRail لكل سلسلة | محفظة للغاز فقط؛ يمكنها استدعاء charge() العامة ولا شيء غيرها |
| الدافع | يوقّع approve(SubscriptionHub, cap) أو Approve في SPL؛ ويمكنه الإلغاء في أي وقت |
| التاجر | وجهات السحب؛ والموقّع في التوقيع المتعدد لـ BTC لكل رابط |
الأثر: لا يستطيع أي اختراق لـ OrcaRail نقل الأموال قيد الانتقال على EVM/Solana. أسوأ حالة هي توقف مؤقت للـ keeper (تأخر عمليات الخصم)، ويخفف ذلك الاحتياطي عبر Chainlink/Gelato.
حفظ المفاتيح
التوقيعات المتعددة للنشر
- Safe على EVM (Base وEthereum وArbitrum وOptimism وPolygon): 3 من 5. يستخدم الموقّعون محافظ عتادية (Ledger + HSM اختياري). لا مفاتيح موقّعين على الخوادم.
- Squads على Solana: 3 من 5 بمجموعة الموقّعين نفسها.
- تدوير الموقّعين: سنويًا أو عند المغادرة؛ وكل تدوير هو معاملة توقيع متعدد.
- المراسم: يجري كل نشر وكل ترقية كمراسم توقيع متعدد مُعلنة؛ وتُسجَّل معاملات PSBT الموقّعة (لـ BTC) ومعاملات Safe للتدقيق.
حسابات EOA للـ keeper
- EOA ساخن واحد لكل سلسلة لاستدعاءات
charge()ومنفّذ Relay. - للغاز فقط: لا وجهة رسوم، ولا صلاحية استرداد، ولا ملكية عقود.
- تُحفظ مواد المفاتيح في مدير أسرار (Doppler / AWS Secrets Manager)؛ ويُسجَّل التدوير عبر مسار البنية التحتية القياسي.
- تنبيهات عندما ينخفض الرصيد عن
gasPrice × gasLimit × 100.
مفاتيح BTC (المرحلة 5)
- مفتاح التاجر: يحتفظ به التاجر (إضافة متصفح أو هاتف أو محفظة عتادية). لا ترى OrcaRail المادة الخاصة أبدًا.
- مفتاح المنصة: يحتفظ به HSM أو خدمة MPC (المرشحون: Lit Protocol أو Turnkey أو HSM محلي). لا يحتفظ خادم API بالمفتاح الخام.
- معاملات PSBT للاسترداد الموقّعة مسبقًا: مشفّرة أثناء التخزين بمفتاح KMS منفصل.
ثبات العقود وسياسة الترقية
| المكوّن | قابل للترقية؟ | يتحكم فيه | Timelock |
|---|---|---|---|
PaymentLinkFactory | نعم (UUPS) | Safe 3 من 5 | 48 ساعة |
PaymentLinkReceiver (لكل رابط) | لا | — | — |
FeeSplitter | لا | — | — |
SubscriptionHub | نعم (UUPS) | Safe 3 من 5 | 48 ساعة |
payment_link (Anchor على Solana) | نعم | Squads 3 من 5 | (على مستوى البرنامج) |
subscription (Anchor على Solana) | نعم | Squads 3 من 5 | (على مستوى البرنامج) |
تُنشر التغييرات الدلالية الكاسرة كإصدارات جديدة (V2) ويُرحَّل إليها، ولا تُرقّى في مكانها. يمنح الـ timelock البالغ 48 ساعة على الوكلاء المجتمعَ وقتًا لرؤية مقترحات الترقية على السلسلة والتفاعل معها.
وضع التدقيق
- تدقيق أساسي لعقود EVM الأولى (
PaymentLinkFactoryوPaymentLinkReceiverوFeeSplitterوSubscriptionHub) قبل الإطلاق على الشبكة الرئيسية لـ Base. القائمة المختصرة من Spearbit / Trail of Bits / Zellic. - تدقيق Solana لبرنامجي Anchor قبل الإطلاق على الشبكة الرئيسية لـ SOL. الجهات من OtterSec / Neodyme.
- مراجعة تنافسية أو مكافآت اكتشاف الثغرات إلى جانب التدقيق الأساسي.
- تقارير التدقيق منشورة علنًا ومرتبطة من مرجع العقود.
- تدقيقات تكميلية للتغييرات الجوهرية اللاحقة (مثل منطق رسوم جديد أو معايير رموز جديدة).
الاستجابة للحوادث
- مناوبة عبر PagerDuty لتوقف الـ keeper وتأخر المُفهرِس ورصيد EOA الـ keeper.
- ضوابط الإيقاف المؤقت: لدى الـ factories و
SubscriptionHubدالةpause()يستدعيها التوقيع المتعدد؛ ولا يمكن إيقاف المستقبِلات الخاصة بكل رابط (مكسب ثقة للدافعين). - مكافآت الثغرات: برنامج علني يشمل العقود ومنطق المُفهرِس؛ وتُدفع المكافآت من خزينة المنصة.
- الإفصاح: تحصل الحوادث الجوهرية على تقرير ما بعد الحدث يُنشر خلال 30 يومًا، موقّعًا من موقّعي التوقيع المتعدد.
أبرز نقاط نموذج التهديدات
| التهديد | التخفيف |
|---|---|
خصم مزدوج بسبب reorg في SubscriptionHub | ثابت lastChargedAt الرتيب |
| ERC-20 غير قياسي على طريقة USDT | SafeERC20 في كل مكان؛ واختبارات الثوابت |
| رموز ذات رسوم عند التحويل | قائمة رموز مسموح بها يتحكم فيها التوقيع المتعدد |
| تخريب ما قبل نشر CREATE2 (يرسل أحدهم قبل النشر) | دالة deployAndPay في الـ factory متساوية القوى (idempotent)؛ والرصيد المنتظر في العنوان المتوقع يظل قابلًا للاسترداد عبر نشر تقوده الـ factory |
| اختراق الـ keeper | EOA للغاز فقط؛ دون صلاحية على العقود |
| اختراق أحد موقّعي التوقيع المتعدد | عتبة 3 من 5؛ عتاد فقط؛ تدوير سنوي |
| إلغاء تفويض Solana في منتصف الاشتراك | تطلق charge() الحدث ChargeSkipped(DelegateRevoked)؛ بريد إلكتروني + webhook قياسي |
| فقدان مفتاح BTC الخاص بالتاجر | خيار مفتاح احتياطي عند التسجيل؛ واسترداد موثّق عبر مراسم التوقيع المتعدد |
| توقف المُفهرِس | Alchemy أساسي + RPC عام احتياطي؛ ومطابقة كل ساعة |
| استنفاد سياسة الـ paymaster | تنبيه عند 70% من الحصة؛ ويموّل الـ keeper الغاز ذاتيًا كاحتياطي |
شفافية الاحتجاز
بعد المرحلة 7، يمكننا أن نقرر بالوقائع:
- لا تحتفظ OrcaRail بأي مادة seed لـ EVM.
- لا تحتفظ OrcaRail بأي مادة seed لـ Solana.
- تحتفظ OrcaRail بمفتاح توقيع من جهة المنصة لـ Bitcoin؛ ولا يستطيع هذا المفتاح وحده نقل الأموال، إذ يتطلب توقيعًا مشتركًا من التاجر.
ينعكس هذا الوضع في تحديث شروط الخدمة المرافق للمرحلة 7.