Zcoin offers one of the best mechanisms to anonymise your coins but there are some best practices when minting and spending your Zerocoin.

The two layers of Zcoin

Zcoin’s system relies on two layers:

Zcoin (as the base coin)

Zerocoin

The base coin can be considered just like a regular coin and works exactly like Bitcoin. All transactions are transparent and visible although addresses are pseudonymous. Just like Bitcoin, all base coins will have a publicly visible history from the first time they were created.

The Zerocoin layer is where you will anonymise your coins and it works through the Mint and Spend transactions. You can think of the Zerocoin layer as a form of coin laundry where you will put in your existing ‘dirty‘ coins (that have a long transaction history) and then redeem new ‘clean‘ coins that appear to be brand new and have no prior transaction history. Unlike other coin mixing solutions, Zerocoin does not rely on trust of other people you’re mixing with and is built directly into Zcoin’s protocol.

Minting and Spending Zerocoins

The first step in anonymising your coins is the Mint process where you convert base coin into a Zerocoin. The Minting process involves burning up your base coin to create a Zerocoin. This Zerocoin cannot be used directly but will be used to redeem new base coins later on.

You do this by going to your Zerocoin tab in your wallet and clicking on Mint and selecting the number of Zerocoins you want to Mint. This will be charged a one-time fee of 0.01 XZC regardless of the amount you mint.

Note that Zerocoins can only be Minted and Spent in fixed denominations of 1, 10, 25, 50 and 100. It is planned to add the 1000 denomination in a later release.

You are then required to wait for 7 confirmations for your mint (around 70 minutes) before you are allowed to Spend these Zerocoins.

The next step is to do a Spend transaction on these Zerocoins to convert them back into a base coin.

Select the dropdown menu once again to select the denomination you want to spend. Remember you must have a corresponding mint of the same denomination.

Once you click on Spend, you will redeem the Zerocoins you minted into the same amount of base coins. These new base coins will be sent to a new Zcoin address and will have no transaction history. These coins are therefore now anonymous and can be sent to anybody and in any denomination. Zero-knowledge proofs allow you to prove that you did indeed Mint Zerocoins and burn up your base coins to entitle you to redeem new coins via the Spend transaction without revealing which Mint you performed. Thus outsiders will only know that you must be one of the thousands of Mints of the same denomination that have been made.

Best Practices

Although the new coins you redeem in the Spend transaction are technically untraceable to the initial coins you burnt up in your Mint transaction, there are methods in which people can attempt to guess or narrow down which Mint transaction corresponds to a Spend transaction. For example, if after Minting a Zerocoin, you always Spend it immediately after it has confirmed, outsiders can guess that the Spend transaction corresponds with the prior mint especially if this happens regularly. Or if you always Mint or Spend transactions on a fixed schedule, over time, these transactions may be narrowed down to you. So although the underlying cryptography is secure, regular and predictable behaviour can reduce your anonymity.

To reduce the success of these forms of analyses and make your use of Zerocoins the most efficient, following a few easy steps will make these attacks less likely: