Please describe your proposed solution.
Verifiable Credentials is one of the key standardized components of decentralized identity. The VC Data Model, defined at W3C, is a universal data format that lets any entity express anything about another entity. It provides a common mechanism for the interoperable implementation of digital credentials that are cryptographically secure, tamper-evident, privacy- respecting, and machine-verifiable. A common standardized data model enables standardized credential packaging, cryptographic signing, and proof expression. This then creates a VC ecosystem with interoperable credentials, allowing credentials to be processed and understood across and between disparate systems.
Since ATALA Prism does not define any specific format, projects are free to decide which one to implement. However, without convergence to a standardized VC format, there won’t be functional interoperability across the ecosystem.
From RootsID we are constantly pushing towards interoperability. We have already delivered several projects in that direction: Interoperability as Growth Driver, Interoperability Within Atala Prism and Hyperledger-Prism Interoperability. In this project we are pushing the interoperability a bit further into the Verifiable Credential format and presentation exchange protocols.
In summary we propose to research available Verifiable Credential flavors in order to understand differences, pros and cons from an ATALA Prism ecosystem. Define the presentation exchange protocols to request, issue and present Verifiable Credentials and Verifiable Credential Presentations. And finally implement them in RootsWallet, our Identity Open Source wallet.
Given that we are promoting interoperability, our research and decision will not be made in a silo. We will meet and take into account all SSI Cardano community participants, such as the ATALA IOG Team, Proofspace, Snapbrillia, and all other projects that are already building on ATALA Prism.
More deeply in the technical details, we’ll be focusing in comparing at least four different VC formats:
- JSON-JWT Web Token (JWT)
- JSON-LD
- JSON-LD with BBS+
- JSON-CL (anoncreds)
and analyze features like:
- Selective Disclosure – this allows a credential holder to choose which subset of credential attributes are revealed to a verifier. The rest remain hidden.
- Signature Blinding – this allows the issuer’s signature, which is a unique value and therefore a correlating factor, to be randomized before it is shared with a verifier.
- Private Holder Binding – this allows a credential to be bound to a holder without creating a correlating factor for the holder that needs to be revealed upon presentation.
- Predicates – these allow hidden values to be used in operations with a value provided by the verifier. For example, predicates can be used to prove that the holder’s bank account balance is above a certain threshold, without revealing the balance.
Additionally, we’ll document and implement in RootsWallet the protocols needed to exchange VC presentations such as:
- DIF Presentation Exchange 2.0
- DIF WACI Presentation Exchange
- Hyperledger Aries RFC 0454 - Present Proof Protocol 2.0
- Hyperledger Aries RFC 0453 - Issue Credential Protocol 2.0
Please describe how your proposed solution will address the Challenge that you have submitted it in.
In RootsID we believe that Interoperability is the major driver for adoption of Self-Sovereign Identity solutions. Creating an ecosystem based on standards will facilitate the onboarding of new SSI projects and will create a familiar environment to attract developers.
This project is just about that. Define and agree on a standardized way to use Verifiable Credentials that can be adopted by current stakeholders, so newcomers and projects in the broader SSI ecosystem can interoperate in a well known manner. Providing documentation and Open Source code will enable builders of solutions to conclude that Cardano is the right platform to build systems that require the use of Decentralized Identity.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
The main challenge is making a decision that can be suitable to be adopted by most players. There’s a risk of making a decision that later is implemented by only a few so the goal for interoperability is not achieved massively. This is a recurring problem when selecting technologies because the decision should be based on different factors that do not always align, such as adaptability, robustness, maturity, features richness, and community adoption.
In order to minimize that risk we’ll plan to:
- deeply research technology and adoption in other ecosystems
- contact all Cardano SSI players to gather their opinion and view of the matter
- contact experts to have a long term view of each technology
- avoid unnecessary constraints by supporting a reasonable set of options that are a good fit for more projects.