Zerocoin is a blockchain and cryptocurrency privacy protocol made to address the lack of privacy features of Bitcoin. The Zerocoin protocol works as a Bitcoin extension that allows users to mix their own coin with enhanced privacy features. The Zerocoin protocol was further developed into the Zerocash protocol by the Zerocoin development team in collaboration with cryptographers at the Massachusetts Institute of Technology (MIT).
The Zerocash protocol was made to be more efficient and have more privacy features than the Zerocoin protocol. The Zerocash protocol allowed users to make direct private payments while keeping the value of their payments hidden. The development teams kept working on the Zerocash protocol and eventually developed it into a fully functionally cryptocurrency called ZCash.
There are two types of possible transactions using Zcash: pour transactions and mint transactions. Pour transactions allows users to make private payments through the users consuming their coins to produce new coins that reveal the previous coins serial numbers but not any information related to the previous owner of those coins. Pour transactions are also capable of outputting non-anonymous Bitcoins for the purpose of transferring zerocoins into Bitcoins or for paying transactions fees. Mint transactions allow users to convert non-anonymous Bitcoins into anonymous zerocoins to a specific zerocoin address with the value of the coin holding a specific value determined at its creation with a unique serial number. The commitment to create a zerocoin from Bitcoin hides the coins value and the owners address using a SHA-256 hash function.