A zero-knowledge proof is used to prove that something is known without revealing what is known.
Letâs say you put a candy bar in a safe. I can prove to you that I know the passcode to the safe by taking out the candy bar and never revealing the code.
Hereâs a quick overview:
Zero-knowledge proofs are a type of cryptography that keeps details of a transaction hidden.
Zcash was the first cryptocurrency to use zero-knowledge proofs (many more cryptocurrencies have adopted it since then)
On a network like Bitcoin, every transaction and financial activity is recorded on ledgers for people to see. This means that transactions could easily be traced back to people.
Cryptocurrencies provided freedom from many powerful structures, but the age-old question is: how can there be freedom without any privacy?
Zero-knowledge proofs are indirect proofs allowing you to prove you know a secret without ever revealing the secret to anyone else. You prove only that youâre telling the truth.
In zero-knowledge proofs, there needs to be a prover and a verifier. The prover must prove they know the secret. The verifier must be able to verify the prover is telling the truth.
It works because the verifier asks the prover to do things that can only be done if the prover definitely knows the secret. If the prover is guessing, he or she will eventually be proven wrong by the verifierâs tests. If the secret is known, then the prover will pass the verifier's test every time without a problem.
Zcash was the first use case of zero-knowledge proofs within the world of cryptocurrencies. Zcash uses a form of zero-knowledge proofs called zk-SNARKs or âZero-Knowledge Succinct Non-Interactive Argument of Knowledgeâ.
In the basic zero-knowledge proofs, provers and verifiers must interact for a few rounds for the verifier to be convinced of the proverâs honesty. In zk-SNARKs, the interaction is taken out so proofs are obviously more complicated.
zk-SNARKs allow proofs to more efficient and consume less data. This saves memory space which is useful for keeping blockchain networks functioning efficiently.
In a zk-SNARKs based protocol, there must be a âtrusted setupâ to start the system. The information used at the time of start up can be used to corrupt a full network after deploying. With ZCash, the private keys that were used at launch and the computers that processed them were destroyed.
The trusted setup phase is considered a security vulnerability because people need to trust that the information used during the setup was destroyed properly. To fix zk-SNARKâs shortcomings, zk-STARKs was created - a zero-knowledge proof that does not require the vulnerable trusted setup phase + allows for greater scalability.
Zero-knowledge is currently being used in many ways. Aztec, for example, is a company that brings zero-knowledge proofs to the existing Ethereum network by building privacy-focused smart contracts.
Other blockchains have also adopted similarly - Tron deployed a version of zk-SNARKs onto its network-although not all transactions are private.
On completely open blockchain networks all our activities are recorded and public. What zero-knowledge proofs offer is a public and transparent network that protects people and gives true freedom and control.
Learn more đ
explain zk as if you're 5
starkware
zcash whitepaper
Iâm trying to build a writing habit by writing here every day about things I learn in web3, blockchain, crypto, etc. If you find errors in my understanding or would just like to talk, it would be most appreciated if youâd reach out @_anyasingh