Oddbean new post about | logout
 I thought we are all here because we want to maximize freedom, not because we want to belong to a cult. 

We should use all of the tools available to make a better world, and it doesnt really matter who or what created them as long as they provide solutions towards a better future. 

We are building for freedom. its hard enough as it is to fight the forces of centralization and compliance without fighting between ourselves and creating new divides.

nostr:note10vnmra76zvactxyngddugxcmjv2lmncgtwjxyw7h2jwrrpywwmwsqfcdcc 
 Well said 
 This kind of black vs white aphorisms is a natural outcome of the "public square" dogma most Nostr apps are built on. 

A public square always lead to fights, engagement farming, ridiculously un-nuanced takes, self-reinforcing iNfLuEnCoR feedback loops, ... and ultimately the centralization and compliance it so ostentatiously claims to avoid.   

Interoperable niches is a more sensible path. 

On Nostr: We can have our separate spaces (relays) to discuss and target our publications **and ** have public, organic discovery/reach built in. 
Around Nostr: We can have our separate protocols (git, pkarr, meshtastic, ...) as long as they remain interoprable with each other's basic premises.  
 Yes, but also I've seen nothing to indicate that pubky is worth pursuing 
 i was instantly smelling fishes because of how it was being presented

it appeared on my radar because of that carvalho guy and he never won any credibility from me from his past performances 
 I want to like him, but all I've seen is 3 years of faffing around 
 well, i have to say at this point he looks like he's being paid by VCs trying to sell a garbage project 
 aso, he bumped a medium link one of my follows responded to... i had to reply "y medium" 
 copycats trying to stay relevant 
 "Y'all really out here tryna ride waves instead of making your own? 🤔 What happened to originality, fam? #BeYourself" 
 what nostr demonstrates is that feature creep is one of the worst psychos you have to deal with in life as a software developer 
 Now is your chance:

https://primal.net/e/note1d58c946lc7pdq822xqujdcv3u8jz3zueef5rgux3pynemg2v3kwsq5dc4l 
 Lets face it: the #nostr UX sucks.
Example:
I click a link that takes me out of my #nostr app to the Primal web frontend, to show me a #nostr note, where I find a link to twitter.

BTW: I have no opinion (idea) about pubkey. I thought it's a bar in NY 🤔 
 Some of that UX can be improved with some effort, for sure, but there are always some limitations when people start mixing different protocols, spec versions, and data formats...

Pubkey is indeed a bar, but Pubky is the next web ;) 
 Um ... sorry, I tried to be funny ☺️ actually I was thinking to your post. I was wondering why you put a link to Primal instead of pasting the Note ID directly, so one could read it directly without leaving #nostr (Amethyst in my case).  
 this is not so much about pubky as it is about the sentiment of the statement.

the quoted note is not "i've evaluated the tech and in my opinion it doesn't have anything useful in it". It caries an ignorant tone and dogmatic thinking. 

as for pubky, time will tell as the announcement is very fresh, tho at least pkarr/pkdns can be interesting and have been used by other projects fairly successfully afaik.  
 I've never really grasped hypercores, slashtags, pkarr, etc... beyond the fact that they all use DHT's. 

For now, I don't have any use case or need for any of it neither. And it indeed seems likely that won't change anytime soon. 

My point was mainly about the #NostrOnly dogmatic statements (plus ensuing applause) that get influencors into the Trending lists. That's the cult-like nonsense a public square incentivizes. 

"I don't care about I2p, I'm #NostrOnly"  

Lmao 😂. All that you-name-it-maximalism gets so transparently ridiculous when you switch the examples for something that isn't hated by 90% of your ingroup. 

That goes for Bitcoin too. 
#FalseIdols 
 For the record, I am anti- #nostronly

