
قطع اینترنت ،چه به دلایل بلایای طبیعی، فیلترینگ، حملات سایبری یا فروپاشی زیرساخت باشد یکی از چالش های جدی عصر دیجیتال است. پیام رسان های متمرکز در چنین شرایطی کاملاً از کار می افتند، اما پروتکل Matrix با معماری غیرمتمرکز و مبتنی بر همگام سازی رویدادها، پتانسیل قابل توجهی برای ارائه خدمات پیام رسانی در شرایط قطعی شبکه دارد.
این مقاله به بررسی معماری پروتکل Matrix، چالش های پیاده سازی در وضعیت قطعی اینترنت، راهکارهای موجود مانند P2P Matrix و اتصال به شبکه های جایگزین (Meshtastic، LoRa)، و موارد مرتبط دیگر می پردازد. نتایج نشان می دهد که با استفاده از هوم سرورهای سبک (مانند Dendrite یا Conduit) و مکانیسم های همگام سازی تأخیری، می توان یک زیرساخت پیام رسانی تاب آور حتی در غیاب کامل اینترنت ایجاد کرد.
۱. مبانی پروتکل Matrix
پیش از پرداختن به سناریوی قطعی اینترنت، لازم است درک پایه ای از معماری Matrix داشته باشیم.
Matrix یک پروتکل متن باز و غیرمتمرکز برای ارتباطات بلادرنگ است. برخلاف پیام رسان های متمرکز، در Matrix هیچ سرور مرکزی وجود ندارد. در عوض، شبکه از هوم سرورها (Homeservers) متعددی تشکیل شده است که با یکدیگر فدرال می شوند (مشابه ایمیل).
۱. ساختار رویدادمحور (Event Graph)
هسته اصلی Matrix یک گراف Directed Acyclic Graph (DAG) از رویدادهای امضا شده است. هر پیام، تغییر نام کاربری، یا هر اقدام دیگری در یک اتاق، به صورت یک رویداد نمایش داده می شود. این رویدادها دارای ویژگی های کلیدی هستند:
- امضای رمزنگاری: هر رویداد توسط هومسرور فرستنده امضا می شود که صحت آن را تضمین می کند.
- پیوند به رویدادهای قبلی: هر رویداد جدید به رویداد(های) قبلی ارجاع می دهد و یک زنجیره یا گراف ایجاد می کند.
- قابلیت همگرایی (Eventually Consistent): سرورهای مختلف می توانند رویدادها را به ترتیب های متفاوتی دریافت کنند، اما الگوریتم حل وضعیت (State Resolution) Matrix تضمین می کند که همه سرورها در نهایت به یک نمای یکسان از تاریخچه اتاق برسند.
۲. نقش هومسرور و کلاینت
- هومسرور: یک نمونه از نرم افزار سرور (مانند Synapse، Dendrite یا Conduit) است که تاریخچه اتاق ها، کاربران و کلیدهای رمزنگاری را ذخیره می کند.
- کلاینت: برنامه کاربری مانند Element برای PC یا Element X برای موبایل است که با هومسرور ارتباط برقرار می کند. پیام ها به صورت سرتاسری رمزگذاری می شوند (E2EE با الگوریتم Megolm)، به طوری که حتی هومسرور نیز نمی تواند محتوای پیام را بخواند.
معماری سنتی Matrix برای ارتباط نیازمند اتصال کلاینت به هومسرور خود و اتصال هومسرورها به یکدیگر است. این وابستگی در شرایط قطعی اینترنت، اولین چالش بزرگ است.
۲. چالش های پیام رسانی در قطعی کامل اینترنت

