- Zero knowledge proofs are a type of cryptography that keeps the details of a transaction hidden.
- The method was first developed during the 1980s by a group of mathematicians.
- Zcash was the first cryptocurrency to deploy the technology, but others have since followed.
On blockchain networks like Bitcoin, all our financial activities are recorded on a public ledger for all to see. Drug dealers on the Silk Road were caught trying to launder Bitcoin because the Department of Homeland Security was able to track transactions back to their elicit beginnings. Perhaps drug dealers should get caught, but what if the government was corrupted or violating basic human rights. Crypto assets like Bitcoin once promised freedom from the arbitrary domination of nation-states, but can there be freedom without privacy? That's where zero-knowledge proofs come in.
We'll explore how zero-knowledge proofs work, who invented them, and how they are currently being deployed in blockchain and elsewhere.
What are zero-knowledge proofs?
A zero-knowledge proof is a method used in cryptography to prove that something is known without revealing the known information directly. It essentially allows private information to be kept secret in an exchange. 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.
Concept: provers and verifiers
In zero-knowledge proofs, the basic roles are the prover and 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 verifiers test every time without a problem. It's like when a bank or institution asks you for letters of a known secret word to verify your identity. You're not telling the bank what's in your bank account, you're merely telling them that you know the sequence of a given word.
A brief history
- 1985- The first zero-knowledge proofs were written about in a paper called "The Knowledge Complexity of Interactive Proof-Systems" by Shafi Goldwasser, Silvio Micali, and Charles Rackoff.
- 2012- Alessandro Chiesa and a team of researchers coin the term zk-SNARKs.
- 2016- Zcash is released and becomes the most used privacy-focused cryptocurrency to use zk-SNARKs .
What’s so special about it?
Zcash is the first widespread use case and application of zero-knowledge proofs in the crypto world. The privacy coin uses a form of zero-knowledge proofs called zk-SNARKs which stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”. In the basic zero-knowledge proofs we’ve been discussing, provers and verifiers must interact for a few rounds for the verifier to the be convinced of the prover’s honesty. In zk-SNARKs, the interaction is taken out so proofs become more complicated. However, zk-SNARKs also allow proofs to be more efficient and use less data—a vital feature in blockchain networks where memory and space are precious in order to keep a network afloat.
Did you know?
In a zk-SNARKs based protocol, there must be a “trusted setup” to start the system. The information used at start up—if it fell into the wrong hands—can be used to jeopardize and corrupt the entire system after it is deployed. In Zcash, the private keys used at launch and computers that processed them were destroyed in a special ceremony.
What else is different?
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. Zk-STARKs is a type of zero-knowledge proof that does not require the vulnerable trusted setup phase and also claims to be more scalable and efficient than zk-SNARKs.
StarkWare is a company developing zk-STARKs tools and software to make blockchains more private and scalable. It was co-founded by Alessandro Chiesa, one of the researchers who created zk-SNARKs.
What can you do with zero-knowledge proofs?
Aztec is a project seeking to bring zero-knowledge proofs to the existing Ethereum network by building a stack of privacy-focused smart contracts. These fully private smart contracts could be used to create private Ethereum tokens and decentralized organizations (DAOs). The Ethereum upgrade, codenamed Istanbul, was specifically designed to reduce the costs of zero-knowledge proofs like the ones used by Aztec.
Other blockchains are also starting to take privacy seriously. Tron deployed a version of zk-SNARKs on to its network-although not all transactions are private.
On centralized platforms like Facebook, Amazon, and Google our data is sold for profit in an effort to manipulate our behavior through advertising. On completely open blockchain networks all our activities are recorded and public. What zero-knowledge proofs offers is a public and transparent network that protects people from the snoopers, peepers, and creepers of our digital age.