What Is a Zero-Knowledge Proof? 0️⃣🔍🔐
Zero-knowledge proofs are a key component of cryptography and privacy in the digital world, but what are they and how are they used today?
Zero-knowledge proofs (ZKPs) first appeared in a 1985 paper where they were defined as “proofs that convey no additional knowledge other than the correctness of the proposition in question.”
In simpler terms, ZKPs are:
“A way of proving that something’s true without revealing what it is.”
They’re a cornerstone of much of the modern world. Companies use them to find information in huge datasets, they’re key to a whole host of technologies being developed in the Web3 space, and governments even use them to determine the nuclear capabilities of other countries.
How Do They Work?
The key idea behind them is that you can perform a computation to show your knowledge of the information without revealing anything about the information itself.
They’re based on complex mathematical algorithms and rely on the properties of various cryptographic processes such as hash functions, digital signatures, and encryption.
The full process of how ZKPs work isn’t easy to understand and is beyond the scope of this article, but here’s a simplified version from the Binance Academy:
“Imagine a tunnel with two entrances, A and B. There is a locked door with a secret code blocking the only path and preventing people from walking through the tunnel from one end to another (A to B). You know the secret code and want to sell it to Mrs. X, who wants to access the tunnel.
You want her to pay upfront before you reveal the code to her but she first wants you to prove you really know the code. In this case, she can do so by standing in front of the tunnel and watching you walk into one of the entrances and come out of the other. This way, she will be satisfied that you really know the secret code.”
If you want another explanation in video form, I think this one's great.
Why Do We Need Them?
ZKPs provide a way to establish trust between two parties remotely, an incredibly useful tool in today’s digital world. They allow for increased:
Privacy/Trust - Allow you to prove something without revealing additional information beyond the fact that the statement is true/false - especially useful in a decentralized network that lacks a single source of truth.
Efficiency - Can reduce the computational load needed to establish trust over a network. Very useful when real-time authentication is required, such as in online transactions.
Security - Allow you to prove your identity without revealing sensitive information such as passwords or private keys. This can help prevent attacks such as password cracking or keylogging.
Use Cases
The potential use cases for ZKPs are almost limitless. They can play a role anywhere that data and privacy are important, and these days, there’s no shortage of technology with a need for that.
Crypto
In crypto ZKPs allow a user to prove to the network’s validators (miners in a proof of work blockchain, stakers in a proof of stake one) that they have enough money in their account to make a transaction without revealing the details of it, ie - sender/receiver addresses, transaction amount, etc.
zCash is a great example of how ZKPs are used in the crypto space. Created in October of 2016, Zcash is one of the most privacy-centric cryptos out there and according to the team behind it:
“Ensures transactions remain confidential while allowing people to selectively share address and transaction information for auditing or regulatory compliance.”
zk-SNARKS (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) are a key component of Zcash. A zk-SNARK is a form of ZKP that can be verified quickly, with a small amount of data, and with a single message between the prover and verifier, hence the “non-interactive”.
Although they require more computing power to verify, they’re basically just a more data-efficient form of ZKP - for or a more in-depth explanation of how they work, see the Zcash documentation.
By using this form of ZKP, Zcash can ensure transactions on the network remain private whilst still being efficient enough to allow for 6-25 transactions per second (tps), much better than the Bitcoin blockchain’s 7 tps.
Other cryptos using ZKPs include Filecoin (to ensure storage providers are storing the data they’ve promised) and Mina (to compress its blockchain into just 22kb, making it the world’s lightest one).
The renewal of research into ZKPs largely started because of crypto and that’s where it’s progressing fastest at the moment. It’s not only in this space that ZKP applications are growing though.
Other
Their ability to verify data without the need for a central authority means that ZKPs will play a key role in the future development of not only crypto, but also the wider world as privacy and data-ownership become more important.
Data can be verified without revealing what the data actually is or where/who it came from. For example, you might want to prove that you’re over 18 without revealing your exact age or that you live in a country without revealing your exact address. ZKPs would allow you to do both of these.
In HR, ZKPs could be used to show an employee that their salary is above that of the average for the company without revealing what the average is. The company could also prove that its average salary is above the market average without revealing it exactly.
In healthcare, ZKPs could allow an authorized party access to medical records whilst ensuring the patient’s identity remains anonymous.
The applications are pretty much limitless. Anywhere anonymity and security are important, ZKPs could play a role, whether it’s HR, healthcare, tech, or finance.
The world of ZKPs is progressing at a rapid rate; let’s take a look at some of the latest developments in the space.
Latest Developments
Polygon zk-EVM
In July of 2022, Polygon (MATIC), a sidechain that runs alongside the Ethereum network and used by Stripe, Meta, and Reddit for payments, announced the release of the world’s first Ethereum-compatible scaling solution using ZKPs.
Experts had previously thought it would take another 10 years to develop something like this. The Polygon zkEVM (Polygon zero-knowledge Ethereum Virtual Machine) will reduce transaction costs and increase the number of possible transactions per second and make it more attractive to developers building applications on top of the Ethereum network. Its existence wouldn’t be possible without the use of ZKPs!
ZK Rollups
ZK-rollups bundle (roll-up) transactions into batches that can be executed off the main Ethereum network. Batching the transactions, rather than sending them individually, reduces the amount of data sent to the Ethereum blockchain as well as transaction time and means lower fees.
Since they’re processed off the Ethereum network, it also makes it harder for bad actors to make changes to the main Ethereum blockchain. If you’d prefer, here’s a 3 minute video explanation that goes into zk-rollups.
Projects using and developing this technology include dYdX (a decentralized trading platform), Sorare (a blockchain-based sports-card game), and Argent (a non-custodial wallet).
There’s plenty more happening in the world of ZKPs. Developments are taking place all the time and 2023 looks like it’ll see more than most years.
Takeaway
The role of ZKPs and the technology related to them is seemingly never-ending. Their applications center mainly around privacy/security and they’re vital to the fast-growing, decentralized, and trustless world of Web3.
As things become more digital and interconnected, the need for secure and private transactions and interactions is more important than ever. ZKPs provide a powerful solution to this problem and will surely play a critical role in shaping the future of technology and society as a whole.
Great explanation of ZKPs! I think Polygoin is going to be huge in the next crytpo bullrun thanks to ZKPs and the ability to reduce transaction costs. They can really take blockchain technology to the next level.