Author of this content has low reputation.

WHAT IS ZCASH? WHY HAS BEEN CREATED?

The launch of Bitcoin brought an open financial system to the world. Anyone could connect without asking for the permission of others. Anyone could extend it and improve it without permission.

However, it came up with one drawback: privacy. Bitcoin allowed everyone to see the shipping address, the address of the payee, and the value of all transactions in the blockchain. Of course, they were not connected to a user (or computer) by default, but the contamination was a possibility. After all, people are just human. On the other hand, Zcash automatically hides the shipping address, the address of the payee, and the value of all transactions, unless you have the display key.

The Zcash team was founded with privacy in mind: privacy for business and commerce. To be feasible in the long run, fungibility is required. And without privacy, there can be no fungibility. Bitcoin has brought fungibility to the digital world, but Zcash is making it affordable. It is no longer necessary to lose coins. It is no longer necessary to generate new addresses for each transaction to ensure complete anonymity. Everything is embedded from the beginning.

The technical details in a simplified way

Zcash uses a zero knowledge test called zn-SNARK. The acronym stands for "zero-knowledge Succinct Non-interactive Argument of Knowledge". As quoted in the official technical report:

"A zero knowledge SNARK (or" NIZK knowledge summary ") is a SNARK that serves a zero knowledge property. Namely, zero knowledge ensures that the honest verifier can generate valid proofs for true theorems without revealing any information about the theorem other than the fact that the theorem is true (in particular, without revealing any information about the assignment that it used to generate approves)." Snarks for C: Checking the execution of programs in summary mode and with zero knowledge

Why is zk-SNARK important? Well, let's say you want to open a bank account in the European Union, where the anti-money laundering directive is in place. You would need to present a scanned copy of your passport, and maybe a personal photo. The bank, in turn, would take and analyze this information, and decide whether or not you are who you say you are.

Is it necessary for this information to be entrusted to a third party, after all, how else would they verify that you are the person in the passport? Without seeing a passport, how could they verify where you live?

But ... what if there was a way to do it without a third party?

That's where a SNARK comes in. It allows us to assemble a mathematical proof that a program, when executed with some kind of input known to the user, has a specific (known publicly) output without revealing any information. These are specialized types of zero knowledge proofs that can be implemented. An example would be a GPG key. Given the "public" part of the key and a signature, you can prove that whoever wants it has signed the private part of the aforementioned key.

But a zk-SNARK allows you to create proof like that for anything. Due to the magic (and mathematics) of zk-SNARKs, the blockchain is able to keep a safe accounting book of balances without revealing the parts or values ​​involved.

The disadvantages, difficulties and solutions

In his blog post, Zooko Wilcox, the founder of Zcash, talks about the difficulties of producing a system that can not be forged. Due to the mathematics of zk-SNARKs, the blockchain is able to keep a safe book of balances without revealing the parts or values ​​involved.

A SNARK requires something called a "public parameter." Public parameters are numbers with a very specific cryptographic structure that is known to all parties involved in a system.

The simplest way to generate a SNARK is to have someone generate a public / private key pair and then destroy the private key. Without the private key, you can not circumvent the system. But how do you prove that the private key has been destroyed? This is known as the "crypto toxic waste", and is a regrettable side effect of this generation of public parameters.

The Zcash team has developed a secure multi-stakeholder computing to generate a public parameter. In the team's own words:

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now