Nostr

// Censorship resistant speech

Contents

Operator! Get me the president of the world!

Protocol

Nostr (Notes and Other Stuff Transmitted by Relay) is a protocol attempting to share messages in a decentralized (un-censored) fashion. Identity in Nostr is just public/private key pair. Clients create messages and sign them with their private key and then post them to relays. What is the goal here? Well, we have messages which are really easy to validate and really hard to censor. One thing which nostr is not attempting to create is consensus like bitcoin. No part of the protocol event dictates that the relay services talk to each other. If a user cares that their message gets out there and isn’t ever censored, they should blast it to a bunch of different relays.

Nostr uses the Schnorr signatures like bitcoin. By convention, the keys are usually tossed around in bech32 formatted strings to help us humans. This convention is defined in NIP-19. The NIP includes the example the hex public key 3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d translates to npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6. Like bitcoin, the cleartext prefix can dictate what information is stored in the string. npub is a user’s public key.

So you want to share your nostr public key somewhere so people can message you? NIP-21 defines a URI scheme for apps to use, pretty straight forward with nostr:. I am seeing web+nostr out in the wild, but not sure why the web+ is being added in this case. It is mentioned in the html spec for URIs, “Effectively namespaces web-based protocols from other, potentially less web-secure, protocols.”.