Starting to play with decentralized trust ranking in Spring v0.12. You can estimate, adjust and publish trust scores for other users - these are estimated from your recent interactions. image @rabble has been advocating the TrustNet as a web of trust implementation, useful for spam filtering etc. The algorithm has two steps - first, each user publishes 'trust assignments' - that's trust scores your can now publish with Spring. These are published as 10629 replaceable events with a list of 'p' tags and a score, typical size will probably be ~100 pubkeys. We provide an estimate based on past interactions, but it can't be precise - you may and should adjust it to match your actual relationships. The second step is that apps can download trust assignments of users close to your network (contacts, people you like/zap a lot etc) and run a calculation akin to PageRank, but it's not global - it's local to your network. The result will be several thousand pubkeys with non-zero trust ranks - a much wider network of users who could be trusted. This way the trust ranking is a) based on everyone's actual relationships, because you can adjust the trust scores you're publishing, and b) efficient and can be used by any app - it just needs to download several hundred trust score lists and run the trustnet algo periodically and store results in local cache. Spring only does step one at the moment. When enough people publish their trust assignments we will add the second step and let you calculate your own trust ranks. Spring will show the trust ranks under profiles, and will use it for spam filtering later. Other apps will probably find other uses for it. More on TrustNet here:

Replies (29)

