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?


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: - 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.