Nostr.Band

Nostr Trust Rank

Google has Page Rank that works really well on an open web ecosystem. It allows one to prioritize content that gained more recognition from the members of the network, and is quite robust to abuse, including sybil attacks.

Nostr.Band uses similar approach to prioritize high-quality content, we call it Trust Rank (many others have used the term, so it's not a big deal, just a name). It is very similar to Page Rank, and allows us to ignore fake followers, likes and comments from spammers that wish to boost their content.

The meaning of Page Rank is roughly this: a web page with higher Page Rank has higher probability of a random surfer landing on that page. Random surfer is a hypothetical web user that randomly clicks on links that it finds on the web. Another interpretation would be - higher Page Rank means higher probability of getting random user's attention.

To calculate it we build a directed graph of nodes (pubkeys and events) and edges (pubkeys mentioned in events, events tagging other events). We then assign initial weights to pubkeys assumed to be more trusted, hence the trust in the name of this. For now, trusted pubkeys are ones with nip05 from a good provider (some are not so good, and are blacklisted). We then use iterative approach to let the weights flow through the network and get distributed among graph nodes.

The beauty of Page Rank is that it's robust against many types of abuse (attempts to artificially boost some content). If initial weight is given to a spammer by some accident, they are most likely loosing it all by the end of the calculation, because almost no one interacts with their content. If someone builds a bot farm and manages to get some 'links' from valid network participants, all the rank passed by these links is divided by the size of the farm - so sybil attacks are defeated.

Our search results don't show anything with zero trust rank. Our stats page names events/profiles with non-zero trust rank as 'high-quality'. Our relay wss://relay.nostr.band does not serve zero-trust-ranked events to clients (unless specifically asked for them). We use it all over this place.

We plan to publish our trust ranks over an API, if you're interested - reach out. We encourage other community members working on content aggregation to explore this approach. It worked for an open wild web, might as well work for Nostr.

To discuss this, contact artur@nostr.band on Nostr.