Adding Data Privacy on Blockchain with Zero-Knowledge Proof

Zero-knowledge proof is a verification method that allows blockchain transactions to be verified without having access to pertinent information.

Our colleagues at Altoros have recently published an article centered around zero-knowledge proof (ZKP) and its potential when combined with decentralized technologies. ZKP is a method in cryptography that enables secure transactions, without disclosing sensitive data. In ZKP, a prover can prove to a verifier that they know a particular bit of information without actually having to reveal pertinent details.

The prover picks a question and sends the proof to the verifier

What’s that?

Interactions between a prover and a verifier falls under ZKP as long as the following conditions are met:

Completeness. If the information provided is true, then the verifier will be convinced by the prover.

If the information provided is true, then the verifier will be convinced by the prover. Soundness. If the information provided is false, then the verifier cannot be convinced by the prover, except for unlikely probabilities.

If the information provided is false, then the verifier cannot be convinced by the prover, except for unlikely probabilities. Zero knowledge. If the information provided is true, then the verifier does not learn anything aside from the information being true.

Looking at the three conditions above, completeness and soundness are common traits for methods of interactive proof systems. Only by the addition of zero knowledge do the interactions become ZKP. (Read more about ZKP in this Wikipedia article.)

The verifier picks a question and asks the prover to answer

Where can it be applied?

By combining ZKP and the blockchain technology, use cases where data privacy plays an important role can benefit most.

Authentication systems. These are the systems where a user needs to prove its identity to a second user employing secret information, such as a password, while keeping the secret information itself undisclosed.

Confidential transactions. Typical transactions in public blockchains, such as Ethereum, will record detailed transfer information. Having the knowledge of specific transaction addresses or user addresses is enough to pinpoint and trace transactions. Using ZKP, critical details such as sender, receiver, what and how much was sent, can be hidden for certain transactions, while still allowing blockchain to recognize them as valid.

Anonymous transactions. Some businesses may want to keep blockchain transactions anonymous. This includes hiding user identities for both single and multiple transactions. (Hyperledger Fabric v1.2, which supports a special ZKP-based protocol called Identity Mixer, is such a blockchain.)

At Protofire we started looking at the Aztec Protocol (https://www.aztecprotocol.com). They say they are building an efficient zero-knowledge privacy protocol that enable private transactions on Ethereum. This enables the logic of transactions to be validated, whilst keeping the values encrypted.

We hope to start contributing anytime soon with developers tools, sample applications, and other things to bring massive adoption.

ZKP may just be another method of verification, but its use in blockchain is ideal for businesses that require strong data privacy. For more on ZKP and how it can work with blockchain, read the full article.