-
Notifications
You must be signed in to change notification settings - Fork 25
Description
We've been digging into this issue for the last couple of weeks. I've created this document[1] that has lots of details/rationale about the approach, with only a few questions. I have one fundamental question to ask, and provide a <tl;dr> below of the document.
[1] https://hackmd.io/@BYJVN-mpSCe5H3eaIw7-7g/ryk4dvIIp
Fundamental question: To use the proof.type of "DataIntegrityProof" with a named cryptosuite, I believe we have to use W3C VC v2.0 -- is that correct?
<tl;dr> of the document content about what we should do:
It is a good idea to at least eliminate the VC AnonCreds @context array. To do so:
- Define the VC proof as a Data Integrity Proof with the
cryptosuiteofAnonCreds2023.
- Question: Does that require converting to the W3C VC 2.0 Data Model?
- If so, theIssueanceDateneeds to be changed tovalidFrom - Remove the AnonCreds
@contextfrom a VC issued with an AnonCreds proof. - Eliminate the
CredentialSchemaandCredentialStatusitems from the VC. - Move the needed data from those two sections into the
proofvalueof the AnonCreds2023 Data Integrity Proof -- at the cost of developer usefulness.
It is not strictly required for also eliminating the AnonCreds @context array entry in the VP -- details in the doc on the rationale. However, if we do want to eliminate it:
- Apply all the same changes to all of the derived VCs in the VP.
- Define the VC proofs in the VP as a Data Integrity Proof with the
cryptosuiteofAnonCredsCredentialPresentationProof2023. - Define the VP proof as a Data Integrity Proof with the
cryptosuiteofAnonCredsPresentation2023. - Replace the current structure in the
credentialSubjectitem for a predicate with a string. Ugly, but possible.