Skip to content

Making explicit the binding of the holder to a VC #795

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

Closed
wants to merge 6 commits into from

Conversation

swcurran
Copy link

@swcurran swcurran commented Aug 17, 2021

This PR is an attempt to address #789 , adding, where appropriate (at least in my opinion), explicit references to the binding of a the holder (who will often be the subject) of the VC such that in a verifiable presentation the verifier can authenticate that the holder was issued the verifiable credential.

I've tried to follow the use of links to glossary items, but no doubt under- or over-used those links in places. Likewise for where I have tagged JSON properties with the "code" tag. Any guidance on that would be appreciated.

My main concern about this PR comes from the @David-Chadwick comment that credentialSubject.id may have become the de facto way to authenticate the holder, rather than using holder.id. Starting from scratch, I think it makes far more sense to use holder.id, but I wonder if it is too late. IMHO, I would much prefer that the VC Data Model had no opinion on the contents of the credential (it's just data) vs. explicitly saying there must be a subject and forcing all use cases to map (sometimes artificially) to the structure. However, I understand that is not appropriate to change in the V1.x context. IMHO the use of credentialSubject.id vs. holder.id is a by-product of that decision.


Preview | Diff

wyc and others added 2 commits July 13, 2021 16:59
* Add PR review process for 2021.

* Avoid GitHub id auto-linking.

Co-authored-by: David I. Lehn <[email protected]>

* Update README.md

Co-authored-by: Manu Sporny <[email protected]>

Co-authored-by: Manu Sporny <[email protected]>
Co-authored-by: David I. Lehn <[email protected]>
Co-authored-by: Brent Zundel <[email protected]>
Copy link
Member

@msporny msporny left a comment

Choose a reason for hiding this comment

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

I did a quick-scan of this PR and, overall, I'm fine with most of the text. The only exception is the new "Holder" section, which asserts things about the mental model of holders that I don't think we have consensus in the WG on (and thus, it'll need to be discussed).

identifiers are long-lived or used across more than one web domain.
<code>credential.credentialSubject.id</code> field. <a>Holders</a> of
<a>verifiable credentials</a> are identified using the
<code>credential.holder.id</code> field. The identifiers used to identify a
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
<code>credential.holder.id</code> field. The identifiers used to identify a
<code>presentation.holder.id</code> field. The identifiers used to identify a

Is this what you meant?

Copy link
Contributor

Choose a reason for hiding this comment

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

I would like this PR to add a credentialHolder property (between sections 4.4 and 4.5) with identical syntax to the credentialSubject property i.e. the credentialHolder can contain an optional id and optional holder properties. In this way the issuer can identify the holder by either an id (linked to cryptographic material) or via human readable properties (e.g. name, address, passport number) or both.

Copy link
Author

Choose a reason for hiding this comment

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

@msporny -- that is not what I meant. I would expect that information to be put in by the issuer into the VC.

Copy link
Member

Choose a reason for hiding this comment

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

@msporny -- that is not what I meant. I would expect that information to be put in by the issuer into the VC.

Yes, understood now. When I made the suggestion, I misunderstood what you were going for... but since then, I think we're noting that doing this is problematic. I like the proposal @David-Chadwick is putting forward around "Terms of Use" or "Evidence".

Copy link
Contributor

Choose a reason for hiding this comment

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

During the year since I made my comment above that we should add a credentialHolder property, I now believe that it should be renamed to the issuee property. Rationale: The issuer cannot bind a VC to a holder, since the holder is a transient entity. The issuer can however bind the VC to the issuee, which is a persistent entity. Other than the change of name, the rest of my my comment is still good. (see issue #942

issued to a specific <a>holder</a> using the <code>holder</code>
<a>property</a>. Alternatively, when the <a>holder</a> is the <a>subject</a>,
the <code>credentialSubject.id</code> <a>property</a> could be used for the same
purpose, ideally paired with the <code>nonTransferable</code> <a>property</a>.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
purpose, ideally paired with the <code>nonTransferable</code> <a>property</a>.
purpose, ideally paired with the <code>nonTransferable</code> <a>property</a>.

Oof, now we're pulling nonTransferable in... -1 to doing that until we have buy-in from the WG that we really do want to make nonTransferable a property on a VC. I don't think we have buy-in on that yet.

Copy link
Author

Choose a reason for hiding this comment

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

Removed. I see that the property is only referenced in the (IMHO) very confusing Appendix C, and is probably not the way to go.

Choose a reason for hiding this comment

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

Alternatively, when the holder is the subject, the credentialSubject.id property could be used for the same purpose, ideally paired with the nonTransferable property.

  1. when the holder is the subject - how is the prescriptive test for this (in software)? Which properties are being compared?
  2. the credentialSubject.id property could be used for the same purpose - can be more direct in stating that the same purpose is ...just write out?

Comment on lines +5064 to +5065
issued to a specific <a>holder</a> using the <code>holder</code>
<a>property</a>. Alternatively, when the <a>holder</a> is the <a>subject</a>,
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
issued to a specific <a>holder</a> using the <code>holder</code>
<a>property</a>. Alternatively, when the <a>holder</a> is the <a>subject</a>,
issued to a specific <a>holder</a> using the <code>holder</code>
<a>property</a>. Alternatively, when the <a>holder</a> is the <a>subject</a>,

Hmm, I don't think we have agreement on this in the WG. Putting holder in a VC isn't contemplated at all in the spec at present. This would be a substantive change in the interpretation of the specification.

Copy link
Author

Choose a reason for hiding this comment

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

This is what I find amazing and is the core of this change. Figure 1 has holder in it, so someone thought it might be important. It is included in the base context.

I've heard this from another person from the original working group, so despite it's inclusion in the context, I gather it is not intended to be used.

Comment on lines +5074 to +5076
Where there is no <a>issuer</a>-designated <a>holder</a> the <a>verifiable
credential</a> can be transferred to other <a>holders</a>, and no <a>holder</a>
authentication is necessary by the <a>verifier</a>.
Copy link
Member

Choose a reason for hiding this comment

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

This implies that one must now always set both credential.holder and credential.credentialSubject.id in order to do holder authentication... which goes contrary to what we say elsewhere in the Validation section. This will need to be reconciled before we can merge.

@msporny msporny added the PossibleErratum WG should determine if this is Errata label Aug 17, 2021
@@ -335,6 +335,9 @@ <h3>Ecosystem Overview</h3>
A role an <a>entity</a> might perform by possessing one or more
<a>verifiable credentials</a> and generating <a>verifiable presentations</a>
from them. Example holders include students, employees, and customers.
Issuers can bind a <a>verifiable credential</a> to the holder to which it is issued,
and the holder can prove that binding using the <code>proof</code> property of a
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we need to find some other language here that states that the issuer can assert what they saw vs. saying that the issuer can "bind a VC to a holder". At least one plain reading of that statement would render it false as the issuer has no such power. We'd need a clear definition of "bind" that avoided that issue.

What we know is that the issuer can create some kind of assertion about what they saw when issuing the VC -- and that a presentation may include a proof such that some kind of narrowing conclusions can be drawn from it. For example the issuer may have required the holder to prove they have access to some API and then the verifier can then require the presenter (who may not be the holder) to prove that they also have access to that API. Of course, that sort of language would highlight that the holder does not have to be the same as the presenter (they are not actually "bound") and, on its own, would make the feature seem powerless to the reader. This is the other side of the spectrum of what's written in this PR now: that the issuer or this "binding" has more power than it actually does.

Maybe we need to discuss how issuers can make assertions that can create additional constraints for the verifier to take advantage of via presentation requirements -- and that each of these constraints must be weighed carefully so as not to be over-estimated in what they accomplish?

Copy link
Contributor

Choose a reason for hiding this comment

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

We already have the ToU property for the issuer to place constraints on the issued VC. So instead of having a new holder property in the VC, that ranks pari-parsu with the credentialSubject we could place the holder property in a new ToU type.
Remembering of course that the verifier can always accept any VC regardless of who presents it, or what the ToUs may state, or what its validity period is, or what its revocation status is.

Copy link
Member

Choose a reason for hiding this comment

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

So instead of having a new holder property in the VC, that ranks pari-parsu with the credentialSubject we could place the holder property in a new ToU type.

I would far prefer that we go down this route. Thank you for suggesting it @David-Chadwick.

I do also think that we need to make sure that no one believes that it's possible to "bind" a holder to a VC and believe that any sort of cryptographic binding solves the problem of "is the person I'm interacting w/ remotely/in person the same as the holder". That problem is not solved by cryptography.

Comment on lines +1043 to +1046
In this example, the <a>issuer</a> has bound the <a>verifiable credential</a> to
the <a>holder</a> (Pat) using the
<code>credentialSubject.id</code> property (rather than using the
<code>holder.id</code> property). The second <code>proof</code> property in the
Copy link
Member

@TallTed TallTed Aug 20, 2021

Choose a reason for hiding this comment

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

Suggested change
In this example, the <a>issuer</a> has bound the <a>verifiable credential</a> to
the <a>holder</a> (Pat) using the
<code>credentialSubject.id</code> property (rather than using the
<code>holder.id</code> property). The second <code>proof</code> property in the
In this example, the <a>issuer</a> has associated the <a>verifiable credential</a> to
the <a>holder</a> (Pat) using the
<code>credentialSubject.id</code> property (rather than using the
<code>holder.id</code> property). The second <code>proof</code> property in the

Aside from the continuing issue of inappropriate use of "binding", there is NOTHING in the existing doc (unless it snuck by me, which I hope it did not!) that says that the credentialSubject.id does double-duty as a holder.id, associating a VC with a specific Holder at issuance. We spent many hours discussing this, and Holder-sameAs-Subject was neither determined to be the most-common nor the default scenario. If anything, I remember us coming up with more Holder-NOT-sameAs-Subject scenarios.

Copy link
Author

Choose a reason for hiding this comment

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

I agree with the inappropriate-ness of using credentialSubject.id s a replacement for holder.id, but it has become a de facto standard approach for the verifier to confirm the holder is presenting the data in the subject-is-holder use case.

What I would really like to see is dropping entirely the concept of "subject" (replaced with, for example, credentialData) in the VC spec (v2.0), as its use pre-supposes a purpose for all data using the verifiable credential pattern -- data that is issued to a holder and subsequently presented by the holder to verifiers. That change would allow the VC spec emphasis to be on the holder (as shown in Figure 1), makes irrelevant any discussion of subject is/is not holder (the spec is agnostic on the topic), and leaves the entire meaning of the payload up to those using the VC spec. -- handled by data semantics and trust relationship governance.

Comment on lines +1965 to +1966
<a>presentation</a> is <a>verifiable</a>. Where the issuer has bound the
<a>verifiable credential</a> being presented to a specific <a>holder</a>, the
Copy link
Member

@TallTed TallTed Aug 20, 2021

Choose a reason for hiding this comment

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

As above.

Suggested change
<a>presentation</a> is <a>verifiable</a>. Where the issuer has bound the
<a>verifiable credential</a> being presented to a specific <a>holder</a>, the
<a>presentation</a> is <a>verifiable</a>. Where the issuer has associated the
<a>verifiable credential</a> being presented with a specific <a>holder</a>, the

@@ -2070,6 +2089,10 @@ <h3>Lifecycle Details</h3>
any other actions involving a <a>credential</a>.
</li>
<li>
In some cases, a <a>holder</a> might transfer to another <a>holder</a> one or more of its
<a>verifiable credentials</a> that have not been bound by the <a>issuer</a> to that <a>holder</a>.
Copy link
Member

@TallTed TallTed Aug 20, 2021

Choose a reason for hiding this comment

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

Binding again. Also appears to presume that association with Holder is default for VCs.

Suggested change
<a>verifiable credentials</a> that have not been bound by the <a>issuer</a> to that <a>holder</a>.
<a>verifiable credentials</a> that have not been associated by the <a>issuer</a> with that <a>holder</a>.

Comment on lines +2213 to +2217
In many cases, the <a>verifier</a> trusts the <a>issuer</a> to issue each
<a>verifiable credential</a> to its intended <a>holder</a> (often the
<a>subject</a>) and, where appropriate, to provide a <a>verifiable</a> binding
in the
<a>verifiable credential</a> to that <a>holder</a>.
Copy link
Member

@TallTed TallTed Aug 20, 2021

Choose a reason for hiding this comment

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

Presumes Holder-sameAs-Subject facts not in evidence. Also binding, again.

Suggested change
In many cases, the <a>verifier</a> trusts the <a>issuer</a> to issue each
<a>verifiable credential</a> to its intended <a>holder</a> (often the
<a>subject</a>) and, where appropriate, to provide a <a>verifiable</a> binding
in the
<a>verifiable credential</a> to that <a>holder</a>.
In many cases, the <a>verifier</a> trusts the <a>issuer</a> to issue each
<a>verifiable credential</a> to its intended <a>holder</a> (often the
<a>subject</a>) and, where appropriate, to provide a <a>verifiable</a> association
in the
<a>verifiable credential</a> with that <a>holder</a>.

@@ -2931,7 +2961,7 @@ <h3>Zero-Knowledge Proofs</h3>
<li>
Combine multiple <a>verifiable credentials</a> from multiple <a>issuers</a> into
a single <a>verifiable presentation</a> without revealing
<a>verifiable credential</a> or <a>subject</a> identifiers to the
<a>verifiable credential</a> or <a>holder</a> identifiers to the
Copy link
Member

@TallTed TallTed Aug 20, 2021

Choose a reason for hiding this comment

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

You cannot replace subject with holder like this. It might work out if you added holder to subject, but only if you use associated or similar instead of bound; there may be other issues with new draft text.

Suggested change
<a>verifiable credential</a> or <a>holder</a> identifiers to the
<a>verifiable credential</a>, <a>subject</a>, or <a>holder</a> identifiers to the

Comment on lines -5029 to +5060
<h3>Credential Subject</h3>
<h3>Holder</h3>
Copy link
Member

Choose a reason for hiding this comment

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

These are not interchangeable in this way. Maybe an added Holder section will work. Replacing the Credential Subject section does not work for me at all.

...

Now I've read further along, and I see that you did add a Holder section. You just confused me by putting this new section ahead of the existing Credential Subject section, which order doesn't seem logical to me. What is this ordering based on?

@mwherman2000
Copy link

mwherman2000 commented Aug 20, 2021

First, a caveat, I haven't been following this thread in detail but @David-Chadwick and I had a discussion this "morning" that might be relevant/useful.

It was regarding how the different id fields can be used/applied in the context of a business document represented as a VC (e.g. a purchase order originating from an accounting system (the system of record) that gave this particular purchase order a purchase order number (e.g. id) of 2222).

In a generic purchase order scenario (I haven't coded one up yet), credential id is used as the identifier for the VC envelope that wraps the credentialSubject. The credentialSubject id represents the subject of the claims that are also contained in the credentialSubject. The identifier of the subject stored in credentialSubject id is used to encode the purchase order id identifier. The credentialSubject is also where the purchase order data is stored (e.g. purchase order id identifier plus the purchase order form data represented as claims). Each VC envelope has a unique credential id. Each credentialSubject has a unique credentialSubject id (this latter value generated by the accounting system of record).

In a specific purchase order scenario, credential id might have a value of did:vcenvelope:1111 and credentialSubject id might have a value of did:purchaseorder:2222. The credentialSubject id (aka purchase order id identifier) is unique and generated by the accounting system of record (as is typical). Each time a purchase order did:purchaseorder:2222 is sent to a Holder, it is "placed in a new envelope" that has a new did:vcenvelope identifier (e.g. did:vcenvelope:1111, did:vcenvelope:1121, did:vcenvelope:1211, ...).

What about the Holder id part of the discussion?

First, the Holder id is not the same as the VC envelope id (aka credential id) nor the purchase order credentialSubject id (aka purchase order id identifier). In the purchase order scenario, Holder id isn't needed (at least not for now in this scenario). The originator of the purchase order (the purchaser) will be encoded in the purchase order claims data as is normal business practice ...as will the supplier, shipper, etc. etc.

If a Holder id is required for other use case, it can be encoded before or after the @context for example (i.e. the top part of the VC) ...e.g. in the packing label.

Although the following isn't a purchase order example, I'm including it because IMO it suggests some useful names for the anatomy of a VC.

image
[Updated August 23, 2021]

p.s. What does a full-blown digital purchase order look like? Check out http://docs.oasis-open.org/ubl/os-UBL-2.1/xml/UBL-Invoice-2.1-Example.xml

@agropper
Copy link

agropper commented Aug 21, 2021 via email

@msporny
Copy link
Member

msporny commented Aug 21, 2021

We know it's possible to bind a Subject to a VC by adding a biometric attribute or a link to a biometric attribute to the VC.

Yes, sorry, what I meant was "I do also think that we need to make sure that no one believes that it's possible to CRYPTOGRAPHICALLY "bind" a holder to a VC AND THEN ONLY DEPEND ON THAT CRYPTOGRAPHIC BINDING". What you get in that case is something that's completely untraceable and open to wide-scale abuse (almost perfect anonymity, which is ok for some low-risk use cases like movie tickets and single use bus passes -- things greatly constrained by time and space).

@agropper
Copy link

agropper commented Aug 21, 2021 via email

@David-Chadwick
Copy link
Contributor

David-Chadwick commented Aug 22, 2021 via email

@mwherman2000
Copy link

There are many use cases where the issuer gives the VC to a holder NE subject, and the verifier needs to know that the presenter is the original authorised holder, and not someone who copied the VC from the genuine holder and is passing this off as belonging to them.

@David-Chadwick I think most of the business document use cases we've been discussing also fall into this camp (e.g. a Purchase Order).

@David-Chadwick
Copy link
Contributor

@mwherman2000 Yes if a purchase order is an inanimate object, given to a buyer by the company (issuer) to hold until next month say, the supplier does not want a fraudsters to present the PO now, causing it to produce the goods, when the buyer did not intend the goods to be bought until next month. One can envisage many other examples like this, where wrongly presented business documents could cause financial damage to either the issuer or the verifier.

@mwherman2000
Copy link

Agreed but to some extent this depends on the completeness and immutability of the purchase order object represented inside the credentialSubject. Delivery terms, conditions, dates, payment terms, conditions, parties, etc. can and should be specified in the purchase order object (they are). Nothing can be added or changed to a signed, verifiable purchase order.

...or am I missing something?

@swcurran
Copy link
Author

A real-world example of a capability is the Release of Information (ROI) form that...

My opinion on this example, is that what is described ("issued...to the Verifier") is not a verifiable credential use case. Unless the recipient (the SSDO) needs to prove the data to another party (an actual verifier), then that is not a vc -- it's just releasing data to the SSDO. If they use a VC data format, that's (perhaps) convenience, but does not make it a (lower case) vc. If the SSDO does need to prove the data in the future, then it is a vc, and the holder is the SSDO, and the verifier should know that.

@swcurran
Copy link
Author

@msporny -- VC AND THEN ONLY DEPEND ON THAT CRYPTOGRAPHIC BINDING does that statement go back to Dave Longley's article, or is it more than that? The caps imply that written in stone vs. opinion and I would like to be clear on what you mean.

@mwherman2000
Copy link

mwherman2000 commented Aug 22, 2021

@David-Chadwick

Yes if a purchase order is an inanimate object, given to a buyer by the company (issuer) to hold until next month say, the supplier does not want a fraudsters to present the PO now, causing it to produce the goods, when the buyer did not intend the goods to be bought until next month

In this scenario, let's say the delayed purchase order had the value of credential.credentialSubject.id set to did:abcgrocery:po:1234. Are you suggesting that someone could create a fake PO with the same credential.credentialSubject.id? It's possible but it won't be verifiable as originating from ABC Grocery.

(Just in case it helps further the discussion the outer VC envelope would have a credential.id of, say, did:abcgrocery:envelope:123-456-789.)

@msporny
Copy link
Member

msporny commented Aug 22, 2021

does that statement go back to Dave Longley's article, or is it more than that?

Yes, it does.

The caps imply that written in stone vs. opinion and I would like to be clear on what you mean.

The only thing the caps were meant to imply was clarifying the loose language I used the first time around. The caps were added to try and add some clarity to what I was saying to my initial statement (not to imply something written in stone).

@swcurran
Copy link
Author

Thanks. I'm definitely not an expert in this, but my understanding is that the claim (in your comment) that such a cryptographic binding is impossible is not considered fact, and opinions differ. Since it would be extremely helpful if a practical mechanism was found that sufficiently mitigates the risk of using such a cryptographic binding, I don't want anyone to turn away from trying to accomplish that because some think it can't be practical.

@David-Chadwick
Copy link
Contributor

@mwherman2000 "Are you suggesting that someone could create a fake PO ". No I never said or implied that. I simply said that anyone having possession of the genuine PO can present it, even if that person was not the holder that the issuer gave it to.

@mwherman2000
Copy link

RE: I simply said that anyone having possession of the genuine PO can present it

Yes, there's good solutions for that too ...like only accepting business documents over trusted, verifiable channels established between a particular Purchaser (ABC Grocery) and a particular Supplier (David's Cabbages) (e.g. using DIDComm-like or HTTPS communications channels). Worst case, it would be detected as a duplicate PO.

@mwherman2000
Copy link

mwherman2000 commented Aug 22, 2021

There's other VC transmission strategies too.

For example, instead of the Originator's Agent (Originating Holder's Agent) sending (shooting) over the actual PO VC to the Receiver's Agent (Receiving Holder's Agent), the Originator('s Agent) sends the Receiver('s Agent) a Notification VC containing the DID of the Originator and the DID of the particular PO envelope.

The Receiver then looks up the URI of the Originator (and its Agent's Service Endpoint) on a VDR and uses that trusted URI to call back to the Originator to download the PO envelope containing the PO content (PO number and the claims describing the claims that comprise the PO). The latter may be a recursive process if the PO is represented as a hierarchy or graph of related PO component VCs. ...or something like that.

Of course, there's all sorts of cross verifications made a long the way.

@agropper
Copy link

agropper commented Aug 23, 2021 via email

@mwherman2000
Copy link

An auto registration is an example of your inanimate “thing”. The subject is the thing. The responsible parties include the owner of the thing (for transfer of title purposes), the person who registered the thing (to get the parking tickets), and the insurance company (in case anyone wants to validate insurance). These are three separate identities as claims and I don’t see a holder in this case either.

I beg to differ @agropper using your own POA example.

Just like in your POA example, the value of credentialSubject id is the identifier for the auto registration document itself; then there is a claim in that document that will reference/deference to, for example, the vehicle's VIN number.

(The value of credential id is the identifier associated with the credential envelope that the auto registration document was delivered in.)

@swcurran
Copy link
Author

@agropper

... The identity of the holder is completely irrelevant. ...

The holder is who the issuer intended should have the credential, and we think that is important. Obviously, when the subject and holder are the same, it's easy. Where they are not, then the holder matters. If/when delegation is supported and standardized, the holder of the original VC becomes an issuer to a new holder of a new VC. I don't understand how delegation can be done by simply transferring a VC to another, with no indication of intent.

Depending on how you model the POA VC, the holder would be extremely if they are one being given the POA for another, and that other is considered the subject.

IMHO VCs are not suitable for solving general "double spend" problems. It works if there is only one verifier (e.g., the movie ticket), but does not work for something like a prescription, where the holder can take it to many independent pharmacies.

@agropper
Copy link

agropper commented Aug 23, 2021 via email

@mwherman2000
Copy link

mwherman2000 commented Aug 23, 2021

I know I'm being terrible simplistic but in this conversation, the "Holder" can/should/could be viewed as anyone who is holder of the VC (or a copy of the VC) at any point in its lifecycle from issuance to revocation.

image

@David-Chadwick
Copy link
Contributor

@agropper "Please provide some real-world examples of holder different from subject or delegate." I already did. And so did you by adding different claims to a VC that specified the attorney or the owner or other claims identifying a third party who is not the subject. What you are effectively doing is saying 'these claims identify authorised entities' and then the verifier can determine from the VP if the holder is one of these authorised entities. But your solution is specific to the type of VC, and varies for each type, whereas what we are trying to do is define a generic method that is applicable to all types of VC where the holder NE subject.

@agropper
Copy link

agropper commented Aug 23, 2021 via email

@David-Chadwick
Copy link
Contributor

ToU is one possibility. So is having a Holder property. It is for the W3C group to decide
a) if a standardised generic method is needed for the issuer to signal who it gave the VC to, and
b) if it is, what this mechanism should be.

