Worldcoin 🛠Proof of Personhood with World ID - Flywill
ETHGlobal·Mon, Oct 9, 2023, 12:00 AM
Join Flywill from Worldcoin for a workshop titled "Proof of Personhood with World ID". And that wraps up 2022! ETHIndia 2022⎯the biggest Ethereum hackathon to this date with over 459 projects built within 36 hours. 🫂 2000 attendees from 🌆 321 cities that were 🌱 44% new to web3... ...joined forces in Bengaluru to write history. Thank you for taking part in it 🫶🔥 ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com
Transcript
foreign [Applause] [Music] GM everyone I'm flywheel I'm here to talk about worldcoin today um I'm gonna start talking about uh how worldcoin started so um crypto is awesome we all know that that's why we're all here uh unfortunately uh the value is being courted by around two percent of the population so what we wanted to build in worldcoin is a way to bring crypto to everyone uh in the world and uh not just this uh two percent uh so we started with this premise of what if Bitcoin started by giving one Bitcoin to each person how would things have turned out of course we cannot do this uh right now so that's why we uh decided to create a worldcoin token uh the worldcoin token uh it's not live yet it's gonna it's uh we're gonna launch it next year uh it has a limited supply of 10 billion tokens uh every person in the world will get some uh share for free until it runs out um uh of course the problem we immediately run into is how to make how do we make sure each person only claims their share once if you can um claim your share a hundred times then it's no longer a drop and we're gonna end up in the same place that we were before that's why we created um um we sort of run into this concept of civil attacks and we realize it's a bigger problem than just for airdrops and I'll talk a little bit more about that but civil attacks is this concept that you can very easily create multiple identities that look like an like a like the real thing and then undermine whatever uh share mechanisms fraud mechanisms that you have in place so we created this protocol called World ID so World ID and the thing that we're here to present today and the thing that you can build on is a privacy preserving proof of person good protocol um I'll explain in a second what that means um but what we wanted to do is be able uh to identify a single person and be sure that it's an actual human doing some interaction um what we run into is we wanted to make sure that this protocol was Private inclusive and scalable so private we want to make sure that no information gets licked about a person inclusive we want to make sure that everyone in the world can get it and scalable uh it's it's part of the same inclusivity mission right so we looked at all of these options here uh to see what we could do to solve the Civil attack problem and actually identify uh single persons and we realize none of these options fill these three requirements that we had uh you know email or phone is very easy to spoof kyc is not very inclusive a lot of people don't have passports fingerprint is not scalable because there's a limit to how many unique humans you can identify with fingerprint and DNA is just very complicated and just a little bit privacy invasive so we created this beauty called the orb you can actually see one here live um what the orb does is uh it checks that you're a unique person by first of all checking you're a human you're alive it has a different fraud prevention mechanisms and then it takes a picture of your iris extracts the entropy that lives in the iris and uses that to ensure that you're a unique person and I'll talk about how uh the the iris extraction works but what this enables is with no images no name no personal information no kyc we can actually make sure that a human is doing something only once um but even though like we are not keeping um these images we wanted to go even further uh to to preserve privacy so we introduce a little bit of Serial knowledge proof magic to the protocol uh the way it works is whenever you're using this uh identity you use it through zero knowledge proofs so even um even though there's no um personal information tied to this concept of an identity through zero knowledge proofs we're going to be sure that you're not even tracked across actions across applications so this protocols enables you to to say I'm a real person and I have never cleaned worldcoin or I have never bought in this poll or I'm only creating one social network account all of these different use cases that that we realized were susceptible to civil attacks you can prevent with a protocol like this uh this is in a more assistant way what uh the protocol does and it we we realize we we could take this a step further uh by making this protocol uh privacy first decentralized identity all center around a single person um it's a fully open protocol fully open source self-custodial it lives only on the user's phone and uh this is how it looks like so you have your application you know like you're doing like this you're doing an airdrop and you would mount something that looks like a captcha the user will get a QR code they would scan it with their with their worldcoin app and they they will prove they're a unique person doing something only once completely privacy per serving um so how does it actually work from a user standpoint they go to an orph like this we our goal is to have them distributed all around different cities and you get your wall ID so this world ID that you get lives only on your phone fully self-custodial and you can use it to continuously prove to different applications that you're doing something only once so this is where it starts to get a little bit tricky because of the private super serving characteristics so um you download the world coin app the worldcoin app will generate a random identity with a with a public and private payer and you'll show the public pair to the orb with a QR code the orb will then uh look look at you make sure that you're human that you're unique and once it passes that check your only access a gate it'll add your your public key to a set uh on chain so as you can see like your your identity is not really tied to a wallet or tied to anything and the set is fully public Unchained because it's just a list of public Keys it means nothing um so whenever you're using it you your phone which has a private key will generate the zero knowledge proof that proves that you know the private key to a public key in the set without revealing which one so you can continuously prove hey I'm a verified person in the verified set but I'm not telling you who I am um in terms of how you would actually do this it does look a little bit complicated but it's actually not so from your application you would integrate this into sites in your front end in your back end in your front end you would Mount the widget that we saw and that will enable the user to actually generate the zero knowledge proof and send it back to you and then you just have to verify the proof to verify the proof you can either verify it on chain or you can verify it with our API so um if you're verified on change you will get the proof you will execute a transaction as you would normally do let's say you're minting an nft and then the transaction would be the same it would just include the zero knowledge proof and then on your smart contract you would verify the proof first and mean the nft later uh so yeah this is what the capture looks like uh this is how it looks like on the world Coin App when the user scans the QR code it'll tell you like hey this app wants to verify you for something uh and when they click verify with World ID that's when the serial knowledge proof will get generated um there's a lot of use cases that would benefit from civil uh civil attacks protection these are just to name a few we have other uh ideas that you can look at in our documentation but um the most intuitive things is of course things around voting and governance one person one boat uh Fair air drops uh person bound tokens Etc uh you can start building already on world ID id.worldcoin.org um I have a key important distinction here is while you're developing um to use uh the the network on on testing mode you can go to the simulator that we have it's linked there simulator.walkin.org where you can actually Generate random identities that is as if you've gone to a North so that you can actually test multiple times because of course if you're using your actual production uh one you're only gonna get one um the integration is super simple you you install the widget you load it uh you're just gonna need two things uh the action ID and the signal the action ID you obtain from our developer portal very easy to generate it's what uh lets us scope down so that users can not be tracked across applications and then the signal is a very neat property of the zero knowledge proofs that you basically it basically adds an arbitrary message that can become part of the signature for the for the proof whether it's mean is for instance imagine you're doing an airdrop and the user generates you a Serial knowledge proof that hey like I'm a unique human please send my tokens to this address um if I were to intercept that proof I could change the address and then uh use another person's your knowledge proof to claim the token for myself fortunately if you include that the the address as part of the signal and the and and someone Pampers with that that will be uh make the proof invalid so depending on your use case you're gonna wanna um use the signal for for protection and then very important to to remember like the proof that you get from the from the widget you have to verify it like the the the the front end is not a trusted environment so you have to verify the proof in a trusted environment that means either on a smart contract or on your back end uh if you're doing on the back end is a very simple API request and you'll get a thumbs up thumbs down uh if you're doing on the front on on a smart contract it's also quite simple you call our smart contract with this parameters and the smart contract will revert if it's invalid or you know we'll we'll continue if it's valid um but very important to verify the proof If you just rely on the widget you're not not adding any protection because anyone can tamper with the front end we're on Discord if you wanna um if you need any help uh not only not only during the hackathon but afterwards and we're super open to feedback and ideas and anything that you want to come up with we do want to give a a pretty big shout out to these open source projects that enable the protocol so semaphore is what enables the entire serial knowledge proofs ecosystem the the set of verified identities I talked about is actually a semaphore group um how well we initially use uh for for the in the worldcoin app and while I connect we used to to interact between the worldcoin app and your front-end applications um we have twenty thousand dollars up for graphs in prices we have a prize pool uh honorable mentions and different categories uh so we encourage you to build um the requirements to qualify for a price is integrate both on the front end and the back end the backing can be smart contract or an actual back end um and a meaningful proof of personhood use case you can find more information on this on our notion which I'll share uh in a second um but to sum up World ID we're solving several resistance at scale it's a privacy preserving self-custody open source protocol very easy to use and implement um of course like we have a bunch of open positions and we're always looking to work with amazing people so if you're interested workwind.
org unfortunately we don't have time for Q a but I'll be in the back and you can also come find me at the booth or you can find me on Discord this is the main page that you can look at for any resources any information about it or slash it India everything I talked about is going to be there and that's it thank you so much so so my question was that for example during the voting right so how how does the world going like verify uh if the person is has voted just once uh basically how is worldcoin verifying the zero knowledge probes yes so um when a person actually verifies uh you you will get from the from the Welcome widget you will get uh three things one is just your knowledge proof that lets you uh verify that everything checks out and the the user is actually registered and generate a valid ID the other one is called a nullifier hash so this nullifier hash is a unique user identifier but that's unique to your app so that that lets you as an app make sure that that is a unique person you can use that that single ID to to identify the user that the person uniquely but the user gets their privacy per served because that nullifier will be different for every app they verify in so to your specific use case like from from a boating standpoint uh you would get a nullifier for that person for that boat and then you would store that nullifier in your smart contract and and if you see that nullifier again you'll reject the boat okay so all the back end is uh being done in the smart contract itself yes you can also do it in the uh in in a centralized normal backend server but if you're doing the boat on chain then definitely uh do it on the on the smart contract so you said three things one is nullifier whatever the other two nullifier the zero knowledge proof that you actually need to verify and the third one is the root of the Merkel tree that was used to check the user's identity so it's just another parameter that needs to be verified that one you don't have to do anything with it's just necessary for the proof no problem like five examples of the applications you would be most excited to see people try out building here sure um I mean let me give you random examples that come to mind right now some something around reputation scores would be really cool where you get the value of a person only having one reputation so um that for instance becomes insanely valuable for negative reputation right because uh if if you connect crew negative reputation you cannot just go in and create another account um anything around governance so applied versions of boating would be really cool [Music] um more else comes to mind how about like social networks though I mean definitely there's a lot of value in social networks uh so for instance like we're all we already integrated with lens uh and it starts with you know you you can get a verified patch in your profile and and it'll get more value but what's interesting if you is if you start to think about something like web of trust where you know users who verify and then follow other people that that sort of like their Humanity can flow to to the other people and then you start to create a network of actual humans because you you're gonna be able to identify Bots a lot faster even if not everyone's verified with worldcoin so something around that would be really cool of course anything that uh you can compute some sort of human score with to rank content and things like that that would be really cool as well very cool thanks yeah all right so I have this question like isn't worldcoin relying too much on this Hardware of this orb I mean what if someone tampers with it or you know yes uh so two part answer to that so one is we are also exploring other options to not rely on their Hardware not because we think it can be uh tampered with but more because um we wanna scale as quickly as possible and not prevent anyone who wants to sign up to be able to sign up so the way to do that is you know today you have to come physically to a North that's the constraint so if we um if we enable other mechanisms that don't require you to physically go then we'll be able to scale faster and and be more inclusive in the short run the second part of that is the hardware has a bunch of different security mechanisms to prevent tampering with so for instance um all identities are inserted with a with a secret key that lives in a secure Enclave if you try to Tamper in any way the private key gets destroyed and I cannot go into much detail on all the security mechanisms but um yeah I think of it like as a hardware wallet very hard to extract the key without destroying it yeah and uh one last question that uh isn't is there any idea of you know migrating to uh web of trust if there are you know of course yeah that is something that that we have definitely considered um and it's still very much um in the radar I I think that the problem that we run into with web of trust is it's a very hard thing to bootstrap like you need a seed of trusted entities uh and that's what what we're doing with the ORF but we could definitely see a scenario where you know the orb is enough to bootstrap this and then web of trust becomes more valuable thank you no problem fine I'll call for questions any other questions alright awesome thanks everyone uh and see you around good luck
Automatic transcript — names and jargon may be misspelled.