Ethereum's Identity Layer 👤 Impact of Ethereum Summit - Wayne Chang
ETHGlobal·Sun, Oct 9, 2022, 12:00 AM
Join Wayne Chang of Spruce for a talk titled "Ethereum's Identity Layer" - Part of our Impact of Ethereum Summit ETHOnline is our biggest event of the year! Collaborate with thousands of developers and creatives from around the world and win over $300k+ in prizes! We're bringing in 30+ of the biggest teams in web3 to give you access like never before. Learn from ecosystem leaders and build your biggest ideas as the merge nears reality. The future of Ethereum is being written right now, and it's time to make your mark. --------------------------------------------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com #ethereum #web3 #blockchain
Transcript
foreign [Applause] [Music] is by Wayne on the spruce team and Wayne's gonna be chatting about ethereum's identity layer exactly kind of what that what that's implying so uh maybe without further Ado I don't want to spoil anything so maybe I'll just invite Wayne up right away um and Wayne when you're ready feel free to uh to kind of share your video your bike there you are nice to see you um and yeah really excited about this I mean I think you know identity is one of those things that the ecosystem has been working on for a very long time um and I think especially over the last like couple years we've gained I think a tremendous amount of clarity on like what that can look like and what are the kind of different outcomes and impacts of having a fully decentralized and then they can be um so maybe I will spoil anything but maybe just kind of hyping up this conversation a little bit uh it'll turn it away for that yeah and I think from if you've been listening to Tina's talk uh she does refer to this identity layer that stretches across on-chain activity also stretches across off-can activity so I hope to just add to the discussion with what that identity layer can be how wide and encompassing it can be and how we start thinking about it awesome I'll let you share your screen when you're ready yep here it is so ethereum's identity layer let's start with a pretty high level what is identity uh this this you know it potentially could be a discussion that is for hours right but as developers and also people we want to have a working definition so when we say identity at least it refers to something of the same semblance so they're very technical definitions for what identity is from ISO the international standards organization they'd formally Define uh digital identity as a set of attributes related to an entity I don't think it's false I think it's true but also it doesn't help us that much because then anything could kind of be identity so at a place called the internet identity Workshop highly recommend this conference if you're interested in identity decentralized identity I think oauth 2 was invented there or at least standardized by a lot of the folks who go there what's happening next with decentralized identifiers and verifiable credentials a lot of the same people show up there so you're very interested in identity highly recommend it it's in I think Mountain View every twice a year and they came up with a definition that identity is the way we recognize remember and respond to people and things and it kind of adds an operative context to that so it's not just a set of attributes related to an entity but it's kind of what do you do with those attributes maybe some of those help with authentication maybe some of those help you you know retrieve who you're talking about and make decisions on how you're going to respond right so with this context I think it helps make a lot more sense um brief history of identity through let's call it web 2 and web one web zero uh that can you know Arpin that and whatnot but uh typically when you look at the traditional identity markets they're divided for enterprising for people and interestingly it's kind of converging so if you've ever seen like open ID connect or oauth 2 or ldap or active directory any of these things this is kind of what the Enterprise identity management and also some end user identities are talking about so in the 80s people needed to have accounts to log into time sharing systems or computer networks for their work so we started to do identity management sending emails around corporately and that evolved into more complexity people needed to also manage access and then most recently the trends have been why do people have those access what's their title in that organization or credentials what are their certifications that give them that access that's a lot of what the let's call it web 2 identity landscape is looking at and it's really related to compliance and insurance and all that so for more organically people using identities on the internet they had aliases and emails right and then you had all these Services emerge in the 90s um you could go on BBS systems and have a certain Alias there or IRC Etc 2000s we saw the rise of social media and more data linked to people's identifiers and of course it's used for advertising which funds a lot of the you know free platforms and in the 2010s we saw the emergence of sign in with your you know favorite internet Giant and as a convenient way to not have to remember a username and password right so that's kind of how the story is to date and we're very excited about decentralized identity a lot of those other structures are kind of top-down command and control either a company sets up everything or maybe a large tech company decides how it's going to work with everyone basically you can use open protocols and Open Standards towards that but just like how we saw with SMTP and email even though these are open protocols they kind of converge to just a few entities who are the main implementers and you can't even run your own email server you know unless you go to unless you really understand how email servers work and how not to get blocked so we think that decentralized identity has to do with statements about reality by anyone and that can include stuff that happens on chain or off chain statements about reality are things as you know basic as I live in this town or you know so and so went to a certain School and this ethereum address has a certain balance right these are all statements about reality some of them can just live on chain every time someone creates an ethereum transaction there's a signature involved right and something happens the ethereum blockchain can attest to the state of itself you can look it up through an indexer or you know crawl the transactions and understand the state of the system and that's a statement about reality by ethereum that is fully verifiable if you look at the signatures in the previous state of ethereum Etc there are also statements about reality that are off chain that can be represented as Json with a signature over it or other formats so things like there's a certain email Associated to an ethereum account or there's a certain Twitter handle associated with an ethereum account Discord candles Etc you can link these data together but maybe you know it's a statement about reality we say nothing about if it's true or not right so it really matters uh who's saying it so if ethereum's saying it and you have cryptographic evidence about an ethereum address for a ethereum addresses balance maybe that's a very convincing statement however if someone says you know this ethereum address is corresponding to this person and it's a rando who says that maybe you don't want to trust it right so it really depends on who's making the statement and what kind of evidence they can present towards that and how you interpret that is commonly called a trust framework in the world of identity so like we said with the second definition it's used to recognize remember and respond so if you're building a Dap that is uh you know trying to assemble a bunch of Dao hack victims into a support group if they're not super wealthy from uh eth um you might have kind of a rule set that uses uh their digital identity assembled across on chain and potentially off-chain activity right so Wayne chain.eth we check if they're hack victim that's something that you can just look up on the blockchain based on their activity um previously there was mentioned you know your behavior endows your behavior and trading nfts or anything else staking assets those are all claims those are all statements that can be verified by the blockchain same with eat balance and you might have the user bring in their Discord handle maybe there's a witness that is able to attest that someone you know made the identity proof there was a project called keybase that did this and they're more open source ways to do this now but basically someone can prove that they have a certain Discord handle you might have used Discord and one of the many plugins for Discord to demonstrate your ethereum address ownership right and then all of a sudden you're able to make that Association well it could also take that fact and it's signed and you can present it wherever you want so with this set of details you're able to recognize remember and respond from a combination of on-chain and off-chain data so ultimately the model we want to move to to enable decentralized identity so it's truly emergent and not just top down we want instead of the user logging into the platform or application and then the application accesses its proprietary database instead of that we want the user to make the application log into their database and have all discretion over what's in there and how it's accessed even revoking access or you know changing the scope of it as they want this can contain those digital statements that are off chain and also the application can look up additional statements on chain and form a comprehensive identity but in a way that the user controls it's like you start with a poker hand and you pick which cards you actually want to reveal right you don't need to just show everything all at once if you put everything on chain it's bad for a lot of reasons but that's one of them because you don't get that level of control about what you want to reveal to the world versus not whereas if you're securely connected to an application and you you have some degree of trust for the application you may decide to disclose more data and how the off-chain approach Works commonly a popular data model uses called verifiable credentials which is a global data standard from w3c and we have this so-called issuer holder verifier model and this is if you enter the world of decentralized identity and bids and whatnot you'll see this a lot but the issuer such as a school will issue credentials saying that perhaps this person has a Bachelor's of Science degree the holder will be able to present it to a verifier who wants to know if that's true or not who said it maybe their employer and they can be convinced that this this person actually went to a school and got a degree right the really important thing that we care about in this model for decentralized identity is basically that the holder is isolated from all these other components that is um we're moving towards user centricity or wallet centricity in that these statements are held in the wallet in a way under the user's discretion we don't want issuers holding all the credentials for people and we don't want verifiers holding all the credentials for people we want this idea of sovereignty where the holder has discretion about where those credentials live how they're secured and how they're processed this is what gives us you know more ability to choose what gets disclosed to whom and finally all this is coordinated with what's called a verifiable data registry how do you know what our like accredited institutions to accept things from right what stops someone from just spinning up a public private key pair and starting to issue credentials well there are these things called trust Frameworks that can live in verifiable data Registries that you can choose to accept so you can say okay I like the trust framework that has all the credit institutions by whatever body or maybe for Dows there's a token curated registry of dows and you're like yeah that's the trust framework any of those Dows issuing statements we can Federate and accept statements from them right so these statements can be signed by ethereum addresses and stored off chain they can also be represented as ethereum transactions too but you wouldn't need something like verifiable credentials for that you can just write a smart contract and conform to certain EIP and you know that's it so this allows us to have interoperability between claims made on chain but also off chain all rooted in ethereum addresses or even a dow issuing them right so this gets us the spectrum of it it increases user control and as a result we get privacy too so as a result not your keys not your crypto evolves into not your keys not your identifier whether your refers to someone who has a private key for something or a collective with a multi-sig that controls a Dao based identifier such as a noses safe address and I think that the keys users having keys is one of the really critical junctures a lot of people have thought about this model where you can sign things off digitally in your keys and you have a lot more digital rights as a result well seeing this critical mass adoption of metamask and other ethereum wallets into the tens of millions we are able to lean on a lot of what they've done including Key Management which is one of the toughest problems in decentralized identity what if you lose your keys you know what's at stake here that's a tough problem and many wallets are working on this some other interesting approaches use Smart contract wallets eip1271 such as Argent becomes a really nice ux and most of the time wallets stay or used to sign blockchain transactions but we think that there's a lot more possible if you squint you look at this as the most successful public key infrastructure adoption event ever what else can you do well one thing that we can do with keys as authentication you can sign something to prove that you're the account holder right and that's exactly what we've done with sign in with ethereum we collaborated with the ethereum foundation and defined a standard message format for how someone will use ethereum to account to sign into a website that's off chain this way if you already have an ethereum account why collect an email and do that whole verification flow when already you can use that to sign into something right and instantly all your on-chain activity Associated that particular account is available for the site to you know look at um because you can have multiple wallets and multiple accounts you're able to pick your different profiles and with things like zero knowledge you're able to add additional um you're able to add additional privacy measures you might be able to spawn a new ethereum address just for a website and use is there knowledge proofs to show that you indeed did have certain transactions you're not going to say what the other ethereum address was but indeed you did that before so this is uh the direction for basically new classes of dapps that will give you a richer experience because they know a bit more about they're actually talking to the ethereum account holder this is different than connect wallet because with connect wallet all you're doing is um just telling the server uh this is my theorem address but you have no proof for it anyone can spoof that but what sign in with ethereum the server definitely knows they're talking to someone who holds the key because they were able to present a challenge and get a correct response from the account holder so how it works is that we just standardize the message format this has been going on for like three four years already people have been using authentication flows but we just standardized what the message format was going to be and it's heavily inspired by Json web tokens which is you know live in production across like billions of users probably but we made it uh palatable to be displayed in wallets so it's a rigid grammar um very little opportunity to you know inject malicious statements or anything we intentionally made it that way and basically we add security features too once we standardize and also ux improvements so if a wallet is able to recognize this rigid message format it can actually be smart enough to show a login dialog so it really feels like you're logging in as opposed to just trying to sign a personal message additionally we get important security properties the most important one that we care about is called domain binding so when it says domain wants to sign in with your ethereum account let's say it's example.org right the wallet actually has an opportunity to check that it's coming from example.org over a TLS connection right and eventually you know maybe as we move to peer-to-peer encrypted systems they can check domain binding for that but since most stuff is served over TLS today we can check that and you can know that you're not getting man in the middle attack but pretty high confidence right and this is a big problem for wallets and adapts that use this approach where you make someone sign a message and all of a sudden it can be forwarded to an attacker can forward that message make the user sign it on the phishing site and then pretend to be the user right this is really scary I think when you're trying to use that signature outcome to create new key material to encrypt stuff for example or generate new keys right because without the domain binding being any fishing site could just recover your encryption keys but if the wallet refuses to let like or gives a big scary warning if it notices it's the wrong domain then that actually really improves security properties so if your wallet or working on one or know someone working on one I would really love uh if you mentioned hey it'd be great if you supported sign in with ethereum because it's going to increase protections for your users and we are collaborating with the metamask team on adding this protection for all metamask users for example and what happens after signing with ethereum well we think we start simple and make something that just works for people and you know we've seen it take off with a lot of dapps using signing with ethereum and after that we think that there's a really strong link to decentralized identifiers and verifiable credentials decentralized identifiers have a whole ecosystem of use cases there are a lot of companies Building open source software to work with decentralized identifiers you can look into that spec if you're curious and verifiable credentials or statements about reality our work with decentralized identifiers and ethereum addresses is defining a did method called did public key hash because most blockchain accounts including ethereum addresses are hashes of public keys so I call this Oprah Winfrey approach to distribution in which look under your seat you already have a did if you have an ethereum address we just defined a way to make all ethereum addresses valid dids and you can further Define signing methods so that you can issue credentials with them so you can imagine a decentralized social media Network that every time you click follow you're actually in the background signing a verifiable credential issuing the fact that you followed someone and they get a copy and you get a copy right and maybe there's a revocation list in there too in case you decide to unfollow them but with this you have a portable social media a collection of signed Json every sign Json represents a follower you have or someone you followed and you can take this with you to anywhere else and if you follow those verifiable credentials down to who signed it it's the actual end users right it's not the platform that you're interesting as ultimate Authority so that's how we get to decentralized social media for followers for blog posts for you know likes these things can be represented off chain as verifiable credentials or on chain as transactions when you represent them off chain you can have much better control over your privacy and we can Define canonical ways to put them on chain as you want to disclose them to everyone another exciting use case with after signing with ethereum is letting the user's smart contract govern the user's Cloud infrastructure meaning that if you have a smart contract that defines a list of hosts that you say are okay to do something for you then off chain those hosts can recognize that list and maybe that's where your data storage is right maybe that's your storage locker look in the smart contract or my EMS name in the records I'm going to have the hosts that are authorized to be my data vaults and you might even be able to sign um permission slips for people to take over 20 your hosts signed by your ethereum account and maybe they can do something like upload a file or download a file this is architecture used in our project called Kepler at Spruce and another thing that we're really excited about is we think that you're going to use keys for a lot of things I think sessions we might see uh we might see fewer cookie based sessions being used if we can have session Keys we can interpret a signing with a theory message as a delegation to a femoral key in the Dom just as a session key that can be used to create transactions that can be used to issue verifiable credentials that can be used to access data anything that you would do with cookie checking now we could just have these transactions that work off chain right to services that can receive them so when we shift when we assume that the world is built on pki and everyone has a public has a key there's a lot that can shift in the infrastructure and also it's a huge opportunity to empower the user instead of trusting a central intermediary one Innovation that we've created at Spruce towards this is called Caprock which stands for capability grock grok is a kind of a nerdy term for understanding something as we understand signing with ethereum to be a delegation of privileges to a key to do stuff we've we think it's really important that the user has an opportunity to understand exactly what permissions they're delegating it's kind of like when you're linking your social media account to a different site and uh basically it's asking you what's okay to share and what's not well this interface is going to get more and more complex if you imagine that we live in the world where most your stuff is stored in your own data fault that you have discretion over how do we make sure that a user has informed consent and they're actually able to um you know understand what they're actually sharing this is a huge problem like most people who read privacy policies or who like read the word privacy policy they think it means that you know the company is going to keep their data private but instead it talks about exactly how they're going to share their data right so how do we make sure that there is this holistic bridge between what's in the technical capability the real access control the permission slip that you're writing and a user's opportunity to understand what's going to be shared and what can't be right so this way you can use your ethereum account for a whole Suite of off-change services and designate access to other services but it only makes it it only works if the user can understand exactly what they're doing and that is going to be one of the toughest ux challenges to handle but one of the most important ones too So based on this I think we're going to sign in with ethereum to the key controlled Revolution if you're trying to get started login.xyz has documentation on how to integrate things you can follow Spruce on Twitter at Spruce ID you can follow me on Twitter at wycd DD's my favorite Unix tool or connect with me on the coolest social media Network LinkedIn but that's kind of it I'm ready to talk about anything you want to answer questions Etc awesome thank you so much Wayne I appreciate the the chat here and and yeah I mean as I kind of mentioned at the beginning like we're on like the cusp of like this like really unique time where you know I think we like to your point like everybody has a did look under your seats like it's all there um and it's time to finally use these in like really interesting ways um so I I think it's a really exciting time if anybody has any questions for Wayne as well feel free to drop them in the chat and I'll relay them here but maybe just kind of get kicked off here like um I think like commonly like when we think about like especially like verifiable credentials and things like that um basically at some point like when you go far enough down the stack uh you need to have trust somewhere right so like you know if I'm you know a student of Harvard or something and I want to like verify that like and have a credential on my my did that proves that you know I got a degree from Harvard which maybe is something people would want to have um at some point like down the list like you have to trust like Alice at Harvard who's issuing degrees to Bob um and and you know at some point there's there's something there so um you know given that's the case like like how do you think about like establishing those trusts like what should that be look like to be like as trust minimized as possible and like for those like actual credential people like those people who should be giving their like actual credentials like Harvard like that's a really useful use case they should think about doing that like what are some of the best practices that they can uh employ to like be as trust minimized as possible uh in that stack yeah great questions um two separate ones that I'm gonna tease out but the first one is um you're talking about trust anchors how do we know who to trust to begin with right like what what does bootstrapping this look like very timely I think on Monday There's a conference called rebooting the web of trust uh that is starting kicked off really interesting papers everything's open source and on GitHub there but basically a web of trust was kind of the traditional way to do this before we all Consolidated on certificate authorities right there was something called spooky spki simple pki which it worked like you shared a bunch of public keys and you didn't need a central Authority so it kind of if you squinted it it was kind of like web of trust right and I think that a really important point is that um it depends on what you're verifying like you maybe you care about what a doctor says about your disease but you don't care about you know what your what Your chef says about your disease uh and uh so you have to care about like um you know who's issuing the statement well if it's an accredited institution like Harvard third there are existing trust Frameworks in place so for um for universities in particular there's a group called IMS Global and it's a Consortium of all the you know degradation agencies and they decide what a transcript looks like together so right now a lot of it's just paper world but if you move that digital into a trust framework you know you could rely on that to get started and in web 3 that's one critical role I see for uh centralized companies that have built a pretty strong brand if you trust that brand to make statements for example um coinbase says this person has over you know two eth in their account right maybe you trust that from coinbase and then Dows I think are also really important for this too if raid Guild says they did a project then like maybe we you know trust that they completed it because they have a great reputation in the space for completing certain kinds of projects right and as other Dows specialize they might State claims over certain kinds of statements that they can make and I think that the brand for the issue issuer is really important to consider as part of it and that kind of leads into the other question you know as an issuer of these things what and trying to implement these credential Frameworks what should you think about well I think you I think it's really useful to think about it through this issue or holder and verifier model and usually the hardest part to bootstrap is uh the issuer but what makes the model work is that someone wants it to verify something right so if liquor store wants to verify your age so that or like that you're over 21 so you can buy liquor well that's the demand and who's going to say that who does the liquor store trust right so if you start from an issuous perspective you can think about the data that you have that people would trust you to say as Harvard and that's probably a really broad scope of things and uh because Harvard is a strong brand maybe they can even reach outside of Academia a bit but that's probably you know where their bread and butter would be so if you're a dow working on like future work stuff and you have like a collection of completed projects as anointed by the multi-sig well you can issue certificates of completion to people in fact you can even help preserve their privacy because you can cut a new credential to an uncorrelated ethereum address you can say yeah this person did a medium-sized job and it was successful and we're not going to tell you the address is involved there's like thousands of medium-sized jobs accomplished but you know that person can use that credential and access something else without necessarily revealing too much gotcha okay very cool yeah and I think that you're very very interesting to think about this because yeah I mean you have this sort of I never actually heard this term trust anchor before but it works really well for this concept and I'll take a look at some of the other stuff you mentioned there too um yeah I mean I mean you have this existing even in like the traditional paper world like if you think about it like your birth certificate is basically the trust anchor that sets up everything else right um and you know there's like a lot of like kind of interesting parallels there so it makes sense that there's already been some kind of work done in this space um even in the existing systems that we have yeah and what we're really excited about as we transition to the digital world for it um and there there are things to avoid too but um what could be the case is that um there was some mention in the previous talk about there's an interesting relationship between crypto and kyc right and potentially replacing kyc with something else that also reduces fraud and other things that we don't want and um well when you represent things digital it's a lot more inexpensive to do that so if you have a bunch of other facts about yourself that together have this same level of assurance as like a passport or something you know you don't even have to identify who you are then that could be very interesting to preserve privacy to increase user autonomy increase Equity some people have issues getting passports for example and if they need to access Services right what are other pieces of data that could convince someone to give them access to Services if it's digital it's a lot cheaper to think about those data how to represent them and how to present them yeah and more efficient more easily is establish these things gotcha very cool um awesome okay well I don't want to take too much of your time I know we're already over a bit but yeah I really appreciate you being here Wayne and thank you for watching us through that um and like I said yeah very very exciting time to be thinking about this tonight I guess there's even even more stuff to to watch next week uh in this regard as well so thanks so much for having me thank you for being here
Automatic transcript — names and jargon may be misspelled.