New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Doing Decentralized Identity Right with Kelvin Fichter

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

In this talk I'll be describing the Right Way to do decentralized identity: attestations. I'll explain how attestations are a fundamental building block for identity and how these attestations can be combined to derive useful information both on-chain and off-chain. I'll even get into Zero Knowledge proofs, this talk has a little bit of everything! And since theory is boring, I'll finish out the talk by showing off how the Optimism Collective is applying attestation-based identity to create a human-centric blockchain. https://twitter.com/kelvinfichter Kelvin Fichter Benevolent Chaos Monkey The Optimism Collective Hi, I'm Kelvin. I've been working on L2 related things since 2017, first on Plasma and now on Optimism with the Optimism Collective.

Transcript

Okay, this talk is called Making Identity Decentralized, right? Uh Identity Decentralized, right? Uh , a guide to becoming a hive mind or whatever. And of course, by " hive mind or whatever. And of course, by " good" I mean what I personally think, because what I think is right.

Sorry, I'm going to complain about a lot of things in this talk. What are they going to do about it? Good. So, Sybil attacks are the worst, right? So, this is you.

You are, you are in a field. You're happy and oh. Oh, what's that? Oh. Oh my God.

Oh, those are Sybil attacks, God. Oh, those are Sybil attacks, right? It's terrible. That's right, that's what happens to everyone. This is how life in crypto happens.

Um, and Sybil attacks are fundamental in the history of crypto, right? So we have something like money and we want to break it down and turn it into decentralized money or whatever. So, how do we do this? So we have different nodes and these interact with each other. And then, you know, they have to come to an agreement, right?

Because they have this decentralized view of the state of the system. So how do they reach an agreement? Well, at the end of the day, all blockchain systems use voting. So, how do we vote? Right?

So, uh, let's give each person one vote just for being a node in the network. Um vote just for being a node in the network. Um , that is, and then we want to add lack of permissions to this system and now we have a problem, right? Oh now we have a problem, right? Oh , no.

Oh, the Sybil attacks are back, aren't they? Because if we only give each person one node, uh, one vote, then people just create a bunch of nodes and the voting doesn't work. So that doesn't work. So, uh, what do we do? Do So, uh, what do we do?

Do we solve the identity problem? No we solve the identity problem? No , of course we don't solve the identity problem. We simply make everything bureaucratic because it's the easiest thing to do. Because what does decentralized, uh, non-state money say, like government-imposed private property laws?

That seems like the perfect way to manage our decentralized systems. That's what we have. So, plutocracy is bad, right? I mean, we all can, I don't really have to, that's the slide I don't have to explain why, uh, we want identity and. And perhaps more clearly, we want decentralized identity.

And we want that so we can, you know, take the Sybils to the back, and bam the Sybils to the back, and bam , you know what I mean?, and get rid of the Sybils. Well, oh, and of course the Optimism Collective, sorry, I forgot to introduce myself because I don't have much time here, but anyway, the Optimism Collective needs a decentralized identity because, ah, the whole collective is designed not to be purely bureaucratic. So not to be purely bureaucratic. So , we need it.

Ah, we have this, here's the collective and we split it in half, so we have these two chambers, the token chamber and the citizens chamber. And the Citizens Chamber is supposed to be a one-person-one-vote system. So, um, we really need it. And then, really need it. And then, how do people actually do this nowadays, right?

You have things like Proof of Humanity. You know, you sit there and send a video of yourself saying something and then people can challenge you, and there's something like Bright ID. You sit on a call with a bunch of other people and we use our faces like, uh, as identification, whatever, and then there are a thousand other things. Um, and then there are things like verifiable credentials and DID and all that stuff that I don't understand, and honestly, I don't know that I don't understand, and honestly, I don't know , people have been working on this for about 5 years and nobody uses it. I don't understand why, or who validated any of this, and there are entire blockchains dedicated to it.

I don't know, whatever . Sorry, I'm making people angry right now, but that's the reality. Um, okay. So, I think it's pretty obvious that we can't rely on individual protocols to establish identity. Things like, you know, recording a video of yourself.

AI will immediately deceive that . Have you seen the "deepfakes" of Donald Trump and Joe Biden playing Minecraft? They're pretty good, you know Minecraft? They're pretty good, you know ? It's easy to fool and also difficult to update if we say that our identity protocol is to sit on a call with a group of people, because then AI wins.

So, what do we do next? We need to find something new, and it's really difficult to replace it. So I do n't like protocols that rely solely on these unique signals rely solely on these unique signals . And this brings us to what identity is, right? Like, who am I?

You know, I am like the sum of my friends, my job, my government, my social activities and, well, thousands of different things that make up who I am. This is what identity is. It's not about whether or not I appeared in a video call. These are the relationships I have with the world. And that's why we want lots of signs.

And I think Gitcoin is currently doing quite well. As you know Gitcoin is currently doing quite well. As you know , a point in favor of Gitcoin for its Gitcoin Passport system. You have many Gitcoin Passport system. You have many , many, many different signals.

But at the same time, I'm giving a thumbs down to Gitcoin because I don't think it's enough. I don't think it's nearly enough. How much time do I have left? Eight minutes. Come on.

Good. I say we need to delve deeper. Testimonies. That's how it is. In fact, I forgot to make this slide.

