Request for advice on learning zkSNARKS

Zcash is a great project, I am impressed.

I want to combine your technology with channels, like in the bitcoin lightning network.
I want to do computation off-chain, in the channels.
I want this computation to be zkSNARK-ified, that way the participants of the channel can’t prove anything about the state of the channel to anyone else.
I want the amount of money each party has in the channel to be secret.

Is this possible? maybe I don’t understand zkSNARKS?
Can you give me advice on how to learn enough of zkSNARKS to build something like this?

1 Like

zkSNARKs are, unfortunately, pretty stupidly complicated. Even just defining what it means for a SNARK to be ‘secure’ takes a nontrivial amount of effort. That said, some people have been building high-level APIs to make them approachable for non-experts:
GitHub - akosba/jsnark: A Java library for zk-SNARK circuits - a Java library for building SNARKs

Also look for a paper called “Hawk: The Blockchain Model of Cryptography and
Privacy-Preserving Smart Contracts” on Google, it describes a nice application of SNARKs for smart contracts.

1 Like

Also, zero knowledge proofs - What are SNARKs? - Cryptography Stack Exchange

1 Like