Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add didcomm usecase #100

Closed
wants to merge 6 commits into from
Closed

Add didcomm usecase #100

wants to merge 6 commits into from

Conversation

OR13
Copy link
Contributor

@OR13 OR13 commented Aug 14, 2020

Addresses: #97


Preview | Diff

Copy link
Collaborator

@philarcher philarcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Orie, looks good to me.

@jandrieu I'm happy with this BUT I really want it to be merged after you've looked at, and I hope merged, the one that sets up the use case/req matrix. I'll need to add in the hooks so that the reqs from this are also defined and added to the system.

Copy link

@dhh1128 dhh1128 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

index.html Outdated
</p>

<p>
Some examples of problems solved by DIDComm-based protocols

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the goal for having these examples? I'm trying to understand why these ones were selected, and particularly the last two. Random or was there some goal in picking these ones vs. others?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I picked them for variety. The obvious ones about issuing and proving are in the list; the rest are just examples of how to solve interesting problems.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also wanted some examples that implied or used the "service" data model in the did document... because we think its fundamental to communication.... in other words, didcomm is one of the strongest reasons to define services from an interop perspective.... this is relevant since there is discussion about their privacy implication / removing them.

@TelegramSam
Copy link

I like this.

Copy link
Collaborator

@jandrieu jandrieu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, this is more a note about DIDComm than it is an example use case describing the value created for an individual. DIDComm, per se, is not a requirement, it's a solution.

Can we get this adjusted to tell a single, simple example of a human getting value out of using DIDComm?

@OR13
Copy link
Contributor Author

OR13 commented Sep 3, 2020

@jandrieu the text links to several use cases, but I agree it might be simpler to provider a single one.

Before I attempt a PR to address your concerns, I need to understand the parameters for use case inclusion.

A use case for an email address, is that you can send an email from one email address to another.

By analogy, a use case for a DID is that you can use DIDComm to send a message from one to another.

In my view, the value to an individual of having an email address, and a DID is similar, if they both support secure communication.

Is secure communication a sufficient use case for inclusion?

Would I be required to describe how MX Servers are used here, or is saying "secure communication" enough?

I worry that a use case like "secure communication" is actually the wrong direction to take this, given that there are multiple ways to accomplish that without didcomm.

Similarly, "Single Sign On" can be accomplished for a DID without proving control over one... I can use a did as an id_token subject, and use okta/auth0 +2fa for example....

Would you be in favor of a "Secure Communication" use case, even if it currently only covered DIDComm?

@agropper
Copy link

agropper commented Sep 3, 2020 via email

Copy link
Collaborator

