In a time when digital accounts and subscriptions are part of everyday life, maintaining ownership of your personal information while protecting your privacy is increasingly difficult. Add the cybersecurity risks associated with data sharing, and it’s easy to understand why many are concerned. So, how do we combat this problem? One answer is Zero Knowledge Proofs (ZKPs).

What is a Zero Knowledge Proof?

A Zero Knowledge Proof is a secure method of verification that allows one party to confirm to a second party that a statement is true without revealing any information about the statement itself. Think of it like having a secret you want to prove you know to someone without telling them what that secret is. In the case of blockchain technology, a protocol must meet three criteria to be considered a ZKP:

  1. Completeness: The “Prover” must be able to reliably demonstrate that they know the statement. This party is sometimes called the “Witness.”
  2. Soundness: The “Verifier” must be able to confidently determine if the first party has the statement or not.
  3. The statement is not revealed at any point during the interaction.


To better understand how ZKPs work, we can review their use on the Yao’s Millionaires’ problem, a Multi-Party Computational (MPC) problem created by computer scientist and computational theorist Andrew Yao. The problem is that two millionaires—in this example, let’s call them Alice and Bob—want to know who is richer without revealing how much money each has. The solution is as follows:

  1. Without Bob present, Alice gets multiple ballot boxes with labels on each that correspond to a certain amount of money. One of these boxes is labeled with how much money Alice has.
  2. Alice locks all the boxes, throws away the keys for each box except the one that corresponds with her wealth, and sends the boxes to Bob.
  3. Bob has multiple slips with “+” and “-” on them. For each ballot box with a label that is higher than Bob’s wealth, he puts a “-” slip in box. For each box that is labeled lower than Bob’s wealth, he puts a “+” slip into the box, indicating whether he has less or more money. Bob then sends all the boxes back to Alice.
  4. Alice uses the remaining key to open her box. She sees the slip is either “+” or “-,” letting Alice know who is wealthier without knowing Bob’s exact wealth.
  5. Alice can then report the answer to their problem back to Bob without letting Bob know her exact wealth either.
    Now instead of boxes with physical keys and slips of paper, think of this scenario using cryptographic algorithms with generated keys instead. This is how ZKPs can work in non-interactive blockchain transactions.

zk-SNARKs and zk-STARKs

Notably, there are various kinds of ZKP protocols. Two of the more widely known ones are Succinct Non-Interactive Argument of Knowledge (zk-SNARK or SNARK) and Scalable Transparent Argument of Knowledge (zk-STARK or STARK). These acronyms may seem a bit intimidating, so let’s break them down:


  • Zero Knowledge: The witness is never disclosed during the transaction.
  • Succinct: Because the processing power required for the ZKP is smaller than the statement, it can be verified quickly.
  • Non-Interactive: Only one interaction is required for the procedure.
  • Argument: The ZKP is sound.
  • Of Knowledge: The procedure cannot operate without the prover having the witness.


  • Zero Knowledge: The witness is never disclosed during the transaction.\
  • Scalable: When the processing power required for the statement is larger than the proof, STARKS are faster than SNARKS.
  • Transparent: It uses public and guaranteed randomness to create verification parameters.
  • Argument: The proof is sound.
  • Of Knowledge: The procedure cannot operate without the prover knowing the statement.

When making the distinction between the two, it’s important to note that unlike STARKs, SNARKs use trusted setups to generate the parameters for participants.

Limitless Applications

ZKPs are an exciting development with endless applications. From adding extra security and anonymity to blockchain transactions such as the zk-STARKS used by Ethereum, to being a groundbreaking tool for authentication and identity protection, ZKPs are paving the way to a future where individuals have more control over their data than ever before. Examples of industry applications include:

  • Technology company IBM’s use of ZKPs so invoice owners can prove they meet tax compliance requirements without revealing the exact value of any fields of the invoice that are unnecessary for the transaction.
  • Governing bodies’ ability to use ZKPs to do secure and anonymous voting that doesn’t require a third party to tally votes, simultaneously letting the voter know their ballot was included in the final decision.
  • In the financial industry, mortgage applicants can prove they have the necessary income for a loan without revealing their exact salary.
  • Healthcare providers can combine ZKPs with smart contracts to prove patient health information without giving the verifier access to any other personal health information.

These industries as well as stakeholders across countless other industries looking to utilize a zero-trust framework to develop Web3 solutions can benefit greatly from ZKPs. Interested in learning more about the latest Web3 solutions information? Click here to view our resource center and learn more.