Το Secure Scuttlebutt είναι ένα κοινωνικό δίκτυο p2p που λειτουργεί και εκτός σύνδεσης

Σπερμολογίες - μια αργκό λέξη κοινή μεταξύ των Αμερικανών ναυτικών, που υποδηλώνει φήμες και κουτσομπολιά. Ο προγραμματιστής του Node.js Dominic Tarr, ο οποίος ζει σε ένα ιστιοφόρο στα ανοικτά των ακτών της Νέας Ζηλανδίας, χρησιμοποίησε αυτή τη λέξη στο όνομα ενός δικτύου p2p που έχει σχεδιαστεί για την ανταλλαγή ειδήσεων και προσωπικών μηνυμάτων. Το Secure Scuttlebutt (SSB) σάς επιτρέπει να μοιράζεστε πληροφορίες χρησιμοποιώντας μόνο περιστασιακή πρόσβαση στο Διαδίκτυο ή ακόμα και καθόλου πρόσβαση στο Διαδίκτυο.

Το SSB λειτουργεί εδώ και αρκετά χρόνια. Η λειτουργικότητα του κοινωνικού δικτύου μπορεί να δοκιμαστεί χρησιμοποιώντας δύο εφαρμογές επιτραπέζιου υπολογιστή (κουρελού и Patchfoo) και εφαρμογές Android (Πολλάverse). Για geeks υπάρχει ssb-git. Σας ενδιαφέρει πώς λειτουργεί το offline-first δίκτυο p2p χωρίς διαφημίσεις και χωρίς εγγραφή; Παρακαλώ κάτω από γάτα.

Το Secure Scuttlebutt είναι ένα κοινωνικό δίκτυο p2p που λειτουργεί και εκτός σύνδεσης

Για να λειτουργήσει το Secure Scuttlebutt, αρκούν δύο υπολογιστές συνδεδεμένοι σε ένα τοπικό δίκτυο. Οι εφαρμογές που βασίζονται στο πρωτόκολλο SSB στέλνουν μηνύματα εκπομπής UDP και θα μπορούν να βρίσκουν αυτόματα η μία την άλλη. Η εύρεση τοποθεσιών στο Διαδίκτυο είναι λίγο πιο περίπλοκη και θα επανέλθουμε σε αυτό το θέμα σε μερικές παραγράφους.

Ένας λογαριασμός χρήστη είναι μια συνδεδεμένη λίστα με όλες τις καταχωρήσεις του (ημερολόγιο). Κάθε επόμενη καταχώρηση περιέχει έναν κατακερματισμό της προηγούμενης και υπογράφεται με το ιδιωτικό κλειδί του χρήστη. Το δημόσιο κλειδί είναι το αναγνωριστικό του χρήστη. Η διαγραφή και η επεξεργασία καταχωρήσεων είναι αδύνατη είτε από τον ίδιο τον συγγραφέα είτε από οποιονδήποτε άλλον. Ο ιδιοκτήτης μπορεί να προσθέσει καταχωρήσεις στο τέλος του ημερολογίου. Οι άλλοι χρήστες θα πρέπει να το διαβάσουν.

Οι εφαρμογές που βρίσκονται στο ίδιο τοπικό δίκτυο βλέπουν η μία την άλλη και ζητούν αυτόματα ενημερώσεις από τους γείτονές τους στα αρχεία καταγραφής που τους ενδιαφέρουν. Δεν έχει σημασία από ποιον κόμβο κατεβάζετε την ενημέρωση, γιατί... Μπορείτε να επαληθεύσετε την αυθεντικότητα κάθε καταχώρισης χρησιμοποιώντας το δημόσιο κλειδί. Κατά τη διάρκεια του συγχρονισμού, δεν ανταλλάσσονται προσωπικές πληροφορίες εκτός από τα δημόσια κλειδιά των περιοδικών που σας ενδιαφέρουν. Καθώς κάνετε εναλλαγή μεταξύ διαφορετικών δικτύων WiFi/LAN (στο σπίτι, σε μια καφετέρια, στην εργασία), αντίγραφα των τοπικά αποθηκευμένων αρχείων καταγραφής θα μεταφερθούν αυτόματα στις συσκευές άλλων χρηστών που βρίσκονται κοντά. Αυτό είναι παρόμοιο με το πώς λειτουργεί "από στόμα σε στόμα": Η Βάσια είπε στη Μάσα, η Μάσα είπε στον Πέτυα και η Πέτια είπε στη Βαλεντίνα. Μια σημαντική διαφορά από στόμα σε στόμα είναι ότι κατά την αντιγραφή περιοδικών, οι πληροφορίες σε αυτά δεν παραμορφώνονται.

