Applications of Zero-Knowledge Proofs
Zero-Knowledge Proofs are a way of verifying data to an external party without revealing the data itself. They work by taking questions from the external party or the ‘verifier' and answering in a simple yes or no. The lack of data shared with the ‘verifier' in the transaction of this information makes Zero-Knowledge Proofs very attractive to data security and privacy advocates.
The simplest example is if a bank needed to know if you fulfill the requirement of having a minimum wage required to acquire a loan. As it is currently, you have to submit a number of documents such as your identification, salary slips among other things to the back. With these documents, the bank now knows much more about you than whether or not you meet the minimum salary requirement for the loan.
With Zero Knowledge Proofs you would be able to confirm to the bank that you do fulfill that requirement without telling them any additional information or even your exact salary. There are many other applications of Zero-Knowledge Proofs despite asking the bank for a loan. Let’s go into detail about some of them.
Authentication systems are what inspired the birth of Zero-Knowledge Proofs in the first place. Through Zero-Knowledge Proofs one party would be able to prove its identity to a second party without revealing any specific information.
This comes in handy when there is a threat of middle-men listening in on your communication. In such a scenario, simply sharing a secret that both parties know would not be ideal since it would also reveal the secret to the middle-man listening in. Hence, providing proof of identity without sharing a shared secret such as a password is much safer.
With Zero Knowledge Proofs we can dictate a user to only act in a manner that is allowed for them. Whenever a user tries to access information or perform an action that they are not allowed to do, they will be rejected.
This is possible due to a special quality of the Zero Knowledge Proofs called ‘Soundness’, which states that a verifier will almost always know when a dishonest prover's statement is false. Hence, whenever a user tries to lie about whether they are authorized to access a resource or issue an order, they would fail.
Another use case for a ZKP is transactions which require confidentiality. In a blockchain like Ethereum, whenever there is a transaction, typically, the blockchain records some information regarding the sender, receiver and the amount transferred. Since all blockchain records are public, anyone can look at that information and make some assumptions about the financial status of the sender and receiver.
ZKPs can help avoid a situation like this by hiding the sender and receiver information. They can vouch for the validity of a transaction without revealing the information about the participants.
Bonus: Sharing Personal Information
This is where our example of the bank-loan fits in. It is the ideal scenario where you need to conform to the bank whether you are qualified for a loan but you don't want to reveal unnecessary information to the bank. ZKPs would help the bank confirm your qualification for the loan and help you avoid having to share more information with the bank.
Zero Knowledge Proofs are an important concept that is going to have an impact on how we transfer and confirm data in the future. Especially in the case of digital assets such as cryptocurrencies and tokens. Furthermore, ZKPs can also help push back against the constantly snooping and spying corporations that collect user data to sell at a profit.