ZoKrates is a toolbox to enable developers to use zkSNARKs and verify them on a blockchain.
Zero-knowledge proofs (ZKP) are an exciting mechanism to enhance both privacy and scalability of today’s blockchain networks.
First, they enable to prove statements on data without revealing it, enhacing user privacy. Also, verification of a computation using the most recent ZKP schemes (e.g., zkSNARKs) is often cheaper than execution, so that blockchain transactions can be verified cheaply by checking proofs rather than executing them, enhancing scalability.
However, these proof systems are extremely complex and hard to use: The low level mathematical abstractions they build on are hard to reason about and even harder to program. Hence, developers have struggled to take advantage of these mechanisms.
To bridge this gap between theory and practice, ZoKrates was developed as a toolbox for zkSNARKs, a highly efficient zero-knowledge proof construction. Value Security and Privacy?
ZoKrates exposes a simple domain specific language (DSL) whose syntax is close to that of Python. On top of enabling developers to conveniently specify their programs, ZoKrates offers an execution environment which outputs zkSNARKs, as well as generates verification code for on-chain proof verification (e.g., Solidity Smart Contracts on Ethereum).