Zcoin is a privacy-focused cryptocurrency project. It was the first to implement ideas from the Zerocoin project whitepaper written by a group of academics in 2013. When working on his first cryptocurrency in 2014, founder Poramin Insom realized that the project he developed lacked sufficient safeguards for user and transaction privacy.
Consequently, in 2016, he created Zcoin, a new cryptocurrency with security and privacy at its core. Since then, Zcoin introduced key protocols, including the MTP mining algorithm, network privacy protocol Dandelion++, and recently, the Sigma Protocol to replace Zerocoin as the privacy protocol in use. Zcoin formally departed from the zerocoin protocol in favor of Sigma both because it prevents counterfeit privacy coins from inflating coin supply; a significant issue with the original Zerocoin protocol. This is achieved by removing a feature called “trusted setup” from the zerocoin protocol.
The Sigma Protocol lets a user burn existing coins to redeem them for coins with no previous transaction history later. By breaking links in the blockchain, the protocol provides strong end-user privacy.
Zcoin is a privacy coin made for anonymous payments. Privacy is based on a mint & spend (burn & redeem model) where existing coins can be burned and redeemed for a new coin which appears freshly mined. This breaks the link in the chain by removing any previous transaction history.
Zcoin can also be used to stake. Non-mining nodes called Znodes, whom are responsible for storing blockchain data which is necessary in the Zcoin network, are required to stake 1,000 Zcoin (XZC) tokens as collateral. Stakers receive a portion of mining fees for their services.
Zcoin uses Nakamoto Consensus whereby the valid chain is the longest chain with the most accumulated proof-of-work. Consensus in Zcoin, and other systems using Nakamoto Conensus, is probabilistic because there is always a chance that a new, longer competing chain could emerge with more accumulated proof-of-work, that would invalidate the current chain.
Miners solve computational puzzles to generate new blocks using a Merkle Tree Proof (MTP) algorithm. In this process, miners compete to generate a hash less than the target number set by Zcoin’s difficulty adjustment algorithm. The target difficulty level is adjusted every 6 blocks.
Zcoin originally implemented the Lyra2z algorithm for its memory intensive properties, which made it more resistant to ASICs; however, in December 2018, in an effort to make mining more accessible, Zcoin switched to a new algorithm based on Merkle tree proof of work (MTP). The MTP integration aimed to create an efficient and decentralized CPU mining network. In order to smooth individual miner revenue as mining has become more competitive, mining is now done in pools where participants contribute hash power to the pool and receive a proportional share of the profits if the pool finds a valid block.
Zcoin is based on a fork of the Bitcoin Core codebase and uses Merkle Tree Proofs (MTP) as its mining proof-of-work algorithm, making it mineable by GPUs and to a lesser extent, CPUs. Because MTP requires a big amount of memory, it has a certain degree of ASIC resistance as memory bandwidth isn’t as easily optimized as computing performance. New blocks are created every five minutes and the difficulty is adjusted every six blocks.
Zcoin has a network of around 6,000 masternodes called Znodes which receive a part of the block reward. Initially created to offload some of the more intense computation for its old privacy protocol, they are currently being repurposed to serve as a protection against 51% attacks (LLMQ ChainLocks).
Zcoin’s privacy is based on the Sigma zero-knowledge proof protocol. Sigma is particularly focused on dissolving the ability to associate certain coins with distinct addresses from the past, thus eliminating traceable coin histories within the network. Using zero-knowledge proofs, users prove that they burned a specified amount of XZC without divulging which particular token within the network was destroyed. Upon XZC burn, a intermediate coin is minted by the user, which has no transactional history. When a coin is spent it appears the same as any new coin that had entered the network through a block reward.
Unlike other privacy-focused cryptoassets, Zcoin has an auditable supply, due to the fact that the number of coins originally burnt are not hidden. While this can add transparency by allowing others to check that users are using a legitimate process to create new coins, it creates the ability for third parties to see addresses for large holders on the network.
Zcoin developement is handled by the Zcoin core development team.