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

Loading player…

Interep - Identity in the web3 world, Applied ZK - Day 1

Ethereum DEV NLSun, Oct 9, 2022, 12:00 AM

Interep is an anti-sybil mechanism providing a bridge from an established identity source to the Ethereum ecosystem. It does so while preserving privacy. We'll discuss the potential use cases. Speaker(s): Geoff Lamperd Hosted at Devconnect Amsterdam, 2022 Visit the website: https://devconnect.org/ Or follow @EFDevconnect on Twitter

Transcript

foreign [Music] and we would like to introduce to you interrupt interrep is a project from the ethereum foundation's privacy and scaling Explorations team and we're tackling the problem of identity specifically we want to um Bridge real world identity via digital identity into the ethereum world and the web 3 world um so our aims we want to integrate with various sources of digital identity um and Bridge those sources to to ethereum and then use them in web 3 applications and make sure there's privacy in the middle so that the the original source is not not made public um just to explain how and that where we fit in an application layer your application would provide the user interface we're built on the semaphore framework um semaphore is uh is being used in lots of privacy applications these days several of the projects we'll be hearing about today uh utilize the semaphore framework we fit uh with with semaphore as the identity layer um below that and we root our [Music] our data on the blockchain but we provide the link between digital identity sources and semaphore groups so we'll talk more about what how semaphore groups work in a minute but yeah semaphore is providing the ZK proofs for privacy and we're providing the identity management um so uh when we think about identity um real world identity I think we can all relate to but it's Myriad in our digital identity sources um consider a social network profiles people work hard to to um you know they put content into their Facebook profile and their Twitter profile and that's a reflection of their real world life um of course Twitter has heaps of bots and we need to filter those out when we're dealing with the problem of identity but the idea is people work and that work is kind of proof that that account is there's a real human behind it um so what we're seeking to do is filter out those Bots and have some sort of approximate guarantee that there's a a real human behind the sources that we use uh so that the most or the easiest to relate are social networks we've integrated with Twitter with Reddit with GitHub um each one of those uh the we they provide oauth authorization gateways so so we can easily uh capture someone's or authorize someone against the social network profile The Next Step though is to to have a look at their profile and do an assessment on on whether we think that's a real human or a bot there are tools out there to help us um do that but yeah so social networks are an easy way for someone to provide a digital identity that can be used in interrep and applications can consider our uh our possible sources of identity and say yeah that one suits me um it gives me a good pool of users that I can I can use and um and uh yeah go with that so um whoops uh but it's not just social networks that we use we can uh We've we've we've experimented with integrating with various other sources now email is not always a good source of identity because it's easy sometimes to create many emails for a single person but something like a DOT EDU domain is handed out to an individual who works for an educational institution so there's a way that we can use email to to um have a reasonable guarantee that there's a unique human behind that email and even with a Gmail there's some sort of barrier to creating many accounts so it's somewhat useful so email is another source that we can use potentially phones potentially um uh you know you're probably thinking your granny hasn't got a Twitter account or or an email address but she does have a government ID so that's another way we could we could expand our pool of of people to um to include those those kinds of people so government authorities provide gateways to provide digital ID verification driver's license verification or voter registration whatever so those kinds of things we can use all of these are really just ideas that we've been thinking about so if you've got an application in mind and uh an ID source that you could I think might be useful we'd welcome plugins it's really just a it's quite easy to plug in with us um curated groups it could be a telegram Group which which uh invites users and then we can use that group list to as a waitlist to um to provide to form the basis of our group um there are many admirable uh ID identity projects coming online I think we're going to hear from a few of them today so we could use them as as our identity source and create a semaphore group and then we we add the privacy in the center for ZK proofs and so on so that's another source that we could we could link and there are sources that are already on chain in the ethereum world um we could think about something like a poet and if it's poet that's issued physically at a at a physical conference that's a fairly strong guarantee that there's a unique human because that thought invitation is is handed out in person one to one and if we also mitigate it with things like you know protection against people who sell their poets and collect hundreds of them or whatever then we could um that would be a very strong source of uh guarantee of humanity um so yeah they're just ideas uh things that we've we've played with so um that just gives you an idea of the kind of things that we can integrate with um so like I mentioned we integrate with semaphore the way semaphore works is we have membership sets um set members have a secret like private identifier and they can use that identifier to to signal on particular topics and there can be many topics and that the owner of that identifier can reuse their signal on topics but they we the proofs guarantee that the identifier is not revealed and that um the identifier is not used more than once on a topic so it's probably easier to relate to a to a real world application like secret voting you'd have guarantees that the the person voting is or the identity voting is a member of the people who are authorized to vote um but we can also guarantee that they don't vote more than once um and all of that's done in zero knowledge so so that's an example of the kind of things that semaphore does but you can think of social networks and we'll see some some more of those later uh whistleblowing schemes and and so on so that's semaphore so when we talk about semaphore groups they are really interrupt groups and interrupt is is creating is is populating those groups using identity sources so um the the uh the method we use is in the users in the user interface the user will do a proof of membership of their digital identity source that could be an oauth uh authorization session um proof their membership and then there's an assessment phase so some Twitter accounts are good so if they've got like 7 000 followers in their Twitter group then that's fair indication that they're not a bot if they've got uh what you know 10 that's not so good um uh so we would kind of allocate allocate the Twitter profile into a group and say this is a really good quality one or a or a very quite poor um and those groups would represent different different levels of of guarantee of humanity so we we're probably going to end up with a large group of people who don't have good qualifications and a small group we're quite strong guarantees and as an application user you could look at those groups and say yeah I want I want a big privacy pool so I'll choose the large group or uh I want strong guarantee of humanity so I'll choose a smaller group so users do us as an initial sign on when they join the interface for your application that's the oauth with with the social network that guarantees that they earn that social network handle um the assessment is done to see whether they're a real human or not or what what level of of guarantees we could assign to that account there's tools like botometer which which will uh which we use to to assess um well it gives us a score to say whether it's a bottle or not um and we we have we combine that with a few other metrics to uh to assign our to assign that user account into a group then at the same time they're signing a message in metamask with their ethereum account and that now links so I'm reluctant to use the word link because the link is not made public but it's there behind the scenes so that social network handle now has an ethereum account linked to it the link is not made public so you don't know who's behind that ethereum account and the next step is the ethereum account there's a message signed and we produce a semaphore ID which is again that obfuscates the actual ethereum account that's behind it and they're now part of a semaphore group and we can use it in the semaphore application um I just mentioned beef briefly the so the normal situation with social networks and other digitalized ID sources we maintain the infrastructure of of chain and we just have a Merkle tree root that's routed to the blockchain we also have some methods where um on chain data is used to as as the identity source so we also have a method for Unchained groups um and so let's think of some of the potential applications of interrupt we're going to be hearing from a few of these projects today like limiting nullifier and uh uni rep um they need that identity layer to as an anti-sibil mechanism and so we can build applications like secret voting uh secret private social networks anti-spam mechanisms like the rate limiting nullify we can produce airdrops that are fair in that you can't just have accounts that collect the airdrop they can we can guarantee provide some level of guarantee that there's a there's a human behind it and like faucets would operate the same way you can we can great limit to um two verified accounts um at this point we're going to do a quick demo of how interact works so I'll introduce sedor and hand over to him hi everyone I'm Cedar on Twitter and GitHub and I will show a very simple demo where we use interwrap to allow users to vote anonymously using our GitHub Gold group so here we have our repository and you can find it in our GitHub organization here we have a simple architecture of interrupt basically we have two web apps and one web app is interrupt and we can join groups there this one and the other web app is our client app this one where users can vote in both cases we need to generate our semaphore identities in order to join the group groups are actually Merkle trees interrupt sales the roots of our medical trees on chain every 10 minutes in our case every one minute so first of all we need to generate our semaphore identity in our interrupt web app here as you can see we have a list of social networks we need to Auto authorize GitHub okay and now we have to generate our semaphore identity using metamask and interrupt calculates our reputation my reputation on GitHub and I can join the goal group here okay now interrupts need time to save the market route of our new group on chain and after that we can basically we can vote because our client app can connect with our interrupt contract on chain and use the marker route and the other parameters to generate an off chain um zero knowledge proof and we can verify that proof on chain basically okay so we need to generate another time our semapho identity it needs time to generate the proof and we have voted basically okay this is our contract it's very simple we have just a function vote with our interrupt verify functions here and that's it [Applause] [Music]

Automatic transcript — names and jargon may be misspelled.