Nostr ha ricevuto molta attenzione e passione da quando è stato creato aggiunta recente all'elenco delle piattaforme social alternative a cui è vietata la promozione su Twitter. E sta anche guadagnando terreno poiché è diventato chiaro che l'acquisizione di Twitter da parte di Elon Musk non ha sostanzialmente cambiato nulla sulla libertà di espressione sulla piattaforma: gli utenti lo sono ancora in fase di divieto per ragioni incoerenti e arbitrarie, e le persone sono alla ricerca di un'alternativa decentralizzata che non sia qualcosa come Mastodon, dove un operatore del server ha ancora la capacità di controllare la tua identità.
Nonostante la recente attenzione, il protocollo Nostr e la prima implementazione del server di inoltro sono stati effettivamente creati alla fine del 2020 dallo sviluppatore fiatjaf. Prima della grande esplosione di attenzione, era solo un tranquillo protocollo di nicchia che cercava semplicemente di essere una soluzione leggera ai problemi di Twitter e Mastodon. Su entrambi i sistemi, la tua identità/nome utente è semplicemente una cosa controllata da chiunque stia eseguendo il server. Mastodon essendo un sistema federato con più server diversi che parlano tutti tra loro non cambia sostanzialmente quella realtà. Chiunque sia il server che usi per ospitare un account ha il controllo totale se puoi usarlo o meno. Anche eseguendo il tuo server, altri operatori di server possono inserire nella blacklist o nella whitelist quali server saranno autorizzati a parlare con i loro. Ciò ha portato a molte partizioni nel "Fediverse" di diversi server Mastodon e rende priva di significato l'idea di eseguire solo il proprio. Alla fine puoi ancora essere censurato da altri operatori di server, impedendo ai loro utenti di vedere i tuoi contenuti nel loro feed.
Il principale elemento di differenziazione tra Nostr e qualcosa come Mastodon è che, invece di utilizzare un nome utente di proprietà di un operatore di server, ogni utente utilizza una coppia di chiavi pubblica/privata per gestire invece quella funzione. Questo è qualcosa che un operatore di server non può semplicemente impossessarsi di te o bloccarti fuori. Questo è uno degli elementi fondamentali su cui è costruito il protocollo generale Nostr.
Il prossimo è "eventi". Questo è il tipo di oggetto/dati di base utilizzato dai client e dai server di inoltro a cui i client si connettono per inviare e recuperare messaggi. L'idea generale del protocollo è che i client inviano eventi ai server di inoltro, che a loro volta li memorizzano e li indicizzano, e altri client possono comunicare con i server di inoltro per richiedere gli eventi che hanno ricevuto e archiviato. Nell'originale PIN 01, vengono definiti tre diversi tipi di evento:
- 0: invia metadati su un utente, come nome utente, immagine, biografia, ecc.
- 1: invia messaggi di testo e contenuti di base
- 2: consiglia i server di inoltro per le persone che seguono il creatore dell'evento a cui connettersi
Tutti gli eventi sono strutturati in modo specifico. Includono la chiave pubblica del creatore, un timestamp di quando sono stati creati, il loro tipo (o tipo nella specifica), il payload del contenuto e una firma del creatore dell'evento. Possono anche avere tag che fanno riferimento ad altri eventi o utenti e avere un valore ID che è un hash di tutto tranne la firma del creatore (simile a un TXID per le transazioni Bitcoin). Ciò ti consente di garantire che un messaggio sia stato effettivamente creato dal proprietario della chiave pubblica al suo interno verificando la firma (e la persona che possiede quella chiave se non è compromessa) e garantire che il messaggio non sia stato alterato dopo l'hanno firmato. Proprio come non puoi modificare una transazione Bitcoin dopo che è stata firmata senza annullarla, non puoi modificare un evento Nostr dopo che il creatore lo ha firmato senza che si tratti di un'evidente frode.
Il sistema del tipo di evento è stato ampliato in modo abbastanza sostanziale da quel NIP originale. Esiste un tipo di evento per i messaggi diretti crittografati, che stabilisce una chiave condivisa combinando la chiave privata del mittente con la chiave pubblica del destinatario, che risulta nella stessa chiave che si otterrebbe combinando la chiave pubblica del mittente con la chiave privata del destinatario (ecco come BIP 47 e i pagamenti silenziosi funzionano). Esistono anche tipi per eventi sostituibili ed eventi effimeri. Nel caso di un evento sostituibile (ovviamente), sono progettati in modo che il creatore originale dell'evento possa firmarne uno nuovo per sostituire quello vecchio. I server di inoltro che seguono la specifica elimineranno automaticamente l'evento precedente dalla loro memoria e inizieranno a servire le versioni più recenti ai client al momento della ricezione. Gli eventi effimeri sono progettati in modo tale da essere trasmessi a chiunque si iscriva al loro creatore quando vengono inviati al relay, ma i server di relay non dovrebbero memorizzarli. Questo crea la possibilità di avere messaggi visti solo dalle persone quando sono online durante la sua trasmissione. Esiste persino un tipo di evento per segnalare una reazione (come Mi piace o emoji) agli eventi di altre persone.
A proposito di quest'ultimo, anche gli eventi possono contenere tag. Attualmente esistono tipi di tag per eventi (per fare riferimento a un evento Nostr esatto), chiavi pubbliche (per taggare o fare riferimento ad altri utenti) e soggetti (per emulare funzionalità, come oggetti di posta elettronica). Tutti questi possono includere puntatori a server di inoltro specifici da cui i dati possono essere recuperati in modo che gli utenti possano effettivamente interagire tra i server, ad esempio, un utente che invia il proprio contenuto a un server di inoltro può interagire e fare riferimento al contenuto creato da un altro utente che invia a un server di inoltro diverso in un modo che consenta a qualsiasi utente di recuperare in modo coerente l'intero thread di interazioni nell'ordine corretto e senza un'enorme complessità nel capire dove trovare i dati rilevanti.
All'interno del NIP originale, viene fornita una specifica su come i client devono interagire con i server di inoltro attraverso una struttura di messaggio/dati di sottoscrizione che include filtri per quali eventi il client è interessato a ricevere. Tali filtri possono specificare le chiavi pubbliche degli utenti, gli eventi esatti, i tipi di eventi e persino i tempi specifici in cui li desiderano in base ai criteri precedenti. Puoi persino inviare prefissi di chiavi pubbliche o ID evento, come "1xjisj…". e ricevere qualsiasi evento o evento da una chiave pubblica che inizia con quella breve stringa (questo può essere utile per nascondere da un server di inoltro ciò che si desidera effettivamente visualizzare).
Nel complesso, il protocollo è uno schema molto semplice e generalizzato per il passaggio di messaggi tra utenti che copre le cose importanti, come garantire l'integrità dei messaggi e chi li ha inviati con l'uso di identità a chiave pubblica, facilitando anche l'infrastruttura sul back-end per server di inoltro che possono essere estremamente centralizzati o consentire a un utente di eseguire il proprio server di inoltro personale, il tutto interagendo perfettamente tra loro e senza causare un enorme caos nel caso in cui un utente venga bandito da un server di inoltro. Possono passare a un altro o eseguire il proprio e il loro de-platforming dal server precedente non perde loro la loro identità digitale o follower perché mantengono ancora il controllo sulla loro chiave privata e gli utenti possono autenticarla quando li trovano altrove.
Anche i server di inoltro possono funzionare come vogliono. Possono operare gratuitamente, possono addebitare micropagamenti per pubblicare o scaricare messaggi, e c'è anche un NIP per aver richiesto una prova di lavoro in stile hashcash per inviare un messaggio. Possono essere un server di inoltro singolo per ospitare e servire solo i tuoi post ad altri utenti, oppure possono essere un server in esecuzione su vasta scala come Twitter o Reddit (i client possono visualizzare e organizzare le informazioni come vogliono, il che consente di emulare essenzialmente qualsiasi social piattaforma multimediale che esiste oggi). Tutto questo può interagire senza problemi e senza essere in grado di escludere un utente. Puoi impedire loro di pubblicare contenuti sul tuo server di inoltro, ma alla fine non puoi impedire loro di visualizzare i contenuti che ospiti sul tuo server di inoltro o impedire ad altri utenti di trovare i loro contenuti su altri server.
È un protocollo molto semplicistico con un ampio spazio di progettazione aperto che le persone possono costruire, garantendo agli utenti la possibilità di interagire sempre tra loro indipendentemente da ciò che i singoli operatori di server di inoltro scelgono di ospitare o meno. Questa è allo stesso tempo la sua più grande forza e la sua più grande debolezza. Sebbene garantisca la libertà agli sviluppatori di creare senza vincoli stretti da un protocollo complicato, ci sono anche molti problemi in cui si imbatterà intrinsecamente che non sono gestiti dal protocollo stesso.
Nel prossimo pezzo che scriverò, entrerò in alcuni dei problemi che vedo verificarsi e delle potenziali soluzioni, ma per ora, dirò solo che in termini di semplicità del design e delle possibilità che offre alle persone di build, Nostr ha svolto un ottimo lavoro, considerando che è il frutto dell'ingegno di una persona e finora solo una manciata di persone ha davvero contribuito alla specifica del protocollo stesso.
Questo è un guest post di Shinobi. Le opinioni espresse sono interamente proprie e non riflettono necessariamente quelle di BTC Inc o Bitcoin Magazine.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: https://bitcoinmagazine.com/technical/what-makes-nostr-a-different-social-platform
- 2020
- 7
- a
- capacità
- capace
- Chi siamo
- Il mio account
- operanti in
- effettivamente
- Dopo shavasana, sedersi in silenzio; saluti;
- Tutti
- consente
- alternativa
- sempre
- ed
- Un altro
- chiunque
- attenzione
- autenticare
- automaticamente
- BACKEND
- vietato
- basato
- basic
- perché
- diventare
- prima
- dietro
- essendo
- fra
- Big
- Bitcoin
- Bitcoin Magazine
- bitcoin transazioni
- bitcoiners
- Blocchi
- BROADCAST
- BTC
- BTC Inc
- costruire
- Costruzione
- costruito
- buyout
- non può
- Custodie
- causando
- centralizzata
- il cambiamento
- Chaos
- carica
- Scegli
- pulire campo
- cliente
- clienti
- combinando
- comunicare
- complessità
- complicato
- Compromissione
- Connettiti
- considerando
- vincoli
- contenuto
- contribuito
- di controllo
- controllata
- Nucleo
- Copertine
- creato
- crea
- Creatore
- criteri
- Attualmente
- dati
- decentrata
- Design
- progettato
- Costruttori
- sviluppatori
- diverso
- digitale
- identità digitale
- dirette
- Dsiplay
- scaricare
- Cadere
- durante
- ogni
- Elon
- Elon Musk
- altrove
- crittografato
- Intero
- interamente
- essenzialmente
- stabilire
- eccetera
- Anche
- Evento
- eventi
- EVER
- qualunque cosa
- Tranne
- esiste
- ampliato
- espresso
- estremamente
- facilitando
- Fediverso
- Recuperato
- filtri
- Trovare
- ricerca
- Nome
- affollando
- i seguenti
- frode
- Gratis
- La libertà
- da
- function
- funzionalità
- fondamentalmente
- guadagnando
- Generale
- ottenere
- dato
- Go
- buono
- buon lavoro
- maggiore
- di garanzia
- garanzie
- GUEST
- Ospite Messaggio
- manciata
- maniglia
- hash
- avendo
- host
- di hosting
- Come
- Tuttavia
- HTTPS
- idea
- identità
- Identità
- implementazione
- importante
- in
- includere
- inclusi
- Index
- individuale
- informazioni
- Infrastruttura
- invece
- interezza
- interagire
- si interagisce
- interazioni
- interessato
- interoperare
- sicurezza
- IT
- stessa
- Lavoro
- Le
- Tasti
- Genere
- grandi
- Cognome
- Guidato
- Consente di
- leggero
- Lista
- cerca
- perdere
- lotto
- rivista
- mantenere
- FA
- molti
- massiccio
- Mastodonte
- Media
- messaggio
- messaggi
- Metadati
- micropagamenti
- cambiano
- multiplo
- Muschio
- necessariamente
- New
- GENERAZIONE
- Nostr
- ovvio
- Vecchio
- ONE
- online
- aprire
- apre
- operare
- operatore
- Operatori
- Opinioni
- minimo
- i
- Altro
- complessivo
- proprio
- Di proprietà
- proprietario
- possiede
- Di passaggio
- pagamenti
- Persone
- persona
- cronologia
- immagine
- pezzo
- piattaforma
- Piattaforme
- Platone
- Platone Data Intelligence
- PlatoneDati
- possibilità
- possibilità
- Post
- Post
- potenziale
- prevenire
- prevenzione
- Precedente
- un bagno
- chiave privata
- problemi
- promozione
- prova
- corretto
- protocollo
- la percezione
- chiave pubblica
- chiavi pubbliche
- reazione
- Realtà
- motivi
- ricevere
- ricevuto
- ricevente
- recente
- raccomanda
- riflettere
- Indipendentemente
- pertinente
- sostituire
- richiesta
- Risultati
- ritorno
- Correre
- running
- stesso
- Scala
- schema
- senza soluzione di continuità
- vedendo
- sequestrare
- Server
- servizio
- condiviso
- Corti
- segno
- Signal
- firmato
- simile
- semplicità
- semplicemente
- contemporaneamente
- da
- singolo
- So
- finora
- Social
- Social Media
- piattaforme sociali
- soluzione
- Soluzioni
- alcuni
- qualcosa
- lo spazio
- specifico
- specificazione
- Steam
- Ancora
- Fermare
- conservazione
- Tornare al suo account
- memorizzati
- forza
- La struttura
- strutturato
- inviare
- sottoscrizione
- tale
- suppone
- sistema
- SISTEMI DI TRATTAMENTO
- TAG
- Parlare
- parlando
- condizioni
- I
- loro
- cosa
- cose
- tre
- Attraverso
- timestamp
- a
- oggi
- top
- Totale
- trazione
- delle transazioni
- Le transazioni
- TURNO
- Tipi di
- in definitiva
- uso
- Utente
- utenti
- utilizza
- APPREZZIAMO
- verifica
- Visualizza
- svuotamento
- ricercato
- debolezza
- Che
- se
- quale
- while
- whitelist
- OMS
- chiunque
- volere
- senza
- Lavora
- sarebbe
- scrivere
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro