Zero Knowledge Proofs (ZKPs) are the fundamental building blocks for privacy within blockchain, but to most people, this tech is a mysterious black box.
What are ZKPs, how do they generate private transactions, and what are the types of ZKPs used in crypto today?
A thread
What are ZKPs?
modern cryptography lets us create a system where a prover can convince a verifier that a given data point is accurate without revealing the data itself.
In crypto, this translates to a blockchain network being able to verify a transaction to be accurate without revealing any info about it.
There are 4 main types of ZKPs used within blockchain today:
1. Bulletproofs
2. zk-SNARKs
3. PLONKs
4. zk-STARKs
These names might sound scary and mysterious, but let's break down what they actually do.
Overall, all of these proof types work relatively the same way - they take in data and verify it to be accurate without revealing the data itself.
Their key differences lie in specifics like speed, replicability, and capability to handle complex transactions.
1 - Bulletproofs
These proofs are the most lightweight and efficient ZKPs and are meant to enable privacy for individual pieces of data rather than an entire transaction.
The goal of these proofs is to show to a verifier (a node operating the chain) that a given value is correct without actually saying what that value is.
One project currently utilizing bulletproofs is
@Monero (XMR) which uses these proofs to hide transaction amounts.
These ZKPs let the chain prove the transaction is valid without revealing the amount being sent, yet they are still simple enough that they don’t add too much
complexity or require significant computing power to run.
2 - zk-SNARKs
While bulletproofs only encrypt a part of the transaction, a zk-SNARK encrypts the entire thing, which includes the amount and the addresses of the wallets involved.
These ZKPs are lightweight and can be executed quickly, making them ideal for privatizing simple/frequent transactions.
@Zcash 🛡️ uses Halo 2, a type of zk-SNARK, to verify transaction validity while hiding amounts and wallet addresses, creating entirely private transactions.
Side note: zk-SNARKs generally require a trusted setup, meaning that you need to trust that the chain setting up these proofs is safe. However, Halo 2 upgraded Zcash to a trustless setup that no longer requires you to trust the chain to be secure.
3 - PLONKs
PLONKs are similar to zk-SNARKs but with one key difference - they’re much more flexible in their use cases.
Typically when a zk-SNARK is set up, it’s meant for one specific use case. PLONKs take this setup and use it as a template so that the same encryption method can be applied across multiple use cases.
PLONKs are great for setting up zk-Virtual Machines (zkVMs) that act as a privacy enabling execution layer for smart contracts.
@Polygon uses PLONKY3 (a type of PLONK) in their zkEVM. This lets developers take the same smart contracts they’re building for Ethereum and implement ZKPs to make them more secure.
If you want to learn how VMs work, check out this section of my free course:
https://dcft.site/5-blockchain-ecosystem-infrastructure#block-7ad71640927845439f61584bf10b2a79…4 - zk-STARKs
The big daddy of ZKPs, zk-STARKs are the more complex version of zk-SNARKs and require much more computing power to execute.
Instead of encrypting individual transactions, zk-STARKs are meant to process batches of multiple transactions at once and don’t require a trusted setup, making them even more secure (and also quantum resistant).
@Starknet 🐺🐱 is the leader in zk-STARKs, using them to help scale Ethereum - and now also Bitcoin - by building VMs and zk-Rollups (batches of transactions) powered by zk-STARKs.
Being trustless, this ZKP also matches the decentralized ethos of crypto while adding scalability.
In summary:
Bulletproofs - hide individual values such as transaction amounts
zk-SNARKs - encrypt the whole transaction including addresses and amount
PLONKs - turn a zk-SNARK proof into a reusable template
zk-STARKs - encrypt multiple transactions at once for scalability
Zero Knowledge Proof development is critical for further blockchain adoption, and I hope this thread helped you grasp this concept further and demystify this tech

If you’d like to learn more about the basics of blockchain, check out
http://dcft.site for a free course that covers all the topics you need to know to be a blockchain pro!