So I was sitting there 10 minutes ago and decided to put on some clip art because it was all I had on hand. Um, a simple system of attestation where one address speaks about another address regarding a subject. That's 32 bytes and then there's a value that explains what the actual attestation is. So, instead of so many crazy things outside the chain, let's just put everything on the chain. We already have layer 2.

It's cheap. You can do whatever you want. So we just dump everything into the chain and then things get really interesting, right? So, interesting, right? So, what kind of attestations can we make what kind of attestations can we make ?

We can do things like the events we go to, the friendships we have, jobs, experiences, skills, hackathons, events again, trips, meetings, and what I eat on a daily basis. And, well, if we focus on this at the base layer, we only focus on attestations, nothing about identity stuff, nothing like that. I don't want to focus on identity at the base layer. I don't think it makes any sense. So I think we can get some interesting properties emerging, right?

So if we have a chart of attestations, a chart of things that addresses say about other addresses, you can suddenly derive interesting information from that chart. And that's the real value of this, right? Here 's an example. Let's say there are testimonies about me in this system. For example, I work for Optimism Collective.

I go to hackathons. I am the implementer of a lot of different smart contracts. You know, he's probably an engineer within the group, right? This is a very simple example, but let's say we have more complex properties, right? What kind of things can we, you know, derive?

You can really derive whatever you want. And the argument is that you can form identity models simply by deriving information from this graph of relationships that we put in the chain. So, you know, obviously that's much more complicated than figuring out that I'm an engineer, but I think if you can extract enough signals from this system, you can form an identity. And when you see this set of arrows here, you know, when I say a set of arrows, what I really mean is specific algorithms. Specific algorithms that analyze the attestation graph and make decisions, right?

And they arrive at results, at conclusions. And the beauty of algorithms is that algorithms can change. We can take an algorithm and say that this year this is the collective's identity algorithm , but next year we can say, well, actually these signals weren't so good for establishing identity and we can simply change it like that. It's much easier for the collective to simply decide that this is a much better model for identity and that these signals really didn't work. The other amazing thing about algorithms is that they can be tested, which means we actually can, where's the slide?

We can use this in the chain, right? Algorithms, you know, we're in that world now, and if you work in layer 2, this becomes very clear to you: you can test traces of algorithm execution. You can take a program, break it down into parts, and then test each step along the way. You can test the result of the algorithm, and you can usually test it much more efficiently than by actually running it. That is the key point of ZK systems.

So you could take an arbitrarily complex algorithm on the attestation graph that achieves this amazing result of, you know, analyzing thousands and thousands of signals, and getting a value that says with 99% confidence, "I believe this address is a real person," and then you can test that result against an on-chain smart contract. And now a smart contract can also access that result and make decisions, saying, "You know, I want to give you access to unsecured loans because this algorithm believes you are a human." Obviously, we need consent and privacy we need consent and privacy . Whenever you talk about putting a lot of things in the chain, you have to have this. Certain things are simply not inherently private.

I think that's fine. Like private. I think that's fine. Like , you know, how I see myself in this scenario. I mean, unless I'm trying to be anonymous, it's not a private thing.

So there are certain certifications that I think it's fine for them to simply be public. If you're going to perform public interactions on the chain, you're making public interactions on the chain. I can use that data. I can do whatever I want. Some things require consent.

I think it's perfectly reasonable to create a social norm. Here we go. What if I approach you at a conference and say, "Hey, can I create a certificate that says we met at this conference?" That seems like an acceptable social norm. And you don't want a situation where I just say "that person was at the conference," that's weird, creepy, and things we should probably avoid.

And then, obviously, many other things need to be private. Things like my medical history should probably be private. But maybe we want to find out how to use, well, maybe not my medical history, but other things in the chain. And this is where I'm going to take the easy way out and say: solve it with ZK. It's a slightly joking answer, but it 's also the real answer.

Whenever you're looking for ways to link different addresses and certifications without revealing which address owns what, the reality is that you need some kind of zero-knowledge system. Whether it resembles a zero-knowledge system you 're familiar with remains to be seen. But the essence is that you can link information between different addresses without revealing which addresses you actually own, allowing you to dump information into these fictitious addresses where nobody knows what they are. Where are we? Okay, we're underway.

Good. Yes, 2 minutes we're underway. Good. Yes, 2 minutes . So, you know, a decent amount of time .

So, you know, a decent amount of time . Very good. So, uh, Optimism, the Optimism collective is here. We really care about all of this and we're going to work on it during the hackathon this weekend. We have this called an "attestation station," which is simply a simple place to create attestations, read them, and extract all sorts of interesting information and data about the attestations that have been recorded in the chain.

It 's available now. We are offering many rewards. We are offering a lot of advice. That's how it is. Have fun.

If you scan this QR code, you can go to our website, where you will find much more information about the rewards, how the "attestation station" works, how to use it and everything you can do with it. And if you want to talk to me later about what you can do with the attestations, let me know. I truly believe this is the right way to manage identity in a decentralized context, because it is very, very flexible and can change over time. I think I went too fast, but it's okay, there's one minute left. We did it .

We did it. Thank you so much. It was a bit chaotic, but we made it to the end of the slides, so thank you. Thank you for staying tuned.

Automatic transcript — names and jargon may be misspelled.