Applied Blockchain, one of the UK’s leading developers of distributed ledger technology and smart contracts, has announced the alpha release of K0, a zero-knowledge proof library that has been in development for the better part of the past year.
K0 (pronounced “K-zero”) sets out to generate private digital assets compatible with multiple enterprise blockchains.
The Applied Blockchain team set out to solve two problems:
1. The sense that most enterprise blockchain platforms solve privacy at the expense of security (number of parties validating transactions).
2. The issue of diverging enterprise blockchain technologies creating a technology integration gap that will become harder to bridge, with Applied Blockchain “believing that networks will need bridging in order to maximize business value and potential.”
Concerning similar projects, Applied Blockchain noticed that:
a) Blockchain platforms (Quorum, Corda, Fabric) started using zero-knowledge proof technology to improve 1, but not 2.
b) There was already some great work on privacy and zero-knowledge proofs for public blockchains (zCash, Mimble Wimble, Coda, STARKware, AZTEC), but not private, business networks that the firm’s clients use.
K0 based on the Zerocash scheme
After doing lots of examination in 2018, the Applied Blockchain team eventually came across the Zerocash scheme, which is a concept for a private and anonymous cryptocurrency. It is also the only widely deployed application of zero-knowledge proofs in its implementation in Zcash. Studying Zerocash allowed Applied Blockchain to get an understanding of how zero-knowledge proofs can fit into an application by looking at an actual project.
Most of Applied Blockchain’s projects are built on Ethereum, so the team implemented a prototype of this scheme on Ethereum. Note that in the meantime, two other projects were published which do more or less the same thing: Zeth and Nightfall.
It became clear that the “on-chain” part of the scheme (i.e. the verification of the transaction proofs and storing state data) is generic enough to be applied to many smart contract platforms, so Applied Blockchain then ported their implementation to Fabric.
Smart Contract Payments
Applied Blockchain was most interested in private smart contract applications. For example: a trading system in which most of the transactional data is hidden but participants can trust that all transactions conform to some known, agreed-on business logic.
A first step towards being able to realize something like this was trying to find a way to lightly extend Zerocash so that payments can be used as triggers to actions in other smart contracts. For example: a user can use a Zerocash payment to “pay for something” a smart contract does…
“We found a solution for use cases where a user expects a certain payment. By tweaking the protocol a little bit we allow the recipient of the expected payment to precompute before the transaction happens some of the data that will be added to the system state once it actually happens (the part that adds the expected value to their account). They can then register this bit of data in a smart contract.”
“Another change we made in our implementation is that in a transaction a user can specify a smart contract which should be informed about the data created in the transaction (we require that the underlying smart contract platform allows smart contracts to communicate with each other). By specifying the smart contract the designated recipient earlier registered the data in, the sender can make their payment trigger some action in that smart contract. This final step is not private, in that the action that gets triggered is typically a standard smart contract action. However, the amount being transferred is still hidden.”
– Applied Blockchain Team
The current implementation enables creation and movement of zero-knowledge assets on both Ethereum and Fabric, with the trading of a zero-knowledge fungible asset for a visible non-fungible asset enabled on Ethereum.
Applied Blockchain builds enterprise-grade, future-proof, real-world blockchain applications and products for global companies and blockchain startups, for more information on K0, see the whitepaper and visit the company website.