Mapping preferential voting into approval voting, take two

hingo's picture

Yesterday I described my first ideas at mapping the preferential voting method used in Liquid Feedback, to an approval voting method as supported by Helios Voting.

After writing it I had a Heureka moment and went back to check some details on how Liquid Feedback, and in particular the Schulze method actually works. It turns out it is not necessary at all to keep a record of the +N ... 0 ... -N scores given to each vote, this is merely an implementation approach used in Liquid Feedback. The only thing that is really needed is just the pairwise comparisons of all alternatives. This is stored in Liquid Feedback in the battle table. In fact, that is precisely what Solon delivers back to Liquid Feedback as results of the voting.

The battle table is very simple, using our (A, B, C, Q) example of yesterday:

issue_id winning_initiative losing_initiative count
[some id] A B 7
[some id] A C 2
[some id] A Q 4
[some id] B A 6
[some id] B C 3
[some id] B Q 9
[some id] C A 8
[some id] C B 6
[some id] C Q 3
[some id] Q A 4
[some id] Q B 9
[some id] Q C 6

The good news is, encoding this as a Helios election is both feasible and straightforward. We can create a referendum with multiple 1-out-of-N questions, each question allowing to compare one alternative pair:

Question 1: How do you compare alternatives A and B?
[ ] Prefer A over B
[ ] A and B are equal
[ ] Prefer B over A

Question 2: How do you compare alternatives A and C?
[ ] ...

Tallying the results of such a Helios referendum will immediately produce the results that can be written back to the battle table of Liquid Feedback.

There is still a small thing that with this approach it would be possible for a voter to cast votes containing "circular paths" that contradict each other. E.g. voting A as better than B, then B as better than C, and then C as better than A. Of course, this can be prevented by the user interface, but ultimately of course it would have to be enforced by the cryptographic algorithm. Probably there could be some zero-knowledge-proof that enforces this property.

Otoh, I don't know how harmful such circular / contradictory choices are to the Schulze method. Maybe it's not an issue. I suppose this is a good topic for further study.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Reverse Engineering Helios Voting Server and encoding prefer's picture


[...] Below is a first, and working albeit naive, attempt at this problem. Please also read this post with a better [...]

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Allowed HTML tags: <h1> <h2> <h3> <h4> <p> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <br> <sup> <div> <blockquote> <pre> <img>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically. (Better URL filter.)

This question is for testing whether you are a human visitor and to prevent automated spam submissions.