Bitsocial وSecure Scuttlebutt
Secure Scuttlebutt (SSB) بروتوكول اجتماعي نظير إلى نظير أنشأه Dominic Tarr عام 2014. وManyverse هو أشهر تطبيقاته، ويعمل على Android وiOS وسطح المكتب؛ وكان Patchwork عميل سطح المكتب الرئيسي قبل أن يُؤرشف. ومن بين الأنظمة المقارَنة في هذا التوثيق، يُعدّ SSB الأقرب إلى Bitsocial روحًا: لا خوادم في مسار البيانات، ولا سلسلة كتل، ولا ترتيب عالمي، ومفاتيح Ed25519 للهوية. لكن الاثنين اتخذا خيارين متعاكسين بشأن ما يخزّنه كل نظير والموضع الذي تُوقَف فيه الرسائل العشوائية.
كيف يعمل Scuttlebutt
- الخلاصات (feeds). كل هوية زوج مفاتيح Ed25519، يُكتب بالصيغة
@<public key>.ed25519. وكل ما ينشره المستخدم يذهب إلى خلاصته الخاصة، وهي سجل قائم على الإلحاق فقط (append-only) تحمل فيه كل رسالة موقّعة رقمًا تسلسليًا وتجزئة الرسالة السابقة. وبمجرد نشر الرسالة لا يمكن تعديلها، بحسب دليل البروتوكول. - النسخ. ينسخ الأقران خلاصات كاملة لا منشورات منفردة، ويحدد مخطط المتابعة الخلاصات التي يحتفظ بها النظير. فـ Patchwork مثلًا كان يعرض الخلاصات التي تبعد حتى قفزتين، وينسخ الخلاصات التي تبعد حتى ثلاث قفزات. وباستخدام أشجار البث الوبائي (EBT)، يقارن الأقران أحدث رقم تسلسلي لديهم لكل خلاصة ولا يرسلون إلا ما ينقص.
- الاتصالات. يصادق الأقران بعضهم على بعض عبر المصافحة السرية (secret handshake) ويشفّرون حركة البيانات عبر box stream. وترتبط المصافحة بمعرّف للشبكة، لذا لا يستطيع الأقران في شبكة SSB منفصلة ذات معرّف مختلف الاتصال بالشبكة الرئيسية.
- العثور على الأقران. يعلن الأقران عن أنفسهم على الشبكة المحلية عبر بث UDP ويتزامنون عبر LAN؛ كما يتزامن Manyverse عبر Bluetooth أيضًا. وعبر الإنترنت، يعتمد المستخدمون على pubs، وهي أقران متصلة دائمًا تتابعك بالمقابل بعد أن تستخدم رمز دعوة، ثم تخزّن خلاصتك وتقدّمها، وعلى rooms، التي لا تخزّن أي خلاصات لكنها تمرّر الاتصالات بين أعضائها عبر أنفاق.
- الكائنات الثنائية (blobs) والرسائل الخاصة. الصور والملفات الأخرى كائنات ثنائية معنونة بالمحتوى تُجلب من الأقران، بحد افتراضي للحجم يبلغ 5 MB في التنفيذات الحالية. وتُشفَّر الرسائل الخاصة لما يصل إلى سبعة مستلمين وتُنشر كنص مشفّر في خلاصة المؤلف.
أين يختلفان
ما يخزّنه النظير
يحتفظ نظير SSB بنسخة كاملة من كل خلاصة ضمن نطاق نسخه، بدءًا من أول رسالة في كل خلاصة، ويقدّم تلك الخلاصات للآخرين. وهذا ما يتيح لـ SSB العمل دون اتصال، لكن التخزين ينمو مع كل رسالة ضمن النطاق، ويتعيّن على أي تثبيت جديد تنزيل تلك الخلاصات قبل أن يعرض الكثير. أما عميل Bitsocial فيجلب أحدث حالة للمجتمعات التي يفتحها من عقدة المجتمع ومن الأقران الذين يبذرونه، ولا تحتفظ الشبكة إلا بتلك الحالة الأحدث. راجع بروتوكول نظير إلى نظير.
الحذف والأجهزة
لأن الخلاصة سلسلة من التجزئات، لا يوجد في SSB حذف على مستوى الشبكة: يستطيع النظير إسقاط رسائل من قاعدة بياناته الخاصة، لكنه لا يستطيع سحبها من نسخ الأقران الآخرين. والنشر بالمفتاح نفسه من جهازين، أو من نسخة احتياطية مستعادة، يؤدي إلى تفرّع (fork) الخلاصة، ولذلك فالحل المعتاد هو هوية واحدة لكل جهاز. ويذكر PZP، البروتوكول الخلف الذي طوّره فريق Manyverse، الحذفَ وتعدد الأجهزة لكل حساب والخلاصات المتحمّلة للتفرّع ضمن أبرز تغييراته مقارنة بـ SSB (منشور الإطلاق). أما عقدة مجتمع Bitsocial فتنشر إصدارًا جديدًا من حالة المجتمع عند كل تحديث، فيختفي المحتوى الذي يزيله مشرفوه من أحدث حالة.
مَن يمكنك أن تسمع منه
يؤدي نطاق النسخ في SSB دور مرشّح الرسائل العشوائية أيضًا. فخلاصة الغريب لا تصل إليك إلا إذا تابعه أحدٌ ضمن قفزاتك، وحظر خلاصة ما يوقف عقدتك عن نسخها. وهكذا تبقى الرسائل العشوائية خارجًا، لكن القادمين الجدد يبقون خارجًا أيضًا إلى أن يتابعهم أحد. أما Bitsocial فيتيح لأي شخص النشر في مجتمع ما، وتقرر عقدة المجتمع عبر تحدّيه ما إذا كان المنشور سيُقبل. راجع تحدّيات مكافحة الرسائل العشوائية المخصّصة.
المجتمعات
لا يوجد في SSB كائن مجتمع. فالقنوات والوسوم مجرد تسميات على منشورات منفردة، والردود في سلسلة النقاش تعيش في خلاصات من كتبوها، وما تراه من سلسلة النقاش يتوقف على أيّ تلك الخلاصات موجود لدى عقدتك. ويمكن أن يكون للـ rooms مشرفون وقوائم أعضاء، لكن هؤلاء يتحكمون في من يمكنه الاتصال عبر الـ room، لا في ما يُنشر. أما مجتمع Bitsocial فكائن من الدرجة الأولى له زوج مفاتيحه وقواعده ومشرفوه وتحدّيه الخاص.
البنية التحتية
كلاهما يُبقي الخوادم خارج مسار البيانات، وكلاهما يستند إلى أطراف مساعدة. فالـ pubs هي أقرب ما لدى SSB إلى خدمة مستضافة: إذ تخزّن خلاصات كل من تتابعهم وتقدّمها. أما الـ rooms فأقرب إلى موجّهات HTTP في Bitsocial لأن أيًّا منهما لا يخزّن المحتوى، غير أن الـ room يمرّر الاتصال بين أعضائه، في حين أن الموجّه لا يعيد إلا عناوين المزوّدين ولا يشارك في النقل. ومثل نظير SSB، تعمل عقدة مجتمع Bitsocial على عتاد استهلاكي، ويجب أن تكون متصلة لتقبل منشورات جديدة.
العمل دون اتصال والشبكات المحلية
هنا يتفوّق SSB. فيمكن لنظيرين في SSB على شبكة Wi-Fi نفسها، أو عبر Bluetooth في Manyverse، أن يتزامنا دون اتصال بالإنترنت، ويظل كل ما نُسخ مسبقًا قابلًا للقراءة دون اتصال. والهدف الأساسي المعلن لـ Manyverse هو جعل التواصل الاجتماعي مستقلًا عن الاتصال بالإنترنت. أما Bitsocial فيحتاج إلى اتصال بالإنترنت للعثور على الأقران وللنشر.
المتصفح
تأتي تطبيقات SSB الرئيسية مع عقدة SSB كاملة: إذ يضمّن Manyverse واحدة في تطبيقاته للهاتف المحمول وسطح المكتب. وكان ssb-browser-demo يشغّل SSB داخل المتصفح مع نسخ جزئي واتصالات عبر rooms، وقد أُرشف عام 2022. أما تطبيقات Bitsocial فتشغّل عقدة نظير إلى نظير داخل تبويب متصفح عادي. راجع نظير إلى نظير في المتصفح.
الرسائل الخاصة
يتضمن SSB رسائل خاصة مشفّرة مدمجة. أما Bitsocial فيركّز على المجتمعات العامة ولا يملك بعدُ رسائل مباشرة أصلية.
حالة المشروع
ابتعد André Staltz، الذي بنى Manyverse، عن SSB وManyverse وخلفهما المخطَّط له في أبريل 2024 (آخر تحديث له). وفي يوليو 2024 أطلق Jacob Karlsson ذلك الخلف باسم PZP، وكتب أنه لن يعمل على Manyverse بعد الآن ولا يعرف أحدًا آخر يعتزم ذلك. وفي أكتوبر 2026 لم تكن مستودعات PZP على Codeberg قد شهدت أي تحديثات بعد ديسمبر 2024. ومستودع Patchwork مؤرشف وآخر إصدار له v3.18.1، وانتقل الفريق الذي يقف وراء Planetary، وهو تطبيق SSB لنظام iOS، إلى Nostr بتطبيقه Nos عام 2023. ولا تزال شبكة SSB تعمل على الأقران والـ pubs التي يُبقيها الناس متصلة، لكن تطبيقاتها الرئيسية لم تعد قيد التطوير.
مقارنة
| السؤال | Secure Scuttlebutt | Bitsocial |
|---|---|---|
| الفئة | بروتوكول gossip نظير إلى نظير | شبكة مجتمعات نظير إلى نظير |
| الهوية | زوج مفاتيح Ed25519 واحد لكل جهاز | أزواج مفاتيح Ed25519 للمستخدمين وللمجتمعات |
| أين تُحفظ المنشورات | خلاصة المؤلف القائمة على الإلحاق فقط، ولدى كل نظير ينسخها نسخة منها | عقدة مالك المجتمع والأقران الذين يقرؤونه ويبذرونه |
| ما يحتفظ به النظير | السجل الكامل لكل خلاصة ضمن نطاق متابعته | أحدث حالة للمجتمعات التي يقرؤها أو يبذرها |
| المجتمعات | لا كائن مجتمع؛ والقنوات والوسوم تصنّف المنشورات | كائنات من الدرجة الأولى تقبل عقدتها المنشورات أو ترفضها |
| مكافحة الرسائل العشوائية | نطاق النسخ وفق مخطط المتابعة، والحظر | تحدي كل مجتمع قبل قبول المنشور |
| الإشراف | المتابعات وعمليات الحظر لدى كل مستخدم | يشرف مالكو المجتمعات على مجتمعاتهم؛ وتختار التطبيقات ما تعرضه |
| الخوادم المساعدة | الـ pubs تخزّن الخلاصات وتقدّمها؛ والـ rooms تمرّر الاتصالات عبر أنفاق | موجّهات HTTP تعيد الأقران المزوّدين ولا تخزّن أي محتوى |
| العمل دون اتصال | مزامنة عبر LAN وBluetooth دون إنترنت | يحتاج إلى اتصال بالإنترنت |
| المتصفح | التطبيقات تضمّ عقدة SSB كاملة | عقدة نظير إلى نظير داخل تبويب متصفح عادي |
| الشبكة | تعمل، لكن تطبيقاتها الرئيسية لم تعد قيد التطوير | شبكة حية بتطبيقات مثل 5chan وSeedit |
| المقايضة الرئيسية | يعمل دون اتصال ولا يحتاج إلى استضافة، لكن الخلاصات تنمو بلا نهاية ويبقى الغرباء غير مرئيين | نشر مفتوح ودعم للمتصفح، لكنه يحتاج إلى الإنترنت ولا يحتفظ إلا بأحدث حالة |