Blockchain And Zero-Knowledge Proofs

Renjith KN
4 min readAug 12, 2022

Decentralization is one of the primary tenets of blockchain or distributed ledger technology (DLT). Through decentralization, network participants can individually validate and record transactions on a distributed ledger through a consensus protocol. This eliminates the need for trusted third parties while increasing network democratization. However, it does so at the cost of privacy. Transaction data and transacting parties' identities are visible to those who must validate the transaction.

Take the case of a blockchain network used to run a supply chain solution. This will host multiple entities such as suppliers, logistics providers, manufacturers, etc., as network participants. Each party may hesitate to put business-sensitive transactions (like recurring payments from a manufacturer to a supplier) on the blockchain because it reveals confidential business information to other parties, even competitors, on the network.

The underlying challenge is: How can blockchain network participants verify blockchain transactions for correctness without revealing sensitive business information? The answer to this question would give participating entities greater confidence while transacting on the blockchain, thereby increasing business value.

Over the years, blockchain frameworks and solution developers have tested different ways to ensure data privacy on blockchains. Some of the techniques used are private transactions (Quorum), channels (Hyperledger Fabric), and peer-to-peer messaging (R3 Corda). These techniques ensure that transaction information is visible only to entities that are either involved in a transaction or are trusted by third parties. The disadvantage of these techniques is that they affect network decentralization to various degrees, affecting the overall trust and resiliency of the blockchain.

Presently, solutions based on ‘zero-knowledge proofs’ (ZKP) are finding traction within the blockchain community and are being incorporated into blockchain offerings. Zero-knowledge proofs are constructs that help prove the correctness of information without disclosing the information itself.

Zero-Knowledge Proof(ZKPs) is a cryptographic technique where no information is revealed during a transaction except for the interchange of some value known to both the prover and verifiers. The idea behind zero-knowledge proof is that a user can prove to another user that they know an absolute value without actually revealing any other or extra information.These proof systems can be used by modern cryptographers to provide increased levels of privacy and security.

ZKPs requires the fulfillment of three conditions:

  • Completeness: The verifier must be able to prove the existence of the complete set of information the prover claims to possess.
  • Soundness: The challenges with which the verifier validates the prover’s claims cannot be completed without the required information.
  • Zero-Knowledge: None of the actual private information may be shared between the prover and the verifier.

Types of ZKPs

Interactive ZKP: In interactive ZKPs, the prover must complete a series of actions to convince the verifier about a specific fact. ie a prover needs to convince a specific verifier and repeat this process for each verifier.

Non-Interactive ZKP: Non-interactive ZKPs don’t have any voluntary interaction between the verifier and the prover. In non-interactive ZKP, a prover creates proof that anyone can verify, and the verification process can also be moved to a later stage.

Applications of Zero-Knowledge Proofs

Zero-knowledge proofs are mostly used for applications in which privacy and security are essential.

ZCash and zk-SNARKs: The cryptocurrency ZCash uses ZKPs to confirm transactions without revealing the source of the actual money or any other sensitive data, such as how much money was sent or the identity of the final recipient. Using zk-SNRKs (“Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”), ZCash allows users to prove they meet the conditions to complete a transaction without any interaction between the prover and verifier. Thus, ZCash transactions remain completely confidential and secure.

Ethereum 2.0 and zk-Rollups: Developed to increase transaction speed and reduce fees, zk-Rollups allow users to confirm Ethereum transactions in layer2 — using zero-knowledge proofs — and publish the PoV (Proof of Validity) onto layer1.

User Verification: Zero-knowledge proofs can also be used to verify people’s identities. For example, if a two-factor authentication (2FA) system requires both a social security number and a driver’s license number, a ZKP algorithm can take certain segments of the two, link them together, and statistically determine the probability that the individual is indeed who they claim to be. With this method, the individual can confirm their identity to the system and keep their complete social security and driver’s license numbers hidden.

Conclusion

Zero-knowledge proofs offer a secure method to validate information needed to complete cryptocurrency transactions and verify users’ identities while keeping private data hidden. Compared to other cryptography solutions, ZKPs use simple algorithms and require no interaction between the parties involved in transactions.

As blockchain developers recognize ZKPs for their potential to increase trust and confidentiality in the world of cryptography, we will likely see the adoption of ZKPs increase and become essential in blockchain technologies.

--

--

Renjith KN

Senior technical architect with more than 15 years of experince in microservices, blockchain, J2EE technologies.