zkSummit - ZKProofs, A Real-World Workshop Results
29 Mar 2019 · 10:57
Recorded at ZK Summit 3 in Berlin, this session presents the results of a 1.5-hour workshop led by Liz Steininger of Private Storage, Tanya Karsou of Least Authority, and Anna Kaplan of the Zcash Foundation. Bringing together cryptographers, developers, and end users, the workshop examined real-world applications for zero-knowledge proofs and the practical hurdles to deploying them outside cryptography research.
Speakers
Topics
Transcript
okay I'll quickly just say I'm Liz stunning girl from least authority I'm Tanya from the authority and I was here before I'm Anna from misty cash Foundation hi oh okay so um we did Oh as in a mentioned we did a workshop earlier today about ZK proofs in real world I think okay yeah I'm supposed to talk about this so our workshop goal we wanted to talk a little bit more about how to take the the ideas the the theories the the practices of you know the math and everything of zero knowledge proof and how to actually
apply those interpret world circumstances where privacy is an issue and we wanted to get the different groups that are involved in that kind of like pipeline of how things get out to the real end-users get those different people involved together and talking a little bit more about these cases because we do feel that there's just a bigger need for knowledge sharing this was something Anna and I have been talking about for a long time and Tonya joined us on this effort to that um yeah it's just it's important to get these ideas from from theory into practice and so we thought that by having people get together and talk about some actual use cases that this would just help everybody's brains get exercised on this and perhaps inspire some you know
follow-up stuff which so just to give you a general sense of the workshop what we decided to do is we started to keep it small about twenty people and two we had like a rough outline of use cases but we mostly discussed it with the group and that we fine-tune those use cases and we thought it would be a cool structure to divide up into about like four groups everybody discussed separately and then come back together and present like your whatever outcomes you could actually create in 30 minutes so but the goal of this workshop also to like iterate on what liz is saying is this is our first workshop of this sort and we want to do more like that so the call to action is if you have any topics you
know us at least Authority and Anna Kaplan as well we'd love to see like a longer form version of this so this being the first iteration of that I think it was pretty it did pretty well and we don't want to take up too much time of this Anna's gonna tell us about the use cases and then one of the groups is going to present their concept so yeah when we did the workshop today morning we wanted the participants to actually like find their own use case because didn't want to like like like make them talk about something so actually like as we like also thought people came up with like tons of cool ideas and we thought it's worth sharing so of course like finding the Finance and Accounting and specifically auditing actually was one of their like first
topics that came up and because and somebody said it's a very boring topic but we should tackle it and yeah that's true like we should tackle it even though it might be boring since the second thing was a very Berlin specific thing as well or like a Berlin specific thing maybe and for a lot of different cities as well applying for a flat is super annoying so the idea of the participants was to like find an anonymous way to actually say you're like you have enough money to actually you know get the flood the third idea was a proof H for buying something online or any other kind of need where you like would like want to prove your age fourth idea was a passport control
ID airport um they are we had like some difficulties like thinking okay we have to include the government and so on and how to do that and a fifth idea that was discussed in for the use cases was if proof humanists because this is still not not that like like perfect right now so there was a tie in the end between the fifth and the sixth option and the six option was actually voting systems like how should we vote and when he voted actually on the use cases there was a tie but the participants decided to talk about voting systems we built for groups and one group came up with something super in
and they're going to present it so I'm giving them my yeah I'm giving over to Tim and yeah thanks a lot for organizing your workshop I actually did not plant his support lightning talk today but after seeing what another group not the one I was in came up with I really felt that this is something we should share here and hopefully also validate an improve concept so usually we would say it's paradox and that you actually bring it together that you vote unanimously and that you get provable correctness the group which was presenting attentional actionable result was group Metro was in as well with Matt Stephens
and Tony and Napa and Eckhart pokeweed oh I helped with the presentation so without further ado Joe please come up and walk us through the solution you engineered and that very short time frame and I hope that we can find some supporters after that short pitch to actually make a proof of concept for it so yeah we just started I was like the assumption that like one person gets one votes and that we have some sort of system for mapping a unique digital identity to one person and actually just giving a person one vote and that's like a token would basically represent the votes and so you could send out like one
token to everybody and they could send these tokens to some address that represents an option in the vote and then you can say like this wasn't tampered with in any way so Jeff gives are voting as anonymous so nobody knows who you voted for and they can't really grab you to vote in some way because they could never verify that you actually voted that way and then that's the outcome of the election is verifiable so that's would be like if you know as States gives you like two options for candidates but they don't like just give a thousand votes automatically to one candidates before the election even starts so you should be also publicly verify that and some of the components we used we use basically
like we assume this we have ozzie cash-like system to host our tokens I think you could actually with an on space like accounts system also but yeah you need like some sort of like nonce or transaction in a chain and of empal and then private addresses and transactions for the anonymity and also like a view key for addresses one like to verify the outcome of the election so that like the government could say like hey these are the view keys of all the options so you can actually see it and also like if you are eligible to vote and nobody's send you a token you could show your address and say like look nobody gave me a token to vote with yeah
that's my little sketch of how the XO's work but yeah so basically like the process would be that you actually cast your vote before you receive your voting token so if you have like a parent and a child normally in like Bitcoin or Z cash if you submit like a child transaction it'll just sit in the mempool it's not a valid transaction yet until its parent comes in and then all of a sudden Savelle a transaction and it goes through so inorder like our main motivation here was to prevent bribery so that's like I guess my voting token and I don't just sell it to you for you to vote with so you actually like cast your votes and it just sits in the memo and then after some deadline passes like the
voting deadline all of the tokens are issued and then it's just like all of the children are populated with their parents and they all go through and then like these tokens would basically have a hash time lock contract with them and so like if you have like two candidates or two options in your votes they're kind of like by default to be a third candidates called abstain and so like if you just never submit a transaction to the mempool to cast your vote it's just yeah in this hdl-c it just automatically goes to abstain and the point of this is to add up all the votes at the end so like the sum of the votes that the candidates have should equal the total number of people that are eligible to vote so yeah this you can avoid they're like
oh there were a thousand tokens like automatically voted for this person and then yeah so you add them all up and then there's like a an abstinence option and I'm like yeah the problem would be like if you kind of just make a child transaction if like you buy my vote I can just like send you a child transaction and then you make like a grandchild transaction to vote yeah we want to prevent that so that's like the only thing we didn't get to you but I think you could you know either limit like how far down from the token issuance transaction you can go or if you use like a nonce based chain you could say like yeah tokens are issued at a nonce of one and anything with a nonce of three or greater just automatically
goes into like a cheater category yeah so that's just when I thought of this morning hey guys I just want to ask how many people of you know you TXS just heads up that's up oh that's create okay then we don't need to experience wonderful so yeah follow up if you think that this is an interesting approach I think it would be super interesting if we could find a way to just do a test implementation I don't know how how will you are for this but maybe this also helps just to have the structure to try it out so if there's anybody who wants to support some proof concepts here please speak to me and hopefully we find
a way to coordinate it thanks first I just want to say thanks to all the participants who also were in the workshop and it's awesome that this happened and I think like 30 minutes of group activity so yeah are we supposed to do questions any questions not really all right let's not do questions yeah thank you very much [Applause]