Skip to content

Proposal and rationale for eliminating the AnonCreds @context array entry from at least VC, possibly VP #192

@swcurran

Description

@swcurran

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 cryptosuite of AnonCreds2023.
        - Question: Does that require converting to the W3C VC 2.0 Data Model?
        - If so, the IssueanceDate needs to be changed to validFrom
  • Remove the AnonCreds @context from a VC issued with an AnonCreds proof.
  • Eliminate the CredentialSchema and CredentialStatus items from the VC.
  • Move the needed data from those two sections into the proofvalue of 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 cryptosuite of AnonCredsCredentialPresentationProof2023.
  • Define the VP proof as a Data Integrity Proof with the cryptosuite of AnonCredsPresentation2023.
  • Replace the current structure in the credentialSubject item for a predicate with a string. Ugly, but possible.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions