Hyperledger Ursa is a shared cryptographic library that would enable people (and projects) to avoid duplicating other cryptographic work and hopefully increase security in the process. The library would be an opt-in repository for projects (and, potentially others) to place and use crypto. Hyperledger Ursa consists of sub-projects, which are cohesive implementations of cryptographic code or interfaces to cryptographic code. There are currently two sub-projects:

“Base Crypto” Library – Our first sub-project will be our “base crypto” library, of which the main feature is our shared modular signature library. This has the implementation of several different signature schemes with a common API, which allows for blockchain builders to change signature schemes almost on-the-fly (or to use and support multiple signature schemes easily).

Z-Mix – Our second sub-project will be Z-mix. Z-mix will offer a generic way to create zero-knowledge proofs that prove statements about multiple cryptographic building blocks, including signatures, commitments, and verifiable encryption. The goal of this subproject is to provide a single flexible and secure implementation to construct such zero-knowledge proofs. Z-mix consists of C-callable code but there are also convenience wrappers for various programming languages.