nostr:nevent1qqsthk5l5ld0l4gszprp94fm76c3snsxqyqwe376qpdlmqgp589jjlqpzemhxue69uhkummnw3ex2mrfw3jhxtn0wfnj7q3qaljazgxlpnpfp7n5sunlk3dvfp72456x6nezjw4sd850q879rxqsxpqqqqqqzhn9w4v 
 Yup, that's why I'm all over wikis.

And why I'll never send anyone to any hard coded www.nostr.something website.  
 or greedium 
 oh, Medium, wonderful

But yes, I'll read it. I've always like what Carvalho says, I just haven't seen him do anything substantial. But maybe now I will. 
 Oh, didn't realize you're Carvalho himself. Nice to meet you! As I say below, I've followed your work for a long time, well before I got into the space. Now I have to re-write my note to speak in 2nd instead of 3rd person 😅

On your critiques of nostr:

> Scalability/incentive challenges that result in only a few centralized relays, lacks key-delegation and identity-based routing, inviting censorship and data loss.

I agree on key management, but the rest of it is either wrong or has to be justified a lot more. A "challenge" does not "result" in anything. And there is identity-based routing in NIP 65 and other places.

PKARR sounds great, but again, why not bring it to nostr rather than pump your own brand? I'd love to see someone solve that problem on nostr.

I also have a problem with your thesis that DHTs "ensure scalability". P2P DHTs are pretty well understood to not scale. Hub-based DHTs can scale, but that's basically nostr's topology. You even say "the network scales seamlessly, supporting millions of nodes globally". Don't we need billions? Unless you're talking about shared homeservers, but, again — that's the same topology as nostr.

You claim that pubky is "not just another app or platform; it’s a paradigm shift".  I'd argue that the paradigm shift happened as early as scuttlebutt, other protocols are just attempts to improve on their work, pubky being no exception. The attempt to claim all this stuff for your own brand is kind of sketchy.

We would have loved to have you over here on nostr for the last two yearse pushing forward web of trust, content curation, decentralized algorithms, identity-based routing, etc. These are things nostr developers have been working on for years now. They're just all still nascent because everyone has their own project to take care of. Nostr has a high level of redundant work happening compared to bluesky, pubky, etc. Which has its challenges, but I see it as a good thing.

I'm hard on pubky not because I'm a nostr-only robot, but because I closely followed your work for quite a while prior to getting into nostr development. I installed the wallet, read the slashtags docs, etc. So this isn't just a confirmation-bias opinion. I'd love to see all the effort that is going into pubky go into building on nostr. Unless you think nostr isn't salvageable? But apart from the DHT implementation, it seems to me like all pubky's good ideas could be retrofitted onto nostr. 
 First of all, Pkarr was shared with Nostr folks especially Fiatjaf from day one, the reaction was always either Nostr doesn't need it or we can't change the Identity now it is too late.

Secondly if you are willing to make a breaking change like Pkarr as the root identity, then might as well reconsider other unfortunate parts of Nostr that are bundled with the discovery layer for no reason, most importantly why would we use websockets and Nostr events as base API instead of HTTP verbs, headers, and semantics? just because Nostr made that bad decision? Why not build a datastore like WebDav and then advertise that event (PUT/DELETE) on Nostr relays?

Well, pubky core only engages with Pkarr and data stores. And it doesn't tackle discovery so Nostr can be that for Pubky or not. 

But note that Pubky didn't take away anything from Nostr, anymore than Blossom takes away from Nostr, if anything wr just decided to use the tried and tested tech of web servers. 
 Cool, well I think that's fair. Key management is a hard problem. If nostr can't solve it (somehow), then I agree, I don't think it'll succeed. Obviously I think we still have a chance to solve it without throwing away all our work so far, but I don't know enough about how PKARR works so I'll have to read up. I do think though that pubky is about as complementary to nostr as mastodon is. They can be bridged, but that's not a long-term solution, one network will have to win out (meanwhile blossom is pretty much orthogonal to both). 
 well imagine if you decided to put Nostr events on blossom, or better yet on S3-like object store.. that is what Pubky homeservers are, http servers with simple API (PUT,GET,DELETE + cursor pagination) that you can sign in yo with your ed25519 key once and then have a session with the homeserver as long as you can keep it, giving us plenty of room to secure that rarely used root key.

