The missing explanation of ZK-SNARKs: Part 1
cryptologie.net
cryptologie.net
Despite the title, the article doesn't motivate their existence. They’re a research subtopic in cryptography, for proving you know something without revealing exactly what it is. This has potential applications in financial transactions, voting, authentication, audits etc.
No, I cannot adequately explain why the hyphen moves. Draw your own conclusions.
IMO more useful description, at least for developers the math-inclined, is that they allow you to take a function f(x, y) = z and create a very small, easy to verify proof that this expression/computation is valid for a given x and z and an undisclosed y.
If you imagine a function like isBlockchainValid(latestHash, allTransactionsEver) a snark would let you prove that x=latestHash, z=true is a valid solution to isValidBlockchain without the verifier needing allTransactionsEver.
The hyphen is there because ZK-SNARKs are a subset of SNARKs. Where a general SNARK may leak some or all of the knowledge as part of the proof, a ZK-SNARK can not leak a single bit.
My thesis being, justifying any one particular placement of a hyphen is a necessary but not sufficient part of an adequate explanation. Just as Alice was vexed by Humpty Dumpty.
In other words, my point is that arbitrary and gratuitous hyphens can make it more difficult to understand what ZK-SNARK means. The only system of hyphenation needed is the one that causes people to parse the meaning in the way that the writer intended.
However it is still merely necessary, and not sufficient. When you enumerate the entire set of letter combinations and hyphen positions and assign “lunatic ratings” to each variant, you’ll find many that aren’t so preposterous. Ergo, the chosen form is merely a nominal preference.
It feels hard to get started on this subject, I'm always down to get more learning material.
While I'm only at the beginning and still has a lot to learn, to anyone interested in understanding zkSNARK, I heavily recommend reading Maksym Petkus's "Why and How zk-SNARK Works: Definitive Explanation". It's available for free on his website and goes through similar steps than this blog post to explain how it's all done.