Hopp over til hovedinnhold

Bitsocial og Secure Scuttlebutt

Secure Scuttlebutt (SSB) er en sosial peer-to-peer-protokoll som Dominic Tarr laget i 2014. Manyverse er den mest kjente appen, for Android, iOS og skrivebord; Patchwork var den viktigste skrivebordsklienten før den ble arkivert. Av systemene som sammenlignes i denne dokumentasjonen, er SSB det som ligger nærmest Bitsocial i ånden: ingen servere i dataveien, ingen blokkjede, ingen global rekkefølge og Ed25519-nøkler for identitet. De to tok motsatte valg om hva hver peer lagrer, og om hvor spam stoppes.

Hvordan Scuttlebutt fungerer​

  • Feeder. Hver identitet er et Ed25519-nøkkelpar, skrevet som @<public key>.ed25519. Alt en bruker publiserer, havner i brukerens egen feed, en logg som bare kan utvides (append-only), der hver signerte melding har et sekvensnummer og hashen til forrige melding. Når en melding først er postet, kan den ikke endres, ifølge protokollguiden.
  • Replikering. Peers kopierer hele feeder, ikke enkeltinnlegg, og følgegrafen avgjør hvilke feeder en peer beholder. Patchwork viste for eksempel feeder opptil to hopp unna og replikerte feeder opptil tre hopp unna. Med epidemic broadcast trees (EBT) sammenligner peers det siste sekvensnummeret de har for hver feed, og sender bare det som mangler.
  • Forbindelser. Peers autentiserer hverandre med en secret handshake og krypterer trafikken med box stream. Håndtrykket er knyttet til en nettverksidentifikator, så peers på et separat SSB-nettverk med en annen identifikator kan ikke koble seg til hovednettverket.
  • Finne peers. Peers kunngjør seg selv på det lokale nettverket via UDP-kringkasting og synkroniserer over LAN; Manyverse synkroniserer også over Bluetooth. Over internett er brukerne avhengige av pubs, peers som alltid er på nett, som følger deg tilbake når du løser inn en invitasjonskode, og som deretter lagrer og serverer feeden din, og av rooms, som ikke lagrer noen feeder, men tunnelerer forbindelser mellom medlemmene sine.
  • Blobber og private meldinger. Bilder og andre filer er innholdsadresserte blobber som hentes fra peers, med en standard størrelsesgrense på 5 MB i dagens implementasjoner. Private meldinger krypteres for opptil sju mottakere og publiseres som chiffertekst i forfatterens feed.

Hvor de skiller seg​

Hva en peer lagrer​

En SSB-peer har en fullstendig kopi av hver feed innenfor replikeringsrekkevidden sin, fra den første meldingen i hver feed, og serverer disse feedene til andre. Det er dette som lar SSB fungere uten nett, men lagringsbehovet vokser med hver melding innenfor rekkevidden, og en ny installasjon må laste ned disse feedene før den viser særlig mye. En Bitsocial-klient henter den nyeste tilstanden til fellesskapene den åpner, fra fellesskapets node og peerne som seeder det, og nettverket beholder bare denne nyeste tilstanden. Se Peer-to-peer-protokoll.

Sletting og enheter​

Fordi en feed er en hashkjede, har SSB ingen sletting på tvers av nettverket: en peer kan fjerne meldinger fra sin egen database, men kan ikke trekke dem tilbake fra kopiene til andre peers. Å poste med samme nøkkel fra to enheter, eller fra en gjenopprettet sikkerhetskopi, forgrener feeden (en fork), så den vanlige løsningen er én identitet per enhet. PZP, etterfølgerprotokollen fra Manyverse-teamet, nevner sletting, flere enheter per konto og feeder som tåler forgreninger blant de viktigste endringene fra SSB (lanseringsinnlegget). En Bitsocial-fellesskapsnode publiserer en ny versjon av fellesskapets tilstand ved hver oppdatering, så innhold som moderatorene fjerner, faller ut av den nyeste tilstanden.

Hvem du kan høre fra​

SSBs replikeringsrekkevidde fungerer også som spamfilter. En fremmeds feed når deg bare hvis noen innenfor hoppene dine følger vedkommende, og blokkerer du en feed, slutter noden din å replikere den. Spam holdes ute, men det gjør også nykommere, helt til noen følger dem. Bitsocial lar hvem som helst publisere til et fellesskap, og fellesskapets node avgjør gjennom utfordringen sin om et innlegg godtas. Se Tilpassede utfordringer mot spam.

Fellesskap​