Το «να είμαι φίλος κάποιου» εδώ αποκτά ένα συγκεκριμένο φυσικό νόημα: οι φίλοι μου κρατούν ένα αντίγραφο του περιοδικού μου. Όσο περισσότερους φίλους έχω, τόσο πιο προσιτό είναι το περιοδικό μου στους άλλους. Στην περιγραφή της παρακέντησης γραπτόςότι η εφαρμογή Patchwork συγχρονίζει ημερολόγια έως και 3 βήματα μακριά (φίλοι φίλων φίλων) από εσάς. Στις περισσότερες περιπτώσεις, αυτό σας επιτρέπει να διαβάζετε μεγάλες συζητήσεις με πολλούς συμμετέχοντες ενώ είστε εκτός σύνδεσης.

Το αρχείο καταγραφής ενός χρήστη μπορεί να περιέχει καταχωρήσεις διαφορετικών τύπων: δημόσια μηνύματα παρόμοια με καταχωρήσεις στον τοίχο VKontakte, προσωπικά μηνύματα κρυπτογραφημένα με το δημόσιο κλειδί του παραλήπτη, σχόλια σε αναρτήσεις άλλων χρηστών, likes. Αυτή είναι μια ανοιχτή λίστα. Οι εικόνες και άλλα μεγάλα αρχεία δεν τοποθετούνται απευθείας στο περιοδικό. Αντίθετα, γράφεται σε αυτό ένας κατακερματισμός του αρχείου, με τον οποίο μπορεί να αναζητηθεί το αρχείο ξεχωριστά από το ίδιο το αρχείο καταγραφής. Η ορατότητα των σχολίων για τον συντάκτη της αρχικής ανάρτησης δεν είναι εγγυημένη: αν δεν έχετε αρκετά σύντομο δρόμο κοινών φίλων μεταξύ σας, τότε πιθανότατα δεν θα δείτε τέτοια σχόλια. Έτσι, ακόμη κι αν στρατιωτικοί επιτιθέμενοι επιχειρήσουν να καταλάβουν τη θέση σας, τότε αν δεν ήταν φίλοι σας ή φίλοι φίλων φίλων, δεν θα παρατηρήσετε τίποτα.

Το Secure Scuttlebutt δεν είναι το πρώτο δίκτυο p2p ούτε καν το πρώτο κοινωνικό δίκτυο p2p. Η επιθυμία να επικοινωνήσουμε χωρίς μεσάζοντες και να βγούμε από τη σφαίρα επιρροής των μεγάλων εταιρειών υπάρχει εδώ και πολύ καιρό και υπάρχουν αρκετοί προφανείς λόγοι για αυτό. Οι χρήστες ενοχλούνται από την επιβολή κανόνων παιχνιδιού από μεγάλους παίκτες: λίγοι άνθρωποι θέλουν να δουν διαφημίσεις στην οθόνη τους ή να τους αποκλειστούν και περιμένουν αρκετές ημέρες για απάντηση από την υπηρεσία υποστήριξης. Η ανεξέλεγκτη συλλογή προσωπικών δεδομένων και η διαβίβασή τους σε τρίτους, που τελικά οδηγεί στο γεγονός ότι τα δεδομένα αυτά πωλούνται μερικές φορές στον σκοτεινό ιστό, μας υπενθυμίζει ξανά και ξανά την ανάγκη να δημιουργήσουμε άλλους τρόπους αλληλεπίδρασης όπου ο χρήστης θα έχει περισσότερο έλεγχο πάνω από τα δεδομένα του. Και ο ίδιος θα ήταν υπεύθυνος για τη διανομή και την ασφάλειά τους.

Γνωστά αποκεντρωμένα κοινωνικά δίκτυα όπως π.χ Διασπορά ή Μαστόδονταςκαι πρωτόκολλο Μήτρα δεν είναι peer-to-peer επειδή έχουν πάντα ένα τμήμα πελάτη και διακομιστή. Αντί για τη γενική βάση δεδομένων του Facebook, μπορείτε να επιλέξετε τον «οικιακό» διακομιστή σας για να φιλοξενήσει τα δεδομένα σας και αυτό είναι ένα μεγάλο βήμα προς τα εμπρός. Ωστόσο, ο διαχειριστής του διακομιστή "οικίας" σας έχει ακόμα πολλές επιλογές: μπορεί να μοιραστεί τα δεδομένα σας χωρίς να το γνωρίζετε, να διαγράψει ή να αποκλείσει τον λογαριασμό σας. Επιπλέον, μπορεί να χάσει το ενδιαφέρον του για τη συντήρηση του διακομιστή και να μην σας προειδοποιήσει για αυτό.

