Skip to content
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

[proposal] Request for roadmap to support W3C V2 Verifiable Credential Data Model #1371

Open
ashleythedeveloper opened this issue Apr 8, 2024 · 10 comments
Labels
enhancement New feature or request pinned don't close this just for being stale

Comments

@ashleythedeveloper
Copy link

Is your feature request related to a problem? Please describe.
As I understand it, Veramo currently only supports the W3C V1 Verifiable Credential Data Model (VCDM) via the credential-w3c package. Is there or will there be intent to support the V2 VCDM?

Describe the solution you'd like
We would like to see support for the W3C V2 Verifiable Credential Data Model in Veramo, either through an update to the existing credential-w3c package or by creating a new package specifically for V2 VCDM support.

Describe alternatives you've considered
As an alternative, we are considering creating our own plugin to support the V2 VCDM and maintaining it ourselves. However, we believe it would be beneficial for the Veramo community to have native support for the latest W3C standards.

Additional context
While the V2 VCDM is still in draft, we believe it would be beneficial for the Veramo community to have a roadmap for supporting the W3C V2 Verifiable Credential Data Model once it is finalised. This will help keep Veramo up-to-date with the latest standards and ensure compatibility with other systems and libraries that will likely adopt the new model.

@ashleythedeveloper ashleythedeveloper added the enhancement New feature or request label Apr 8, 2024
Copy link

stale bot commented Jun 16, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix This will not be worked on label Jun 16, 2024
@mirceanis mirceanis added the pinned don't close this just for being stale label Jun 18, 2024
@stale stale bot removed the wontfix This will not be worked on label Jun 18, 2024
@vincentkelleher
Copy link

Great you brought up this subject @ashleythedeveloper 🙌

I'm a software engineer of the Gaia-X Lab team and we are basing most of our work on verifiable data.

We use Sphereon's SSI-SDK to implement OpenID Connect for Verifiable Credentials compatibility and this relies on the Veramo Framework. As this issue states, we are using VCDM v2.0 but Veramo isn't compatible with it at the moment.

I think that supporting this data model is something that would be interesting to have out-of-the-box for the community so I will try to raise a pull request about this 😊 (Note to self) We mustn't forget that the project documentation needs to be updated too.

@ashleythedeveloper
Copy link
Author

Thanks @vincentkelleher,

Our team is currently in the process of extending Veramo to facilitate the issuance of compliant W3C V2 Verifiable Credentials.

I believe the only thing we have left to do is to update the Data Integrity Cryptographic Suite to support eddsa-rdfc-2022 suite.

Once we have, we can document the changes we have made and point you to a reference implementation.

@vincentkelleher
Copy link

That's awesome @ashleythedeveloper 👍

I'm just wondering if the remaining updates should be done separately they are not critical to using VCDM v2.0 ? For example, in our case we use VC-JWT as an enveloping proof 😇

@ashleythedeveloper
Copy link
Author

Good point @vincentkelleher.

Let's aim to have the changes we have made document by the end of next week, along with a link to the reference implementation for the community to review.

We would also be interested in knowing about your approach to facilitating the enveloping proof mechanism as this is also something we would like to support but based on our research, we will need to modify some libraries, which we plan to do within the month.

@vincentkelleher
Copy link

@ashleythedeveloper don't hesitate to contact me if you need some help on this task 😉

About the enveloping proof, we are currently just making sure everything works correctly between our modules and we will then externalize everything in a specific library to facilitate VC-JWT creation and verification through DIDs 😊

@vincentkelleher
Copy link

Hi @ashleythedeveloper 👋

Any updates about your implementation of VCDM v2.0 ? 😊

@ashleythedeveloper
Copy link
Author

@vincentkelleher, sorry for the delay. This fell off my radar...

I will have the changes documented by the end of the week.

@ashleythedeveloper
Copy link
Author

ashleythedeveloper commented Aug 9, 2024

Changes made to Veramo core and dependencies to support W3C v2 VCDM:

Dependency Original repo Forked repo Justification for the modifications Explanation of changes Commit link
digitalcredentials/vc https://github.com/digitalcredentials/vc https://github.com/gs-gs/vc The library force using the VCDM V1 - Add VCDM V2 context
- Update validation of context must contain VCDM V1 or VCDM V2 context
- Update validation of status to suitable with V1 and V2
- gs-gs/vc@345624c
- gs-gs/vc@bfad762
- gs-gs/vc@f3fef99
credential-status https://github.com/uport-project/credential-status https://github.com/gs-gs/credential-status The library can't adapt with credentialStatus V2 data model - Update to adapt with the credentialStatus V1 and V2 data model
- Add the logic to validate the credentialStatus as an array
- gs-gs/credential-status@e2d96f5
- gs-gs/credential-status@d7dcd11
veramo https://github.com/decentralized-identity/veramo https://github.com/gs-gs/veramo The credential-w3c plugin force using the VCDM V1 - Update the credential-w3c plugin to adapt with the VCDM V1 and VCDM V2
- Update the credential-ld plugin to allow using the VCDM V2 context or VCDM V1 context
- Update dependency for credential-status
- gs-gs@304aee5
- gs-gs@2749bae
- gs-gs@4c3f38f

Plugins created to support issuing compliant v2 VCDM credentials:

  • Credential router - TBA
  • API validation - TBA
  • Credential status (bitstring status)
  • DI proof crypto suite - TBA
  • KMS (enveloping proof) - TBA

Reference implementation to issue compliant W3C v2 VCDM credentials (In progress) - VCkit

@vincentkelleher
Copy link

@ashleythedeveloper there is indeed some work to be done 🤯

Thanks for the feedback 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pinned don't close this just for being stale
Projects
None yet
Development

No branches or pull requests

3 participants