Decentralization and Alignment

I was inspired by @ml_sudo’s post about temporarily re-allocating funding to write up my thoughts on funding allocation and strategies we should consider for Zcash. I have three thoughts.

Thought 1: Our efforts to decentralized have created single-points-of-failure.

The purpose of having at least three independent entities (ECC, ZF, and ZCG), as I see it, is to make Zcash resilient against the capture of or failure of any one of these entities. A single entity in full control of the project would be a massive risk and would erode trust in Zcash. However, I think the outcomes of our efforts to decentralize aren’t working as intended.

In the Apollo 13 mission, the spacecraft had three redundant oxygen tanks. Engineers expected that this would provide safety in case any one of the tanks failed. What actually happened was that an explosion in one tank damaged the other two; the redundancy didn’t work as expected, and the astronauts nearly died as oxygen vented into space.

Similarly, the redundant elements we’ve created to support Zcash aren’t truly redundant. We absolutely rely on all of ECC, ZF, and many ZCG-funded projects to be working properly for Zcash to keep working and evolving. Many crucial grant projects, notably wallets and wallet-like projects, have failed and/or had their development paused, which has set Zcash back a long way in terms of usability.

@hanh has single-handedly kept Zcash usable through the spam attack and is now getting the Ledger wallet working. This is an example of our decentralization working for us, but it has also created yet another single point of failure; we can’t afford to lose @hanh.

What was intended to create redundancy in a healthy community has instead led to us having many weaker single-points-of-failure.

Thought 2: We’re misaligned, not working together towards a common goal.

Something I’ve noticed as I’ve been auditing community projects is that not many of them work together. This is true in the literal sense of interoperability (e.g. ZGo’s functionality could be built into wallets) and I think also in the sense of collaborating together for common goals.

At present, our efforts seem disjoint and pulling in all directions. There’s also a lot of unnecessarily redundant work going on: multiple different but functionally-equivalent wallets, ECC and ZF doing double-effort to implement every consensus rule twice, and the recent Ledger thing.

We would be more effective if we shared a common vision and worked towards that, sharing the load as we go, and collectively making sure all of the important things get done. This doesn’t have to come at the cost of decentralization of power, we just need some way to broadly agree on what the vision is and to try to collaborate with each other more.

Thought 3: We need to re-think what to build.

Up until now we have not prioritized the things that would make Zcash useful and usable. We’ve built a lot of flashy and amazing cryptography, but we’re lacking the basics like super-easy-to-use libraries and all-around usability of most Zcash-related projects.

In The Moral Character of Cryptographic Work, Phillip Rogaway talks about “boring cryptography.” “Interesting cryptography” is cryptography that makes for flashy papers whereas boring cryptography is about making the cryptography real, usable and resilient.

Now that we’ve laid amazing cryptographic foundations for Zcash, my hope is that we can align around a vision that centres around the “boring cryptography”, where we work on the “boring” things that get Zcash into the hands of developers and make it more attractive to users.


I would like to see the ZCG get paid a higher salary for one, but also be given more responsibility of brainstorming which ideas need funding, prioritize them, set bounties, and actively recruit to fulfill them vs. general applications from the community.


agree wif all dese ideas.
we need decentralized units but dese need to work more in sync.
and we r in stage were UX needs much more focus going forward.


And yet his funding and ongoing contributions are in the hands of ZCG. It almost feels like there is more oversight, overhead, and accountability of Hanh then ECC and ZF.

I wonder if this is simply one of the cons of parties working on a milestones based grants system. The incentive for spending time generalising functionality to be used by others isn’t there. Everyone is almost decentivised from doing so as it doesn’t directly contribute to the milestone at hand.

I feel like this is a symptom of Zcash users not being happy with the state of wallets so are eager to fund new ones. I’d really like to explore this more because ZCG have stated they are capping how much they are funding each wallet to be equitable. But doesn’t that just mean we end up with multiple “okay” wallets?

One place I see this a lot is when discussing the memo field. It’s such a powerful feature. We could jam pack that sucker full of wonderful things. Authentication tokens, filecoin links, off-chain tokens, cross-chain links, contracts, all possible within the memo field. None require protocol changes. And yet when the discussion came up the in the form of an RFP it was clearly stated that the changes should include a ZIP proposal for network upgrade. The option for something simpler wasn’t even considered when the RFP was written :person_facepalming:.

The most boring thing to do would be a TLS1.3 handshake either off-chain or on-chain (probably support both). :person_shrugging:

The baseline I always apply is “would my mum be interested/care?”. It reminds me of something you said a few weeks ago.


You could try building small teams drawn from a pool of ‘smart individuals’ & assign them a project - question is ‘who gets to be Deke Slayton?’

1 Like

I would nominate @hanh