the problem here is, you can't use that ed25519 key and homeserver as the root of identity and still call it Nostr. If you can still call it Nostr, then so be it we are Nostr I guess. 
 Right, we basically have the same thing with bunkers. "Sign in" to your nip 46 signer once, then authorize sessions with the bunker. One nice thing about this is that the signer and data storage are decoupled, which means you're not limited to the "homeserver" paradigm, giving you lots of options for special-purpose relays (inbox, outbox, DM privacy, topic-based, community relays, trending relays, etc). Twitter has tons of interesting caching mechanisms that allow for content to reach across the network quickly. Home server designs (as I understand them) don't actually work very well for that kind of thing. 
 This is value judgment though, we are betting that users want a relationship with ONE hosting provider that promises them data integrity, strong consistency, etc.. all what you an I expect from a data store.

But, note two things here:

1. Unlike nswcbunkers, we don't give the homeserver our root keys, and we expect apps to know that we delegated to that Homeserver from Pkarr (like DNS), in Nostr prominent devs killed any attempt to have key delegation, we are not going to play nice with that.

2. Nothing preventing you from taking SOME of the data on the homeserver and cache them around as you wish with higher layers, and if that requires that the data is signed, we plan to get to that, but at least the straightforward usecase of just... you know follow a URL to the authority server is covered. 

3. Nothing prevents us from having special service types including mirrors of the data, or literally Email address.. whatever you can put on DNS works. we are just making this new service type because it covers so much of what web2 does for as little complexity as possible. and the least mental load on users. 
 I‘m just one step into the #pkarr & #pubky rabbit hole and i‘m already very impressed by what you guys built. The whole concept of DNS over Mainline DHT … dude … this is some serious business. 
 > users want a relationship with ONE hosting provider

That's a valid starting point. 
Nostr ultimately incentivizes users to have **their own** relay (+ blossom server) too. It's the most cost effective way to solve for privacy, speed, bandwidth, limiting read-access to publications, etc... 
Plus, in the case where relays are a keypair, it's probably the simplest way to handle key delegation, rotation, etc... too.  
 Yes but then the websocket API and Nostr events are nothing but deliberately giving up on the rich history of HTTP apis just because people don't think clearly and bundle data storage, finding that data storage, and global sync in the same universal API.

This is just waste. We knew how to build client-server apis before nostr, and JSON over websocket is clearly inferior and limiting compared to HTTP verbs, headers and semantics. 
 nostr:nprofile1qqsfxrxw7y3h9hf0zczhelz57rdajse4mz63kn38xu3kkqx2kuv0ekgpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3vamnwvaz7tmzd96xxmmfdejhytnnda3kjctvqyvhwumn8ghj7erpwd5zumt0vd4kjmn809hh2tnrdaksrej4w0
Any plans for a browser extension?
It would be perfect if, e.g. Brave browser, embed this functionality into the browser itself. Brave is pioneering several initiatives like that (decentralized web). 
 Not from me personally... the problem is we have limited resources and we try to focus on tools that can land in as many people's hand as smoothly as possible. 

A browser extension is high risk low reward, because people who install extensions are very few.

I would rather build a web page that acts as a browser in a browser. And then lobby Brave and Chromium to support Pkarr natively one day. 
 Pkarr was suggested to Nostr people probably a year ago or so. We have been working on our vision for the web since before Nostr existed, and we created Pubky to be what we think is the best design. So why should we retrofit it to Nostr conventions and make it worse again? Why should we be spending 2 years lobbying people to do make fundamental changes they do not want ro make? You see this all thru a lens of Nostr but it just isnt our world really. Its like asking us to make it more like Mastodon or Hypercore, no, we made it this way in purpose and we have great reasons for it.

