I was recently asked to explain Zcoin in a way a smart 5 year old would understand in an interview.
This is assuming some smart and more importantly patient 5 year old…
Zcoin and Privacy (Zerocoin Protocol)
Zcoin is a way to make payments through the internet directly to people no matter where they are. To make sure everyone knows who much everyone has and who is paying who, Zcoin keeps a permanent record of every single payment that has been made since Zcoin began. When new payments comes about, everybody also updates their records. However, this means that everybody can see who pays who and also guess how much that person owns! This can be bad since it may invite jealousy, or reveal what this person does every day to possibly everybody in the world or have people make judgments on you based on how much you own and what you spend on.
In Zcoin, the record doesn’t contain your real name but instead records it as addresses which works like a nickname. Everyone has a address and you can even create as many addresses as you want.
So let’s say I want to pay you 5 coins, you create an address and then I send the 5 coins to that address, let’s call it Address A. Now you want me to pay an additional 3 coins and you give me another address and we call it Address B. You now have two addresses, one with 5 coins and another with 3 coins for a total of 8 coins. How can other people tell that Address A and B are actually the same person: you?
The first way to do it is by seeing how you send money out. For example, if you wanted to buy a toy for 8 coins, to do this, you will need to take 5 coins from Address A and 3 from the Address B and send it to the toy shop’s address. When other people see this payment that combines the money from both Address A and B they can guess that both addresses belong to one person even though originally they were separate.
The second way they can do this by seeing who you receive payments from, who you pay to, when you do it and the amount you do it for. So for example, they may know the address of the store you buy from, or know that you receive money from your dad and know the address of your dad. Piece by piece they fill up the missing gaps like a jigsaw puzzle and eventually they will have enough information to have a good idea of who you are, what you bought and how much you have.
Zcoin protects this information by allowing people to put their coins in a burner to destroy them. They get a receipt that they destroyed the coins but this receipt only proves that you burnt the coins, not which ones you burnt. To imagine it, it’s like you go to a funfair, and you buy a ticket that allows you to later redeem a prize of the same value but the ticket doesn’t need to show the exact money or dollar notes that you paid with. The person manning the prize booth only cares that you have a ticket and that you have paid for it and not exactly which note/coins you used to pay for the ticket. Using this receipt/ticket, you then use this to redeem brand new coins that is the same amount that you burnt. These coins are redeemed to a new address once again with no previous history. Through this, when people look at these new coins in this new address, they cannot tell who it belongs since it hasn’t paid anyone or received money from anyone and therefore they cannot fit in pieces in the jigsaw puzzle.
Making sure everyone is a part of Zcoin and gets a fair share of the treasure (MTP mining algorithm)
For a currency to be successful, a lot of people need to use it!
For example if I created a new currency called Supercoin but only me and you used it and accepted it, there will be no point to it. We need to get Supercoin into almost everybody’s hands and make them want to use it before it gains true value. This is why the money you are more used to, although is made of paper, can still have value more than the value of the paper, it’s because people have it and accept it. This is why it’s important to have a way to make sure as many people get their hands on Zcoin in a fair manner.
In Zcoin, you use your computer to do work and in return you get paid some new Zcoin if you’re the first to complete the work. This computer work helps keep Zcoin safe.
However in some coins, the reward system isn’t very fair. Let’s imagine the work the computer does to be something like a race to see who can be the first to dig up treasure that is buried in the ground. If I gave you a small spade, while I gave another person an excavator, although both of you would be working equally hard to dig for the treasure, the person with the excavator will win almost every time even when you’re working as hard as you can! Even if you have ten men with spades digging for the treasure and therefore working ten times as hard, the one person with the excavator will still likely beat them. The idea behind Zcoin’s system is that everyone has roughly the same size of spade and that everyone has a fair chance to get to the treasure in the ground! In other words, the same chance of winning the treasure based on an equivalent amount of effort. Back to the computer example it means that if you used your computer to do Zcoin work, there shouldn’t be someone else with a special computer that only he has that can do the work thousands of times faster than you can.
Now let’s imagine if this treasure hunt restarted every time the treasure was found meaning a new treasure would be buried in the ground. The treasure in this case is the Zcoin you receive when you are the first to complete the work. By letting everyone have a fair chance of winning the treasure hunt, more people can get their hands on Zcoin and be a part of Zcoin. The more people have Zcoin, the more people will be likely to use it to transact with each other!