In this article we will look at the underlying theory of privacy protocols and the different mechanisms different coins use.
“Anonymity means that transactions can neither be linked nor found.
In the projects analysed so far, four unique approaches (or a combination of them) are used.
The CoinJoin is the simplest way to water down the transaction history of coins in a transparent blockchain. A group of participants split their coins into many individual parts, mix them in a pot and then draw random coin fractions from the pot. This makes it difficult to clearly track transactions.
CoinJoin is a mechanism that can be applied to an existing blockchain. Participants participate voluntarily.
The CoinJoin increases your privacy, but you are not really anonymous. You just make it harder for a tail to stay on track. Transparent blockchains (like Bitcoin) still offer information for the more inquisitive. For example, that you have participated in a CoinJoin. The conclusion is that transactions can still be found in CoinJoin and only make linking more difficult.
Projects that use a form of CoinJoin: Bitcoin, Dash, PIVX.
CrpytoNote is a protocol with a mysterious history. The author of the white paper, Nicolas van Saberhagen, is still unknown. The first crypto currency used by CryptoNote was bytecoin. However, it turned out that the Bytecoin project could not be trusted due to pre-mining. After some back and forth, Monero, the most successful CryptoNote project to date, was born. The codebase is completely new and independent of Bitcoin.
CryptoNote borrows concepts from Bitcoin and extends them by additional features. Ring signatures and stealth addresses mask the sender and receiver. The Monero project also added RingCT to the CryptoNote protocol, which also hides the sent amounts. A ring signature builds a digital signature from its own One Time Spend Key and any outputs from the block chain, each having the same probability of being the original sender.
One challenge is to minimize the size of the transactions, as they are currently still several kilobytes in size. However, the so-called bulletproofs, which can reduce the TX size by 80-90%, promise remedy.
CryptoNote (especially in combination with RingCT) makes it impossible to link and find transactions. So you really are anonymous.
The so-called zero knowledge proof is a relatively new achievement in cryptography. It allows you to confirm the validity of a transaction without disclosing its contents.
The zk-Snarks (Zero Knowledge Succinct Non-Interactive Argument of Knowledge) used in Zcash are very secure in their anonymity. However, they are still quite computationally intensive to create. This means that a Shielded Transaction in Zcash currently still consumes relatively high amounts of computer power. In the future, the Sapling update promises more efficient calculations.
The zk-Snarks require a so-called “Trusted Setup”. Public parameters are generated once, on which the Zerocash protocol is based. Later, the “toxic waste”, which is produced as a by-product, must be disposed of irretrievably. Otherwise illegal coins can be generated later.
zk-Snarks offers no way to find or link transactions.
Even newer and more innovative than the Zero Knowledge Proof is the MimbleWimble protocol by Tom Elvis Jedusor. Once again an unknown inventor who, like Satoshi Nakamoto and Nicolas van Saberhagen, came out of nowhere, presented solid mathematics and disappeared from the scene again.
The structure of the blocks in a MimbleWimble blockchain is completely different from “traditional approaches” such as bitcoin. Inputs and outputs cannot be linked. The validity of an output can again be proven by cryptography and is stored in the transaction Kernel. MimbleWimble also allows output from the blockchain to be shortened. This massively reduces the size of the blockchain and simultaneously increases the anonymity of the users. A curious observer only sees that everything is going well.
The MimbleWimble protocol makes you completely anonymous. However, the first implementation Grin is not yet finished.
There are several roads leading to Rome, in this case to anonymous payment transactions. Although the CoinJoin makes it difficult to assign transactions, it does not create anonymity. CryptoNote, zk-Snarks and MimbleWimble actually prevent finding and associating transactions.
The actual implementation of different protocols will be subject of one of our next educational articles. Stay tuned!