Το Secure Scuttlebutt διαθέτει επίσης ενδιάμεσους κόμβους που διευκολύνουν το συγχρονισμό (ονομάζονται "pubs"). Ωστόσο, η χρήση των παμπ είναι προαιρετική και οι ίδιες είναι εναλλάξιμες. Εάν ο συνηθισμένος κόμβος σας δεν είναι διαθέσιμος, μπορείτε να χρησιμοποιήσετε άλλους χωρίς να χάσετε τίποτα, καθώς έχετε πάντα ένα πλήρες αντίγραφο όλων των δεδομένων σας. Ο κόμβος διακομιστή μεσολάβησης δεν αποθηκεύει αναντικατάστατα δεδομένα. Η παμπ, αν τη ρωτήσετε, θα σας προσθέσει ως φίλο και θα ενημερώσει το αντίγραφο του περιοδικού σας όταν συνδεθείτε. Μόλις οι ακόλουθοί σας συνδεθούν με αυτό, θα μπορούν να κατεβάσουν τις νέες αναρτήσεις σας, ακόμα κι αν έχετε ήδη αποσυνδεθεί. Για να γίνει φίλος σας μια παμπ, πρέπει να λάβετε μια πρόσκληση από τον διαχειριστή της παμπ. Τις περισσότερες φορές, μπορείτε να το κάνετε μόνοι σας μέσω της διεπαφής ιστού (λίστα με παμπ). Εάν λάβετε απαγόρευση από όλους τους διαχειριστές παμπ, τότε το περιοδικό σας θα διανεμηθεί με τον τρόπο που περιγράφηκε προηγουμένως, π.χ. μόνο μεταξύ αυτών που συναντάς προσωπικά. Είναι επίσης δυνατή η μεταφορά ενημερώσεων σε μονάδα flash.

Αν και το δίκτυο λειτουργεί εδώ και αρκετό καιρό, υπάρχουν λίγα άτομα σε αυτό. Σύμφωνα με τον André Staltz, προγραμματιστή εφαρμογών Android, Πολλάverse, τον Ιούνιο του 2018 στην τοπική βάση δεδομένων του υπήρχε περίπου 7 χιλιάδες κλειδιά. Για σύγκριση, στη διασπορά - περισσότερες από 600 χιλιάδες, στο Mastodon - περίπου 1 εκατομμύριο.

Το Secure Scuttlebutt είναι ένα κοινωνικό δίκτυο p2p που λειτουργεί και εκτός σύνδεσης

Βρίσκονται οδηγίες για αρχάριους εδώ. Βασικά βήματα: εγκατάσταση της εφαρμογής, δημιουργία προφίλ, λήψη πρόσκλησης στον ιστότοπο της παμπ, αντιγραφή αυτής της πρόσκλησης στην εφαρμογή. Μπορείτε να συνδέσετε πολλές παμπ ταυτόχρονα. Θα χρειαστεί να κάνετε υπομονή: το δίκτυο είναι πολύ πιο αργό από το Facebook. Η τοπική προσωρινή μνήμη (φάκελος .ssb) θα αυξηθεί γρήγορα σε αρκετά gigabyte. Είναι βολικό να αναζητάτε ενδιαφέρουσες δημοσιεύσεις χρησιμοποιώντας ετικέτες κατακερματισμού. Μπορείτε να ξεκινήσετε την ανάγνωση, για παράδειγμα, με τον Dominic Tarr ( @EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519 ).

Όλες οι εικόνες από το άρθρο του André Staltz "Ένα κοινωνικό δίκτυο εκτός δικτύου" και κελάδημα.

Χρήσιμοι σύνδεσμοι:

[1] Επίσημη ιστοσελίδα

[2] κουρελού (εφαρμογή για Windows/Mac/Linux)

[3] Πολλάverse (εφαρμογή Android)

[4] ssb-git

[5] Περιγραφή πρωτοκόλλου («Οδηγός πρωτοκόλλου Scuttlebutt – Πώς οι συνομήλικοι του Scuttlebutt βρίσκουν και μιλούν μεταξύ τους»)

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο