“Anyone who needs a modular cryptographic library for blockchain might find Hyperledger Ursa useful”
Hyperledger Ursa is the latest project to be accepted by Hyperledger’s Technical Steering Committee. This modular, flexible cryptography library is intended for—but not limited to—use by other projects in Hyperledger. We talked to Hart Montgomery, Hyperledger Ursa maintainer about the goals of this project, its two modules, future and more.
“Modularity will be the natural evolution of DLT platforms”
JAXenter: What is Hyperledger Ursa and why was it created? What is its endgame?
Hart Montgomery: Hyperledger Ursa is a modular, flexible cryptography library that is intended for—but not limited to—use by other projects in Hyperledger. Ursa’s objective is to make it much safer and easier for our distributed ledger projects to use existing, time-tested and trusted cryptographic libraries but also new cryptographic implementations being developed.
It was created because we realized that it would save us effort and improve security if we collaborated on our cryptographic code. Its endgame is just to be a secure, modular cryptographic library that supports most of the common cryptographic needs for permissioned blockchains in an interoperable way.
JAXenter: Who should use it? What are the uses cases for Hyperledger Ursa?
Hart Montgomery: We designed Ursa to be used by the other Hyperledger projects. However, anyone who needs a modular cryptographic library for blockchain might find Ursa useful.
JAXenter: What are its biggest benefits? Why should developers use it?
Hart Montgomery: The biggest benefits (for us) are due to the fact that Ursa concentrates cryptographic and security expertise in Hyperledger in one place. This means that we have more eyes on our algorithms and implementations and thus are likely to make fewer security mistakes. Developers may want to use Ursa due to its modular structure: changing cryptographic schemes or protocols should be much easier than when using traditional libraries.
Developers may want to use Ursa due to its modular structure: changing cryptographic schemes or protocols should be much easier than when using traditional libraries.
JAXenter: Ursa will be written mostly in Rust but will have interfaces in all of the different languages that are commonly used throughout Hyperledger. What languages are we talking about?
Hart Montgomery: In the near term, we are talking about Go, Python, and Java. In the longer term, it’s not entirely clear. We will support what the community uses.
JAXenter: Hyperledger Ursa has two modules. Could you explain what they are all about?
Hart Montgomery: The first module involves basic cryptography wrapped in a modular way. In this module, we incorporate standard libraries and implementations. The goal is to allow developers to use standard cryptography in a “plug and play” manner.
The second module, which we named zmix, contains more complicated, novel, and less standard cryptography related to “smart” signature protocols (i.e., threshold signatures) and zero knowledge-related cryptographic protocols. These algorithms have become popular in blockchain applications recently and other Hyperledger projects have been interested in solid implementations.
JAXenter: Hyperledger Ursa seems to be the first common component/module and a step towards modular DLT platforms, which share common components. What do modular DLT platforms consist of? Are they the natural evolution of DLT platforms?
Hart Montgomery: Great observation! For many of us, the long-term vision for Hyperledger is indeed modular DLT platforms that are built from shared, common components. Modular DLT platforms consist of exactly the same things that regular DLT platforms do, with the difference that it is easy to swap out components in a modular DLT.
Examples of modular components certainly include, but are not limited to, cryptographic algorithms, consensus protocols, data storage mechanisms (database type), identity management systems, chaincode/smart contract interpreters, and much more. Since there will likely be no single DLT configuration that works for all (or even many) blockchain applications, we think that modularity will be the natural evolution of DLT platforms.
JAXenter: What should we expect from Hyperledger Ursa in the future? What are the plans for 2019?
Hart Montgomery: In the near term, we hope to get Ursa up and running to the point that Hyperledger Indy will use it. We expect this to be done relatively soon as the code base is relatively consistent with Indy’s current crypto library. Over the next year, we hope to incorporate the features that the other Hyperledger DLT projects need in order to use Ursa for their cryptography, probably starting with Hyperledger Sawtooth. In addition, we plan to add more new zero knowledge-focused protocols to zmix in the next year as well.