It sure would be cool if we could prove who we were over the phone without having to share any information. Maybe as we learn more from cryptography through the use of encryption and blockchains we will be able to come up with better ways to verify who we are without providing private information.
What is Zero-Knowledge Proof?
Zero-Knowledge Proof(ZKP) is used in cryptography to allow transactions to happen between entities without any of the entities exchanging sensitive data such as a password or key.
The act of doing this is actually quite easy, it is the doing it without giving away additional data that makes it difficult. Let’s go into a little example of how ZKP could be used to verify an entity knows the secret without telling us the secret.
Meet Patty
Patty is going to be the prover, her role will be to prove to you that she knows a secret without telling you the secret.
Your role will be to verify Patty knows the secret by having her do a simple exercise and verify she can do it.
Imagine for a moment you have a safe and in the safe is a one of a kind picture of your favorite moment. What are the odds Patty would know how to recreate this picture, especially without you knowing about out? Pretty slim I would think.
Now, Patty would like to prove to you she knows the combo to your safe with out telling you the combo or letting you watch her open it. By preventing you from watching, the rest of your family will know you didn’t collude with her and help her open it in the room.
Patty is now going to go by herself into your safe room and come back out holding your one of a kind picture. By doing this she proves to you and your family, with high certainty she knows the combo to the safe without having to tell you what the combo is.
This simple example provides an idea of how someone may be able to verify who they are without telling you their SSN or password.
Beyond Crypto
What other ideas do you have for how ZKP could be used in the real world to prevent having to tell people or companies sensitive information?