@agropper
Copy link

agropper commented Aug 23, 2021 via email

@brentzundel brentzundel added defer-v2 and removed PossibleErratum WG should determine if this is Errata labels Aug 25, 2021
@iherman
Copy link
Member

iherman commented Aug 26, 2021

The issue was discussed in a meeting on 2021-08-25

  • no resolutions were taken
View the transcript

4.1. Making explicit the binding of the holder to a VC (pr vc-data-model#795)

See github pull request #795.

Brent Zundel: this is not errata but is making normative changes
… so it should be put in 2.0

Manu Sporny: I talked to Steven and he agrees that this PR should be removed and an issue raised to bring it into v2.0
… Steven has said he will close the PR after he has added this issue for v2.0

Brent Zundel: I am adding the defer v2.0 label
… now I would like to focus on v1.1 PRs

swcurran and others added 3 commits August 26, 2021 10:50
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Signed-off-by: Stephen Curran <[email protected]>

Co-authored-by: Manu Sporny <[email protected]>
Signed-off-by: Stephen Curran <[email protected]>

Co-authored-by: Ted Thibodeau Jr <[email protected]>
@swcurran
Copy link
Author

Based on the conversation that occurred at the 2021-08-25 meeting, the consensus was that this PR be closed without merging and the topic introduced into the V2.0 discussions.

@msporny @iherman -- am I to close this PR?

@brentzundel
Copy link
Member

Based on the conversation that occurred at the 2021-08-25 meeting, the consensus was that this PR be closed without merging and the topic introduced into the V2.0 discussions.

@msporny @iherman -- am I to close this PR?

I wouldn't close it until there is an issue open to continue tracking the topic

@msporny msporny changed the base branch from main to v1.1 October 28, 2021 03:02
@msporny msporny changed the base branch from v1.1 to v2 November 13, 2021 19:11
@msporny msporny changed the base branch from v2 to v2.0 November 14, 2021 18:00
@Sakurann Sakurann removed the v2.0 label Jul 26, 2022
@OR13
Copy link
Contributor

OR13 commented Aug 30, 2022

I opened #923.

can we close this now?

@iherman
Copy link
Member

iherman commented Sep 7, 2022

The issue was discussed in a meeting on 2022-09-07

  • no resolutions were taken
View the transcript

1.1. Making explicit the binding of the holder to a VC (pr vc-data-model#795)

See github pull request vc-data-model#795.

Manu Sporny: 795 is going to remain open until we discuss the holder stuff at TPAC.

</dl>
3. W3C CCG is notified of PRs that will be merged in the next 14 days if there
are no objections.
4. When it's determined a new reccomendation should go out, the W3C Verifiable
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
4. When it's determined a new reccomendation should go out, the W3C Verifiable
4. When it's determined a new recommendation should go out, the W3C Verifiable

<dt>Substantive</dt>
<dd>Mark with "substantial" tag. Bugfixes are merged into separate branch "v1.2". New Features stay around as an open PR.</dd>
</dl>
3. W3C CCG is notified of PRs that will be merged in the next 14 days if there
Copy link
Contributor

Choose a reason for hiding this comment

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

how?

@msporny
Copy link
Member

msporny commented Oct 6, 2022

I'm closing this PR as the VCWG, led by @awoie, has taken up trying to address issues #789 and #882 in a more generalized way. The expectation is that once #882 results in a more thoroughly documented direction (a Rebooting the Web of Trust paper with examples is expected in the coming months), we'll try and generalize the solution such that it can be used in the VCDM.

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.