Here’s how CredaCash compares to Zcash:
|Project announced||Nov 2015||Jan 2016|
|Private transactions using Zero Knowledge Proofs||Yes||Yes|
|Based on “zk-SNARKs” from Parno, et al. (see Note 2)||Yes||Yes|
|Uses BN128 254-bit elliptic curve||Yes||Yes|
|All transactions completely private||Yes||No|
|All transaction outputs completely fungible||Yes||No|
|Runs exclusively over Tor network||Yes||No|
|Blockchain can publicly record payment amount and source even if recipient requests privacy (see Note 3)||Absolutely Not||Yes, and there is no way to opt out|
|Maximum private inputs in Zero Knowledge Proof||16||2|
|Maximum private outputs in Zero Knowledge Proof||16||2|
|Time to create private transaction on laptop
(2.4 GHz dual-core Intel Core i5)
|5 seconds||125 seconds|
|Time to create private transaction on embedded device
(1.5 GHz quad-core 64-bit ARM)
|7 seconds||not supported|
|Memory needed to create private transaction (see Note 4)||70 MB||3 GB|
|Zero Knowledge Proof size (see Note 5)||288 bytes||296 bytes|
|Typical private transaction size||491 bytes||2022 bytes|
|Blockchain guarantees transaction finality||Yes||No|
|Time to clear transaction||5-10 seconds||not supported|
|Maximum transaction outputs in private pool (see Note 6)||1 trillion||500 million|
|Maximum private transaction rate (see Note 7)||1,750 per second||0.9 per second|
|Blockchain supports permissioned miners/witnesses||Yes||No|
|Blockchain supports unpermissioned miners/witnesses||Future||Yes|
|Anyone can set up their own public or private blockchain||Future||No|
|Transactions seamlessly routed across multiple blockchains||Future||No|
|First live version||Aug 2018 (target)||Oct 2016|
Note 1: The Zerocash-Project.org website and @ZerocashProject twitter account were set up in 2014 and were completely inactive in 2015. The Zcash project, which was not started by the authors of the Zerocash paper, was announced in January 2016.
Note 2: CredaCash and Zcash are both based on the Pinocchio zero knowledge proving system created by Parno, Gentry, Howell and Raykova in 2013. See https://eprint.iacr.org/2013/279. The Pinocchio protocol was used by Ben-Sasson, Chiesa, Tromer and Virza in a lightly modified (and flawed) construction they called zk-SNARKs, see http://eprint.iacr.org/2013/879, which was corrected by Parno in https://eprint.iacr.org/2015/437. The name zk-SNARKs has become more commonly used than the original name Pinocchio.
Note 3: Zcash has both public (which Zcash calls “transparent”) and private transactions. Critically however, when receiving payments, if someone sends transparent funds to your “private” address, then both the payment amount and a link back to the sender are publicly published in the Zcash blockchain. This compromises your privacy, even if you only use private addresses, and there is nothing you can do to stop it because it is beyond your control. With CredaCash, all payments are completely private.
Note 4: CredaCash is fast and efficient because it internally uses a subsum Diophantine hash that was specifically designed for use in the Zero Knowledge Proof. Zcash internally uses a SHA256 hash, which is ill-suited for the Zero Knowledge Proof and leads to its lengthy proving times and excessive memory use.
Note 5: The authors of both the Pinocchio and Zerocash papers correctly stated that a proof only requires 288 bytes. The Zcash programmers decided those authors were mistaken and that a proof required 296 bytes (see Zcash Protocol Specification, Version 2016.0-beta-1.9, Section 7.9 “Miscellaneous”, second paragraph). The Zcash programmers are incorrect; a proof only requires 288 bytes, although in Zcash it is encoded as 296 bytes.
Note 6: The number of transaction outputs in the private pool is limited by the size of the Merkle tree. CredaCash uses a 40-bit Merkle tree that can hold 2^40 private outputs, while Zcash uses a 29-bit Merkle tree that can hold 2^29 private outputs.
Note 7: Maximum transaction rate per blockchain assuming transaction outputs are kept in the private pool for 10 years.