What is “zero knowledge proof” that is adopted by Ethereum and Zcash? Explanation about its Features

Do you know about “Zero knowledge proof” adopted in Ethereum and Zcash? Many people may have heard the term as a technique related to privacy protection of transactions. In this article, we will explain the mechanism of zero knowledge proof.

What is zero knowledge proof


Zero knowledge proof means that a person (prover) does not give information to another person (approver) other than the given information is “is true,” and that information is “true, there is a method to prove that there is.” To put it flatly, it is a means of communicating that “the truth is not injustice” without revealing the contents of information among the parties who make the transaction.
As a process, 1) the prover proves knowledge about the hash value to the approver of the transaction. 2) Next, the approver informs the prover “What is the rule of hash change?” Question one of the two questions is “verify whether the prover can answer accurately.” 3) Repeat this trial multiple times to verify whether you possess correct knowledge or not. The technology called zk-SNARKs (Zero Knowledge – Succinct Non-interactive Argument of Knowledge) which makes use of this zero knowledge proof is used for Ethereum and Zcash.
zk-SNARKs is an algorithm for generating keys for certification and keys for approval, algorithms for the prover to generate legitimate proofs, and for approvers to decide and approve witness’s remarks as fraudulent or not. It is composed of three kinds of algorithms and it is possible to omit multiple trials that are third in the zero knowledge proof process. This corresponds to the non-interactive part, and it is possible to shorten the required time by omitting the approval work.

Zero knowledge proof of Ethereum


With regards to the company, transaction delays increased as transaction volume increased and scalability problems were of concern, but at the same time the problem of privacy protection of transactions was given up. On the blockchain, since anyone can check a user’s address, there was concern that personal information and privacy will be leaked from transaction history. Therefore, the function of this zk-ZNARKs was added from the update of “Byzantium.” By using this, it becomes possible to remit the token while hiding information that you do not want to disclose to other people, such as transaction address or remittance amount.

Zero knowledge proof of Zcash

Zcash is known as an anonymous currency which realizes complete anonymity of transactions by using zk-SNARKs. By applying address anonymization to a wide range of networks, Zcash greatly increases the cost of intending attackers to find the intended transaction. By doing this, the incentive of attacking is lost as it has the structure in place to keep safe. Zcash can distinguish between public transactions in which transaction contents are fully disclosed and completely private anonymous transactions.

In this way, while zero knowledge proof attracts attention as a technology for privacy protection, there is concern that it may be used for fraudulent dealings and money laundering. However, from the viewpoint of practicality, it is easy if then intention is to publish or not publish data within transactions.