What makes a cryptocurrency private? Is Bitcoin private?
Bitcoin is a pseudonymous cryptocurrency. Every transaction can be seen on the blockchain and observers can trace transactions back to certain pseudonymous addresses. Additionally, through a blockchain explorer, an observer could see the balance in that addresses’ wallet. Through some potential IP address tracking, it is possible that somebody could find out the identity behind certain wallets. This makes using Bitcoin as a digital cash uncomfortable for some people especially because with popular forms of payment such as US cash, nobody else can see histories of transactions or how much is in other people’s bank accounts. To address that issue, private or anonymous coins were created. There are a handful of different ways to privatize transactions. The most popular methods are through ring signatures, CoinJoin, and zk-SNARKs.
A ring signature pools a user’s account keys with the account keys of other users so that when a transaction is made, nobody can discern which individual key sent a transaction. This Monero video demonstrates how a pool of users can act as a decoy and make it equally likely for those decoys to be the real account key input for a transaction. There is enough plausible deniability for the pink user to say that they were not the actual signer of the transaction even though they really were.
Ring signatures avoid a double spending issue by verifying transactions through a key image. As explained in that video, a key image is a cryptographic key derived from an output being spent and is made part of every ring signature transaction. There can exist only one key image for each output on the blockchain, yet due to its cryptographic ring properties, it is not possible to determine which output created the key image. In summary, somebody can use the key to check that only one user is receiving the cryptocurrency without pinpointing who the cryptocurrency came from.
CoinJoin has some similar characteristics to ring signatures. The premise of CoinJoin is to group a user’s transaction with a different user to make it hard to pinpoint the specific transactions within the group. An example from the CoinJoin Wiki Page demonstrates how you cannot determine whether Alice or Bob sent Ted money.
Typically, a centralized service offers a service to group users, creating a central point of potential failure, as users will have to trust that the service will not release their transaction details.
zk-SNARKs, or Zero Knowledge Succinct Non-interactive Argument of Knowledge, or zero knowledge proofs are a way of proving that somebody knows information, without actually revealing that information. Imagine trying to prove to somebody that you solved a Where’s Waldo puzzle without spoiling the solution and showing that person where is Waldo. In terms of cryptocurrency transactions, with zk-SKARKS, somebody can prove that a transaction occurred without revealing the size of the transaction or the keys associated with that transaction.
The photo below demonstrates an example called the Ali Baba cave in which Alice proves to Bob that she knows the password to a locked door halfway in a cave without telling Bob the password. Bob can tell Alice to enter halfway through the cave and then meet him on the left or right side of the cave. If Alice walked Bob through the cave, then he would have learned the password, so this way, Alice can prove that she knows the password without Bob learning the password.
The Waldo and Ali Baba cave are two examples of zero knowledge proofs, but Zcash provides a technical overview that explains how zero knowledge proofs can be applied to cryptocurrency. The downside to zk-SNARKs is that they can be complex and slow to verify.
Which cryptocurrencies use these methods?
This image below from a Steemit post from July 2017 breaks down how some of the concepts explained above are applied to different cryptocurrencies:
Which privacy coin will make it?
Nobody knows for sure how privacy coins will evolve, and which coin will make it out on top. If you are interested in seeing which coin BlockWolf likes the best, please visit our BlockWolf Picks section.