Re: AnonCreds v2 + Data Integrity -> Demonstrated path to convergence

On Fri, Nov 24, 2023 at 3:53 PM Golda Velez <gvelez17@gmail.com> wrote:
> hey Manu quick note - so our team (with Daniel) is doing the python wrapper part of the Anoncreds/VC implementation for bcgov, I noticed tho they specified to be compatible with vc data model 1.1.  Should we be pushing internally for them to move to 2.0?

In an ideal world, yes, they should be targeting VCDM v2.0 -- we are
about a month or so away from going to "Candidate Recommendation" with
that specification (that means, feature freeze, we're done, only very
minor changes are expected from now until July 2024, which is when
it's expected to become a ratified global standard). As we all know,
that might drag out longer than we'd like, but we're narrowing down on
the final set of changes for VCDM v2.0 this month.

That said, if BC Gov doesn't want to move to v2.0, they should be able
to use just the VCDM v1.1 context with the Data Integrity 1.0 context
(or an Anoncreds-specific context if more fields need to be supplied).

If you're putting together a cryptosuite that is going to be used w/
VCs, the general advice is to align with `DataIntegrityProof` and:

1. Use the VCDM v2.0 context (which has `DataIntegrityProof` built in), OR
2. Use the Data Integrity v1.0 context w/ your VCDM v1.1 VCs.

So, if you're doing a VCDM v2.0 VC secured using Anoncreds, your VC
will end up having this as the context (because DataIntegrityProof is
included by default in VCDM v2.0):

"@context": [
  "https://www.w3.org/ns/credentials/v2",
  "https://market-vertical.example/contexts/v1"
]

and if you're doing a VCDM v1.1 VC secured using Anoncreds, your VC
ends up w/ this context (because DataIntegrityProof IS NOT included by
default in VCDM v1.0 or v1.1):

"@context": [
  "https://www.w3.org/2018/credentials/v1",
  "https://w3id.org/security/data-integrity/v2",
  "https://market-vertical.example/contexts/v1"
]

and if Anoncreds needs to define new properties (which I'd very
strongly advise against), your VC ends up w/ this context:

"@context": [
  "https://www.w3.org/2018/credentials/v1",
  "https://anoncreds.example/contexts/v1",
  "https://market-vertical.example/contexts/v1"
]

In any case, shoot for the first example, it'll be the thing that's
going to be the most compatible w/ everyone else in the ecosystem. If
you need to define a new context for Anoncreds (which, again, I
suggest that you DO NOT do), we can help you do that.

Whatever the path forward, we are committed to helping BC Gov (and
you!) to make sure it works seamlessly in both VCDM v1.1 and v2.0.

Did that help?

-- manu

-- 
Manu Sporny - https://www.linkedin.com/in/manusporny/
Founder/CEO - Digital Bazaar, Inc.
https://www.digitalbazaar.com/

Received on Saturday, 25 November 2023 23:18:52 UTC