I’m excited for this! Let me know how I can help test, although my Android device is out of commission at the moment. Also if you want to get in touch with cblgh I’m happy to make an introduction.
I will probably build a micro app just for publishing trust assignments and calculating the ranks so everyone could participate. And thanks, will definitely reach out if I need help!
τέχνη's avatar
τέχνη 2 years ago
No need for something like that. The Trustnet paper already provides human-meaningful labels. Brugeman, any plans to implement those labels to make ranking easier?
Sure - looks like a 5 point scale Trust weight (t) Semantic Human-meaningful label ---------------------------------------------------------- t == 0 no trust New person 0 < t < 0.25 low trust Acquaintance 0.25 >= t < 0.75 medium trust Friend 0.75 >= t < 1.0 high trust Peer t == 1 complete trust Partner
τέχνη's avatar
τέχνη 2 years ago
I see, but is it a drop-down menu i can choose from? Or does it just update the label when I slide the number? Could use more visual reflection in the bar too. Seeing those better reflected would help me a lot. Maybe others too
Remember these trust score lists are public. I am pretty sure everyone has at least one special person that will really appreciate that one extra point you can assing that takes them to the top.
Actually this could help - even if new person follows a couple connected users apps could use their trust ranks to filter the global feed and suggest more people to follow. This could make a difference!
Niel Liesmons's avatar
Niel Liesmons 2 years ago
If you can estimate these ratings based on public behaviour, why not publish them anyway and let users adapt them if they like?
There are labels to the right of the profile name - Friend/Peer/Partner/Acquaintance/New person, it changes if you're dragging the slider (on the screenshot above). People questioned whether it's intuitive... I'd say never mind, the issue is too minor without the actual use or feedback atm.
There is no algo that would give results matching your real relationships, without making people adjust the values we'll get garbage-in garbage-out trust ranking.
τέχνη's avatar
τέχνη 2 years ago
I’m thinking about actual use fwiw. I remember @Sirius had this in Iris version 0.1 and it was overkill. So he switched to just “friend or not friend” and when you follow someone it just assigns the friend for you. Maybe there is a happy middle ground though. Can I just select what they are without thinking about numbers? Remember MySpace “Top Friends”? Analysis paralysis haha
With an approach of 'each client publishes trust assignments then clients calculate trust ranks' private follows can be handled - your trust assignments would give non-zero values to privately followed users (if you so wish) and then others would use that info. Ofc if you want to keep your trust assignments 'private' that won't help. Onboarding for new users is already a problem and requires some input from them - 'topics' etc, some seed from which we could work. Any seed will inevitably lead to some 'preferred' profiles, whose trust assignments can be used to calc trust ranks for this new user and show them something 'trustworthy'. As for bootstrapping trust for new users - this has always happened naturally, through friend (someone invited you to join right?) or through genuine organic interactions (new user interacts with others and they reply and some trust is passed). But organic interactions take time, and also on Nostr it might simply be too costly to organically outpace bots that will try to gain trust the same way. That's the only place where I think PoW makes sense, also trust-bootstrapping services, or OpenTimestamp (onchain tx) with non-trivial fees spent (or a burn - but that's wasteful). Link to trust assignments note: View quoted note →
FORGIVE MY RANT … but I see TrustNet as little more than a glorified popularity contest. A less qualitative (measurable and meaningful) ranking system may actually be more valuable. Here are some random thoughts: On qualifying relationships: - people don’t want to rank the “quality” of their relationships. ITS HARD!! - people especially don’t want to come back AGAIN to update these scores (or even add scores for new friends). It will NEVER happen on a regular basis!! (Srsly?) - Qualitative scores reflecting the “depth” of ones relationship (acquaintance, friend, peer, partner) by definition need to be updated as one’s “perception” of the relationship changes. - If keeping these qualitative scores updated is required for the success of this trust ranking system, IT WILL FAIL to hold value for its intended purpose. On trust as a numeric scale : - The descrete 100 value scale underpinning this “qualitative” score is not only ridiculous (nobody knows or cares about a 100 value scale) and meaningless (the increments as applied will still be arbitrary) it could also be detrimental for a trust ranking system. - Trustworthiness is not a scalar value. Humans don’t have “more” or “less” trust for each other. We either “do” or “do not” trust each other in specific cases. Because of this, ranking on a scale is prone to misinterpretation. - What translates well to a scale is popularity. “If my friends trust X (or if X has a bigger voice and reach) then I will give X a higher trust score.” Problem with this is that the value no longer represents individual trustworthiness. On quantifiable measures of trust : - Quantitative measures can be used to determine trust. They don’t ALL have to be algorithmically derived. A mix of Hand reported and computer generated data may work best. - Digital identities may have “layers” of trust (distinct from physical interactions) that may be applied “each on their own” (in no particular order) to determine trustworthiness for specific interactions. - One layer of digital trust may be verification of personhood. For some transactions, a real person is required. - Another layer of digital trust may be verifying asset ownership. Is this the same entity that “owns” X, Y, or Z known digital assets? - Another layer of digital trust may be verifying originality. Does this account pretend to be somebody else and if so is it obviously a spoof? (This may be accomplished best by actual humans) - Other layers of trust may exist, may be discovered, and may be applicable for web of trust implementations. For this reason, any NIP developed should be open to expansion. - Web of trust COULD be determined by discrete “flags” being applied (by humans and by algorithms) to a profile. Each verifies a specific known and measurable quantity. Together they “add up to” an overall “verified” or “trusted” visible mark (one or three different marks?) applied to profiles. TBD. We really should be discussing this in earnest (openly, but in a dedicated format). Decentralized WOT implementation will NOT ONLY be a prime differentiator for Nostr from other socials, but will ALSO be essential for Nostr’s success as a social network that is NOT overrun by bots and bad actors. Thanks. #rantover
Thanks. With respect, I do understand. As it should be, trust is relative. Rankings in “my” web of trust will be different than rankings in yours. We can talk about how this should be implemented (I’d be honored to be included) but this doesn’t change my base arguments: 1: “quality of relationship” is HARD and (at best) will not be updated by people. Certainly not en mass. 2: “trust as a numeric scale” will likely NOT reflect an individuals “trustworthiness”, and may in fact be misleading if presented as such. 3: quantifiable (even if some are relative to each user) and non linear (discrete variables that stand on their own) measures of trust can be used to achieve our goal. They might be numerous (and some undefined as yet) but they can be “easily understood” and because of this can be “trusted” by everybody to mean what they promise to mean. Forgive my random thoughts. Wd love to converse more formally in this topic. How Nostr implements WOT may in fact be its downfall or it’s saving grace. Thank you.
@rabble @brugeman Here is a simple idea that could incorporate TrustNet and other WOT filter implementations. As per my rant above, I believe a “parent NIP” that defines an consistent UX and API (of sorts) for WOT filters (in clients) would be the best choice moving fwd. here’s a “top view” of how that could play out:
ManiMe's avatar ManiMe
Imagine Webs of Trust (WOT) with me: This is how Nostr will fend off bots and bad actors. Your “trusted” follows (and possibly their trusted follows) will comprise your personal trust network. It will be your WALL from which undesired content can be avoided and new friends can be included. #followed < #trustworthy < #trusted - “Trusted” accounts will be relative to your account, and always chosen by you. Any account can be marked as “trusted”. - “Trustworthy” will be suggested by your “WOT filters” which will be configureable on your profile. (And extended by NIPs) - “Followed” will be your baseline (as it currently is) for accounts “of interest”chosen by you. - “Recommended” accounts (that you do not follow) MAY be available for you to consider for following or trusting, based on your WOT settings. In the end your WOT filters will keep YOU in charge of your own web of trust. This will determine the accounts that you interact with AND the accounts that YOUR followers see as “trustworthy” or “recommended”. QUESTION FOR YOU: #asknostr What “filters” would YOU like to have for “trustworthy” or “recommended” accounts to be suggested?
View quoted note →