Avatar
david
e5272de914bd301755c439b88e6959a43c9d2664831f093c51e9c799a16a102f
neurologist and freedom tech maxi Co-founder @ NosFabrica šŸ‡ Grapevine, šŸ§ āš”ļøBrainstorm

Do you have a WoT solution in place?

Baby steps! šŸ˜‚

I’m working on a guide for devs to incorporate the Grapevine into any given nostr app or platform of choice. Something like this:

Step 1: use the follows list to calculate a WoT score. Several apps already do this, and I applaud them for doing it: coracle, wikifreedia (although I’m not sure if it works yet?), others I probably don’t know about.

Step 2: Enable users to create EXPLICIT TRUST ATTESTATIONS, formatted using the Grapevine protocol which will make it interoperable with other apps, using a Context that is appropriate to the app in question. Example: Alice trusts Bob to curate wikifreedia articles in the category of electronics. (Could also enable the ability to attest using the parent Context: Alice trusts Bob for all actions, in all categories.)

Step 3: pool attestations from Step 2 with follows list. The plan is to phase out the use of the follows list, but do it gradually.

Step 4: Replace the WoT score with the Influence Score using the Grapevine’s algorithm. This is how my proof of concept works (Curated Lists in my Pretty Good Apps desktop) but I need to write up a document.

Why do this? Because WE GOTTA STOP USING THE FOLLOWS LIST AS A PROXY FOR TRUST. It’s a fiat crutch that we have leaned on for too long!

Web of trust fixes this ā„¢ļø

After lists comes graphs: Decentralized Curation of Simple Graphs, DCoSG. Why is this important? Because we need to organize wikifreedia categories into a hierarchy, with parent-child relationships. Smartphones is a sub-category of electronics, that sort of thing. Who’s gonna organize the graphs? Your web of trust.

"Decentralization includes no top-down decision of what **categories** should or shouldn't exist."

EXACTLY!!

To generalize further: Decentralization includes no top-down decision of ANY of our digital tools of communication. That includes lots of things, categories being but one of them.

How can web of trust curate a list of categories? DCoSL, that's how. Decentralized Curation of Simple Lists.

https://pgf.tech

https://github.com/wds4/DCoSL

nostr:note1dx6x7grt5f7nm9pmz4796rkjlznuxafcmfmhf5e9rhgwc4sd9kpsucyug3

I could flag Shawn as trustworthy to curate the list of mints; he flags one or more other users, and so on; the Grapevine calculates a trust score for each user in this context, and I’ll quickly have a list of the people who know this industry inside and out. Those will be the people who manage the list of mints for me.

This would be a great application for the Grapevine. Your Grapevine will enable you and your community to identify the most trustworthy users to help you curate your list of mints.

#100aDayUntil100k

#100aDayTil100k

#100pushups

I forgot my push-ups yesterday so today I did 50 x 4 today. No way I could have done 50 at one go when I started!

Day 45-ish šŸ˜ āœ”ļø & Day 46 āœ…

The purpose of the Grapevine is to enable your WoT to curate information for you in a manner that has NO SINGLE POINT OF FAILURE.

NONE.

I don’t understand how to use NIP 32 because I don’t know how namespaces are supposed to work. I need an example.

Is there supposed to be an endpoint at ontology.coracle.social?

#100aDayUntil100k

#100aDayTil100k

#100pushups

40 regular + 10 fingers + 20 diamond + 20 regular + 10 regular

Day 44 āœ…

Ok, to communicate the problem at hand, I need to describe a bit about how the Grapevine works. Your Grapevine will calculate an Influence Score for every user of interest in your local database, one score for every context. Every Influence Score consists of several scalar values: the Average Score, which is an estimate of the value of your opinion or skill in that context, and the Certainty, which is a number between 0-100% and reflects how confident my Grapevine is in that Average Score. Suppose my Grapevine produces a high Average Score for some user in some context. If that score is the result of one attestation by someone whom I don’t know personally and my Grapevine also doesn’t know we’ll, my Grapevine might calculate only 5 % certainty in that Average Score. But if that score is the result of 10 independent assessments, each from a highly trusted source, then my Grapevine may calculate, say, 80% certainty in that score. If 10 goes to 100, maybe 95% certainty; if 100 goes to 100k, maybe 99.9% certainty; and so on.

The key word in the above paragraph is ā€œindependent.ā€ How do I know that I am obtaining 10 independent assessments? Suppose 10 highly trusted people tell me that their Grapevine tells them that Bob deserves a high score. Is that 10 independent attestations? Maybe not. Maybe those 10 people are passing along the same bit of information from the same hidden source. This is the price we pay for doing what we did in the previous post, which is to hide our source of information for a controversial topic. We want to hide our sources of information, but we don’t want to fool ourselves that we have independent sources of information when we in fact have only one.

So here’s where I intuit that ZKPs might have utility. I’m not sure how exactly we would use them. We’re probably going to have to build the first iteration of the Grapevine and validate that it works the way I believe it will work.

To get the Grapevine off the ground, I’m considering sponsoring a hackathon, the goal of which would be to incorporate the Grapevine into one or perhaps multiple nostr platforms and apps and validate the basic idea. So right now I’m researching how to lay the groundwork to make that happen.

My intuition tells me that ZKPs are going to be useful, although how precisely to use them is hard to say without having a working Grapevine for all of us to play with. The first iterations of the Grapevine will be used for non controversial purposes, will not use ZKPs and will not hide trust relationships. Once we see how the Grapevine works in those scenarios, I think various strategies will present themselves for how to deal with controversial scenarios. The first strategy that comes to mind: Alice trusts Bob in some context (eg to curate content or render opinions in some controversial category), creates an attestation to that effect, but she does not publish her attestation; she simply stores it locally to be used by her Grapevine as it processes content from lots of contributors and spits out a series of wikifreedia articles on Controversial Topic X.

I can benefit from Alice’s trust attestation of Bob indirectly in several ways. One method: I query Alice’s Grapevine with a request to give me her Grapevine’s list of recommended wikifreedia articles on Controversial Topic X. That way, I benefit from her trust relationship with Bob, without the need for that trust relationship to be made public.

We still haven’t used ZKPs yet but in my next post I’ll describe a problem which I intuit might benefit from ZKPs as part of the solution.