@philarcher philarcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I admit my initial "this looks good to me" comment was made in great haste and with little thought (basically 'cos I trust @OR13 who, unlike me, actually does know this technology) Thanks @jandrieu for being more assiduous and making me look again.

Sorry folks but I don't think this use case should be included in this document at all. It provides use cases for DIDComm, not DIDs. Now, one can argue that DIDs need DIDcomm to be useful. But that's not what this doc is about. We need to show uses specifically for DIDs, not any of the other components of the ecosystem the community is building.

As a close analogy, it's been something of a struggle to make sure that the UCs require DIDs and not VCs.

Sure, you could rewrite the use case here to require a secure communication channel - but does DIDcore cover that? If not, it's out of scope for the UCR.

Sorry :-(

@OR13
Copy link
Contributor Author

OR13 commented Sep 4, 2020

@philarcher @jandrieu if did core supports keyAgreement (authenticated encryption) then did core supports secure communication :)

https://w3c.github.io/did-core/#keyagreement
https://w3c.github.io/did-spec-registries/#keyagreement
https://github.com/w3c/did-spec-registries/blob/master/contexts/did-v1.jsonld#L49

We could describe "Secure Communication" as any use of KeyAgreement for communication, that would allow us to cover DIDComm and Encrypted Data Vaults as solutions.

If I take another stab at this as "Secure Communication" where:

1

"Alice users keys in her DID and keys in Bobs DID to derive a shared secret which she then uses to encrypt messages for Bob, that only Bob can decrypt"

2

"These secure messages are the building block for Encrypted Data Vaults and DIDComm"

3

Summary of DIDComm + Links to relevant specs...

Would this meet the criteria for inclusion? If not, can you comment on which numbers need to be dropped or modified?

@agropper
Copy link

agropper commented Sep 4, 2020 via email

@philarcher
Copy link
Collaborator

Hmm... I wonder whether we actually already have use cases that require DIDcomm but that such a requirement is not made explicit. For example, we have the Encrypted Data Vault UC (courtesy of DB and Transmute). And I think most if not all the UCs talk about verifying signatures etc. So maybe a way forward might be to define a 'new' requirement for a secure transport mechanism? If that works for you, then maybe you can add to the JSON object defined from line 1534 onwards in the Editor's draft and then see how these are referenced in, for example, line 360. If the magic works, doing this will create new entries in the tables in sections 3 and 4.

WDYT?

@OR13
Copy link
Contributor Author

OR13 commented Sep 6, 2020

@OR13 to review https://github.com/w3c/did-use-cases/blob/master/index.html#L1534 / add message level encryption requirement.

Then review existing use cases which might benefit from end to end encryption such as https://github.com/w3c/did-use-cases/blob/master/index.html#L360

Copy link
Collaborator

@jandrieu jandrieu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are good examples. I think the best way to get these in is by a separate title & paragraph for each, without the DID Comm intro.

DID Comm is a solution-space notion; what we are trying to capture in the use cases are problem statements independent of the underlying solution.

If you can turn these three URLs each into a single brief paragraph explaining what a specific individual does with a DID, that would be a better fit in this part of the document.

@OR13
Copy link
Contributor Author

OR13 commented Oct 5, 2020

on my plate to update this.

@OR13
Copy link
Contributor Author

OR13 commented Oct 6, 2020

@jandrieu @philarcher @dhh1128 I have made updates, requesting re-review.

index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
index.html Outdated Show resolved Hide resolved
Copy link

@dhh1128 dhh1128 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM -- but please note my comments about typos and a possible bit of merge clutter that would be worth cleaning up.

@jandrieu
Copy link
Collaborator

We are going to accept this, but we are going to add a bit of human story to anchor each to a specific person(s) doing a specific thing. If you're curious what I mean, I have a few issues for other sections #107 #106 #105 #109 #110 that do something similar.

We'll take that on, but if you beat us to it, that'd be great too.

@OR13
Copy link
Contributor Author

OR13 commented Oct 16, 2020

@jandrieu I'm not sure if I have to time to add stories for didcomm, but I will ping their wg for follow up.

@jandrieu
Copy link
Collaborator

jandrieu commented Nov 6, 2020

@OR13 Any interest from the DID Comm folks for providing some stories?

@talltree
Copy link

talltree commented Nov 9, 2020

I recommend accepting this PR and then seeing if other DIDComm folks want to make one or two others than are specific to other DIDComm use cases.

@jandrieu
Copy link
Collaborator

jandrieu commented Nov 9, 2020

@talltree The problem is that right now, the PR doesn't meet editors' requirement to have a human story for the use case.

@OR13
Copy link
Contributor Author

OR13 commented Nov 10, 2020

We are going to accept this, but we are going to add a bit of human story to anchor each to a specific person(s) doing a specific thing. If you're curious what I mean, I have a few issues for other sections #107 #106 #105 #109 #110 that do something similar.

We'll take that on, but if you beat us to it, that'd be great too.

@jandrieu can you rephrase this to make it clear what needs to be done to accept this PR?

@jandrieu
Copy link
Collaborator

@OR13 Yes. Each use case should have a concrete story of one or more specific individuals doing something that creates value and thereby demonstrates how this technology could create value. The issues cited above each have a short paragraph doing that.

For example, the current language:

Using DIDs, authentication keys and authenticated encryption,
a party can privately and securely present credentials over a message
oriented transport agnositc communication channel,

Is not about a specific person doing a specific thing that creates value.

Why would any party want to "privately and securely present credentials" and why does it matter if the communications channel is transport agnostic?

Are you sending secret recipes? Publishing family histories? Sharing nuclear codes? Other than that adolescent period when secret decoder rings are cool, people generally don't send secret messages for the sake of sending secret messages.

It is the connection to the real world that we are looking for.

@OR13
Copy link
Contributor Author

OR13 commented Nov 16, 2020

I have pinged the DID Comm WG on this, and if there are no takers, I suggest this PR be closed for lack of interested in a week or two.

@jandrieu
Copy link
Collaborator

Ok. Thanks, @OR13

@awoie
Copy link

awoie commented Nov 17, 2020

I have pinged the DID Comm WG on this, and if there are no takers, I suggest this PR be closed for lack of interested in a week or two.

The DIDComm WG (and chairs) are working on this issue and will update this PR this week.

@philarcher
Copy link
Collaborator

This discussion has landed up around PR 126 so we're closing this one.

@philarcher philarcher closed this Dec 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants