Lesson 16 of 20
In Progress

16. What is Zk-SNARK and Zk-STARK? 

Zk-SNARK (Zero-Knowedgle Succinct Non-Interactive Argument of Knowledge) 

This is a new type of privacy proof. Cryptography is constantly evolving, and with it consensus algorithms that can be used to provide data privacy. Each of these algorithms has its own advantages and disadvantages, as well as how to use them. In today’s lesson, we will look at these two proofs of concept. 

Despite appearances, the proof is not as complicated as it sounds. Literally, it is a ‘proof with zero knowledge‘ protocol. Zero-knowledge proofs are very fascinating. Using it, we have to prove that we have some information without revealing the information itself. So, we have two participants in the protocol: the prover (proover) and the verifier (verifier). The prover has to prove to the verifier in a certain way that it has information y, without sharing this information. 

The ZK-SNARK protocol does not require continuous communication or conversation between the prover and verifier. It works based on complex mathematical operations. Are you familiar with the high school proofs we used to prove in maths class? Recall them, as they will be essential here. Proofs with zero knowledge use: 

Homomorphic functions

Blind evaluation

The Knoweldge of Coefficient Test (KC) and the Knowledge of Coefficient  Assumption (KCA). 

Verifiable blind evaluation protocol

Quadratic Arithmetic Program

Pinocchio’s protocol

Furthermore, zk-SNARK requires elliptic curve cryptography. ECC is a cryptography method that relies on the properties of elliptic curves to create fully secure cryptographic keys. These keys are used to encrypt and decrypt data, which increases security. Definitely, the use of  ECC is more secure than RSA, if only because of its resistance to brute-force attacks. The term zk-SNARK was first used in 2012 by Professor Alessandro Chiesa

How does zk-SNARK work? 

The protocol is based on a trusted configuration using the above mathematical assumptions.  Zk-SNARK allows users to send transactions on the blockchain in a completely encrypted way. This means that transactions have taken place completely legitimately, but no one can read them. The most popular platform using this algorithm is ZCash. Therefore, today we will use its example. As we have already discussed, zero-knowledge algorithms allow you to prove that statement X is true, without revealing information about the statement. This is accurately what happens when two people transact using this network. With zk-SNARK, we can see that the sender has the funds, but we cannot see how much or where he wants to send it. Nor do we know his address. Furthermore, such a transaction cannot be modified by a third party. For such transactions to work, they must meet certain conditions. E.g. ZCash engages users through ‘meet’ and ‘cancelant’. In effect, the person who would like to send funds via ZCash says “Look how many funds I have!”, without revealing his balance, and the verifier confirms “This was the amount promised to the recipient”. 

Zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowedgle) 

This is also cryptographic proof. Its definition is – zk-STARK provides the ability to share verified data or perform calculations with a third party, without revealing the data to that party. At the same time, it is publicly verifiable. What does this mean in practice? ZK-STARK  allows you to verify the banking information of your future business counterparty, without having to disclose your confidential information.

Zk-STARK – how does it work? 

The protocol moves computation and storage off the blockchain. Therefore, it improves its scalability and privacy. Services performed outside the blockchain can generate STARK  proofs, which simultaneously certify the integrity of off-chain computations. The proofs thus made are then placed back on the blockchain so that any interested party can validate the computation made (proof). As we have already mentioned, zk-STARK is publicly verifiable.  This type of zero proof focuses first on scalability and only later on privacy. The pioneer among the work on this technology is StarkWare Industries

Zk-SNARK vs Zk-STARK 

Zk-SNARK requires trusted keys, while zk-STARK is publicly verifiable. ∙ Zk-SNARK are not fast and scalable in terms of computation size. 

∙ Zk-SNARK are very vulnerable to attacks from quantum computers due to the use of cryptography in their operation. 

∙ Zk-SNARK is more popular, especially in the current era. 

∙ Zk-STARK is based on hash functions, which are more difficult to break. They also do not require a trusted configuration. 

∙ In the zk-STARK protocol, proof verification takes longer due to its larger size. ∙ Zk-SNARK is easier to implement. 

Summary 

Both zero-knowledge proofs are powerful tools. They can improve the scalability of blockchain networks, as we have already mentioned, but they also have their drawbacks.  Such encrypted transactions taking place in the ZCash ecosystem, for example, can contribute to money laundering or terrorist financing. There are always two sides to every modern solution. 

Purchase your favorite tokens on Kanga Exchange