changed 5 years ago
Linked with GitHub

Share Context Protocol

We have a way to discover shared governance frameworks and engage on them. One particularly useful time to do so is when you establish a new channel with another DID, and need to identify or verify each other.

Note: The core thing I'm trying to get at is to give Alice the ability to ask "Who the heck are you?" in an interaction. Maybe the protocol could be titled "new_did_who_dis". :)

EDIT FROM DANIEL: While this is an important goal, I feel like we're thinking about it too narrowly. We need to be able to ask for context; that's more than just who's behind the DID. It might be "I know you're Alice, but are you talking to me as my doctor, or my sister?" Or like a bank saying to the person who walks through the door, "How can I help you? Are you a customer, a janitor, an unscheduled auditor, or stranger who wants to enroll? Once I know, I'll decide whether I need your name, and what other proof of identity might be appropriate." It also might be "I know you're my acquaintance Alice, but are you wanting to interact with me to recommend a movie or to sell me your condo? I have different trust standards for those two contexts" It might even be "I know you're my academic colleague Alice and that you want to engage with me on the 'Publish a Paper' protocol, but are you expecting me to be in the 'author' role or the 'co-author' or 'contributor' rolebecause that will change which personal info I'm willing to disclose to you." Which governance framework we use is part of the context, but so is a goal, the protocol, and the roleand those are more primary, while the gov framework is derivative. I've written a spreadsheet to explore how this complexity manifests and what we might do about it. It is here: https://docs.google.com/spreadsheets/d/1hnU4xBcROTjlGEFZ3oYBtHpmhGrIgwXS83TERMwjzLc/edit?usp=sharing. I believe it is largely compatible with the kernel of what follows; it just introduces some additional ideas to make the rest of the context flow as well.

Invitation to Engage

{ "@type": "/share_context/0.1/request", "purpose": "Human Readable Statement of Purpose.", "goal_code": "", "governance_framework_uris": [] }

Questions

  • Is there an indication of role, or portion of the framework that the invitation applies to?

Example 1

Bob prepares an OOB Invitation with the following message:

{ "@type": "/share_context/0.1/request", "purpose": "Verify basic identity.", "goal_code": "", "governance_framework_uris": [ "https://example.com/path/email_control.json", "https://example.com/path/well_known_did.json" ] }

Alice scans the OOB Invitation. She choses to engage on the email_control governance framework, and after DID Exchange beings to engage as dictated on that governance framework.

Example 2

Bob prepares an OOB Invitation with the following message:

{ "@type": "/", //details of presentation request }

Alice scans the OOB Invitation. Before she engages in the presentation request, her Agent is configured to verify the verifier.

Alice's Agent sends a message that looks like this:

{ "@type": "/share_context/0.1/request", "purpose": "Verify basic identity.", "goal_code": "VERBASICID", "governance_framework_uris": [ "https://example.com/path/email_control.json", "https://example.com/path/well_known_did.json" ] }

Bob responds as described in the well_known_did framework, providing Alice's Agent with information she can verify to identify the verifier.

Alice is then prompted with a confirmation, showing who is requesting the presentation, and which presentation they are requesting.

Select a repo