ماتركس


Matrix Logo

ما هو ماتركس؟

ماتركس هو نفسه نفس أي تطبيق محادثة ثاني، نفس الواتس، تيليغرام، سيغنال إلخ...

يدعم المحادثات المباشرة، المجموعات، الاتصال بصوت وفيديو، ويدعم أيضا التشفير.

ضع في بالك أن ماتركس عبارة عن بروتوكول وليس التطبيق نفسه، معنى كلمة بروتوكول أي أسلوب محادثة أو لغة يفهمها الطرفين. هناك طرف العميل (طرف المستخدم أو المشتري) وهناك طرف الخادم (طرف السيرفر أو البائع).

هناك عدة تطبيقات للعميل FluffyChat ،SchildiChat ،Element إلخ...

وهناك عدة تطبيقات للخادم Construct ،Conduit ،Synapse إلخ...

ربما ستستغرب أن هناك أكثر من خادم واحد في هذه الصورة. هناك ثلاث خوادم: manerakai.com ،matrix.org fachschaften.org. سبب ذلك هو أن بروتوكول ماتركس بروتوكول لامركزي.

مثلها مثل خوادم الإيميل: yahoo.com ،gmail.com ،hotmail.com إلخ... كلها خوادم تستعمل نفس البروتوكول وتستطيع التواصل مع بعضها البعض. تستطيع أن تبعث إيميل من حسابك الـgmail إلى حساب رفيقك على hotmail وهكذا. نفس الشيء مع ماتركس، تستطيع أن أن تبعث رسالة من حسابك على manerakai.com إلى صديقك الذي على matrix.org. بروتوكول الإيميل (SMTP) هو بروتوكول لامركزي.

matrix.org هو الخادم الرسمي لمطوري ماتركس
manerakai.com هو خادمي الشخصي
fachschaften.org هو خادم لجامعة دورتموند التقنية وهو مخصص للطلبة في ألمانيا

كيف أستطيع استعمال شبكة ماتركس؟

الأمر بسيط. كما قلنا سابقا، هناك عدة تطبيقات للعميل. أنصحك باستخدام تطبيق Element ﻷنه التطبيق الرسمي لمطوري ماتركس.

تستطيع أن تستخدم أي خادم تريد سواءً أكان fachschaften.org ،matrix.org أو خادمي الشخصي manerakai.com، هنا فيديو لكيفية إنشاء حساب على خادمي باستخدام تطبيق Element.

تستطيع أن تستعمل نفس الحساب على حاسوبك أيضا. لدى Element تطبيق لسطح المكتب فتستطيع تنزيله هناك إذا أردت.

بس ليش لازم أستعمله؟!

سببين فقط لا أكثر، ﻷنه مفتوح المصدر وﻷنه لامركزي:

1. مفتوح المصدر

مفتوح المصدر أي أنك تستطيع قراءة الكود بلغة يستطيع قراءتها الإنسان، مثلا لغة سي هي لغة قابلة للقراءة ومصممة ﻷن تكون كذلك لكي يفهم المطورون على بعضهم البعض، مثلا:

int main() {
  int x = 15;
  int y = 6;
  return x + y;
}

الكود هذا مفهوم وكل شيء مزبوط، تفهم إنه في متغير اسمه x لديه قيمة وهي 15، بعدين جمعنا متغيرين ببعض وهكذا.

خلينا نروح هلأ لكود مغلق المصدر، سترى الآن لغة التجميع:

main:
    endbr64 
    push   %rbp
    mov    %rsp,%rbp
    movl   $15,-0x8(%rbp)
    movl   $23,-0x4(%rbp)
    mov    -0x8(%rbp),%edx
    mov    -0x4(%rbp),%eax
    add    %edx,%eax
    pop    %rbp
    retq                  

شرحها شوي صعب، ممكن تلاحظ رقم $15 اللي هو فعلا نفسه رقم 15 اللي عطيناه لـx قبل شوي. كلمة movl تعني تحريك قيمة لعنوانٍ ما في الذاكرة العشوائية.

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

تطبيق واتساب مثلا مصدره غير منشور (محتكر) وصعب جدا تعرف ماذا يفعل بجهازك، حتى ادعاء أن المحادثات مشفرة ما تقدر تثبته، ممكن في باب خلفي بهذا الكود يستطيع أن يفك التشفير وأنت ما شايفه. لا تستطيع أن يكون لديك "ثقة" بهذه البرامج وبادعاءات شركاتها.

تيليغرام مثلا لديه تطبيق العميل مفتوح المصدر، ولكن الخادم مغلق المصدر. التشفير فيه فقط للرسائل المباشرة ولا يوجد تشفير للمجموعات.

ماتركس لديه كلا من تطبيق العميل وتطبيق الخادم مفتوحَي المصدر. بل على العكس، بما أنه بروتوكول، فهناك عدة تطبيقات للعميل وعدة تطبيقات للخادم وكلهم يستعملوا نفس البروتوكول للتواصل مع بعضهم البعض. هنا قائمة لتطبيقات العميل وتطبيقات الخادم لماتركس.

2. لامركزي

ماتركس هو تطبيق لامركزي. مثلاً تطبيق الواتس تطبيق مركزي. لديه خادم واحد فقط، معنى ذلك أن كل بياناتك تحت رحمة هذه الشركة. معلومات جهات اتصالك ورقم هاتفك ومحادثاتك إلخ... لا أحد يعلم إذا خطر ببال هذه الشركة أن تبيع بياناتك لشركة إعلاناتٍ ما أو ضُغط عليها من قبل جهة حكومية وهذا فعلا يحصل. حتى لو لم يحصل ذلك، فالخادم مركزي ومستهدف كثيرا.

فكر، أيهما اختراقه منطقي أكثر؟
1. خادم واحد مركزي يجمع نص مليون مستخدم؟
2. 1000 خادم ويحوي كل واحد 500 مستخدم؟

ما في داعي تحط بياناتك في مكان مستهدف (خادم مركزي). ضعها في مكان لا يستحق أن يُخترق خاصة إذا كنت مواطنا عاديا. طالما أنك لست ناشطا، فلن تُستهدف بياناتك شخصيا، ولكن لن يمانع أحد بأخذها إذا كانت مقدمة على طبق من ذهب. أليس كذلك؟!

ربما تقول أن بياناتي بالأصل مشفرة على الخادم مثل حالة سيغنال، ومعك حق في ذلك. ولكنك ستبقى تحت رحمة هذه الشركة، ليس لديك حرية عندما تستخدم سيغنال، هناك خادم واحد فقط. لا أحد يعلم ما إذا أرادت الشركة تغيير سياستها غدا أو بعد غد، تبقى أنت بلا حيلة أمام شركة مركزية ذات سلطة مطلقة على الشبكة.

كان هذا من أهم الأسباب التي جعلتني أستضيف خادمي في بيتي، ﻷنه ملكي! لن يوقفه أحد إلا على جثتي! أو إذا انقطعت الكربهاء 😅.