In the blockchain world, privacy is becoming increasingly more important. When someone tells you that bitcoin is anonymous, this is an inherently false claim. This is because blockchains are by their very nature fully open and transparent. So while each individual bitcoin address is not linked to any one person in a registry, all transactions can be tracked, mapped, and followed. This is known as blockchain analysis, and it has been used to great effect by various government and law enforcement agencies.
While there are steps that a bitcoin user can take to increase their privacy, it requires great effort and many intentional actions. Being private on bitcoin is not the default. The same can be said for most all popular cryptocurrencies today, like Ethereum and Litecoin, among others.
Today we are going to dig into the technology that protects Zcash, as well as the hard fork of Zcash known as Zclassic, and it’s impending change into Bitcoin Private.
zk-SNARKs works on what is known as zero-knowledge proofs. Zero knowledge proofs have been directly promoted by famed former CIA contractor Edward Snowden in a Twitter post late last year. The idea of zero-knowledge proofs comes from several MIT researchers back in the 1980s.
— Edward Snowden (@Snowden) December 19, 2017
In simple terms, zero-knowledge proofs means that between two parties of a transaction, each party is able to verify to the other that they have a specific set of information, without revealing what that information is. This is significantly different than other systems of proof where at least one party needs to know all the information. An example of this would be a password stored on a server in plain text.
In this case, if you were logging into the server, you need to have the password and the server needs to check if the password you entered is correct. With zero knowledge proofs, the person logging into the server could essentially demonstrate through mathematical proof that they have the correct password without revealing what that password is. Of course today most websites do not store user passwords in plain text and instead, store what is called a hash. Still, hashes can be stolen and under some circumstances can be computed out.
To get any further into zk-SNARKs, we would need to have a Masters level understanding our highly complex mathematics, quadratic equations, and so-called “moon math“. If you feel inclined to check it out and aren’t afraid of some advanced math, Ethereum co-creator Vitalik Buterin made a serious of Medium posts on the subject.
Comparing zk-SNARKs with other privacy protocols
So how strong is zk-SNARKs and Zcash? Each of the major privacy protocols employs a different strategy for masking transaction information. As we mentioned for Zcash, it uses zk-SNARKs.
For its competitor Monero, it uses a technology known as ring signatures. For PIVX, it uses the zero coin protocol which involves exchanging units of PIVX for an anonymized voucher of sorts called zPIV. These vouchers can then be sent to any normal address and will be received as regular units of PIVX.
While proponents of the various technologies will likely give you different answers on which one is superior, a large consensus of nonbiased parties seems to come to the conclusion that zk-SNARKs is the better choice. However, this does not mean that Zcash is without its faults.
Zcash was created with a potentially fatal flaw. Specifically, all blocks created for the first few years include a 20% “tax” that is automatically sent to the founders of the currency. This has been dubbed “the founder’s tax“.
Additionally, due to the nature of zk-SNARKs, it has been theorized that if the founders of the currency either collude or are coerced, they could potentially make an infinite number of new Zcash tokens without anyone knowing. This is because, at this time, there is no way to know the exact total supply of Zcash tokens.
Enter Bitcoin Private
As a response to the founder’s tax and the so-called “trusted set up“ that presents the above risk, a group of people created a fork of Zcash and called it Zclassic. This was perhaps a reference to Ethereum Classic.
The fork remained mostly under the radar for the majority of its existence, until the developers recently announced a revitalization and rebranding project that would change Zclassic into Bitcoin Private. In addition to the name change, Bitcoin Private will also make use of the original bitcoin blockchain but with a number of changes and upgrades including the implementation of zk-SNARKs. In response to this change, prices for Zclassic exploded and went from around one dollar to nearly $100 at its peak. While Bitcoin Private has not launched yet, owners of Zclassic and Bitcoin will be entitled to a number of shares of Bitcoin Private.
When the hard fork occurs, a snapshot of all existing ZCL and BTC holdings will occur. Anyone holding ZCL or BTC in a wallet or supported exchange will be credited Bitcoin Private (BTCP) at a 1:1 ratio. For example, if you hold 15.4 ZCL and 0.1 BTC, you will receive 15.5 BTCP.
While other forks of bitcoin exist and claim to offer privacy features such as Bitcoin Diamond, Bitcoin Private may represent an interesting opportunity to create a fork that uses zk-SNARKs.
zk-SNARKs Inclusion into Ethereum
According to a post on Blockgeeks, when Ethereum entered its metropolis phase it added zk-SNARKs into its blockchain. However, currently zk-SNARKs is not being used for all Ethereum transactions, and is instead only a “tool in the toolbox“ according to a post on the Zcash blog.
It would be very interesting to see if Ethereum could implement widespread usage of tech so that all of its transactions are also equally private. At this point, however, we can do is wait and see what the foundation comes up with.