Sybil Resistant Ethereum Quadratic Voting QV - Shashank Motepalli

EthereumZuri.ch 2025 · 31 Jan 2025 · 32:12

Shashank Motepalli explores Sybil-resistant quadratic voting on Ethereum, where one person creating many identities could otherwise game the vote. The EthereumZuri.ch 2025 talk looks at why Sybil resistance matters for quadratic voting, in which the cost of extra votes rises quadratically for each voter, and how it can be achieved for onchain governance.

Speakers

Topics

From EthereumZuri.ch 2025, hosted by EthereumZuri.ch.

Transcript

all right uh okay hello everyone I'm Shashank and let's get right in before I get get into the quadratic voting let's start with voting today so like fundamentally the voting today you can think about the nation states uh one person one vote you're just going by the rule of the majority if you have uh say two people saying no and then uh say six people saying yes the outcome is uh whatever the majority of people say 6 versus two so one person one vote it's adding to the fairness but there's a

problem with it which is um it does not take the economic uh like gains from the system like there's no skin in the game there is no like some people are more invested in this uh project than the others uh so there are a lot of issues like that which are being addressed by token weighted voting uh mostly used in crypto or like similar structures in the traditional stock markets where shareholders uh participate in the governance of the project one token one vot or one share one vote there's a skin in the game there but there are some issues with plutocracy the more the

wealth you have the the more the Power you have and uh on one side we have no economic alignment in one person one word and on the token weighted voting we have plutocracy as fundamental problems uh in addition to this like we also see that there's a tyranny of majority like let's take an example here uh you're voting for a public good say you want to have a park there 10,000 people in the group a Who want that Park very badly they want to take their kid for a walk or they want to have a smoke there and the advantage they have by having that park there is probably $100 uh is what the value they're

gaining from it and if the other 11,000 people who have to walk few extra meters because of the park or they don't like the construction of the park around their neighborhood they have a disadvantage of say $2 in the traditional case with one person one vote the 11,000 people would be uh making the majority and the 10,000 people are not going to make their vote go through even in the token out based voting like token waed outcome uh if I assume these 10,000 people have wealth less than or equal to like if it's less than then it's evident

but even in the equal cases where everyone has equal we wealth uh all these 21,000 people we see that the 11,000 people are actually making it go through just because of their majority as you could see the net social welfare here is 10,000 time 100 uh which is negative because the park didn't go through and there's 11,000 * 2 22,000 which is like the benefit which the other people gain but the net social welfare is very low so the question we want to ask here is can we improve the net social

welfare so we need a voting mechanism which not only captures the preferences but also the intensity of the preferences with which people want it so if you want it more badly we want that particular decision to go through if not it may not go through so with these in mind and uh let's go back to the previous point that we want to balance fairness and the economic alignment and we also want to encourage the voter participation I'll just uh quickly introduce quadratic voting and then we can go through uh how it works and then finally do the demo of it um and like which can be used so what

is quadratic voting uh quadratic voting is just a voting mechanism uh it's used to show how much you care about a particular issue and not just what you prefer it's um introduced recently in the last 10 15 years it was getting more famous uh with recent work from Glenn whale and like between 2010 to 15 uh it's used in some government elections in California and like Colorado uh so the key idea is to bring your willingness to pay and how much you value a particular decision and combine it with the like combine the economics

with the democracy and the political voting mechanisms so here a minority which is passionately wanting something can outw outweigh a majority uh like which barely cares so probably 10 voters who want something really badly can beat 100 voters who dislike it let's see how uh right now so this is the fundamental idea which is uh if you want one vot it cost one token um I'm just talking in tokens to make it easier uh for the crypto uh discussion later um so one vote is one token the marginal cost of doing this one

additional vote compared to not voting is this one token now if you want to do two vots is costing four tokens uh the marginal cost is three and so on if you want to do n wordss you're doing n squar number of tokens is a cost which is associated and with each additional vote you're casting here you are incurring a marginal cost so the more intensely you care about something the more votes you want to buy and the more vots you want to buy the steeper the cost so let's see the process of how quadratic woing can be done on this side you could see the community set set up and the voter registration uh it's

basically a one-time process where I'm just defining um say all the people who has a proof of attendance from uh ethereum Zurich is probably my Community member I could also design uh some other parameters like what is the duration of the voting what token do we want to use for our voting and so on and the common process is basically the voting mechanism uh which is on this side where which starts with a problem registration or the proposal for example here it's a case of building a park and then the next stage is once a proposal is done it's a voting period during the voting period everybody decides to

