-
Notifications
You must be signed in to change notification settings - Fork 117
Structured Credential Data Model and Business Rules [was Bound and Unbound Credentials] #788
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
Conversation
This seems unadvised. See decentralized-identity/edv-spec#65 (comment) |
Why? I don't find it reasonable to throw in a comment like the above without a full explanation @agropper What are your specific issue(s) with https://github.com/w3c/vc-data-model/pull/788/files? |
A more detailed discussion can be found here: decentralized-identity/edv-spec#65 (comment) |
Noting first that there's an IPR flag that needs to be addressed. I'm leaning more towards this is a substantive contribution due to the affects it would have on the current reading about subjects and holders of verifiable credentials. @iherman what's your take on this from an IPR perspective? If it is considered a substantive change then we'll need to achieve consensus on the topic which would mean this needs to be deferred to V1.2 or V2 which are currently not in scope of the maintenance working group. |
@kdenhartog @iherman With respect to the IPR issue, thank you for bringing this to my attention. I have completed the application to hopefully resolve this: https://www.w3.org/ieapp/3344 |
@kdenhartog To be transparent, as much as I would like to see Unbound Credentials added to the specification itself, the primary purpose of this PR is simply to shed new light/understanding on what is already in the VC data model specification. That is, this PR requires no changes to the VC data model itself, the elements of a VC, nor the semantics of the current set of VC elements. [UPDATE] With the presence of Bearer Credentials in the current spec, Unbound Credentials should be defined in the spec as the more general construct from which Bearer Credentials are derived. See #788 (comment) |
The VC data model already has the concept of unbound credentials. They are called bearer credentials. Therefore I do not support the addition of the term unbound credentials to the VC data model. Furthermore I also see no reason why this type of credential cannot be included in a VP. |
Thank you for the pointer @David-Chadwick : https://w3c.github.io/vc-data-model/#bearer-credentials. With respect to your comment...
the detailed semantics are important here. While Unbound Credentials and Bearer Credentials appear to be similar, Unbound Credentials are generalization of the more purpose-specific concept of Bearer Credentials. Unbound Credentials are a more general construction; Bearer Credentials carry a lot of additional baggage, like ...
None of the above applies to the more general concept of Unbound Credentials. Think of using Unbound Credentials for defining the RGB colors for specific color names, purchase orders, waybills, delivery conformations, etc. Here's a specific Unbound Credential example (not subject to any of the Bearer Credential baggage):
|
@mwherman2000 I beg to differ with you. If you replace the adjective bearer with unbound the sentences still read perfectly well and apply to unbound just as they do to bearer ones. There is no need for the new concept as it is not more generic than the existing concept. |
Speaking as the WG Chair: though the changes are arguably editorial, as they do not add or remove normative language, they do introduce a new conceptual framing for verifiable credentials, which I feel reflects a substantive change. I encourage @mwherman2000 to raise an issue where this topic can be discussed by interested folks until such time as it can be taken up by a re-chartered VCWG. |
|
I think the conversation is the EDV group has veered in another direction, so would like to raise the topic for discussion here, since it is the same discussion and this is where it should happen. The big issue for us is not so much "Bound" and "Unbound" as terms, but the role (or lack thereof) of the holder in the VC 1.0 Data Model. The spec. seems to minimize the role of the holder such that despite appearing in the canonical image at the start of the spec, is only referenced in the JSON-LD data model examples in the Appendix. Here is (a slightly modified version of) my comment from the EDV repo on this topic: The concept of bound and unbound VCs stems for a world view difference about the participants in the VC trust triangle, and that I (at least) think exposes a crucial weakness in the VC 1.0 Data Model. We think the bound/unbound concept might be a way to allow for both views to be supported without a radical change to the spec. But the real question is about the holder. Background: As we in Aries have moved from using only Indy AnonCreds to adding support for the W3C VC standard, we've discovered a huge difference in the cryptographic trust model between the two. In the AnonCreds model, the holder is always a cryptographic component of the Trust Triangle, while in the W3C VC model, it is usually not. In AnonCreds, the Issuer MUST include in the verifiable credential a proof about the Holder on issuance, and the verifier MUST verify the verifiable presentation comes from the intended Holder. In the VC model, there is no such required binding to the Holder -- evidently anyone can hold an issued VC and present it. You can bind it to the holder (and we think many would) but it is not required and in fact, barely discussed in the spec. Adding the concept of Bound (as in AnonCreds) and Unbound (as in W3C VC Spec.) VCs could clarify support for both models.
Of course, while cryptographic proof is included in both models, the verifier must still make their human trust decision -- do they trust the issuer? The Bound model allows the verifier to use the cryptographic proof to have confidence in the holder, tying that confidence based on the verifier's trust that the issuer only issues to intended holders. Section 5.1 of the W3C V3 Spec. is quite jarring for those that assume the Holder is a core participant in the model. That a VC can be transferred freely amongst holders is, well, quite stunning to those of us with that view. Basically, all of our use cases (and all that we can think of) require the concept that the Issuer issues the verifiable credential to the Holder and only that Holder can present a proof based on that verifiable credential. We see far less value for credentials that do not include the holder as a cryptographic participant. The bearer token is the only obvious example of an unbound VC, but it should not be the (I would argue very limited) use case that removes the importance of the holder for the many other use cases in the spec. |
@swcurran @brentzundel @kdenhartog First, I need to acknowledge that it was Stephen who reached out to me in side conversation last week that inspired the discovery and documentation of this new specie of credential called Unbound Credentials. Second, I believe the categorization of credentials into Bound and Unbound Credentials is a fundamental discovery. How fundamental? To a large extent, these are the only 2 things that need to be described in the Verifiable Credentials Data Model specification: Bound and Unbound Credentials (plus other subspecie like Bearer Credentials). We're talking about a fundamental rewrite of the data model spec. Third, the rewrite will totally and fundamentally change the landscape of the specification. For example, the VC triangle diagram is no longer a fundamental element of the specification because the diagram is no longer an all encompassing concept in terms of what VCs are and how they are used. What happens to the VC triangle? I'm afraid to inform you that the VC triangle gets relegated to being just another VC use case. Yes, it will be the biggest elephant in the VC use case document but it becomes just another use case nether the less. @msporny This also has fundamental implications for the VC HTTP API specification: https://w3c-ccg.github.io/vc-http-api/ |
For completeness (to document the new specie), I've attached the following diagrams. A video narration is being uploaded. Bound and Unbound CredentialsNarration: https://youtu.be/KXhyvKXCLus?t=1030 Primary Colors: Unbound Credential ExampleNarration: https://youtu.be/KXhyvKXCLus?t=1187 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, +1 to describing that 1) you can use VCs for things like invoices, waybills, and delivery confiramtions, and 2) when to include a credentialSubject.id
and when not to and what that means.
In general, -1 to introducing a new term to talk about the concept as we're trying to reduce (not increase) the number of terms one needs to understand in order to understand the technology. That is, we're trying to reduce #cliquespeak, not increase it... and every new unnecessary term we introduce to the specification increases #cliquespeak.
@@ -291,7 +301,18 @@ <h3>What is a Verifiable Credential?</h3> | |||
</p> | |||
|
|||
<p> | |||
<a>Holders</a> of <a>verifiable credentials</a> can generate | |||
There are 2 broad categories of <a>verifiable credentials</a>: <a>bound credentials</a> and <a>unbound credentials</a>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm concerned about adding new classes of verifiable credential. We tried hard to reduce the amount of new terminology that people would need to learn to use VCs and I'm not sure the addition of this distinction is helpful. I think it might be harmful.
That is not to say that the concept doesn't exist. It does, and we should document it. I just don't think we should give it a misleading name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm concerned about adding new classes of verifiable credential. We tried hard to reduce the amount of new terminology that people would need to learn to use VCs and I'm not sure the addition of this distinction is helpful. I think it might be harmful.
That is not to say that the concept doesn't exist. It does, and we should document it. I just don't think we should give it a misleading name.
@msporny I think you're missing a key point in this discussion: @swcurran and I have stumbled on the need/requirement for a more formal taxonomic approach to describing the different species and subspecies of credentials. After you learn more about these concepts, I think you'll #seethelight (aka #seetheproof).
#788 (comment) is just the tip of the #credentialberg ;-) :-)
The most common use case for <a>unbound credentials</a> is to represent | ||
all types of business documents like invoices and purchase orders | ||
(that are not simple extensions or representations of a single subject). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hrm, disagree with this language. Business documents, invoices, and purchase orders typically have identifiers associated with them that would be the credentialSubject
identifier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, a given VC is not necessarily about a single subject!
(which binds the credential to a subject and enables the <a>Holder</a> of the <a>credentential</a> | ||
to derive <a>verifiable presentations</a> from the <a>bound credential</a>). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This characterization is problematic, while it's true, it gives the impression that this is the only use of the credentialSubject.id
property, which it isn't. The credentialSubject.id
is also useful to identify a particular node in a graph of information.
</p> | ||
<p> | ||
<a>Unbound credentials</a> do not contain a <a>subject</a> id element inside the credentialSubject element. | ||
An <a>unbound credential</a> is "like signed data issued to a <a>Holder</a>". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know what this sentence means. When describing concepts, we should avoid using quotes that could be misinterpreted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know what this sentence means. When describing concepts, we should avoid using quotes that could be misinterpreted.
Don't get lost in the prose (yes, I realize this is a PR to the spec). As I indicated above (or is it below), I see a major restructuring of the credential spec and there's at least of few of us interested in tackling it now. To reduce confusion, I'm going to call this new characterization Structured Credentials (a term I've already started to use and have an implementation of. Reference: https://www.youtube.com/watch?v=KXhyvKXCLus&list=PLU-rWqHm5p45dzXF2LJZjuNVJrOUR6DaD&index=1).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The prose is all we have to understand your meaning. It is in all of our best interests to write as clearly as we can, and to elaborate and clarify wherever it is made plain that our writing -- our prose -- is not clearly communicating our meaning.
<p> | ||
<a>Unbound credentials</a> do not contain a <a>subject</a> id element inside the credentialSubject element. | ||
An <a>unbound credential</a> is "like signed data issued to a <a>Holder</a>". | ||
A specific <a>unbound credential</a> can be held by 2 more <a>Holders</a> at the same time. For example, an invoice |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is true for any sort of VC, not just unbound credentials. Any credential can be held by more than one Holder at any given time. Some VCs can be bound to the credentialSubject.id
at presentation time. This language needs to be tightened up so that it won't confuse people reading the specification.
@mwherman2000 wrote:
Oof, well I was with you on this being Editorial until I read that. To be clear, I don't think this is a fundamental change to the VC spec (as @David-Chadwick noted, this concept has always existed in the specification, people have implemented "unbound" VCs just fine per the current spec, and it doesn't fundamentally change anything in the spec as far as I can tell). More documentation is good, which is why I was supportive of some variation of this PR as an Editorial thing. However, now that @swcurran and @mwherman2000 are noting that this is a fundamental change to the VC data model (again, which I disagree with), it'll require far more discussion and time allocated to consensus-building than we can give it in a v1.1 or even a v1.2 release. This is a v2.0 discussion if we're contemplating a "fundamental rewrite of the data model spec". I'll wait for a response from both @mwherman2000 and @swcurran before marking it as such. |
Well this took an interesting turn. I have a completely different desire for a change to the spec to that which @mwherman2000 is looking. My concern is exactly what @msporny states above -- "Any credential can be held by more than one Holder at any given time." That makes (per @mwherman2000 's terminology) all of them unbound. To me, references to "unbound VCs" abound in the spec., but there is almost nothing about "bound VCs", and that's a problem. What I'm looking for is much more emphasis on the Holder and that there be references to how the Holder be bound in the VC. In other words that Figure 1 from the spec. actually be followed. That the issuer issues the VC to a specific holder, and only the holder be able to provide a verifiable presentation accepted by the verifier. The literal Figure 1 version of the trust triangle is core to the Indy AnonCreds model, and yet is not explicitly mentioned in the W3C VC Spec. In AnonCreds a VC cannot be transferred to another Holder, and we think that is extremely powerful. In the vast, vast majority of our use cases, it is crucial that the verifier know the VC was issued to the entity presenting it. |
Can this be clarified a little bit? What does it mean to say that it "cannot be transferred"? What does "transfer" mean in this context and how does it work with the definition of holder in the spec today? How would this sort of thing be turned into normative, testable language in a data model specification? Depending on the language, there may be concerns around enforceability. I think the intent to prevent transfer can be expressed but unless there is correlation (the credentials and presentations are fully "linkable"), it's really just a plea. This makes expressing that intent potentially dangerous if verifiers misinterpret it as enforceable. Perhaps the language could be editorial and focus on linkability and how verifiers can require proofs in presentations around the identifier(s) that establish the link(s). |
@swcurran wrote:
Thanks for the clarification @swcurran. For the sake of simplicity, let's treat your request and @mwherman2000's request as separate issues. I assume that you have read the sections on the Credential Subject, Proofs, Validation of the CredentialSubject, Subject-Holder Relationships and didn't find that any of those sections addressed your concerns: https://w3c.github.io/vc-data-model/#presentations-0 (Holder property) We can always do a better job at documentation. Do you have something pithy that we could add to the specification that would address your concerns? I'll note that there are a number of use cases that don't take the Aries requirement of strongly bound VCs/presentations... ones that have very large deployment targets -- https://www.businesswire.com/news/home/20210511005386/en/NACS-Announces-TruAge%E2%84%A2-Digital-ID-Verification-Solution |
Meaning that the issuer inserts into the AnonCreds credential a binding to the holder. In AnonCreds today it is the blinded link secret, but it could be a DID. Either way, proof of control of the mechanism must be demonstrated as part of the verifiable presentation. |
Yeah, in that case, I'd think someone could draw up some editorial language that can focus on linkability and how verifiers can require proofs in presentations around the identifier(s) that establish the link(s) -- and what the guarantees are/aren't or what the trade offs are with that approach. |
@msporny -- I definitely reviewed those sections and they solidified my view that the spec. has little focus on the role of the holder, despite it's inclusion in Figure 1. There is little normative text about the holder, and as noted above, "holder" is only in the JSON-LD example in the Appendix. The view that "Anyone can hold any VC and prove it to a verifier" comes through loud and clear in the spec -- which is my concern. We think that's a big issue -- that in many cases the verifier would really like to know the binding of the VC to the holder. They want to know if the issuer explicitly issued the VC to the holder. If the verifier trusts the issuer, that could include that the issuer had a reason to issue the VC to the holder. Taking it further, what if the emphasis of the spec. shifted to the holder (as presented in Figure 1), and the question of what the VC was about was left to the semantics of the VC defined by the issuer? In other words, reduce the emphasis on "subject" in the core spec. Obviously, the holder = subject is easily handled, since the holder is known. However, the holder != subject is easily covered by the semantics of the issued VC. Where the holder is irrelevant, the holder binding is left off, allowing the VC to be held by any holder. That view is probably a bridge too far in the VC 1.x spec. Adding a section about being explicit about a proof of the binding between the holder and VC would be a big help. I would be interested to know how many people in the community think that a VP can only come from the holder to which the VC was explicitly issued. Glad to hear more, @msporny, about the NACS use case -- there is not enough in the article about the technical solution. |
I'll reply later today. First, my IPR issue has been resolved but I need my laptop to properly fix it here. With respect to "boundedness", I think where @swcurran and I cooperatively differ is that I'm defining/scoping boundedness strictly from the values of the data elements of the credential itself. I think what @swcurran is focused on is holdedness in a Holder's Agent's wallet ...which is understandably different. |
@msporny Creating new thoughtful terminology is not #cliquespeak. However, attempting to corral or, otherwise, trying to circumvent or limit a conversation is #cliquespeak in one of is worse forms. Here's the current definition of #cliquespeak... |
A general question, not directed at any particular
contribution/contributor...
In the non-W3 world of 'credentials, licenses and permits' does the
following hold?
At credential issuance time:
* an issuer identifies and authenticates a credential applicant (who is or
is not the subject of the eventual credential)
* the issuer creates what some call a 'binding record' in their system that
records details like the identifiers of the applicant, the credential and
maybe something about the target device/credential storage system
* the issuer encodes this 'binding record' information inside the
credential, or it does not
At presentation time:
* the credential verifier cares or does not care that the presenter of the
credential/presentation is authorized to present it (regardless of their
status as Subject or not-Subject)
* if the verifier cares, then they use a) their own rules to determine if
the presenter is the holder is the subject? OR b) use the issuer's rules
for the same? OR c) use the Holder's rules (c obviously doesn't make sense)
I'm trying to point out that the so-called bound/binding topic refers to a
record held at the Issuer. This might be embedded in the credential or it
might not be.
At the end of the day, the Verifier may want to understand what the Issuer
intended at issuance - is the credential only presentable by the Subject?
presentable by the Holder? presentable on behalf of another Subject? and so
on. The Verifier needs those facts in order to make decisions about whether
to accept the credential presentation from the entity actively presenting
it at transaction time. Something similar is probably needed for the
credential storage app (aka Wallet) so that it respects the authorization
semantics.
Is any of the above relevant to this thread?
andrew.
*Andrew Hughes *CISM CISSP
*In Turn Information Management Consulting*
o +1 650.209.7542
m +1 250.888.9474
5043 Del Monte Ave., Victoria, BC V8Y 1W9
***@***.***
*https://www.linkedin.com/in/andrew-hughes-682058a
<https://www.linkedin.com/in/andrew-hughes-682058a>*
*Digital Identity | International Standards | Information Security *
…On Tue, Aug 10, 2021 at 4:41 PM Michael Herman (Trusted Digital Web) < ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In index.html
<#788 (comment)>:
> + <a>Bound credentials</a> are bound a specific credential <a>subject</a>.
+ <a>Unbound credentials</a> are not bound to a <a>subject</a>.
+ As such, <a>unbound credentials</a> cannot be used to create <a>verifiable presentations</a> -
+ they are simply "data that has been signed by an <a>Issuer</a> and held by any <a>Holder</a>".
+ <a>Unbound credentials</a> are easily issued to and exchanged between groups of two or more <a>Holders</a>.
+ The most common use case for <a>unbound credentials</a> is to represent all types of business documents like invoices and purchase orders
+ (that are not simple extensions or representations of a single subject).
+ </p>
+ <p>
+ <a>Bound credentials</a> contain a <a>subject</a> id element inside the credentialSubject element
+ (which binds the credential to a subject and enables the <a>Holder</a> of the <a>credentential</a>
+ to derive <a>verifiable presentations</a> from the <a>bound credential</a>).
+ </p>
+ <p>
+ <a>Unbound credentials</a> do not contain a <a>subject</a> id element inside the credentialSubject element.
+ An <a>unbound credential</a> is "like signed data issued to a <a>Holder</a>".
I don't know what this sentence means. When describing concepts, we should
avoid using quotes that could be misinterpreted.
Don't get lost in the prose (yes, I realize this is a PR to the spec). As
I indicated above (or is it below), I see a major restructuring of the
credential spec and there's at least of few of us interested in tackling it
now. To reduce confusion, I'm going to call this new characterization
Structured Credentials (a term I've already started to use and have an
implementation of. Reference:
https://www.youtube.com/watch?v=KXhyvKXCLus&list=PLU-rWqHm5p45dzXF2LJZjuNVJrOUR6DaD&index=1
).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#788 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AETAZ7HEL2FPMGJ25JBG7ETT4G2JVANCNFSM5BVUEUTQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
|
Hmm, that's interesting. I'd argue that new thoughtful terminology can be categorized as #cliquespeak... per the definition of #cliquespeak -- "any type of speech that seeks to limit conversations to a select group of insiders" ... I mean, even uttering the words "Verifiable Credentials" is #cliquespeak, no? Any new definition does that, doesn't it? So, can't we just assert that everything is #cliquespeak since it's subjective; in the eye of the beholder? ... and if everything even remotely controversial can be #cliquespeak, is it really that useful of a concept? Then again, I note that you're the one who invented the word and defined it on your blog, so you get to use it (and redefine it) however you choose, which is (in itself) #cliquespeak.
Ah, so I can't disagree with your position w/o being accused of #cliquespeak ... I see. Well, go ahead then, I'll just stop engaging (with you in this particular PR). I look forward to seeing your initiative to convince the VCWG that what we need is "a fundamental rewrite of the data model spec." |
@swcurran wrote:
If that's the take-away, that's certainly an issue.
I think I get what you're saying, and yes, that might be a bridge too far w/o a healthy amount of debate (that we could open back up during the upcoming VCWG recharter).
Agreed, would you mind taking a first cut and trying to draft a PR for that, @swcurran?
It would be a good polling item, agreed. We may want to see if @vsnt would like to add that in an upcoming community poll? @swcurran -- would you mind creating an issue to track this concern? At present, it only lives in this PR. |
@msporny You do not understand #cliquespeak. Have you read the "10 real-life examples" in blog article? Here they are: 10 Real-Life Examples of #CliqueSpeak
These are the definitive real-life examples of CCG #cliquespeak. |
Here's is a first cut at the taxonomy I was alluding to early ...it's a first crack at a specification framework for the next version of the Verifiable Credentials (or independent Structured Credentials) specification... The above is based on different levels or combinations of "boundedness" ...and not "holdedness" (see above). Then applications and processes like the VC triangle flow become use cases or more elaborate application notes. Business rules like @swcurran 's for when a verifiable credential can legitimately be used to generate a verifiable presentation (VP) can then be attached to specific nodes in the above taxonomy. Ditto for business documents like POs, invoices, waybills, and delivery confirmations, etc. |
Structured Credential Data ModelStructured Credential Business RulesActors and RolesA1.1. A Holder is a Role. Credential TaxonomyT1. Different types of Structure Credentials are categorized into 4 top-level Structured Credential Families. Named Verifiable Credential (NVC) is an example of a Structured Credential Family. AgentsG1. To participate in the Structured Credential ecosystem, an Actor has an Agent, a software service. For example, in Alice's role as a Holder, Alice has an Agent. Wallets (Structured Credential Storage)W1. An Actor's Agent has a Wallet, a secure repository for storing Structured Credentials (Credential Repository). For example, in Alice's role as a Holder, Alice's Agent has a Wallet for storing Structured Credentials. SubledgersS1. Optionally, a Wallet can have Subledgers. Business RulesBusiness Rules: GeneralR1. Structured Credential Business Rules determine what actions are available to be performed on a particular set of Structured Credential Species (or Subspecies) based on a set of Structured Credential Preconditions. Examples of a Structured Storage Preconditions are:
Business Rules: Issuing a Verifiable CredentialIVC1. To Issue a Verifiable Credential, the following Structured Credential Preconditions must be satisfied:
Business Rules: Creating a Verifiable PresentationP1. For Actor Alice to be able to create a Verifiable Presentation VP from a Verifiable Credential VC, the following Structured Credential Preconditions must be satisfied:
Business Rules: Creating a NVC Unbound Credential (e.g. Invoice Business Document)BD1. An Actor in an Issuer Role may be used but is not required to create nor transfer an NVC Unbound Credential. |
@andrewhughes
" if the verifier cares, then they use a) ... OR b) use the issuer's rules
for the same?"
Hi Andrew
this is why the non-transferable property was defined in section
C.1.1, for the issuer to assert that the presentation must be made
by the credential subject otherwise it is invalid. However there
was insufficient agreement in the group to standardise this
property, so it remains non-normative. That does not negate its
importance, since many plastic cards contain this property today.
Kind regards
David
|
We discussed this on the call and believe that the larger work of conceptual reworking the spec isn't within scope of the maintainence working group. The scope of what @swcurran seems like it could fall as an only editorial change within this and should be addressed in a separate PR. |
Thanks @andrewhughes3000 for your comment. As I see it, VCs stand on their own in the same way a physical (driver's license) credential is verifiable on its own. Protocols associated with a driver's license do not presume any particular Holder but there are some assumptions such as a size that fits in a wallet and that verification will include a biometric match by a natural person. On top of this simple equivalence between human and machine verification, W3C and DIF have built an extensive mythology that makes room for:
These features could be implemented by giving every VC it's own "smartphone" with connectivity, a secure element and local biometrics and maintain the "stand alone" characteristic of a physical (driver's license) credential. However none of us want to carry a dozen or a few hundred phones, no matter how slim and cheap they may be. Impractical. So, the idea has been that the VC is just a data model and a single connected secure element with local biometrics would "Hold" any number of VCs and control their presentation. Practical. The practical alternative does not change the fundamental fact that a Verifier has to trust the Issuer and their practices. If a VC and its presentations do not include local biometrics as part of the verification process, then things get complicated and there's a major risk that Issuers and Verifiers will insist on "certifying" the Holder functionality for their own convenience. Part of this complication is that Holder is a role, just like Issuer and Verifier, whereas the issuance and verification protocols have to deal with things. My point is that VCs and their presentation do not depend on the inclusion of a Holder role. Any consent mechanism that can process a request into a verifiable credential or presentation (note the lower case) could deliver selective disclosure, linked pseudonyms and ZKPs. All of various consent mechanisms process requests, but some respond with verifiable data structures while others respond with access tokens that can be used to access a verifiable data structure. Whether an Issuer becomes aware that a VC has been accessed by a particular Verifier is important, so the request / consent protocols must give the consenting party a choice of hiding the use of a VC from the Issuer if that is important in a particular context. |
@swcurran Given your world view Stephen, what are the Preconditions for an Actor Alice to be able to create a Verifiable Presentation VP from a Verifiable Credential VC? For example, which (or all) of the following Preconditions are necessary for an Actor Alice to be able to create a Verifiable Presentation VP from a Verifiable Credential VC?
NOTE: Refresh this page. I've changed this posting at least 10 times. |
The issue was discussed in a meeting on 2021-08-11
View the transcript3.1. Structured Credential Data Model and Business Rules [was Bound and Unbound Credentials] (pr vc-data-model#788)See github pull request #788. Kyle Den Hartog: I've looked at this and think this is may be editorial. Manu Sporny: I let my feelings be known on the issue. what seems to be suggested is a fairly significant re-write. Kyle Den Hartog: Just want to clarify here - I think technically speaking this can already be addressed with no normative statements. I think its possible to describe purchase orders as an editorial only change. If we go for Michael's larger conceptual change it's definitely necessary to move to V2 Brent Zundel: I noted in the issue, from my perspective as a Chair, though the language introduced to the spec doesn't change any normative changes, it does substantively change the specification. I don't think it's in scope in v1.1 Maintenance at all. The overarching thematic introduction of these new ideas in this way is a substantive change and should be deferred to a v2. Kyle Den Hartog: wanted to clarify, the larger conceptual things are V2, but the idea of not having a holder bound to things would. Particualrly Stephen's ideas could be part of v1.1
Wayne Chang: what are next steps? Stephen's concerns should be put in a new issue, the rest would be part of V2 Kyle Den Hartog: I can write a comment on the PR to state that Ted Thibodeau Jr.: DavidC, if you could tidy up your last comment, it is really unreadable, makes it difficult to follow the thread
|
@@ -291,7 +301,18 @@ <h3>What is a Verifiable Credential?</h3> | |||
</p> | |||
|
|||
<p> | |||
<a>Holders</a> of <a>verifiable credentials</a> can generate | |||
There are 2 broad categories of <a>verifiable credentials</a>: <a>bound credentials</a> and <a>unbound credentials</a>. | |||
<a>Bound credentials</a> are bound a specific credential <a>subject</a>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PRs require some adherence to the language in which they're ostensibly written. Some expansion of what you mean by "[not] bound to a subject". VCs contain subject-predicate-object (triple) statements; they do not contain key-value pairs. Thus, it seems that your "unbound credentials" are not VCs, and as such, they don't belong in the VC Data Model, nor anywhere in the VC universe -- unless perhaps as "anti-examples"...
<a>Bound credentials</a> are bound a specific credential <a>subject</a>. | |
<a>Bound credentials</a> are bound to a specific credential <a>subject</a>. |
Issue #799 opened to track this as a Defer V2 issue. |
This PR documents the existence of and difference between Bound Credentials and Unbound Credentials. No fundamental changes are needed to support these 2 broad categories of (Verifiable) Credentials.
NOTE: Bearer Credentials are a more purpose-specific specialization of the more general-purpose concept of Unbound Credentials.
Preview | Diff