C.R.E.A.M.: A zk-SNARK Protocol for Public Elections

ETHCC 3 · March 2020 · 21:42

Kazuaki Ishiguro introduces C.R.E.A.M., a public-election protocol based on zk-SNARKs.

Speakers

Topics

From ETHCC 3, hosted by Ethereum France.

Transcript

okay thank you guys for coming by the way hi my name is cosmic Ichiro how I best see in Tokyo today I like to focus on voting system using a thorium because the completely fair voting system has never been created in the history and what would happen if elections innovation did not take place in the next 10 years and then people still using a paper belong there will be disaster so I like to think about this

and I hope storage there will will solve the dilemma of the current voting system design and they help people forward to to the big step so basic idea behind the cream is the realization of voting system using a talkin and zero knowledge proof so a little bit about our company I work for the company called cougar which is cool name and we have the organization of lots of developers who have experience with the game development and computer vision AI and

the POC chains and I was here to eat cc last year talk about how they used use case so Philip Locke chain in Illinois so please got the link if you're interested so cream is the DK snark based mixer protocol it's confidential reliable aetherium anonymous mixer and then Kramer took place got the inspiration for my route and as you may notice so what is cream in short it's a publicly verifiable DK snark based and anonymous mixer and it's extension use case for voting alright so think about

the voting mixer so the first I like to think about the voting in general voting system in general in the current status quo because voting and Tahlia must be tamper resistant first of all and then content of the voting must be kept confidential and then the wainy design the voting process it has to be transparent and no sir it has to be publicly verifiable so think about the why mixer is is a popular in the current III unboxing later yeah think about the ethereum blockchain and

why there are so many mixer protocol like a tornado cache and so on because I like to introduce one of my favorite quote former Dom Bonet he's a professor of stuff for university he at the interview of the DK podcast to understand why and because so how would society function if literally all the transaction were public to the whole world what would happen and he said I guarantee you the first thing that society will do is it will create a human fix it so I think in other words current status of thorium and the

Bitcoin all the transaction were kept the recorded on the public records so it is natural to think that there will be the need of mixer will be very natural so think about the current status of voting system with paper boring because paper boring is the one most familiar with and the weirdest which is used for which has the longest history and then when you think about the paper boring in general it's it's used most because

less vulnerable to us failure and also it has less acceptable large-scale convert attack so in other words it is used because they have less vulnerable compared to other boring systems and then when you think about the electric voting system it will reduce in the invalid vote because you need to check or elect candidates but it also requires huge security and also privacy when you're using a voting

system on the actual voting system and that figure here is the report from University of Michigan and also open rights group because he did analysis on the the e-voting system on the Estonia and then they showed out to download that the client has to install before the voting were were occurred in the you know insecure Network so that will be the potential of the device hijacking which will cause disaster and all the

outcome will be the different the one interesting the mechanism for in terms of privacy preserving electric voting system is mixed network or mixed net I think if you have have heard the names talk previously they were using a mix net for shuffling and mixing encrypting the the contents of the transactions so what it does is taking out the public key of the each mixer and they encrypted so if you're familiar with the tour on your router network now they're using

the same concept but it's it's ensure ensures anonymity and also it's publicly verifiable only if the following condition satisfied it's a completely mixed trust for morale and each mixer has to be honest in order to accomplish the fully encrypted anonymity format and then it also has double if the mixer has a balloon ability in casting the boats the whole whole outcome will be different and also our possibility of an anchor true error because each time you

you sending the transaction to the next mixer you have to use public the previous the next mixers public key to encrypt your vote and then there will be some error if if the user doesn't know how to do yeah but when you transfer the content to the next mixer you have to do

the encryption appropriately if you feel like the whole the outcome of the tea for example like if this guy was a malicious mixer and there he didn't correctly decrypt the content of the day the outcome will be to further that there is no way to verify their right right but there but you have to do it do the election voting if you know in order to to get the correct outcome yeah so putting all together like building a voting software is

really hard because there is no silver bullet to solve that universal design and much depends on the local government and local laws so yeah so I would like to think about how we can tackle this problem and try to start the baby step to giant strides and then so that's why we started creating a creme protocol for azor MBP it's currently work in progress and then the use case for for MVP version is very limited for the use case for the voter has to visit to the voting

station and then and then you have to commit voting inside of the private forever rooms so the first voter is going to do signup and deposit talk and D and then if the deposit is succeeded you you get the QR code which is printed at the voting station and then the QR code the content of the QR code is a pre image of hash okay and then when you grab that QR code you you move to the private the voting room and then select

