Zero-knowledge proofs, also known as ZK or ZKPs, are a powerful cryptographic primitive that enables you to prove that you have a secret without revealing it to anyone.
In 2022, the CEO of Epic Games known for developing the popular game, Fortnite, said;
But it won’t only be for gaming. Beyond using it to compress the size of blockchains in order to scale, ZK technology proves, via cryptography, that something is true without sharing the additional information behind it.
Several organizations are looking towards it for needs such as privacy-enabled identity authentication or proof of ownership resulting in many different types of ZKPs arising from the movement — here are four key ones you should know about with short explainer videos.
1. zk-SNARK
zk-SNARK stands for zero knowledge Succinct Non-interactive Argument of Knowledge.
It stands out for being succinct, meaning the proofs are small and can be verified very quickly making it easier for anyone to participate on the blockchain, not just those who have complex computer setups that many blockchains require.
A common misconception is that all zk-SNARKs require a trusted setup— a process that entrusts a few individuals to generate keys which could greatly hinder the security of a network. However, recent advancements have rendered trusted setups unnecessary for blockchains using zk-SNARKs.
2. zk-STARK
zk-STARK stands for zero knowledge Scalable Transparent Argument of Knowledge.
They use a different type of cryptography than SNARKs, which could be less susceptible to attack by theoretical quantum computers, essentially supercomputers that are powerful enough to run complex computations. They also do not require a trusted setup but have some restrictions on the kinds of computations they can handle.
The main drawback of existing zk-STARKs is their large proof size, which is 10 to 100x larger than zk-SNARKs. This makes them more costly to send over the wire for cryptocurrencies and other applications, where bandwidth is often a constraint. Check out this video for more details!
3. zkRollups
ZK rollups are a layer 2 solution originally developed to address Ethereum’s scalability issues of high transaction costs and low throughput, especially as the chain grows. They do this by processing computations off-chain, “rolling up” this bundle of transactions, then submitting a compressed proof onto the main chain to verify its validity.
The combination of off-chain and on-chain activity increases scalability by reducing the burden on the base layer chain. By bundling many transactions into a batch to send to the blockchain, transaction costs can also be split amongst many users, which decreases individual gas fees.
Currently, zkRollups are well suited for simple transactions— such as an exchange app that processes a lot of payments— instead of executing more complex smart contracts. This is because zero knowledge Ethereum Virtual Machines (zkEVMs) are still under development, although rapid progress is being made.
Once these zkEVMs are enabled, zkRollups will be able to better handle complex smart contract computations on Ethereum.
4. zkApps
zkApps, or ZK-powered smart contracts, perform general-purpose computations off-chain to be verified on-chain, which means your information never leaves your local device, ensuring your privacy. Instead of giving your data to a central database or company, there could be a zkApp that helps you share proof of your data which anyone can verify is true because it’s been validated on-chain.
Mina Protocol is one of the first projects bringing ZK smart contracts to the public which can be written in a Typescript library called o1js (formerly SnarkyJS). This opens up the door to the average developer, making ZK easily programmable. Check out this video for an example of how you can use a zkApp.
Mina’s Zero Knowledge Technology
Mina Protocol uses zk-SNARK technology and takes it to a new level by using recursion so that no matter how many transactions or blocks are added to the chain, the computations stay small, scalable, and efficient and the chain remains a consistent 22KB in size. Developers can also easily program recursion with zkApps on and off chain to create high-throughput applications, construct large transactions, and create multi-party proof constructions.
The Mina ecosystem is also working to bring zkRollups and zkBridges which will enable developers on any blockchain to integrate with Mina for its complex zero knowledge smart contract functionality.
Although all of the previous types of ZKPs can be leveraged for privacy, Mina’s zkApps are currently the most direct and easy way for you to prove something on the internet to be true, while maintaining your data privacy.
If you want to stay up-to-date with Mina’s development in the ZK space, sign up for our monthly newsletter.
If you’re a developer and want to dive deeper into building apps with zero knowledge, check out what you need to know before building then test Mina’s zkApps out in these step-by-step tutorials.
About Mina Protocol
Mina is the world’s lightest blockchain, powered by participants. Rather than apply brute computing force, Mina uses advanced cryptography and recursive zk-SNARKs to design an entire blockchain that is about 22kb, the size of a couple of tweets. It is the first layer-1 to enable efficient implementation and easy programmability of zero knowledge smart contracts (zkApps). With its unique privacy features and ability to connect to any website, Mina is building a private gateway between the real world and crypto—and the secure, democratic future we all deserve.