Zero knowledge protocol
Zero-knowledge proof
Zero-knowledge proof is a cryptographic protocol that allows one party (the prover) to prove the truth of a 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 veracity). Such a definition was first proposed by MIT researchers Shafi Goldwasser, Silvio Micali, and Charles Rakoff in the scientific paper "Proof Complexity in Interactive Systems" (1985).
Using zero-knowledge proof
One obvious use of zero-knowledge proof in cryptocurrencies is to verify that a user has funds for a transaction while not revealing to network participants who this user is and how much money he has in his account.
This protocol can also be used where it is necessary to ensure the security of data (for example, personal information) or the conduct of a financial transaction.
Zero-knowledge proof can verify data and users, granting privileged access and establishing trusted connections.
Types of zero-knowledge proofs
Zero-knowledge proofs can also be divided into two groups, based on the presence or absence of a phase of fixing the authenticity of the assertion by several verifiers - the so-called trusted setup using a boolean function.
This is a prerequisite for some protocols, such as zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Verifiers generate a unique secret that is destroyed immediately after 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 trusted installation (for example, zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowledge).
Practical use
Focused on increased user privacy, the ZCash cryptocurrency uses a modified zk-SNARKs protocol. The same protocol was partially implemented on the Ethereum network as part of the Byzantium hard fork. At the moment, the developers of the ether are considering additional possibilities for using this technology.
Startup QEDIT has developed an SDK (Software Development Kit) that allows you to implement zero-knowledge proofs in existing blockchains to increase the privacy of transactions while maintaining the possibility of their validation by nodes. It should be noted that 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 that can also be implemented in existing networks. The project has already raised funding from Vitalik Buterin, Pantera Capital, Intel Capital, Sequoia Capital, and other investors.
The Dutch bank ING has released a modified version of the Zero-Knowledge Range Proof (ZKRP). This protocol can prove that the client has a salary in the range required to qualify for a mortgage without disclosing the amount itself.