NIP-19: Entità codificate Bech32
NIP-19 definisce formati facili da leggere per condividere identificatori Nostr. Queste stringhe codificate in bech32 vengono usate per visualizzazione e condivisione, ma non vengono mai usate nel protocollo stesso, che usa hex.
Come funziona
Le chiavi hex grezze sono soggette a errori di copia e visivamente indistinguibili. La codifica bech32 aggiunge un prefisso leggibile dalle persone e un checksum, rendendo chiaro quale tipo di dato si sta guardando e intercettando molti errori di copia.
Le forme di base codificano un singolo valore di 32 byte:
- npub - Chiave pubblica (la tua identità, sicura da condividere)
- nsec - Chiave privata (da tenere segreta, usata per firmare)
- note - ID evento (fa riferimento a un evento specifico)
Esempio: la pubkey hex 3bf0c63f... diventa npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6.
Le forme estese usano la codifica TLV così possono trasportare relay hint insieme all’identificatore stesso:
- nprofile - Profilo con relay hint
- nevent - Evento con relay hint, pubkey dell’autore e kind
- naddr - Riferimento a evento addressable con pubkey, kind, tag
de relay hint
Perché è importante
I relay hint non sono autorevoli, ma spesso decidono se un client può recuperare un evento condiviso al primo tentativo. Per questo nevent, nprofile e naddr sono di solito formati di condivisione migliori rispetto a valori note o npub nudi, quando il contenuto vive fuori dall’insieme corrente di relay del destinatario.
Un’altra distinzione pratica è la stabilità. note punta a un singolo event id immutabile, mentre naddr punta a un evento addressable che può essere sostituito nel tempo. Per contenuti long-form, calendari o annunci di repository, naddr è di solito il tipo di link corretto.
Note di implementazione
- Usa bech32 solo per interfacce umane: visualizzazione, copia e incolla, codici QR, URL
- Non usare mai i formati bech32 nei messaggi di protocollo, negli eventi o nelle risposte NIP-05
- Tutta la comunicazione di protocollo deve usare la codifica hex
- Quando generi nevent/nprofile/naddr, includi relay hint per una migliore individuabilità
- Tratta
nseccome materiale segreto ovunque. Un client non dovrebbe mai mostrarlo per impostazione predefinita, registrarlo nei log o includerlo nelle esportazioni di supporto
Fonti principali:
Menzionato in:
- Newsletter #1: NIP Deep Dive
- Newsletter #3: December Recap
- Newsletter #3: Notable Code Changes
- Newsletter #4: Relay Hint Support
- Newsletter #8: Damus iOS
- Newsletter #11: notecrumbs
Vedi anche: