Oddbean new post about | logout
 what would make it decentralized? 
 If anyone could be a relay in a useful way, without permission.

Anyone can be a relay without permission. But no-one else will use their relay without in a useful way. Thus relays are centralized.

To fix this, among other things, nostr needs to find a decentralized spam control mechanism. This _can't_ be based directly on Lightning, as Lightning can't directly prove a sacrifice of funds because it can't prove that a payment actually happened.

You could use lightning for an indirect proof of sacrifice though, eg aggregating multiple parties in a merkle sum tree under a BTC proof of sacrifice. 
 You are confusing "decentralized" with "distributed". 
Nostr does not attempt to be distributed. It's a bad idea to begin with. 
It is enough for it to be decentralized.  
 Nostr is not decentralized. It's kinda like a federated system. But the federation scheme isn't well integrated. 
 I don't think you truly understand how it works. 
It is not a federation if I, as an individual, can decide how that "federation" is shaped.  
 Nope. You are using that term totally wrong in this context.

A federated system is a system like email, where individual users use the system though a centralized entity of their choosing. Nostr is closer to that model, due to how relays work. You choose the relays you use, and other users also choosing to use those relays can communicate with you.

But it's not a very good federated system, as that aspect isn't made clear. So a lot of functionality is in practice centralized, as it only really works if everyone uses an overlapping set of relays. 
 There is one key difference though -- unlike email, a single message can be relayed by many different servers without loosing its uniqueness. As in... decentralization, you know?  
 What you're describing is redundancy, which email also has. Not decentralization. 
 Mmmm... no, it's not the same. 
I can send an email from different SMTP servers, but messages not coming from the "right" SMTP are nowadays mostly discarded. 
And even during the times when that used to worked the recipient couldn't verify its authenticity. 
And even if that really worked today then I won't be able to receive replies unless I submit myself to centralization (single point of failure, the postmaster.) 

See? You don't understand how it works.  
 The majority of clients now (although not the ones with most users) are using the "outbox model" (also misleadingly known as "gossip model") which mean they will connect to any rogue relays they think they can find notes from -- so if I'm publishing to wss://pyramid.fiatjaf.com/ and you follow me then your client will connect to that even if that is not in your "relay list" (even the idea of a static "relay list" is an antipattern in my view).

This means anyone can actually run a relay and that relay will be useful and used.

How to find out which relays each person is publishing to is the hardest part and not straightforward, but in practice using NIP-65, NIP-05 relay lists and relay hints in events works well enough, and there are many client libraries that do it automatically.

You can reverse this pattern for other use cases, like mentioning people and replying to their posts in a way that they will see your stuff even if they don't follow you (NIP-65 specifies this) and do other variations for other use cases. 
 Incidentally that also solves the spam problem: for following people you don't have to worry as you'll only fetch stuff from people you follow. For spam on "global" timelines and in reply to other people's posts, you can easily limit your read to relays of a certain kind that provide some form of anti-spam control, and each relay can implement different techniques, some may use Lightning, others may use closed whitelists, others AI-filtering and so on. 
 Nostr clients that utilize indexers for content display - like Primal - are even better at surfacing content from “long tail” relays. Anyone can run a low-powered obscure relay. As long as the relay is included in the NIP-65 or NIP-05 relay list of a single nostr user, that relay will be indexed. You can totally run a relay on a raspberry pi and have your content accessible by millions of users. 

Now, an argument can be made that this model introduces centralization at the indexer level, which is true. The good news is that anyone can run an indexer, and we are already seeing many indexers being stood up. I envision hundreds of indexing services with all kinds of configurations in terms of relay lists, event types and date-based pruning. 

The most encouraging part is that these different decentralization techniques are sprouting organically by people acting in their own self interest and without any central coordination. The core nostr protocol is solid and makes it easy to build these types of solutions. 

Therefore nostr decentralization is much better than it looks at a first glance. @pkt @niftynei 
 Thanks...still learning... 
 That's Sick! Love Primal, most fluid client out there for sure.  
 Why does spam control have to be "global"? What is spam for some people may not be for others and so on (although there are some things that are definitely spam for everybody). 
 The spam comment is nonsense and solved at the edges, no need for any lightning shenanigans.

The relay stuff you point to is already addressed by the outbox model, some clients just don’t implement it yet, but where it is it works great and removes the concept of “second-class” relays. 
 Is it feasible for a nostr app to become a simple relay in the phone? i.e. just help out with propagation of notes and then delete after shortly thereafter. 
 Edited:

Is it feasible for a nostr app to become a simple relay in the phone? i.e. just help out with propagation of notes and then delete shortly thereafter. 
 I don't think so, unless we're talking about a Nostr oriented VPN, because you would need an IP that can be reached by other clients. 
Or a protocol like Holepunch's Hypercore.  
 IPv6 which the advanced countries are now using on their cell networks gives every phone a public IP.  
 IPv6 suuuuuuuuuuucks 🖕🖕🖕 
 YYYYYYYYYEEEEEEEEEEEEESSSSSSSSSSSSSSSSSSSSS it does it does it does it does omfg it fkn does X.X

127.0.0.1 is home.
::1is cancer e.e

nostr:note1gd7kalkjf6wsqwehhtzzj4lweukf052dt25ru8af3xrf4yjl2r0snxxqnl  
 What problem do you have with it?  What ISP or VPN? 
 Administering it 🤢 
 Clearnet IPv6 is a whole lot simpler than IP4 IMO.  Right off the bat, there is no NAT nonsense.   The only annoyance I've had is that too many devices (like network enabled printers) only support /64 subnets.

The IPv6 mesh is even simpler.  The only thing you might configure are some remote peers (LAN peers are automatic). 
 Big Tech will never fully support IPv6 - IPv4 forces consumers to use centralized services.

I recommend IPv6 mesh VPNs like Cjdns, Yggdrasil, Pinecone.  Every device gets a permanent cryptographically authenticated IPv6 that is also mobile.   A SIP client can use the raw IP in the contact list - no need for telco, DNS, or TLS.

Where IPv6 is supported, the mobile IPv6 protocol (easily self hosted) lets an IPv6 on your net be anywhere that support clearnet (normie) IPv6. 
 Neat, i should look into it more. Probably won't get adopted until painfully late , like https.  
 Interesting. I was always under the impression it was the other way around. That linking a public IP directly to a device was potentially a privacy problem and that it was more private to access the Internet through a NAT. 
 Ok forget it I didn't read the whole thing 
 For clearnet IPv6, that could be an issue.  But just as with IPv4 - use a VPN if you want to obscure your IP.  The Linux IP6 stack will listen on a stable IP, but make outgoing connections on a random one that changes periodically.   So at least that obscures which machine on the LAN is making to connection. 
 Got it thanks 
 How about decentralized relay discovery algorithms? We can use what is already used in torrent. For example, "relay exchange". Just modify the clients to automatically subscribe to relays of followed users. 
 Regarding spam, I think it is sufficient to auto-block posts from users reported by users I follow. It is a local spam filter. Relays should stay dump pipes of JSONs. 
 Don’t use inferior solutions
¯\_(ツ)_/¯