Zk-SNARK's

From CryptoCurrency Wiki

(Redirected from Zk-SNARKs)

Basics

"zk-SNARK is an acryonym for zero-knowledge succinct non-interactive argument of knowledge, a cryptographic proof system that enables a user to verify a transaction without revealing the actual data of the transaction, and without interacting with the user who published the transaction. In the context of a blockchain, zk-SNARKs allow users to maintain private transactions, while still validating the transactions according to the network’s consensus algorithm. For technical walkthroughs of zk-SNARKs, check out our “Introduction to zk-SNARKs with Examples,” as well as the PegaSys protocol engineering team’s “Tutorial on Running AZTEC Zero-Knowledge Transactions on Pantheon.”

How it Works

  • For a basic explanation on how it works, check out this full article by Decrypt (22-4-2021). Some insights:

"Zero knowledge proofs allow person A to prove to person B that statement X is true without revealing any information beyond the validity of statement X itself. Imagine verifying to someone that you’re over the age of 21 without revealing your birthday or the fact you’re 25. That’s a useful way of imagining how zk-SNARKs function. In a shielded transaction, Zcash uses zk-SNARKs to show a sender possesses the funds he or she wishes to transmit, and that the transaction cannot be modified by a third party. For these shielded transactions to work, they must satisfy certain conditions. Specifically, in Zcash, they entail users publishing a “commitment” and revealing a “nullifier.”

A commitment refers to an unspent balance on the Zcash blockchain. Just like Bitcoin, nodes on Zcash’s network maintain a list of such balances, showing that funds are indeed available. A person who wishes to send Zcash publishes a commitment in order to say, “see, I have this amount of money” (albeit without revealing how much). In turn, the nullifier serves to say “this same amount of money is spoken for—it has been sent to someone else.’"

Usage

  • zk-SNARKs are the cryptographic tool underlying Zcash.
  • Also used for anonymous login, anonymous DAOs, anonymous voting etc by Semaphore on Ethereum.

Pros & Cons

Pros

  • In addition to being great for privacy, they're also great at reducing the verification cost of complicated smart contracts. Since they can be verified quickly, and because the proofs are small, they can protect the integrity of the computation without burdening non-participants.
  • Might be a solution for scaling. 0x is experimenting with this. " “zero knowledge proofs” or ZKPs for short. A zero knowledge proof allows someone to do a computation on some data and prove that they did this computation correctly, without revealing the data. For example, an account can prove that it summed up all of its expenses correctly without showing what those expenses were.'It is a technology that has been known for about two decades, but as often happens with cryptographic inventions the initial versions where impractically hard to use. In the last couple of years, and thanks to the hard work by Ben-Sasson and many others, ZKP technology has become practical in the form of zkSNARKS. Ben-Sasson and others have developed a new ZKP technology called zkSTARKs. They continue researching and developing this technology as a world-class team called Starkware. Compared to earlier ZKPs, it has better security and it’s easier to produce proofs. It is also refreshingly simple, like great inventions tend to be."