w3c-ccg / did-spec

Please see README.md for latest version being developed by W3C DID WG.
https://w3c.github.io/did-core/
Other
124 stars 45 forks source link

[Public Keys] What about when a DID Entity is a Thing ...and not an Actor? #142

Closed mwherman2000 closed 5 years ago

mwherman2000 commented 5 years ago

In https://w3c-ccg.github.io/did-spec/#public-keys, it states...

The primary intention is that a DID Document lists public keys whose corresponding private keys are controlled by the entity identified by the DID ("owned" public keys). However, a DID Document MAY also list "non-owned" public keys.

  1. The above is only true when the DID Entity referenced by a DID is an Actor capable of owning "stuff" (want to avoid using the word Things here :-)).

  2. What about when the DID Entity referenced by a DID is a Thing (in the Sovrin sense) ...e.g. a Pet, a Car, a House ...or in the Michael Herman extended model where a Thing can also be a Business Document, a Product, an Assembly, and/or a Part? In these cases, there must be an Owner of the DID Entity who is capable of owning the Private Keys, n'est pas?

  3. Use of "entity" is confuding. See https://github.com/w3c-ccg/did-spec/issues/117

  4. Misuse of "DID" ...see https://github.com/w3c-ccg/did-spec/issues/121#issuecomment-455267182

Reference: Hyperledger Indy/Sovrin Comprehensive Architecture Reference Model (INDY ARM) - latest version - bullets (12) thru (16) in both the diagram, Narration, and principles.

mwherman2000 commented 5 years ago

This subsequent remark...

Each public key may include an owner property, which identifies the entity that controls the corresponding private key. If this property is missing, it is assumed to be the DID subject.

...should be reconciled with the above sentence ...more likely visa-versa. The previous paragraph should incorporate this remark.

mwherman2000 commented 5 years ago

More generally, how are Things (e.g. pets, cars, houses) represented in "DID Document format"?

I believe an explicit section is needed to describe this use case (i.e. Things) as well as differentiate how they are the same and different from Actors (i.e. People and Organizations).

rhiaro commented 5 years ago

"Owner" has been replaced with "controller" as of https://github.com/w3c-ccg/did-spec/pull/102 so I think that resolves 1.

Re: 2. A more involved discussion of DID Documents as descriptive (or not) of 'Things' is taking place in https://github.com/w3c-ccg/did-spec/issues/148#issuecomment-454504841

Your points 3. and 4. are covered by other issues as referenced.

On that basis, I'm going to close this one, but please re-open it if I've missed a point that isn't already raised elsewhere.

mwherman2000 commented 5 years ago

@rhiaro These issues are markers for specific text in the draft DID spec that will need to be updated pending discussion/resolution of the overarching issue. Please don't close these (unless the appropriate text of this issue has been copied or moved to the referenced issue). https://github.com/w3c-ccg/did-spec/issues/138 is an example where we did this earlier today (i.e. merged two related issues).

jandrieu commented 5 years ago

@mwherman2000 You asked

More generally, how are Things (e.g. pets, cars, houses) represented in "DID Document format"?

Neither things nor people are represented in "DID Document format".

As identifiers, DIDs can refer to anything. Person, organization, thing, concept. It doesn't matter. The DID Document describes how the DID controller can update the DID Document and how controllers of specified proofs can authenticate on behalf of the DID.

This issue should stay closed because it appears to be a misunderstanding rather than an issue with the specification.

Although, if you'd like to propose language that could help prevent others from having that same confusion, that might be a good reason to reopen it.

mwherman2000 commented 5 years ago

@jandrieu As I've mentioned elsewhere, these issues address specific wording in the specification (quoted in each issue) ...the text either is very confusing/ambiguous ...not the type of language you want in a specification document. The specific text needs to be changed/updated.

The text of the specification needs to be crisp ...it needs to be easily read and understood; otherwise, this is will slow (is slowing) Indy/Sovrin/DID engagement and adoption by developers. I now get messages about this fact every week.

I would love to propose new text but there are some fundamental questions/issues that need to be addressed first ...someone needs to weigh in on these before text can be proposed at the nitty-gritty level:

  1. https://github.com/w3c-ccg/did-spec/issues/157 Draft DID spec purpose and target audience
  2. https://github.com/w3c-ccg/did-spec/issues/158 Normative, Informative (and in-scope) and just plain out of scope?
  3. https://github.com/w3c-ccg/did-spec/issues/151 Missing Decentralized Identifiers Data Model
  4. https://github.com/w3c-ccg/did-spec/issues/155 URIs, URLs, and URNs section of draft DID spec
rhiaro commented 5 years ago

@rhiaro These issues are markers for specific text in the draft DID spec that will need to be updated pending discussion/resolution of the overarching issue.

I think it's preferable to have one open issue per overarching issue rather than individual ones for each chunk of text that needs an edit. When the overarching issue is resolved, the updates will take place throughout the spec. Otherwise we end up with duplicate discussions taking place (eg. https://github.com/w3c-ccg/did-spec/issues/142#issuecomment-457807571 and https://github.com/w3c-ccg/did-spec/issues/148#issuecomment-454504841)