select their preferences and the intensity of the preferences which they want to vote with so uh you could have multiple options and depending on how much you care you select this intensity and actually do the buying of these with your tokens of real value convert them into votes and during this time all these uh tokens are stored in an escrow um and once the decision is made this is a key interesting part in quadratic voting which is the redistribution all the tokens which are in the escrow are given out back to the people um currently the standard is Preta which is if there are 10 voters and there's probably 100 tokens in the pool this is

distributed equally with 10 tokens each so why quadratic voting it captures intensity if uh like um I care more about it I'm going to spend more tokens and um I want that decision to go through and there's some skin in the game which is incurring from the cost and then there's redistribution which is fostering more participation so say I'm just doing one vot which is incurring one token for me but there is at least one person in the community who cares strongly about this issue so they're probably incurring more than one token and I'm getting it back because it's equally redistributed so there's high probability of getting back more than

one token so at the end of the day I see it as a mechanism where everyone is sharing their preferences but the people who care more are showing their preferences more strongly and the last point is minority voices can outweigh the indifferent majorities we'll see this through an example right now let's go back to this example uh the proposal is to build a park there are two groups of people the group a is let's call it a these people have a net utility of plus five if a park is constructed and there's a group b which has B voters which has a negative utility of one if the park is Constructor so for the water

type a these two voters the net utility is plus five they are probably going to cast two votes because uh three vots would cost them nine tokens which is about their like benefit so they're casting two vots which is incurring four tokens the total cost is spent is around eight tokens because 2 times 4 and the set of Group B has like minus one uh utility and they're casting a vot opposing the park and uh it's one token per W so they are going to like three tokens of the total spend now we have a total of 11 tokens and the outcome is uh like a with four vs because 2 * two and

B with three votes so a which is a smaller group like which would have lost in one person one vot kind of setting is actually intensely caring about it and they're spending more money so they are probably making this decision pass through over B which is a bigger comparatively bigger group and the next part is the redistribution over here there are 11 tokens uh which are redistributed among five people so 2.2 tokens each so now let's just see what is the net social welfare in this scenario so for the a voters the park benefit is plus five and they're getting a refund of 2.2 and they're incurring a

cost of minus 4 so if you just do 5 plus uh to 7.2 minus 4 it's coming to 3.2 and two there are two voters so 2 * 3.2 is 6.4 and in the case of B voters it the park benefit is minus one they are also getting a refund of 2.2 and now the the cost which they incurred by voting is one like minus one so if I just do -1 + 2.2 1.2 min-1 it's coming to2 and three voters so 2 * 3 6 the total net payoff we see is + 7 um so we

just want to show that let's compare this pay of uh out like net social welfare compared to the other mechanisms in one person one vote or token rated voting so in one person one word um that like again two versus three so a group loses B group wins uh the net utility of a group is minus 10 and the B group uh is wait minus three uh sorry plus three so this is actually uh yeah minus 7 yeah sorry about this on the slide but um so you can see the neity uh

because it's a park is minus one uh yeah uh so - 10 + 3 is - 7 so the net social welfare is lower even in the token weighted voting uh is the same case the park fails assuming they have equal tokens all of them uh so there's a net negative social welfare in the case of both one person one vote and token weighted voting but in the case of quadratic voting uh there's a positive payoff uh in the net social welfare but with that being said why don't we see more quadratic voting uh in practice in today's crypto uh like we

have been hearing the word quadratic voting very often it's been in like used in some cases in some small communities but it's not predominantly used as a major voting mechanism even though it has gained a lot of interest uh the reason we see is probably because most JS today actually tally the votes there is no transfer of tokens and there's no real wealth redistribution so which is like if I have 100 tokens I'm just saying I have square root of 100 which is 10 is my voting power instead of uh 100 as my voting power so that is how people are

using quadratic voting in most of the DS today when they say they use quadratic voting uh and this is again leading to uh no redistribution and the rich really affecting the decision to keep their wealth still going forward so there's also no incentive for a smaller holder to actually participate in the voting protocol here so this current form of quadratic voting is not really the quadratic voting as per the literature uh which was proposed the reason we believe is because probably there's no civil resistance to make it work for quadratic voting to work so let's just look at an example if there's a rail with say 100

