X Browser Extension and Trusted Circles - Request for Comments

Background

As many of you know I am constantly thinking of ways to bring Intuition to social media, and I especially would love to see Intuition integrated into my typical X.com browsing experience. The large user base and proximity to thought leaders, current events, and engaging discussions makes it ideal for data flow into the Intuition network and vice-versa.

The Challenge

While it would be nice if we could simply look at the number of positions on a claim (in addition to the total market cap), the ease with which position count can be faked makes it a near-useless data point. Unfortunately, market cap on a triple also is a weak signal since any whale can skew the data heavily.

This leaves us with the “trusted circle” style of displaying claims: for any given user the UI should NOT show total market cap for a claim nor even include the weights / positions of people OUTSIDE of the trusted circle, or if positions outside of the trusted circle are displayed / counted then they should be deprioritized (eg not counted for sorting, or given lower weight). Additionally, given the small trust circle for a new user any dapp should consider including one extra hop (total 2 hops) between the INNER trusted circle and their own trusted circle (OUTER trust circle).

The good news is that if a user follows 50 people and those 50 people follow another 50 then you’re talking a much larger reach through which to display claims to the user. We can approximate the strength of a claim for user Alice in the following manner:

  1. Alice has a stake on the claim:
    highest certainty (you can weight by stake amount if you’d like)

  2. Alice’s inner trust circle has a stake on the claim:
    Alice’s trust for inner circle * their stake on the claim (you can add them all up, deduplicated)

  3. Alice’s outer trust circle has a stake on the claim:
    Alice’s trust for the inner circle * their trust for the outer circle * their stake on the claim

This is an oversimplification and IMO the algorithm for calculating weight can vary from dapp to dapp. That is outside of the scope of this discussion since it is surmountable.

The Hard Part: New Users

When a new Intuition user downloads the extension… how will we decide which claims to show a user with an empty trust circle? Most importantly how do we do this in a decentralized manner? This is where I am asking for feedback.

There are a few strategies that could work, and perhaps the best strategy will be a mix of them:

  1. Community-curated list: considering the Multivault contract allows a user to stake on 50+ claims we could have a community-voted list of Intuition addresses to follow with a triple. Whether it’s “I - follow - someuser.eth” or “I - trust - someuser.eth” doesn’t matter to me, but if we could offer an initial list of “trusted” people then that would help new users bootstrap. We could even have different lists for different interests. I have seen triples on the network that seem to be experimenting with something like this already.

  2. Dapp-curated list: theoretically a dapp could offer a list based on who they think are the most accurate or reliable people on the network. Unfortunately this creates a major centralization issue.

  3. List based on X.com data: if the user has an X account then perhaps we could leverage that to pick the most RELEVANT Intuition accounts for the user to follow. Most likely we would get a list of all the X users that they follow (most will not be on Intuition) and suggest Intuition accounts WHO HAVE MADE THE MOST CLAIMS ABOUT THOSE X ACCOUNTS. Essentially, this would be the fastest way to populate the data for the user so that they don’t see a bunch of empty data. There are some caveats that we’d have to consider, like can someone game the system by just making comments about popular X accounts so that they get recommended to everyone? Will the weight of their claims on the relevant accounts be taken into consideration? There are a lot of strategies that this could be done with but we’d always have to make sure there isn’t too much of a centralization issue nor that it can be gamed. I will be investigating this a lot in the coming weeks.

Also, we can show addresses who have X accounts that the user follows. For most new users this may be an empty list, though.

  1. Maybe we could show a bunch of users and their claims / opinions on important or controversial topics so that the user can find accounts who fit their world view.

Regardless of how an empty trust circle is populated, since claims will likely be weighed by the user’s trust signal towards their trust circle members, we will likely keep the staking amounts low and recommend that the user stakes larger amounts on the accounts THEY select going forward since those will be manually chosen by the user. Essentially, we want any chance of centralization via the initial list to be drowned out by the user’s own choices going forward. Luckily we can do this easily with Intuition.

Adding New Addresses to the User’s Inner Trust Circle

For a good user experience it would make sense to get the user to quickly start adding more accounts to their inner trust circle. This begs the question of how to encourage the user to keep building up their network:

  • Present other addresses who are making similar claims (including similar direction)
  • Indicate which X users in the feed have Intuition accounts and add an easy “follow” button. Since it will be part of an actual Tweet the user can get an idea of the user’s stance / personality based on what is written in the Tweet. This does beg the question of how to get other Intuition X users into each other’s feeds in the first place.
  • What else? Would love some more ideas here.

Conclusion

I think these mechanics can work well but the few weak points are the following:

  1. How performant will the queries be for claims from a user’s inner AND outer trust circles? I know we can pre-compute inner and outer trust circles along with their respective weights, etc but how performant will it be to weight individual claims for only positions from this pre-approved list of addresses (especially if we’re talking thousands of addresses). Also, how to weigh outer-circle vs inner-circle

  2. How to give new users a good first experience where they actually see some claims?

  3. How to encourage users to add more people to their trusted circle?

I would love your guys’ feedback on this. Optimistic? Pessimistic? Ideas on some of the pain points?

