Passa al contenuto principale

Bitsocial e Nostr

Nostr non rientra pulitamente né tra i sistemi federati né tra quelli su blockchain. Gli utenti non ricevono account dalle istanze, e non ci sono catena, consenso, gas o ordinamento globale. Nostr si descrive meglio come social media basato su relay: gli utenti detengono coppie di chiavi, firmano eventi e li pubblicano sui relay, che sono normali server che li memorizzano e li servono (NIP-01). Il README di Nostr stesso afferma che il protocollo non si basa su tecniche peer-to-peer.

Questo avvicina Nostr a Bitsocial più di quanto facciano i sistemi federati o blockchain sotto un aspetto importante: l'identità è crittografica e portabile. Le differenze stanno nel livello dei dati e in chi controlla l'accesso.

Come funziona Nostr​

  • Eventi e relay. Ogni post, profilo o reazione è un evento JSON firmato. I client pubblicano gli eventi sui relay tramite WebSocket e si iscrivono con dei filtri; i relay memorizzano gli eventi e li restituiscono. I relay non comunicano tra loro.
  • Replica. Di solito gli utenti pubblicano su più relay. Uno studio del 2023 su 712 relay ha rilevato che il post medio si trovava su 34,6 di essi (Wei e Tyson).
  • Trovare i post di qualcuno. Gli utenti pubblicano un elenco dei relay su cui scrivono e da cui leggono (NIP-65), e i client recuperano i post di un utente dai relay di scrittura di quell'utente.
  • Identità. Ogni utente è una chiave secp256k1 che firma con firme Schnorr. Le specifiche non definiscono alcuna rotazione o recupero delle chiavi, quindi perdere la chiave significa perdere l'account. Gli identificatori facoltativi name@domain (NIP-05) vengono verificati confrontandoli con un file presente sul server web di quel dominio.
  • Gruppi. Il meccanismo raccomandato per le comunità sono i gruppi basati su relay (NIP-29): un relay ospita un gruppo, ne applica le regole di adesione e di pubblicazione prima di accettare un post e ne firma i metadati. Le più vecchie comunità approvate dai moderatori (NIP-72) sono ora contrassegnate come sconsigliate a favore di NIP-29.
  • Controllo dello spam. Ogni relay sceglie il proprio filtro d'accesso: proof of work (NIP-13), autenticazione e allowlist (NIP-42), pagamento o limiti di frequenza. I client aggiungono liste di silenziamento e punteggi di fiducia.
  • Media. Immagini e video vengono caricati su server di file HTTP separati.

Dove differiscono​

Chi memorizza e serve i post​

In Nostr i relay sono il livello di archiviazione e consegna: un server deve mantenere online ogni post. In Bitsocial i router HTTP aiutano soltanto i client a trovare i peer. Non memorizzano post, profili, metadati delle comunità o stato di moderazione; i client recuperano i contenuti dal nodo della comunità e dai peer che ne fanno il seeding. Vedi Protocollo peer-to-peer.

Chi controlla l'accesso​

In Nostr i filtri di scrittura appartengono ai gestori dei relay. Al di fuori dei gruppi NIP-29, una chiave rifiutata da un relay può pubblicare lo stesso evento su qualsiasi relay che lo accetti, e ciò che i lettori vedono dipende dai relay letti dal loro client. Un gruppo NIP-29 è più vicino a una comunità Bitsocial: il relay che lo ospita accetta o rifiuta i post. È comunque il relay a definire cosa possono fare i ruoli del gruppo, e la cronologia del gruppo resta legata a quel relay a meno che un altro relay non accetti di prenderla in carico.

In Bitsocial una comunità è un oggetto crittografico con una propria coppia di chiavi. Il nodo della comunità esegue la sfida scelta dal proprietario e pubblica lo stato accettato nella rete peer-to-peer. Vedi Sfide anti-spam personalizzate.

Gestire l'infrastruttura​

Un relay è un server con un dominio e un endpoint WebSocket, e i relay più popolari sostengono i costi di archiviazione e di banda di ciò che servono. Lo studio del 2023 ha stimato che circa il 95% dei relay gratuiti non riusciva a coprire i propri costi con le donazioni. Un nodo di comunità Bitsocial gira su hardware consumer, e i peer che leggono una comunità possono aiutare a condividerla.

Browser​

Un client web Nostr apre connessioni WebSocket direttamente verso i relay, quindi non serve alcun server applicativo. Un'app web Bitsocial esegue un nodo peer-to-peer nella scheda e recupera i contenuti dai peer. Vedi Peer-to-peer nel browser.

Contenuti vecchi​

I post di Nostr sono ampiamente replicati sui relay, il che aiuta i vecchi post a sopravvivere. Bitsocial conserva lo stato più recente della comunità e non garantisce i vecchi contenuti per sempre.

Confronto​

DomandaNostrBitsocial
CategoriaProtocollo basato su relayRete di comunità peer-to-peer
IdentitàChiave utente secp256k1, senza rotazione nelle specificheCoppie di chiavi Ed25519 per utenti e comunità
Dove risiedono i postRelay scelti dall'autore, spesso moltiIl nodo del proprietario della comunità e i peer che la leggono e ne fanno il seeding
Chi lo tiene onlineGestori dei relayNodo del proprietario della comunità più i seeder di supporto
ComunitàGruppi ospitati dai relay (NIP-29)Oggetti di prima classe il cui nodo accetta o rifiuta i post
Controllo dello spamLa politica di ciascun relay: proof of work, autenticazione, pagamento, allowlist, limiti di frequenzaLa sfida di ciascuna comunità prima che un post venga accettato
ModerazionePolitiche dei relay, liste di silenziamento dei client, etichette e segnalazioniI proprietari moderano la propria comunità; le app scelgono cosa mostrare
NomiIdentificatori facoltativi name@domain verificati via HTTPSNomi .bso e .eth che si risolvono in chiavi
BrowserClient WebSocket dei relayNodo peer-to-peer dentro una normale scheda del browser
Compromesso principaleIdentità portabile e ampia replica, ma disponibilità e politiche dipendenti dai relayMinore dipendenza dai relay, ma i vecchi contenuti non sono garantiti per sempre