Come Funziona Nostr e Perché una Rete Sociale Senza Server Funziona
Quasi ogni protocollo di rete sociale decentralizzata alla fine diventa un mostro. ActivityPub trascina pesanti server Mastodon, dove un ban su un nodo ti taglia fuori da metà del pubblico. Le reti P2P come Scuttlebutt si scontrano con problemi di sincronizzazione sui dispositivi mobili e scaricano la batteria in mezza giornata.
Il creatore del protocollo Nostr (che sta per Notes and Other Stuff Transmitted by Relays) ha adottato l'approccio opposto: ha eliminato le blockchain, ha eliminato i complessi protocolli P2P, e ha lasciato solo crittografia e semplici relay WebSocket.

L'Idea di Base
Nostr non è una rete sociale pronta all'uso né un'applicazione autonoma. È una specifica per l'interazione di rete che si adatta a una dozzina di documenti brevi (NIP, Nostr Implementation Possibilities).
Non hai login, password o associazione con numero di telefono. Un account è una coppia di chiavi crittografiche: privata (secp256k1) e pubblica. La tua chiave pubblica funziona come identificatore, e firmi ogni azione con la tua chiave privata.
Ogni messaggio, articolo, reazione o modifica dell'avatar è chiamato evento nella terminologia del protocollo. In sostanza, è un normale oggetto JSON:
{
"id": "4376c65d2f23493d6050d0c393d01f50252a607d58eab305699c6811ea70017d",
"pubkey": "9fe415e4177d13521649f80e4293097b540e555d34a14f4e2454b62412f93008",
"created_at": 1672531199,
"kind": 1,
"tags": [],
"content": "Привет, это тестовый пост в Nostr!",
"sig": "250e938424f...подпись...4e8f9b"
}
Il client forma questo JSON, lo firma con la tua chiave privata, e lo invia tramite WebSocket a uno o più server relay.
Come Funzionano i Relay
Un relay è un server semplice. Non sa chi sei e non si interessa alla logica della tua applicazione. I suoi compiti sono:
- Accettare JSON su WebSocket.
- Verificare la firma dell'autore.
- Memorizzare l'evento in un database (di solito SQLite o PostgreSQL).
- Distribuire l'evento agli iscritti che hanno richiesto un filtro per il tuo
pubkey.
Se il proprietario di un relay specifico decide di bannarti, passi semplicemente il tuo client a cinque altri relay. I tuoi iscritti troveranno i tuoi post lì, perché la firma dell'autore è ancora presente, e il relay non può falsificare il testo del messaggio senza la chiave privata.
Allo stesso tempo, i relay possono essere a pagamento (anti-spam tramite abbonamento o micropagamenti), privati (solo per i dipendenti dell'azienda), o pubblici.
Il Problema Ingegneristico Principale
In teoria, tutto sembra ottimo: molti relay, nessuna censura. In pratica, sorge una domanda: come fa il client del lettore a sapere quali esatti relay l'autore invia i suoi post?
Se sei iscritto a 500 persone, interrogare migliaia di relay esistenti è costoso. La comunità ha adottato il modello Outbox (NIP-65). L'autore pubblica una lista di relay a cui scrive (write relay). L'iscritto richiede questa lista e si connette solo a quelli. Per l'ottimizzazione, i client trovano le intersezioni e mantengono le connessioni aperte solo a 10-15 server.
Cosa Costruiscono gli Sviluppatori su Nostr
A causa della semplicità della specifica, le persone hanno iniziato a costruire cose su Nostr ben oltre il normale microblogging:
- Client come Damus (iOS), Amethyst (Android), o Coracle (Web) per la comunicazione stile Twitter.
- Piattaforme per articoli lunghi (NIP-23), dove i post sono memorizzati in Markdown.
- Messaggeri P2P con crittografia dei messaggi usando la chiave pubblica del partner di conversazione.
- Sistemi di autenticazione per siti web (NIP-07), dove un'estensione del browser firma la richiesta invece di inserire login e password.
Librerie per lavorare con il protocollo esistono per praticamente qualsiasi stack: Go, Rust, TypeScript, Python, Dart. Scrivere un client minimo che si connette a un relay e ascolta uno stream di post può letteralmente essere fatto in 30-40 righe di codice.
Vale la Pena Approfondire
Nostr non è perfetto. È difficile organizzare la ricerca senza indicizzatori di terze parti, non c'è cancellazione integrata dei dati (un post eliminato può rimanere per sempre su un relay testardo), e la sincronizzazione tra più client a volte fallisce.
Ma se sei interessato a un design di rete pulito e minimalista senza overengineering, il repository merita sicuramente un'esplorazione. Inizia con la specifica degli eventi base in NIP-01, e puoi provare client già pronti attraverso il catalogo su nostr.build.
Progetti correlati