-
Notifications
You must be signed in to change notification settings - Fork 117
On the Ecosystem Overview #80
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
Comments
@RieksJ Thank you for the well thought out suggestion to change the spec text. I think I agree with the suggestion and will attempt to make these changes. The only concern I have is overly complicating the document with extra things. The reason we didn't bring agents into the mix yet is because we wanted to provide an overview without the technical details, the assumption being that you will always need agents to do things on your behalf. That said, if it's leading to confusion for you, it'll probably lead to confusion among other people. So, I'll give it a shot and see if the modifications are easier to read / make more sense. Not ETA on when I'll get the changes in there, I have a big backlog of edits to do before W3C TPAC in early November 2017. |
Hoping to make your life a bit easier, I have drafted a picture of how I currently envisage how this might be: Legend:
The crux here is that each electronic functionality requires a relation between the controlling non-electronic agent and the information blob that is specific for that functionality - this has to be elaborated. For example, whenever a wallet accesses an information blob, this would be a set of attesations/credentials (portfolio), and the wallet must ensure that the subject of every such attestation/credential is the non-electronic actor that controls the wallet at that particular point in time. In a similar fashion, whenever the attestation provider accesses an information blob, this would be a set of truths (e.g. some database/administration/registration), and the attestation provider must ensure that these are the truths of the non-electronic actor that controls the attestation provider. Does this help? |
Yes, it does help. The diagram is a bit too complex to open with, but I'll play around with various representations until we at least draw a line between the roles and the software used by the role to effect change in the system. When we first created the diagram, we didn't want to expose the reader to too many details. So, perhaps the best place for all of this is in an appendix that we refer the reader to from the simpler diagram. |
Maybe this is simpler: The green things in the figure each represent an actor that is capable of engaging in business transactions and making independent decisions (which I classify by the term'Party'). Typical examples would be individuals, or organizations. The ability of a Party to engage in business transactions and making independent decisions implies (to me) that it must have a set of concepts, relations (between such concepts) and rules (i.e. an Ontology) by which he models the way he sees the world. Also, it has a set of symbols that refer to entities that it knows to exist. I classify such symbols by the term 'Identifier', because every symbol identifies an entity (in the real or electronic world) within the scope of this Party's knowledge. The figure shows that parties can play different roles: the Issuer role, the Holder role and the Inspector-Verifier role. While a single party may play different, and even all roles, in a single session with another Party, it should limit itself to a single role. The role that a party plays in a session defines the kinds of services that it provides and/or the kinds of requests it sends to the party it has the session with. The blue things in the figure each represent an (electronic) actor, i.e. an actor embodied as (a software component running on) a computing device (which I classify by the term 'Agent'). Typical examples would be a mobile app, or a web service. Agents do the actual acting in sessions, i.e. the sending of requests and the provisioning of services. In every session, an Agent will do so on behalf of a single party, in a role that the party has specified/indicated that the Agent should play in that session. The red things in the figure each represent a linked-data graph, that is a (populated) subset of the ontology of a party (green thing). For the time being, I call that a 'Profile', but if that triggers unconstructive conversations, I'm happy to use a different term (this goes for all terms that I use). The blue arrows show the direction in which credentials/VCs propagate from one agent to another, thereby conveying knowledge (that may have been attested to by one or more Issuers) between parties. The basic pattern that we can recognize here is that whenever an Agent participates in a session, it acts on behalf of a Party, and uses a Profile that represents (a part of) the knowledge of that same Party. |
should we accept the new diagram and close the issue? |
W.r.t. the complexity of the issue: I appreciate that we should make everything as simple as possible, but not simpler. One of the focal points in an ecosystem such as the one we're trying to describe, is the interaction between (1) the often fuzzy, nondeterministic way that people and businesses operate and (2) the support of this way of working by the formal and deterministic ways that electronic agents work. Basically, electronics get to make decisions on behalf of people/businesses. That is not something to take lightly and there is a real risk of oversimplification here. I like the idea of getting the diagram with appropriate explanation in an appendix, and cover it with a simpler, higher-level picture and text in the main body. Let me know if you think I can help out. |
Whilst I quite like the diagrams, neither of them are optimum. |
I largely agree with @David-Chadwick's remarks on the diagrams. It does suggest the confusion there is between 'Holder' and 'Subject'. And they are different. 'Holder' is a role in the ecosystem that is played by a real-world entity such as a person, organization, or thing. 'Subject' however is (a reference to) a real-world entity (which may not even be capable of playing the role of Holder). I think we should elaborate on/clarify this, and make not only the distinction explicit, but also the relation that a subject and holder may have. This issue is related to
In short, I suggest to clarify the relation between 'holder' and 'subject' as stated above, and look forward to further discuss this as David suggested in his post in issue #55. |
I think we have a way of differentiating between subject and holder by using the ID in the credential to be the ID of the subject and the ID in the profile to be the ID of the holder. If we wanted to show the relationship between the subject and the holder, when Subject NE Holder, then this could be indicated by a new property ('relationship') of the profile. |
@RieksJ |
@David-Chadwick I have had a quick look. Here's my 2 cents: W.r.t. the multiple subjects, I like the terseness of the paragraph you suggested. However, it does not explicitly note that there may be multiple subjects, which I think it should (it was the whole point of the discussion). I also like the precise use of words such as 'optional', 'may', 'should' etc where that is appropriate. I also think that a further discussion about the nature of credentials (part of which you described in your Chapter 6 contribution) may straighten out any other issues, so for now I have no problems with this PR. W.r.t. this Chapter 6 that you wrote, here are my remarks/observations:
|
Hmm. When I open the Preview in the Pull Request then I cannot see ANY of the diagrams, even the pre-existing ones. @RieksJ |
@David-Chadwick |
@David-Chadwick I think that an issuer will only issue credentials upon request, and of a type that the issuer will have published publicly, and of which the structure is documented in that publication, which I now call a credential-type-specification. In particular, this means that the credential-type-specification specifies the structure of the graph/tree, i.e. the locations and meanings of identifiers (nodes) as well as predicates/elements/... (edges). The credential-type-specification will supply tags to identify the nodes and edges. Using the credential-type-specification, a requester can then construct a request that specifies which portion of the graph it wants the issuer to create a credential for. Also, this request may specify a relation-statement template, e.g. of the form When the issuer receives such a request, it can challenge the requester to prove ownership of any Does this make any sense? |
@RieksJ |
@RieksJ |
@David-Chadwick: W.r.t. 6.3, 6.4 and 6.5, and authorisations. I see. It's a different perspective on the situation where access to (say) a resource needs to be protected. If you look at it from an issuer point of view, you end up with issuing permissions of some kind that should provide the access. I can see how delegation fits here. If you look at it from the gatekeeper point of view, you end up with combining attestations/attributes in some kind of reasoning that produces a a yes/no (access/no access) result. In traditional IAM settings, issuers and gatekeepers belong to the same organization. However, with SSI, I contend that issuers and gatekeepers mostly belong to different organizations. The question is then whether or not an issuer organization, not being responsible for the gatekeeping, has any business in doing delegation. |
@RieksJ |
We're going to leave this hanging out there for now. It's a very high level issue that will be resolved in time. After we have this latest set of updates in, we'll come back around to this issue and see if it's resolved. |
Hi, Thanks for all your hard work, I know we are late to the party but my org is looking at the verified credentials and are starting to think about implementation. We have all been around identity and distributed systems for quite a while. While you are very specific that a subject is a thing that exists in the real world, the definition of a holder appears to change to suit the context which it is used. Here https://www.w3.org/TR/vc-data-model/#ecosystem-overview This suggests that a holder is a role possibly in an organisation. Here https://www.w3.org/TR/vc-data-model/#credential-subject-0 you describe the holder generating a signature here https://www.w3.org/TR/vc-data-model/#holder-acts-on-behalf-of-the-subject you describe the holder as the parent of the subject, this describing the holder as a thing. And a final example in section https://www.w3.org/TR/vc-data-model/#subject-holder-relationships I think terminology around the different entities that can act as the holder based on the scenario within the section https://www.w3.org/TR/vc-data-model/#ecosystem-overview section would be useful to explain that a holder can both exist in the real world (parent, employee) or as the entity managing the signing on behalf of the subject. I would also state, from my reading of the spec that it is unclear that a verified credential can be presented without a holder. Based on that the word might in this sentence be removed as the holder MUST exist. A role an entity might perform by possessing one or more verifiable credentials and generating verifiable presentations from them. Example holders include students, employees, and customers. |
The reason it says This sentence says that if:
then that entity is performing the role of a holder. |
We discussed this on the maintainence working group call and believe that this PR can be closed. If the author believes this should still be addressed it can be handled in V2 and they can reopen it. |
The issue was discussed in a meeting on 2021-08-11
View the transcript4.5. On the Ecosystem Overview (issue vc-data-model#80)See github issue #80.
Wayne Chang: I recommend closing this issue, there hasn't been discussion for a while and I feel that the terminology has been shaken out. Any objections to closing? |
There have been a few issues mentioning confusion around terminology and roles, e.g. #57 (@rvarn), #64 (@msporny), and #68 (@jandrieu). I am regularly confused as well, for the same (or different) reasons.
Consider the Ecosystem Overview (section 1.2). It defines 'holder' as an 'entity that is in control of one or more verifiable claims'. The examples (students, employees, and customers) suggest that holders are natural persons (perhaps also organizations). Examples of 'Inspector-verifiers', i.e. 'entities that receives one or more verifiable claims for processing', include employers, security personnel, and websites. Figure 1 shows that holders can present profiles to inspector-verifiers.
A difficulty here is that none of the examples of 'holder' can actually present profiles to websites. They can only do so if a process exists that runs on some hardware (e.g. a running app) that either represents the holder, or acts on behalf of the holder. The first requirement for holders (section 1.3) states 'Holders MUST receive and store verifiable claims from issuers through an agent that the issuer does not need to trust.'
The examples given in the definition for issuers suggest that they are non-electronic actors. Since organizations and governments can only act by proxy, I suggest to add the requirement that Issuers MUST issue verifiable claims through an agent that represents/acts on behalf of them.
The examples given in the definition for inspector-verifier is ambiguous: 'employer' and 'security personnel' are obviously non-electronic entities, but 'website' is not. The difficulty here is that employers and security personnel might represent/act on behalf of some other entity, but also represent/act on behalf of themselves. A website cannot: it always represents/acts on behalf of some other (non electronic) entity.
The VC document in its current state is ultimately about claims, i.e. electronic data (this follows from the definition of verifiable claim as being tamper-resistant and cryptographically verifiable). It is not about paper credentials (passports etc.). Since neither organizations, nor natural persons are capable of issuing, sending, receiving, storing or processing such claims, the ecosystem should be two-tiered:
Then, we need to define semantically meaningful relations between entities of different tiers. Explicitly specifying such mappings will allow us to (formally) specify ways in which entities in tier 2 can draw conclusions based on VCs that they have acquired/receieved, and provide correctness proofs.
It will also allow us to better formulate texts. For example, the text "A verifiable profile is a profile that is tamper-resistant and whose contents are typically counter-signed by the holder or subject." could be rephrased as "A verifiable profile is a profile that is tamper-resistant and whose contents are typically counter-signed by an agent that represents/acts on behalf of the holder or subject"
I suggest to add a definition for the term 'agent' (or 'electronic agent', or 'e-agent'), as "a software process running on a computing device, representing and/or acting on behalf of a non-electronic agent", examples of which include webservers and (mobile) apps. Then, the text should be reviewed so as to ensure that wherever appropriate it is unambigously clear when an agent is referred to and/or the non-electronic actor it represents.
The text was updated successfully, but these errors were encountered: