Request for advice on learning zkSNARKS


#1

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?


#2

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:
https://github.com/akosba/jsnark - 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.


#3

Also, http://crypto.stackexchange.com/questions/19884/what-are-snarks