How EAS Can Help Build the Trust Layer for Digital Identity and Beyond
EDCON 2023 · 23 May 2023 · 10:42
Bryce Patrick, responsible for protocol growth and adoption at Ethereum Attestation Service, introduces EAS as infrastructure for on-chain and off-chain attestations. He explains how digitally signed claims can represent aspects of identity and support other applications that depend on trust and verification.
Speakers
Topics
From EDCON 2023, hosted by EDCON.
Transcript
did I say that right I'm trying so uh it's it's truly is an honor I want to uh first before we get into the presentation just thank everyone uh the organizers the committee that put everything together for a great week also the other uh finalists that joined and the judges for being here it's a great opportunity for us and I'm excited to share a little bit more about what we're building in the ecosystem EAS is an infrastructure public good for making attestations on or off chain we're completely open source it's permissionless and uh we are tokenless and free to use this might not make much sense on why it's important so I'll spend the next like two minutes just explaining about what EAS is and then
we'll actually jump into a video to go through some real use cases so public goods they start with passion so EAS is being built by some of the earliest ethereans and uh the projects that we're working on are really to further the ecosystem and we're excited to introduce our public good to you all we were sitting we were thinking well why hasn't anyone solved digital identity it's the Holy Grail of use cases because they can unlock so much there's no shortage of apps that are trying and we realized that the identity ecosystem is completely fragmented devs have a never-ending list of protocols that they have to learn about identity we have World coined lens bright ID
disco Spruce sismo get coin passport next idea as an example and the list keeps going on and that fragmentation is really hard for a Dev to really understand how to start building attestations or identities so we're thinking well what is identity and so what is identity uh maybe everyone's building a layer too high and we we were thinking well at one point in your life you didn't have an identity and then you did so when was that moment and that moment is when your mother actually attested to your name she said this is my son vitalik as an example and then throughout life other entities started testing about different aspects of who
you are your doctor attests to your date of birth perhaps a government attests to your national ID your school attest to your grades your employer test that you worked there friends to test that they like you and the list goes on and so what we realize is you can actually represent identity as an aggregate of attestations over time and those attestations that matter look different based off of their context so your identity with your employer might look different than your identity with your friends as an example so what we realized is if you actually want to solve for identity building a protocol specific for identity is really hard where we first need to start is to build an infrastructure layer where any entity can attest about anything so that's what attestations are
we can actually go beyond identity without the stations we can start attesting to things like smart contract audits as an example where the audit has been attested to by the the auditor like Quant Stamp open Zeppelin or others you can build things like quadratic boating systems proof of provenance Registries of land on ethereum and so much more the feedback contraction has been really amazing for us just to see we launched at eat Denver on mainnet and since then optimism has upgraded their attestation station contracts to the EAS standard we have developer ecosystems like devfolio using us for quadratic voting systems
for their hackathons get coins exploring passports attesting to to the stands and we're just receiving really positive feedback from other ecosystem influencers on the importance of developing this credibly neutral infrastructure public good so let's jump into EAS an actual demo so there should be an mp4 file that was provided I'm going to do my best to narrate through this in the course of like six minutes or so so this is the Explorer we built a lot of tools to make the onboarding experience really easy we're live on ethereum mainnet arbitrum supolia optimism Gourley and we'll be deploying on optimism Bedrock as a part of the op stack soon
if you look this is just a registry of attestations or a list of attestations that have been made from an address to an address if it was off chain or on chain and EAS operates by registering a schema about any data topic and then you make an attestation with the other contract towards that topic so this is a schema for a demo participant as an example it has a string as a team name a presentation topic for string and then an array of addresses as presenters so imagine if edcon attested to ethereum at to Station Service as being a demo participant so this is a non-chain attestation record as a unique
ID it's from someone there's a credit date you can automatically allow attestations to expire or manually revoke them if you are the tester so we have the decoded data here and it shows the team name ethereum access station service and then the related schema data that was attested to we wanted to start extending the functionality of our schema so with the age of in the age of AI with all this generated content we were thinking well how can we actually build a schema that might help creators attest to the authenticity of their content so we created a simple schema which includes just a Content hash that's a bytes 32 field and we'll ex I'll show you what else you
can do when you're making an attestation but you can apply an expiration time so if you want the satisf station to automatically expire after a week you can do that and you can also reference at the stations to use them like composable Lego blocks so imagine you attest to a Smart contract audit you can reference that at to station and provide evidence to it so this content at the station we're just going to grab a file and it's just the PowerPoint of this presentation actually and so we're going to it doesn't upload and it's not stored anywhere it's just using um a shot 256 to Hash it and now we're attesting to that hash of that content on chain
so we're making a sepolio transaction here that's my loom I have to go back and what you'll see on this record is that this attestation was made by an address so if I'm a content creator that would be the from address right and I've attested to this hash of the content that I produced and anyone can independently come to this verification online and verify a document if I upload the wrong document it's not going to Hash the same so it's not verified if I were to actually upload the right document then it will hash and so this will allow people to
independently attest to the content that they're producing for authenticity so if you're a Creator imagine a testing to your podcast if you're Joe Rogan as an example we also believe privacy is incredibly important so instead of using zkps we actually built a pretty cool way to attest to private data and selectively disclose it using a Merkle tree so imagine this is a government attesting to vitalik's information okay it could include something like a full name vitalik it could include something else like his address lead Staker Lane and we can also attest if someone's over 21 so it doesn't have to be the direct like birth date as an example which that
should be a bull field and you can attest to other like very private information such as like his national ID card or his passport and what we're doing here is we're testing on chain and but we're actually encoding each piece of the each data field as part of the Merkle tree and it gets hashed all the way up into a Merkel root and so we're attesting and it's made on chain so now imagine if this said uh from the government to vitalik and they've attested to this private data Merkel root hash you can selectively grab a full name as vitalik and let's say he just wants to share that he's over 21. he can instantly generate a Merkle tree proof
and it's all salted so you can't brute force it and if you're a person just visiting the scanner you can see this Merkle root hash and now I can actually go back and grab that proof and this can all be done through a smart contract too now here's his proof and you verify the proof and then all that's disclosed is the vitalik buterin's name and that he's over 21 not his national ID card or anything else like that not every attestation actually needs to be made on chain though uh so this is an off-chain example where we're just saying GM from potguritza and we're make we're just signing a typed eip712 type signature so we're just signing that with our our key
animated off chain out to station record it's not the cool thing about this is it's not stored anywhere it's actually completely encoded in the URI fragment of the URL and the attestation uid is actually a hash of the entire access station and if you were to scan that URL or the QR code we actually g-zipped and coded everything in there so you can actually pass these around pretty easily and the the thing that often United Stations don't have is a time stamp there's no block time so what we've built is a way for you to actually attest to the uid which is a hash of the attestation on chain and so that actually gives it proof of existence that it did occur at that period of time and this is still completely private
it's not stored anywhere if you want to you can publish it to ipfs or download it so that was a quick rundown uh we can't do this alone come join us and build more Trust online we have a full SDK graphql endpoints endless documentation and amazing Community Support so our question to you is what are you going to build thank you so much for your time [Applause]