Live data from Hacker News

Nostr is a stupid simple P2P protocol that works, built by builders

news.ycombinator.com

31–40 of 132 posts

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#31
post #4

Not saying this is the future, but something like it is. All of the core decisions here are solid (pub key identities, signed events, dumb relays). There are still features that many apps will need such as tying multiple devices to an identity, abuse prevention for relay operators, etc.

“All of the core decisions here are solid (pub key identities…” I agree, except for the bit about public keys as identities. I think public key identities are a step in the right direction, but there’s still a gap between that and what the ultimate solution is going to wind up being. We need to have some layer of indirection between user identities and public keys so that users can do things like rotate keys, have mu…

Is there a way to do what you're suggesting with identities? I don't think there is. How are you going to rotate keys without a master key?

And even if you're ok with the master key, the only way to solve this without centralized providers is with blockchains. A blockchain for rotating keys doesn't make sense.

But I do want to know if you're ok with a master key and subkeys that can be rotated.

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#32
post #19

Earlier quoted context omitted.

“All of the core decisions here are solid (pub key identities…” I agree, except for the bit about public keys as identities. I think public key identities are a step in the right direction, but there’s still a gap between that and what the ultimate solution is going to wind up being. We need to have some layer of indirection between user identities and public keys so that users can do things like rotate keys, have mu…

My vote is for extended keys, something based off HD Wallets: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawi... Easy rotation and recovery of individual keys, but you do have to protect your master seed. Nostr also supports user verification through DNS hostnames. https://github.com/nostr-protocol/nips/blob/master/05.md

How can you rotate that? No one knows the second key is related to the first. You still need to publish your second key somewhere along with an invalidation certificate for the first key.

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#33
post #3

Cool! How do you discover users to follow on nostr?

How do you discover users to follow on Twitter?

I doubt anyone has ever been successful into signing up on any social platform and just followed the big names that are suggested automatically at the beginning or based on some "key interests" you select.

But hey, if you want that, it's easy for a third-party website to grab a ton of public Nostr data and build custom recommendation lists and whatnot.

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#34
post #23
post #16

If everything goes through relays then is it really P2P? Why not even try to have a direct connection of any sort, such as WebRTC?

Is email p2p? Can you configure multiple relays like MX records for email? Can a receiver be its own relay? Relays are important for two reasons: peer discovery and communicating when one of the parties is offline. Same as with other p2p networks.

I mean, the pure P2P solution would be supernodes.

Edit: i RTFA. Sounds like relays can be run by anyone. That sounds p2p enough to me.

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#35
post #22

Earlier quoted context omitted.

A stupid simple message relay protocol can be used for stuff other than social media. OTOH websockets are hard outside the browser :(

Websockets are almost trivial now if you just use a library

Actually, websockets are trivial full stop. I implemented a web socket proxy in C in a day by reading the excellent RFC (sure, there's weird shit in there, but it's not hard).

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#36
post #30

So how does nostr propose to solve the problem where there is, in fact, quite a lot of content that you want to filter out, whether because it makes for a better experience for the people using this protocol to talk to each other, or because there are some pretty solid laws about things that various governments require people to filter out? https://abovethelaw.com/2022/11/hey-elon-let-me-help-you-spe... is a pretty d…

Unlike what OP says Nostr relays are not dumb, they can have their own policies and to me they look like a better version of Mastodon servers. They can have identities, "themes" and policies as they wish. On Nostr it's totally fine for one relay to only allow certain kinds of content and block everything else. Users can just connect to multiple relays if they want to read/write about different things.

What bugs me about it is their naivety to solved technical problems. For instance, they answer the question of “why this hasn’t been done?” with:

> I don't know, but I imagine it has to do with the fact that people making social networks are either companies wanting to make money or P2P activists who want to make a thing completely without servers.

Except it has been done. In fact, that’s literally what KaZaA was with its “superpeers”. And what they realized was that by making a semi-decentralized system, they just introduced the weaknesses of both systems (slow downloads via peer-latency and network limits + easy censorship by killing relays/nodes). In addition, this is exactly how IRC works, despite the fact that it’s mostly used with a few nodes these days.

I’m not against semi-decentralized systems. They’re great and help deal with some scalability problems; but they don’t solve for the number one issue most people moving to decentralized are seeking (anonymity, privacy and free speech), so it’s not fair to compare it to platforms/protocols that do offer those features.

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#37
So reading the github page this sounds basically like a variation on RSS.

There are a number of web servers that host content (either for free or for money) [called relays].

Clients download recent posts

Identity is based on public key, allowing users more control and the ability to easily change relays.

So is RSS + pubkey based identity the right way to think about this?

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#38
post #30

Earlier quoted context omitted.

Unlike what OP says Nostr relays are not dumb, they can have their own policies and to me they look like a better version of Mastodon servers. They can have identities, "themes" and policies as they wish. On Nostr it's totally fine for one relay to only allow certain kinds of content and block everything else. Users can just connect to multiple relays if they want to read/write about different things.

What bugs me about it is their naivety to solved technical problems. For instance, they answer the question of “why this hasn’t been done?” with: > I don't know, but I imagine it has to do with the fact that people making social networks are either companies wanting to make money or P2P activists who want to make a thing completely without servers. Except it has been done. In fact, that’s literally what KaZaA was wit…

I don't know about KaZaA but I remember it was very popular for a time, so it might have done some things right? What was its fate? Was it censored to death?

And I disagree very much that IRC is "semi-decentralized". IRC is completely centralized, it is just chat rooms on a server. You have to register on each server and each server has full control over its rooms and users.

Re: Nostr is a stupid simple P2P protocol that works, built by builders

#40
post #31

Earlier quoted context omitted.

“All of the core decisions here are solid (pub key identities…” I agree, except for the bit about public keys as identities. I think public key identities are a step in the right direction, but there’s still a gap between that and what the ultimate solution is going to wind up being. We need to have some layer of indirection between user identities and public keys so that users can do things like rotate keys, have mu…

Is there a way to do what you're suggesting with identities? I don't think there is. How are you going to rotate keys without a master key? And even if you're ok with the master key, the only way to solve this without centralized providers is with blockchains. A blockchain for rotating keys doesn't make sense. But I do want to know if you're ok with a master key and subkeys that can be rotated.

“Is there a way to do what you're suggesting with identities”

There are certainly solutions, but I don’t know what the best solution is, hence why I called it an open problem.

An example solution would be something like having your identity be a hash of your initial public keyset, making each key have a set expiration date, adding new keys by signing them with one of the existing keys, and then storing all of the rotation operations in a transparency log.

“the only way to solve this without centralized providers is with blockchains”

That’s not true; you probably want a transparency log, but that doesn’t require blockchains.

Post reply on HN