דלג לתוכן הראשי

Bitsocial ו-Secure Scuttlebutt

Secure Scuttlebutt (SSB) הוא פרוטוקול חברתי עמית לעמית שיצר Dominic Tarr ב-2014. Manyverse היא האפליקציה המוכרת ביותר שלו, ל-Android, ל-iOS ולמחשב שולחני; Patchwork היה לקוח השולחן העיקרי לפני שהועבר לארכיון. מבין המערכות שמושוות בתיעוד הזה, SSB הוא הקרוב ביותר ל-Bitsocial ברוחו: אין שרתים בנתיב הנתונים, אין בלוקצ'יין, אין סדר גלובלי, והזהות מבוססת על מפתחות Ed25519. השניים בחרו בדרכים הפוכות בשאלה מה כל עמית מאחסן והיכן עוצרים את הספאם.

איך Scuttlebutt עובד​

  • פידים. כל זהות היא זוג מפתחות Ed25519, שנכתב בצורה @<public key>.ed25519. כל מה שמשתמש מפרסם נכנס לפיד שלו, יומן שניתן רק להוסיף אליו (append-only), שבו כל הודעה חתומה נושאת מספר רצף ואת ה-hash של ההודעה הקודמת. לפי מדריך הפרוטוקול, לאחר שהודעה פורסמה אי אפשר לשנות אותה.
  • שכפול. עמיתים מעתיקים פידים שלמים, לא פוסטים בודדים, וגרף המעקב קובע אילו פידים עמית שומר. Patchwork, לדוגמה, הציג פידים במרחק של עד שתי קפיצות ושכפל פידים במרחק של עד שלוש קפיצות. בעזרת עצי שידור אפידמיים (epidemic broadcast trees, EBT), עמיתים משווים את מספר הרצף האחרון שיש להם לכל פיד ושולחים רק את מה שחסר.
  • חיבורים. עמיתים מאמתים זה את זה באמצעות secret handshake ומצפינים את התעבורה באמצעות box stream. לחיצת היד משתמשת במזהה רשת כמפתח, כך שעמיתים ברשת SSB נפרדת עם מזהה אחר אינם יכולים להתחבר לרשת הראשית.
  • איתור עמיתים. עמיתים מכריזים על עצמם ברשת המקומית באמצעות שידור UDP ומסתנכרנים דרך ה-LAN; Manyverse מסתנכרנת גם דרך Bluetooth. ברחבי האינטרנט, המשתמשים נשענים על pubs, עמיתים שמחוברים תמיד, שעוקבים אחריך בחזרה אחרי שמימשת קוד הזמנה ואז מאחסנים ומגישים את הפיד שלך, ועל rooms, שאינם מאחסנים פידים אלא מעבירים במנהרה חיבורים בין החברים בהם.
  • קובצי blob והודעות פרטיות. תמונות וקבצים אחרים הם blobs עם מיעון מבוסס תוכן שנשלפים מעמיתים, עם מגבלת גודל ברירת מחדל של 5 MB במימושים הנוכחיים. הודעות פרטיות מוצפנות לעד שבעה נמענים ומתפרסמות כטקסט מוצפן בפיד של המחבר.

במה הם שונים​

מה עמית מאחסן​

עמית SSB שומר עותק מלא של כל פיד בטווח השכפול שלו, מההודעה הראשונה של כל פיד, ומגיש את הפידים האלה לאחרים. זה מה שמאפשר ל-SSB לעבוד במצב לא מקוון, אבל נפח האחסון גדל עם כל הודעה שבטווח, והתקנה חדשה צריכה להוריד את הפידים האלה לפני שהיא מציגה משהו של ממש. לקוח Bitsocial מושך את המצב העדכני של הקהילות שהוא פותח מהצומת של הקהילה ומהעמיתים שמפיצים אותה, והרשת שומרת רק את המצב העדכני הזה. ראו את פרוטוקול עמית לעמית.

מחיקה ומכשירים​

מכיוון שפיד הוא שרשרת hash, אין ב-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 ScuttlebuttBitsocial
קטגוריהפרוטוקול gossip עמית לעמיתרשת קהילות עמית לעמית
זהותזוג מפתחות Ed25519 אחד לכל מכשירזוגות מפתחות Ed25519 למשתמשים ולקהילות
איפה הפוסטים נשמריםהפיד של המחבר, שניתן רק להוסיף אליו, ומועתק על ידי כל עמית שמשכפל אותוהצומת של בעל הקהילה והעמיתים שקוראים ומפיצים אותה
מה עמית שומרהיסטוריה מלאה של כל פיד בטווח המעקב שלוהמצב העדכני של הקהילות שהוא קורא או מפיץ
קהילותאין אובייקט קהילה; ערוצים ותגיות מתייגים פוסטיםאובייקטים מהמעלה הראשונה שהצומת שלהם מקבל או דוחה פוסטים
בקרת ספאםטווח שכפול לפי גרף המעקב, וחסימותהאתגר של כל קהילה לפני שפוסט מתקבל
מודרציההמעקבים והחסימות של כל משתמשבעלי הקהילות מנהלים את המודרציה בקהילה שלהם; האפליקציות בוחרות מה להציג
שרתי עזרה-pubs מאחסנים ומגישים פידים; ה-rooms מעבירים חיבורים במנהרהנתבי HTTP מחזירים עמיתים ספקים ואינם מאחסנים תוכן
מצב לא מקווןסנכרון דרך LAN ו-Bluetooth בלי אינטרנטדורש חיבור לאינטרנט
דפדפןהאפליקציות כוללות צומת SSB מלאצומת עמית לעמית בתוך לשונית דפדפן רגילה
רשתפועלת, אבל האפליקציות העיקריות שלה כבר לא מפותחותרשת פעילה עם אפליקציות כמו 5chan ו-Seedit
הפשרה העיקריתעובד במצב לא מקוון ולא דורש אירוח, אך הפידים גדלים בלי סוף וזרים נשארים בלתי נראיםפרסום פתוח ותמיכה בדפדפן, אך דורש אינטרנט ושומר רק את המצב העדכני