Also, shameless self plug for this toy I made that lets you compare first-past-the-post, quadratic, ranked choice, approval and about 2 dozen other voting systems:
I've been meaning to finish polishing it for a month now, but it's been hard to find the time. You know how it goes. Lots more voting systems and cool features are in the works though
Oh cool. I only knew of 2 or 3 similar projects before starting this project, but since then I've come across dozens of other ones. I'll add to my list. Some day I'll add a webring of similar projects on my site
Mine is currently lacking in Condorcet methods. The original prototype of it had a few more condorcet methods in it, but the core reason I wanted to rebuild it was to make heavy use of cacheing. E.g. no reason why both STAR and Borda should have to make the same calculation twice. Or why all these head to head methods need to produce the same exact matrix. So I have this "SuperElection" class that tries to break things down as much as possible
I think this did in fact help my performance but it's also made everything so... interconnected. Definitely been a good learning journey. But I might just re-implement kemeny-young and some others in a less efficient way and worry about optimizing them later
The point, I guess, is that the vote counting function is sublinear, ie. f(x+y) <= f(x) + f(y), ie. allocating many credits to one place gives you less total voting power than allocating the same number of credits over many places. But why the square root function in particular?
Because the derivative of a quadratic is linear, meaning meaning you spend votes proportionally to the strength of your preference (indifference at the margin).
Quadratic voting can be bypassed if whales can make a large amount of identities. The lack of strong identity and Sybil attacks is the biggest unsolved problem in distributed systems of the free-to-join class.
Q̶u̶a̶d̶r̶a̶t̶i̶c̶ voting can be bypassed if whales can make a large amount of identities. This has nothing to do with quadratic or not. As long as the voting system satisfies the non dictatorship property of Arrows theorem they are vulnerable to Sybil.
I think what OP meant is that if you have an organisation with 100 votes or 100 organisations with 1 vote there's no difference in linear, but there's a huge difference in quadratic.
Yes but that's the point of the system, more individuals voting for something means more. Like any voting system, it doesn't work if one person can impersonate other people.
In my experience with writing quadratic voting contracts in Solidity, the exponent of 2 is mandatory because there's no way to calculate an nth root in Solidity.
Writing that out though, I realize that the root could be calculated by the client and simply verified on chain.
One token, one vote is an exponent of 1, it should be up to the voters to decide the exponent used based on the issue in order to choose the degree money influences decision making.
False. You can very much implement the n-th root. Details depend on the number format chosen (fixed vs floating point emulation).
The most obvious method is binary search. You calculate the n-th power for some number and see if it is larger or smaller then then the number you want the root from and narrow it down.
Equivalents of the doom trick using integer division and instead of >>1 (which is ÷2) of the exponents + a few newton iterations would also do the trick in floating point format
> In 2019, the Colorado State House of Representatives used quadratic voting as a way to determine which appropriations bills to prioritize funding first.
I think this is the best use case for this voting structure: given a set of options to choose from at the same time, you're able to rank these democratically in a way that embodies all the benefits described in the article
Isn’t the electoral college worse. Someone living in some sparsely populated midwestern state has more than 100x the voting impact as someone from an urban area even though they may contribute very little to the economy and probably receive a lot of welfare and subsidies. I’ve been fuming.
A vote in Wyoming is worth 3.6x a vote in California due to the electoral college makeup. This is just raw voting power though, not the "impact" you're likely describing.
Votes in battleground states will always have more impact, but that has less to do with the electoral college makeup and more to do with the fact that we group the votes geographically and allocate them all to the same person. If/when Texas becomes purple, the impact of a vote there will be greater than one from a tiny deep red state, despite the fact that voters have less voting power.
Imagine a tiny geographical area that punches above its weight (economically-speaking). Its people pay a ton in taxes, take very little from the government, but they also have disproportionately large voting power.
While this setup is blatantly undemocratic, it could be hard to argue that their voting power should be reduced when they're contributing more to the pot than they're taking out. A bullshit justification to someone who actually values democracy, but this logic isn't entirely insane. Indeed, this scenario is reality in some places on earth.
America, as we all know, is nothing like this.
The smaller states take more than they give. There is no excuse to not make their votes count the same as everyone else's.
What you are describing is called a sybil attack. Gitcoin is an example of a project that implements quadratic voting, and here is a blog post about how they mitigate sybil attacks and other forms of attack: https://gitcoin.co/blog/deterring-adversarial-behavior-at-sc...
I don't mean to be argumentative, but this is far worse than a Sibyl attack.
In a Sibyl attack, an attacker can spend N resources to carry the weight of N people, gaining proportionate influence where proportionate influence is disallowed.
In this attack, the attacker can spend N resources to carry the weight of N^2 people.
That is, they can vote as the square root of the pool. If there's a million tokens in the pool, they only need a thousand to achieve dominance, unless someone else uses the same trick simultaneously.
This is the kind of thing that's so bad that it's hard to imagine someone didn't design this with the explicit purpose of exploiting it themselves down the line.
I'm not sure why you suggest quadric voting fixes this, as it actually makes this radically worse.
You seem to be reciting PR without understanding the underlying math.
If you have 10,000* tokens (* changed for easy square rooting), you can give 1 candidate 100 votes.
Suppose you split your tokens over 100 accounts with 100 tokens each (100 × 100 = 10,000 - so your total number of tokens hasn't changed). If each of these accounts votes fully for the candidate, the candidate gets more votes. Specifically, each account is worth 10 votes if cast fully for one candidate, so 10 votes × 100 accounts = 1,000 votes.
And indeed, if you split your tokens over even more accounts, each token gains even more voting power. If split over 10,000 accounts, you control 10,000 votes - instead of the 100 votes you had with 1 account.
Basically, with QV, those with tokens can do tricks to gain quadratically as much power as they are supposed to have.
I still can't see how the cheater with the 1000*1 votes has "achieved dominance"?
> If each of these accounts votes fully for the candidate
Quadratic voting kind of discourages that: the marginal vote has more utility given to another candidate. Non-cheaters will tend to spread around their votes.
Yes the new world order is crypto contracts running things, oh wait we need to convene a council so humans can review potential threats before they are allowed to transact with the contract.
> Because quadratic voting considers not just how many credits were allocated to each option but also where those credits came from when calculating votes, it can be particularly vulnerable to Sybil attacks.
I've always wondered how DAOs solved the Sybil problem, speculating that governance was no more meaningful or binding than a Twitter poll without a solution.
Sometimes I wonder if I could have been very rich very early by just building things while ignoring any part of said thing that seems to be a major, unsolvable problem.
The requirement for stuff to actually work most of the time seems to be somewhat imaginary.
The answer in many cases is likely yes. That's what fake it 'till you make is, really.
Obviously sometimes it fails, and in some cases more spectacularly than others, such as with Theranos. But how many founders of companies with strategies that could kindly be called "Theranos adjacent" made of with lots of money? My guess is enough that knowing the real number would make all of us very sad and mad.
I've built a DAO tool that requires passport verification and allows voting on binding proposals with quadratic voting. Each proposal defines a series of transactions to execute on chain.
Does it accept a passport from any country? How are they verified? Couldn't counterfeit passports slip through? How do you make sure a passport is used only once? Doesn't this make you a target to a state level attack?
Stripe Identity is used to verify passports, it supports 33 countries (mostly NA and EU) right now. A salted hash of the country code and passport number is published on chain which allows only one instance per passport.
As far as a state level attack, it's possible. A complete solution to Sybil resistance is not simple.
The passport verification service is at https://coinpassport.net if you would like more information.
How does it deal with people who have multiple passports? Or renew their passports when they expire? I have two valid passports right now, with different numbers, issued by the same country.
Stripe Identity seems to very explicitly not be intended to guarantee any form of uniqueness.
For people asking about Sybil attacks and how do organizations prevent someone from pretending to be many users, this is still an unsolved problem. One project that's working on it which has gotten a lot of support is Proof of Humanity:
I haven't seen fury over Proof of Humanity. Maybe you're thinking of Sama's Worldcoin which is trying to scan the eyeballs of everyone on Earth to generate unique Ids? It was met with a lot of criticism over privacy and how it's being funded (much of the created new currency will go to its VC backers and Sam).
Proof of Humanity is definitely still an experiment, but has a much more open and less authoritarian design. Of all of the "proof of personhood" projects it has the most traction, especially within in the Ethereum community where its founder, Vitalik Buterin, has written a lot about it, including in his recent post on Soulbound:
> Although QV is at its heart an intuitive process, many of us may be unfamiliar with what “quadratic” functions are. Having to speak about something we learned in algebra class as part of a voting process can risk being distracting from the actual vote.
"Something we learned in algebra class"? Seems like a weird thing to say, everyone who understands cryptocurrencies should find this trivial to understand, surely this isn't a real problem.
The percentage of the population that actually understands cryptocurrencies is extremely small.
If you try to explain to my father what QV is by talking about cryptocurrency, you've lost before you even started. Same goes for much of algebra, in fact.
Also, shameless self plug for this toy I made that lets you compare first-past-the-post, quadratic, ranked choice, approval and about 2 dozen other voting systems:
https://votevote.page/
Basically the voters and the candidates are colors. How much a voter prefers a candidate is a factor of their RGB distances (sorta)