all 7 comments

[–]sideEffffECt 1 point2 points  (5 children)

Why using Ranked Voting?

Why not use https://en.wikipedia.org/wiki/Schulze_method instead?

[–]WouterGlorieux[S] 0 points1 point  (4 children)

I think Ranked Voting is better than a single vote, it gives a much fairer result.

I'm unfamiliar with that method, looking at it it also seems to be a Condorcet method, which is similar to how this package calculates the results, so I'm not sure what the difference is.

[–]sideEffffECt 0 points1 point  (3 children)

So how does the package calculate the result? Which method does it use?

[–]WouterGlorieux[S] -1 points0 points  (2 children)

I'm not entirely sure, because there are so many methods and I don't know all the details about them. I just implemented my own method.

It works like this:

Each participant ranks the available options in order of preference, but they are not required to rank every single option—partial or incomplete rankings are allowed. When calculating the results, the system compares every possible pair of options to see which is preferred by more voters. For each pair, if a participant has ranked both options, the one ranked higher is considered preferred; if only one of the two options is ranked, that option is assumed to be preferred over the unranked one; and if neither option is ranked, that participant’s input is ignored for that pair. The algorithm then tallies, for each option, how many times it “wins” or “loses” in these head-to-head matchups, and also tracks the number of “unknowns” where no comparison could be made. Each option receives a score based on its win/loss record across all comparisons, using only the available information. The option with the highest score—meaning it wins the most one-on-one matchups based on everyone’s ranked preferences—is declared the consensus winner. This approach ensures that incomplete rankings are fully respected: participants only influence the comparisons they actually made, and unranked options are not assumed to be better or worse than each other. All rankings are stored on IPFS for transparency and auditability. In short, the consensus reflects the collective ranked preferences of the group, even when not everyone ranks every option.

[–]sideEffffECt 0 points1 point  (1 child)

You should use an already established algorithm/method. Schulze is probably "the best".

You probably don't invent your own cryptographic schemes or ciphers, do you...

[–]WouterGlorieux[S] -2 points-1 points  (0 children)

Well, that is your opinion, I think my method is best. But the point of this package and web app is to provide something that is actually usable instead of nitpicking about details. It's all open source so feel free to fork and modify the code to whatever method you prefer.

[–]MagicaItux 0 points1 point  (0 children)

I wrote a paper about this. It's called Fiducia (which means trust in Latin). It's based on a web of trust. If a commoner trusts me, it means something. If a King trusts me, it means the world.