Since information about people is constantly monitored, the lack of privacy now requires a new technology era. The blockchain, which is identified with the decentralized system, is making changes, but this is not enough. Now a new technology called Zero-Knowledge Proof is being introduced to the market.
Many of you must have heard of an example of Zero-Knowledge Proof, but you don’t really know what is behind it. Zero-knowledge encryption is a new protocol that improves security. But how good is it really? Could this be the solution we are looking for? Let’s answer these questions in this article.
How Does Zero-Knowledge Protocol Works
Zero-disclosure evidence is a cryptographic protocol that allows one side (the prover) to confirm the truth of the statement to the other party (the verifier), without disclosing any additional information about it (neither the content nor the source from which the prover learned about the openness).
The definition was first proposed by researchers at the Massachusetts Institute of Technology (MIT) Shafi Goldwasser, Silvio Micali and Charles Rakoff in the scientific article “The knowledge complexity of interactive proof-systems”(1985).
A zero-knowledge proof has three main properties:
Completeness. If the prover knows the statement, then he can convince the verifier of this.
Correctness. If the prover does not know the statement, then he can deceive the verifier only with a negligible probability.
Zero-knowledge. The verifier, even if he behaves dishonestly, does not learn anything other than the fact that the statement is known to the prover.
The proof takes the form of an interactive protocol. This means that party B asks a series of questions to the prover, who, if he knows the secret, will answer all the questions correctly. If the secret to side A is unknown, but he wants to convince the tester of the opposite, he has some probability (e.g., 50%) to answer the question correctly.
However, after a certain number of questions (10 – 20), the examiner is quite likely to make sure that the prover does not know the secret. In this case, none of the answers gives any information about the secret itself.
Now let’s look at the example.
Imagine that you are in a room with someone blindfolded. On the table in front of you are two balls: white and black. You need to prove to the second person (the verifier) that the balls are really different colors, without revealing which ones.
You should ask him to hide both balls under the table. After that, ask to get only one so you can see it. Then the ball hides again and the next time the verifier can again show either white or black. However, you can prove the statement, because you know for sure whether he changed them under the table.
Nevertheless, the verifier will not be completely sure of the truth of the fact, because luck or deception could have taken place. This problem is solved by repeating the experiment n times. With each round, the chance of accidentally turning out to be right will be halved: after five repetitions, the probability of cheating will be 1 to 32, after 10 rounds – 1 to 1024, and after 20 rounds – about 1 to 1,000,000.
Through repetition, the desired level of evidence reliability can be achieved, but absolute certainty cannot be achieved.
There are two types of zero-knowledge protocols:
interactive (the verifier independently interrogates the prover in real-time);
non-interactive (does not require direct communication between the verifier and the prover; the former can verify the authenticity of the statement after the fact).
Zero-knowledge proof can also be divided into two groups based on the presence or absence of a phase of fixing the authenticity of an assertion by several verifiers – the so-called trusted setup using a Boolean function.
For some protocols, such as zk-SNARKs (Zero-Knowledge Succinct Non-Interactive ARgument of Knowledge), this is a prerequisite. Verifiers generate a special secret that is destroyed immediately after a trusted installation. If the secret continues to exist, then the data on the network can be faked, thereby leveling the benefits of using the protocol.
Some protocols do not require a trusted installation (for example, zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowledge).
Zero-Knowledge Proof Use Cases
One of the obvious uses of zero-knowledge proof in cryptocurrencies can be checking the user’s availability of funds for a transaction without disclosing to network participants who this user is and how much money he has in his account.
This protocol can also be used in a field where it is necessary to ensure the security of data (for example, personal information) or the conduct of financial transactions.
Zero-knowledge proof can be a tool that verifies data and users, provides privileged access and establishes trusted connections.
Zero-Knowledge Proof Examples
Startup QEDIT developed the SDK (Software Development Kit), which allows you to implement zero-knowledge proof in existing blockchains to increase the privacy of transactions while maintaining the possibility of their validation by nodes. The project has already been awarded the European Commission Quality Mark, and among its partners are such well-known companies as VMWare, Ant Financial and Deloitte.
StarkWare has created solutions based on the zk-STARKs protocol, which can also be implemented on existing networks. The project has already attracted funding from Vitalik Buterin, Pantera Capital, Intel Capital, Sequoia Capital and other investors.
Dutch bank ING has released a modified version of the ZKP – Zero-Knowledge Range Proof (ZKRP). This protocol can prove that the client has a salary in the range necessary to obtain a mortgage, without disclosing the amount itself.
#1. Zero-Knowledge Proof in Ethereum
The zero-knowledge proof protocol was partially implemented on the Ethereum network as part of the Byzantium hard fork. At the moment, Ether developers are considering additional options for using this technology.
#2. Zero-Knowledge Proof in Zcash
Most of the blockchain platform provides transactions between two peer network users. Zcash can provide complete privacy when it comes to transactions. This is an open, permission-free blockchain platform that uses the essence of ZNP. The transaction process is shielded. It will find the value, sender, and receiver in the blockchain. It is also known for implementing zk-SNARKS and after that many have followed this path.
#3. Zero-Knowledge Proof in PIVX
This company wants to change the typical ways the world works. In a system where everything is controlled and managed by others, PIVX intends to create a true haven for your financial statements. The developers are working on a new integration where they will follow the lead of the zero-disclosure proof.
The only thing that will be public is the confirmation of the money sent. This means that you will see that someone sent the money, but the address or amount of time will be hidden. PIVX delivers faster transaction speeds thanks to new integration with additional privacy improvements.
#4. Zero-Knowledge Proof in Zcash
The company uses the protocol to provide additional security and completely anonymous transactions. The Zcoin protocol follows the concept of an example of zero-knowledge proof. Moreover, Zcoin offers is scalability. Using Zcoin, you can maximize your identity and what you spend online. This is a great way to protect interchangeability.
Zero-Knowledge Protocol Pros and Cons
increasing the privacy of users in public blockchains and other networks
require significant computing power
strengthening information security by replacing inefficient authentication and verification methods