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

Loading player…

Worldcoin 🛠 Proof of Personhood with World ID - Flywill , Miguel Piedrafita

ETHGlobalSun, Oct 9, 2022, 12:00 AM

Welcome Flywill & Miguel Piedrafita from Worldcoin for a workshop titled "Proof of Personhood with World ID". ETHOnline is our biggest event of the year! Collaborate with thousands of developers and creatives from around the world and win over $300k+ in prizes! We're bringing in 30+ of the biggest teams in web3 to give you access like never before. Learn from ecosystem leaders and build your biggest ideas as the merge nears reality. The future of Ethereum is being written right now, and it's time to make your mark. --------------------------------------------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com #ethereum #eth #blockchain

Transcript

[Applause] [Music] hello everyone good morning good afternoon good evening depending on where you're calling from we have miguel and flywheel here from the world coin team doing a workshop on proof of personhood with world id if you have any questions they can go into the zoom chat and the two of them will be more than happy to answer them with that being said i will hand off the mic to our two speakers amazing thanks anna hey gm everyone how's it going i hope i hope you're excited to be here um we are here to talk about how crypto is really really really awesome and i feel like everyone here agrees but it has kind of a little problem which is decent we all understand as being early and if we agree that crypto is really awesome and all the properties that it has we've been able to like send money releasing and make trustless and decentralized applications are amazing uh as more and more people get on board into the system um they end up getting less and less of the value and the bill that cody and the staff got a huge amount of it and so that is a great production and that isn't great for both new people and so at work when we asked the question of what if what if bitcoin has started by giving one bitcoin to each human what would have been the per the properties there how would that have affected an adoption how would that have replaced any banks how would that have happened so we said let's figure it out no with bitcoin because that's incredibly expensive to buy one for each human there's a lot of humans unfortunately uh but with the welcome token and so the issue that we had uh was we want to make the to give this make this token and give it to everyone for free how do we make sure that no one can just like claim a bunch of times and throw the whole experiment off the window and this introduced us to um this thing called civil attacks which basically means um this whole category of people pretending that they are multiple humans like for example if there's an error of creating multiple wallets and making transactions between those wallets or using a protocol you know in order to play more of an airdrop or to i don't know vote more on a governance proposal all these things and so we wanted a solution to this problem that was private inclusive and scalable and by that i mean um scalable that you could on board people relatively quickly and without too much hassle inclusive in that you could actually abort every human eventually like it wouldn't react to a proportion of humans just because like they are too similar to others or they don't have crypto accounts but they don't have existing activity or that i'm private because as we all know here privacy is really really important and so we started looking into what solutions existed so in the middle phone it's kind of the difficulty amplifier but that's that's not really i mean i personally have i i'm sure more than 10 emails so it's not really simple systems then we start looking at maybe we can kyc maybe we can ask you for your passport uav and this there is not only a big privacy problem here obviously but also when we're talking about inclusive there's a lot of places in the world where people do not have ideas or there is no database that you could check to make sure that those ideas are not duplicated uh maybe we can use web of trust well trust is this mechanism where people um come out for each other and so eventually you have like this web of of trust really of people saying i certify that this other person is human and if you know a person certified it can be human we run a bunch of stimulation in this and it turns out um it is not incredibly secure someone that is trusted can eventually generate a bunch of alts and so it's not very simple it should it is not incredibly hard to um have duplicates and the option that was left was biometrics which every human has it's relatively easy to read and it's really really hard to change at least some of them on that topic fingerprints who's where our starting point are really really easy to change uh not when you're identifying someone like if you are checking this is miguel let's make sure that they still negate by checking their fingerprint with the one that we have said in the database that is easy because we're just thinking how similar these two are but when you're saying um let's compare this fingerprint with a database of 8 billion if i make a little cut in my finger that's entirely different fingerprint and so i get a little empty and we don't want that this also has another uh issue uh that is that the using a face also has which is what they call entropy or the amount of information which is a fingerprint doesn't really have that much information in it and so with enough people on the system eventually you will get duplicates and that goes to the inclusivity part because now we are rejecting people that are really different people but this is not informed enough information here um it kind of seems like it's the same person and so we didn't want to do that that's why we couldn't use fingerprints same for their faces steam from palms thumbs are not that they don't have that much information and they're also like pretty hard to pretty easy to change and so dna was an option but aside from it being way worse scarier than using the eyes the issue is this is like super expensive to measure and takes a lot of time and so the solution was irises um irises are different enough uh so that we could differentiate every human on earth with them they're super hard to change in an unnoticeable way and we decided to go for that we started looking how do we capture these things maybe we can use your phone turns out again we need a lot of information to be able to differentiate the 8 billion humans and so um there's just not enough resolution with either the phone sensor or of the shelves devices like everyone else is using and so we ended up having to build our own thing which isn't great no one really wants to build hardware it's a mess but eventually after one or two years of experimentation and of playing around with things we made this guy um the orb what the earth does is first it will make sure that you're a real human that you're not trying to trick it you're not trying to hold a photo of an eye to it or you're not like trying to scan a dead person or a dog and then it will look at your iris it will use a on-device computation to compute what we call an iris code which is sort of a hash so that we are not storing the original photo of the iris and then it will use that iris code to mark you as a unique human and so this is great there's no images no name no contact info no trace no kyc you're we're only really having a bunch of numbers but we said we we want more we we went to the extreme like it's not enough that it's private we want it to be anonymous uh because really you just want to know where somebody's a human right you shouldn't be learning anything else more about them so we started playing around with zero knowledge proofs uh in order to make it so that you could prove that you are one of the humans register without revealing which one and we made it we made this system which it's a little bit complex but it works and so we said okay let's let's go around let's uh show it off so we went around the world we traded on 25 countries all around the world and we on board there more that i think at this point 660 000 participants um we open sourced everything and we decided let's open up let's start let's start building more in public let's start figuring out how we decentralized but there was one thing that we kept hearing on and on as we were doing this experiment which is all the developers going how like you've made this amazing verification system for civil resistance you're just going to use it once and then like throw it away wouldn't it be really really cool if you if every anyone could just like add zero systems to the application within a few minutes yes using the system and so we said sure let's let's do it and we packaged it into a protocol we call quality which allows you to anonymously verify that someone is a real human and is doing something only once so for example instead of saying i'm a real person and i have never claimed walquin and that's it you can also make sure that someone has embody in a particular poll mean to nft redeemed an airdrop during the discord server without revealing anything about them not even being able to know if the same person that made this thing also made this sort of thing it's completely anonymous and the protocol itself is really complex really but we've worked really hard to make it super super easy to use and to add civil assistance to any of the applications you literally only need these few lines of code uh what this does is it renders this capture-like widget on your application that will allow you users to scan accurate code with their phone where the proof is stored and then give you the approved humanity that you can verify either on chain or through an api uh to just like make any application web 2 or web 3 on sale or offset and completely resistance and so for example if you were making an airdrop a page to claim an airdrop the only thing that you would really have to do is add the wallet widget there the user scans that they will see this on their phones and once they click verify you get the proof you can verify it you know for sure that they are real humans um so basically the flow here is the user gets onboarded with wall id through an orb they only need to use these orb ones because then they get a key and through the wallet widget users can receive a proof generator with that key in order to verify the user is a human now this is really really cool uh i feel like we've been talking for a long time about all of the amazing things that we could do if only we had some resistance we could do quadratic voting we could do better forms of uh governance we could do more fair air drops and so it's here um and we are here mostly to see what you guys can build with it uh it's live on polygon we have not only worked in the protocol and the wall lady widget we also have reading tons of documentation guides examples starter kits the developer portal that i can guide you through this the quality stuff uh we also want to give a shout out to this few projects semaphore hublot wallet connect which we are all using behind the scenes and allow us to really do all the things that we do and we are only getting started we have a lot more stuff that we want to achieve like movies and support coming soon being able to use this with um with non-crypto applications and additional stuff yeah and i thought i would just um take a second now to show exactly how easy it is to use and so this is a documentation that i was talking about so this is the place to go to figure out how to do things and in here we have a list of examples that we have made where you can see both the distance the the app so the front end and the smart contract on the demo so we have made the example that i use that i showed before which is just a simple aircraft where you are just adding them verifying the proof on the contract to make sure that um you have the thing and so basically the only thing that you do here is you get the proof and then when you are calling the contract you will send the proof over so here you can see that we are claiming and we are normally passing the wallet address below so the three details from the proof uh that's pretty much the that and adding the widget are the only things that you need to change in the front end and then on the contract side uh the only thing that you need to do is call in this verify proof function from your smart contract with the three arguments that you get and that's it you can make be pretty sure that the the person calling this function is a real human and has never done this before that's how you defeat civil it's that easy we have more complex examples like we've made a discord bot to show more um web to examples um and we also have starter kits on the github so for example a fully featured starter kit for hardhat is if you write a smart contract which is commented to show you exactly what each part is doing and also includes tests for you and those frontends for you to get started so it really it's like adding three lines of code on the front entrance of the smart contract and i am super excited because i feel like we've we're going to be able to do really really cool things great i i see a question from from one of you regarding the device so the way we do civil resistance is with this or physical or we have to you have to go um to one in person and get verified but of course for the hackathon we have a different version that works uh in the stitching network the stitching network is in mumbai um and you can you can just use this version that will let you generate multiple identities to the test because obviously you're gonna uh you're gonna burn them at some point what you can do is just go to simulator.worldcoin.org uh and you'll be able to generate an identity there simulate that you've gone through an order and and get the same effect uh we're also gonna share in the chat the main uh resource um for this hackathon should be it should be this notion page uh you can get links to all the um documentation starter kits everything that you're you're gonna need um i think this is a this is a simulator just generate an identity here uh verify it here and then use it here as as if you were using the the world coin app you do not need to go to an order for this one um we're gonna be in a bunch of conferences in person if you're interested in actually trying the order yeah we've been we've been bringing ours to pretty much every global event for a bit now uh obviously since this is an online conference and even for developments since you can only use the thing once that's like kind of like the process it would be pretty hard to debug so we made you can think of it as like kind of like a faucet which you use to get tested tokens but to get disney entities you can click on create a temporary entity and just like verify it this is kind of like scanning through the orb you go to the page you click the button that will verify the entity as if it had gone to the orb and then afterwards you can just like use it as if it was actually your phone um with the app and you'll see the identity is verified and so that's all you need to be able to test it this works obviously only on testnet that will defeat the entire purpose of the thing great um as you know our question about um uh devon says kyc is illegal with kids how do how do you deal with that uh today world war iv can only be used by people over 18 uh for legal reasons when you download the app when before you you can verify you need to confirm that you're over 18 uh the or also the text um based on uh different sensors if uh someone is likely underage we are working on exploring different options uh for for that yeah basically i mentioned before that before actually scanning your idea that's a bunch of tests to make sure that you're not showing a picture or showing a dead body or an animal one of the things that it does is it um figures if it tries to figure out if it's if there's a kid in front and if it is it will just like not scan them uh does the orb get the same hash every time it scans a certain iris then has this been tested enough so yes and no the answer is uh functionally no what we have is it's um it's not really a hash as in a string it's a hash is like a vector with a bunch of um um a bunch of dimensions because it's not exactly you're not just like hashing an immense you're really hashing the information inside of the iris because otherwise you could just like take a different image as long as one pixel is different um the whole thing is different uh the key here is uh these vectors have a distance function and so if the instance is close enough to a parameter we can know that these persons are these these are the same people i don't have an exact number of like the ability of this but it's like the error rate is low enough that you would never hit it and also also to add to that um this vector let's just compute the distance make sure that you're a unique person but you cannot there's no way to reverse any information out of that it's not like from the vector you can extract the image or know nothing about it so that's that's where the privacy comes from and respecting the economics we will have a token eventually the world coin token that's like the whole point of this explain that we're talking to but um the protocol is already deployed it's an immutable contract so we there's no way that we could change it to actual economics to it so uh that exists as a thing that anyone can use and query completely for free or without having to own any token and will in the future because we have no way of changing that even if we wanted to yeah uh the generated identity is linked to a wallet address it is not uh warlike is a completely privacy preserving protocol so every time you use it you generate a zero knowledge proof if as an app you need to associate or like verify a certain user account whether that's a wallet address an email a normal account that's up to the to the app the protocol does not associate any wallet addresses with anything so uh the user generates a zero-knowledge proof every time that they're a unique human and you as a developer get something called a nullifier hash that nullifier hash is like an id that's unique to that person and to your app but it's not linked to any other nullifier hash that the same person would generate for another app that's where the privacy comes from yeah and basically that's the whole point of having the widget where the user clicks the captcha thing and scans the qr code under the hood that is generally a signal let's prove send you over to your device and verify it but we just like abstract all that for you so you literally just have to show this send the response to either an api or a smart contract and that gets verified for you um but yeah the entire point there is since it's not linked to any wallet it is completed anymore i can even use it from a different wallet address anytime for both on different proposals for example and no one would be able to know that all of these wallets belong to me so it really is completely anonymous uh i see some ads regarding uh what happens in someone suffers an a and i agree thankfully uh i mean hopefully that doesn't matter but that doesn't happen but since you only really need to go to an orb once um after you go go to the urban get your key even if you poke both of your eyes out you will still be have access to that key and be able to use it so that shouldn't be a concern also for a recovery someone asked what if i lose the id can i recover lagging by registering my iris in the oven again we are working on a recovery process that we want to launch soon as of right now that is not currently implemented but we are studying exactly how to make that work someone asks multiple wallets can have same nullifier classes for say irrespective proof uh you have to forget about the iris there's kind of like two layers to this different the iris is just used to make sure that you're unique and then give you the key after that the iris doesn't matter anymore and the only thing that matters is um the key and basically how the how the nullifier works number five is kind of like um as paolo said a random id and so it's completely random it it will differ from its usage like i was saying before claiming welcome and claiming a different airdrop would generate different nullifier clusters but for the same thing if i want to claim the anaerobic twice that would be the same id that's a property of the zero knowledge proofs and so um basically if i submit um with my key two to if i generate two proofs with one with my wallet and one with a different wallet this those two proofs would have the same uh nullifier hash and i could for example if i made my my application so that it can it has like multiple actions like for example in a governance platform in a voting platform you could make it so that um instead of being able to get like both ones globally you can vote once for each proposal in that case uh for different proposals the nullifier would be different and the really cool thing is there's no way of matching these genuinely fire classes from different proposals to the same user you there's no way of knowing whether someone is like voting on two different things right uh what data is used to generate a ctp that a user is human is it only the world id yes today uh the only way you can verify with world id and it's a binary outcome is the entropy of the iris with the orb we we your verifies that it uploads the the public key of your wall id to the the smart contract on chain we are currently exploring and integrating other potential avenues to to um do the same like human verification um let's see i think those were all the questions can the earth handle people getting counteract so um i'm definitely not a doctor or anything close to that i know for most of the um typical eye problems uh you know if you have to use glasses things like that it doesn't matter because the picture that the orb takes is on the infrared spectrum so um and then also the the that whatever you have is going to represent the entropy of your iris specifically for cataract i i don't have the answer uh how does worldwide prevent users from giving away or even selling their ids so the way it happens right now is uh you cannot export the private key of your wall id on on your worldcoin app you have basically two sets of keys the key for your wallet the key for your world id the key for your role id currently cannot be exported uh longer term what we're gonna where we're gonna support is you're gonna be able to go back to one re-verify revoke the old key and then and then you key uh it gets validated so if you sell it there's really no incentive to to buy it because you know that the person can just go revoke it right away yeah and by the way all of the technical stuff that we have been talking about specifically about how the protocol works those are in the documentation so if you didn't catch it now there will also be a recording of this but you could also just like go to the talks which are at id.wallqueen.org um and i believe that we will have a link soon we it's not a set up right now but soon you will be able to go to worldcoin.