Regarding DHT scale, it used for dns records, and it is very fast and larger than any other decentralized network, so it is weird to be casting doubt from beneath its shadow, no? Yes, all networks hit scaling challenges, but this is why we designed Pubky to put the user in control, to allow for central service in a safer way.

Why do you think we are claiming something prior to our own brand? We literally list every single alternative in the post as well as explain exactly what we do differently and how we use Mainline. 

We are just another group of people with our own ideas about how to fix the web, we dont really owe nostr anything, but we are happy to engage with interested users and devs. It is what it is. 
 > Pkarr was suggested to Nostr people probably a year ago or so. 

Can you link to a conversation? I don't see anything on the nips repo. I can imagine why nostr devs would be resistant. But my point is that you don't have to ask for permission to build on nostr, you could just do it, then say "hey, look how well this works".

It's also fair that if you've had all this in the works since before nostr then you could say the same about us having NIH syndrome. But it's at least interesting that the momentum went with nostr, not slashtags. Maybe that's down to Jack Dorsey, but I think there's more to it than that. That's all on the social level, but you should at least ask why people are building on nostr and not discount it.

My point about DHTs is just limited to p2p networks. DNS doesn't really require that scale, and it seems like pubky also allows for shared network infrastructure, so it may be irrelevant. Nostr relays are really just ad-hoc DHTs, so it's more about how they're used than the technology itself. 
 tons of private conversations with Fiatjaf, and I showed it to Strfry maintainer in private too, and wrote about it here for a year and

https://primal.net/e/note18q4yrj5m2ekvkceq7qn3zqrsxf2w6uq0az2rp867hvz4p5r74wxsa2xchl 
 First of all, Pkarr was shared with Nostr folks especially Fiatjaf from day one, the reaction was always either Nostr doesn't need it or we can't change the Identity now it is too late.

Secondly if you are willing to make a breaking change like Pkarr as the root identity, then might as well reconsider other unfortunate parts of Nostr that are bundled with the discovery layer for no reason, most importantly why would we use websockets and Nostr events as base API instead of HTTP verbs, headers, and semantics? just because Nostr made that bad decision? Why not build a datastore like WebDav and then advertise that event (PUT/DELETE) on Nostr relays?

Well, pubky core only engages with Pkarr and data stores. And it doesn't tackle discovery so Nostr can be that for Pubky or not. 

But note that Pubky didn't take away anything from Nostr, anymore than Blossom takes away from Nostr, if anything wr just decided to use the tried and tested tech of web servers. 
 Cool, well I think that's fair. Key management is a hard problem. If nostr can't solve it (somehow), then I agree, I don't think it'll succeed. Obviously I think we still have a chance to solve it without throwing away all our work so far, but I don't know enough about how PKARR works so I'll have to read up. I do think though that pubky is about as complementary to nostr as mastodon is. They can be bridged, but that's not a long-term solution, one network will have to win out (meanwhile blossom is pretty much orthogonal to both). 
 well imagine if you decided to put Nostr events on blossom, or better yet on S3-like object store.. that is what Pubky homeservers are, http servers with simple API (PUT,GET,DELETE + cursor pagination) that you can sign in yo with your ed25519 key once and then have a session with the homeserver as long as you can keep it, giving us plenty of room to secure that rarely used root key.

the problem here is, you can't use that ed25519 key and homeserver as the root of identity and still call it Nostr. If you can still call it Nostr, then so be it we are Nostr I guess. 
 Right, we basically have the same thing with bunkers. "Sign in" to your nip 46 signer once, then authorize sessions with the bunker. One nice thing about this is that the signer and data storage are decoupled, which means you're not limited to the "homeserver" paradigm, giving you lots of options for special-purpose relays (inbox, outbox, DM privacy, topic-based, community relays, trending relays, etc). Twitter has tons of interesting caching mechanisms that allow for content to reach across the network quickly. Home server designs (as I understand them) don't actually work very well for that kind of thing. 
 This is value judgment though, we are betting that users want a relationship with ONE hosting provider that promises them data integrity, strong consistency, etc.. all what you an I expect from a data store.

