Why we need nostr?
Social media plays a big role in our online lives; it can be a source of information, a way to react to news and a form of communication. After the first steps of growing at all cost, social media apps needed to generate a return for investors through advertising, censorship began to increase.
As a result, we’ve seen a number of social media apps buckle under the pressure and start to censor content, whether it’s due to political pressure or an attempt to appease advertisers.
The censorship problem in social media is that many platforms are censored in some way or another. This can make it difficult for users to access information that they need or want.
This is where a new protocol Nostr come in, offering up a possible solution.
What is nostr?
Nostr protocol is an open source communications protocol that aims to create a censorship-resistance global “social” network.
The protocol doesn’t rely on any trusted central server by using several relays, thus it is more resilient. It is based on cryptographic keys and signatures, hence it is tamperproof and relays can be trusted for user data.
How nostr works?
User has a client, whic can be Damus, Anigma, Astral, etc. To publish something, you write a post, sign it with your private key, and send it to multiple relays (servers hosted by someone else or yourself). To get updates from other people, you ask multiple relays if they have any information about them. Users censored from certain relays can start their own relays and share data with one another to create a robust network for redistributing their content. Even relays don’t have to be trusted since signature are verified on the client side.
How to set up nostr
Nostr clients
The most popular nostr clients are:
- Anigma.io, a telegram like solution with public channels anyone can read/comment on.
- astral.ninja, a nostr web client with a twitter-like social network.
- Damus, a MacOS and iPhone app that supports a twitter-like social network and shows messages from channels.
Steps to use Nostr
- Create a private/public keypair using a nostr client like anigma.io, or to astral.ninja. The former will automatically create a private/public key for you. The latter will ask you whether you want to create such a key pair, and if you agree, it will create that for you. This is used as a ‘self-sovereign’ identity in the Nostr system.
- Save the private key: Once you have created a private/public key pair, you should keep or save the private key somewhere, and keep it secret ( think of it like a bitcoin seed). Best practice: You can save the private key in Alby plugin and the plugin will let you use nostr web clients without revealing your private key. Alby protects your private key from cross-site scripting attacks, which are a common security issue with web clients.
Note about key formats: Damus, anigma and astral use npub/nsec key format, while other clients use hex. To convert from npub/nsec to hex format, use this tool or the nostr-js library. - Add relays to client: It is important to have several relays for your data backup in case one of the relays is down. This will also improve your experience as some of the relays might be slow. Find the list of relays here: http://nostr.watch
- Create multiple keys if needed: The same key can be used on all nostr clients. If you want to create multiple identities or accounts, you can create new such key pairs.
- Update your profile: From the client Anigma and Astral, you could update your profile name, picture etc. Damus have not had that function yet
- Make posts: The client should also show you some posts by others. Also it should allow you to create posts, follow others. ( astral damus etc clients do allow you to follow others; anigma.io doesn’t since its like telegram and has a public chat rooms).
- Find users: Astral.ninja has a global feed where you can see posts by others. The page https://www.nostr.directory/ shows some of the more prolific users. The page damus.io/channels shows some of the more active public channels.
Note about key formats: Damus, anigma and astral use npub/nsec key format, while other clients use hex. To convert from npub/nsec to hex format, use this tool or the nostr-js library.