-
Notifications
You must be signed in to change notification settings - Fork 20
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
Support for multiple status codes #65
Conversation
…mpatible support for multiple status value support in a single status list
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 think that credentialSubject is supposed to be credentialStatus?
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.
Needs examples, and possibly a diagram, but I would take issue markers instead of making the PR larger.
damn autocomplete - thanks! |
thanks! Co-authored-by: Brent Zundel <[email protected]>
good call on the issue marker - added that in 84cc35d |
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 size
and message
parameters here add considerable complexity to implementations. I think we should discuss this more (special topic call) before merging this PR.
I also don't know if ttl
is worth the complexity either -- though the burden is less there.
I am not sure about considerable complexity - if you are only interested in revocation and suspension as separate lists, there are no changes. otherwise it is a few extra lines of code to compute index position |
Co-authored-by: Dave Longley <[email protected]>
Co-authored-by: Dave Longley <[email protected]>
The issue was discussed in a meeting on 2023-05-24
View the transcript1.1. Support for multiple status codes (pr vc-status-list-2021#65)See github pull request vc-status-list-2021#65. Michael Prorock: The first one to put out there for attention is VC status list PR #65. This adds a backwards compatible approach to providing the ability to encode multiple statuses in a single list. Dave Longley: This would mean that there were two different ways to express multiple statuses, we should consider if we can get down to one way and which one is better and what the tradeoffs are.
Dave Longley: I haven't been able to think about privacy considerations approach, bit list, and herd privacy. In terms of complexity, it's not just about having number to multiply by... need to think about this. We had said previously that we could have multiple lists... this is a different approach to that, don't know what the consequences are here. Michael Prorock: One thing I would note -- Orie noted this in the chat -- this significantly cuts down on network trips if you have multiple things to check, you use one network call instead of N. Manu Sporny: Real quick. I've been trying to work on the privacy characteristics. People have said that the problem with the bit string starting at zero -- what if we want to hide the number of members in a herd. I think what's being proposed might make some of those approaches not work anymore. I haven't been able to look at the PR can't say positive or negative yet. Michael Prorock: Absolutely, well aware and appreciate your reasoning. I think we need to think it through. Sometimes linkability is desirable and sometimes not. We could have a follow-on PR for these considerations.
Michael Prorock: I personally think things like fuzzing size and so on could be done and worth considering. Kristina Yasuda: Thank you Mike. |
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.
generally in favor of this PR, few comments for refinement
See page 6 here for examples of common status codes and messages that get attached to VCs or other data elements in the trade world |
Co-authored-by: Dave Longley <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
If I understand the use case correctly, this new feature is for exposing CATAIR PGA Status Notification codes? (which I agree, is a very legitimate use case). Which VC in the Traceability Vocabulary does this new type of status list go into? I'm trying to wrap my head around the use case first before commenting on the design approach (which seems workable, but also concerning given the possible complexity added to verifiers that might not understand the optional extension -- should they fail to verify if they don't support the status checking mechanism? Wouldn't that force everyone to implement the feature to ensure they're not allowing VCs that should fail verification to go by? Noting that a number of the CATAIR PGA Status Notification codes provide fairly detailed status information for a specific shipment (possibly up to 100 or more data points?), are you concerned about correlation issues? That is, for every entry, you will have 100 pieces of information to help you understand the status of a particular shipment, while you might not know exactly what shipment that is, you will be able to infer the US' interdiction rate when it comes to shipments into the country. In order to combat that, you will have to inject fake data (but in a way that's believable, so it can't be statistically significant from the other data in the list). It feels like the privacy characteristics of having size > 1 are not quite the same as size = 1. Can you speak to the privacy characteristics of the approach? How are you going to prevent the correlation above, or is this public data, or is the data protected only by organizations that should have access to the data, and if so, are those organizations competitors? My concern is that we might have to defend these design decisions in a privacy review and that might get dicey if there are many bitfields associated with a particular subject. |
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
@msporny thanks for the helpful deep dive on the call today - as noted please hit me with the issues you want me to add references to |
The issue was discussed in a meeting on 2023-06-20
View the transcript1. Support for multiple status codes (pr vc-status-list-2021#65)See github pull request vc-status-list-2021#65. Brent Zundel: agenda today is pr #65 in the vc-status-list repo. Michael Prorock: walking through the PR. There is a common case. rather than only a boolean option for a status and its type by status purpose, ability for one of multiple statuses. Brent Zundel: looking for concrete proposals to move this forward. Ted Thibodeau Jr.: suggest Mike go through and approve/reject changes made; will be easier to review after. Michael Prorock: were some conflicts so I didn't yet, let's see if we can hash it out here so I can approve/deny appropriately. Ted Thibodeau Jr.: comment on those you see that in, mostly just fixing typos. Michael Prorock: will take a look. Manu Sporny: agree this is a legitimate use case. for a shipment, want to accept multiple messages associated with it. number of concerns highlighted with the PR...but to be clear we should figure out a way to address this use case. could potentially be addressed in the way proposed now, but concerned it's conflating two things we won't want to conflate.
Michael Prorock: suggest, if that's the case, that revocation and suspension are misnamed and are verification lists not status lists. the status purpose does provide that clean separation. if we want to change 'status' to 'informational status message' or other, that's a fine way to break that separation. Joe Andrieu: also think we have conflated the two things in an unfortunate way. calling it a status is the error. most verifiers don't care why they shouldn't verify it. just should i accept it or not. does the issuer still stand by it?
Joe Andrieu: a single boolean makes a lot of sense - like for drivers license. if a police officer pulls you over they don't care if it's suspended/revoked, just that it's still valid. maybe should separate into two. status list in the response shows you where you can get status messages. don't know what the best mechanism is. a simple binary mechanism is useful. Orie Steele: glad we're saying the word 'verifier' so much. think we have language in the current spec that make it difficult around validation/verification. our spec does not create normative requirements for verifiers (as far as I'm aware).
Manu Sporny: agree w/a lot of what Orie said. specifically went out of our way to not make them normative statements. wanted verifiers to be able to determine that. this PR raises how status list should interplay there. as JoeAndrieu_ said, there is a conflation in the spec now...not because of this PR, but it is bringing it to light. we want to have both things--(1) I still stand by this thing everything's good (2) I no longer stand by this thing and here are messages that convey why.
Michael Prorock: question to Manu--can we call this informationalStatus for the status purpose? Manu Sporny: yes, a clear separation. Michael Prorock: will not tell someone what their business rules are, but will tell them it's informational.
Orie Steele: you can't tell a verifier what to do with this JSON. fundamentally this is the position the spec is in today. Joe Andrieu: Orie was mostly aligned with what I'm about to say. hiccup which got me was about rejecting or not, which includes validate/verify. can't tell anyone how to validate--their business rules are up to them.
Michael Prorock: brentz if OK with you would like to work on a set of strawmans to get feedback on to move this forward, mindful of time. Brent Zundel: yes, 20m left.
Michael Prorock: concretely. remove mention of verify property from a status message and remove from examples. would that help improve this PR? Manu Sporny: wouldn't object to it, but dlongley brought it up and he's not here.
Manu Sporny: as Kristina said, if we merge to just a status mechanism we need to have some well known values like revocation and suspension, which raises the question about whether they need to be URLs, or strings...if we're going to re-design it'll take more than 20m. Michael Prorock: if we can get the PR merged we suddenly have the ability to attach a binary value to an arbitrary message. we then have a basis to ask some of those questions. if we don't we're blocking a whole bunch of implementations, which is frustrating. Orie Steele: wondering if the vc-status-list work item, which the group has adopted, maybe it needs more incubation. maybe we should add reserved terms definitions under w3 org instead of w3c. if we can't make changes to the doc then maybe it needs to be matured further. so many work items to deliver on.
Manu Sporny: I hesitate, it's a good suggestion if we had more time to do it. a number of us want to get this out there and done. don't think it'll take an enormous amount of work to refactor. maybe 1-2 calls to do it.
Michael Prorock: also -1 to moving it out. don't want to start another standardization process elsewhere to get it out. we have customers and governments looking to use it. Manu Sporny: in the name of compromise what we could do is put an issue marker behind ttl, status message, draft alternative text and then just merge the PR noting clearly that we will modify to try to unify the spec more clearly.
Joe Andrieu: maybe we're in the wrong repo. semantics in vc-core we may need to fix. semantics need to go into the vc data model on to how get additional data, not this work item. Michael Prorock: 100% agree, may not be in the wrong repo, but 'what should i do as a verifier' should be in the core data model.
Orie Steele: agree with what Joe said. core data model said you need an id and type, not anything about what you'll do with those things. if you have different verifier behavior for every RDF type (what we're trying to say?) then I do think this needs to be fixed in the core data model and this status work item. Brent Zundel: course of action-moving forward - issues will be raised and issue markers added to this PR, then the PR will be merged. additional concerns related to this in the VCDM. let's check our existing backlog to see if there's already an issue, otherwise open a new one.
Brent Zundel: 8m otherwise we can call it a day.
Michael Prorock: my suggestion is we remove the notion of verifies as an additional property until core data model issues around how we handle this are resolved. Brent Zundel: hear none. |
Co-authored-by: Manu Sporny <[email protected]>
Normative, substative, multiple reviews, changes requested and made (issues raised for unaddressed concerns), discussed on special topic call, no objections, merging. |
initial additions for better caching guidance and backwards compatible support for multiple status value support in a single status list
Edit to note that TTL introduces a breaking change behavior, but the multiple status handling is backwards compatible with boolean status lists
Preview | Diff