the candidate address with a different wallet other address because if you use the same address for for the sign up that will be linkable from their outcomes so showing the QR code on the voting rooms and then generate the proof and if the proof was verified cream contract is going let the candidate to withdraw are talking and then at the result number of D novel D token will be the outcome of the vote so the is more this is a more detail

about the cream diagrams so the first step is the paw deposit the D talking using a DAP register and then created a deposit and the ear top with trusted set up and will return the commitment and the preimage which is a con cat over nullifier in the secret so once you get the commitment you pass that commitment as an argument of the deposit function of the cream contract and if the deposit method or succeed you get the you get the QR code which is a pre-image of the hash and then once again once you have received that QR code which supposed to

be the papers for for the MVP version you move into there are different rooms and start voting again and then once you show the correct QR code it will start generating a proof from contract ensure setup and then you submit the proof for the cream contract as an argument of the cream contract method and if the preferred succeeded and the verifier cream contract is transferred the talkin to the recipients so this is a the screen capture of the boots the demo the

first you need to you you login using a very mask it's a Voris address and the first you have to select the reach election contract you going to use so select that one and then registers and assign the transaction here and then here's the note which is a QR code a pre image of the hash and then this demo we use it the model but then in a Realty we're going to use a printed out QR code so let's switch the account which is supposed to be the

boring room as you can see there's one person sign up and the contract have a point one either that you just deposit it and then next you you scan a QR code if yeah then generator stock proof here and the proofing time is here and if the transaction was exceeded the withdrawal process we went through yeah so let's let's try to do something to frame and then if if we use the same QR code twice

what would happen it should be a error so we use the same QR code again and they say assertion error because deposit is a not fun in the tree constraint because it requires honest operator for as a election committees and so on and also we need to figure out appropriate mercury high hate for large-scale voting because for the previous demo I use for marquetry hi so there is not going to be production ready for example tornado cash I guess

today using a 16 or something so we need to figure out depends on the election system that you're going to use and also like we need a trusted hardware at the polling stations and also we need to figure out who are going to pay for the gas and also we have to teach user how to use protocol and also there is a possible attack will be the collision and no cell both lying attacks so when I first was that creme protocol my Twitter's on the Twitter's mentioning italic about this because it was

inspired by his first proposal which is minimal mixer design and that he introduced me the cool project called messy or messy which is the minimum anti-collision infrastructure which will be the very very exciting if i if we could implement that to the protocol so the next milestone will be implementing masse and also we need a contract upgrade ability which is for verifier contract and also my kuchi contract and also we need to figure out if we need a trusted set up or no trusses and there we need a real layer of the registries

so finally we started this project with as a client project and we already started working with the company called act which has experienced an operating a paper-based voting in Japan so we introduced that to the local media newspapers and then you can tell there will be lot of people start care about the more trustful election systems so cream is a open source and also participated gikwang grant so we are

welcoming everyone's contributions and try not to be that guy and I will I guess a lot of people be a part of over the client so that's it for me thank you [Applause] any questions the question I had earlier is you mentioned some of it but I wasn't

really sure if I understood it correctly this is like the the big thing about political voting is a you should be able to confirm your own vote nobody else should be able to see you vote against your wishes but also no one should be able to see your vote with your wishes because that would enable vote buying so only you said you see you see you said you know you're not doing it but now you're installing Macey which is collusion resistant but not vote-buying resistant so I said is that a topic you have high on your agenda what the part of our agenda is talk about cream but then we are not sure how we can create the collision resistant and then like we figure out about the Massey like a

couple couple months ago so we are going to implement their bossy weather on the cream but Massey does not do about buying war it's working progress as well but you might want to take a look Thanks yes thanks did you hurt did you thought about like using no private coins we do represent the votes yeah I think that will work but I never test it I'm just curious like white people are always looking for especially in academia for and other technically if I if I use a private coin duh

how would be the privacy-preserving I'm not really sure because all the coin owner can be traceable right that's right oh the history over the owner of the coin can be trackable you know I think that's the whole goal yes - okay yeah okay yeah only a commitment and you don't know who is spending it it would need to sell your transaction yeah Oh

maybe for collusion wouldn't work but right right because you know yeah although for you and then you book for me it can be the problem what's up yes but at some point we can't like you know maybe no like super remote cases yes we can fight collusion but then you know if someone wants collude stable they will find a way you know you're in the real works we can always meet and somehow thank you yeah I'll take a look thank you so much you