Arrow icon
Ness Labs: Make the most of your mind
Learn more about Joggo

A Summary of

zkSNARKs: driver’s ed

Joseph Stockermans
View original

Importance of zkSNARKS: maintains input privacy while using public functions with public outputs.

How to build, prove, and verify a zkSNARKs contract on the Ethereum blockchain:

  1. Clone ZoKrates repo
  2. Build Docker image
  3. Run ZoKrates container
  4. Trusted third party designs arithmetic circuit
  5. Trusted third party runs generator function
  6. Trusted third party destroys "toxic waste" parameter
  7. Trusted third party shares proving-key and verification-key with Ethereum community
  8. Trusted third party creates a Solidity contract with verification-key hardcoded inside
  9. Contract user computes a witness test that fulfills trusted third party's circuit
  10. Contract user runs proving function
  11. Contract user sends proof and input to trusted third party's verification function, which verifies proof
  12. Observer can see proof is valid without knowing her private inputs for the proving function
Related content
See all posts
Arrow icon