zkApps are smart contracts that allow developers to leverage Mina’s unique zero knowledge technology.
These smart contracts have some unique properties:
zkApps preserve users’ privacy. They use cryptography to prove that something is factual without revealing context or extra information around said fact. So this means zkApps end users can interact using proofs of their personal data, instead of sharing the data itself. For example, zkApps can connect to a credit score provider to prove that your credit score is above a certain threshold. Soon, you’ll be able to prove so much more from any website. This ensures a private and secure experience for the user, and there is also no burden on developers to host and safeguard their users’ sensitive data.
zkApps can execute unlimited off-chain computations at a flat fee. Other blockchains typically use a variable gas fee-based model that is dependent on supply and demand of the network at any given moment. zkApps, in contrast, can perform arbitrarily-complex computations off-chain while incurring only a flat fee to send the resulting zero knowledge proof to the chain for verification of this computation.
zkApps can connect Web2 to Web3. Currently, other blockchains cannot easily bring information that’s on the internet on-chain, limiting the utility of blockchain applications. zkApps, however, can privately interact with any website, proving facts about APIs and webpages on the internet, and access verified real world data for use on-chain. This capability is possible through zkOracles, which uses HTTPS to connect real world data to blockchain in the most trustless way possible.
zkApps can be accessed from other chains and devices — Thanks to Mina’s succinct design, Mina’s zero knowledge proof (zkp) programmability can be accessed from other chains and ultimately even end user devices like smartphones. For instance, there is a bridge being established between Mina and Ethereum so that any dapps built on Ethereum could also leverage Mina’s privacy and other benefits. This feature is enabled by zkBridge technology, which will be available to connect Mina with any other chain.
zkApps are written in Typescript. Instead of being written in a new programming language that developers have to learn, zkApps are programmed using SnarkyJS, which is a Typescript-based library. This greatly expands the pool of developers who can easily get started building zkApps.
zkApps employ an off-chain model, where only a flat fee is required to send the resulting zero knowledge proof to the chain. They are written using SnarkyJS, a Typescript library that leverages zero knowledge proofs.
A smart contract — the code written with SnarkyJS
A user interface (UI) for users to interact with it
For some examples of zkApps that have been built by Mina’s ecosystem, take a look at this community-curated directory.
Are you ready for some hands-on experience? Take a look at the docs and try out writing a zkApp.