Перейти до основного вмісту

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 ScuttlebuttBitsocial
КатегоріяОдноранговий gossip-протоколОднорангова мережа спільнот
ІдентичністьОдна пара ключів Ed25519 на пристрійПари ключів Ed25519 для користувачів і спільнот
Де зберігаються дописиСтрічка автора лише для додавання записів, яку копіює кожен вузол, що її реплікуєВузол власника спільноти та вузли, які її читають і роздають
Що зберігає вузолПовна історія кожної стрічки в діапазоні його підписокОстанній стан спільнот, які він читає або роздає
СпільнотиНемає об’єкта спільноти; канали й хештеги позначають дописиПовноцінні об’єкти, чий вузол приймає або відхиляє дописи
Захист від спамуДіапазон реплікації за графом підписок і блокуванняАнтиспам-перевірка кожної спільноти перед прийняттям допису
МодераціяПідписки й блокування кожного користувачаВласники спільнот модерують свої спільноти; застосунки вирішують, що показувати
Допоміжні сервериPubs зберігають і віддають стрічки; rooms тунелюють з’єднанняHTTP-маршрутизатори повертають вузли-постачальники й не зберігають вмісту
ОфлайнСинхронізація через LAN і Bluetooth без інтернетуПотребує підключення до інтернету
БраузерЗастосунки вбудовують повний вузол SSBОдноранговий вузол у звичайній вкладці браузера
МережаПрацює, але її основні застосунки більше не розвиваютьсяРобоча мережа із застосунками, як-от 5chan і Seedit
Головний компромісПрацює офлайн і не потребує хостингу, але стрічки ростуть без кінця, а незнайомці лишаються невидимимиВідкрита публікація й підтримка браузерів, але потрібен інтернет і зберігається лише останній стан