# Ensuring Privacy in Digital Identity to Prevent a Dystopian Crisis

- Speakers: [Jordi Baylina](https://streameth.org/speakers/jordi-baylina), [Oleksandr Brezhniev](https://streameth.org/speakers/oleksandr-brezhniev)
- Channel: [Devcon 7 SEA](https://streameth.org/devcon_7_sea)
- Date: 2024-11-12
- Duration: 23:47
- Watch: https://streameth.org/watch/6733207e3a168eb53546fce2

## Description

This talk will explore introducing a method for privacy-preserving proof of user uniqueness in contexts like elections using DIDs, ZK, and VCs for verifying credentials without revealing unique identifiers while ensuring compatibility with multiple trust sources. This enables self-sovereign digital identity, allowing selective disclosure of verified credentials while protecting personal data, supporting privacy-preserving KYC, sybil resistance, compliant access to financial services, and more.

## About the speakers

### Jordi Baylina

Non-Executive Co-Founder and Technical Advisor at Privado ID


## Transcript

Hello everybody, I'm Jordi Bailina, I'm Sasha from PrivatID. What's digital identity? To make it easy, digital identity is when you sign into a page, actually you're using your digital identity currently digital identity is Controlled by very few corporations your Facebook Twitter and so on just a side note Here in the web 3 means not even governed by governments I mean governments here could be a good allies to implement self-sovereign identity because probably governments they don't want to give the identity to these big corporations so it's very far it's fragmented I mean it's not very fragmented but I mean there is four five four five six seven big corporations that holds most of the people's identity and this from in addition and other things this gives us a really bad UX. I mean, I'm sure that maybe not here, but a lot of users have problems with passwords, and managing passwords, managing connections, emails, and all this kind of digital identity. So when we go to Web 3 and we are building dApps, actually we need identity too. I mean, we have the two exceptions. I mean, when you are transferring funds, maybe you don't need an identity. You just, well, you have some sort of identity, which is an account, but you don't really need identity. But if you want to do any other application, I don't know, voting, or you want to do, connect to a DAO or something. You will need some sort of login. You need some sort of identity. So we need identity in the Web3. And when we go to identity in the Web3, we may end up doing very much the same. If this is controlled by very few corporations, then what is happening is that it's even more fragmented and the UX is even worse. And not only that I mean the digit when we go to the center lights there are other risks and other important things that are happening of course we have the the privacy thing if we are publishing data this latter can be leakage easily and there are a lot of challenge that we need to solve on that. So how this solution needs to be? Of course, it needs to be self-sovereign. I mean, it needs to be decentralized. Each one needs to hold their own identity. And you are kind of a server of your identity. I mean, you are the identity. The protocol privacy needs to be by default and by design and by design in privacy needs to be here is where zero knowledge is important I mean the centralized identity without zero knowledge is impossible to make here I want to do an a note and is that the zero knowledge technology has been evolved a lot if you in the last in the last years if you, if you just go back three years ago, it was difficult to build identity systems because you end up using your own cryptography, you end up using, I mean, you had to do identity in a specific way so that you can apply zero knowledge. Currently, the zero knowledge technology, and thank you to all these layer tools and all this evolution that happens in the last year, it's much more powerful, much more faster, and it's perfectly possible to use normal cryptography. That means that you can use current attestations, I mean, the signatures of the governments, the signatures of the organizations that are already happening so a lot of attestations real attestations that are actually happening you can use them in zero knowledge you can build these decentralized database of that is attestation it's a single database where everybody just share such as just have access to a small part of that and then you can single source of truth and then you can prove things around that and finally of course this needs to be a open standard simple standard it will not come for big corporations it will come from the roots it will come from the like TCP IP I mean this needs to be something that should be simple so as an example of hope to connect this identity to these signatures, to these attestations that already happen in the world, I'm going to give the word to Sasha that will explain the work that we are doing in Privado ID. Sasha. Thank you. Thank you, Jordi. So, yeah, what's Privado ID? Privado ID is a self-sovereign identity solution, but also it's a middleware. It's an infrastructure so that you are able to build your own applications that have identity, that can work on different chains, multiple devices. And it's based on industry standards. It's based on W3C, DADs, and verifiable credentials. So it's an interoperable system that you're able to use and build on top of it. And also it's powered by zero knowledge proofs. So whenever you are using it, you're not sharing your actual data. You're sharing only proof that you're eligible to do something, like you're over 18 to purchase liquor in the store, yeah? Without providing whole document, without sharing your picture, without sharing your actual date of birth, your passport number, and so on. And key features that we have is that we are unifying this fragmented identity. We are bringing all different chains together, we are making it work on different multiple devices at the same time. And also, we are unifying Web2 and Web3 systems. So it's usable on the apps and on your regular applications and also on regular stores where you would go and buy things off-chain, offline. of chain offline and very important that for many things you need to do it only once like if you go and ask you I see you would do it only once then your credentials your data would be stored on your device under your control, and you would be sharing some pieces of it on request. You would be sharing just proofs, for example, that you're over 18, as I said, or maybe for some cases you would be selectively disclosing some data. Maybe it would be, for example, seat number in your ticket credential, let's say. Yeah, something like that. And we have two other very important features and very useful. One is privacy-preserving proof of uniqueness. And another, decentralized trustless issuance, where a smart contract is issuing you credentials. So that's why it could be trustless in terms that you are not trusting any specific centralized authority to issue you credential. You can do it on-chain in a decentralized manner, but also it could be done in privacy-preserving manner. So how is this proof of uniqueness working that we have? It's based on credentials. It could be different kinds of credentials. It could be biometrical data, yeah? But also it could be like phone number or credential that you have from your employer, that you are employee. And then you can use it to do, for example, voting in a company anonymous survey without disclosing who you are and without doing your iris scan to prove that you're unique, employer already knows that you're unique. It can control this data and issue credential. And then you are able to use it to prove uniqueness without disclosing who you actually are. And do specific action only once, like voting. And it's not only limited by credential, so you can use it on a specific credential for a specific use case, but also we have a special way to distinguish between different sessions even inside one application for example if you are doing multiple votings um or multiple surveys give a different context for the user and nullifier, your unique identifier for this purpose would be different between each session so that you would be anonymous, it would not not be possible to track who is actually voting between these different sessions. And as I said, there is different use cases. You can use it even for nationwide voting. For example, it could be based on a biometrical document like AdHardCard, and then you would prove that you're unique and you're eligible to vote and count this vote only once. And decentralized trustless issuance is a feature that allows you to do this in a privacy-preserving manner so that even there is no centralized issuer that knows who you are, so that issuer would be able to track who is acting and possibly de-anonymize you. So now I will show you how it works. And first demo is just a simple, very, very simple application where you are able to prove that your ownership of Ethereum address. So you would receive a credential that you are owner of Ethereum address. So what you need to do is actually you're just authenticating to the system, and then you send a transaction, and that's it. Credential is issued. Data was already on chain, so nothing needs to be additionally proven. So, it's very simple. And voila, you have a credential. In the same way, we can do balance credential, proof of ownership of NFT, or any data that is available on-chain. And now I will show you a demo of how it works with AdHardCard. So we have integration with a project by PEC, AnonAdHard. And big thanks to Yanis from AnonAdHAR who helped us build the first proof of concept and we are now iterating over it and improving to embed it into our solution. So what is happening now is that maybe some of you had interacted with AnonadHAR to get a cheaper ticket to DEF CON. So you would essentially scan a QR code from Adhar. And this QR code leads to a data that is stored on government website that is fetched to you. And then zero-knowledge circuit is running on your site and verifies that this data is correct and issues you credential. So this credential, it's on your device. Actual data is not leaving your device. It's there. And zero-knowledge proof is generated on your device, not on some server or issue or software. And, yeah, that's how it works. So you receive a credential. Initial generation takes a bit more time, but later you can use it very quickly and easily. And that's how you can create a query to this credential and use it for, for example, for voting. So in this example, I'm creating a request to prove that you're over 18 and that you're a unique person based on a non-ad hoc credential. I need to fill a few fields, including identifier of the issuer. And then we see wallet interface. So previously I was showing you mobile wallet interface and right now just because we have a multi-device experience if you have created your wallet with the same Ethereum address, then you can use it on mobile, but also in the web. So you are generating proof based on that credentials that you have received, and hola, you proved that you are over 18 and that you are a unique user based on your anonymous ADHAR credential. Thank you. Thank you very much for giving us a tour of digital identity. I'll get you to stand over here and we can go into the Q&A. So there were quite a few questions. So we can take a look at them here. So with selective disclosure, how do you prevent abuses from services asking you to share all your data, even if they don't need everything? So, yeah, like I think the example with the passport is a nice one. Why not just say, like, okay, so what's your passport number and your date of birth and your first name and your last name and the code, everything like this. So how do you prevent this? This is more a challenge of UI than actually technical. All the data is yours. So at the end, because you are holding the data, here is, I mean, you are going to give the data only if they ask to you. Here is more about the wallet. And so you hold data, and it's about the UI that ensures that, so that interprets the query that they are doing and tells very clear to the user exactly what information they are giving. Here, again, this is not easy it's a UI it's a UI UX challenge here of course a lot of social hacking can be but and that's something that's relatively new because I mean we are users we are not used to hold data in general. But this is something that here, UI, it's a lot of work in private ID with developing the wallet. We have been working really hard on this front. And I tell you that's not easy. But there are ways that a lot of things that can be improved. And there are ways to do this thing. Maybe you can warn the users. You're about to leak everything if you allow this. Cool. So another question. If we want to apply this at organization level, can we have shared verifiable credentials among multiple organization members? Right now, we do not support identities for organizations, but we are working on this. We have a few ideas how to implement this, and that would be in future releases, yes. Nice. But what's clear is that, I mean, and this is the thing, I mean, the identity is one, and then can be many organizations that can do claims on your same identity. And the other thing is, so this is the way to go. So it's like, and have like many claims working in your identity. Even you as an entity, you can do even claims, which is something that in the legacy world doesn't even need to happen. There is a lot of things. that in the legacy world doesn't need to happen. There is a lot of things. All the interactions that the humans are doing, say serious interactions, they can be converted to a claim. I mean, anything that you are doing. You are accessing to a web page, you can have a claim on that. Everything can be converted to a claim, and then you can prove. You can use that to prove something. You can put that in a database and do a query on this database, and you can prove something. You can put that in a database and do a query on this database and you can prove that, I don't know, you accessed 10 times this web page in the last month and you can do things like that. Yeah, have different tokens and things. I mean, they do this sometimes. So how does it work if I lose access to the keys? Can I export them? Yeah, basically you need to backup your keys, yes. But Basically, you need to backup your keys, yes. But what we are trying to solve right now is to be able to onboard Web2 users, we need something that is not key-based. We need a social login or this kind of login systems to work with your identity and we are working on enabling users to control their identity with regular existing web to login systems yes it's important to mention that so sorry means that you are holding your keys maybe you want to delegate this keeping to somebody else, but the first thing is that you should be able to choose. That's the first thing. So that would be the first condition. But even that here requires a lot of education. This is very much like holding the keys of your Ethereum wallet. I mean, you need to be responsible. So here there is a lot of usage uh learnings in their social recovery is the the other point which is also an interesting topic uh yeah but this is a way to go is in that direction yeah so i also saw some other yeah like ck email and things like this are doing like the account recovery and all sorts of interesting privacy preserving ish ways of doing maybe you don't do it for your millions of Bitcoin that you hold but for other accounts I think it can be good. We still have another minute or two so we can go through another question if you're happy to. How does it work? How does it compare to WorldID? Does it also use Semaphore? It's different. We are not using Semaphore, but it's also based on Merkle trees, just like Semaphore is a Merkle tree, essentially. But we are using it a bit differently. And yeah, I think the biggest difference is that compared to WorldID, we have many issues. We support all EVM chains natively. You just need to deploy a smart contract and you would be able to verify proofs. And we have all different kinds of credentials, not only your IRIS data that somehow is stored on their side and then you have a credential that, yeah. I think this is a super interesting point, especially for like the cypherpunk crowd who are the type of community, I think, who does like to reason between these different types of... Because I think it's quite an important point, actually, that there are multiple issuers. I mean, there are different ways to do things, and which is good for your application or another, and it's good. Sema4 is a good example of these legacy days where you need to use a specific cryptography to do identity. The cool thing now is that you can connect to Semaphore for example. I mean of course you need to implement it and maybe it's not worthy but you can connect to Semaphore the same way that you can connect to the government provider or a passport or email from someplace or or even I mean you can connect to different sources of attestations including semaphore I mean it's not an exception in order to have a claim in order to use this claim in order to build the proof you want to prove something you could prove that you have some account in semaphore and maybe a government ID and you can put that in the same circuit and And this is possible, thank you, to zero knowledge. And this is what is happening right now. I love it. Very cool. Well, that's all we've got time for. But, yeah, thank you for being the final talk in the Cypherpunk and Privacy session today. Thank you very much again. If you'd like to thank the speakers. Thank you.
