thanks to Udit and Zooko for reading drafts of this
We need whole polities to emerge. To self govern and to do so using new mechanisms that go well beyond shareholder value, corporate boards, and mere stake voting.
better staking/governance systems with better representation beyond just linear coin holder power is one of the most urgent issues confronting PoS
- Two things Cosmos can learn from Zcash
- Two things Zcash can learn from Cosmos
- Appendix A: Zcash governance deep-dive
- Appendix B: Zcash governance – three recommendations
One of the best ways to see how we can improve our governance is to study other protocols.
Zcash offers a particularly useful case study because the protocol operates under an opposite extreme to ours (rather than being all powerful, coinholders by-and-large feel powerless and ignored).
It is my belief that it is only by studying both extremes of coinholder representation that we can come to a fruitful synthesis. Obtaining this synthesis is especially important in light of the new whitepaper; While most are aware that a tokeonomics update will be proposed, few understand that this update allows us to rethink, from the ground up, how we go about governing the Hub.
Two things Cosmos can learn from Zcash:
The governance design space is much richer than just coinholder voting: protocol communities are made up of diverse constituencies, many of which coinholder governance fail to represent. In particular, coinvoter led governance is more conducive to a corporate than a FOSS mindset.
A defining value of crypto is the right to exit: in order to respect this right, forking needs to be made as easy as possible (at least along the technical and cultural dimensions)
Two things Zcash can learn from Cosmos:
Coinholders – as a constituency – need to feel heard and valued: if this ingredient is missing, a protocol will never kickstart the virtuous cycle of price → adoption → price → adoption… without kickstarting this cycle, a protocol might survive, but it will never flourish.
Resiliency means having many independent organisations funded, aligned, and committed to supporting a protocol: the fact that zcash has only two core teams (and that both these teams are under a single jurisdiction) makes it much more vulnerable to regulatory overreach than Cosmos.
optimising for private value capture is really quite awful from a standpoint of capital efficiency in public goods provisioning
– Christopher Goes
Protocol communities are made up of diverse constituencies, many of which coinholder governance fail to represent.
Zcash completely forgoes coinholder voting, instead choosing to operate as a sort of two-party network state (where both parties receive in-protocol funding for four years at a time).
At a high-level, one party (the Electric Coin Company) is more concerned with coinholders, while the other (the Zcash Foundation) is more concerned with public goods. Both parties build and maintain their own clients (realpolitik implementation of a plausible chainsplit) and there is a unique trademark agreement which acts as a legal equivalent (for a fork to be legally called Zcash, both parties have to be in agreement). This structure encourages both parties to come to a compromise over prioritising coinholders vs the broader public.
The following comment by Peter Valkenburgh (ZF board member) offers an interesting insight into how he personally thinks about governance:
It likely depends on the app’s function, but if some quasi-public good is to be provided (censorship resistance, self-sovereign identity) and if regulatory concerns dominate (stablecoins) then it can’t be corporate should look more like FOSS.
In Peter’s eyes, if you’re aiming to provide a quasi-public good (such as censorship-resistance), then governance should feel more like a FOSS project than a corporation.
So how does an emphasis on coin voting move a protocol away from FOSS culture and closer towards a corporation?
At the extreme, coinholder led governance gives disproportionate power to one constituency (coinholders, especially wealthy ones). Within this dynamic you can think of coinholders as shareholders (or owners) of the protocol.
Why can this dynamic be harmful?
One way it can be harmful is that the closer you are to a (profit-driven) corporation, the more likely you are to overvalue the goal of making price go up in the short-tem (potentially at the expense of harmful rent extraction and intergenerational unfairness over the long-term). In particular, this does not bode well for your ability to create a broadly useful public utility that can stand the test of time.
Vlad Zamfir has articulated this perspective particularly well:
If the blockchain is captured, then its governance will serve the interests of a narrow group of stakeholders who are served by the governance of the capturing entity. There is no clear reason why it would serve the public interest, and the public are ultimately the intended users of public blockchains (imo). I really think that only a governance system that is open to public participation has a reasonable chance of representing the public interest. And I think it’s obviously contrary to the public interest to allow the blockchain (imo a true public utility) to be owned by anyone (or any cartel). I will fight to prevent the blockchain from being owned, and you should, too.
… I intend to have blockchains serve as global, public utilities with no owners, and I intend for them to be governed ethically and in a way that puts the interests of the public before the interests of other participants in blockchain governance.
Vitalik notably expresses a similar sentiment in his latest post:
Realistically, we probably only need a small number of DAOs that look more like constructs from political science than something out of corporate governance. But those are the really important ones.
If we want the Hub to be one of these “really important ones” (perhaps as the long-term center of public goods provisioning for the wider Interchain), then we’d be wise to keep this advice front of mind as we go about rethinking governance.
It’s one of the major strengths of open source, that you can show, through positive action, what a more beautiful world looks like without the use of force or coercion - if you don’t believe in forks, you have to ask yourself what you’re doing here to begin with.
– Jacek Sieka
In order to respect the fundamental right to exit (a defining feature of blockchains), forking needs to be made as easy as possible (at least along the technical and cultural dimensions).
In Zcash architect Nate Wilcox’s words:
A defining value of crypto is the Right of Exit. Builders should make it as easy as possible for users to coordinate w/ like minded individuals on a safe chain split.
Zcash has followed this principle from the first backwards-incompatible network upgrade (known as Overwinter), which included multiple features to make a chain split safe for users of both sides of the split.
Zooko has even written a post predicting and encouraging what he calls “future-friendly forks” of Zcash (persistent forks which do not cause a schism within the community).
In his words:
In the future, as the Zcash community grows, there may come a time when we need multiple, distinct technologies, each one building on a different branch of the original blockchain. This is likely to happen, because different technologies offer different trade-offs to their users, and some uses of Zcash might benefit more from one technology, while other uses may benefit more from a different, incompatible design.
Imagine if we had a friendly governance-minimised fork of the Hub (one which aimed to optimise for a conservative Bitcoin like fully-auditable SoV within IBC)? Or alternatively, a fork with a fully-shielded base-layer (one which trades off auditability in favour of privacy and censorship-resistance)? Is it not reasonable to hypothesise that different subsets of the community would benefit more from these otherwise incompatible designs? And that, as a result, the total value-add to the original chain would be greater?
Whichever way you come down on these questions, I certainly feel we need to be thinking harder about how to encourage these sorts of positive-sum friendly forks (both on a technical and cultural level).
As an important counterpoint, there is an interesting sense in which Cosmos’ interoperable architecture makes it particularly conducive to future-friendly-forks – without actually needing to fork!
Instead of forking (and risking a community schism), Cosmos makes it easier to just launch a new chain and airdrop the community instead.
just a friendly reminder that
@cosmos has always been about interoperable sovereignty, and that’s the beauty of app-specific chains!
our differences makes us stronger as a whole.
if you see 10 million ETH voting for a given proposal, you cannot dismiss that by simply saying “oh, that’s just hired Russian trolls with fake social media accounts”. It is also a signal that is sufficiently disjoint from the core development team that if needed it can serve as a check on it.
– Vitalik Buterin
If coinholders don’t feel heard, a protocol will never kickstart the virtuous cycle of price → adoption → price → adoption… Without kickstarting this cycle, a protocol might survive, but it will never flourish.
Even though linear coinholder power favours the wealthy, my perception – after 6 months of being immersed in the Cosmos community – is that even relatively small ATOM holders today feel empowered to some degree. I think this comes down to the fact that they do have a mechanism through which they can express their voice – even if is a small one!
In contrast, Zcash has no such outlet. This can make those who identify primarily as coinholders feel like they are screaming into a void. Personally. after watching Zcon3, I have a great deal of empathy for their plight. The contempt for coinholders exhibited by some key members in the community is clear. As a relatively new coinholder myself, this struck me as extremely demoralising.
In spite of its imperfections, coinvoting is quite unique in that it is both sybil-resistant and permissionless. My take here is that completely dismissing it as a signalling mechanism is just as bad a mistake as relying on it as the only mechanism.
2. Resiliency means having many independent organisations funded, aligned, and committed to supporting a protocol
Once upon a time, many of us worked together in a single company: All in Bits… due to strong disagreements on how an organization should be run, most of the core development team left that company in 2019/2020. However, virtually everyone that left All In Bits is still working hard on Cosmos today, leading teams and companies in a new constellation of organizations working to realize the future of Cosmos. And that future is incredibly bright.
– Ethan Buchman
The fact that Zcash has only two core teams – and that both are under a single (US) jurisdiction, is arguably the biggest existential risk to the protocol at this point.
In contrast, the Hub has on the order of 10 independent core teams spread out around the world; although it’s hard to say exactly how many, since the very notion of what constitutes a core team is both fluid and ill-defined. Suffice to say that, after a near death experience, the software development process is highly decentralized today, with no one Cosmos development team, but an intricate network of open source projects and contributors.
Today, Zcash can be thought of as a two-party network state (possibly the first of its kind).
We can consider the Zcash Foundation (ZF) and the Electric Coin Company (ECC) to be two distinct parties because of the important ideological differences which separate them. To put it simply, the ZF is more focused on the creation of public goods for every human (particularly those who may never wish to hold ZEC), while the ECC is more focused on the plight of ZEC holders (both present and future).
The two other key actors in Zcash governance are the community advisory panel and the grants committee. Both merit a more complete introduction.
The Zcash Community Advisory Panel (ZCAP) lies at the heart of the Zcash Foundation’s governance. It is a panel of 90+ community members who are eligible to take part in advisory polls conducted by the Zcash Foundation (in addition to providing input into the makeup of its board) . Since ZCAP arguably serves as the main signal to the ZF’s decisions, it’s worth understanding its history and mechanics a little more precisely.
The ZCAP was originally formed in 2018 as a community governance panel, and has been expanded regularly since. It has provided input on the appointment of Zcash Foundation board members, was instrumental in the governance process that resulted in ZIP 1014 (which established the Dev Fund), and is used to elect the Zcash Community Grants committee.
ZIP 1014 mandates that the Zcash Foundation “SHALL continue to operate the Community Advisory Panel and SHOULD work toward making it more representative and independent”. In pursuit of this goal efforts have been made to expand the CAP:
The first method is for existing CAP members to invite one other person to join the CAP.
The second is to allow longstanding members of the Zcash Community Forums to volunteer to serve on the CAP.
And the third is to offer membership to those who have contributed to Zcash through winning and executing grants or contributing software to the open source software code base.
Membership is currently on a “use it or lose it” basis. Members who do not vote in a CAP poll are dropped from the CAP (to avoid a situation in which members feel pressured to vote on something they don’t understand, “Abstain” is included as an option on all votes).
While ZCAP strives to be as representative as possible. It notably does not include people who’s qualification is that they are ZEC holders. This has been a notable point of contention with the ECC.
There are a couple more things worth noting here. Firstly, while the ZF does seek input from the community, at the end of the day it has final authority over the ZCAP eligibility criteria. Secondly, the Foundation ultimately acts as the reviewer of potential new CAP members – it has a veto power, though ZIP-1014 outlines that this veto power is limited to code of conduct violations (specifically, forum members must not have been suspended or banned from the forums for violations of the Community Code of Conduct).
The grant committee is an independent body, consisting of 5 members voted in by ZCAP. It receives 8% of the block reward (for the remainder: 80% goes to miners, 7% to the ECC, and 5% to the ZF).
It’s able to set its own terms, except for the limitations and reporting requirements that were explicitly stated in ZIP-1014. Ultimately, its responsibility is to allocate the funds towards grants that will help Zcash succeed.
Interestingly, while the funds today are accepted and disbursed by the ZF, ZIP-1014 leaves the door open for perpetual funding to grantees that bypasses the ZF (via direct issuance from block rewards).
At the end of the day, Governance essentially boils down to three questions:
- What should we do?
- Who gets to decide?
- How are the deciders chosen and kept accountable?
Let’s try to answer these questions for both the Zcash grant process and the Network Upgrade process – for the sake of concreteness, we’ll focus on Network Upgrade 4 (since it was a particularly contentious upgrade it offers deeper insights into the power dynamics at play).
While I encourage you to read the full background story as told by the ECC Here’s my best synthesis of the events that led up to NU4:
- Forum post kicks off public conversation around founding reward ending (initiated by community member with no ties to either ECC or foundation)
- Personnel from ECC and Zcash help organize discussions
- Zcash Foundation offers formal proposal guidelines (what they will and won’t support)
- ECC responds to ZF guidance
- Any community member can submit a proposal to be considered on the forum. 20 different proposals are made
- ECC initial assessment of proposals
- ZF attempts to gauge broader community sentiment via the community advisory panel (main signal), forum poll, and miner signalling protocol
- ECC attempts to gauge coinholder sentiment through their own polling
- ZF converges on a solution articulated in a final proposal (ZIP 1012, which incorporates ideas from multiple ZIPs, including a funding cap).
- ECC announces it will not accept funds if they are capped at a dollar amount
- ZF announcesc a 2nd poll to vote on support of a follow-up ZIP( 1014, a modified version of 1012 which takes the ECC’s concerns into account) and additional questions
- ZF announces results (and overall consensus) from second round of polling
- ECC responds to second round of polling, accepts role.
- ECC and ZF approve a modified ZIP 1014, which funds zcash development for another 4 years.
- NU4 (which contains this dev fund) is activated
Ultimately what we see is a long back and forth between the ZF and the ECC to converge on a solution that both can deem to be acceptable.
Notably, both parties take in slightly different signals from the community in order to make their case (from CAP members, to forum users, to miners, to coinholders).
The Grant committee’s mission is to make Zcash ubiquitous: wherever someone wants to use ZEC, they should be able to use ZEC - easily and safely. So every project they fund has to be thought of within this context.
For a network upgrade to go through without a fork, a political compromise needs to be found between the ECC and the Zcash foundation.
This need to find a compromise is in a sense forced by the combination of the trademark agreement (both teams have to agree for a fork to be called Zcash) and realpolitik implementation of a chainsplit (both teams have control over their own client).
In sum, network upgrades ultimately boil down to 2-of-2 multisig governance between the ZF and the ECC (though since the software is easy to fork, and both entities maintain their own client, there is always the credible threat of forking if an agreement cannot be found).
While community sentiment is taken into account (through the forum and the views of the ECC and ZF), the grants committee is the final arbiter. This committee consists of 5 people voted in by ZCAP.
The ZF and the ECC are implicitly chosen, and held accountable, by the community (since they are reliant on a constant stream of block rewards for funding).
Notably, both the ECC and the ZF are reliant on explicit community approval to renew block reward funding commitments in 2024.
As discussed earlier, the ZF and the ECC also keep each other accountable in both a legal, technical, and philosophical sense (via the unique trademark agreement, independent client distributions, and differing mission statements).
Finally, as 501©3 public charities, both the Zcash Foundation, and the ECC’s parent entity – Bootstrap – are ultimately beholden to the duty of care, duty of loyalty, and duty of obedience. They are required to provide ongoing public reporting requirements. In ZF’s case, the Board of the Foundation holds the Executive Director, accountable for advancing the Zcash Foundation’s goals. In the ECC’s case, the Bootstrap’s initial Board of Directors started out as identical to ECC’s current Board, but is now a “self-perpetuating” board that decides its own composition.
While anyone can apply to be a part of the Grants committee, members are voted in by ZCAP. Once voted in, members are ultimately held accountable by the soft influence of the ZF.
Even though there are many moving parts, the simplified mental model I keep front of mind is of Zcash as a two-party network state. While both parties (the ECC and the ZF) are funded by the protocol, only one party actively seeks coinholder engagement in decision making. The other is largely reliant on the opinion of a 90+ trusted member advisory panel. Even though they have different priorities, there are both legal and technical pressures that encourage them to come to a compromise over the things they care about. In my mind, this way of making decisions embodies Bismark’s definition of politics:
"Politics is the art of the possible, the attainable – the art of the next best”
In order to ensure coinholders feel valued, without losing the emphasis on public goods provisioning, Zcash should move towards what Vitalik refers to as loosely-coupled (advisory) coin votes:
Loosely-coupled (advisory) coin votes: a coin vote does not directly implement a proposed change, instead it simply exists to make its outcome public, to build legitimacy for off-chain governance to implement that change. This can provide the benefits of coin votes, with fewer risks, as the legitimacy of a coin vote drops off automatically if evidence emerges that the coin vote was bribed or otherwise manipulated.
There is an urgent need for prospective parties to start forming and positioning themselves now ahead of the 2024 block reward renewal/negotiations. Recent events have shown that the US simply cannot be relied on to play by the rules. The fact that all core teams are currently under US jurisdiction is probably the biggest existential risk to the protocol at this point. As such, achieving protocol funding for one or more non-US entities should be a priority.
Just one party outside of US jurisdiction would probably be enough to help Zcash get past this current threat. One way to get the ball-rolling now is for the Grants committee to put out an RFP. This RFP should be deliberately broad in nature. The team doesn’t necessarily have to be technical, but it does need a leader, a vision, and community support.
It’s not possible to have a true balance of power between the ECC and the ZF if the Grants committee is voted in by ZCAP.
To solve this you either have to find a way of decentralising the authority over the ZCAP eligibility criteria (in order to extricate the ZF’s biases from the choice of criteria) or turn the Grants committee into it’s own fully-independent entity. Forming this entity under a non-US jurisdiction would also help solve for 2.