Zerocoin works by allowing direct anonymous payments between parties. There are two steps that must be taken:
Let‘s look at an example.
- Bob wants to send 1250 Crave to Amy using an anonymous transaction.
- Bob first converts the 1250 Crave to 1250 zCrave, which is automatically broken down into denominations. In this case, Bob’s zCrave would be contained in the following denominations…
- 1 x 1000 zCrave
- 2 x 100 zCrave
- 1 x 50 zCrave
- Bob‘s balance now reflects that he owns 1250 less Crave, and 1250 more zCrave than he began with.
- There now exists a “secret knowledge key” associated with Bob, used to verify ownership of his specific denominations of zCrave.
- Bob now goes to send the 1250 zCrave to Amy‘s Crave address.
- The “secret knowledge key” is verified by the Zerocoin Protocol.
- Amy’s account is credited with 1250 Crave from an anonymous sender, while Bob’s zCrave balance shows a decrease of 1250.
- Amy now has 1250 Crave which shows no prior transaction history, making it impossible to track its origins back to Bob’s Crave address.
- The “secret knowledge key” used now becomes invalid, preventing the minted balance from being re-spent.