Bitsocial і Secure Scuttlebutt
Secure Scuttlebutt (SSB) — одноранговий соціальний протокол, який Dominic Tarr створив 2014 року. Manyverse — його найвідоміший застосунок для Android, iOS і десктопа; Patchwork був основним десктопним клієнтом, доки його не архівували. Серед систем, які порівнюються в цій документації, SSB найближчий до Bitsocial за духом: жодних серверів на шляху даних, жодного блокчейну, жодного глобального впорядкування, а ідентичність тримається на ключах Ed25519. Водночас обидві системи зробили протилежний вибір щодо того, що зберігає кожен вузол і де зупиняють спам.
Як працює Scuttlebutt
- Стрічки. Кожна ідентичність — це пара ключів Ed25519, записана як
@<public key>.ed25519. Усе, що публікує користувач, потрапляє до його власної стрічки — журналу лише для додавання записів (append-only), у якому кожне підписане повідомлення містить порядковий номер і хеш попереднього повідомлення. Згідно з посібником із протоколу, опубліковане повідомлення вже не можна змінити. - Реплікація. Вузли копіюють цілі стрічки, а не окремі дописи, і граф підписок визначає, які стрічки зберігає вузол. Наприклад, Patchwork показував стрічки на відстані до двох кроків і реплікував стрічки на відстані до трьох кроків. Завдяки epidemic broadcast trees (EBT) вузли порівнюють останній порядковий номер, який мають для кожної стрічки, і надсилають лише те, чого бракує.
- З’єднання. Вузли автентифікуються через secret handshake («таємне рукостискання») і шифрують трафік за допомогою box stream. Рукостискання прив’язане до ідентифікатора мережі, тож вузли окремої мережі SSB з іншим ідентифікатором не можуть під’єднатися до основної.
- Пошук вузлів. Вузли оголошують про себе в локальній мережі через широкомовлення UDP і синхронізуються через LAN; Manyverse також синхронізується через Bluetooth. В інтернеті користувачі покладаються на pubs — постійно ввімкнені вузли, які після того, як ви використаєте код запрошення, підписуються на вас у відповідь, а потім зберігають і віддають вашу стрічку, — і на rooms, які не зберігають стрічок, а тунелюють з’єднання між своїми учасниками.
- Блоби й приватні повідомлення. Зображення та інші файли — це блоби з адресацією за вмістом, які отримують від інших вузлів; у поточних реалізаціях їхній розмір типово обмежено 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, у квітні 2024 року відійшов від SSB, Manyverse і їхнього запланованого наступника (його останнє оновлення). У липні 2024 року Jacob Karlsson запустив цього наступника як PZP і написав, що більше не працюватиме над Manyverse і не знає нікого іншого, хто б це планував. У жовтні 2026 року репозиторії PZP на Codeberg не мали оновлень після грудня 2024 року. Репозиторій Patchwork архівовано з v3.18.1 як останнім випуском, а команда Planetary, застосунку SSB для iOS, 2023 року перейшла на Nostr зі своїм застосунком Nos. Мережа SSB досі працює на вузлах і pubs, які люди тримають онлайн, але її основні застосунки більше не розвиваються.
Порівняння
| Питання | Secure Scuttlebutt | Bitsocial |
|---|---|---|
| Категорія | Одноранговий gossip-протокол | Однорангова мережа спільнот |
| Ідентичність | Одна пара ключів Ed25519 на пристрій | Пари ключів Ed25519 для користувачів і спільнот |
| Де зберігаються дописи | Стрічка автора лише для додавання записів, яку копіює кожен вузол, що її реплікує | Вузол власника спільноти та вузли, які її читають і роздають |
| Що зберігає вузол | Повна історія кожної стрічки в діапазоні його підписок | Останній стан спільнот, які він читає або роздає |
| Спільноти | Немає об’єкта спільноти; канали й хештеги позначають дописи | Повноцінні об’єкти, чий вузол приймає або відхиляє дописи |
| Захист від спаму | Діапазон реплікації за графом підписок і блокування | Антиспам-перевірка кожної спільноти перед прийняттям допису |
| Модерація | Підписки й блокування кожного користувача | Власники спільнот модерують свої спільноти; застосунки вирішують, що показувати |
| Допоміжні сервери | Pubs зберігають і віддають стрічки; rooms тунелюють з’єднання | HTTP-маршрутизатори повертають вузли-постачальники й не зберігають вмісту |
| Офлайн | Синхронізація через LAN і Bluetooth без інтернету | Потребує підключення до інтернету |
| Браузер | Застосунки вбудовують повний вузол SSB | Одноранговий вузол у звичайній вкладці браузера |
| Мережа | Працює, але її основні застосунки більше не розвиваються | Робоча мережа із застосунками, як-от 5chan і Seedit |
| Головний компроміс | Працює офлайн і не потребує хостингу, але стрічки ростуть без кінця, а незнайомці лишаються невидимими | Відкрита публікація й підтримка браузерів, але потрібен інтернет і зберігається лише останній стан |