I’ve heard some chatter and misconceptions about the difference between Darkcoin vs Zerocoin, so here’s a write up about the pros and cons of each approach and what they do differently. DarkcoinFirst off, most people start by asking is DarkSend actually real and does it work? Yes! Checkout the development progress here:
https://bitcointalksearch.org/topic/anndrk-darkcoin-darksend-anonymous-technology-pre-alpha-launch-467857DarkSend is based off of Greg Maxwells original idea called Coinjoin, with some added improvements and decentralization. The decentralized approach is important because the logic is self contained in the client, which is managed by the users themselves. This is a trustless solution.
Darkcoin uses the base transaction layer to sign it’s transactions in much the same way that Bitcoin does. The mathematics are tried and true and have been used for years in computer security and banking.
Transactions will be grouped together and the same cost as sending transactions on the normal network. Both DarkSend and normal transactions will be available to choose from, but at some point we might default to DarkSend (and go Dark).
It’s also worth noting that this approach doesn’t bloat the blockchain at all either. Transactions are the same size as the would have been.
ZerocoinThe approach Zerocoin takes is to use some exotic mathematics to hide the identity with a zero-knowledge proof. This allows a higher quality of anonymity, but also could have some unforeseen hole that will be exploited later.
Checkout this link to see the mathematics I'm talking about:
https://github.com/Zerocoin/libzerocoin/blob/master/AccumulatorProofOfKnowledge.cppZerocoin's proof of work is in the 2kb range, which was reduced from 1024kb in Mathew Green’s original work. These proofs must be stored in the blockchain for each transaction that goes through the network for confirmation purposes and the ledger history, so this will cause a lot of bloat. There is also a need for these proofs to be processed by the networks nodes, being larger will cause more intense CPU usage with smaller transaction rates.
The spec for Zerocoin also requires a 100% premine. I believe mining is what gives cryptocurrency their base value, so this could be a problem for the currency in the long haul.
With the high CPU usage, how will the network deal with DDOS attacks? I could send bad proofs that must be processed. It’s much harder with the Bitcoin protocol because the math is pretty fast and you would be banned quickly.
Imagine if Zerocoin had to deal with 20 transactions a minute, that would be 58.98MB/day that will be added to the blockchain. After a year, that would add up to 21.5GB. Now god forbid you have to reindex this, you’ll have to process all of the proofs on your computer? That might take another year to complete.
---
I think the Darkcoin approach has the best mix of features, with the least risk and it’s decentralized. So we definitely have our place in the market.
References:
Coinjoin spec:
https://bitcointalk.org/index.php?topic=279249.0;all and
And what is the difference between Darkcoin and DarkWallet's Coinjoin implementation?
It's not in the native client, it's a browser extension and it's not decentralized. In the world of crypto decentralized solutions will always win, we need all of this technology to be trustless.
I've posted these quotes in the reddit page, DRKCoin, is that the right one now?