As we all know the difference between calculation and proof questions in mathematics is: Prove is the process to ratiocinate that the output is calculated by the input. **Zero-Knowledge Proof** is a method by which one party (the prover) can prove to another party (the verifier) that they know a value, without conveying any information apart from the fact. And the **zkSNARK** is the most efficient verification algorithm among zero-knowledge proof algorithms, it also has a good application scenario on the blockchain.

DxChain has been actively exploring technologies such as storage proof, and zero-knowledge proof is one of our key research directions. DxChain Research and Development Team will publish a series of research articles about Zero-Knowledge Proof and zkSNARK optimization in the near future, helping the DxChain Community to know more about DxChain.

First of all, what is the use of zero-knowledge proof? Here are some application scenarios of zero-knowledge proof:

1) **Proof of Data Storage**: In decentralized data storage, when we need to verify the storage capacity of miners, in order to prevent them from cheating, they are required to involve a large number of calculations. Meanwhile, the **Zero-Knowledge Proof** is able to verify quickly and effectively, and the fundamental consensus of FileCoin is zkSNARK.

2) **Statement on Data Privacy**: For example, an App requires the user's credit score greater than 700, but the user wants to keep the credit score (e.g. 750 credit score) private while proving his qualification.

3) **Anonymous Authentication**: The user holds the private key, and the platform only saves the private key hash submitted by the user. When logging in, the user only needs to prove that the hash generated by the private key he holds is in the hash list of the platform without submitting other information.

4) **Computing Outsourcing**: Outsource the high-cost calculations and get the calculation results verified quickly, which is a zero-trust calculation.

From the above application scenarios, zero-knowledge proof has great application prospects in solving data storage and privacy problems on the blockchain. Especially on blockchain, the verification of data often requires the participation of multiple nodes, the proof application can not only be verified quickly, but also protect the data privacy very well.

Knowing the application of zero-knowledge proof, the future will focus on how to optimize the zkSNARK. Please stay tuned!

**Reference**

[Pik14] - Scott Pike. Dividing by a Polynomial. 2014.

http://www.mesacc.edu/~scotz47781/mat120/notes/divide_poly/long_division/long_division.html

[But16] - Vitalik Buterin. Quadratic Arithmetic Programs: from Zero to Hero. 2016.

https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649

[But17] - Vitalik Buterin. zk-SNARKs: Under the Hood. 2017.

https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6