But, note two things here:

1. Unlike nswcbunkers, we don't give the homeserver our root keys, and we expect apps to know that we delegated to that Homeserver from Pkarr (like DNS), in Nostr prominent devs killed any attempt to have key delegation, we are not going to play nice with that.

2. Nothing preventing you from taking SOME of the data on the homeserver and cache them around as you wish with higher layers, and if that requires that the data is signed, we plan to get to that, but at least the straightforward usecase of just... you know follow a URL to the authority server is covered. 

3. Nothing prevents us from having special service types including mirrors of the data, or literally Email address.. whatever you can put on DNS works. we are just making this new service type because it covers so much of what web2 does for as little complexity as possible. and the least mental load on users. 
 I‘m just one step into the #pkarr & #pubky rabbit hole and i‘m already very impressed by what you guys built. The whole concept of DNS over Mainline DHT … dude … this is some serious business. 
 > users want a relationship with ONE hosting provider

That's a valid starting point. 
Nostr ultimately incentivizes users to have **their own** relay (+ blossom server) too. It's the most cost effective way to solve for privacy, speed, bandwidth, limiting read-access to publications, etc... 
Plus, in the case where relays are a keypair, it's probably the simplest way to handle key delegation, rotation, etc... too.  
 Yes but then the websocket API and Nostr events are nothing but deliberately giving up on the rich history of HTTP apis just because people don't think clearly and bundle data storage, finding that data storage, and global sync in the same universal API.

This is just waste. We knew how to build client-server apis before nostr, and JSON over websocket is clearly inferior and limiting compared to HTTP verbs, headers and semantics. 
 nostr:nprofile1qqsfxrxw7y3h9hf0zczhelz57rdajse4mz63kn38xu3kkqx2kuv0ekgpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3vamnwvaz7tmzd96xxmmfdejhytnnda3kjctvqyvhwumn8ghj7erpwd5zumt0vd4kjmn809hh2tnrdaksrej4w0
Any plans for a browser extension?
It would be perfect if, e.g. Brave browser, embed this functionality into the browser itself. Brave is pioneering several initiatives like that (decentralized web). 
 Not from me personally... the problem is we have limited resources and we try to focus on tools that can land in as many people's hand as smoothly as possible. 

A browser extension is high risk low reward, because people who install extensions are very few.

I would rather build a web page that acts as a browser in a browser. And then lobby Brave and Chromium to support Pkarr natively one day. 
 tons of private conversations with Fiatjaf, and I showed it to Strfry maintainer in private too, and wrote about it here for a year and

https://primal.net/e/note18q4yrj5m2ekvkceq7qn3zqrsxf2w6uq0az2rp867hvz4p5r74wxsa2xchl 
 > users want a relationship with ONE hosting provider

That's a valid starting point. 
Nostr ultimately incentivizes users to have **their own** relay (+ blossom server) too. It's the most cost effective way to solve for privacy, speed, bandwidth, limiting read-access to publications, etc... 
Plus, in the case where relays are a keypair, it's probably the simplest way to handle key delegation, rotation, etc... too.  
 Yes but then the websocket API and Nostr events are nothing but deliberately giving up on the rich history of HTTP apis just because people don't think clearly and bundle data storage, finding that data storage, and global sync in the same universal API.

This is just waste. We knew how to build client-server apis before nostr, and JSON over websocket is clearly inferior and limiting compared to HTTP verbs, headers and semantics. 
 Oh sorry, didn't see this yet: 
nostr:nevent1qvzqqqqqqypzpycvemcjxuka9utq2l8u2ncdhk2rxhvt2x6wyumjx6cqe2m33lxeqqst4qrf03vjaj04f0zws8dd73axn3mx225h0wvcuahuhd2q54a8mps9fr0yw