مدل امنیتی
این صفحه دقیقاً مشخص میکند چه کسی چه چیزی را کنترل میکند، چه چیزی قابل ارتقاست و مرزهای اعتماد کجا هستند؛ پیش و پس از گذار غیرامانی.
فرضهای اعتماد
پیش از گذار (مدل امانی جمعآوری)
| چه کسی | کنترل میکند |
|---|---|
| سرور API اورکاریل | WALLET_ENCRYPTION_KEY و hd_wallet_seed رمزنگاریشده |
| keeper اورکاریل | اختیار امضای یکطرفه روی همه آدرسهای واریز |
| پرداختکننده | کیف پول خارجی خودش |
| پذیرنده | پیکربندی مقصد برداشت؛ بدون کنترل روی وجوه در حال انتقال |
پیامد: نفوذ به OrcaRail وجوه در حال انتقال را در معرض خطر قرار میدهد.
پس از گذار (مدل قراردادی غیرامانی)
| چه کسی | کنترل میکند |
|---|---|
| Safe سه از پنج (EVM) | ارتقای پراکسی factory (با timelock)، بازپرداخت اضطراری، مراسم استقرار |
| Squads سه از پنج (سولانا) | اختیار ارتقای برنامههای Anchor |
| EOA keeper اورکاریل برای هر زنجیره | کیف پول فقط برای گس؛ میتواند charge() عمومی را فراخوانی کند و هیچ کار دیگری نه |
| پرداختکننده | approve(SubscriptionHub, cap) یا Approve در SPL را امضا میکند؛ هر زمان میتواند لغوش کند |
| پذیرنده | مقصدهای برداشت؛ امضاکننده مولتیسیگ BTC هر لینک |
پیامد: نفوذ به OrcaRail نمیتواند وجوه در حال انتقال EVM/سولانا را جابهجا کند. بدترین حالت قطعی موقت keeper است (تأخیر در برداشتها) که پشتیبان Chainlink/Gelato آن را کاهش میدهد.
حضانت کلید
مولتیسیگهای استقرار
- Safe در EVM (Base، Ethereum، Arbitrum، Optimism، Polygon): سه از پنج. امضاکنندگان از کیف پول سختافزاری استفاده میکنند (Ledger + HSM اختیاری). هیچ کلید امضاکنندهای روی سرورها نیست.
- Squads در سولانا: سه از پنج با همان مجموعه امضاکنندگان.
- چرخش امضاکنندگان: سالانه یا هنگام جدایی افراد؛ هر چرخش یک تراکنش مولتیسیگ است.
- مراسم: هر استقرار و هر ارتقا بهصورت یک مراسم مولتیسیگ اعلامشده اجرا میشود؛ PSBTهای امضاشده (برای BTC) و تراکنشهای Safe برای حسابرسی ثبت میشوند.
EOAهای keeper
- یک EOA داغ برای هر زنجیره برای فراخوانی
charge()و executor ریلی. - فقط گس: بدون مقصد کارمزد، بدون اختیار بازپرداخت، بدون مالکیت قرارداد.
- مواد کلید در یک مدیر secret (Doppler / AWS Secrets Manager) نگهداری میشود؛ چرخش از طریق pipeline استاندارد زیرساخت ثبت میشود.
- وقتی موجودی از
gasPrice × gasLimit × 100کمتر شود هشدار داده میشود.
کلیدهای BTC (فاز ۵)
- کلید پذیرنده: در اختیار پذیرنده است (افزونه مرورگر، موبایل، کیف پول سختافزاری). OrcaRail هرگز مواد خصوصی را نمیبیند.
- کلید پلتفرم: در اختیار یک HSM یا سرویس MPC (گزینهها: Lit Protocol، Turnkey یا HSM داخلی). سرور API کلید خام را نگه نمیدارد.
- PSBTهای بازپرداخت از پیش امضاشده: در حالت ذخیره با یک کلید KMS جداگانه رمزنگاری میشوند.
تغییرناپذیری قراردادها و سیاست ارتقا
| جزء | قابل ارتقا؟ | تحت کنترل | Timelock |
|---|---|---|---|
PaymentLinkFactory | بله (UUPS) | Safe سه از پنج | ۴۸ ساعت |
PaymentLinkReceiver (برای هر لینک) | خیر | — | — |
FeeSplitter | خیر | — | — |
SubscriptionHub | بله (UUPS) | Safe سه از پنج | ۴۸ ساعت |
payment_link (Anchor سولانا) | بله | Squads سه از پنج | (در سطح برنامه) |
subscription (Anchor سولانا) | بله | Squads سه از پنج | (در سطح برنامه) |
تغییرات معنایی ناسازگار بهصورت نسخه جدید (V2) منتشر و مهاجرت داده میشوند، نه اینکه درجا ارتقا یابند. timelock چهلوهشت ساعته روی پراکسیها به جامعه فرصت میدهد پیشنهادهای ارتقا را آنچین ببیند و واکنش نشان دهد.
وضعیت حسابرسی
- حسابرسی اصلی قراردادهای اولیه EVM (
PaymentLinkFactory،PaymentLinkReceiver،FeeSplitter،SubscriptionHub) پیش از راهاندازی روی mainnet شبکه Base. فهرست کوتاه شرکتها از میان Spearbit / Trail of Bits / Zellic. - حسابرسی سولانا برای هر دو برنامه Anchor پیش از راهاندازی روی mainnet سولانا. شرکتها از میان OtterSec / Neodyme.
- بازبینی رقابتی یا bug bounty در کنار حسابرسی اصلی.
- گزارشهای حسابرسی بهصورت عمومی منتشر و از مرجع قراردادها لینک میشوند.
- حسابرسیهای تکمیلی برای تغییرات مهم بعدی (مثلاً منطق کارمزد جدید یا استانداردهای توکن جدید).
واکنش به رخداد
- کشیک چرخشی از طریق PagerDuty برای قطعی keeper، تأخیر ایندکسر و موجودی EOA keeper.
- کنترل توقف: factoryها و
SubscriptionHubتابعpause()دارند که مولتیسیگ میتواند فراخوانی کند؛ گیرندههای هر لینک قابل توقف نیستند (برد اعتمادی برای پرداختکنندگان). - Bug bounty: برنامه عمومی با محدوده قراردادها و منطق ایندکسر؛ پرداختها از خزانه پلتفرم.
- افشا: برای رخدادهای مهم ظرف ۳۰ روز گزارش پس از رخداد با امضای امضاکنندگان مولتیسیگ منتشر میشود.
نکات برجسته مدل تهدید
| تهدید | راهکار |
|---|---|
برداشت دوباره بهخاطر reorg در SubscriptionHub | ناوردای یکنوای lastChargedAt |
| ERC-20 غیراستاندارد به سبک USDT | SafeERC20 در همه جا؛ تستهای ناوردا |
| توکنهای دارای کارمزد هنگام انتقال | فهرست مجاز توکنها تحت کنترل مولتیسیگ |
| خرابکاری در پیشاستقرار CREATE2 (کسی پیش از استقرار وجه بفرستد) | deployAndPay در factory خودتوان (idempotent) است؛ موجودی منتظر در آدرس پیشبینیشده همچنان از طریق استقرار به رهبری factory قابل بازیابی است |
| نفوذ به keeper | EOA فقط برای گس؛ بدون اختیار روی قراردادها |
| نفوذ به یکی از امضاکنندگان مولتیسیگ | آستانه سه از پنج؛ فقط سختافزاری؛ چرخش سالانه |
| لغو delegate سولانا در میانه اشتراک | charge() رویداد ChargeSkipped(DelegateRevoked) را منتشر میکند؛ ایمیل + وبهوک استاندارد |
| گم شدن کلید BTC پذیرنده | گزینه کلید پشتیبان هنگام ثبتنام؛ بازیابی با مراسم مولتیسیگ مستند شده است |
| قطعی ایندکسر | Alchemy بهعنوان اصلی + RPC عمومی پشتیبان؛ تطبیق ساعتی |
| تمام شدن سهمیه سیاست paymaster | هشدار در ۷۰٪ سهمیه؛ keeper بهعنوان پشتیبان گس را خودش میپردازد |
شفافیت حضانت
پس از فاز ۷ میتوانیم با استناد به واقعیت بگوییم:
- OrcaRail هیچ ماده seed مربوط به EVM نگه نمیدارد.
- OrcaRail هیچ ماده seed مربوط به سولانا نگه نمیدارد.
- OrcaRail یک کلید امضای سمت پلتفرم برای بیتکوین نگه میدارد؛ این کلید بهتنهایی نمیتواند وجوه را جابهجا کند و به امضای همزمان پذیرنده نیاز دارد.
این وضعیت در بهروزرسانی شرایط خدمات همراه با فاز ۷ منعکس میشود.