در سناریوی قطع کامل اینترنت (که گاهی از آن به عنوان شکاف دیجیتال (Digital Gap) یا وضعیت آفلاین یاد می شود)، چندین مانع اساسی پیش روی پیام رسان های مبتنی بر معماری استاندارد Matrix وجود دارد:
- عدم دسترسی به هومسرور اصلی: در حالت عادی، کلاینت باید به یک هومسرور مشخص (مثلا matrix.example.com) متصل شود. اگر این سرور در اینترنت جهانی باشد و دسترسی به اینترنت قطع شود، کلاینت اساسا نمی تواند احراز هویت کند یا پیام ارسال نماید.
- عدم هماهنگی بین گره ها: حتی اگر دو کاربر در یک شبکه محلی (LAN) باشند اما هومسرورهای آنها در خارج از شبکه قرار داشته باشد، نمی توانند مستقیما با یکدیگر ارتباط برقرار کنند. پروتکل استاندارد برای مسیریابی پیام ها و همگام سازی وضعیت، به شدت به هومسرورها وابسته است.
- احراز هویت و کلیدهای رمزنگاری: فرآیندهای ورود به سیستم و تبادل کلیدهای رمزنگاری معمولا نیازمند ارتباط با هومسرور اصلی و سرورهای کلید (Key Server) هستند.
- تضاد در تاریخچه پیام ها: در قطعی طولانی مدت، ممکن است دو گروه در یک شبکه محلی مجزا، تاریخچه متفاوتی از یک اتاق را تولید کنند. هنگامی که اتصال مجدد برقرار شود، الگوریتم حل وضعیت ممکن است با چالش مواجه شود.
۳. راهکارهای ذاتی Matrix برای شرایط قطعی
خوشبختانه، برخی ویژگی های ذاتی Matrix و پروژه های در حال توسعه، راهکارهایی برای این چالش ها ارائه می دهند.
۱. پروژه P2P Matrix (همتا به همتا)
یکی از مهم ترین تلاش ها برای حذف وابستگی به هومسرور، پروژه P2P Matrix است. ایده اصلی این است که کلاینت و هومسرور در یک گره ادغام شوند. به عبارت دیگر، هر دستگاه کاربر هم یک کلاینت است و هم یک هومسرور سبک.
- مکانیسم: به جای اتصال به یک هومسرور مرکزی، گره ها مستقیما با استفاده از کتابخانه هایی مانند libp2p یکدیگر را کشف کرده و با هم ارتباط برقرار می کنند.
- مزیت: در شبکه های محلی یا مش (Mesh)، گره ها می توانند پیام ها را مستقیما بدون نیاز به هیچ زیرساخت سرور متمرکزی رد و بدل کنند.
- وضعیت فعلی: این پروژه هنوز در مراحل اولیه است و چالش هایی مانند مدیریت کاربران ناهمزمان (offline) و مقیاس پذیری دارد، اما نشان دهنده مسیر درست تکامل Matrix است.
۲. همگام سازی و ذخیره سازی محلی

