I have some high-level suggestions for the Zcash team in the area of the overall usability and public adoptability of Zcash. These are ultimately based on some Really Deep Thoughts about the nature of money in human culture, but I’ll spare you the metaphysics.
My assumption, following the Hello World blog post, is that Zcash is about the private, trust-less, non-intermediated transfer of value from party A to party B and that any other uses (smart contracts, yada yada yada) are totally incidental.
First suggestion: Completely ditch all “coin” related terminology and metaphors and break Zcash away from the whole alt-coin realm. The “coin” thing is crowded, dated, and tainted. Build on the technology, but break free of the paradigm. I think from the name (Zcash), you may already be heading in this direction either implicitly or explicitly, but either way, I say go for it and go big. Just jettison all the conventions that have grown up around alt coins and let Zcash make its own rules. As a start, I would go through all of the documentation that exists currently and wherever the word “coin” appears, substitute either “currency” or “unit” as appropriate.
Second suggestion: Following from the above, I suggest changing the terminology for a unit of Zcash from ‘ZEC’ to just ‘Z’. Maybe 1/100th of a ‘Z’ should be a ‘z’, although that could cause verbal confusion and it’s also possible that in practice in the era of cryptocurrencies, the notion of labeled subdivisions of currency units is archaic and people will easily adapt to the use of decimal values of arbitrary precision (e.g. 0.013Z). That’s certainly how I use bitcoin – I never think in terms of Satoshis or micros, millis or whatever else people have proposed.
Third suggestion: I don’t think this matters in the long run, but initially, for the sake of adoption, I think it would be a good thing if the value of the primary unit of Zcash currency (i.e. the equivalent of 1 BTC) was immediately relatable to a lot of people. Because of their global use and relatively close unit valuations, I think that if the value of the primary Zcash unit was in the range of 1 to 10 Dollars/Euros, that it would help adoptability a lot. I’m not really sure how you do this in practice, but maybe by looking at the values of bitcoin and the various alts you can make a guess at what the total cap of units should be set to so that the initial value would likely fall in this range.
Fourth suggestion: I know that this is dev times with Zcash and that all the existing discussion and documentation is dev related and thus deals with ‘inputs’ and ‘outputs’, ‘transparent’ and ‘protected’ cash, ‘pours’, and etc. That’s all fine for architecting and developing the underlying plumbing, and this suggestion is mostly about building clients/wallets, but it also bears on communicating about Zcash outside of dev circles even now. Before Zcash rolls out to real public adoption all of the arcana should be completely hidden from end users and the only metaphor that should be presented to Joe (Sixpack) is the relatively instant private transfer of a specific quantity of Zcash from Joe’s wallet to Anne’s wallet, or Joe’s wallet to Amazon.com. All Joe cares about is how much he is sending and to whom. Joe should never hear anything about “inputs”, “outputs”, and “change”. From his point of view he sends exactly the amount of whatever transaction he is effecting and the end result is that his wallet’s balance is debited by exactly that amount. I understand in high-level terms how the zerocoin protocol runs on top of a “transparent” bitcoin-like blockchain and so I get what a “transparent” coin is. Joe should never, ever need to know about them. That should all be part of the hidden plumbing and Joe should only ever think about and interact with Zs with which he can assume all his transactions carry a strong privacy guarantee. On the receiving end, Joe should be able to think of his wallet as a singular entity (he should not have to think about different public addresses), but still be able to rely on maximum privacy / anonymity for his transactions. I have thoughts about how to accomplish this in practice, but it goes beyond the scope of this note and I’m sure there are better ways that I haven’t thought of.
Fifth suggestion: I think Bitcoin’s primary achilles heel from the beginning has always been speed / bandwidth of transactions. A cash transaction is instant: you hand someone some currency and it’s done. That speed facilitates exchanges that become impractical with long settlement wait times. Block creation should be architected to handle orders of magnitude more transactions than the current Bitcoin blockchain can, and settlement times should be as close to instant as is possible in practice (while maintaining acceptable security). Think of a use-case where you go to the coffee shop and instead of handing the cashier a $5 bill for your latte, you instead wave your phone in the vicinity of the register and you paid for your coffee instantly and with the same level of anonymity as handing over the $5 bill (but without figuring out what to do with useless pennies). That’s the world we should live in.