I am wondering if the Ethereum Virtual Machine can verify a proof generated from a certain statement? Are there any precompiled contracts for verifying a proof?
2 Answers
Yes! There is a project called Zokrates, it allows you to create the algebraic circuit necessary for your proof and creates the smart contract that verifies it. You can find the toolbox you can get Zokrates in github.
Also, there is a nice tutorial for this here
hope this helps.
-
-
Could you add some explanation regarding the common reference string, and more specifically, the elements required for verification? I guess that's too much information to be saved on the blockchain Commented Apr 29, 2019 at 6:15
ZoKrates is a very good toolbox for zkSNARKs on Ethereum. It helps you use verifiable computation in your DApp, from the specification of your program in a high level language to generating proofs of computation to verifying those proofs in Solidity. In addition to Zokrates, now we have a set of interesting and useful tools for generating ZK-SNARK programs, arithmetic circuits and verification contracts.