[Music] Next up, I want to bring on Eric to tell you about how we can actually use a more onchain version of our identity using ZK and just the tools that we have right now. So to talk about self, please welcome Eric. Thank you, Cartik. Um, hi everybody. I'm very happy to be here and excited to talk about uh the self protocol.
My name is Eric. I'm currently CEO and one of the co-founders of this project. Um, let me see if I can go ahead. Yeah. So, my talk is uh show me the proof.
I want to talk about how we can use ZK um identity to help um not only the applications that you folks are building but try to solve real problems that a lot of us have in the space. One of the common um questions that have come up with identity or ZK um is you know first trying to understand like what are the other big problems in our space. One of the biggest challenges that we have right now I would say are at least with identity is um having to up of having to upload or take pictures of information that you really don't feel comfortable sending, but you have to send it. I actually had something like that happen the other day. And sometimes when you send this information, you don't know what happens to it.
So if you send this information, um, it can end up, you know, eventually someone may see it. So I like to think about this as, you know, really kind of exposing too much of your information. It's quite common uh if you are um doing things like an airdrop or something like that, many of them are going to require you to um prove who you are. They're going to try to KYC you and things like that. And if you're using um if they're using a third party service, you're going to be sending a picture of your passport or a picture of your ID card to this service and hoping that they never get hacked.
And it's uh it's it's really unfortunate, but it's a very big problem. I've been in the space for many years and um this is still an issue that I thought I'd hoped that by now we would have solved and hopefully um after this talk you'll you'll feel confident that we do have a solution other you know like I'd said um anytime you use a third party and they gather your information that information is being centralized and it becomes valuable as more people use it so if you're part of a project that is gathering this information as more people use it as project becomes more more well known, it becomes a target and that um a target of um usually hackers or people that are just trying to breach um breach the information and then sell that information online. Another big issue that we see in our space um to this day is telling if somebody is real or not. So Cibil is a very good example of somebody who makes multiple accounts. if you built any protocols or had anybody using your app, sometimes you can guess whether or not somebody on your app is is real or not.
But um once you start getting into smart contract usage and wallets connecting and using your applications, um it can actually be really really hard and this is a problem that I think persists um has persisted for a very long time. Um the other things um I guess the bigger question is you know if everything's a smart contract and everything is you know um uh permissionless how do you tell the difference between a good wallet and a bad wallet or a good actor and a bad actor and it's extremely it's extremely hard to do and that's why we have we have things like you know trying to learn more about the people trying to align trying to um get more of their information to determine how likely a person is or isn't a bad actor. in the space. And the most recent problem I think we're we're experiencing now is um like even when you read news or I don't know what Taiwanese people use to read their news, but I I read read a lot of Reddit or Twitter, it's actually really hard to tell if the comment thread that I'm following um is actually written by real people. So, we're having this issue in normal social media.
Um, and it's only going to get crazier, especially in our space where more agents are coming online now. They're going to start, you know, writing software, deploying software. They're going to start, you know, using your your applications. Um, extending, you know, taking all the advantages of web 3 and how extens extendable it can be. So, determining that someone is a human now is getting harder and harder.
you know, one of the the kind of high level um I think solutions to this problem is using ZK. So, one quick example for folks here who may not be um uh a developer in our space is the kind of a good example of where's Waldo. So, with where's with Waldo, these books are built with this beautiful illustration, very intricate in detail, and your goal is to find the the character. I made it really easy to find him here, but let's say it's hard to find. you can use ZK actually um to determine that you know where he is without um uh without revealing exactly where he is.
So in my example here um imagine this green square is the outline of the character and I've cut that out of a big paper that's much bigger than you know this um this illustration. you wouldn't really be able to tell where he is on the page, but you would be able to tell that I know where he is. That's a very simplistic example of how ZK works. And with this technology, I think we can solve a lot of the problems that I had mentioned um earlier. And my the kind of the uh idea for the talk really came from from the movie um Jerry Magcguire where you know he's yelling you know basically show me the money but it's like in this case it's like show me the proof and with self I think we can do this very easily.
self is a new application. Um it's a collaboration actually of uh open passport um and us and we've come together to build a a new method for verifying people's identity information but doing it in a way without revealing all that information um without having to for example upload a picture or a photo of your passport. the way that we get to make this work actually is through the passport document because it's a it's a document that um I think anybody who's traveled to Taipei for any of the ETH global events or the ETH Taipei events, we definitely have a passport and um I can probably tell you where my pass like I know where my passport is. You probably know where your passport is. It's a document that you don't just leave, you know, leave out.
You're very careful about where you put it. Um, and the other thing about a passport, it's it's unique. It's actually quite rare to have more than one. In fact, I don't think you could even have two from the same country. They will destroy the previous one.
It's really hard to get more of these. Um, and for people that have may maybe a second one, not not very common. And beyond that, I mean, maybe maybe you bought a passport like through a through a company uh through a country or something like that. But the reality is most people have have one and very few have more than one. Um, like I said, it's really hard to get.
Um, but one of the the really cool features about passports, especially the new passports, is hidden in the back, maybe a thick page somewhere in the passport, is an NFC chip. And within this NFC chip is a copy of that that data. And that data actually um can be quite useful for not just builders but for people that are um conscious conscious and caring about their information. Inside of these passports, they have um all the biometric data that's listed on your passport page um stored cryptography uh cryptographically in in the chip. And the cool thing is that you can actually determine whether or not that information came from the country that you um that that passport is issued from.
Which means you can prevent things like someone creating like a AI face p you know using your passport um information and attaching that or um modifying some of the data like changing their your name to their name and then passing that off. With biometric passports and ZK, you're actually able to provably prove that that passport was created by um through a sign a certificate um signed by the country that actually issued this. And the interesting thing is that um these are highly scalable and lots of countries are have been using these, but not all passports have this feature. So, if you do have uh your passport and you check the front page, usually there's two rectangles with a circle and that's the kind of universal sign for um an electronic passport. With um the data within your passport and knowing that it's valid, that unlocks so much.
You're actually able to tell that if someone um has a valid passport that they're a real a real person. And um with that information, you can actually start to reveal that and not have to, for example, give all your data. So like when you take a picture of your passport, you you send it somewhere or you take your your ID card and you send it somewhere. Um they're taking all that information, usually the front side, the back side. Um with self, you can actually um disclose just a certain thing like whether or not you're over the age of 18, that can prove you're an adult in in say the United States.
If you're over the age of 21, that means you can um legally go onto gambling sites or um order alcohol, which is a um still a problem in in America. Um and then you can also do things like determine whether or not somebody's a part of a country. So if you're actually if your passport's from um say Canada, but it's not from this this or that country, you can disclose that information. And again, when you disclose this information, it doesn't show all the data. It's just these sort of statements like am I over the age of 18?
Am I over the age of 21? Um am I male? Am I female? Am I from this country or not? And the benefit here is that you can actually use this information to also determine um one that like a person is not part of OFAC.
They're not a you know not a sanctioned from a sanctioned country. And if you're building D5 protocols, this makes um the usage of your protocol a lot easier without having to involve like a third party. Um the way that this works is very quick. We actually use the information on the first page of the passport to unlock the information inside of the trip. And the reason we need this step is that we want to take that data on the chip and we want to verify that that came from where you know the country that um that issued it.
The QR code actually does two things. Um it allows people to one register and then um if they're registered they're actually able to see the the information that you're requesting. So, for example, if you're building an app that wants to make sure that somebody is um over the age of 18 and you want to use self, um the user will see that you're requesting um that your age is over say 18 and you can then verify that information and and your application can then use that. The core information, the raw data within the passport never gets shared. Um, and I think that makes things a lot easier when you're building so that you can build um, uh, try to solve problems with just the key data within your within your passport.
As I said earlier, um, you can use any sort of arbitrary data or facts about you. You can figure out your country. You can do the age check. Like I said, um, it's actually important when you're building some of your um, applications to check that they're part of one country and maybe not a part of another country. And I had said before um you can verify that someone's not on the OFAC list.
Now the interesting thing is when you take the when you take the data and the facts and you combine it with a wallet or a username or a or an account um that's where it gets really powerful because now you can link all the provable facts to a wallet. And the great thing about self is that because we're using ZK you can um you can do it without linking any of this information together. So if you do a proof to go on to um to verify that you're say a US citizen and then you go then to verify um your age on a different website the two can't be com connected. The way that as uh the way that this works from a technical level is when you register um we actually read your data. We create a a secret that can be used to restore that account and you can either write it down or host it in the cloud.
Makes it really easy to move between devices. The challenge though is each country actually has a bunch of uh crypto cryptographic signatures that they use. The c the one for Taiwan and the one for United States is very different. But self has been able to um to uh understand all of these and some of them are really big and very complex. And so we actually use trusted execution environments which allow a um the the proving of that information without having to do it on the the device.
But our end goal is to have this all happen on the phone and allow basically proofs to happen on everybody's phone in a way that unlocks a lot of this information and does it in a provable way. for people here. Anybody here um building for the ETH global hackathon? Couple hands. Okay.
So, all of this is live. This is not coming soon. It's all live right now. And we have a SDK that's available. With the SDK, you can generate QR codes to link your application to the proofs.
um and makes it really easy to go in between the um the the steps or the information that you want to get and developing your application. Um for folks that are trying to build onchain the there's actually two paths. So when you're building or integrating your um self into your application, if you want to use onchain, you can um you can use onchain proofs, have your code execute once that proof has been verified. But if you are doing something like an airdrop, you can actually use the off-chain component because not everybody prefers using onchain. It can be um a lot of compute.
So it's actually helpful sometimes for them to use it offchain. Those are two different ways. And one one final note is we can't see anything. We can't see what you're looking for, what you're requesting. We can't see um the information on, you know, people's passports.
It's all, you know, it's all meant to to be provable without us having to to really look in. So, when we're thinking about how can we use this technology, as I mentioned before, AI is really it's really hard to tell if someone's a bot or not. So, you can actually use self to determine that somebody is not an uh not AI agent and let your application kind of function with that. We can help with social media. So, you can prove the users are real.
that helps with if you know that you're commenting and somebody above you is a real person, you would feel a little bit different when you're commenting and I think that's super helpful. For airdrops, you're able to use self to verify that people are real. You can also um because you can disclose the country, you can actually make sure that if somebody is in this country and not these sets of countries, they can participate in the airdrop. And like I said before, you can use the offchain component which makes it easy for distributing um tokens. The civil resistance is again is someone real or not?
That's baked in. OFAC compliance again most interesting to anytime that you're building something where you're sending a large amount of value or just value in general. You want to make sure you're you're not um uh sending it to a place that's going to cause you trouble later. And then finally, age and verifying your ages. So with proofs on chain, we think it makes it really easy for people to use this information that has so far been really hard to determine.
someone is real. We launched back in ETH Denver. Um and we actually ran a happy birthday contest. We're still not sure if we're going to run it, but just give me a little bit of heads up. What we did is we built a um a project that um requested people's particular birthday.
um if that day and the day of the year and the month matched up, then we issued out like a a little payment, a little gift um uh you know, some USDC and we had dozens of people try and we had three winners. So um all this happened on chain. It was really cool and really fun project to build. Thinking forward, you know, now that we have this solution, one of the biggest challenges we have is how do we make it easier? It's actually still complex tech to when you think about it, when you think about ZK.
Um, I suggest you download the application. You can download go to self.xyz, download the app, take a look at it. Um, try it out. And beyond this, we were thinking, you know, how can we go from passport information and and make sure that that's provable to other types of identification.
It's actually quite hard to um to prove that somebody's identity information is legitimate and real without including a third party. And so if you can do that through cryptography like you do with passports, that makes it much easier for developers to use and much more secure for people. Um one thing I'd mentioned before is proofs can be quite complex and so there's a lot of time that's taken to actually um to verify this information. Our our goal is to make this be quicker, faster. Um, and then finally, we added a bunch of support.
So, we added support for Germany, for Japan, uh, Poland, um, and the UK. As I said earlier, a lot of um, a lot of passports use different types of uh, uh, schemes for signatures and some of them are quite complex and so adding these on um, we're really happy that these uh, have been included so that now more people can use your applications when you're when you're building on self. If you folks are, like I said before, if you're building at ETH Global, we have about 10,000 in prizes. Some of the ideas that we've listed, um, take a look at the ETH Global page and learn more about some of the ideas you can build. Ultimately, what we want to see is a, uh, a new way to build using an identity piece that can verify someone's someone's age, someone's location from their country code.
um and and use that information to build uh an interesting application for ETH global and there's two different approaches we have. We're going to or three different approaches. We have top projects and then we're going to have best use of both onchain and offchain. So, if you are building for ETH global, take a look at our page. And if you're not building for ETH global, um, take a look at the page anyway and see what kind of ideas you can have because we're actually starting to see more uses beyond web 3 and really targeting the whole internet.
And I think at the end of the day, getting more people into our community through um, all online users is really um, really important. So, that's it for me. Um, hope you learned a little bit about self. Hope you learned a little bit about ZK. If you have more questions about how it works or how it can work within your application, come find me after.
But thanks everybody. [Music]
Automatic transcript — names and jargon may be misspelled.