Privacy-protecting, digital currency built on strong science. About ZCash (ZEC)
Zcash is a cryptocurrency that uses advanced applied cryptography to provide enhanced privacy via shielded addresses. Zcash is the first practical application of zk-SNARKs, a specific type of zero-knowledge proof. Despite being hosted over a publicly available DLT, Z-cash seeks to provide complete anonymity for its users and transactions. It achieves this by a method which involves validating transactions without revealing details of the transactions.
Any cash system needs the exchange instrument or medium to be fungible. Which means that it could be exchanged for any other item easily. Since this fungibility is a sought after property, any fungible instrument, be it cash or gold are susceptible to fraud like counterfeit and theft and needs to be closely guarded. Bitcoin changed this approach altogether. Rather than hiding, it created fungibility and fraud and theft prevention by making all transactions entirely transparent. This essentially put verifiability of every transaction undertaken on a public ledger with a clear flow of change of legible ownership. Immutability and Proof-of-Work consensus methods ensured a single source of truth for the community and no counterfeit/ double-spending. This, however, exposed the participants to the whole world and hence needed to be masked under pseudonymity to preserve privacy which, under the CeFi system was maintained by a trusted third party.
Bitcoin pseudonymity was considered to be a privacy protecting mechanism, but it was soon apparent that sharing public keys in the network over a immutable ledger makes one vulnerable to identification with a little additional effort. The busting of Silk Road in 2013 proved that it takes a little hardwork to unearth the identities behind the pseudonyms of Bitcoin transactions, especially the ones which are used over and over again. The public key provided is basically an network identity proof – or an address which is used for transactions. This needs to be communicated to the senders of the funds in the transaction. And as one reveals their public key, they also to reveal all the transactions made into it, the total balance in that fund et cetera – information which are otherwise critical. With repeated transactions made to these addresses and mapping the real life goods flow against such repeat transactions, it becomes easier to identify the identity of the public key holder. So, the open financial system had privacy issues to solve. ZCash was founded by Zooko Wilcox-O’Hearn in October 2016 in response to Internet users’ demands for an open financial system with added privacy features. Zcash adopted the entire Bitcoin transaction system on a blockchain, but just encrypted all transactions. So, although all transactions are recorded in a DLT – they are not viewable until someone shares view rights to their transactions.
ZCash employs a cryptographic tool called zk-SNARKs, which stands for Zero-Knowledge Proofs. This tool allows two users to engage in transactions without either party revealing their payment addresses to each other. This tool also makes ZCash transactions untraceable on ZCash’s blockchain by obfuscating the payment addresses of both parties and the amount involved in each transaction.
Because the payment addresses recorded on the blockchain are not the actual user’s address, it’s close to impossible to trace the path of any given funds to its sender or receiver. This makes ZCash different from Bitcoin and other blockchains that make public the amount transferred from one user’s real payment address to another user’s address.
Zcash, the protocol, is a distributed, time-stamped ledger of unspent transaction output (UTXO) transfers stored in an append-only chain of 2MB data blocks. A network of mining and economic nodes maintains this blockchain by validating, propagating, and competing to include pending transactions (mempool) in new blocks. Economic nodes (aka “full nodes”) receive transactions from other network participants, validate them against network consensus rules and double-spend vectors, and propagate the transactions to other full nodes that also validate and propagate. Valid transactions are sent to the network’s mempool waiting for mining nodes to confirm them via inclusion in the next block.
Mining nodes work to empty the mempool usually in a highest-to-lowest fee order by picking transactions to include in the next block and racing against each other to generate a hash less than the target number set by Zcash’s difficulty adjustment algorithm. Zcash uses a Proof-of-Work (PoW) consensus mechanism to establish the chain of blocks with the most accumulated “work” (a.k.a., energy spent on solved hashes) as the valid chain. Other network peers can cheaply verify the chain’s work
In order to have zero-knowledge privacy in Zcash, the function determining the validity of a transaction according to the network’s consensus rules must return the answer of whether the transaction is valid or not, without revealing any of the information it performed the calculations on. This is done by encoding some of the network’s consensus rules in zk-SNARKs (zero-knowledge succinct non-interactive arguments of knowledge). Zk-SNARKs are specific zero-knowledge proofs whereby one can prove possession of certain information, e.g. a secret key, without revealing that information, and without any interaction between the prover and verifier.
Z-cash has two types of addresses – private (z-addresses) and transparent (t-addresses). Transactions between two t-addresses works just like Bitcoin. Transactions using shielded (z-addresses) is of 3 types – Z2Z (shielded), T2Z (shielding) and Z2T (de-shielding). All transactions appear on the public blockchain. The owner of a z-address can share a “viewing key” with his trusted third parties who can then get read access to these transactions. It has a feature of encrypted memos to be passed along with messages or other useful data. It also uses Multisig transactions for the public transactions.
Like Bitcoin, Zcash has a fixed total supply of 21 million. The units are coded ZEC. The ZEC’s smallest unit is called zatoshi, sounding similar to bitcoin’s satoshi, it is 0.00000001 (10-8) or one hundred millionth of a ZEC. ZEC transaction fee are very low – 0.0001 ZEC/transaction. Zcash pays out a portion of each block reward to fund protocol development and to pay back its investors. During the first four years of Zcash, 10% of the block reward was transferred to the Founders Reward fund and distributed to the Electric Coin Co., Zcash Foundation and initial investors. After network upgrade 4, 8% of the block reward will be transferred to the Dev Fund and managed by a Major Grants Review Committee.
Originally Zcash could be mined at home, using CPU or GPU machines. As mining hardware evolved, ASIC machines became the preferred mining machine for professional cryptocurrency miners and mining pools. ASICs can be customized for a particular use (such as mining Zcash) and therefore outperformed previous mining hardware such as CPUs and GPUs. Zcash community members voted against ASIC-resistant protocol updates in mid-2018 citing security concerns. The top mining pools for Zcash include Flypool, Nanopool and Slushpool. The next network upgrade, Heartwood includes ZIP 213, which would allow miners to mine directly to a shielded coinbase.
Scalability at Zcash is a work in progress. There are several approaches to making blockchains scalable, both at the protocol layer (layer 1) and at the application layer (layer 2). One of the proposed scalability solution is Halo, a novel technique for practical recursive zero-knowledge proofs. Another such proposal is for sharding architecture. This proposal calls for the use of sharding, a technique that partitions a database into sections or “shards” to improve the throughput limit, in order to scale to high transaction volumes.
Zcash grew out of “Zerocash/Zerocoin,” an experimental proposal from seven scientists to improve privacy protections in Bitcoin. The Zerocoin company, known today as the Electric Coin Co., raised $3M in funding to develop the initial protocol. Zcash launched on October 28, 2016 by Electric Coin Co., a private company founded by Zooko Wilcox. After the Zcash launch, the Zcash engineering team released a series of upgrades known as the “Sprout series.” The team also put forward plans for two core protocol upgrades known as Overwinter and Sapling. The Sapling upgrade made efficiency improvements and enabled new kinds of core protocol features. The Zcash Foundation was formed in March 2017 with an initial endowment of 273,000 ZEC, taken from the Founder’s Reward.
Zcash had undergone periodic development since launch. It names its development stages as incremental stages of a growing tree. In June 2018, with the Overwinter upgrade the Zcash implemented versioning, replay protection for network upgrades, performance improvement for transparent transactions and a new feature of transaction expiry. In October 2018, with the Sapling upgrade, Zcash protocol drastically reduced the amount of time and memory needed to constructing zk-SNARKs. With the Blossom upgrade in December 2019, Zcash has cut block times in half to around 75 seconds. To keep the emission rate and halvening schedule of Zcash unchanged, the halved block times also require that the per-block reward be halved. The emission rate per time, however, remains unchanged. Other proposed items, such as splitting the founder’s reward and Harmony mining were not included in this release as originally planned. In July 2020, the foundation released upgrade Heartwood. Heartwood will improve interoperability cross-chain integration, and light-client use cases through Flyclient support and give miners the option to immediately shield mining rewards in coinbase transactions. Canopy, the upcoming upgrade would be a major re-shuffling of the block fees distribution protocol.