
Zero-knowledge proofs, Zcash, and Ethereum - mhluongo
https://medium.com/@mhluongo/zero-knowledge-proofs-zcash-and-ethereum-f6d89fa7cba8
======
ballenf
The opening story about the sick grandma also seemed to be rather the opposite
of a zero-knowledge proof. Each question seemed rather knowledge-y for a 'zero
knowledge' exercise.

I can't think of a way to turn it into a true zero knowledge proof. You'd have
to ask questions with answers that revealed nothing about granny -- you
shouldn't be able to draw a picture of her or reveal any personal info from
piecing together the answers. Which makes its choice as the opening
explanation of zero knowledge proofs problematic.

His explanation is that the 'hidden' knowledge is meeting the grandmother and
that this meeting cannot be proven through communication. Which is, of course,
true. But that's a red herring. The q&a the parties engage in do not prove
anything about the meeting. They prove that one party knows things about the
granny, not that any particular meeting took place nor that the party has ever
met her.

In short, it's neither zero-knowledge nor a proof.

I admit that the flawed opening plus the constant attempts to personify every
concept, interspersed with giant irrelevant images mean that I couldn't finish
it.

~~~
yonilevy
The best "demonstration" of a Zero-Knowledge proof I've heard is this:

Suppose you and a friend are looking for Waldo in a "Where's Waldo?" book
page. You found Waldo first, and would like to prove that, but you don't want
to ruin the fun for your friend-- you shouldn't provide any information that
would take away from their challenge of finding Waldo themselves. How would
you do that?

<Take a minute to think about it>

You take a cardboard several times larger than the "Where's Waldo" frame, and
cut a hole the size of Waldo's head right in the middle of it. You then place
the book on one side of the cardboard so that the only thing visible from the
other side is Waldo's head. You show it to your friend. Notice you have proven
you know the solution to "Where's Waldo" without revealing any information
about the problem which they haven't known before. That to my understanding is
the core concept of ZK proofs.

~~~
rumcajz
You draw a card from a deck. It's red. You want to convince everyone that it's
red without disclosing which card you have drawn. So you take all the black
cards from the remaining deck and show them to the public.

~~~
vinchuco
I think you're assuming all cards are red or black. I think a better zero
knowledge proof analogy using cards would be a sorted deck and saying "I know
where your favorite card is" by showing them their card.

------
tzs
Suppose someone claimed to have settled the P vs. NP problem or the Riemann
hypothesis, but would only present this as a zero-knowledge proof.

Would they win the Millennial Prize for that problem?

~~~
raverbashing
Well in this case they would be asked to provide a solution to an arbitrarily
large NP problem (if they proved P=NP) or a counterexample to the Riemann
hypothesis (if they disproved it)

But for the opposite case I don't think it would be easy

------
AlexCoventry
Anyone know where the code is for the recent zk-SNARK tests on the Ethereum
testnet? I've looked at LibSnark.cpp and its tests, but I'd like to find the
code where the transactions were generated and sent to the network.

~~~
emsimot
[https://gist.github.com/chriseth/f9be9d9391efc5beb9704255a8e...](https://gist.github.com/chriseth/f9be9d9391efc5beb9704255a8e2989d)

~~~
AlexCoventry
Thanks!

