شرح مبسط لبروتوكول ماتركس

ما هو ماتركس؟

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

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

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

هناك عدة تطبيقات للعميل 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 مستخدم؟

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

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

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

ملاحظة: هذه المقالة معكوسة من التي على موقعي: https://manerakai.com/blog/matrix.ar.html

7 إعجابات

موضوع جميل ومبسط عن موضوع ناصر السابق

بعض التعقيبات على الموضوع.
صورة الكود المصدري والملف النهائي لا تظهر بشكل اساسي.

اقترح تغيير العنوان لشيء اكثر وضوحا، لكنه قرارك في النهاية.
اقترح تغييرة الى:

شرح مبسط لبروتوكول ماتركس الفدرالي

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

إعجابَين (2)

كلمة مركزي أيضا تعمل، في أو جملة في الصفحة الرئيسية يوصف نفسه بلامركزي (An open network for secure, decentralized communication)
كلمة لامركزي ستعمل بشكل أفضل في المقالة ﻷن هناك أشياء أخرى كالأمان استهداف مكان مركزي، لن تعمل ولن أستطيع توصيل الرسالة إذا قلت “فدرالي”.

وضعت العنوان هكذا ليكون ممتعا قليلا وخارجا عن الصندوق، ولكني سأغيره لأجل الكلمات المفتاحية للبحث:
“شرح مبسط لبروتوكول ماتركس”

إعجابَين (2)

مركزي يعني مثل سيجنل او واتس اب.

اما فدرالي فهو مثل البريد يعني, وقد يدرج تحت الغير مركزية لا اعلم

هناك:
مركزي Centralized
لامركزي Decentralized
موزع Distributed

المركزي: واتساب، سيغنال
لامركزي: ماتركس، الإيميل
موزع: Torrent, IPFS, Briar

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

4 إعجابات

ماشاء الله اطلعت على الموضع الآن. توصيف جميل وشرح ممتع.
كذلك التفريق بين المركزية و اللامركزية والموزع جميل جدا

إعجابَين (2)

موضوع جيد شكرا لك على مجهودك (قد شرحته مسبقا هنا)

ملاحظه: قمت بتغيير مكانه الى المكان المناسب وهو امن المعلومات والخصوصيه الرقميه وليس مشاريع اسس.

الصوره التي وضعتها ليست دقيقه ولكن في عالم التقنيه(حتى باللغه الاجنبيه) اساسا الامر متداخل بسبب عدم الفهم الدقيق بين اللامركزي والفدرالي لذلك تجد هذه المفاهيم متخبطه, والاصح هو جعل اللامركزيه للذين لا يعتمدون على سيرفرات خارجيه وفقط يحتاجون الى Bootstrap للتعارف مثل توكس و ريكوشيت وغيرهم, والفدرالي للذي يكون مع سيرفر لا مركزي مثل ماتركس وجابر وغيرهم والا ستتداخل المصطلحات وعدم التمييز الدقيق بينهم.

فمن باب الدقه وسهوله التوضيح للقارئ يفضل استخدام مصطلحين منفصلين للصوف.

إعجاب واحد (1)

شرح جميل.

هناك ايضا شرح مبسط و مفصل The “Join Matrix!” Guide | Join Matrix! يقارن بين البرامج/بروتوكولات مماثلة, مثل: Discord

دليل لاستخدام ماتركس، تواصل خاص، انضمام إلى غرف، إلخ.

نوع الكيان: مثال URL
الغرف: https://matrix.to/#/#matrix:matrix.org
الغرف بالمعرّف: https://matrix.to/#/!cURbafjkfsMDVwdRDQ:matrix.org
المستخدمين: https://matrix.to/#/@matthew:matrix.org
الرسائل: https://matrix.to/#/#matrix:matrix.org/$1448831580433WbpiJ:jki.re