New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

MACI - Why do we need private voting and what are we up to by ctrlc03 | Devcon SEA

DevconThu, Oct 9, 2025, 12:00 AM

MACI is a protocol that can be used to run private on chain polls. This talk will introduce the protocol, dive into some of the technical aspects. Finally we will talk about the team's plans for the future and how the community can get involved to help improve the project. Speaker(s): ctrlc03 Skill level: Intermediate Track: Applied Cryptography Keywords: Coordination, Quadratic Voting, Public good, voting Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum, https://warpcast.com/devcon Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more. Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon SEA was held in Bangkok, Thailand on Nov 12 - Nov 15, 2024. Devcon is organized and presented by the Ethereum Foundation. To find out more, please visit https://ethereum.foundation/

Transcript

[Music] [Music] um yeah let me just see if this works cool it works yeah so I work at PC we do a lot of uh program craphy uh cool stuff comes all to us we have a boov there but yeah this is ma five minutes and why proba what is important uh just an agenda we'll talk through what is Macy why do we need it uh how it works and just look into the future so Macy stands for minimal antic collusion infrastructure and in a nutshell is a protocol that allows to run private onchain voting uh these are some of the properties uh that we try to push uh so collusion resistance uh is increased because um there's only one entity which can be certain of the vality of the vote if that is trusted then things get a little bit better than other uh voting protocols uh you cannot really prove how you voted um because um all the votes are encrypted you can also um you can edit a vote by newly finding it but whatever is said on chain must be processed and even if we talk about this um trusted entity coordinator even if they are malicious they cannot really uh produce any false output of the um vote so why do we need this uh I mean I think you know voting is a very very uh sensible topic um briber in collusions happens everywhere and I think something that people a lot of people find very close to and it's great to work on this for that reason uh but yeah like let's take an example like qu charity funding or voting uh where more people coming together can actually make a difference but if it's easy to collude then um the results can be gained and also think like if you know how people vote then you can also be conditioned like there people just don't want to spend some time uh going through U the candidates or whatever you're voting for and you see like a famous person oh cool I voted for this why don't I just do it but if you don't really know they cannot prove to you that that's actual their valid vote then you could just maybe think for yourself um and yeah and then bribery is reduced because it's hard to prove and it's hard to collude and our goal is to make um voting more democratic and fair so in N shell the architecture uh the smart contracts that work on any EPM chain uh there's some circum circuits that can be used are used to prove that all the votes sent are valid or invalid and the tally circuit which tally all the vote uh so it is around by The Trusted entity the coordinator and all the results are posted on chain for everyone to verify um yeah there's some sdks and tiet stuff if people want to integrate it hopefully you do and yeah how does it work as a user flow you come and register into the platform you register with your Macy key which is not to be confused with your ethereum key um you can just prove your human prove your own superticket and then you register into the system then you can send encrypted votes that only the coordinator is able to decrypt and you also sign them with this m private key so no one else can send votes on your behalf and then as a user after the coordinator process everything you want to verify that everything was done correctly um the votes are encrypted using a CDA so this say share key between you and the coordinator 8 sign and in the vote you specify um who you're voting for whether it's like a you know yes or no Vote or like you give in some sort of weight in qu voting and yeah that's encrypted send on chain uh fully encrypts it and you also send a public key that you used to generate a share key so the coordinator can just reverse the process uh to finalize the coordinator just takes all of the uh votes and just all the events from these uh smart contracts and then just generate uh the CK proofs using these circuits that we talked about and they'll just post them on chain uh they cannot censor any vote they cannot uh prove something that is not happen so that's some of the cool stuff about it and yeah looking into the future um what we try to do is to make it easier for people to use use and actually get someone to use it um some of the research topics that we have in plan is to actually decentralize this coordinator figure using NPC and try and make it even more harder to collude um there might be some um time to also look into new voting mechanisms or like funding mechanism they could be integrated and maybe we'll also be thinking how to re just reink the architecture and kind of integrate it with a lot of other PSC protocol like say M4 RNR and exia okay so we are running a Defcon QV round there's like 250k put by the impact teams uh Devcon so you can go and vote you can try Macy you just need to prove your an attendee by um using suas this is what it looks like just try it out just be gentle because uh yeah just be gentle with this up don't break it please but yeah uh that's just showcase how mayy work and um yeah that's it five minutes thank you Alexandro questions do you want to try this one for me thanks sorry dude um you mentioned at one point that uh there was a proof of humanity required for the voting uh how do we achieve that without relying on a centralized entity and also how do you protect against civil attacks in your voting chain yeah that's a good question so to prevent civil attacks we have this concept of Gaye Keepers um so you need to prove that's fully customizable so whoever runs the vote will say hey I'm only accepting someone that approves is a defon so by scanning a ticket or like own something uh like an NFD and other other things so that's how we protect against cbles so Mac is always as good as a Cil solution that you decide to use and for the trusted assumption is that this coordinated figure uh could be removed with the NPC so you have uh like a collaborative snark I mean I'm not really good into this stuff so uh and a high level just like instead of having one coordinator You' have multiple and there might be some sort of consensus some sort of way of of um how you say to make it hard for them to also uh not post the results and not collude between themselves but yeah that's probably where we're going and some smart people in P that already thought how Macy would look with NPC so hopefully we'll be able to implement that very soon I think we have a question at the back there in the beginning uh the receip I uh receipt free of the vote and that it's impossible to show uh who you voted for M um but what if the user would simply share their private keys and then reveal everything that they did they would still be able to prove the vot in that situation yeah that's a good point um so the thing is like when you cast the vote you can nullify it so you know I show you hey I worry for this but then you couldn't trust me that I actually did unless the coordinator colludes with this other entity and yeah one of the uh other issues is if you give out your key then they they will be able to like post votes on your behalf so like it's it's up to the user to not sell the key um yeah that would you know that would kind of mess up with the system as well and hopefully we'll be able to find some some good solution for that um yeah I think there's a system called something with bear vote like the anim that has a property like uh you need an additional salt to uh to prove that it was actually you and if you provide a wrong salt in the proving process uh it's the result comes off of somebody's else's word okay I'm not familiar with this to be honest but um yeah if you just hit me up later and just describe this i' be interesting to talk about any other questions yeah H I have some question there there is any possibility you have a credential for get quartin voting about H H your knowledge for example you know computer science and there is a proposal for some upgrade in the system there is any possibility to do this so like to automate like some sort of execution after the t is produced uh yeah the propos is made you get a vote and the calculation of your knowledge is the the quadratic voting and then there some sort of action that happens after like that's we mean like in let's say Dow governance or something yeah yeah okay uh that's not something we explore yet Dow governance actually talk a lot of people about it today so um yeah that that's still possible because the tally is posted on chain so they can be automated there a hook after the tally is fully proved on chain is the data something happen that's totally doable yeah yeah thank you okay thank you Alexandre

Automatic transcript — names and jargon may be misspelled.