Whatās your main app right now? zap.store?
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.
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.
The influencer mindset is fiat.
Weāre going to chart a better way.
25 diamond šŖš»šš»
In the context of decentralized technology there is a lot of gaps to bridge, as they are all context-specific
What we lack on Nostr is effective consensus mechanisms. When we can achieve decentralized consensus, we can achieve everything else.
The foundation of a Web of Trust is lists. Lists are the building block. On Nostr, this is NIP-51, which is why we now have sets of lists, kind 30000.
Even a few hours ago Pablo and Fiatjaf were considering wiki relay list management with yet another NIP-51 kind, and Pablo noted how NIP-51 could become bloated, assuming I interpreted their conversation correctly. I believe this trend will continue until NIP-51 lists become the foundation of the protocol. Sets of lists was an important step.
The rest isn't easy, but it will be rewarding.
nostr:npub1u5njm6g5h5cpw4wy8xugu62e5s7f6fnysv0sj0z3a8rengt2zqhsxrldq3
Lists are the starting point. A proof of concept for curation of generic lists by your Grapevine with NO SINGLE POINT OF FAILURE already exists. What comes after lists? Graphs. Then more complex data models, which can be customized to the application or platform at hand.
One day, the nostr protocol will be curated by your Grapevine, at which point the nostr GitHub repo will become superfluous.
#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.
GM and PV to you and the world! š«
Corn beef, cabbage, and gonna be watching The Quiet Man āļø š„ with the fam
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 ā
habla.news is the nostr version of substack šš»
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.

