ZCAP & the pathologies of choose-one voting

The recent ZCAP advisory poll was conducted using choose-only-one voting, and produced this curious result for the question as to what should be prioritized next for Zcash protocol feature development:

None of the options presented received a majority of support, and the “third-place” result for “what to do first” ended up as the first-place result for “what to do second”? This isn’t a sensible outcome, and it’s the consequence of using a broken voting system - simply put, plurality-winner voting DOES NOT WORK for any election where there are more than two options.

Furthermore, “None Of The Above” (a vote of no confidence in any of the proposed options) was not included, making it impossible for community members who disagreed with the suggested priorities to voice their opinions.

I propose the following: that in all future ZCAP polls where more than two options are available for a single question, that polls use STAR voting (Score-Then-Automatic-Runoff, see http://starvoting.us or http://equal.vote for details on how this works) so that we can obtain a true majoritarian result, and that “None Of The Above” be included as an option in every poll presented to the ZCAP.


Agreed this could be improved. I wanted to vote for “none of the above” in the second question; I ended up voting for programmability.


Thank you for this. In the polls, I’ve recently felt cornered into providing answers that, combined, formed a picture—and an assumption of my approval of that picture— that veered from my natural impulse, if that makes sense. And I voted anyway!! So keep looking out for us! Thanks again!


This is an interesting observation that threw me off when reading the results. What about a “Rate the order in which you prefer the priority to be?” instead of 2 separate questions.

Rows for the topic to be judged.
Columns for the priority order.
Can only mark each row and column once.

I have seen this in some surveys I’ve taken recently and I rather like it.


Voting can always be improved. The trouble is we ran into was Helios cannot do ranked choice voting. All you can do is multiple choice answers to a question. I believe this is a cryptographic limitation. And having cryptographically auditable and private voting is important. Helios is, as far as I know, the only usable platform for it. People have to accept the results of an election, so these properties are important.

Furthermore, I think we got a pretty clear signal especially when one considers all the inputs we’ve seen from community members, on doing user defined assets/ZSAs now. UDAs got 46% of the vote and 40% more than the next closest option. Moreover, I imagine if we ran a run off, most of the programability votes would go for UDAs since doing almost any kind of programability on Zcash requires custom state that can be privately moved around.

If there was a substantial minority publicly opposed to UDAs, one might have reason for concern simply because that minority might refuse to accept the election result. But there are maybe 1 or 2 voices that come to mind in opposition.

I agree, there’s more ambiguity on what we do second: programability vs PoS. Seeing as both need some planning before we even know what doing one or the other looks like, this doesn’t seem to be too big of a problem for now.

It would be nice to fix all of this with a new election platform, but unfortunately, I do not know of any that provide cryptographic verifiability and privacy. We should keep looking, because you are right, this might cause issues in the future.


Ranked-choice voting is complex to tally (compared to STAR) and presents a “center squeeze” effect that can require/empower tactical voting if the common instant-runoff tallying method is used.

Score (also known as range) voting provides a better sense of “how preferred” each option is, and the runoff phase of STAR voting gives a majoritarian preference result. But for prioritization, just the score by itself is good information. And we use this kind of voting all the time! I’m sure you’ve looked at Amazon star ratings, or IMDB scores, or so forth before - these are exactly score votes!


I think that it’s likely that under a score-based voting system, ZSAs would also have been the highest-rated priority for what to do next. However, it’s clear that it was not the top priority for a majority of the CAP members! I personally think it’s the best thing to do next - but I don’t consider a plurality of support to be an adequate signal; it may simply be that vote-splitting is making it look like the most preferred next step.

1 Like

“not the highest priority for the majority of the cap members” is not a valid way to interpret election results. Even in ranked choice voting, we have winners even if people don’t all rank the same result first. Thats how elections work. And its why there are so many complex voting schemes.

Unfortunately, we don’t have ranked choice voting because of Helios’s limitations. What we could do is have a runoff, UDAs vs PoS. That’s what’s used in first past the post voting to address this problem if it is a real concern for a particular election result. And as I said, i think it’s clear what happens with a runoff in this particular case: the people who voted for programability move to UDAs because its the necessary stepping stone for programability anyway.

If there is a substantial minority claiming the results are illegitimate, perhaps we have to do that to convince them. But, if there is, I haven’t seen it yet.

Ranked choice and score voting are quite different things. Does Helios also not support score voting?

Helios can allow multiple selections and give you a total tally of how many of each option were selected, so approval voting. It’s possible to hack it to give Satisfaction Approval Voting but it’s unwieldy, basically involves repeating the same question multiple times


If approval voting is an option, given the current limitations, then I think that an approval ballot with a “None of these” option would be an improvement upon the current system for future elections.


“Unwieldy” feels like a UX problem, not a cryptography problem. The server could add an SAV overlay that is backed by the more-unwieldy approval mechanism (have N questions for N options, and then present SAV UX that asks for the user’s preferences and then splits the user’s N votes amongst those preferences). The code is open-source, so if this is something we want to be available, we[1] could likely contribute it.

[1] “Royal we” - I am not volunteering my less-than-zero hours of free time to this.


Relevant issues if anyone does want to contribute alternate voting systems:


When the question is about priority, the answer that is appropriate is the one you feel has the highest priority. Its seems fine for this kind of consensus.

Good idea to add the no confidence vote too. You do have the option to not vote on certain questions I think, but I havent tried that myself on a helios poll.

Another simple poll was run in the Zcash community telegram here Telegram: Contact @Zcash_Community and the results were crystal clear.
Out of 112 vote, 70% are in favor of Proof of Stake.
I made a screenshot of the poll results today

Of course, this poll is not an authority, it is what it is, but I wonder why the Helios vote doesn’t reflect the same enthusiasm for Proof of Stake…

I think there’s a big difference between “what should we do next” and “which one of these is better.”

“What should we do next” has big factors like effort vs. payoff calculations included. And a switch to PoS is a lot more effort (and is a project that has to be completed over a longer time frame) than something like ZSAs.

The overall thrust of this thread is “if we’re going to have polls, let’s put them together in the way that gives us the most and best information.” That means both asking effective questions, and using a system that allows people to accurately represent their sentiments.