Use cases for cryptocurrencies often involve exchanging information to trigger a smart contract. You tell the computer program something, it tells the other person involved in the transaction and it fulfills a function. Both parties are presumably happy and go about their day safe in the knowledge that everything is working as intended.
But what if you’re parting with private information, which in ideal circumstances, you would not want to freely give up?
Not to mention the issue of data protection. Institutions aren’t infallible when it comes to leaking information to third parties, and in many cases the stakes are high.
The beauty of zero-knowledge proof is that the user doesn’t have to share this information with other parties, just prove to the verifier that it is correct and true. To make this possible, ZKP relies on algorithms that take data as input and return ‘true’ or ‘false’ as output.
In simple terms, a zero-knowledge proof is made up of three aspects: witness, challenge and response.
The secret information is the “witness” to the proof. This establishes a set of questions that can only be answered by a party with knowledge of the information and therefore allows it to be tested with questions in the “challenge” stage.
So when the prover responds with the answer to the question, the verifier is then able to check if they really have access to the witness. Numerous questions can be asked to establish the validity of the answers, and by repeating the process, a prover’s likelihood of faking knowledge of the witness drops significantly.
This is called interactive zero-knowledge proofs; there are other forms being conceptualized to account for when provers and verifiers aren’t available or cannot interact regularly.
One of the best use cases for zero-knowledge proof is when people want to take out a bank loan. Mortgage applicants might not want to give the bank their exact income, but can instead prove it lies within a certain range.
Online voting is another potential benefactor because not only can people vote anonymously, they can further see it has been registered and counted.
The explosion of the machine learning industry provides another use case, due to the importance of keeping the utmost secrecy to stop other parties from replicating the work. When a proprietor needs to show results to secure funding and prove to the world that it acts as intended, zero-knowledge proof allows for these results to be published without revealing the inner workings of the model itself.
This is just the tip of the iceberg. Where privacy is a concern, zero-knowledge proof can replace existing systems with one that protects all parties.