A zk-SNARK is a protocol that lets one party, the prover, prove to another party, the verifier, that a statement about some privately-held information is true without revealing the information itself. This paper describes technical foundations, current applications, and some novel applications of zk-SNARKs. Regarding technical foundations, we go over the Quadratic Arithmetic Program reduction and the Pinocchio protocol. We then go over financial security applications like Zcash and Tornado Cash, and zk-Rollup applications like zkEVM and Darkforest. We propose novel zk-SNARK protocols for private auctions and decentralized card games on the blockchain, providing code for the proposed applications. We conclude by touching on promising zk-SNARK innovations, such as zk-STARKs.
翻译:zk-SNARK是一个协议,让一方,即证明人,向另一方,即核查人证明,关于某些私人持有信息的声明是真实的,而没有透露信息本身。本文描述了Zk-SNARKs的技术基础、当前应用程序和一些新应用。关于技术基础,我们翻阅了Quadratic Arithmatic 方案削减和Pinocchio 协议。我们接着翻阅了Zcash和Concraft Cash等金融安全应用程序,以及zk-Rollup 应用程序,如zkEVM和DarkForest等。我们提议了新颖的Zk-SNARK协议,用于在块链上进行私人拍卖和分散的纸牌游戏,为拟议的应用程序提供了代码。我们最后我们触及了Zk-SNARKs创新,例如zk-STARKs。