Bitsocial και Secure Scuttlebutt
Το Secure Scuttlebutt (SSB) είναι ένα peer-to-peer κοινωνικό πρωτόκολλο που δημιούργησε ο Dominic Tarr το 2014. Το Manyverse είναι η πιο γνωστή εφαρμογή του, για Android, iOS και επιτραπέζιους υπολογιστές· το Patchwork ήταν ο κύριος πελάτης για επιτραπέζιους υπολογιστές πριν αρχειοθετηθεί. Από τα συστήματα που συγκρίνονται σε αυτή την τεκμηρίωση, το SSB είναι το πιο κοντινό στο Bitsocial ως προς το πνεύμα: χωρίς διακομιστές στη διαδρομή των δεδομένων, χωρίς blockchain, χωρίς καθολική σειρά και με κλειδιά Ed25519 για την ταυτότητα. Τα δύο έκαναν αντίθετες επιλογές ως προς το τι αποθηκεύει κάθε ομότιμος κόμβος και πού σταματά το spam.
Πώς λειτουργεί το Scuttlebutt
- Ροές (feeds). Κάθε ταυτότητα είναι ένα ζεύγος κλειδιών Ed25519, που γράφεται ως
@<public key>.ed25519. Ό,τι δημοσιεύει ένας χρήστης μπαίνει στη δική του ροή, ένα αρχείο καταγραφής μόνο προσθήκης (append-only log) στο οποίο κάθε υπογεγραμμένο μήνυμα φέρει έναν αύξοντα αριθμό και το hash του προηγούμενου μηνύματος. Μόλις δημοσιευτεί, ένα μήνυμα δεν μπορεί να τροποποιηθεί, σύμφωνα με τον οδηγό του πρωτοκόλλου. - Αναπαραγωγή. Οι ομότιμοι κόμβοι αντιγράφουν ολόκληρες ροές, όχι μεμονωμένες αναρτήσεις, και ο γράφος ακολούθησης καθορίζει ποιες ροές κρατά ένας ομότιμος κόμβος. Το Patchwork, για παράδειγμα, εμφάνιζε ροές έως και δύο βήματα (hops) μακριά και αναπαρήγαγε ροές έως και τρία βήματα μακριά. Με τα δέντρα επιδημικής εκπομπής (epidemic broadcast trees, EBT), οι ομότιμοι κόμβοι συγκρίνουν τον πιο πρόσφατο αύξοντα αριθμό που έχουν για κάθε ροή και στέλνουν μόνο ό,τι λείπει.
- Συνδέσεις. Οι ομότιμοι κόμβοι αυθεντικοποιούνται με το secret handshake και κρυπτογραφούν την κίνηση με το box stream. Το handshake είναι δεμένο με ένα αναγνωριστικό δικτύου, οπότε ομότιμοι κόμβοι σε ένα ξεχωριστό δίκτυο SSB με διαφορετικό αναγνωριστικό δεν μπορούν να συνδεθούν στο κύριο δίκτυο.
- Εύρεση ομότιμων κόμβων. Οι ομότιμοι κόμβοι ανακοινώνουν την παρουσία τους στο τοπικό δίκτυο με UDP broadcast και συγχρονίζονται μέσω LAN· το Manyverse συγχρονίζεται επίσης μέσω Bluetooth. Μέσω του διαδικτύου, οι χρήστες βασίζονται στα pubs, ομότιμους κόμβους που είναι πάντα online, σας ακολουθούν πίσω αφού εξαργυρώσετε έναν κωδικό πρόσκλησης και στη συνέχεια αποθηκεύουν και σερβίρουν τη ροή σας, και στα rooms, που δεν αποθηκεύουν ροές αλλά δρομολογούν μέσω σήραγγας τις συνδέσεις μεταξύ των μελών τους.
- Blobs και ιδιωτικά μηνύματα. Οι εικόνες και τα άλλα αρχεία είναι blobs με διευθυνσιοδότηση βάσει περιεχομένου, που ανακτώνται από ομότιμους κόμβους, με προεπιλεγμένο όριο μεγέθους 5 MB στις τρέχουσες υλοποιήσεις. Τα ιδιωτικά μηνύματα κρυπτογραφούνται για έως και επτά παραλήπτες και δημοσιεύονται ως κρυπτοκείμενο στη ροή του συντάκτη.
Πού διαφέρουν
Τι αποθηκεύει ένας ομότιμος κόμβος
Ένας ομότιμος κόμβος του SSB κρατά πλήρες αντίγραφο κάθε ροής εντός του εύρους αναπαραγωγής του, από το πρώτο μήνυμα κάθε ροής, και σερβίρει αυτές τις ροές σε άλλους. Αυτό επιτρέπει στο SSB να λειτουργεί εκτός σύνδεσης, όμως ο αποθηκευτικός χώρος μεγαλώνει με κάθε μήνυμα εντός εύρους, και μια νέα εγκατάσταση πρέπει να κατεβάσει αυτές τις ροές πριν δείξει οτιδήποτε ουσιαστικό. Ένας πελάτης του Bitsocial ανακτά την πιο πρόσφατη κατάσταση των κοινοτήτων που ανοίγει από τον κόμβο της κοινότητας και από τους ομότιμους κόμβους που τη διαμοιράζουν, και το δίκτυο κρατά μόνο αυτή την πιο πρόσφατη κατάσταση. Δείτε το Πρωτόκολλο Peer-to-Peer.
Διαγραφή και συσκευές
Επειδή μια ροή είναι αλυσίδα από hashes, το SSB δεν έχει διαγραφή σε επίπεδο δικτύου: ένας ομότιμος κόμβος μπορεί να αφαιρέσει μηνύματα από τη δική του βάση δεδομένων, αλλά δεν μπορεί να τα ανακαλέσει από τα αντίγραφα άλλων ομότιμων κόμβων. Η δημοσίευση με το ίδιο κλειδί από δύο συσκευές, ή από ένα αντίγραφο ασφαλείας που επαναφέρθηκε, διακλαδώνει (fork) τη ροή, γι' αυτό η συνήθης λύση είναι μία ταυτότητα ανά συσκευή. Το PZP, το διάδοχο πρωτόκολλο της ομάδας του Manyverse, αναφέρει τη διαγραφή, τις πολλαπλές συσκευές ανά λογαριασμό και τις ροές ανθεκτικές σε διακλαδώσεις ανάμεσα στις κύριες αλλαγές του σε σχέση με το SSB (ανάρτηση κυκλοφορίας). Ένας κόμβος κοινότητας του Bitsocial δημοσιεύει μια νέα έκδοση της κατάστασης της κοινότητας σε κάθε ενημέρωση, οπότε το περιεχόμενο που αφαιρούν οι συντονιστές της φεύγει από την πιο πρόσφατη κατάσταση.
Ποιους μπορείτε να ακούτε
Το εύρος αναπαραγωγής του SSB λειτουργεί ταυτόχρονα και ως φίλτρο spam. Η ροή ενός αγνώστου φτάνει σε εσάς μόνο αν κάποιος εντός των βημάτων σας τον ακολουθεί, και ο αποκλεισμός μιας ροής κάνει τον κόμβο σας να σταματήσει να την αναπαράγει. Το spam μένει έξω, αλλά το ίδιο και οι νεοφερμένοι, μέχρι να τους ακολουθήσει κάποιος. Το Bitsocial επιτρέπει σε οποιονδήποτε να δημοσιεύει σε μια κοινότητα, και ο κόμβος της κοινότητας αποφασίζει μέσω της πρόκλησής της αν μια ανάρτηση γίνεται δεκτή. Δείτε τις Προσαρμοσμένες προκλήσεις κατά του spam.
Κοινότητες
Το SSB δεν έχει αντικείμενο κοινότητας. Τα κανάλια και τα hashtags είναι ετικέτες σε μεμονωμένες αναρτήσεις, οι απαντήσεις ενός νήματος βρίσκονται στις ροές όσων τις έγραψαν, και το πόσο από ένα νήμα βλέπετε εξαρτάται από το ποιες από αυτές τις ροές έχει ο κόμβος σας. Τα rooms μπορούν να έχουν συντονιστές και λίστες μελών, αλλά αυτοί ελέγχουν ποιος μπορεί να συνδεθεί μέσω του room, όχι τι δημοσιεύεται. Μια κοινότητα του Bitsocial είναι αντικείμενο πρώτης τάξης με δικό της ζεύγος κλειδιών, κανόνες, συντονιστές και πρόκληση.
Υποδομή
Και τα δύο κρατούν τους διακομιστές έξω από τη διαδρομή των δεδομένων, και τα δύο στηρίζονται σε βοηθούς. Τα pubs είναι ό,τι πιο κοντινό έχει το SSB σε φιλοξενούμενη υπηρεσία: αποθηκεύουν και σερβίρουν τις ροές όλων όσων ακολουθούν. Τα rooms μοιάζουν περισσότερο με τους δρομολογητές HTTP του Bitsocial, επειδή κανένα από τα δύο δεν αποθηκεύει περιεχόμενο, όμως ένα room αναμεταδίδει τη σύνδεση μεταξύ των μελών του, ενώ ένας δρομολογητής απλώς επιστρέφει διευθύνσεις παρόχων και δεν συμμετέχει στη μεταφορά. Όπως ένας ομότιμος κόμβος του SSB, ένας κόμβος κοινότητας του Bitsocial τρέχει σε καταναλωτικό υλικό και πρέπει να είναι online για να δέχεται νέες αναρτήσεις.
Εκτός σύνδεσης και τοπικά δίκτυα
Εδώ το SSB υπερέχει. Δύο ομότιμοι κόμβοι του SSB στο ίδιο δίκτυο Wi-Fi, ή μέσω Bluetooth στο Manyverse, μπορούν να συγχρονιστούν χωρίς σύνδεση στο διαδίκτυο, και ό,τι έχει ήδη αναπαραχθεί παραμένει αναγνώσιμο εκτός σύνδεσης. Ο δηλωμένος κύριος στόχος του Manyverse είναι να κάνει την κοινωνική δικτύωση ανεξάρτητη από τη σύνδεση στο διαδίκτυο. Το Bitsocial χρειάζεται σύνδεση στο διαδίκτυο για να βρίσκει ομότιμους κόμβους και για να δημοσιεύει.
Πρόγραμμα περιήγησης
Οι κύριες εφαρμογές του SSB περιλαμβάνουν έναν πλήρη κόμβο SSB: το Manyverse ενσωματώνει έναν στις εφαρμογές του για κινητά και επιτραπέζιους υπολογιστές. Το ssb-browser-demo έτρεχε το SSB μέσα σε πρόγραμμα περιήγησης με μερική αναπαραγωγή και συνδέσεις μέσω rooms, και αρχειοθετήθηκε το 2022. Οι εφαρμογές του Bitsocial τρέχουν έναν peer-to-peer κόμβο σε μια κανονική καρτέλα προγράμματος περιήγησης. Δείτε το Peer-to-Peer στο πρόγραμμα περιήγησης.
Ιδιωτικά μηνύματα
Το 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 που κρατούν online οι άνθρωποι, αλλά οι κύριες εφαρμογές του δεν αναπτύσσονται πλέον.
Σύγκριση
| Ερώτημα | Secure Scuttlebutt | Bitsocial |
|---|---|---|
| Κατηγορία | Peer-to-peer πρωτόκολλο gossip | Peer-to-peer δίκτυο κοινοτήτων |
| Ταυτότητα | Ένα ζεύγος κλειδιών Ed25519 ανά συσκευή | Ζεύγη κλειδιών Ed25519 για χρήστες και κοινότητες |
| Πού βρίσκονται οι αναρτήσεις | Στη ροή μόνο προσθήκης του συντάκτη, που αντιγράφεται από κάθε ομότιμο κόμβο που την αναπαράγει | Στον κόμβο του ιδιοκτήτη της κοινότητας και στους ομότιμους κόμβους που τη διαβάζουν και τη διαμοιράζουν |
| Τι κρατά ένας ομότιμος κόμβος | Το πλήρες ιστορικό κάθε ροής εντός του εύρους ακολούθησής του | Την πιο πρόσφατη κατάσταση των κοινοτήτων που διαβάζει ή διαμοιράζει |
| Κοινότητες | Κανένα αντικείμενο κοινότητας· τα κανάλια και τα hashtags επισημαίνουν αναρτήσεις | Αντικείμενα πρώτης τάξης, των οποίων ο κόμβος δέχεται ή απορρίπτει αναρτήσεις |
| Έλεγχος spam | Εύρος αναπαραγωγής βάσει του γράφου ακολούθησης και αποκλεισμοί | Η πρόκληση της κάθε κοινότητας πριν γίνει δεκτή μια ανάρτηση |
| Εποπτεία | Οι ακολουθήσεις και οι αποκλεισμοί κάθε χρήστη | Οι ιδιοκτήτες κοινοτήτων εποπτεύουν την κοινότητά τους· οι εφαρμογές επιλέγουν τι θα εμφανίζουν |
| Βοηθητικοί διακομιστές | Τα pubs αποθηκεύουν και σερβίρουν ροές· τα rooms δρομολογούν μέσω σήραγγας συνδέσεις | Οι δρομολογητές HTTP επιστρέφουν κόμβους-παρόχους και δεν αποθηκεύουν περιεχόμενο |
| Εκτός σύνδεσης | Συγχρονισμός μέσω LAN και Bluetooth χωρίς διαδίκτυο | Χρειάζεται σύνδεση στο διαδίκτυο |
| Πρόγραμμα περιήγησης | Οι εφαρμογές ενσωματώνουν έναν πλήρη κόμβο SSB | Peer-to-peer κόμβος μέσα σε μια κανονική καρτέλα προγράμματος περιήγησης |
| Δίκτυο | Λειτουργεί, αλλά οι κύριες εφαρμογές του δεν αναπτύσσονται πλέον | Ενεργό δίκτυο με εφαρμογές όπως το 5chan και το Seedit |
| Βασικό αντάλλαγμα | Λειτουργεί εκτός σύνδεσης και δεν χρειάζεται φιλοξενία, αλλά οι ροές μεγαλώνουν επ' αόριστον και οι άγνωστοι μένουν αόρατοι | Ανοιχτή δημοσίευση και υποστήριξη προγραμμάτων περιήγησης, αλλά χρειάζεται διαδίκτυο και κρατά μόνο την πιο πρόσφατη κατάσταση |