SSB har ikke noe fellesskapsobjekt. Kanaler og emneknagger er merkelapper på enkeltinnlegg, svarene i en tråd ligger i feedene til dem som skrev dem, og hvor mye av en tråd du ser, avhenger av hvilke av disse feedene noden din har. Rooms kan ha moderatorer og medlemslister, men de bestemmer hvem som kan koble seg til via et room, ikke hva som publiseres. Et Bitsocial-fellesskap er et førsteklasses objekt med eget nøkkelpar, egne regler, moderatorer og utfordring.

Infrastruktur​

Begge holder servere utenfor dataveien, og begge støtter seg på hjelpere. Pubs er det nærmeste SSB kommer en driftet tjeneste: de lagrer og serverer feedene til alle de følger. Rooms ligner mer på Bitsocials HTTP-rutere, fordi ingen av dem lagrer innhold, men et room videreformidler forbindelsen mellom medlemmene sine, mens en ruter bare returnerer adresser til tilbydere og ikke spiller noen rolle i overføringen. I likhet med en SSB-peer kjører en Bitsocial-fellesskapsnode på forbrukermaskinvare, og den må være på nett for å godta nye innlegg.

Uten nett og på lokale nettverk​

Her er SSB sterkere. To SSB-peers på samme Wi-Fi-nettverk, eller over Bluetooth i Manyverse, kan synkronisere uten internettforbindelse, og alt som allerede er replikert, forblir lesbart uten nett. Manyverses uttalte hovedmål er å gjøre sosiale nettverk uavhengige av internettilgang. Bitsocial trenger en internettforbindelse for å finne peers og for å publisere.

Nettleser​

De viktigste SSB-appene leveres med en full SSB-node: Manyverse bygger en inn i mobil- og skrivebordsappene sine. ssb-browser-demo kjørte SSB i en nettleser med delvis replikering og forbindelser gjennom rooms, og ble arkivert i 2022. Bitsocial-apper kjører en peer-to-peer-node i en vanlig nettleserfane. Se Peer-to-peer i nettleseren.

Private meldinger​

SSB har innebygde krypterte private meldinger. Bitsocial fokuserer på offentlige fellesskap og har ennå ingen innebygde direktemeldinger.

Prosjektstatus​

André Staltz, som laget Manyverse, trakk seg i april 2024 fra SSB, Manyverse og den planlagte etterfølgeren deres (hans siste oppdatering). I juli 2024 lanserte Jacob Karlsson denne etterfølgeren som PZP og skrev at han ikke ville jobbe mer med Manyverse og ikke kjente til noen andre som planla å gjøre det. I oktober 2026 hadde PZP-repositoriene på Codeberg ingen oppdateringer etter desember 2024. Patchworks repositorium er arkivert med v3.18.1 som siste utgivelse, og teamet bak Planetary, en SSB-app for iOS, gikk over til Nostr med appen Nos i 2023. SSB-nettverket kjører fortsatt på de peers og pubs som folk holder på nett, men de viktigste appene utvikles ikke lenger.

Sammenligning​

SpørsmålSecure ScuttlebuttBitsocial
KategoriGossip-protokoll for peer-to-peerPeer-to-peer-nettverk av fellesskap
IdentitetEtt Ed25519-nøkkelpar per enhetEd25519-nøkkelpar for brukere og fellesskap
Hvor innleggene liggerForfatterens append-only-feed, kopiert av hver peer som replikerer denNoden til fellesskapets eier og peerne som leser og seeder det
Hva en peer beholderFull historikk for hver feed innenfor følgerekkeviddenDen nyeste tilstanden til fellesskapene den leser eller seeder
FellesskapIkke noe fellesskapsobjekt; kanaler og emneknagger merker innleggFørsteklasses objekter der noden godtar eller avviser innlegg
SpamkontrollReplikeringsrekkevidde styrt av følgegrafen, pluss blokkeringerHvert fellesskaps utfordring før et innlegg godtas
ModereringHvem hver bruker følger og blokkererFellesskapseiere modererer sitt fellesskap; apper velger hva de viser
HjelpeserverePubs lagrer og serverer feeder; rooms tunnelerer forbindelserHTTP-rutere returnerer peers som tilbyr innholdet, og lagrer ikke noe innhold
Uten nettSynkronisering over LAN og Bluetooth uten internettTrenger en internettforbindelse
NettleserAppene har en full SSB-node innebygdPeer-to-peer-node i en vanlig nettleserfane
NettverkI drift, men de viktigste appene utvikles ikke lengerNettverk i drift med apper som 5chan og Seedit
Viktigste avveiningFungerer uten nett og trenger ingen hosting, men feedene vokser for alltid og fremmede forblir usynligeÅpen publisering og nettleserstøtte, men trenger internett og beholder bare den nyeste tilstanden