That's Zero-Knowledge Succinct Non-interactive Argument of Knowledge, for those (like me) with only a passing interest who wondered what the term refers to. ZK-SNARKs are a particular form of mathematical proof.
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.
> for proving you know something without revealing exactly what it is
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.
Actually, you can make a more general statement with a function f(x,y) = (w,z), where the proof allows you to verify that this expression is valid for an undisclosed x or/and an undisclosed w
I have basically zero knowledge why the hyphen moves as well, but from having talked with someone a while back who was very excited about ZK-SNARKs, I think they're named to refer to the Lewis Carroll poem The Hunting of the Snark. (And as far as I know, https://en.m.wikipedia.org/wiki/Snark_(graph_theory) is unrelated.)
> No, I cannot adequately explain why the hyphen moves. Draw your own conclusions.
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.
That’s one valid location, but since other subsets of the same set of descriptors exist, the hyphen could equally go anywhere. Or nowhere. Hence my annotation of explanatory inadequacy.
The hyphen did not move, it is actually a different one. Zero-knowledge loses its hyphen when the phrase is compressed into an acronym, and a hyphen is added as a separator.
Indeed, but this remains a nominal explanation. It validates the possibility of one hyphen placement but does not explain why any of the equally available alternatives are not chosen. Why not ZK-S-N-ARK, and other combinations besides? Heck, what kind of diseased mind thinks hyphens even belong in initialisms and acronyms? Don’t even get me started on the use of arbitary case variants (“zk-SNARK”).
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.
If you expand ZK-S-N-ARK it becomes Zero Knowledge-Secure-Noninteractive-Argument of Knowledge, or Zero-Knowledge-Secure-Non-interactive-Argument of Knowledge if you reinsert the hyphens that had been removed by the acronym compression process. To me it seems that binding those words together with hyphens makes the name harder to understand. What exactly is meant by Knowledge-Secure-Noninteractive-Argument? Surely a lunatic must have pasted all of those words together. The phrase doesn't just change its meaning but loses it because some of the words were not glued on with hyphens and fell off.
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.
This is what my objection really is. At best, the non-preposterous combinations will mean the same thing as the original. Most combinations will carry a different meaning or none at all. There's no reason to treat it like a search space to test all of the possible arrangements, because there is no additional meaning to uncover that way.
I don’t know if I would call that a subset, my understanding is that not all zero-knowledge proofs can necessarily be transformed into non-interactive proofs
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.
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.