Zero-knowledge proof is an extremely clever cryptographic method that allows the prover to prove to the verifier that he or she actually has the information without revealing the real information.
Zero-knowledge proof technology operation example diagram
This technical concept was first proposed by researchers at MIT in the late 1980s. However, it was not until the rise of blockchain technology in recent years that zero-knowledge proof was widely used in practice.
This article will briefly sort out the development history and basic principles of zero-knowledge proof technology.
The history of cryptography development can be divided into three stages: classical period, modern period and contemporary period. Classical cryptography originated in the military field, focusing on how to transmit information safely and reliably. The Vigenère cipher uses multiple substitution cipher tables to achieve encryption, which greatly increases the difficulty of cracking. Modern cryptography started from information theory and was turned into a scientific one by Shannon and others. The introduction of the RSA algorithm marked the beginning of the modern cryptography era and solved the key transmission problem.
The introduction of zero-knowledge proof has opened a new chapter in modern cryptography research.
In 1985, the gbc protocol published by Goldreich, Micali, and Wigderson realized interactive zero-knowledge proof. In 1991, Fiat and Shamir proposed a method to convert interactive zero-knowledge proof into non-interactive proof. In 1994, the PICCS protocol shortened the proof length. The subsequent SNARK, STARK and other different types of zero-knowledge proofs also have their own characteristics. With the emergence of blockchain, its application has developed rapidly.
Zero-knowledge proof allows the prover to prove to the verifier that he or she has the information without revealing the real information. The basic concept can be explained by a Sudoku game. The prover Alice designs a Sudoku puzzle for the verifier Bob, who cannot solve it. To prove that she has the answer, Alice prepares 81 paper cards with 1-9 written on them, and arranges them with the words on the cards facing up according to the questions and with the words on the cards facing down in a 9×9 matrix according to the answers. Bob randomly selects a row or column for verification, and Alice rearranges the cards according to Bob's choice, so that Bob can verify that the row or column does meet the Sudoku requirements. This is repeated for multiple rounds until Bob is convinced that Alice has the answer.
Historically, zero-knowledge proof technology has gone through a development process from "interactive proof system" to "non-interactive proof system". Early proof systems required multiple rounds of "questions and answers" between the prover and the verifier to implement the proof process. This interactive method is inefficient and inconvenient. So researchers proposed a non-interactive proof system, in which a trusted third party generates verification parameters in advance. The prover only needs to construct a proof based on these parameters and send it to the verifier once, without multiple rounds of interaction. This greatly improves efficiency.
The most common zero-knowledge proof protocol is zkSNARK. It completely separates proof and verification by flattening computer code, introducing a constraint system, and using elliptic curve encryption. The verifier can verify that the prover has performed the correct calculation as required without knowing the solution.
zkSNARK concept diagram
zkSNARK has also derived a variety of different algorithms in terms of efficiency and data volume, such as Sonic, Plonk, etc. With the development of dedicated hardware, the computing cost of zero-knowledge proof is expected to be greatly reduced.
zk-STARK concept diagram
Another zero-knowledge proof protocol is zk-STARK. Unlike zkSNARK, which relies on the security of specific mathematical puzzle assumptions, zk-STARK is based on cryptographic hash functions and its security is closer to determinism. However, the proof size of zk-STARK is larger and less efficient. As the algorithm is continuously optimized, zk-STARK is moving towards practicality.
Zero-knowledge proof technology has great value in protecting private data. It has been applied in many blockchain projects, such as the privacy coin Zcash, the Layer 2 solution zkRollup, etc. As technology continues to advance, zero-knowledge proof will surely bring more possibilities to the blockchain world.
In the future, it can be expected to play a role in more scenarios, such as financial transactions, medical data, digital identity, etc. It will also promote the expansion of blockchain and the development of layered architecture. Current challenges include the need for large-scale trusted settings, efficiency, and usage barriers. With the advancement of dedicated hardware and protocol standardization, zero-knowledge proof is expected to play a greater role in the future of blockchain.
