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

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Join Flywill of Worldcoin for a workshop titled "Proof of Personhood with World ID" Thank you for joining us for ETHSanFrancisco—our first west-coast hackathon in nearly four years. This was officially our biggest event ever 🎉 👥 1700 attendees 🗺 from 46 countries 🌱 38% new to web3 📮 284 projects And: ETHGlobal just turned five! 5️⃣🎂 Thanks to every single one of you for making this community great 💙 --------------------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com #ethereum #web3 #blockchain #eth

Transcript

foreign [Applause] [Music] GM everyone uh my name is flywheel I'm here to talk to you today about world coin World ID and proof of personhood so just before we get into personhood I'm gonna give a little bit of an introduction to wall coin in case you haven't heard of us uh here's a famous orb so uh today we're gonna talk about um world ID so World ID is a privacy per serving proof of personhood protocol what that means is it enables you to prove someone is a human doing something only once and without revealing any personal information so uh the way we started is uh crypto so obviously awesome that's where we're all here uh but the value is being captured only by around two percent of the population so what we wanted to do is bring it to um more people uh in in the world so we started with this premise of what would have happened if Bitcoin started by giving one uh coin to each person uh of course this is no longer possible with Bitcoin but we um uh we thought it would be possible with a new token so that's why we created a whirlcoin token with a limited supply of 10 billion tokens where every person gets a share of uh this new token for free just for the fact of being a person uh and then until Supply runs out of course uh the problem we immediately realize is how do you make sure each person only claims their part once and this is where if someone's able to game the system or abuse it or any type of fraud then the whole premise falls down and we realize this is a very um existing concept called civil attacks and uh this is a concept that's present in a multitude of applications from social governance and we'll talk about a few more in a bit so we wanted to create a way where we could solve for the Civil attacks in a way that was uh private inclusive and scalable so we went through all the uh obvious uh options you know email kyc uh and then uh we got into Biometrics all of these options we realized weren't enough for either one of these um um constraints or or goals that we had in mind so um you know kyc is not really private uh it's not inclusive a lot of people don't have passports or for for other form of ID so we got into Biometrics and the problem with Biometrics is fingerprint there's not enough information in the fingerprint to distinguish a billion people or much more so that that was um something we couldn't work with and of course DNA is uh logistically too complex and not very private so that's why we decided to go with the iris and we created this little device called the orb uh what the what the orb does is it takes a takes a picture of your iris uh computes uh something called an iris code on device uh destroys the pictures and then with that Iris code is able to check that you're a unique person not previously registered so there's no need for contact information kyc passport uh and any other type of personal information so this is already quite private but we realize it may not be enough especially uh you know if you have a single identifier that's tied to your person then whatever you do with this identifier will be forever uh tied to you so uh we went a little bit deeper and with something called zero knowledge proofs uh we we embedded this as a core part of the protocol so with this zero knowledge proves what you're able to do is say I'm a real person and I have never done whatever action it is before and you can do this in a completely privacy preserving way in a way that if uh today I use it to claim worldcoin tokens and tomorrow I use it to uh mint an nft those are completely uh separate actions unable to be traced together um and this is what the Worldcom protocol is all about uh and um so so World ID is uh privacy first decentralized identity protocol that is based on this concept of a person and is completely open and self-custodial um so anyone can can make use of it the way it works is it looks something like this imagine you have this um cool application called mesha where you can get fifty dollars of whatever airdrop you're doing and you want to make sure a person only claims it once so you would uh add the the world ID widget that looks something like this very similar to a captcha uh it's just uh very um intuitive for for users uh they would uh they would get a QR code you would scan it with your welcome app and the app would generate the zero knowledge proof that you verified that you're a unique person and you're only doing this once uh so now I'm gonna get into a little bit of the technical details uh the protocol is a little bit complex uh an account of the zero knowledge stuff but um we've abstracted most of this complexity to make it easy to to build on top of it so um from a user's perspective first the user goes to a North uh the orb does this check I mentioned uh and then issues a world ID the the user um uh in the background what's happening is the the worldcoin app is generating a random secret and it's showing the public part of that secret to the ORF in a QR code the orb then takes a picture computes the iris code checks that it hasn't seen it before and if you're a unique person it'll insert the public key into this list of verified identities which lives on chain uh currently on polygon and we're working on uh bringing it multi-chain um so uh at this point uh your you you this public identity that gets inserted on chain it's a random um a random number it has nothing to do with you uh nothing it's not connected um to your Biometrics and when you use it it's uh it's never gonna be obvious which person in the set of users actually uh made whatever action it is that you're doing um so this is the flow for how an application can interact with the protocol so um there's essentially two pieces the application needs to integrate uh the front-end Widget the the capture box I showed so that the user can actually interact with the protocol with their wallcoin app and generate that zero knowledge proof uh the the reason the user needs to do this through the world coin app is because the secret is stored in the user's device is completely self-custodial and the app needs to generate the zero knowledge proof the other piece is the world coin Apple gen will will generate the zero knowledge proof give it back to your application and now your application needs to verify that the zero knowledge proof is actually valid so to do that uh the application needs to call rsr our contract with the proof and say like is this user actually verified or not um as an alternative if you're not building something that's on chain we have an API that abstracts all of this and you can simply do a traditional rest API request and will call the smart contract for you the other important piece to keep in mind is aside from the serial knowledge proof the welcome app will give you something called another fire hash so what's cool about this nullifier hash is it's essentially a unique user identifier with the the um asterisk that you'll get a different nullifier hash for each application that's how we ensure privacy so if I if I claim um that my mesh airdrop and I get user id1 if I then go and and mint an nft with uh another project I'll get user id2 so there's never a way to trace users together but you as developers building an application can always use this ID to ensure a unique person is doing something only once so um if your application requires that someone only does an action once you need to store this nullifier and compare it whenever a user is executing whatever action is it is that you need um so all of this complexity can be very easily abstracted so uh you integrate the the widget uh is uh quite simple well I'll show the code in a second um when the users scans it they'll see something like this in the world coin app is as simple as clicking verify and that will generate this you know knowledge proof um to to load the widget you simply install this npm package load it um as it's shown there as you see you'll need to provide two things one is the action ID the other one is the signal the action ID you get from the Welcome developer portal is quite simple developer.walkin.org there's links everywhere I'll I'll share all the links in a slide in a sec and the signal is this additional security measure that you can make part of the of the zero knowledge proof to prevent tampering with the proof so for instance let's say you want to do an airdrop and you want to make sure that uh you cannot tamper with the proof so that another person receives the airdrop if if I set the wallet address of the recipient as the signal and then I'm a malicious user who intercepts your serial knowledge proof and change it to my address the proof will become invalid so not all applications require this signal it depends on your use case and it can be any arbitrary string the protection is giving you is that it hasn't been changed it it's basically an authentication by the user who's generating signal knowledge proof and then once once you receive it you'll receive um uh this proof along with the nullifier hash and you can easily verify it by just calling our API very simple um post request or uh calling our smart contract um there's a bunch of use cases enabled by civil resistance uh here's only a few we have some other uh ideas in in our docs if uh if you're looking for inspiration um but you know there's a lot of possibilities for civil resistance uh so here uh you can go into id.walcom.org uh you'll find there all the documentation for all the libraries uh API uh protocol details um if your particular curious about the the serial knowledge part and the math there's some details on that too um you can also uh join us on Discord uh we'll be very active during the weekend in both the world the worldcoin Discord and it Global Discord uh so if you have any questions if uh you get stuck somewhere feel free to Ping us there um we do want to give a huge shout out to these open source projects that make the protocol possible so semaphore is uh an implementation of zero knowledge circuit so it it's what powers World ID and what let us bring this layer of privacy to to the protocol um hovel um we use for uh the the worldcoin token and wallet connect which is a power is a connection between the world Coin App and the application so when when you actually are building on this you'll see the QR code and all of that it won't look like wallet connect but under the hood it's using wallet connect um and then uh where where we are right now is uh we launched uh this protocol this Alpha Protocol about um six seven months ago uh we've been iterating it's uh very low-key uh we we've now built uh different applications Integrations you can see um uh World coin and lens integration if you have a lens profile you can actually get it verified with your wall ID you'll get a very nice batch in Leinster uh and we'll know that your profile belongs to an actual person um we have a pull-up integration so make sure that you know a person's only claiming a pop-up once it's pretty cool to prevent uh farming of pull-ups and things like that and we are now working on making the protocol multi-chain as I mentioned it's currently on polygon if you're using the protocol on staging or testing mode it'll be on Mumbai so it shows uh whether to use production or staging depending on whether you're building on on Main Poly on mainnet or Mumbai if you're building outside of the polygon ecosystem you can use uh the API um for now um the other thing I forgot to mention is um if uh you wanna you wanna test um your your applications I'd recommend going to simulate.

worldcoin.org uh it's it will basically let you generate any number of random identities on the staging Network and let you uh verify them as if you've gone to an ore because obviously if you test in production uh if if you come to an or sign up and then test in production you're only going to be able to do it once so um yeah don't I try to use staging um so uh just to summarize World ID is a product a protocol that solves for civil resistance at scale uh private open source open protocol completely self-custody for the user uh and very easy to use and implement if you have uh any questions here's the main resource link that you should take a look at here you'll find all the documentation and other information around this particular hackathon information about the prices anything relevant for for this hackathon you can find here the other thing worth mentioning is for those of you building and submitting a project for the world coin track be very short to look at the details for a qualifying submission in particular uh the project needs to be integrated both on the front end and either the back end or the smart contract so be sure to do both the the reason we do that is if you only integrate this in the front then there's not really giving you any any protection at all it needs to be verified in a in a trusted environment otherwise it's uh it's uh it loses the value uh and finally uh we're hiring all around so if you're interested come uh talk to us or welcome.org you can find all of our um open positions there uh and that's it

Automatic transcript — names and jargon may be misspelled.