حتی در معماری فعلی، کلاینت های Matrix می توانند برای دوره های کوتاه قطعی، به صورت آفلاین کار کنند.
ذخیره سازی محلی: کلاینت های مبتنی بر وب می توانند از IndexedDB مرورگر برای ذخیره رویدادها استفاده کنند. کلاینت های دسکتاپ نیز از پایگاه داده های محلی بهره می برند. کاربر می تواند در زمان آنلاین بودن، پیام ها را همگام سازی کند و سپس در حالت آفلاین، تاریخچه را مشاهده و حتی پاسخ هایی را بنویسد (که در یک صف خروجی ذخیره می شوند).
Sliding Sync: یک پروتکل جدید (که گاهی با نام MSC3575 شناخته می شود) امکان همگام سازی کارآمدتر را فراهم می کند. کلاینت به جای دریافت کل تاریخچه، تنها درخواست “تفاوت” (deltas) از آخرین همگام سازی را می دهد. این ویژگی در شبکه های با پهنای باند کم یا متناوب بسیار حیاتی است.
۳. Matrix بر روی بسترهای جایگزین: LoRa و Meshtastic
جایی که هیچ بستری (Wi-Fi یا اترنت) وجود ندارد، می توان از فناوری های کم برد و کم سرعت مانند LoRa استفاده کرد. شبکه Meshtastic یک پروژه متن باز است که از رادیوهای LoRa برای ایجاد یک شبکه مش (Mesh Network) بدون نیاز به اینترنت، تلفن همراه یا وای فای استفاده می کند.
- اتصال Matrix و Meshtastic: پروژه هایی مانند meshtastic-matrix-relay (یا MMRelay) به عنوان پلی بین این دو جهان عمل می کنند.
- نحوه کار: یک رله (Relay) که به یک هومسرور Matrix (حتی یک هومسرور محلی روی یک رزبری پای) و یک دستگاه Meshtastic متصل است، پیام ها را از اتاق Matrix دریافت کرده، آنها را به پیام های مناسب برای شبکه LoRa تبدیل می کند و بالعکس.
- کاربرد در قطعی: در یک سناریوی بحرانی، می توان یک شبکه محلی LoRa با برد چند کیلومتری (حتی در مناطق بدون زیرساخت) برپا کرد و از Matrix به عنوان لایه کاربری و مدیریت اتاق ها برای این شبکه استفاده نمود.
۴. معماری پیشنهادی برای شبکه در وضعیت قطعی اینترنت
بر اساس بررسی های انجام شده، یک معماری عملی برای پیاده سازی Matrix در شرایط قطعی اینترنت شامل لایه های زیر است:
| لایه | اجزا | نقش در شرایط قطعی |
|---|---|---|
| لایه کاربری (Client) | Element (یا هر کلاینت Matrix دیگر) | واسط کاربری برای ارسال/دریافت پیام و مدیریت رمزنگاری. |
| لایه همگامسازی (Sync) | پروتکل Sliding Sync | کاهش مصرف پهنای باند و همگامسازی تنها تفاوتها. |
| لایه سرور (Homeserver) | Dendrite یا Conduit (نسخه سبک) | مدیریت کاربران، اتاقها و رویدادها در شبکه محلی. |
| لایه حمل و نقل (Transport) | Wi-Fi Direct / LAN / Reticulum | بستر فیزیکی برای اتصال دستگاهها. |
| لایه شبکه جایگزین (Fallback) | Meshtastic (LoRa) | ایجاد یک شبکه مش با برد بالا در غیاب کامل زیرساخت معمولی. |
۱. ساختار فیزیکی پیشنهادی
- هومسرور محلی مرکزی: در یک مکان مطمئن (مثل اقامتگاه تیم واکنش سریع در بحران)، یک رزبری پای ۴ یا یک لپ تاپ قدیمی را به عنوان هومسرور اصلی پیکربندی کنید. استفاده از Dendrite به دلیل معماری مقیاس پذیر و سبک تر نسبت به Synapse توصیه می شود.
- شبکه محلی آفلاین: یک روتر وایرلس (میتواند یک روتر قابل حمل باشد) راه اندازی کنید که به اینترنت متصل نیست. هومسرور و همه کلاینت ها باید از طریق این روتر به یکدیگر متصل شوند (آی پی ثابت یا DHCP محلی).
- اتصال کلاینت ها: کلاینت Element را روی تلفن های همراه یا لپ تاپ ها نصب کنید. به جای آدرس DNS عمومی، آن را به آدرس IP محلی هومسرور (مثلاً http://192.168.1.100:8008) هدایت کنید.
۲. پیکربندی امنیتی و عملیاتی
- Non-https: از آنجایی که شبکه محلی ایزوله است و تهدید خارجی وجود ندارد، می توان به طور موقت از HTTP به جای HTTPS استفاده کرد (تنظیمات امنیتی کلاینت باید غیرفعال شود).
- ثبت نام کاربری: در زمان برپایی اولیه، رجیستری را باز بگذارید تا کاربران بتوانند حساب بسازند. پس از اتمام، برای جلوگیری از هرج و مرج آن را ببندید.
- رمزنگاری سرتاسری: حتی در شبکه محلی حتما E2EE را فعال نگه دارید. این کار از نشت اطلاعات در صورت نفوذ به یک دستگاه یا هومسرور جلوگیری می کند.
۳. سناریوی LoRa برای برد بیشتر
اگر برد شبکه وای فای کافی نیست ، از رله Meshtastic استفاده کنید:
- یک گره Meshtastic را از طریق USB به هومسرور متصل کنید.
- نرم افزار meshtastic-matrix-relay را روی هومسرور اجرا کنید تا پیام های اتاق های خاصی را به کانال LoRa نگاشت کند.
- سایر کاربران دورتر با گره های Meshtastic شخصی خود به شبکه ملحق می شوند، اما تجربه کاربری آنها از طریق کلاینت Element (که از طریق بلوتوث یا USB به گره Meshtastic متصل است) قابل قبول خواهد بود.
۵. محدودیت ها و چالش های واقعی
این معماری علیرغم جذابیت هایش، با محدودیت های جدی نیز روبرو است:
- نبود منبع زمانی مطمئن: بسیاری از الگوریتم های رمزنگاری و امضای رویدادها به زمان (Timestamp) دقیق وابسته هستند. در قطعی کامل، نمی توانید به NTP (Network Time Protocol) دسترسی داشته باشید. اختلاف زیاد زمان بین دستگاه ها می تواند منجر به رد رویدادها توسط هومسرور شود.
- مدیریت کاربران جدید در آفلاین: فرآیهای که یک کاربر جدید می خواهد به اتاقی ملحق شود که پیام های رمزگذاری شده قبلی در آن وجود دارد، نیازمند تبادل کلیدهای جلسه (Session Keys) است. در حالت آفلاین و بدون سرور کلید مرکزی، این فرآیند می تواند ناقص بماند و کاربر جدید نتواند پیام های قدیمی را بخواند.
- همگرایی مجدد پس از قطعی طولانی: فرض کنید دو گروه جداگانه در یک شبکه محلی، دو اتاق Matrix مجزا با تاریخچه متفاوت ایجاد کرده اند. هنگامی که اتصال (مثلاً از طریق یک رله موقت) بین این دو گروه برقرار شود، الگوریتم حل وضعیت Matrix باید تصمیم بگیرد کدام رویدادها معتبر هستند. در صورت وجود تضاد (دو پیام متفاوت با والد یکسان)، الگوریتم ممکن است برخی پیام ها را “دور انداخته” (Reject) کند که باعث سردرگمی کاربران می شود.
- مقیاس پذیری هومسرور محلی: یک رزبری پای یا لپ تاپ معمولی قدرت پردازش کافی برای مدیریت صدها کاربر و هزاران پیام در ثانیه را ندارد. هومسرورهای سبک مانند Conduit یا Dendrite برای این کار بهینه تر هستند، اما باز هم محدودیت دارند.
۶. کارهای مرتبط و مقایسه راهکارها
برای ارائه دیدگاه کامل، باید Matrix را با سایر پروژه های مشابه مقایسه کرد:
| پروژه/پروتکل | رویکرد | مزایا در قطعی اینترنت | معایب در مقایسه با Matrix |
|---|---|---|---|
| Briar | P2P (همتا به همتا) و مبتنی بر بلوتوث/وایفای دایرکت | بدون نیاز به هیچ سروری، امنیت بالا با شبکه تور (Tor) | مقیاسناپذیر برای گروههای بزرگ، عدم وجود تاریخچه همگامسازی شده قوی در اتاقهای بزرگ |
| SSB (Secure Scuttlebutt) | مبتنی بر جریان رویداد (Append-only log) و همگامسازی با همسایگان | کاملاً آفلاین و مبتنی بر همگامسازی دوستانه، بسیار تابآور | منحنی یادگیری بسیار بالا، عدم پشتیبانی از حذف (delete) در طراحی اولیه |
| Matrix (پیشنهادی این مقاله) | مبتنی بر سرور غیرمتمرکز (فدرال) با قابلیت P2P در حال توسعه | قابلیت استفاده با هومسرور محلی، API استاندارد، کلاینتهای قدرتمند | وابستگی به سرور در مدل فعلی، پیچیدگی راهاندازی اولیه |
همانطور که جدول نشان می دهد، Matrix راه میانه ای را ارائه می دهد: از یک سو از قدرت و قابلیت های یک سرور (ذخیره سازی، شاخص گذاری، مدیریت کاربران) بهره می برد و از سوی دیگر با پروژه P2P و قابلیت استقرار محلی، می تواند به سمت تاب آوری کامل حرکت کند.
۷. نتیجه گیری و چشم انداز آینده
پروتکل Matrix اگرچه در اصل برای استفاده در اینترنت همیشه متصل طراحی شده بود، اما پتانسیل بسیار بالایی برای کاربرد در شرایط قطعی اینترنت دارد. انعطاف پذیری معماری آن – از امکان اجرای هومسرور روی سخت افزارهای کم قدرت گرفته تا پروژه های پیشرویی مانند P2P Matrix و اتصال به شبکه های جایگزین همچون Meshtastic آن را به گزینه ای استراتژیک برای سناریوهای بحرانی تبدیل کرده است.
برای اینکه Matrix به یک راهکار عملیاتی در این حوزه تبدیل شود، چند گام ضروری به نظر می رسد: تکمیل پروژه P2P Matrix که ایده آل ترین راهکار برای حذف کامل نقطهٔ شکست (هومسرور) است؛ توسعه ابزارهای استقرار سریع، یعنی اسکریپت هایی که بتوان در کمتر از پنج دقیقه یک هوم سرور محلی روی یک دستگاه معمولی (بدون نیاز به دانش عمیق لینوکس) راه اندازی کرد و در نهایت آموزش و مستندسازی، به گونه ای که تیم های واکنش سریع در بلایای طبیعی و فعالان حقوق بشر در مناطق با قطعی اینترنت با این قابلیت ها آشنا شوند.
در پایان، Matrix می تواند نقشی حیاتی در تضمین جریان آزاد اطلاعات، حتی در تاریک ترین لحظات قطعی زیرساخت، ایفا کند.