Zcash (ZEC) is a decentralized open-source cryptocurrency that guarantees privacy and selective transparency of transactions. Zcash currency payments are published in the public chain of blocks, but the sender, the recipient and the transfer amount are confidential.
The level of anonymity of Zcash is observed by many companies and well-known people. For example, WikiLeaks began accepting donations in ZEC. Edward Snowden said that the cryptocurrency was the most interesting alternative to Bitcoin. Europol on the other hand officially expressed its concern about the growing popularity of the cryptocurrency.
The Zcash cryptocurrency is based on the Bitcoin protocol but has its own chain of blocks and currency token. Zcash can be sent around the world and exchanged through exchanges, personal transfers, etc.
The issuance capacity of the Zcash currency is 21 million coins. New blocks are created with a size of 2 Mb every 2.5 minutes. The block reward is 12.5 ZEC and will be reduced twice every 4 years from the time of launch in October 2016.
The main technical peculiarity of Zcash is the use of the zero-knowledge test (ZKP). This allows you to confirm transactions without revealing additional information and makes the use of the cryptographic currency completely anonymous.
A little history behind Zcash
In 2014, the Zerocoin developers of the Johns Hopkins University and cryptographic equipment of the Massachusetts Institute of Technology, the Israel Institute of Technology and the University of Tel Aviv. These study centers jointly developed the Zerocash Protocol, improving the original design. In that sense they declared:
Thanks to the new zerocash protocol, unlike Zerocoin, users can make direct payments to each other using a much more efficient cryptographic protocol that hides not only the origin but also the amount of the payment.
The Zcash project was officially announced by the Executive Director Zuko Wilcox, on January 20, 2016, as the evolution of the existing Zerocoin project. With the use of the new Protocol appeared the independent cryptocurrency Zcash (ZEC), stopped being a “supplement” to Bitcoin. On October 28, 2016, Zuko Wilcox celebrated the official “cryptographic ceremony” of the Zcash launch.
How does Zcash work?
Zcash is a digital currency of protection of privacy based on solid science. Zcash has two types of addresses: private (z addresses) or transparent (t addresses). Z addresses begin with a “z”, and addresses t begin with a “t”.
A transaction from Z to Z appears in the public blockchain, so it is known that it happened and that the fees were paid. But the addresses, the amount of the transaction and the memo field are encrypted and are not publicly visible. The use of encryption in a chain of blocks is only possible through the use of zero-knowledge tests. This is made possible thanks to the Zcash zk-SNARK protocol implementation.
For example, the owner of an address can choose to reveal the z address and the details of the transaction with trusted third parties, by using display keys and the disclosure of payments. In this way, the option of viewing trusted third parties can be enabled for audit purposes. On the other hand, transactions between two transparent addresses work the same as Bitcoin: the sender, the receiver and the value of the transaction are publicly visible. While many portfolios and exchanges use t-addresses exclusively at present, many are moving to protected addresses to better protect the user’s privacy.
Despite having different addresses, both types of Zcash addresses are interoperable. Funds can be transferred between z addresses and t addresses. However, it is important that users understand the privacy implications of protecting or checking out information through these transactions.
Characteristics and functionalities
Low-cost transactions: transactions have cost close to 0.0001 ZEC. Address and privacy of the transaction: Zcash offers two types of addresses: armored and transparent. Protected addresses are not visible. Transactions between protected addresses do not reveal the address, the amount of the transaction or the content of the encrypted note field. Transparent addresses and transactions between them can be seen publicly in the Zcash blockchain, in the same way, that Bitcoin addresses are visible. Encrypted Memoranda: A memo field is available for protected transactions. This allows the sender to include information that is relevant to the receiver, completely encrypted. This is useful for transmitting messages and instructions, or for ensuring compliance with the “Travel” rule of the Bank Secrecy Act. Display keys: Owners of protected addresses can disclose the details of the transaction for regulatory compliance or audit.
The owner has the option to reveal all incoming transactions and the memo field but does not have access to the sender’s address unless identification information is included in the memo field. Zcash will soon support full visualization keys that reveal all transaction values inside and outside the address. Disclosure of payment: The sender or the recipient of a transaction may reveal specific details of the transaction to third parties. This as necessary for an audit. The receiver can reveal a transaction value and a note but does not have access to the sender’s address. This is currently an experimental feature of Zcash. Expiration of the transaction: Zcash supports the expiration of the transaction to minimize the impact of an untapped transaction.
By default, a transaction will expire and funds will not be taxed if the transaction is not removed after 50 minutes (20 blocks). Multi-unit transactions: Zcash supports transactions that require multiple signatures. This means that a transaction may require two or more parties to accept the transaction before the funds are sent. However, multiple signature transactions are transparent and can not be made private.
What are the zk-SNARKS?
The acronym zk-SNARKS means “Argument of non-interactive knowledge of null knowledge”, and refers to a test construction where the possession of certain information can be demonstrated, for example. a secret key, without revealing that information, and without any interaction between the verifier and the verifier.
The “zero-knowledge test” allows one party (the promoter) to prove to another (the verifier) that a statement is true. This without revealing any information beyond the validity of the statement itself. For example, given the hash of a random number, the researcher could convince the verifier that there is indeed a number with this hash value, without revealing what it is.
In a “zero-knowledge test”, the researcher can convince the verifier not only that the number exists, but, in fact, know that number, again, without revealing any information about the number.
“Succinct” tests of zero knowledge can be verified in a few milliseconds, with a test length of only a few hundred bytes, even for statements about programs that are very large. In the first zero-knowledge protocols, the tester and the verifier had to communicate back and forth over several rounds, but in the “non-interactive” constructs, the test consists of a single message sent from one verifier to another.
Currently, the most efficient way to produce zero knowledge tests that are not interactive and short enough to publish in a block chain is to have an initial configuration phase that generates a common reference string shared between the verifier and the verifier. We refer to this common reference chain as the public parameters of the system.
The value of zk-SNARKS in modern blockchain technology is clear. It integrates seamlessly with smart contract technology. A smart contract is basically a deposit of funds that is activated once a particular function is performed. When the tasks to be performed are multilayered and confidential, problems arise.
You may be required to take several steps to receive your payment. zk-SNARKS demonstrates that those steps have been taken in the smart contract without revealing who they really are. You can simply reveal part of the process without showing the whole process itself and show that you are honest about your claims.
The acronym of zk-SNARK can be deconstructed in the following way:
Succinct: the sizes of the hash functions (tests) are very small in comparison with the duration of the actual process required to create them. Not interactive: there is not or there is only little interaction. For zk-SNARK, there is usually a configuration phase and then a single point of contact between the tester and the verifier. In addition, SNARKs often have the property called “public verifier”, which means that anyone can verify without interacting again, which is important for block chains.
Arguments: the verifier is only protected against limited testers computationally. Providers with sufficient computing power can create evidence/arguments about incorrect claims. (Note that with sufficient computing power, any public key encryption may be broken). This is also known as “computational strength”, rather than “perfect solidity”. of knowledge: the prover can not build a test/argument without knowing a supposed witness (for example, the direction in which he wants to spend, the preimage of a hash function or the route to a certain Merkle tree) node.
The zero-knowledge prefix is added, it also needs that, during the interaction, the verifier knows nothing, apart from the validity of the declaration.
Also published on Medium.