As one of the selected parties in the current eSSIF program, Datarella aims to bring Anoncreds based on CL-Signatures to the Aries Framework Go. In this blogpost, we provide a progress report on the Aries Bridge from the project we are working on in the eSSIF-Lab and where we are heading next.
There are currently two major types of Verifiable Credentials used in the SSI world that implement different cryptography schemes and have different capabilities. However, both are perfectly fine to implement working SSI use cases.
The first type is based on the “Camenisch-Lysyanskaya ZKP” signature scheme, or short CL-Signatures, to issue so-called Anoncreds. It is used in SSI projects that implement Hyperledger Indy, a DLT with an SDK that was created specifically for SSI use cases and with support of the Aries Protocol. The popular Aries Cloud Agent Python is implementing these kinds of Verifiable Credentials and therefore a lot of existing SSI use cases are using Anoncreds.
The second type are JSON-LD credentials which is recommended as a standard by the W3C. It comes from an ledger independent approach and relies more on semantics which allow for a broader ecosystem interoperability. This approach is preferred among the Aries Framework Go ecosystem.
If you want to learn more about different credential types, take a look at the article “Categorizing Verifiable Credentials” from Evernym and the paper from Kalyia Young called “Verifiable Credentials Flavors Explained”.
One major problem is that these two types of Verifiable Credentials are not compatible with each other as they are using different cryptography determined by the ecosystem they are residing in. Therefore, Datarella aims to make Anoncreds available to the Aries Framework Go to get the best of both worlds. This allows for deploying agents on non-mobile edge devices while being compatible with solutions built on the Aries Cloud Agent Python or Hyperledger Indy, respectively.
We decided to write a wrapper of the indy-credx library in Go. This allows us to call the indy-credx functions for credential management from a Go environment, such as a vehicle or a mobile device. Our pull request was successfully merged in the shared rust libraries and is now openly accessible by others. However, this was just the first step. In the next step, we will integrate the wrapper with the Aries Framework Go to simplify the integration from that side.
This project has received funding from the European Union’s Horizon 2020 research and innovation programme within the framework of the eSSIF-Lab Project funded under grant agreement No 871932.