Drafting a ZIP to govern ZCG elections

I think this deserves its own, distinct topic.

After five MGRC/ZOMG/ZCG election cycles, now seems like a good time to codify how those elections are run, and address some of the edge cases that have arise or become apparent.

We currently use Helios for ZCG elections. It has the advantages that it is free, simple, open source, auditable (i.e. the community doesn’t need to trust that ZF tallies the votes honestly and accurately), votes are secret (i.e. even the person who creates the poll has no way of finding out how a specific voter voted), and voters can change their vote (by simply re-casting their ballot).

A disadvantage of Helios is that we’re constrained by Helios’s functionality. For example, there’s no single transferable vote or instant run-off capability.

Currently, elections are based on approval. Given n candidates, voters are asked the following question:

Which of the following candidates do you approve of as ZCG members?

#1 of 1 — vote for up to n

The second line is inserted automatically by Helios (the voting platform we use). “#1 of 1” refers to the number of questions being asked in the poll, and “vote for up to n” indicates that voters can indicate which of the n candidate(s) they approve of by selecting anywhere between 0 and n.

When the voter selects their first candidate, green text appears, saying “You may select up to n choices total.”

This approach allows voters to express approval for some, all or none of the candidates. The candidate(s) with the highest approval rating win the election.

There is currently no approval threshold (i.e. there is no requirement that candidates must meet a minimum level of approval to be appointed to ZCG), . Nor is a “Re-Open Nominations” option provided.

Currently, we open the poll at least ten days before the election deadline to allow sufficient time for ZCAP members to be made aware of the poll, to read candidates’ self-nomination statements, to ask questions of the candidates on the forum, and to watch the Community Call with the candidates.

In the past, we have dealt with committee member resignations in two ways.

When SJL resigned from the committee in January 2021, the vacant seat was offered to the first runner up in the election (@alchemydc), who declined, leading to it being offered to the second runner up (@ml_sudo), who accepted.

When @Souptacular announced his intention to resign from the committee in May 2022, we took the opportunity to stagger elections for that seat. @Wobbzz’s resignation (and re-standing) achieves the same objective for a second seat. As a result, going forward, three seats will be up for election at the end of December, and two seats will be up for election at the end of June.

Note that I don’t mean to suggest that the two approaches outlined above should form some kind of precedent. They’re just described for the sake of context and historical information.

Also purely for information, over the years, a number of committee members have garnered less than 50% approval.

The current election raises a number of questions.

  • What should happen if a candidate withdraws their candidacy after the deadline for nominations has closed and/or after the poll has opened?
  • What should happen if the number of candidates standing for election is equal to (or less than) the number of open seats?
  • Should there be a “Re-Open Nominations” option on the poll?
  • Should there be a minimum approval threshold? This could be absolute, or dependent on how many seats are open and/or how many candidates are standing.
  • Should a candidate (and/or the committee) be required to disclose that they have submitted (or plan to submit) a grant application, RFP response or similar that, if accepted by the committee, would result in them withdrawing their candidacy?

I’m sure others can identify other edge cases or scenarios that we may want to consider planning for.

I suggest that any proposals should be clearly actionable, and should not require that a new voting system be developed.

Helios allows anyone to create a poll, so it’s easy to experiment by creating your own polls (I suggest using generic names such as Alice, Bob and Eve as candidates’ names), and take screenshots to illustrate your idea/proposal/suggestion. If you want to suggest using a voting platform other than Helios, please describe how that platform compares to and differs from Helios, and post screenshots to illustrate its functionality.

My goal here is to spark a discussion, and elicit ideas from the Zcash community regarding the conduct of ZCG elections. A good outcome would be consensus around some aspects, with some clearly-defined choices that we can present to ZCAP, with the end-goal of a series of guidelines, processes and procedures, in the form of a ZIP that can be approved by ZCAP, and can form the basis for establishing candidates’ and voters’ expectations in future elections.


Thanks for surfacing this Dodger.

I’d like to challenge a couple of assumptions:

  1. That this should be a process run by ZF
  2. That ZCG should be elected by members of the Zcash Foundation’s advisory panel (ZCAP)

Instead, I would prefer to see more leadership on this from ZCG itself, independent from the foundation. This is not because I think there is anything wrong with the foundation or the mechanism they’ve used to date - it was all reasonable at the time, but to promote greater ZCG independence into the future. I believe it would be healthy for reducing centralization risk and promoting greater resilience.

I also believe now is a good time to revisit core assumptions and think from first principles, and even more if this is to be codified as a ZIP.

I’d like to see the ZCG itself make a recommendation for the existing fund (through 11/24), and provide a clear perspective on how this might evolve if the dev fund is renewed for another term. This might warrant a grant to an expert independent party to work through ZCG governance possibilities and provide recommendations to the community.


I’ve been floating the idea amongst people that that ZCG independency isn’t enough by itself and the community might need a seperate dev fund committee. Their powers would be limited and any actions would require an existing dev fund recipient to champion any proposals. But if we could find a way to establish it in a way that is recognised by both ECC and ZF I think we can more confident governance events can occur when required, not just every halving (which also possibly changes once ZSF is established).

This isn’t intended to highjack the conversation but rather to float the idea that this discussion and any decisions made might have a greater impact then simply ZCG elections. We need a governance and voting model that both ZF and ECC recognise so that these important thing beyond simple ZCG ellections can occur.




I’ve voted in community elections with:

  • A “Re-Open Nominations” option with a 33% (1/3) or 50% activation threshold
  • A 50% minimum approval threshold
  • A 67% (2/3) minimum approval threshold
  • An approval threshold of “must get more votes than Re-Open Nominations”

And I’ve seen vacancies filled by:

  • The next highest voted candidate
  • The committee filling the position until the next scheduled poll
  • Re-opening nominations and holding another poll

Here are some of my experiences:

In practice, most elections don’t trigger the approval or re-nomination thresholds. Instead, some candidates who are concerned about triggering these thresholds don’t nominate.

When these thresholds get triggered, it’s usually because a significant minority (1/3) or a majority (50%) of voters oppose or feel uncomfortable with the candidate. (Currently, ZCAP members don’t have any way to show that.)

It’s common for committees to have vacancies, and filling it with the next highest candidate is convenient. But that can be tricky if that candidate doesn’t have the support of the community. So giving every candidate a way to show they have community support is helpful.

It’s also convenient to have the committee themselves fill vacancies, but it can lead to similar questions about community support.

Having multiple polls can be a lot of work for voters, and it can be confusing. So it would be helpful to have a minimum time between polls.


Thank you Jack for making things unnecessarily more complex and changing the election rules on the fly; and for damaging the communities confidence in the governance process even more by starting a discussion on the ZCG election process while there is an election ongoing.

1 Like