org oh it's set up yeah yeah so welcome.org slash if online 22 table is going to develop in the chat uh that's a link with all the resources so the documentation all of the example kits the developer portal all the things that we thought even articles explaining these things all the things that we're talking about uh it will be all there that's like the master link that goes everywhere um and yeah uh i think i think we have time for like these last two questions uh where is the private key of the world like this story is it decentralized the private key is stored on the useless device so your phone is self custodial um yeah and it's not even generated by the orb it's generated by your device and you just like give the public key to the orb not the private key obviously so it never ever leaves your device and then can you share your youtube somewhere where i can learn more so on wallcoin.org we have a few articles explaining more in how the pro code uh if you go there and you see and you are a little bit confused don't worry most of that is technically informed with like i said we've done i feel like we're doing a good deal about figuring and making it so you have to understand how exactly that works in order to integrate it and then if you search for um working with global on um you do there's a bunch of presentations that we've done and other regular events um with more information about those but yeah the main link that you need to care about is working.org slash etherline22 which is in the chat which is basically the link that goes everywhere all right uh well thank you so much for joining uh if you have any questions we'll be around on discord throughout this hackathon uh we are happy to chat any ideas that you may have and yeah uh best of luck we're really excited to see what you guys come up with yeah excited to see a what everything everyone makes yeah um awesome thank you so much miguel and flywheel for taking the time to do this workshop for ethonline um as they said uh they could be reachable over discord throughout the course of the month i'm really excited to see what everyone builds for your etho online projects um and that being said um our kickoff is actually tomorrow so i hope to see all of you there on our platform youthglobal.tv we also have a really interesting summit um so yeah i'll see you guys around have a great day everyone

Automatic transcript — names and jargon may be misspelled.