Zero Knowledge Proofs explained
Zero-knowledge-proofs are what is used when a user on the blockchain wants to prove to another user that they have certain information without sharing details.
The most common way of explaining ZKPs (Zero Knowledge Proofs) is using a tunnel and door example. ZKP logic is as follows:
The Verifier will ask the prover to enter and exit the cave at random, but the caveat is there is a locked door with a password. If the prover has the password, they can freely exit either side A or side B. If the prover does not have the password, they will only be able to exit the way they went in. The verifier will ask repeatedly the prover to enter and exit at random until satisfied, if no password is held by the prover, they are caught out. Otherwise, they can prove they have the password without needing to share exactly what the password is.
However, this requires both parties to be present and in the situation of blockchain, it might not always be the case. In the case the parties are not present we can use the other variation of ZKPs, Non-interactive zero-knowledge proofs although this can come at the cost of computational power.
Zero-knowledge proofs are used by Bitcoin to provide public verification of transactions, blockchains do use even more complex versions of zero-knowledge proofs and these come in the form of bulletproofs used by Monero and zk-SNARKS used by Zcash. Bulletproofs and zk-SNARKS were initially invented to provide networks with more privacy and efficiency.
Bulletproofs, considered the most modern implementation of ZKPs as they were proposed in late 2017 and do not require a trusted setup and can reduce fees by combining multiple range proofs into one.