Oddbean new post about | logout
 Two major problems with WoT relays:

 - cannot find brand new nostriches 
 - if just one person in the network follows spammers, it's ruined for everyone 

This is just a very preliminary idea, much more building blocks are required  
 nostr:naddr1qqxnzde38q6rwwph8qcrvdpjqgsp9usvvmfude4hlxc3w0cwjx6a6ssacemadc7qajcwc0ezrjm4v5srqsqqqa28kq00zs 
 One of the many reasons "follow" should not be the sole metric of "trust". It's extremely crude and will not get us where we need to go. 
nostr:nprofile1qqsw2feday2t6vqh2hzrnwywd9v6g0yayejgx8cf83g7n3ue594pqtcpz4mhxue69uhk2er9dchxummnw3ezumrpdejqzythwden5te0dehhxarjxgcjucm0d5q32amnwvaz7tmjv4kxz7fwd4hhxarj9ec82csvvl4vs 's approach is miles ahead  
 To your point, here’s the current summary of my approach:

1. Decide what question you want to answer.
2. Select sources of raw data that are 1) available to you and 2) relevant to the question.
3. Translate raw data into a format suitable for consumption by the grapevine algo.
4. Crunch the numbers.

Suppose the question is to maintain a list of nostr users who are not bots. In step 2, you may decide that follows (and mutes, and zaps) are the best sources of CURRENTLY AVAILABLE data, so those are what you use today. But if tomorrow a better source of data becomes available, you can throw that in the mix to improve the quality of the end result. And you can use multiple sources of data at the same time: no need to pick and choose. But you can and probably will do is to adjust the relative weights you give to each data source. So as your new sources of data become more and more available, you may want to decrease the “weight” you attribute to follows gradually towards zero.

And indeed, as more sources of raw data become available, you may decide you want to alter the question from step 1. Not because you didn’t previously care about that question, but because you simply didn’t have any relevant data to work with. This, too, can happen gradually. 
 can find them - they are in the reject list

one person follows a spammer only their followers are affected and only to the degree the WoT algorithm in use weights single connections 
 I think a “weighting” system needs to be developed. Where a trust score is aggregated, and specifically a “mute” and “spammer” tag are taken as negative scores. Then basically anything neutral or above 0 is shown to the user. This would mean you still see new people as long as your WoT doesn’t label them as spammers or mute them. Then obviously if someone you follow reposts them or likes something, then you see it as well. Maybe engagement of some sorts should be considered a positive to the scoring? 🤔

Obviously easier said than done, but I think a combination of things will be the best result in the end. Testing to see which has the optimum of “still sees new things, but sees extremely few spammers” will just take time.

Best thing would be to have a spammer tagging system so that the WoT shares a defensive spam pool. Because I know we ALL spent time muting and reporting the same “reply guys,” probably 1000s of times. 
 This is over complicated.  Make a button to block new accounts that is not older than .. X (User choice)
Solved 
 I disagree, it sounds complicated but it would really be 3 things:
• did someone in your WoT mute/mark as spam?
-1
• does someone in your WoT follow?
+1
• did someone in your WoT repost, like, or zap?
+1

Could literally be that simple. And all this info is basically being pulled together anyway. Spammers will naturally end up with negative scores very quickly. 
Likes or shares could defend against someone just being a tool and calling someone a spammer because they disagree with them. 
And new accounts/posts with no connection to your WoT won’t be hidden by default, they will simply have a score of 0/neutral. 
 Just for reference, I think this is literally only 1 additional data point to what Coracle is already doing with their little WoT score next to the name. And I’ve seen first hand how useful that thing is 
 The only thing is, you need to vet someone first before including them in your circle, or in someone else’s circle.

Perhaps create a filter that allows you to mute someone who is posting frequently in a short period, like 5 posts per minute over the last 10 minutes (user customizable). This way, it wouldn’t be a blanket block 
 You can filter new nostriches by PoW (NIP 13, i think). Higher difficulties for newbies, lower difficulties, or even 0, for those in the WoT. This way, new nostriches only need to spend a little bit of CPU until they get into the WoT. 
 So, i was tinkering with the WoT relay and NIP-13. So events are accepted if they either are from someone in the WoT, or they have a NIP-13 tag with PoW difficulty above a configurable amount. Thsi way we can have both newbies and people in the  WoT. (A shame not all clients implement NIP-13, i think this combination of PoW and WoT is a great way to avoid spammers)

I think i made it work. so i'll be testing it tonight, and if nothing goes wrong i can submit a PR by tomorrow (unless you don't want to mix NIP-13 with you WoT, then i can keep it in a separate codebase) 
 Most people aren't using pow, so it can't be hard coded in, but if you make a configuration option that could be cool 
 it only checks for Pow if:
1- The event is not from the WoT
2- The NIP-13 tag "nonce" is present.

People in the WoT are not checked for PoW.

But it still configurable, so you can just turn it off. 
 Awesome look forward to it 
 The grapevine algorithm addresses the scenario where just one person follows spammers, because it takes more than just one follow to boost someone’s grapevine WoT score all the way from 0 (the default) to 1. 
 My apologies if I followed any spammers... OR the horror! What if I'M the spammer! 😬😱