N.O.S.T.R. - Notes and Other Stuff Transmitted by Relays
Nostr è un protocollo che mira ad essere una base decentralizzata e resistente alla censura per le applicazioni.
Tradotto dall’originale di Bitcoin Magazine - pubblicato il 13 nov 2023
Nostr, Notes and Other Stuff Transmitted by Relays (Note e altre cose trasmesse dai relay) è un protocollo che consente comunicazioni resistenti alla censura attraverso una serie di server relay non correlati, utilizzati per ospitare e servire i messaggi agli utenti. Le identità degli utenti sono semplicemente coppie di chiavi crittografiche, che consentono loro di possedere interamente la propria identità.
Tutti i messaggi sono firmati con le loro chiavi di identità, impedendo la manomissione degli stessi in qualsiasi forma. I relay fungono da intermediari nel processo di trasmissione, assicurando una comunicazione continua e affidabile tra mittenti e destinatari.
Capire le basi di Nostr
Nostr è costruito attorno al concetto di eventi, il formato di base dei messaggi con cui i client comunicano inviando o scaricando eventi ai server relay. Ogni evento ha una struttura di base che comprende:
la chiave d'identità pubblica che l'ha creato
la firma della chiave d'identità che l’ha creato
il contenuto effettivo del messaggio
altri eventi a cui potrebbe essere collegato, come i messaggi a cui un utente sta rispondendo, le citazioni, ecc.
Questo garantisce l'integrità dei dati per tutti i messaggi, impedendone qualsiasi alterazione dopo la sua creazione. La modifica di un singolo bit di un messaggio invaliderebbe la firma.
Garantisce inoltre che gli utenti siano completamente padroni della loro identità. Nessuno può portarvi via la vostra identità, poiché si tratta semplicemente di una chiave privata di cui solo voi siete in possesso, a differenza di Twitter dove il vostro (@handle) è semplicemente un'identità che Twitter vi presta e che controlla interamente.
Inoltre, poiché tutti gli eventi di Nostr sono firmati dalla chiave d'identità dell'utente, è impossibile per chiunque pubblicare fraudolentemente messaggi come un altro utente senza compromettere la chiave privata di quest'ultimo.
Il ruolo dei relays nella trasmissione
I relay sono il meccanismo con cui i diversi utenti di Nostr interagiscono tra loro. Due relays non comunicano mai tra loro, ma interagiscono direttamente con i client degli utenti. Ogni utente, quando crea un evento, può inviarlo a tutti i relay che desidera, idealmente a più relay per ottenere una ridondanza. Gli altri utenti possono quindi interrogare i relays per trovare eventi specifici, eventi creati da un utente specifico o altri criteri.
Ogni relay è libero di stabilire le proprie politiche che regolano quali eventi accettare e a quali condizioni. Alcuni relay sono completamente gratuiti per postare e scaricare eventi, altri fanno pagare una tantum, ci sono persino proposte di Nostr per relay che richiedono una proof-of-work in stile hashcash prima che un client possa postare un evento sul server.
Ogni relay è anche libero di limitare gli utenti che possono o non possono pubblicare eventi sul server. Nel complesso, Nostr è in grado di funzionare in modo resistente alla censura, perché i clienti possono chiedere eventi a qualsiasi relay online. Se un relay server si rifiuta di accettare eventi da un utente specifico, può notificare ai follower altri relay server che accetteranno i loro eventi, e gli altri utenti possono semplicemente iniziare a interrogare questi relay per vedere i messaggi dell'utente censurato.
Questa capacità dei client di interrogare simultaneamente un numero qualsiasi di relay server indipendenti per ottenere eventi è ciò che garantisce la resistenza complessiva di Nostr alla censura.
Damus: implementazione di un client e di un relay Nostr
Damus è il client mobile più diffuso per Nostr, disponibile su iOS, nonché uno dei più grandi server relay attualmente in funzione. Damus è stato sviluppato da William Casarin, uno sviluppatore che in precedenza lavorava alla rete Lightning.
Ha iniziato a sviluppare Damus come progetto a tempo perso dopo aver conosciuto il protocollo Nostr ed è il co-autore di NIP-57 nelle specifiche del protocollo stesso. Il NIP-57 definisce gli "Zaps", ovvero i pagamenti Lightning integrati in Nostr come una forma di pulsante "like" nella maggior parte dei protocolli dei social media.
Damus ha fatto progredire Nostr implementando nuovi NIP (Nostr Implementation Possibilities, n.d.t.), o funzionalità per il protocollo Nostr, sin dalla creazione del client.
Il futuro di Nostr
Attualmente l'uso dominante del protocollo Nostr è per le applicazioni di social media che sono effettivamente cloni di Twitter con una base decentralizzata e resistente alla censura. In linea di principio, si può fare molto di più con il protocollo. È possibile costruire altre varianti di social media come Instagram o Facebook. Anche le versioni decentralizzate di applicazioni come GitHub o Google Docs sono possibili. I potenziali tipi di applicazioni che è possibile costruire su Nostr sono limitati solo dall'immaginazione di chi li costruisce.
ALTRE INFORMAZIONI
Quanto sotto riportato, non fa parte dell’articolo originale ma sono alcune considerazioni personali e una raccolta di risorse utili per chi volesse approfondire.
La mia identità pubblica (pubkey)
npub16zej035g4te9pfak9alj4yk3hnsyyjhfp2nxfzglnwgqwxh8frpqpqtpd9
Considerazioni
Nostr rappresenta il più semplice protocollo aperto in grado di creare una rete "sociale" globale resistente alla censura una volta per tutte. Non si affida a nessun server centrale fidato, quindi è resiliente; si basa su chiavi crittografiche e firme, quindi è a prova di manomissione.
Breve riassunto
Tutti hanno un client. Può essere un client nativo, un client web, ecc. Per pubblicare qualcosa, si scrive un post, lo si firma con la propria chiave (il processo di firma è automatizzato nel client usato, nessuna operazione è richiesta all’utente) e lo si invia a più relay (server ospitati da qualcun altro o da se stessi). Per ottenere aggiornamenti da altre persone, si chiede a più relay se sanno qualcosa di queste altre persone. Chiunque può gestire un relay. Un relay è molto semplice e stupido. Non fa altro che accettare i messaggi di alcune persone e inoltrarli ad altre. I relay non devono essere affidabili. Le firme sono verificate sul lato client.
Come funziona Nostr?
Ci sono due componenti: i client e i relay. Ogni utente gestisce un client. Chiunque può gestire un relay.
Ogni utente è identificato da una chiave pubblica. Ogni messaggio è firmato. Ogni client convalida queste firme.
I client recuperano i dati dai relay di loro scelta e pubblicano i dati ad altri relay di loro scelta. Un relay non parla con un altro relay, ma solo direttamente con gli utenti.
Per esempio, per "seguire" qualcuno, un utente deve solo istruire il proprio client a interrogare i relay che conosce per trovare i post di quella chiave pubblica.
All'avvio, un client interroga i dati di tutti i relay che conosce per tutti gli utenti che segue (ad esempio, tutti gli aggiornamenti dell'ultimo giorno), quindi li mostra all'utente in ordine cronologico.
Un "post" può contenere qualsiasi tipo di dati strutturati, ma quelli più utilizzati verranno inseriti nello standard in modo che tutti i client e i relay possano gestirli senza problemi.
Domande ricorrenti
In cosa Nostr è diverso da Twitter?
- Twitter ha gli annunci pubblicitari;
- Twitter utilizza tecniche bizzarre per mantenere la dipendenza;
- Twitter non mostra un vero e proprio feed storico delle persone che seguite;
- Twitter limita le persone in molti modi (ban, shadowban, etc.);
- Twitter può chiudere gli account senza preavviso anche senza un valido motivo;
- Twitter ha un sacco di spam.
Quante identità posso avere?
Infinite, si tratta solo di generare per ognuna di loro la coppia di chiavi crittografiche e mantenere al sicuro la chiave privata.
Come creo la mia coppia di chiavi crittografiche pubblica/privata?
Ogni account Nostr si basa su una coppia di chiavi pubbliche e private. Un modo semplice di pensare è che la chiave pubblica è il nome utente e la chiave privata è la password, con un'importante avvertenza. A differenza della password, la chiave privata non può essere ripristinata in caso di smarrimento.
La chiave pubblica è generalmente presentata come una stringa con il prefisso npub1 e la chiave privata con il prefisso nsec1. Assicuratevi di conservare la chiave privata in un luogo sicuro, come un gestore di password.
Consiglio di generare una coppia di chiavi localmente sulla riga di comando del terminale o della console del proprio computer, invece di affidarsi al client nostr. È possibile farlo eseguendo:
$ openssl rand -hex 32
Il comando precedente genera una chiave privata. La chiave pubblica può essere ricavata matematicamente inserendo la chiave privata appena generata nell'applicazione client nostr.
Utente verificato con NIP-05. Di cosa si tratta?
Se si vuole essere utenti verificati NIP-05 (come il segno di spunta blu su Twitter) sul proprio sito web, creare un file .well-known/nostr.json
con il proprio nome utente e la pubkey in formato esadecimale, e poi aggiungerlo al proprio profilo nel client Nostr.
Ad esempio, ho creato https://bitcoinstan.io/.well-known/nostr.json con questo contenuto:
{
"names": {
"italiansatoshi": "d0b327c688aaf250a7b62f7f2a92d1bce0424ae90aa664891f9b90071ae748c2"
}
}
e poi nel mio profilo Nostr nel mio client preferito ho aggiunto italiansatoshi@bitcoinstan.io
(in modo da cercare l'userid italiansatoshi in nostr.json sul nome di dominio bitcoinstan.io). È inoltre possibile acquistare un id NIP-05 su https://nostrplebs.com/ se non è possibile farselo da solo.
Per trasformare la chiave pubblica (npub1…) in formato esadecimale (d0b327…) consiglio di utilizzare questo tool.
Risorse web
la raccolta più completa di materiale (so far…)
configurare un relay personale (tutorial in inglese)
Come acquistare Bitcoin?
Personalmente, reputo il miglior servizio quello offerto da Relai.
Per acquistare bitcoin risparmiando lo 0,5% in commissioni puoi usare il codice “REL3166”.
Si tratta di un’applicazione sviluppata da un’azienda svizzera che applica una politica di KYC light: a differenza dei grandi exchange non richiede registrazioni o dati personali, tutto ciò che serve per acquistare è il tuo IBAN.
E’ lo strumento ottimale per impostare dei piani di accumulo (DCA).
Per ridurre al massimo le commissioni di acquisto, ti consiglio di:
effettuare acquisti maggiori di 100€ (-0,5%)
impostare un piano di accumulo settimanale o mensile (-0,5%)
applicare il codice invito REL3166 (-0,5%)
Una delle migliori caratteristiche è il servizio non-custodial. Gli euro bonificati a Relai vengono convertiti automaticamente in bitcoin e trasferiti su un wallet di cui sei solo tu ad avere il controllo. I grossi exchange, al contrario, non forniscono le chiavi private ai clienti. In più Relai non vende centinaia di inutili criptovalute, ma solo bitcoin.
Cosa ci guadagno? Quello che fanno guadagnare i referral code. In questo caso se acquisti usando il codice “REL3166” risparmi lo 0,5% sulle commissioni e io ricevo (in bitcoin) lo 0,5% dell’importo che hai deciso di investire.
Per ulteriori informazioni, o per effettuare il primo acquisto, premi sul pulsante sottostante e ti verrà mostrata una dettagliata guida in italiano.
NOTA - Questo NON è un messaggio pubblicitario. Relai è un servizio che utilizzo personalmente e che reputo tra i migliori sul mercato in termini di affidabilità, sicurezza e facilità d’uso. Lo consiglio spesso ad amici e parenti.
Dovevo stare più attento quando me lo hanno introdotto altri. Sarei già lì!
Più che altro, ho ragionato leggendo, è Bitcoin ma "senza i soldi". Sì lo so che supporta LN anzi lo incentiva, ma per un attimo lo ho visto (forse sminuendolo) come un bel giochino per insegnare Bitcoin: "Ti piace Nostr? Immagina poterci trasferire denaro."
"Bello? Guarda, esiste Bitcoin. E funziona nella stessa maniera che hai appena scoperto."
Se non gli tocchi quello che pensano di sapere sul denaro è più facile -immagino- avere la buona disposizione da parte dell'interlocutore.
Magari poi è lo stesso, per alcuni sarebbe più tangibile una forma nuova di denaro che una di struttura di social network.
Ma magari altri no.
Prendi un influencer. Di cibo e vestiti e cazzate varie. Più verosimilmente si porta una parte di utenza a provare Nostra, che Bitcoin.
Quando poi gli dici "Tu sai già usare Bitcoin. Funziona uguale a Nostr." oooh lì gli si apre la capoccia come un cocomero 😂