-
Notifications
You must be signed in to change notification settings - Fork 109
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
Revisit validation vs verification #1232
Comments
FWIW I wrote a bit about this recently. Would be interested to hear whether the group agrees with my language:
|
The issue was discussed in a meeting on 2023-08-15
View the transcript2.8. Revisit validation vs verification (issue vc-data-model#1232)See github issue vc-data-model#1232.
Brent Zundel: assigned to manu and we will move forward. 1232 - revisit verification vs validation, assigned to Joe. Joe Andrieu: only assigned 16m ago! not clear whether before/after CR, so let's go with before and maybe a draft PR. |
Is the core issue here that verification is about the correct syntactical structure of a credential such that it can be determined to be well structured and securing methods applied to detect tampering? I have understood verification to mean the JSON-LD presented is conformant to the requirements imposed by the core VC data model. Validation, on the other hand, is about business logic that is applied to the credential and in that sense is certainly required that the data model of the credential presented is conformant to the VC data model. But validation is about logical considerations such as whether the credential has been revoked by the issuer. There may be circumstances where there are other business rules that a relying party is concerned about and therefore a validation process that checks these is followed. The core question: is verification about conformance to syntax rules of the VC data model and validation about logical business rules that should be checked, aka validated? |
Validation is the process of applying business rules or a policy to the result of a successful verification. Validation always fails when verification fails. Validation can succeed depending on the rules or policy, based on the attributes of a credential or presentation. When an attribute or extension is not understood, it is assumed to be acceptable, in other words, if you don't check the status when its present, validation "passes" without doing the check... (fails open). At least the following properties SHOULD be checked by rules or a policy and if present and "not acceptable to the verifier", validation SHOULD fail in order to mitigate the risk of failing open:
The following extensions are reserved, but cannot be validated due to lack of definition:
See also this visual representation of this fact, based on comment here: #1263 (comment) |
Beware absolutes like the above which inappropriately dictates business logic. Verification fails when a VC is expired, as with an expired driver's license, but it might still be considered valid for proof of age. |
The issue was discussed in a meeting on 2023-08-30
View the transcript4.6. Revisit validation vs verification (issue vc-data-model#1232)See github issue vc-data-model#1232. Brent Zundel: revisit verification and validation. Joe Andrieu: I don't think there's been any forward movement. |
Consider a proposed PR to the requirements doc for some language on that side of the spec (more about requirements rather than how we meet those requirements) w3c/vc-use-cases#149 |
why pointing to RFC4949 and simply saying what I quoted below is not sufficient?
|
The issue was discussed in a meeting on 2023-09-14
View the transcript2.6. Revisit validation vs verification (issue vc-data-model#1232)See github issue vc-data-model#1232. Brent Zundel: Raised by Orie on behalf of Joe... what do you need to write a PR here? Joe Andrieu: We have text in use cases document now, if people can look at the use case document, that would be helpful. See github pull request vc-use-cases#149.
Brent Zundel: To summarize -- verification checks syntax and cryptography checks out, validation has to do with business logic, and that's how verification and validation are different from one another. Manu Sporny: The only thing that jumps out is the use of normative language in the use cases document.
Manu Sporny: The core seems correct and is a clarification the VCDM would benefit from. Brent Zundel: any other comments from folks?
Brent Zundel: I hear concern about normative language, much broader concern about use cases document -- issue on use cases document would be a good way to track that. Manu Sporny: I'd be fine w/ an issue to track that ^. Brent Zundel: the normative language is bigger than just this PR. so a separate issue on the use cases document is probably the right place to go. Joe Andrieu: Yes, seniment feels like this is the right direction. Would like to hear from others on the queue. Challenge with normative language is that this is requirements for the spec, that's why we use normative language. Ted Thibodeau Jr.: We might want to use requirements language instead of normative statements. Brent Zundel: PR within the next week?
|
|
|
@Sakurann. I dont think that Rule 1 is sufficient for VCs because one RP may accept (validate) a VC that another RP does not. So the same VC cannot be both correct and incorrect (unless the process is not fixed and is validator dependent, in which case the process simply becomes "whatever I say is correct". |
originally raised by @jandrieu regarding #1199
We have "verification" like stuff in the "validation" section.
We need to plan how to address this in relation to all the sub sections, not just the "holder" and "issuer".
@jandrieu can you leave a comment outlined how you would like to see the whole section address this issue more consistently?
The text was updated successfully, but these errors were encountered: