Worldcoin 🛠Proof of Personhood with World ID
ETHGlobal·Sun, Oct 9, 2022, 12:00 AM
Join Tiago Sada, Miguel Piedrafita of Worldcoin for a workshop titled, "Proof of Personhood with World ID." This workshop is part of ETHNewYork 2022, a three-day in person hackathon that will feature hackers, mentors, enthusiasts, sponsors and speakers who are all gathering in New York June 24-26, 2022 to talk about the future of money, finance, the web, ownership, the way software works and the way power is distributed. We're excited about a new frontier. ---------------------------------------------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com
Transcript
foreign [Applause] [Music] first time we're bringing orbs to the US he's the first time world ID is available on mainnet it's the first time for a bunch of things so we're super super excited to share this with you I will give a short intro then Miguel will give you a full demo of how to integrate World ID into your own apps so that you can play around it for the weekend before that I want to give just a crown on why we're doing this and like how we got here in the first place so a world when we think crypto is really awesome but it has two problems first of all very very few people have actually tried it and then all of the value that's being generated by cryptocurrencies around the world and blockchains is being hoarded by a bunch of people like you and I like early adopters or insiders and we think that sucks and so a few years ago we had this crazy thought of what would have happened if Bitcoin had launched by giving one Bitcoin to every person who was alive right there's a bunch of really cool things that could have happened and so we said what the heck let's just give it a shot let's give a token to everyone in the world and see what happens and now in doing this we run into a problem that many of you have probably ran into your projects which is how do you make sure people don't abuse it right in our case it was how do we make sure if you're grieving away a free token the people don't double dip right that they only claim it once and so we started looking into it and it turns out this is a very common problem this is known as civil attacks and it's basically this idea that online you cannot distinguish whether 20 accounts are 20 different people or one person that has 20 accounts right and so we started doing a lot of thinking of how to solve this and there was three basic requirements of how we wanted to solve this whatever we did had to respect privacy of people it also had to be inclusive we were trying to do something for the world which meant it had to work in the entire world and then lastly he had to be scalable right we didn't want to do this experiment on a scale of 10 000 people we wanted to have a billion people try this so we went through a bunch of things uh I'm not going to dive in detail uh we have another Workshop tomorrow for this but basically we thought about email and phone verification this doesn't work right it's super easy to get another one we thought about kyc which is verifying uh official IDs this is super expensive most of the world doesn't actually have an ID or apis to verify that ID and it's not very private at all right then we run into web of trust this idea of people endorsing each other so that uh you essentially build a model that allows you to like be sure that people are unique and we actually really like this the problem with web of trust is that you need a very large initial set of users that you can really trust and so we actually think this is how we are going to scale World coin from 1 billion users to 8 billion people but you still have the problem of how do you get at that first billion people that you can trust to build that web of trust so that you're not building a house of cards so after a bunch of things we landed on Biometrics then for a bunch of reasons I'm also not going to get into we went through faces and fingerprints uh we landed on we have to use irises and then when you decide that you want to do okay Biometrics and irises your first thing that you say is okay let me use face ID or let me use my iPhone but it turns out that phone sensors just don't have the enough resolution to distinguish between 1 in 10 billion people right and they also cannot operate in untrusted environments then we said okay let's look at something like clear right or like off the shelf um Iris scanners and this has the same problem right and the reason for this is all of these devices do one-to-one comparisons right you're saying hey I'm Thiago Sada and so let compare me to the previous Biometrics of Thiago Sada right and so that is fairly easy to do we have a different problem which is hey I'm a person that has never done something before which means we have to compare your Biometrics with everyone else who has come before you and so something like face ID can only distinguish between one in 10 million people which means that after 5 million people there's a 50 chance that when you try it it gives you it tells you no you've already done this even if you haven't and so for what we were building we wanted to be able to distinguish between a billion people and so we just realized we have to build custom Hardware there's nothing that does this it's like now do we do it or not and so we did do it we spent two years doing r d there's been about five generations of the orb hardware and this little beauty came out right now I'm going to leave you in suspense here because we have a full Workshop tomorrow for 45 minutes we'll actually go more in depth into why we built the orb and how exactly it works we will go piece by piece of the hardware it's we're going to get very Nitty Gritty uh it's really cool engineering and uh so that's tomorrow here at 4 pm but in general the orb those three things right first of all it looks at your face and make sure that you're real that you're not trying to cheat so it does with a bunch of sensors IR uh it creates a 3D mapping of your face make sure that you're not wearing Prosthetics things like that secondly it generates a code from your iris and that code leaves the device and is compared against every other code that has ever been successfully verified and if it's Unique the orb then triggers a verification it basically proves your your some private keys on your phone that we call World ID they're completely separate from your wallet completely separate from your Biometrics and it marks that as verified right and so again we will talk about this tomorrow and so we really like this because it means we don't need to take pictures of you in your in the app we don't need selfies we don't need your name we don't need your contact info we don't need to do kyc uh but Biometrics is like pretty sensitive and so we wanted even more privacy and so then we heard about these really cool new technology called zero knowledge proofs there is a blog post on our website if you search privacy preserving improved personhood protocol where we uh it's the PPP OPP where you can see how exactly this works but basically we married the Biometrics that we're already doing on device with serial knowledge proofs to make these really really private system that really nothing out there has today and um like I said the breakdown of this is like pretty complex but it's it's on our website it's a really really cool system and so with that in hand we actually went out to the world we started trying this out uh trying to give people the work on the world going token and signing up giving them the raw ID and in the we've been to 25 countries or something more than this around the world everything from Norway to Mexico where I'm from to Chile and Kenyan Indonesia and India and Portugal we've we've had very few orbs because up until now we had to make orbs in 11 so we only had 25 and we would like shift them around uh right now we are finally producing orbs on a factory just last month we made 250 orbs and then now we're going to be making a couple hundred orbs every month which is insane because with just 25 we actually signed up over 600 000 people uh in less than a year and so now with hundreds of Forbes and thousands of orbs very soon the scale of this is going to get pretty ridiculous so all of this was great we recently announced we're open sourcing all of this part of this already open source part of this we're in the process uh and we started sitting in the community we now have a Discord we're starting to build in public we're setting really the foundations for decentralization uh there are some parts of working that will be decentralized before others obviously we do Hardware but at the end goal is to have everything decentralized but there was one question we kept getting from people like you which is all of your like your product is like pretty cute but like how can I reuse your verification on my project right because I don't really care about your token I don't really care about whatever fluffy thing you want to do but like I want to issue loans or I want to do another airdrop and you've already solve civil resistance and and honestly for a while we were assisted doing this because uh because of privacy like we know how we treat privacy we know we use ckp some of these things and it's just makes us very nervous to share this SDK with other people but eventually like it's just a fact that you can build really cool stuff if you can prevent civil attacks and so let's say okay let's let's actually do some thinking and so about three months ago we said okay how can we open up an SDK for people to start playing with this and with one condition of preserving privacy at all costs and so for us that meant a couple of things a lot of times people ask us hey can you just issue like a social security number that's like your crypto SSN and you can just like people have one of those right and we don't want to do that we don't like the idea of people even able to track you across crypto another suggestion that we got is well can you just like white lease the wallet right can you tell me like which wallets have been seen by an orb and I can just like query that and again we don't like that uh we like the idea of people being able to use many identities be pseudonymous and we think that Humanity should be separate from your identities right and so the solution was actually really obvious is just use the same zero knowledge proofs that we use on our own right and so with these we created something called World ID uh what you're going to see today is the Alpha version of that we're super super excited to share it with you and this is very simple it's a protocol that allows you to anonymously verify that someone is a real person and is performing an action only once right so for example for worldcoin people prove us with a zero knowledge proof like hey I'm a real person and I've never claimed worldcoin before now with the SDK with World ID going forward developers can create any other actions right and so let's say that you're an artist I want to do an nft that each person can claim only once for free now that artists can verify hey like this person is a real human and they've never claimed this nft before the the actions can be anything that is Unchained anything that can be triggered by a web API it's very very cool stuff now while all of the things behind it are super complex we actually want to make it both really easy for developers and for users and so for developers all you need to do is add like two lines of code and for users and starting today there's a very a very nice developer portal that actually walks you through the process of implementing these choosing whether you're doing something on chain or you're triggering something with an API and how to integrate the widget and all of these things and you can manage different actions so as for example us as worldcoin we have a bunch of different actions that people prove in the app that they are unique and that they haven't done before and so you can manage all those things and then for users what this looks like is very similar to a captcha it's like a captcha that when you click it it either takes you to the app if you're on mobile or it shows you a QR code that allows you to generate that to your knowledge proof and so this is what it looks like let's say that someone wants to do an airdrop and they instead of having just a claim button they would now have like this captcha thing either and you can customize the style people will click on it and they can get a QR code they scan it with the worldcoin app the welcome app asks them like hey this developer wants to verify that you haven't done this before in this case receiving an initial airdrop so you verify that we submit the ckp and then that capture that button is enabled right and so rather than telling you more about this I will just let Miguel show you how this works uh live and then I'll be back in a bit foreign [Music] anything up there we go okay so as Diego said we've made this really amazing program and we trail that a little bit on the last if Global hackathon uh hack money which was an online hackathon and we got a lot of really feedback from developers about how it was great but there were a bunch of things that could be improved about understanding how it works make it easier to people to get started and so since then we like went and did exactly that um we have this developer documentation with all of the introductions and now instead of having to install five different things to get started we have this really cool depth portal so for example we have we have two examples here but let's say that I just want to create a new action and I'm going to say get like testing anyways um and this is going to be for staging one of the really cool things that we've implemented is instead of just like rolling your smart contracts and that's it and that's all you have to do we have a cloud version now where all the proofs are still very financing but we just provide you an API so you can Implement your front-end you can get all of the details from the widget and then you just send that to our API we take your verification we take care of everything and we even have like a kiosk mode that I will demo in a second that is the easiest way to do one idea in any way where we just have a page show the QR code people scan it it verifies people and that's it you just like I know if you're in person give them some socks or you give it something you can also redirect to a URL so for all of the web to people or other people that don't really want to get into smart contracts right now this is great but what we what we're really here for I think is what is unsane I'm verifying all of these things on same and so oh well so we've made also this simulator while the connection comes back which allows you to test all of these the issue with proof of personhood is that it's really freaking hard to test because you try it once and then you cannot try it again if it works properly and so this acts kind of like a faucet or a temporary testnet where instead of going to an order every time and having to get like hunt for humans around the conference to try your thing you can just add entities to a test Network and then deploy your smart contracts to a test net and verify with this so this was a small pause um and this would be kind of like going through an orb um and it's now verified I will go back to the where I was before um so as we mentioned we have the API and JavaScript we get first you have to integrate JavaScript widget this works both on chain and with the API you yes add an npm packet through native anywhere where you want the capture to appear and then called wallet.init with the IV and an action ID that you get from the portal then you call enable and that will get you the result afterwards you can either verify the proof with the API or you can send it to a Smart contract which will take care verifying so what how that looks like is here I have the code for this app that ever showed the whole airdrop example where you just connect your wallet I'm going to pull in my rainbow wallet here to connect and this would be what which wallet receives the airtop the really cool thing about proof of person food is that I can just like receive the error with a different qualities each time or maybe without even different identities and no one will be able to track me between those users or even if I use the same identity all the time double since everything is like self-contained quality leaks no information about you not even that you were the same person that did these three things so then afterwards um it shows up the I'm doing this once check I would scan this QR code with my phone for demonstration purposes and because I can poor personhood testing is really hard I can just copy this QR code I'm basically paste it on the simulator that I mentioned before paste it here that will show me the same prompt that would show up in the app and I can just click verify and then when I go back verification confirmed and then I would just like click claim which should pop up a transaction in my wallet to actually submit the transaction behind the scenes what is happening is we're just um you know in the proof so that it's just like in react we have a hook we run the widget we set the proof to a variable here we have enough examples and code and all the code that I'm showing is open source so you'll be able to copy and paste this if you want to and then afterwards you just call the contract that you want in this case we have called it they contract with the parameters that you want to pass for example the wallet address that will receive the airdrop and then these three items from the uh what do they prove that you can just drop in there and the contract will take care of verifying everything how that looks is you you first have to check that the user hasn't done it before you just have a mapping for nullified classes on the contract that is just like a number to a Boolean you then call the verify proof function on our contract pass in both the parameters that user provided to make sure that someone cannot like intercept this transaction and inject their own way to receive the tokens and then also the action ID that you get from the dashboard if the proof isn't successful because the user has not been verified because they have already done this or for any other options this will revert otherwise this goes through we Mark the user as done and we can do literally anything that we want and this example this code we're doing here is for a project that we made for uh this hackathon called uh pet orbs where you can adopt one of the little Plushies that we made one of these guys it's our kind of like the kids for the orb a little bit less threatening um and you just would go in connect your wallet and switch to switch support to polygon you get to name the arm and then again you say I'm doing this once and in this case since this is in production I'm going to grab my wall Coin App and scan this up and it will show me the same UI that we saw before with the display it wants to verify I'll do a little bit slower because Wi-Fi um and then the key here is I have already verified here because I I already have my better orb at home so what's going to happen if it loads otherwise we can just all pretend it did um is it will actually succeed here we're still working on ways to verify show feedback to user before they submit the transaction that would probably come up in the next release hopefully but when you I click the Adobe button which shows up after this um it would throw an error because the transaction reverts because the proof has not been verified I'm going to try this one last time and otherwise we'll get like mobile [Music] um in the meantime as I mentioned we have this developer for this documentation this goes really in depth into like all of the different options that the um working widgets has how to specify a signal which is a way of encoding all of these parameters to make sure that no one interested the transaction also how to use this with non-creator with made a bunch of demos for example we have a Discord bot that can verify that you are a unique human that has never joined that survey before and give you a special role so you can see some channels the roadmap how to do more custom Integrations and we also have a bunch of examples like the hard drive that I described the disc robot the code is also here hyperdrop which is a project where you would send contracts to a smart tokens was my contractor then splits them between all humans on Earth which is really cool and hopefully whatever you guys will in the hackathon you can just like PR to show also here for other people we also have the API again for more webto things and it doesn't seem like this is going to want to load again I blame the Wi-Fi um yeah that's pretty much everything that we've made uh we have the step portal we have the simulator we have the dogs it's really easy to create all of the actions here um you can also customize them and even like verify them so the application shows a fancy logo and a check to make sure that no one is pretending to be you and yeah hope that you really enjoy dealing with this all right amazing so just to all this loads emphasize what Miguel said is we're super excited about what the developer portal enables and how we can make the development experience a lot easier the example that you saw today is if you want to execute an action on chain right if you want World ID to trigger something on chain now we've got a lot of requests and we've actually even used it ourselves for the Discord but hey like maybe I'm a crypto project but for whatever reason I just need an API call on a web server and that's fine right that's what cloud actions are for everything is still verified on chain we just handle all that complexity for you so no need to be deploying smart contracts or things like that so that is the world ID flow basically our lady visits an orb just like this one to get uh their world ID you as a developer can integrate the world ID widget or one of the other options that we have for World ID through the developer portal then the user interacts with that they have to approve the verification through the app that generates a zero knowledge proof it submits it and then you as a developer execute whatever action you're trying to do so this is super flexible as you can imagine we've seen people do this do projects like polls for this for voting whether it's one person one vote or quadratic voting or conviction voting there's a bunch of fundraising examples and sold down tokens and there's a bunch a bunch of things you can build with this and you probably have better ideas than us starting today for the first time on polygon you can actually use this for real in the past when we shared a sneak peek of this you could only use this the simulator and no real people could use these there was no developer portal no no Cloud actions and so starting today all of this stuff is live on polygon um the cloud the on-train actions only work on polygon the web actions you don't really care about like we will verify the actions for you on polygon but for you it doesn't really matter your app can be wherever you want it and if you see an orb around the conference you can actually download the app yourself get your world ID and you can test things yourself so before wrapping up we want to give a huge shout out to a bunch of Open Source projects that we are building this on top of mainly semaphore all of the zero knowledge proof that you see is an open source spray called semaphore super super cool the the world going airdrop which is not available in the us but we still work a lot with this team is a team called Hubble it's an L2 that came out of the ethereum foundation it's an optimistic roll up so we're huge fans of them and lastly wallet connect you might not have realized but the way World ID works is actually the connection between the wallet the user's app and your widget is actually happening with wallet connect even if it has nothing to do with your wallet we just use some of their web sockets and things like that so we're super super grateful for that if you have any questions we are on Discord both on the official hackathon one and on the world going Discord we can just chat 101 or you can just look for us and and so just to summarize World ID is a new protocol it allows you to build several assistance into your app within 10 minutes it's super private it's self-custodial which we're very excited about and it's open source already today and uh more than anything is very flexible right you can use it basically for anything you can imagine with that again you can get your world ID today we were having some Wi-Fi issues at the booth so you might see us walking around randomly with the orbs just stop us or if you see us like somewhere just say like hey I want my world ID for example hike here has a world ID and orb and we can help you set it up in like two minutes we do have a track on the hackathon with a bunch of prices I'm sure we'll already look at them so I won't go over them there's first place second third place and also a pool price and in general we are some Alpha League here we are about to launch a grants program so any anyone that's hacking on these will probably be fast tracked on those Community grants so we will launch during the summer last two things if you are curious about the orb why we made the orb you hate the orb you love me orb uh you have a weird attraction to the orb tomorrow is the place is the day for you we're going to for 45 minutes dive super in depth into everything all related here in this building in some room at 4 pm and then also if you really like what we're doing we're hiring across the board whether it's for product design a bunch of engineering like pretty much if you can imagine it we're hiring for it and so please come and talk to someone in the team or just email me directly at worldcoin.org so with that I want to leave the last minutes that we have for questions mostly for Miguel butles for myself yeah yeah so it's first of all it's not really an identity protocol right because everyone gets the same proof of personhood you cannot it actually like is not very useful for some things where you would want to like distinguish people what we give you is a way of knowing that someone is a person that hasn't done something before so in terms of a downside that is a downside right if you do kyc you don't just know that they're real you also know who they are right so that is a downside of these there's obviously um we have to get everyone on the system right and so we have to find a way to scale this to the world we think we have a path to that and there is one trusted component here which is the orb right the orb is essentially a real world Oracle and we do a lot of work both to prevent abuse and to react to abuse so for example every orb signs each purification so even orb was misused or it was compromised uh also right now in the future the community can actually retroactively expire the verifications from that orb and just tell people that they should return to another orb so there's things that we do to mitigate that but there is uh there is inherent trust in the orb and that is just um like perhaps the downside of of the project but we think it's by far like the best path obviously yeah so we're not really talking about the Whirlwind airdrop today um you can throw questions on the Discord on that um in in summary there's just not enough regulatory certainty in the US for us to feel comfortable uh running the welcome airdrop in the US yes so right now uh in other countries people can try the beta so we're issuing what we call beta tokens which is World tokens on a test net that will hopefully uh convert I I would rather not talk about the air though let's focus on world lady today yes let's focus on our lady today sorry guys yeah yeah no no no I I I'm happy to respond on Discord it's just right now we're like we're not talking about your job in the US so yeah for now we're not talking about the air jump in the US yes yeah yeah great question so we're actually hoping to open up the hardware of the orb before this conference uh the spirit of the workshop that we're doing tomorrow is pretty much sharing everything that we would share anyways um we are ready to do so the the special consideration with the hardware is the licensing um there is it's a double a short opening it up right because uh people could choose to misuse technology that we develop and so the all of the blueprints and everything will be opened up we are working with really really cool open source Advocates on exactly what license we will do this with and so during the summer the hardware of the ore will be open sourced and then hopefully within a year the firmware will also be open source as well yep yeah do you want to take this do we use this I can just say that so no you do not use this in place of a wallet when you download the welcome app you get a self-custodial wallet on ethereum right now it supports Hubble on ethereum and polygon World ID is completely separate it's wallet agnostic and so when you sign up to work on you do get a wallet you can use that or you can just use any other wallet you want and just use World lady through the worldcoin app great question so unlike your your lady private Keys you can back up just as you can back up a wallet private keys so right now we support cloud backup in the near future we'll support social recovery as well the additional thing that we can do in this case is we can also let you go back to an orb uh expire or revoke your old world ID and get a first one with that same Iris code because while there is not a link between your wallet and your iris code and there's also not a link between um other stuff that you do and your iris code there is a link between your world ID public key and your iris code so we can revoke that verification that is on that world ID public key and assign a new one right and that's fine because the actions that you do with World IDI are not high to your world ID publicly this is a very cool thing uh you cannot query some more lady public key and ask like what what has this person done is every action is completely unrelated to each other unlike it would be in the case of wallets hmm yeah so if you lost your eyes or if you don't have eyes um then in the short term there's uh we don't have a mechanism yet this is what I was talking about the way we see scaling this is actually through something like a web of trust but in the short term there is the vast majority of population has twice the vast majority population don't lose their eyes fortunately and so we think that's good enough to issue it you would only need to return to an orb if you lose access to your old lady in the first place so even for whatever reason you have an accident as long as you don't lose access to your world ID and you have it backed up you should be you should be fine anyone else have a question all right then let's say one last one review yes so we'll talk about this tomorrow the Orbison Superior Enclave each orb has his provisioned a its own signature that's what it uses to sign the verifications and so there is a whole flow around that you can imagine very similar to how you provision uh Hardware wallets and so uh yeah that's not sure the answer we'll talk a lot about Mar that tomorrow all right sounds good thank you so much everyone uh we will be around all weekend long we will also stick around here in the back if you have any questions or if you want to ask one-on-one stuff um super happy to see you and happy hugging
Automatic transcript — names and jargon may be misspelled.