On-chain Voting System | Doris, PSE | ETHTaipei 2024
ETHTaipei·Wed, Oct 9, 2024, 12:00 AM
On-chain Voting System | Doris, PSE | ETHTaipei 2024
Transcript
hello everyone my name is Doris and let me introduce myself first so so this is my picture I submitted for the agenda and which is also my GitHub thumbnail but actually because it's Kitty and no one knows who's Kitty and it would be accused by maybe sandre so I changed my profile image to this like reading books from Mark so like I'm the front and backend developer from the psse team and currently work for Massi so today I'll also like introduce some part like high level mechanism of Massie but not really dive deep into the massive like technical part so for the technical part like I will I also have a workshop tomorrow night PM in the building M so like if you're interested in the technical part then please come there so let me like in start with the onchan voting so like before starting with onent voting I want to like like declare what is voting and why we need voting so we could imagine that we already encountered so many voting in our Liv such as like collecting opinions for decisions like these are some examples like where deciding our launch deciding the meeting time or only just like decide where to where to go or what should I wear like this a really like simple opinion collecting and the most important part for the Voting is the election part in the democr Democratic Society so like not only like election for the team lead or the class lead but also like the president election or public election it's really like important in the democ democ Democratic Society right so in the like big voting like if we're just voting for ourself then it's okay like we can vote in any format but what if like if we're going to vote like for president or for public or for the whole society that will affect will have a lot impact so what's important inside so I think the first one which is really important is we should gu guarantee the correct execution so to clarify what is the correct execution I think the first one is totally every single vote like we won't miss every vote like maybe the vote is dropped in water or something like it's being scaped or something so we would have a transparent process to make sure to the public that oh the the government or the one who toally votes really doing the whole process correctly and the second thing I think is really important is the censorship resistance so the first thing is like everyone could vote if you have the ability to vote like if you a baby then maybe it's not able for you to vote but if you are at the doubt and you're like you have a normal like a smart to vote then you should be able to vote and your vote won't be cancelled by any case and also won't be modified like in under any condition and the third thing I think is important is privacy like you can also find many articles on the internet like declaring The Secret of voting importance so this will make sure the voting based on personal feeling so like to make it deeper to declare it to explain it deeper that is like if we are like not having the private voting then we would might we might affect each other for example if I want to vote something Sam as my friend also it's an important thing to against the corrsion so like if anyone would know who you vote for then he might like force you to vote for something and he can check it like can check if you really vote for that option so the last thing is the collusion resistance so I think the most important part for the collusion is resistance is not able to approve your ballot like it's similar to the previous one for the private uh voting but like to explain it more is to prevent bribery also like for example if someone would like to bribe me to vote someone to vote for an option but he cannot make sure if I really vote for the option or not then he will not want to bribe me because maybe the money would be like he Bri me but I didn't do the thing he want me to do and he won't like have the like he won't he won't need to bribe me because yeah he will waste his money so voting has different like formats and if we're voting online can we like vote online for the like big elections so there are several problems so for the voting online so far we need to rely on the like third party to to the results for example the line bot or the messenger bot so actually we cannot like know if the the four conditions are being fulfilled so that's I think that's why we're like for the public election or national president elections most of the country still using the inperson voting but for the inperson voting like ideally fulfill the requirements of voting the four requirements of voting like because they will like recruit um staffs from the public and everyone could see the transparent process and to make sure everyone has its own identity to vote and like no one could stop anyone from voting but actually imperson voting is has its like efficiency issue like for example you need a whole day to like conduct this whole process it's time consuming and also laborous and also not friendly for those who have some mo mobility issues so let's talk about onen now so first of all what's the feature of blockchain so for blockchain it guarantee its transp parent for everyone everyone could like um verify the transactions on chain and it's guaranteed to run on a pre-agreed code so everyone could check the code it's running or the contract running on the on the blockchain and no transaction could be skipped or interfered or being like modified so actually we can achieve both correct execution and censorship resistance by purely wrong the voting process on blockchain so these are some of the onent voting applications and most of them are like doing quadratic founding or quadratic voting so this just some of them like there are many of them so how about privacy and the collusion issues so for the privacy issues like when we are voting on chain like actually everything is too transparent that my address and what is my voting option is open to the public so in this case maybe we could try zero knowledge proof and we would I will talk it like later and for the collusion part like there are some issues like using onch using onch voting the first of it is the self voting it's it's not only existed in the onine voting but also the online voting like the web to both in the web two and web three voting that how you can like clarify this person is different from that one so maybe we need an identity verification or we change a way that you vote based on your coin instead of the identity but that would cause another problem that is PLO plutocracy so actually someone like proposed a way called food tari to uh prevent theocracy which is like there is third party like checking the result of the whole voting process and then if someone want to bribe everyone that bribe most people to vote for the wrong option he will need to spend a lot of money and in the end maybe the third party still think this is the wrong option you we shouldn't take this result and actually the one who the briber actually lost his money so the most important thing in the collusion is the bribes like you know like many people actually doesn't care about the results of the voting but if there is someone who like there's benefit inside or someone won't give money to him or her and he or she will be easily bribed so well actually the goal of voting is to reflect the true majority opinion so how can we like achieve this goal so so let's talk about the collusion resistance for the collusion resistance the first thing is to make sure every user is a you is a real person which that we could make sure that this uh vote of vote result is based on everyone's like thoughts or or opinions and the second one is receip receiptless and the third one is change key and I will explain it later why these two things would like uh cause lead to the collusion resistance so we made a messy recall uh the messy protocol which is like short for minimal antic collusion infrastructure so let me give a brief introduction on Macy it's proposing n ching and the like whole T and processing process is based on the ZK snar so actually it's based on the ZK zero knowledge proof and the mechanism for it is just as I uh talked about before the receip L and allow key changing so why receip l and low key changing could like lead to the antic cusion so let's think about the condition so Ali signed up with public uh public key a and Bob wna bribe Alice to vote option one so Alice vote for option one and then well actually Alice want to vote for option two so after like talking with Bob she changed her pop to change her key to public key B and vote for option two so in this case since we're reedless so uh Bob won't know if like Alice change her key or not so if so so Alice could actually change her key and vote for the option she want so in Bob's Vision in in Bob's aspect actually he won't be 100% sure that Alice really vote for option one so that will decrease his willing to bribe Alice so to go deeper to the Messi process so the first thing we need to run a Messi is we need a trusted coordinator so the trusted coordinator will set up everything including deploy the contracts and and it will like filter the one who could sign up in the sign up period by contra contract by writing a gatekeeper contract and then in the during the sign up period every user who fulfill the requirements to sign up could sign up with a generated key pair and after the sign up period there is the voting period that the users who sign up in the sign up period could vote in the voting period and the two thing they could do is to send voting message and send key changing message and those messages are encrypted only the coordinator and the user itself could decrypted and then the coordinator processed the messages and to results after the voting period ended and this in this process uh it's like running on the s z case not approv so it's yeah so it's running on the circum so like currently the Massy applications are used for qf like CTIC foundings like we've all already like run several CTIC foundings for the ethereum events such such as e laum and e uh kipu afterwards and like in 2023 or 2022 there are several rounds and we're collaborating with clear funds to run the CTIC founding so so far so if you want to know more technical parts for example like how we uh process the message and how we make the gatekeeping contracts please come to the workshop tomorrow so these are my reference documents like most of them are based on bolic talks actually so thanks for listening [Applause] so now we have five minutes of Q&A time do any does anybody have questions um does the Macy system allow the user to delegate their vote and if so how might it prevent um bribery for that delegation so if the the user like bribe you in person like this maybe it's like useless to use this to to prevent the bribing but if you like running on the internet and someone want to bribe you with some money well actually uh we just like decrease the possibility for user to bribe not 100% actually so if you like being bribed and you are not like CH doing the key changing and voting for a new Option but actually it just uh the bribe is success and well we just want to like decrease the Willing decrease the desire for the briber not 100% prevent it actually does that answer your question just to to follow up like I I guess understanding like it would it would because it keeps private like the actual vote like if you were to vote for some proposal but in a lot of like governance systems I might not be the one actually voting like I might delegate my voting power to another party and I was also wondering if it like if Macy covers that case as well or or if it doesn't so you are saying if someone like give my power for example my key pair to OTS and then some some briber collect a lot of key pairs to vote right I think we the we haven't prevent this like condition yeah and do we have more questions thank you so much dor thank you [Music]
Automatic transcript — names and jargon may be misspelled.