I’ve been involved with Zcash for over 8 years now and I can attest to a few factors that have lead to the current state of adoption by the broader online community.
-
The first few years were spent trying to get Zcash from a “proof of concept” academic style code (which took minutes and GBs of RAM to process a shielded transaction) to something now usable on a cell phone in seconds. If Zcash had launched with “only” Z addresses it may have prevented some of the other factors listed below, but would have been wholly unusable for 90% of providers/exchanges. Zcash wouldn’t have nearly as many on/off ramps if that direction had been taken.
-
Then you have the myriad of addresses: T, Z, U causing exchanges/websites/wallets to have unique tooling/maintenance to support Zcashs privacy features. Plus the relentless (be it often revolutionary) pace of the core teams releases which strengthened user privacy and sometimes required a new pool to take advantage of those improvements. Many times it was simpler for a provider to just add T addresses and call it a day.
-
Adding onto the issues of transaction processing and address confusion was the fact that the core teams at ECC and ZF were primarily focused on shipping the code rather than building nice UX for wallets. This lead to the “just let the community do it mentality” where ZCG and others would hire outside developers for the wallets. In hindsight this was a major mistake, leading to mercenary developers only being attached to the project so long as it was financially beneficial for them (Zecwallet, Nighthawk I’m looking at you) and once they got bored or didn’t like the rules/milestones attached to their grants they simply left, leaving Zcash users high and dry.
The good news is that address types/pools of Zcash have pretty much settled down so we should not see much more churn in that regard. Also with @joshs now leading at ECC they’re finally focusing on providing good UX for end users. Plus the fact that ZF spent years building Zebra which will allow Zcashd to retire soon. Moving the codebase to Rust will simultaneously make Zcash easier to build on and free up core team resources to better focus on end users.
As the saying goes: “Good software takes ten years, get used to it” is also proving to ring true for Zcash.
Anyway, getting good software over the course of 10 years assumes that for at least 8 of those years, you’re getting good feedback from your customers, and good innovations from your competitors that you can copy, and good ideas from all the people that come to work for you because they believe that your version 1.0 is promising. You have to release early, incomplete versions — but don’t overhype them or advertise them on the Super Bowl, because they’re just not that good, no matter how smart you are.