BTW here is a rough idea of what the extension would look like. Here it is with the sidepanel open, and you will also notice the “18” number on the user’s avatar which the extension adds to the X.com UI to signal that there are claims made about that user

PS I’ve also been thinking that if we can get analytics on which X.com users people are browsing then we could nudge Intuition users to make claims about those specific X.com users. I figure probably 1000 X accounts probably get 99% of the engagement so we should target making claims about those 1000 X accounts

1 Like

We are definitely generally thinking about things the same way - raw # of attestors or amount of TRUST staked is a crude signal, and the issue with current social media - although it DOES WORK TO SOME EXTENT, as proven by existing, botted social media! But I agree that it is fundamentally flawed, and things need to be weighted by ‘Trust Circles’ - hence my introduction of the Trust Circle idea. The crudest, most simple, most computationally conservative approach to this general concept, IMO, is just using ‘follows’ as a proxy for ‘who you trust’, and then showing only the expression of the people you follow… But the opposite end of the spectrum of complexity is definitely where we want to strive to get to, since it is objectively more optimal… To address your 3 questions:

  1. The performance of these queries will be dependent on the DB type used, but I think it can be done in a way that is manageable; in V3 of intuition-rs, we have the ability to stream data to databases of any type - the first database being added is Surreal DB, a multi-modal DB that should handle this well; though I think a dedicated graph DB will likely be the most performant for something of this nature. For the weighting, I believe the ultimate state is weighting claims based on the degrees of separation from the observer and the attestor - i.e. 1 degree of separation away = 100% weight, 2 degrees of separation away = 50% weight, 3 degrees of separation away = 25%, etc. etc. → with the actual %’s TBD (just using these as an example) - wherein degree of separation is based on whether or not the observer ‘trusts’ the attestor (i.e. 1 degree of separation away = the attestor is in the observer’s Trust Circle for this respective context (and you can multiply these weights by how much relative TRUST the observer has staked on each attestor within that Trust Circle). Although this, in my mind, is the ‘best’ approach, we can do something less computationally intensive and more rudimentary, but following similar patterns, to ‘get by’ in the meantime.
  2. Both Option 1 (Community-curated lists’) and Option 3 are compelling to me. For Option 1, since Trust Circles are inside of the knowledge graph, users could equip OTHER USER’s Trust Circles to weight the data → for example, if I trust Vitalik Buterin in the context of Crypto, and Vitalik Buterin has a Crypto Trust Circle, then I could equip his Trust Circle to weight the data → we can extrapolate this concept out to ‘default perspectives’ that could be equipped for users when they first onboard. And, Trust Circles also are not 1-1 to users → so, the ‘default perspective’ could be ‘the top 10 most trusted people in this context’s Trust Circle for this respective context’ (since you can filter these Trust Circle attestations by attestors). Option 3 feels quite compelling to me as well, though, since I can see a very clear path from this to the user then putting their X social graph into the knowledge graph as a Trust Circle - and getting the user to perform some action is likely more valuable then letting them ‘free ride’ on existing Trust Circles… would just then need that extra step or reason for them to go from the ephemeral ‘X social graph weighting’ to ‘creating data on Intuition’ → maybe this is just a ‘1-click mass import your X social graph to Intuition to start having claims weighted based on their attestations’, etc. → though Option 1 is likely much more compelling than Option 3 at the beginning, when most X users are not also Intuition users, and Option 3 could leave you with sparse data…
  3. I think the feedback loop for getting people to ‘want’ to add users to their Trust Circles is pretty inherent → their feeds get better, their filtering gets better, they can make money from doing it, the counterparty gets a nice feeling / reputation boost from them doing it, etc. etc. - and I think it is very important to have that immediate feedback loop of ‘things getting better’ be VERY VISCERAL → for example, on Tik Tok, if you like a few things of a specific type, your algorithm QUICKLY changes to start showing you things of that type - and so you get that immediate feedback loop of ‘ah, if I LIKE THINGS, the algorithm understands me better and starts giving me the things I want! So I will continue to ‘like things’ to curate my algorithm!’ But, these things aside, I think adding some additional mechanisms to get people to ‘want’ to do this, however, small, could be beneficial → such as a ‘Share my Trust Circle’ button that users could then post to X, to give them the opportunity to easily express ‘who they trust’ in a specific context, or other things of this nature.

Important topic, so happy to keep riffing here!

I’m wondering if there could be some value to me still releasing the extension as-is without the “trust circle” functionality. Maybe once we start using the functionality we will start to see patterns that give us more insight. It would be really nice if we could get the initial view for a new user (ie no trust circle) to at least provide compelling data… then we could start using the user’s own browsing / claiming patterns to start INCREMENTALLY adding the “trust circle” functionality.

Edit: We could even start off with a filter that ignores claims under 1.00 TRUST amount (as an example). Also, if the UI doesn’t make the total market cap a huge factor (it’s only used in sorting) then maybe gaming via spam positions (w/ low staking amount) won’t actually yield much results and may not be worth the hassle. All we have to do is keep the “global” view valuable while they build up their network… but that also means that we need to encourage them to build up their network

Edit #2: the more I think about it we CAN show the global view when a user first starts off… we’ll just add some heuristics to drown out most of the bad signals and as long as we get the user adding people to their trusted circle quickly then I think this is a compelling app.