🚨 PROPOSED SPAM SOLUTION 🚨

Please read, I think this works. Between the ** is a reference from Primal, this is important context for what comes next.

*****

OK to begin, I noticed that Primal.net/explore lists the following categories of nostr users from the perspective of my pubkey…

1). Follows - accounts you follow

2). Tribe - accounts you follow + your followers

3). Network - accounts you follow + everyone they follow

4). Global - everyone on nostr

Breakdown of the numbers (for me) is as follows

1). Follows = 290

2). Tribe = 1,800

3). Network = 17,723

4). Global = 505,671

*****

Now “Global” or “Universe” is always prone to spam, because new pubkeys are very cheap and a spammer can easily automate the massive creation of new spam accounts. This has happened several times this year and many of the Global accounts are just one-time-spam pubkeys.

Primal’s category of “3). Network” is much more nuanced and may actually be self correcting.

Network, as defined by Primal is everyone I follow plus everyone they follow. My network is 4% of nostr, but I can grow or trim my own network by following more people or unfollowing people.

If someone in my network starts following spammers and spammers get into my network, I can simply unfollow that original follow pubkey, you can prune your network to cut out all the spam. This is self policing and encourages people not to follow spammers, or they will likely be unfollowed en mass.

Even if a spammer created a sophisticated network of pubkeys all with lots of fake follows and followers, this spam network would not bisect with my network unless one of my followers started following the spammers. If this happens, I can instantly fix this by simply unfollowing the fool in my network.

I think this works at unlimited scale and is actually very very simple. It is an example of an emergent system. A simple set of rules that cause complex higher order results.

The only drawback is genuine new humans finding their first follow. But they should be able to do this outside nostr, as it’s a 1 time kick start to their nostr keys gaining traction in the main network.

Have I explained this clearly enough to follow?

Would a couple of social graph pictures help?

Reply to this note

Please Login to reply.

Discussion

I guess what I am saying is that my network of 17,700 pubkeys, as defined by Primal, should act as a whitelist.

There are 18.5k active users on nostr.

Your network is basically all of nostr.

Since accounts can be hacked or otherwise turn spammer, maybe there could be a warn before unfollow function, so you get 48h or sth to unfollow. Or unfollow, but automatically refollow when follow unfollowed spammer.

If keys get hacked there’s no recovery.

But I see what you mean, eg someone I follow gets hacked and turns spammer?

What about a 24hr block?

I log in and see 5 people have temp blocked me? Huh? Maybe someone I follow has become a spammer?

Lots of nuance that could be added, but the simplest rule set is to serve a whitelist of all my followers followers.

Everyone would have a unique whitelist and they would shift organically all the time.

It would also promote good behaviour within the network. Potential loss of reach for bad behaviour.

Especially in the beginning, to keep momentum, I do also not want people to be too careful with who they are following.

I think it is a good procedure.

Kinda quarantine with a notificação for the follower of the spammer.

I noticed that there is a lot of spam lately, maybe this solution would solve the spam problem.

How would note responses from your follows follows follows/followers be treated? Would you see those in threads?

Lots of difference ways handle some of the edge cases, but this feels like a very easy and available whitelist rule that requires zero setup from the user, and yet it would allow 99% of all your desired traffic to be served with 0% spam.

That’s a game changing signal / noise boost.

It’s also self organising so it scales to infinite capacity and aligns motivation of good behaviour on the network, it allows users to quickly sever any spammers that break into their network tree.

I like the idea, but it could be that the "edge cases" here are not quite so easy to handle. Part of the way social networks work and grow is in allowing users to discover new people. If you don't think carefully about discovery from that perspective, you might end up killing that feature. Granted, spam is also a big annoyance, so trading off slightly less reach for less spam may be a worthy trade.

If you imagine a point cloud (social graph) of users, then the main network would be connected with follows and spam accounts would be atomised satellites.

If the spammers created a fake network of fake accounts and follows then it would be a separate cloud.

If the spammers bridge into the main network, then the main network would respond by unfollowing people who follow spammers until the spammers are ejected from the main network / point cloud.

New users would start as atomised satellites, but finding a human or someone to follow you is fairly trivial because you only have to do it once at first entry.

Spammers would soon give up targeting nostr, and the tolerance level would relax during times of low spam and increase during spam attacks.

But most of all, the whole thing is self policing and self correcting which means it can scale infinitely and is not restricted by moderator resources, or rigid rules.

It solves spam, but the price is

- No one ever sees new users’ posts.

- New users can’t see anyone else’s posts.

- Existing users can’t see posts from anyone outside of their network.

I can’t support this.

I mean, if someone wants to make a client like Primal that can hide notes from outside of your network, fine, but lets not make that part of the Nostr protocol.

🤔

I enjoy the configurable nature of nostr:npub1wnwwcv0a8wx0m9stck34ajlwhzuua68ts8mw3kjvspn42dcfyjxs4n95l8 messenger.

Tired of spam? Reduce degrees of separation.

Want to explore? Head further from your network.

cc nostr:npub1yaul8k059377u9lsu67de7y637w4jtgeuwcmh5n7788l6xnlnrgs3tvjmf