tokens they have two options I could either vote honestly and say there are 10 votes from me because I'm incurring a cost of 100 tokens or I could just recreate 100 different addresses with one token each and just do a Cil attack and um in case of blockchain which is predominantly decentralized uh I see there's a benefit by just creating multiple identities and just automating the script to do it so this civil attack is actually distorting the results in quadratic wording particularly so to address this we need some form of Cil resistance and uh like

like because any CBL can actually manipulate the voting power and the mechanism we need to find a way to uniquely identify humans and then believe uh like believe that uh they can vote uh in a fair way so the current existing approaches are like the various approaches we see in decentralized setting um one is the Biometrics uh or the social graphs or their reputation mechanism by like kit coin passport uh we choose to use like World coins proof of personent H because uh it's decentralized and um we can do the verification on chain and it helps us

make the quadratic voting uh a fair mechanism to continue voting so before I get into the demo let's do some key uh features of this app so this proof of personhood which is providing the biometric BAS is uniqueness based on the world IDs uh infrastructure and this onchain logic uh we use ethereum for all the smart contracts for voting uh for the quadratic voting as well as automated redistribution so the tokens are all the erc20 standard tokens and uh after the voting Peter ended they are automatically redistributed to all the people who

voted so this is basically the flow of how the voting would look like here so there's a community proposal once you join the community by connecting your wallet then you have a opportunity to vote and you set your preferences the first time you're voting um on this particular proposal this's first approv of personhood check uh from the world uh ID infrastructure and then once we get your uniqueness um like from your wallet the tokens are being transferred to an escro contract and this escro contract is taking away the tokens from your wallet to store them for a bit uh of the voting period and then uh T your vote

into the vote contract so once the voting period ended you can reclaim your tokens from the escrow contract and if you want to vote again on the same proposal uh the proof of person Hood check fails and you can no longer vote on the same proposal uh because you already voted on it and that's helping with the siil resistance here let me just do a quick demo all right so let's say uh the first step is basically you see different communities on this page and once you see that uh you're connecting your wallet

and like once you have the wallet uh sorry connected then you can see different proposals this is anyone in the community can actually do uh a proposal like if you want to be part of the community here it's basically having that token which belongs to that Community uh so they can set up different proposals um and then you set different parameters like start time end time and what are the options of the uh which people could choose from so this is creating a [Music]

proposal uh and this proposal is again posted on chain um right now we are using a test net on ethereum uh and then you can see the active proposals when you go to vote now um like you could see if the voting period has begun then you have an option to uh vote now and there you can set preferences on how intensely you care about uh it so it could be like I want more chart GPD to go through so I'm spending more tokens from my wallet on chat GPT and this is where I'm doing the world ID verification um this is just a simulator

to see if I have performed any action on this before and yeah once it's verified uh you are ready to vote where you can submit the vote and this vote is going through metamask uh sending the tokens from your account you could see the available uh tokens to Red juice after this yeah so if you retry uh voting uh basically this is

where uh like the check happens and you can't redo this same proposal because this person is already verified uh for this particular action so we use Dynamic actions in the world ID to just make sure each proposal has a different uh action ID so you can't revote on the same proposal twice um yeah we just uh going to create another user um with a different credentials even on the world ID site uh on the simulator so this person has

999 tokens uh sorry th000 tokens and we are just allocating uh yeah equal votes to all of them as you could see quadratic wording could also help you in multi chart voice proposals um and I'm just selecting a different Identity On The World ID this is a simulator so you have you can create different identities and yeah uh this vote should go through it's ready to vot and yeah the transaction happens here yeah and uh this is during the voting

period once the voting period is done you can redeem your tokens from here uh the tokens are given uh there are two voters as you could see here so the tokens are given equally to both these people so one might be spending more tokens than the other but at the end it's equal distribution U so which we also see as a way to encourage water participation which is a big problem problem in D as of today um yeah that's good uh for the demo all

right yeah so as you can see the key features is uh the like the redistribution the escro contracts are managed on chain there is no ownership by even the admins of the contract or the dowo and um anyone in the community can send a proposal can post a proposal um all the votes are recorded on chain so if uh there's an issue with uh like trust this is an alternative better platform right now most of the Voting is happening off chain uh so yeah there are some consider s uh which I just uh like to have some discussion on but I'll uh try to leave some time for the questions

but uh there are a few questions about using quadratic voting in practice in real world the first question is about virtual or real currencies if you use Virtual currencies which are just like governance tokens it's probably a good idea um to avoid questions about money laundering or other things uh probably it's more regulator correct but they are not real tokens of value we have seen some experiments where people create uh governance tokens these are tokens without any economic value which can help transfer of them and having no value could also mean um like they could be used with delegation because

