ZK11: zkPassport: Secure and Private Identity Using Your ePassport - Michael Elliot & Derya Karli
19 Apr 2024 · 50:47
Michael Elliot and Derya Karli of zkPassport present a workshop at ZK11 in Athens introducing their project for secure and private identity built on ePassports. The talk covers the technical stack behind privacy preserving identity verification and practical implementation details for developers building with zero-knowledge proofs.
Speakers
Topics
Transcript
All right, let's kick things off. First of all, thanks for joining our ZK passport workshop. Although, I need to just let you guys know in advance this is probably going to be less of a workshop um more of a talk shop kind of scenario. Um but there'll be time for questions at the end, so or you know, if you if you have a burning question you want to ask it, please go ahead. We can be pretty free form that way. So, um I'm Michael and this is my co-founder, Carly, and together we're building uh ZK passport.
Uh And what is ZK passport? It's a secure and private identity verification. We have an app, uh but it's also like a sort of protocol that we've got as well. Uh just to give an overview of what this talk is going to include at a high level. We're going to have the what is ZK passport, which I I guess I kind of just just did, but there'll be a dedicated slide going over it in more detail. Um we're going to show you guys an end-to-end flow of the app.
And then we'll kind of um have a look at like the the way that we conceptualize centralized versus uh decentralized digital identity verification. We'll talk about uh e-passport certificates overview, the the kind of um public key infrastructure that that exists similar to like the PKI of SSL certificates, that kind of stuff. Um we'll have a quick look at what information is on an e-passport. Got some really, really cool slide transitions in that one, so I'm excited to get to that.
Uh and then we'll have a look at what are we actually proving in our circuits. And then we'll talk about uh nullifiers or as we're sort of calling them these unique anonymous identifiers. And then we'll touch on some interesting use cases that we feel are pretty compelling. And then we'll have a look and then uh we'll we'll talk about the anatomy of scams and and combating fraud and how we feel that ZK passport can help that. All right, so you know, let's just let's just um dive right in. So, actually sorry, this is the first slide. This is the ZK What is ZK passport? Okay.
So, what is ZK passport at a high level? It's a mobile app that's can scan in your passport via NFC. The passport data is securely stored on your device, never leaves your device without your permission. And then you can selectively prove information about yourself using zero-knowledge proofs. It's very similar to what they were talking about in his talk. And how we achieve this? So, we're using the infrastructure and technology that already exists and is used by airports around the world. So, as you can imagine, it's a very high level of security where, you know, this is what countries are using to let people in and out of their borders. So, we have those kind of guarantees, which
is great. So, your e-passport contains your personal information. This is digitally signed by the issuing government. That's kind of the key part here. So, new All new passports have that. Some older passports don't, but at this point a lot of countries support the um the NFC chip. And so, this is just like a conceptual high level overview of what that could look like as a demonstration. You've got your name, you want to you know, you want to prove just your first name, um that's that's possible through what we're doing. And I think it's we can just jump straight in. Here's an end-to-end demo of our app.
So, I was hoping to get a test flight working um at this point. We don't have test public test flight yet, it's just internal, but if you can you want to follow us, we'll be releasing that very shortly. And then you can try it like scanning your scanning your passport in and uh yeah, generating like a you know, proof of proof of personhood. Uh so, that this is the first screen. You would then from that point the next part would be scanning in the MRZ region of your passport or like national ID. Uh which acts as this protective layer of security to prevent skimming.
So, that you need to be in physical possession of the passport to be able to like have that the next part, which is the NFC scan. So, you just hold your your passport to your your phone. It differs from passport to passport. This can be tricky, um but once you kind of get it, it works. But then if you slightly move it like half a centimeter, it whole thing breaks down. So, we're we're we're working on um improving that kind of UX where we're helping to guide the user through some animations um showing, you know, how you can kind of do it. And once you find that sweet spot, do not move your passport. It can be frustrating. Um And then this is what it would look like. So, this is a fictional character that we devised so I didn't have to devote my own
personal information in the recording. I'm not sure how many of you guys played Cyberpunk. This is uh Johnny Silverhand from Cyberpunk. And so then the next part of the flow is where you would connect your phone, connect the ZK passport app to a website by scanning a QR code. So, similar to the wallet connect flow that everyone's familiar with. And then there'd be like a you know, they would establish a secure encrypted channel between the the front end and your mobile device. Um and we can even have the actual information like the credentials that site wants you to prove in the QR code as well embedded there.
So, that's kind of like uh another way we can do it. So, you'd get the prompt straight away. So, that's why that's the QR code scanning example here. We're going to have a look at demo available on our website soon where you can you can essentially have this this flow um and then you can mint like a like a proof of personhood with a unique nullifier. ZK passport. So, then you would um yeah, you'd scan the QR code, it would prompt you for as an example here proving whatever credentials the site was interested in.
Um and we're going to be making this quite granular with a whole bunch of different circuits, so it's you know, you can really really um have very different use cases. So, like for example, a a proof of age NFT perhaps, you just want to prove that you're over 18. And then maybe you'd have like a nullifier as well um so that you can't have more than one. And then later on we'll talk about this concept of like so, there's soulbound. We can't really transfer it easily between different accounts. And then we're thinking more about like uh self-bound where as long as you can prove that you are the person that owns the NFT, then you can transfer between your own accounts still.
But it wouldn't be useful for example on like a marketplace, that kind of stuff. Yeah, and then you you would essentially accept, you would generate the proof locally. Um hopefully it would take, you know, from 30 seconds to a minute. We're constantly working to improve that time to improve the efficiency of the circuits. And as they can make a lot of breakthroughs with Noir, so hopefully we can get that time down. But the actual real limitation on mobile is the memory limit. So, we found that once you get up to about 350,000 uh gate count, and the the RAM gets up to about 4 GB, and that's where you get like a a per app limit, and the app will just crash.
So, you know, it it should be okay if if it takes a minute to 2 minutes, but obviously if you exceed that RAM limit, then you can't even generate proofs, so it's kind of like you need to stay below that limit. Possibly through having uh multiple proofs like sub-proofs. So, we're looking at maybe doing like an outer proof and an inner proof. And then having the ability to swap these out in a modular way. All right, let me just have a sip of water because my mouth is going dry. So, conceptually where we see the current status quo of doing KYC or identity verification as this centralized approach where you have the government
they'll issue the identity documents to an individual who then you everyone's familiar with this, you take a photograph of your passport or whatever it might be. And then you'll send it to a KYC provider who will then do all these like lookups through a centralized database or whatever it might be just to do that that check checks. And then they'll just essentially let the um the service know, you know, are they yay or nay. It checks out or it doesn't. Uh So, the problem with this is the counterparty. And yeah, you're relying on this third party trust.
It's an all or nothing kind of scenario. You can't selectively reveal. This you know, there's easy fraud with this, right? If you can if you can steal someone's photograph of their passport um maybe someone emailed it to you accidentally then yeah, it's uh unless there's a fraud. Third parties will charge lots of money especially if there's all these private database lookups, could be you know, several dollars, five five dollars per KYC. So, it doesn't scale as easily, it's costly and they'll pass that cost onto the users.
Um And I think this is probably the biggest deal breaker in in our opinion is you're relying on these third parties to keep your data safe. And often times, you know, that that goes wrong. So, some recent examples certain projects they email, you know, sensitive documents to the wrong people. Um Here's a you know, an an example I've got here of a you know, imagine this receiving an email one day, it's got someone else's passport or driver's license. That would suck. And so, the problem really stems from the fact that they have that data in the first place and therefore there is always the risk that things go wrong.
Um and another upcoming kind of a concern here is Do you want to talk about this part, Carly? I do. I will be covering that part in the of the how to combat with fraud. It's like under digital fraud because nowadays AI can beat the market with fake IDs so you cannot really differentiate that it's like a real person. Which is why I will be covering that part in the end of the talk how to be mindful about not getting scammed and also how e-passport is addressing the problems of using
IDs like digital and physical IDs to keep it safe in the real life also in the digital life. So I will be taking me back. Great. And yeah, so with this I'm not I'm not sure who's seen or heard about this only fake service. Can I get a show of hands if anyone that's seen or heard about this? Okay, cool. So only one person. Okay, cool. So there's a service that's using generative AI to generate really authentic looking passports. You can pay like $15 and put any information you want and it'll generate driver's licenses or passports. In fact, the journalist that was writing up this article, they they successfully KYC'd on an exchange. I think it was OKX.
Which is interesting. So, you know, in the future you wouldn't even need to actually get someone's passport or IDs. You would just need to know their the key details, right? Maybe their name, date of birth and then you could generate a photo from maybe their Twitter profile. Generate, you know, fake fake data using that. So another reason why the the this kind of status quo now is not really feasible going forward in our opinions. Uh So basically the only real solution here as a government attested digital identity documents.
And the good news is they're becoming more and more prevalent and we're seeing a lot more governments starting to support that. So this is the way that we can we conceptualize decentralized digital identity. Um More like just distributed but essentially the government issues the digitally signed credentials to the straight to the individual. That individual can then use that to generate zero knowledge proofs locally ideally and then submit that directly to the service.
So this is this end-to-end you know, which is great. There's no intermediaries required. Uh secured by cryptography not a photo. And you get the selective disclosure here. So instead of all or nothing uh all through the magic of ZK which we're familiar with. And it's zero cost as long as off-chain. So you know, we have this the ability to do off-chain stuff too, right? It's not reliant on a on a blockchain. Um And we're so we're kind of seeing this as like own your identity, right? It's it gives the power you the power to actually have that, you know, these documents and disclose it on your terms.
And we also we also kind of seeing this as like the digital identity for web3. Um where you know, a lot of yeah, this use case. It's also very applicable for web2 but it would be nice if this was the the sort of paradigm that was used. Um And this could be a bit of a contentious thing to think about but it's, you know, who better to attest to your identity than the same entity that issued you your birth certificate kind of recognizing you as a a human being. And obviously there's Worldcoin and other ways to do it through like the orb. Um but yeah, this is also another way to think about it.
So here is the e-passport certificates hierarchy. So we have uh the top here. We have the International Civil Aviation uh organization that define the standards or ICAO. Oops, sorry about that. Um It's probably a bit small so we'll go with that. So ICAO, they are the ones that collect all these country signing certificate authorities through like diplomatic channels and then below that you've got these document signing certificates that are signed off by the country signing certificate authorities and then finally you have the actual e-passports themselves that are signed by the DSCs.
So that's sort of the the flow the hierarchy and then if you were to like a real world application of that might look like this where you have like maybe you know, up to possibly 10 or 20 different CSCAs for a country then they'll batch them into like maybe 100 or more, you know, actually I guess thousands of DSCs that would then sign e-passports. The reason being that if there's like a leak or you know, compromise of a key, you don't want to have to reissue everyone's passport in the country. That would suck. Uh this is the this is how ubiquitous e-passports are. You can see there's a lot of support in a lot of countries.
And now let's have a look at what information is actually on any passport. So these are the main data groups um that exist. There's a few that are missing here but they're they're kind of the main ones. And you can see even there's like a DG4 and iris photo. Kind of a bit creepy but um yeah, that's that's a possibility as well. There's also like a fingerprint data group three. I believe Japan uses that. So if anyone's been to Japan recently, you might see that they did the like fingerprint scanning. That's so they have the ability to to match it against your actual uh digitally attested um fingerprint from your government.
Um And also when you go into a passport at an airport and you what they're doing is they're they're doing a facial recognition check on this on the fly against your actual face in the cameras against the one on your your passport that's been attested by your government. So So Oh, so the SOD um secure uh data object. I don't know why they did it in that order but that's what it stands for roughly. That's where the actual the signatures reside and the DSC certificate.
So out of these these are the data groups we're really interested in uh with e-passport. So let's drill into those. So the personal information and the the headshot photo, DG1 DG2. As you would expect that's what that looks like there. So it's your photo and your name, date of birth, nationality, gender, passport number, expiry. And then the DG4 10 DG4 15, these are on the secure element of the passport and these are the private keys that can be used for different use cases.
So the active authentication, DG4 15, that's essentially doing like an RSA signature. There are other signing algorithms but that's that's one of the main ones. And the chip authentication public key, that's doing ECDH. Um we're trying to figure out ways currently to use ECDH to derive a nullifier. Uh we're struggling with that but it would be great to do to have that because then you could do things like um that's have the passport sign over like a recent block hash something like that and that kind of is like the the challenge in a way. Proof that you're holding a passport at the time you generated the proof to prevent replay attacks.
Um and there's the the SOD which is yeah, that pertains to the the signature of the passport data signed over by the government and the DSC that signed it. So what are we actually proving in our circuits? We're we're in zero knowledge we're verifying that the passport data was signed by a DSC certificate that DSC certificate is signed by a CSCA certificate and then finally that CSCA certificate the public key of it exists in a Merkle tree. That's kind of the authoritative tree that we're using. We also you know, also verify that the passport hasn't expired at the time of proof generation issued by a you know, valid government. That's the Merkle tree inclusion proof and then also any any other proofs any any other inputs that you have
we can um we can check that exists in the passport data as well. So maybe you have like a a name a first name you wanted to prove. You pass that in as a public input and then in our circuit we'd check that first name is the first name in the actual passport data that was signed over by your government. Um just a I guess a run yeah, a run through of the the e-passport secure element. There's two main types here. In the secure element you've got the chip authentication. This is typically used to establish a secure channel when you're actually doing NFC scanning with a terminal.
So you can you can derive a a shared secret to use for symmetric encryption. Um but we are exploring ways we can try to use that. So essentially what's happening is you're passing in like a uh elliptic curve point and it's doing elliptic curve scalar multiplication using the private key. So we're exploring if we can we can have other ways to do like multiple challenges and to confirm that it's the same value that's been multiplied over and anyway, so we're we're close but we're not sure if it's actually technically possible. So And then active authentication, if a passport supports this, this is great.
Because we can actually have the passport sign over data now which is great. Yeah. I have a I have a question. Where is the information stored? Is it on the on chip on your passport or is it somewhere in the server? This is all local to your passport. On your chip on your passport? Absolutely. Even the the photo? Yes, yeah. So I think the JPEG's like I think when I checked last 22 kilobytes on data group two. Okay. Not super high resolution but Sorry, how big is this circuit because it looks like quite big.
How big is the Oh, yeah. Sorry, good question. Um So we managed to get it proving in about originally a minute and then down to 30 seconds but I used some optimization techniques which weren't fully secure. So So if we roll those back it might add a bit more time to it. Um How many constraints are there like Yeah 400,000. Yeah, we're really pushing the limit. So, what we're hoping to do for the next version, or I guess the first version, is to have uh like sub-proofs.
Yeah, yeah. So, you have like the outer proof that would um accept the like because this is a a snark, we can have like a big-sized verification keys. And then you can pass in the verification keys. Um you could even like, say for example, hash those and then check for inclusion in a Merkle tree. So, that's like a verified circuit. So, we can swap that out dynamically to be able to like have upgraded circuits to maybe optimize a certain signature algorithm um better or add support for a new one. And then we might even have like nested multiple layers. There's like a inner inner proof inner proof and then like the outer proof.
And also by separating these sub-proofs, we can have it not exceed the memory limit of the per app memory limit, which would be great because then it's actually doable on mobile. Just kind of the whole point of this. You don't really want to have the sensitive data leave your device, right? So, that's what we're aiming for. Um it may take a bit longer. So, maybe you're looking at like a minute and a half. We haven't really done benchmarks yet, but it's still better than having a third party see your data. So. Okay, on to the next part. So, to be able to achieve this mobile proving, we have uh we created Swa.
And so, Swa is the combination of Swift and Wasm. And the logo is the the Aztec logo with the Apple logo inside there. So, at some point we may be contacted by Apple um cease and desist. But until then, I think it's going to be great. It looks really cool. Uh so, this is a Swift package for creating and verifying zero-knowledge proofs. Uh done a lot of work on it, but there's a lot of work to do for supporting multiple architectures. So, Android's on the road map. It's kind of weird, I guess, cuz it's like an Apple logo. We might have to rethink that at that point. Um but yeah.
Uh we have a real focus here on mobile proving. We believe that's going to play a big role in the future um because everyone uses their mobile for a lot of things these days. Uh and so, yeah, like I mentioned earlier, that's kind of the limit we're looking at currently. Uh I was expecting some great optimizations with with um Hyperplonk or Honk, but that's like the Suncheck um based folding. However, I think that actually So, it might it makes it faster for proving, but it increases the memory size requirement. So, it's going the right way in one direction and the wrong way in another direction.
Uh so, you know, I I imagine in several years' time the the memory limits on on mobiles will increase. Uh so, we we kind of either have to wait for that or um yeah, stay with like TurboPlonk. This is a code snippet example of of how to use Swa. So, I guess this is kind of the workshop part now. Um All right, at the bottom there if you wanted to check it out. The one that's cut off. Um So, that yeah, this is we wanted to make it really simple. And this is just basically loading in Swa and Berg, which is um Brandenburg in Swift.
Uh so, you can just go out of your way. You can like uh use Swa with any back end. You load up this this manifest, the circuit manifest that's outputted from uh Noir. In this case, you just you're just checking that X is not equal to Y. Create the circuit, pass in the values like this. And then you simply just call um yeah, circuit.prove. Should be that easy. And we're obviously here for the users. Workshop, you just got to see a a live example of that. It was cool. I'm not doing any live demos. That's way too risky for me.
I would like to power award. Uh so, what you can expect from our SDK, this hasn't been completed yet. Running out of time. So, just use your imagination. It's really cool. Or what you can expect would be um and so, this would be like actually using ZK passport. We want to create like a like a JavaScript TypeScript um I'm not sure maybe we call it ZK passport.js. But you know, you plug it into a website. And uh you would allow you and then and then you specify what you what credentials you wanted from the from the user. Um so, maybe you just wanted the anonymous identifier cuz you wanted to have civil resistance for like you know, maybe Gitcoin grants. And then maybe you wanted to also just satisfy regulators and you have like a I'm not from a bad list of countries or I'm not
from a bad list of people. Uh this is the concept of So, everyone's familiar with soulbound. Um but how about self-bound? So, this would essentially be restricting transfers between accounts um unless you can prove that you're the owner. So, maybe like in crypto inside the actual NFT metadata, you have your name and date of birth. So, it's still encrypted, but then as long as you can prove that you hold a uh digital identity document with that same information, that'll be enough to really restrict your NFT like not allow it to be used on a marketplace and and this would be especially handy for like 18+ NFTs, right? You don't want to just mint those and sell them so other people can like
underage kids could buy them and not be over 18. Uh proof of residency, video game characters, that kind of stuff could be useful restricting the transfer between um yeah, different people that aren't the same person. So, what else is possible with ZK passport? We created this cool um prototype on the Aztec sandbox that is essentially uh so, private and compliant peer-to-peer transactions. I think it's going to be a really really good one going forward.
Um it really mitigates legal activities while maintaining privacy. And so, this is my experience with Tornado Cash many many years ago, way way before the sanctions. Just want to make that clear for the camera. Um So, you know, you you come in with your ETH. Uh you deposit it into Tornado Cash. And then you come out on the other side. It's like, cool, great. You know, I have this anonymous ETH now. This is so amazing. It's been decoupled to my identity.
I have that privacy. But then it kind of slowly dawned on me that okay, wait a second. There's nothing really differentiating me now from other people that have been using this service for potentially you know, bad purposes, right? Like arms dealers or North Korean hackers or whatnot. So, while it was really cool, it also kind of put me in a situation where I was like, oh okay. You know. And so, that's kind of where privacy pools emerged from like Vitalik's article about being able to have a slightly smaller anonymity set just by proving that you're not a bad person.
And that's obviously very subjective. So, then um we we what we can do with the first name or the like the full names and dates of birth is we can make use of like OFAC and bad people lists. So, that could literally include um yes, the first name, the full name, date of birth, proof of non-membership in a Merkle tree. This is just like the OFAC SDN list. You can see there's a whole bunch of um naughty people according to the uh the US government, date of birth. And this would be just a like a really really easy check to add when you're transferring um the token around, which wouldn't actually add much overhead at all. And then you might have like this is this is Interpol's red notice list of again list of like bad
people. And I think the main thing this would do is really help to um satisfy governments in in the sense of being it's like having your cake and eating it, too. Cuz I feel like governments aren't going to really love the idea of fully private peer-to-peer token transfers. There's going to be all these issues with um you know, having that regulated. By having this ability to prove this as well, um and by the way, this would be opt-in. So, you'd have all these bad people lists, but you you'd want it in a way where like you can you can actually choose which list you wanted to prove against. So, you can say, okay, I want I'm still completely private, but I want it to prove um that I'm not in this naughty person list. You know, I'm not in this naughty person list.
Um you know, as that that would be up to you to do. And I think that would go a long way yeah, helping uh regulators feel much happier about the situation. So, the other one here is proof of person or civil resistance. And this is using a nullifier. This is super useful for like DAOs that want to do uh voting. Restricting it to to a person while still retaining that anonymous uh anonymity. Uh airdrops, another really cool use case here.
So, that instead of having like someone that has like a thousand EOAs and does like farming on that, um you you could still do it on on like protocol usage and reward them on that, but it would be limited to like one person. And so, maybe someone has two passports, right? But they can double dip, but uh it's still really helping to restrict that. So, let's talk about nullifiers. Or actually, you know, maybe what makes more sense is is proof of personhood. Actually, maybe what makes even more sense and is a bit more user-friendly, we can go with anonymous identifier as a as a term.
Or something I've been trying to get going, we could maybe just call it like an identifier. Just What do you guys think of that one? Cuz it almost sounds like a verb, but um you know, we can't really use nullifiers in like a public-facing sense because outside of cryptography in this space, it's super meaningless to many most of people. Uh so, yeah, this essentially going to be an anonymous identifier that's uniquely tied to your passport. It's going to be always the same for a given passport. It's one of the keys of a good nullifier.
Uh cryptographic guarantee that it's from a government-issued passport as well. That's kind of like part of the proof here. Um and then you This is also quite an interesting feature here. So, with the credentials that you're able to select the ask of a user, we could have it so that it's scoped to a particular service. And that'll be good for preventing cuz if you have like a global identifier, then you could have two different services link the same person, but this would scope it. Um instead of saying that the Peter is actually have like you'd include like, you know, getcoin colon or whatever it might be as a prefix to scope that identifier.
But again, it would be the same identifier for that service every time. And then also replay protection would be a great feature to have as well. And so, we can achieve that um through having the e-passport digitally signed over over data like a recent block hash or a a challenge or a random challenge from the uh the service that's requesting it. So, to which to to be able to use active authentication, which is the RSA uh signing using the private key in the passport, we might just The way that could work is we're just asking the passport to sign over data like this is the ZK passport, you know, it's the ZK
passport, and then the hash of that resulting signature is essentially our nullifier or if it's a scope um nullifier, we'd have a prefix of that service. And again, yeah, the the replay protection. So, whether it's a recent block hash or something like that or even a timestamp, um that could be included as well. So, there might be like a public input of a timestamp, and that's included in the um replay protection. And then lastly, we have this uh social media account verification and KYC. That's a very interesting use case here.
So, KYC, we're still exploring, having calls with lawyers to figure out if that's going to satisfy government, you know, regulators' requirements. Is is the is the ZK passport proof going to be okay um instead of a photograph of a passport? And I mean, technically, it's it's much more secure, right, than a photo, but um there's other things to consider there. And maybe the government doesn't understand it. That's that's another whole journey of building this like, you know, understanding. Uh and then social media verification is kind of cool. So, you're seeing this on services already, um but you know, it'd be cool to have like you could have like a badge saying, "Yeah, this is this name is verified by
ZK passport." Maybe an extension on email. I don't really see this happening realistically, but you could take In a way, you could have a header with ZK passport proof saying, "This is actually like the name of the sender in this email as a way to prevent like spam um and bots and and whatnot. So, recently, I came across uh this from Meta, where you can like get been verified with Meta. This is kind of when they copied um copied Twitter or X. And they're essentially doing the same thing, but they're getting you to send a photo of your passport to them.
Um and they pass the cost on to you. So, that I think you know, maybe they're doing it manually or using OCR and some other techniques. But effectively, it's the same thing, and that's how they you get a little verified badge, and they they say, "Yes, this is the same name on your government passport." This would all be automatic and zero cost if we use the end-to-end approach with proofs. It's literally a government attesting to your like your first name, last name, and then you can take that proof to a even like a decentralized social network, right? Like a Farcaster or something like that. And uh I'm going to hand it over to Carly for Anatomy of Scams.
Okay. So, I will be talking about a bit how we get scammed in physical and digital. Uh So, the thing is, how many people got scammed here? Hopefully, not many people. No? That's so nice. That's so nice. So, we will be delving in how it's happened and how psychology behind it. The first thing first, over-sharing personal finance information socially and even with friends. Uh like we tend to share lots of things about our personal life I'm guilty of over-sharing with friends.
Yeah. So uh this thing uh can this seems a bit innocent, but it is not. So, people can know that you are having like a huge assets. So, maybe other people know about that, too. So, this is very important thing to keep it yourself, not over-share because like in socials, you can say, "Oh, I have like 1,000 millions in my bank account." So, you will be targeted by these scammers. This is like for sure.
So the second thing, uh like scammers also go for the people whose emotion and their vulnerable to uh fraud like par- People get uh paranoia when they have enough like more assets in their accounts like in their like wallets. So, they they become obsessed and uh some of them, not all of them. Speaking about like specific group of the people. So, they are um developing paranoia to over-protect their assets. So, this leads them to do like a bit insensitive actions, which is why that we also make sure that we do care
about that much. And the other thing is lack of crypto education. So, people don't know they are not enough educated about the tools they are using and also like what they need to share, what they they shouldn't share with these services. So, I think all of the room are agree with me, too. We need more crypto education for the people that starting it like using wallets, using the protocols, and using the anything like related to bridge to web2 to web3.
So, people need more uh education in that part. Also, in the ZK side like maybe uh room is like uh more aware of how ZK works, but still we need to tell the rest of the world that ZK is the uh like best tool that we can protect our privacy, and also we can help government to comply with ourselves and comply with their rules. So, it's like a win-win situation, and also it's like holy grail of both sides. So, I will talk about a bit um real cases.
So, you will see in the like terrible cases but it's happened. So, we will be talking about that. So, this is one of the case that addressing physical document fraud. So, take that you have you over-shared your information on the socials. So, people know yeah that you have money. So, people find your address, and they bump into your house, and they get your document, and they they are experts, and they went to like uh a place to replace your biometric photo on your document, and they went to the straight to carrier, your uh like mobile carrier, and they
replace they requested new SIM card. So, the carrier doesn't know that you are that person because the I dropped my phone on the floor. Yes. Yes? No, maybe they use like an service. I don't know that. It's like This is real case by the uh by the way. It's like um I'm not a policy police. So, people are reporting the that kind of issues to me. So, this is one of the case that reported to me. So, the thing is um carrier doesn't know that you are that person. So, they can give SIM card to that person that uh like pretending to be you. Then they breach the 2FA.
Then all the assets being drained from the account. Actually, this is not a big exchange. This is a Binance example. So, the next one, this is like an example of physical ID fraud. Like they physically take your ID to work on it. And this one is a bit I something that we are dealing today like it's uh only fake in on like digital uh is like more more worse than the physical one.
So, in this case, uh the victim, I should call him victim, uh he was like a a bit paranoid about his uh assets because he was holding too much money in his account. So, he he got like fishing mail uh to pretend that they are from Coinbase. So, then uh he upload his document to the Coinbase. He thought they are from Coinbase, but they were not. They were scammers.
So, he upload his all uh documents. So, they got his document, and they requested SIM uh SIM replacement from his carrier online. In UK, you can do online because this happened in UK with Coinbase. So, even like you don't need to go to physical store to request SIM card. So, they get SIM card and they breached 2FA. So, they drained the wallet at the end of the day. So, what I'm trying to tell here is like it's all about like psychology is linked to the fraud history, which is why we need to be like careful about
oversharing, being overprotective of our assets. Also, next thing is like ZK passport is like helping us to also be in the secure side. But, most of I'm a huge advocate for the owning your identity, not relying on the anyone in like in web 2 and web 3. Because I am former Apple employee, so this means that we don't think privacy for the whole of the world, but in the background still not like 100% privacy and security security, which is why we should own our identity more than anyone else. For us, doing for us.
So, one of the proposed solution proposed solution is our verifying government attested identity documents in ZK. So, we are doing that at the moment. So, another thing actually we are really considering to doing ZKML to calculate face fingerprint, like mapping the face and also adding to ZK proofs. So, of course the secret size you will be asking for the secret size. Okay, we will be trying to we will be doing our best to get scanning in the under 2 minutes, I guess. And Yes, and the
Another thing we can do is also app attestation in iPhone using SGX, like secure enclave. So, also this is another uh like opportunity to try. So, we are also exploring that side. And the next we should be We can do two face fingerprints, so we can match using statistical likelihood tests. So, it will be also checking that it's past if it's same person is not.
And yeah, this is also confirm that person is holding the passport and person is the one in the passport. Yeah. So, this is all from me. If you have any questions, please just ask, because these are like real use case and I know it's a bit age, but it happened and it's happening. So yeah. I was going to ask earlier like like what if this is really Um Yeah, so earlier I was just going to ask you like I could easily like take your passport and just scan it on my phone through the app and
literally have it. So, I assume this is at the point you register with the app or is it at the point where you would create the proof for some service? Like where would be where would those flow? Yeah, so the flow of this, the way we see it, so you'd use ZKML on the photo on your passport that's been attested by the government to generate like kind of a face fingerprint. Similar like the iris the iris code for Worldcoin in Europe, but this would be like a you know, a facial fingerprint of your face. And then the other part would be um having essentially a like a liveness check with your with your phone your iPhone that could check like get as well and make sure it's a real real time like scanning your face. And then using this app attestation service
that exists from Apple, you would then be able to like use the secure element on your iPhone to generate a key pair to sign over that data. And then what happens the next part of that is you can send that to Apple servers to verify that it actually was signed by a key pair that was derived from like Apple's in a sense. So, we'd have a chain of trust there. And this this key ID is proving that it's from a genuine Apple device. So, I mean short of like jailbreaking Apple devices, it's it's got that SGX like kind of characteristic where it's gives you that kind of assurance that it's from a genuine untampered Apple iPhone. And then you can compare those two face fingerprints in zero knowledge. So, you then you have the the
guarantee you know, strong guarantee. It's possible you could break the iPhone, but you have a guarantee that it's the same person that had this face scan at the time that's on the actual passport. And at the same time you're not even revealing your photo. This can all be done in zero knowledge. Does this happen like at the point you onboard into the app or um or every time you create a proof? It doesn't happen at all currently. But yeah, that would be No, I mean in the future, yeah. Like what's the Yeah, yeah, for sure. This could be But still still got still your phone and just do verifications right? On my face?
Well, yeah, if if it doesn't happen when you do the verifying process, then you can still do that. So, like if the service was requiring also you to have like an actual liveness check, then that would be needed to be included in the proof for whatever the service. So, like levels of security, right? Based on whatever the service requested. And in the SDK they integration they just include also we want a liveness check. The difficulty currently we're still exploring this, but you need to actually send like the signature the signed signature and and maybe it's over a hash to Apple servers and then they give you a response saying, "Yeah, that's from a genuine Apple device." Which sucks, because then it's not really easy to like put that in the proof.
So, maybe there could be like an MPC kind of solution there. The the you know, where you have like the TLS notary approach and you're looking at the data to Apple servers and back. requires that you're always online, right? Cuz if you send it to Apple service you're using the service. So, like if you're verifying for a service, then you can do the liveness check at that point in time. And maybe it lasts for a certain duration. What what whatever these can be parameters that are tweaked. Cool. Thank you. Oh, yeah. Please. Thank you very much.
From the examples you have given so far and the discussions, like for example Worldcoin, like they have a really creepy business model and Yeah, yeah, they do. You're okay with that? Well, You're recording Sorry. Cut that out. Cut that out, yeah. Um so, they want to like fully and they help Agenda 2030 like social credit system. Same goes with the Meta. The impression I got is like you are building decentralized tools and give power to the government. Maybe it can be abused. You know, I agree with you.
What is your opinion on how you going to fight it like government maybe abuse the technology? Yeah, good question. First of all, I just wanted to to also say I think you know, Worldcoin what they're doing is noble pursuit. How they're doing it, that's up for debate, but yeah. To answer your question, I think having as many parts of this to be opt-in as possible, where it's like you have you know, different countries they can be responsible. They're already issuing you these digital documents anyway. So, we're just going to piggyback off of that and making use of that, but adding zero knowledge magic and verification of signatures in in that zero knowledge to be able to then have these cool use cases that wouldn't really be possible otherwise.
Um and with the the sanctions list, um we're going to try to we might have like official registries of like bad people's list or whatever it might be or like you know, G20 country list whatever, but we want to keep it opt-in, so you get to selectively you know, you can you can choose which list you want to prove against. Um so then you know, no government can kind of slowly creep and have more power on one particular list. So, it's similar to like I suppose the Uniswap front end, where you can have like lists of tokens, but there's you can still the protocol level do what you want kind of thing, yeah. You're not like fighting with them, like collaborating. Yeah, cool.
So, um some other So, when we do launch at some point very soon, we're going to have an NFT that you can use as a like a a really cool way to showcase the tech. So, with you can maybe it's going to be like a ZK passport NFT, where essentially like anonymous identifier proving you have a genuine passport. And then also there will be cool use cases like this proof of age NFT or even like maybe a country NFT that's just ex- just exposes the country. And then there's cool compat- composability value that you get out of that. Like for example, maybe a forecast channel that's limited to people that hold, you know, a Greek, you know, NFT or a UK NFT that's more like a
I don't know. Like a 20 30 years old 40 years old. Like channel. It could be you know, there can be all these different possible interesting use cases that emerge. And then you have the flow would be similar to like yeah, you would then pick one, scan the QR code. Um So, I think we've come to the end of the workshop or talk shop. Um We're currently building our team. Yeah. Yeah, we are a team of two and we are currently looking for people to get excited about ZK passport and join us for building.
So, if you are interested and if you think that it's so cool and I want to be involved, just come and chat with us. We are happy to hear and the rest of the um talk show. Uh yeah, we can help you to scan your identities if you want, because it will not leave the phone and we can delete after that. So, if you want to try, Michael and my phone is available to to try with the document and we are happy to do it. We promise that it's going to stay secure by the way and there's no network connectivity on this app currently. We ideally we wanted to have a test flight link we could share with you all. Didn't get around to having that yet. Um so it is really cool experience to see
your like your passport data come up on the phone. It's like really cool and then we can delete it straight away. We can promise that we're not collecting it. So assuming we'll have an actual uh test flight public link available so you can try it on your own trusted device. Um and also that's the correct email cuz I haven't set the careers one up yet. Um but yeah also please feel free to cut you know come in and chat with us at at this event and and just talk about this stuff. Um here's our X account. If you wanted to follow us when we do have the test flight available.
We're aiming for like next couple months which would be really cool. Um yeah we have I mean there's 5 minutes left but any questions? Or an applause is great too. How about Yeah okay cool. Awesome. Thanks for attending guys. I appreciate it. Come and say hi. Cheers.