Zero-knowledge proofs (zk-Proofs) are communication protocols by which a prover can demonstrate to a verifier that it possesses a solution to a given public problem without revealing the content of the solution. Arbitrary computations can be transformed into an interactive zk-Proof so anyone is convinced that it was executed correctly without knowing what was executed on, having huge implications for digital currency. Despite this, interactive proofs are not suited for blockchain applications but novel protocols such as zk-SNARKs have made zero-knowledge ledgers like Zcash possible. This project builds upon Wolfram's ZeroKnowledgeProofs paclet and implements a zk-SNARK compiler based on Pinocchio protocol.
翻译:零知识证明(zk-Proofs)是一种通信协议,通过该协议,证明者可以向验证者证明其拥有某个给定公开问题的解,同时不泄露解的具体内容。任意计算过程均可转化为交互式零知识证明,从而让任何人都能确信计算被正确执行,而无需知晓执行内容,这对数字货币领域具有重大意义。然而,交互式证明并不适用于区块链应用,但zk-SNARK等新型协议已使Zcash等零知识账本成为可能。本项目基于Wolfram的ZeroKnowledgeProofs工具包,实现了基于Pinocchio协议的zk-SNARK编译器。