currently using quadratic voting with delegation in case like some people might not really have time or the depth of knowledge required to vot uh they might want to delegate but giving off my real assets to someone else to take decisions on my behalf might not be easier in the quadratic voting case so the virtual currencies might be helpful there and the second thing is also about the Privacy preserving nature um currently all these are recorded on chain people could view it uh we need some form of privacy like in one of these two formats one is uh the entire ballot secrecy which is provided right now in the traditional

voting where I could vote in a ballot and be sure no one is going to retract this vote back to me which can be done with ZK SEMA force or uh either the other case which is having privacy for the predefined time for the duration of the election because I might be delegating my vote to someone else and I want to know what they voted on in a trustless manner um there are also different strategies which could be made for redistribution of tokens uh there are some ideas about using some of these as a tax uh in the literature or this could be used for funding some initiatives or it could also be the case that you want

to try Lottery mechanisms to have more water turnout um and then there is whether you want to make a single decision or multiple decisions and finally I could use my stake uh to show that I'm involved in the project and then convert that stake tokens to work with quadratic uh voting so probably the rewards from the state tokens or the longer I stake can be used as a proxy as a virtual currency to participate in the decision-making process of the protocol so with this uh currently we are just uh trying to make this governance platform more modular so

having plurality of decisions or automated enforcement of governance decisions is where we're currently working on uh this is basically you don't need code to modify all your constitutions so whatever the governance Constitution is we want to just take it and make it work in a decentralized setting uh so if you're a DA or like Community Builder or governance researcher happy to talk and see how we can collaborate on this uh our end goal is just to make this work to govern AI to align it more with human values uh all right that's all from me thank you yeah thank you so we have some time for questions

yes uh can we get him uh can you nice thanks um so I was wondering so so there these two types of of this quadratic quoting when why you take the square root of of the Stak somehow I mean why kind of the square root could you take the some other function is there some some reasoning why why this is good uh okay that's a good question I mean uh you could also go cubic or other ways uh but I think square root is just uh the first mechanism which was popularized and studied in the political

science theory uh so we're just taking that as the approach yeah thanks yeah other questions yeah there that works okay um just can you run over again um how this avoids the impact of Wales because if you have a lot of a currency to vote in then you don't mind losing it so much um if you if you vote what am I missing in in that concept yeah uh well so if I have a lot of tokens then I would be voting well if I use all my tokens then I'm actually losing my power and redistributing it to

someone else so if I keep doing it over time then I would not have the same power as I used to have before okay but for the first few times I can use my power yeah uh and it and it's you still get the same collusion effect or the same a corruption effect of of of having a whale using their monetary their monetary power in a voting system right until I run out of until I run out of tokens I'm skewing the system yeah I mean um I'd say it's it's probably not like uh if if I compare to extremes uh it's better than the previous case of token weighted voting

but it's probably not the best uh in giving the power back like that two mechanisms one is the redistribution the other one is the quadratic square root function so if I really want to have more governance power in the longer run I would keep using it over time in smaller quantities uh unless I want something to really go through and it impacts me a lot so and this again comes your point of whether you use um a util a governance token which has essentially only governance value versus a real value token Where You Are losing money so it probably points to the fact that governance tokens although they sound like a a

useful thing actually it's better to use a real currency which has real value so people don't so you so whales actually do lose out quite quickly yes okay great thank you I think there was one last question it's there so very quickly so now that you introduce this redistribution you combat some problems but usually when you introduce new mechanisms you can introduce others so now because you have redistribution and you know you changed a few things and generally like is it possible that there are like more complicated attacks that are possible not just Cil like I don't know like we have a like people collude and do weird things and now somehow the

redistribution does weird things I don't know like can you say something like the way you do redistribution is somehow Collision sorry collusion resistant or something like is there some property of how you chose to do it that makes it the right way to redistribute like I don't know like it's maybe a bit of a theory Farshot question but good point for discussion maybe yeah uh I mean there is some literature on that pra redistribution which is equally redistributing is good because it helps transfer of wealth uh but definitely people could game like it opens up some attack vectors uh some of them are solved because of using smart contracts

there but U like while it might open up some attack Victors we see the benefit is higher because it's increasing the participation at least to do one vote so uh while people can collude and probably go against it those are not really evident and they're minimal compared to the participation rates yeah makes sense okay all right uh I think that was the last question so thank you again shash thank [Music]