Ethereum Attestation Service 🛠️ Building with EAS The base layer for attestations
ETHGlobal·Mon, Oct 9, 2023, 12:00 AM
Join Bryce Patrick and Steve Dakh from Ethereum Attestation Service for a workshop titled "Building with EAS The base layer for attestations". Join us as we explore the role of attestations and the impact they will have on our industry. This interactive workshop is a great way to get started with attestations for builders of all levels. Walk away with a deeper understanding of what attestations are, how they are empowering various Web3 use cases, and how they can be used in the hackathon this weekend! Paris is the city of light and birthplace of many revolutions. Therefore we are thrilled to be back in one of the most buzzing and free-spirited cities in Europe for ETHGlobal Paris 2023. A lot has changed in the European ecosystem since the last time we hosted a hackathon in 2019 and we are excited to meet all the new talent this July that we have acquired since! ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com
Transcript
So, uh, my name is Bryce. I am part of the Ethereum Attestation Service core team. Uh, my role is mostly about product development and design. I also do a little frontend do a little frontend development. Uh, and Steve is here with us.
I'll give the floor to Steve to introduce himself. Yes, I am the CTO, a full-stack Yes, I am the CTO, a full-stack developer at EAS. Today we will spend the first few minutes explaining why we created EAS. We will then look at some examples that have already been implemented and spend time creating diagrams together so you can better understand how to start using EAS at this hackathon. We will also share ideas for inspiration that can be developed and move forward.
We want this to be interactive, and I understand that we probably understand that we probably won't be able to answer all of your questions. So we will be at our stand to help you all weekend long. So, how many of you know what certifications are? Perfectly. Good.
This is a new primitive that is becoming very popular right now , so we are excited to share a little more about how we see it. Attestations are simply a digital signature of certain structured data structured data . Maybe that sounds pretty abstract, right? Like, okay, certification of what exactly? So we'll dig into that.
We have noticed in the ecosystem that many identification protocols are being developed . And while EAS is not exactly an identification protocol, we have seen many projects trying to address the issue of digital identity, as it opens up a lot of new and powerful possibilities. We thought: with this fragmentation, we as developers have to learn all these new protocols all these new protocols , right? Just to try to get a more complete picture of what identity is. Each of these organizations creates its own type of certification, but none of them really interact with the others.
So we thought: what really is identity? What was your first identity? We took a took a first principles approach and thought: when you were born, you didn't have an identity, and then you had one. So what happened? That's when your mom gave you your name, right?
She said, "This is my baby, Bryce." And then throughout your life, other entities begin to witness different aspects of who you are aspects of who you are . A doctor, for example, could confirm your date of birth. Your identity and ID could have been verified by the government. You go to school and the teacher confirms your grades.
Your employer confirms your work and skills. And you also start to witness other entities. You affirm the friends affirm the friends you like, the food you love. So you not only receive, but also issue certificates yourself. We realized that a person can actually be represented as a collection of testimonies about someone or something over time.
If you want to solve the issue of digital identity, it is difficult to start with just a service or protocol that focuses only on that; First, a basic level is needed, where any entity can attest to anything. This could be related to identification or something else. This is what we created. We built an open-source infrastructure as a public good for creating certificates on- chain or off- chain. So, it's completely open source.
We have an SDK and developer toolset to make this process very simple. We realized that to build trust in the network using digital signatures for identification or verification of any verification of any kind, it is crucial that the infrastructure layer is not monetized, otherwise someone would gain an advantage or try to manipulate the ecosystem, after which someone would simply fork the protocol to zero. That's why we created it as a public good. It is funded through grants, and the whole idea is to make money on top of the protocol, not inside it. So, EAS is a completely open, free-to- use solution use solution .
It works on two simple smart simple smart contracts, we will look at examples, but for now, understand the essence at a high level. There is a schema registry contract that allows you to register to register any structured data on any topic. This structured data could be, for example, imagine we're at this hackathon. And you would like to certify the location of the hackathon, what data would you think would be important? Maybe it's the name of the hackathon, maybe it's the time the hackathon starts.
So you can use, for example, the start time in uint64 format start time in uint64 format . So you start creating a data structure. And the second contract allows you to make certifications based on them. We also allow you to install an additional resolver. So, if an attestation is created for a specific type of scheme, you can configure it to mint NFTs or perform any other smart other smart contract function based on that attestation.
The results are quite impressive. Optimism has been developing its own certification system, which you may have heard about on the market. They effectively abandoned their old contracts and switched to the EAS standard. So we are now part of their core native contracts. We are deployed on Base, and any OP Stack chain will have EAS, so we are excited to continue to unify the ecosystem around a single level of attestations.
Attestations go beyond identification and can be used wherever trust or verification is needed. I'll show you some examples in our EAS Scan guide. It's something like Etherscan, but for certifications. Sorry, I mean Etherscan for certifications. So, if we think about certifications, a social network is just a network of certifications, right?
When you post something on Twitter, it's simply your attestation that you made a statement. If someone likes this post, that's also just a like on your post, right? The person indicates that they like this content. Subscriptions, replies, reposts— replies, reposts— all these interactions are just evidence from one subject about another object or event. So we created this demo interface.
It's called Speakith. You can see certain posts here. Is the screen size suitable? Yes screen size suitable? Yes .
Zoom in a little more. You see how these posts are created. Here's one from Tim. He certified "GM". And here is the answer.
There is one answer and one like. If we check this certification, we will see that everything works based on certifications. Clicking on the attestation record takes us to an EAS Scan similar to Etherscan and we see that Tim attested to “GM” at this time. Each certification record has its own unique identifier that can be used for references. If we scroll down, we see two more entities that have linked to this UID, liking it, and making a post.
If we click on the like, we will be taken to another testimonial record where that person confirms "like: true" and references the previous testimonial UID. So you can start to build very composite networks of utterances that people create. And all this can be done even offline. Another use case concerns content authenticity. So, imagine all this content being created by artificial intelligence.
How do we really know if what the author is doing is real? If you've seen those TikTok videos of Tom Cruise running around, smiling, doing his " doing his " Cruise" thing, he looks like the real thing. Although I'm pretty tech- savvy, I was almost convinced. So imagine our non-technical friends and family in a year or two. It will be extremely scary how people will be able to trust the information they see online.
And one way to do that is way to do that is with a digital signature, right? Certifying the authenticity of the created content. So we created a way where you can hash any content and then certify it. This is just an idea if you're looking for projects for this hackathon: thinking about authenticating information and building graphs around that—it's a unique idea. This is a recording of a fake Tom Cruise's certification.
I actually just changed it in the interface. So this is not his ETH address. But this is Tom Cruise. A hash of its content, and people will be able to independently verify that content by hash. All of this can be done through a very nice interface, but the idea is to have a digital signature from an authority figure, like Tom Cruise, who confirms, "This is my content."
If you see us at the booth, we'll be showcasing this open source application, which is part of our repository that you can access. You can fork this hackathon if you wish. It will show you how the SDK works, in quite some detail, and allow you to witness meetings with people in real life. It's called metirirl.org.
And if you want, we'll be at the booth, but you can scan this and it will take you to the met IRL with my ENS there. And you will need to make a digital signature using this. So you just state, "Hey, I met Bryce Allen." And then I do a two-way attestation, confirming this. So, in that attestation record, you'll see that this is actually an off-chain attestation that was made public, there's a UID and some timestamps.
One thing about off-chain attestations is that they don't have a verifiable timestamp , as there is no network consensus to confirm that it existed. So we took the UID and simply recorded its timestamp in the blockchain. So, you can actually timestamp an off-chain certificate on the blockchain, providing proof of its existence. So this gives a more reliable historical record of it. Here's Duck attesting that we met in real life, it's true, and then I confirmed it to him, and I'll show it in a moment.
And from such data you can start building quite interesting social graphs. One of them was created by Calvin from the Optimism team. It is called coolgraph.eth. I'll upload it now, it was just people doing the certification.
This is kind of a meme, right? Testimonials about cool people. They just went around and witnessed others, and other people at the event also witnessed each other. But you can see this rather interesting interactive graph of nodes that attested to the " attested to the " coolness" of other entities, other ENS entities, other ENS addresses. You will see that this node is getting a lot of certifications.
Not sure if you can see it through the color can see it through the color . But this node receives a lot of certificates, but does not issue any itself. Oh, actually it's this one. This one has more. But this is Vitalik's address, right?
He gets "cool guy" certifications, but doesn't issue any. You can see that there are all these nodes that seem to be outside the network, which, if you think about certificate aggregation to protect against syphillis attacks to protect against syphillis attacks , allows you to see nodes that exist separately, right? For example, someone created a thousand new addresses and they simply authenticated each other. If they are not part of the trusted network graph, you can weight them however you want. So, this is an actual record of the certification.
This is Calvin attesting to Vitalik, it's true. In the blockchain with UID, and the scheme used was called "cool person". Private data is extremely important, especially if you are working on things related to identity. It is very important to think about what should actually be on the blockchain and what should not. So we created a way to authenticate the Merkle root hash on the blockchain, and then you can selectively disclose data about that Merkle root, which can be a more confidential way.
This is a kind of alternative to ZK- alternative to ZK- proof, but it simply allows one entity to certify another, say, a document verifier for your driver's license, right? They could hash all the fields of your driver's license, verify the Merkle root, give you that data, and then you could give others a portion of that data to selectively verify against the Merkle root. So, it looks something like this. Here is the Merkle root hash. You receive confirmation and verify it.
I can show you how it works below. There are many use cases that can be implemented. We have a list of examples at our booth if you're looking for inspiration, but certifications are not an identification protocol. Much more can be done with them, as they open up possibilities for creating a highly modular and interoperable network. You can create registries to prove compliance , notary services, proof of services, proof of anything, such as proof of presence or solvency, etc.
Whenever a subject needs to use a digital signature to establish trust during an interaction, attestations become valuable. Here are some ideas for development. We don't judge them, we just provide inspiration, hoping you'll think: if I can do this, maybe I can do something else. Social graphs, knowledge graphs, dynamic NFTs based on attestation data, protection against Sybil attacks. Zero- Disclosure Attestations: Creating an attestation and then creating proof based on it would be really cool.
Role certification—you get the idea. Another thing is private certifications. I'll make one very quickly. For starters, if you want to create a schema, you can easily interact with the SDK. But if you want to do it without code, go to EAS scan on the desired network and use this no- code builder.
For example, you can specify the name of the event, it can be just a string; you select the data type in the field. So, I will create one certification, make a statement; The recipient is not specified, I'm just saying: "It was nice talking to everyone talking to everyone ." Important point: an expiration date can also be applied to the certification . So if you want it to automatically cancel, that's possible. I'll do this off-line, it's just a 712 type signature.
I signed this, and it's completely encoded in the link URI fragment . and oh, and you can store them locally anywhere; you can store them in a centralized location, transmit them portablely, but EAS doesn't even know they exist. But there are still a lot of cool things you can do with private off-chain access to stations. We have a few minutes left, but, uh a few minutes left, but, uh , I'd like to hear your reactions and feedback. Question.
Let's. No. Do you want to answer? Yes. Because I've been talking for quite some time now.
Action. So, in the case of a university, for example, getting a certification from a reputable institution, you really need a certification from the university or from someone who can verify a university degree. So the value of certification depends on who certifies it. For example, if I certify that Bryce passed KYC, it might not mean anything to most people, but if Coinbase does, then it will matter. So yes .
You can create a schema structure for a diploma or other important information, and then a digital signature will be provided by a trusted authority for that type of data. So, the scheme is less important than the person signing the data, which is what gives attestations their value, unless there is a resolver or hook for that scheme. Another question in the case of off-chain attestations is, does the chain ID really matter? No, that's right. No.
I mean, technically, if we talk about porting off-chain attestations to the chain, then yes, you can actually read can actually read any EIP712 signature and use whatever chain ID you want, or none at all. Yes. That's right. So the Met IRL app that we showed you to verify people's meetings is an off-chain attestation on the mainnet. So zero fees, but the contracts are on the mainnet, but we work both on and off-chain.
Yes. The certification data in the chain is public, right? So if you're focusing on things like identity, you should consider using private data for attestations or going off-chain entirely. Just make sure Just make sure you don't put any real private data on the chain. You may want to keep private data off-chain and delegate off-chain attestation to a specific individual so they can share it on a need-to- know basis.
But in general, if you're going to put something on the chain, you might want to add some kind of hash with a "salt" so that no one can crack it. So you definitely shouldn't put any private data on the chain. This is not at all what we want to do. We want to prevent this. No private information.
Yes. Aha. We have a tool in the explorer, you can verify off-chain attestations using our SDK or just drag and drop drag and drop any attestation file into our interface and it will verify it through the SDK. Yes. So if we load this raw data that you see here, you can just take it and drag it into the off-chain attestation validation and the system will show you if it's validated, or just use the SDK.
Are there any more questions about off-chain or on-chain certifications in the hall? Could you say that a little louder? He asked how we compare to verified credentials? Of course. Verified credentials typically comply with the W3C standard.
Good. The was created without reference to blockchain technology. It has a lot of data, doesn't it? Many modern off-chain protocols, like Disco, use verified credentials, and this has great value for Web2 interactions, but W3C standards also allow for dispute records and other things using attestations. Yes.
The difference is that verified credentials predate blockchain, they contain huge amounts of data that you would n't want to put on- chain, and there is no schema registry for them. When people use verified credentials, they never thought about a schema registry where schema registry where any organization could register a topic that would receive its own unique identifier. Therefore, we believe that our approach is much better for decentralizing such interactions. Another advantage is the layout. If you are creating an attestation, not as a W3C verified account, but to make it compatible with other areas, such as content signature authenticity, this makes things much easier and faster.
Thumbs up from the front row. It seems time has run out. If you have any questions, I'd be happy to show you how the Merkle tree approach works—you can create a lot of interesting things. I really want to see progress after previous hackathons. Many cool things can be created as alternatives to NFTs and similar technologies similar technologies .
So if you are considering NFT for verification, consider using attestation, as
Automatic transcript — names and jargon may be misspelled.