Zero-Knowledge Application
Zero-knowledge application (zApp) is a decentralized application that makes use of privacy-enhancing technologies (PETs), but operates correctly despite incomplete information, due to verifiable computation and arguments of knowledge.
Use Cases
- Zero-Knowledge Finance
- Cryptocurrency (crypto) is a tradable digital asset or digital form of money that only relies on cryptography to solve the double spend problem.[1]
- Non-fungible token (NFT) is a unique and non-interchangeable unit or asset possessed digitally.[2]
- Stablecoin (SC) is a digital currency or commodity pegged to a reference value.[3]
- Decentralized autonomous organization (DAO) is an entity that makes decisions secretively and independently.[4]
- Self-sovereign identity (SSI) is a digital identity that gives individuals the absolute control of their digital credentials i.e. without disclosure to authoritative issuers.[5]
- Game, if turn-based, can naturally run on top of consensus. Real-time game can benefit in less straightforward ways, e.g. proof of speedrun[6], proof of hi-score.
- Gamble can ensure fair random[7] and payments.
- Information market[8] is a trustless bazaar of mathematically formalizable secrets.
Privacy-Enhancing Technologies
We highlight some of PETs, whilst note that more specialized schemes and combinations thereof do exist.
Zero-knowledge proof (ZKP) allows to attest the integrity of computation over own secret data. It is the primary tool in Blacknet, herefrom zApp the abbreviation.
Homomorphic encryption (HE) permits computation over encrypted data. A curious consequence is possibility of lightweight wallet without loss of privacy.
Secure multiparty computation (SMC) enables joint computation over secrets. It could be crucial in financial applications, for example, to match bids and asks, keeping the price concealed.
Development
Development of zApps is ongoing R&D progress. We are examining whether KiloNova the ZK-PCD (zero-knowledge proof-carrying data from folding schemes) instantiated on top of LatticeFold (folding scheme for Ajtai commitment) will provide a practical solution for our goals, although it also can work more directly on top of elliptic curves.
Summary
Verifiable computation solves the long standing problem of our design: application composability, also known as, two-way communication between applications. Zero-knowledge can not only add privacy to widely known dApp types, but also paves the way to new ones. Most advanced dApps, in fact, don’t fit into the pure ZK framework, and need to be accompanied with no less sophisticated FHE or SMC.
References
- Satoshi Nakamoto, Bitcoin P2P e-cash paper, .
- Dapper Labs, CryptoKitties | Collect and breed digital cats!, .
- Bitfinex_USD, The first dividend paying USD asset, .
- Samer Hassan, Primavera De Filippi, Decentralized Autonomous Organization, .
- Christopher Allen, The Path to Self-Sovereign Identity, .
- pdg744, Re: Run Doom on zkVM, .
- evoorhees, SatoshiDICE.com - Verified rolls, up to 65,000x winning, .
- Tim May, Untraceable Digital Cash, Information Markets, and BlackNet, .