Image credit - Towards Data Science - https://towardsdatascience.com/what-are-zero-knowledge-proofs-7ef6aab955fc
In the last article, we read about ZK Proofs and how awesome they are. This lets us dive deep into a deeper explanation of what it actually means and what it solves. We will also touch upon the different types of ZK Proofs that are there and what areas we can use ZK Proofs.
To start with, I need to give credit to where/who I have acquired this knowledge as is, it is only due that they get respected for the amount of time and effort they have put in to create their content.
To start with, irrespective of whoever is compiling a list on ZKP you will always see her name as one of the top 3 names for starters, Elina Nadolinksi. Her material which I shared in the last article is one place that I always go back to if I want to clear something on the basics. Because she is clear, easier to understand and depending on what you want to read there are various versions of the same content with some variations on the content too.
Next will be the awesome Kernel folks, it is through their resources that I got introduced to a lot of great content. Like my Australian DeFi Association friends, they are an awesome community and I’m glad that I got introduced to their content, probably will get to know the team soon enough.
The third source of information for me is Matthew Green’s primer, which is another excellent one for starters.
Ok let us go back to the basic premise, a prover has to show a verifier he has the requested information without revealing anything more than what the verifier needs. For a start, we should understand Zero-Knowledge proof is nothing but computation done in an honest way.
How do we know any solution is zero knowledge? To ensure a solution is zero knowledge we look for three aspects:
Completeness: The information provided by the verifier is indeed true and complete. Meaning if the prover is right he will be able to convince the verifier. To make an analogy using the example from the first article, if the prover shows another picture or part of the picture he will not be able to convince the verifier, as simple as that.
Soundness: The prover will be able to convince the verifier, only if they are stating the truth and nothing else.
In the case of the first example, the peephole to view the picture is enough nothing else is needed there.
Zero-knowledge: The verifier hasn’t leaked any additional information than what is necessary or I’m not able to gain any additional information by looking at /validating the information provided.
When all the above three criteria are met we can say that the prover has used a zero-knowledge proof to solve the problem.
All this is fine, but what are the real applications of zero-knowledge proofs?.
Here are some of the applications I have collected from various sources I have read,
Personal information like age, occupancy etc can be provided without revealing any other information through ZK proofs.
Doing KYC for a customer needs a lot of sensitive information. Using ZK proofs KYC can be done by providing only the right set of information which is fit for purpose and not a full dump
Employees are reporting portfolio holdings to employers. To prove the employees have not invested in blacklisted companies ZK proofs can be used to prove that if there is a blacklisted company in the portfolio it will show up. Otherwise, the employer cannot see the other holdings of the employer.
There are a lot of use cases where ZKP can be applied to solve real-life problems, I have only listed a few interesting cases above. The last use case is for blockchains. ZKPs are used for the following purposes,
Privacy - Transaction privacy by using mixers. Mixers like tornado cash provide users with the facility to keep their transactions private. It uses ZKP to achieve this. You can find more details in the link I have provided above.
Scalability - This is the buzz at present in the Ethereum world. Ethereum Layer1 has reached its maximum capacity in terms of the number of transactions it can handle per day. This leads to an increased transaction fee (gas fee). To address this ZK rollup is being used in Layer2. To understand more check this well-written tweet series from GammaX-exchange
I will write more about the ZK rollups and ZKEVM as a separate article.
Now finally the type of ZKPs. There are various types of ZKPs,
SNARK
STARK
Bulletproof
Plonk
The details of what each of these is and the significance will be taken up in the next article. For now, I let you read, and understand what you have read till now as this is going to get more complex.
This is great... I shared it with a few of my mates. We are not coders and this information is very well written so I can understand a complex subject and how it solves real world problems.
That is a great skill to have Lak. Nice work.