Unlocking Web3: The Power of Attestations
ETHCC 6 · July 2023 · 28:32
Bryce Patrick explains attestations and their role in web3 applications at EthCC[6]. The speaker considers uses including digital identity, reputation systems and proofs of authenticity, connecting the underlying idea of an attestation to several distinct ways applications can make use of it.
Speakers
Topics
From ETHCC 6, hosted by Ethereum France.
Transcript
foreign how's everyone doing last talk one of the last talks of ECC thank you all for spending the time to learn a little bit more about attestations my name is Bryce Patrick I'm a part of the core team of ethereum attestation service and just for a raise of hands how many of you in the crowd actually know what attestations are we got a few all right some strong hands in the front awesome so the whole goal of this talk is to help you understand a little bit more about what attestations are why they're useful and some of the use cases that we're seeing be unlocked through the use use of them so I'll show
you some pretty fun use cases and at the end we should have about five minutes for questions and also stick around after to help answer questions so don't feel like you have to you know write down a bunch of notes we'll be around too so active stations are simply just a digital signature of some structured data so um we've it's a really funky term I'm sure you've heard it kind of like in the legal sense maybe through Academia when people say hey I attested this or this person attested to something that's really where the root term comes from but in web3 this is simply just a way to sign structured data using a digital signature and through that simple uh method it unlocks a ton of new uh use cases for us so it seems a bit abstract right so what
is the as well let's understand really why we built EAS to begin with and I feel like that really helps everyone understand uh kind of the the importance of it and then I'll go into some of the the use cases we were noticing that there's a lot of digital identity products in the ecosystem and just a disclaimer we're not an identity product but this is a trend we're seeing in the in the market and we're wondering why hasn't anyone been able to solve digital identity if we're able to solve that it can unlock some really amazing use cases like under collateralized lending more trusted interactions with people online and there's no shortage of people I've been trying for not even in web3 but in the web two cents and what we notice is that in in web 3
it's the identity ecosystem is extremely fragmented there's companies like World coin proof of humanity get coin passport sismo lens bright ID disco MasterCard and the list keeps going on and on and to realize well as an engineer we have to keep learning each one of these individual protocols to try to create a comprehensive digital identity which isn't going to be something that's scalable and so we're wondering well perhaps maybe everyone doesn't really know what identity is including us right and we're wondering well what actually was your first identity and maybe everyone's building one layer too high at one point in your life you didn't have an identity and then you did so what happened and we realized like okay
well your first attestation is actually when your mom names you right she attested to your name she said this is my child Bryce and then throughout life other entities start attesting to different aspects of who you are the government or the the hospital would have attested to your date of birth you get your identity card from the government perhaps it's your driver's license eventually you go to school and your teachers attest to your grades you might be attesting to your friends that you that you like and the friends that you trust so you're not only receiving attestations but also giving them you go you finally get a job your employer tests your employment to your skills and then you attest to people that you trust you might give referrals to people like hey I trust this plumber
for these reasons or I like this restaurant for these reasons and so identity is extremely complex and nuanced and so what we realize is you can't act you can actually represent identity as an aggregate of these attestations over time but you can't first start with an identity service or protocol because it's because of how nuanced and complex identity is we first need to start with a base layer where any entity can attest about anything and so that's what we built EAS is simply a base layer for making attestations it's an infrastructure public good which means that it's completely open source and free to use and we believe strongly that it had to be a public good and open source because
trust identity and these types of things are kind of like oil and water when you add finances to them one entity is going to try to extract as much value out of an identity protocol as possible and so we said okay if we actually want to solve important things like trust and identity it has to be open source and free for everyone to use and then people can build amazing businesses on top of that EAS is extremely easy to integrate I'm going to explain just like the structure of it before I go into some of the use cases but we are live and I'll I'll explain kind of where in a second but EAS runs on two smart contracts one two one for uh it's called the schema registry which allows you to register any data topic so imagine this event right you might
think what it what information is important for an event maybe you want to describe the event name right and that could be a string maybe it's the start time and it's a unit 64. right you can start to define the different types of data structure and then the other smart contract allows you to make an attestation on that schema we also allow you to apply or set a resolver contract on the schema this can unlock like a lot of amazing use cases like automatically emitting a payment after an attestation is made maybe you have like a white list or an all list of people to that are able to make access stations on that schema any smart contract logic is possible using the the resolver
our traction has been pretty great as a public good um we were we were really grateful that we're able to get a lot of the initial traction from a lot of the identity protocols in the space and also other builders that are making their own attestations just in their own own unique way and so our job was to figure out how we can unite the ecosystem closer together so optimism they were actually building uh what was called the Atta station station are some of you familiar with that awesome uh so the attestation station we actually had some great conversations with them they ended up deprecating the attestation station uh v0 and upgrading to EAS so EAS will be a part of the core op stack we have we'll have two special
addresses so anytime the op chain gets deployed EAS will automatically be a part of that so base inherits it the public goods Network L2 that just launched Etc um and yeah we're excited to continue building we just deployed on mainnet March of this year and since then we've been really trying to work with anyone in the ecosystem that's passionate about building more more Trust online so let's go in to some examples um at the stations go beyond identity so while we were thinking that at the stations could help solve for digital identity we quick we quickly realized that it can be used for much more anywhere trust or verification is needed online is where an attestation can play a significant role
I'm going to be going through some examples and highlighting our uh it's basically like The Ether scan of attestations it's called it's called EAS scan but I'll show some like UI examples and then go into the Explorer itself so when we think about social media there's simply just a network of attestations that people are making so when you post something you're attesting to the post right you're saying this is a statement that I'm making when people like that post they're simply a testing that they liked your post following replying reposting updating your profile all these things are simply just at the stations and so this is an example UI of just like uh basically like a social posting platform
and if you I'll pull it up here gotta find my mouse hold on the mouse is gone hold on oh there it is uh can you all see it okay let's see so each each one of these are just simply posts and if we I'm going to scroll down to one that has so here's a post from Tim and a reply and you can see on this post that there's a comment a like and then a reply if I were to click on this Shield it actually takes me to the on-chain attestation record this is all on sepolia but it's an on-chain at the station record showcasing the unique
identifier of the attestation when it was made on chain who posted it and you you'll notice that the decoded data here is the schema so this is string post GM and then there's two referencing attestations related to this unique identifier so those those reference attestations are the like in the post and so if this speaketh UI blows up or it's no longer useful then people can still leverage that data but one thing that's important to note is we built EAS to also be an off-chain protocol so all this that is on sepolia can also be done off chain which has its benefits as well especially for social social apps like this
another use cases especially with the the amount of AI generated content today imagine in two to five years how crazy that's going to be where I'm not sure if you all have seen the uh this is on Tick Tock actually but it's Tom Cruise where he's actually walking around and it looks just like him sounds like him it's very interactive it's not just like a mouse over but it's imagine like people that aren't Tech uh that Savvy with technology today this video is convincing for me and it's going to be extremely convincing for many others so how can creators start attesting to the authenticity of their content one way to do that is through the use of a digital signature and so we actually have been building ways to help people hash their content and then attest to that hash on
chain and that gives it proof of existence that it was made by the Creator at that time so an example of that would be oh here I can move over if you go on to EA scan there's a schema called content hash but you basically upload any local file it generates a hash of the file and then you can uh this is an example this actually was in Tom Cruise study if he doesn't I don't think he has one but I just I I just changed it in the UI but so Tom Cruise imagined he attested to his content right this is the hash of that content and then if someone uploads that same file they could verify against it and they know that it actually was a digital signature from Tom Cruise that he actually did post that video and there's ways that you can do this in
a very like beautiful UI and to to kind of obfuscate a lot of this uh complexity but imagine in the future with all this AI generated content it's going to be really difficult to know what's real or what's not real in the biggest defense that we see right now is through the use of digital signatures and that even includes for historical content so imagine 10 years from now the amount of gen AI generated content can really influence our interpretations of what history was because people can manipulate old videos and things like that so if we started testing to the content today we actually have a chance to preserve some of the history for our digital content we built a if you're participating in uh youth Global Paris we actually built
this UI this app it's completely open source in in our repo as well but allows you to attest to people that you met in real life using their ens so it's called met irl.org and you'll see that there's some green check marks here I'm actually going to if you want I'll leave this up here for a second but if you want to attest that you met me in real life it just you this uses an off chain at the station on mainnet so you're just signing a digital signature saying that we met in person and then I have the opportunity to go and uh oops sorry that's awesome you with your phone if we go to net IRL it's on mainnet so I'm just going to switch to the network really quick and you can kind of I can show you
a little bit more detail so I can go to my connections tab so I'm logged into my my DOT ether and there's people who have it tested that I've attested to right and then others where there's a two-way interaction so here's Kevin Olson I attested to him and then he reconfirmed to me so if I were to click on this attestation record it takes me to the attestation Explorer on mainnet and this is an off chain at the station so you can see this is an off chain access station that gets its unique identifier it was from me to Kevin and it was created at this time and this the schema was met in real life
and it's just simply a bull field okay and then we actually published it to ipfs to index it on the website but you can keep these completely off chain if you'd like or or private one thing that off chain at the Stations don't have is a verifiable timestamp right there's no consensus that it actually can occurred so one thing that we added is this way to timestamp and off chain at the station on chain so by doing so all we do is we take this uid which is a hash of the entire attestation data and then you're able to timestamp that on chain giving it proof of existence we also built a Merkle tree approach where you can roll up a million of these off chain attestations and just time stamp them in one batch on chain so it's you know a few bucks but if you use an L2 Network obviously
much cheaper too there's some pretty cool uh these are kind of like MiMi social graphs but you can just like explore like kind of the opportunities around this as well as soon as we start to have these attestations we can start to build more of like a web of trust of information so this was actually Kelvin over at the optimism team he was I believe this was during eth Lisbon he was attesting to people that they thought were cool right and then they would attest to other cool people just to build this social graph network but it allows you to interact and uh I'll pull it up here but you can start to build these relative trust networks where based off of the attestations that you care about you can start to start to visualize the
nodes that are closer to you in this social graph and nodes that are out so here's the visualization of the the social graph you can kind of see it floating around these are um the clusters of notes of people who have been making at the stations and you can see that there's a few people in this network where people are actually just attesting to them right but they're not attesting to anyone like this this node here so this is actually vitalik so vitalik was receiving a lot of attestations but not giving them and you can start to see people that are kind of connected into this this mini social graph but this is all based off of attestation data of people attesting to each other so this is what the the attestation
record looked like so this was Kelvin attesting to vitalik it's just a simple ball field and then the record so privacy is extremely important so this is a we built a way where you can actually attest to a bunch of private data on chain um in a privacy preserving Way by using a Merkle root so imagine your driver's license right you might have a bunch of driver's license information like your first name your last name your license ID number and all these fields we roll that so these would be the data leaves or fields and then we keep hashing it until we get a Merkel root and then you just attest to the root on chain and then this is what that if you use the private data schema it's just a
bytes 32 field and this is the Merkle root and then you're able to paste the Merkle Leaf against that root to prove that I was a part of it the value here is that the attestation uh the value of the attestation is the person that is attesting so if this was like a verifier of some documents and they attested to that person and this could all be done off chain in a private way you can verify the Merkle Leaf against the root there's so many more use cases that can be unlocked so voting uh transferable transparent and verifiable voting we actually had Dev folio they used us for their their hackathons so the most recent one was eat Barcelona and the
attestations actually were votes from the participants of the hackathon attesting to the projects that they wanted to win they aggregated those in a quadratic way and then distributed the funds based off of the attestation but imagine using attestations as votes for any sort of governance the authenticity of content marketplaces proof of anything so proof of attendance right is simply just one entity of testing that you showed up and so one idea is like if you were to walk into a an event as soon as the ticket is redeemed you could receive a proof of that proof of attendance at the station and then from that attestation start collecting poapps and other things like that uh compliance Registries of anything and the list goes on but there's a lot of
really amazing things that are going Beyond identity related to attestation so we're really excited to see what people start building we are going to be participating in uh Global Paris and so these are some ideas that we've suggested um to the the hackers to start exploring so show social graphs and it kind of gives you an idea of some kind of quick things that could be built ticketing applications zero knowledge attestations using EAS plus sizmo to generate a proof off of the attestation data attesting to roles and governance systems using attestations much more so getting started is pretty easy we have an SDK we have an attestation explorer that I was just showing you the schema Builder
we built a lot of note no code tools to allow you to easily create any sort of schema and a test with it using the Explorer there's a tremendous amount of documentation and then we also built graphql endpoints for each chain so you can start querying the attestation data as well this is our our uh Twitter if you'd like to follow us just to stay up to date on what's going on we have about uh a few minutes so love to answer some questions and then if we have some time I can go into an off chain example as well go ahead yeah yeah uh like what's the reason you haven't uh
added the revocability into the Shima uh I mean it seems like it must be in every attestation must be revocable yeah that's a great point so every attestation if you're the issuer is revocable so I'll actually make an off chain one here so we can see how this this uh I'll actually just make a statement and and revoke it so I just want to make a statement I'm going to click a test we can have a recipient if we'd like so vitalik dot eth not every attestation needs one but we can just say GM GM right and then you have the option to apply an expiration time on the attestation so imagine if you wanted to create an access station for
something that needs to expire so it could be like time-based access or like a credential that you want to have renew after a year and then you can reference an attestation to start to build it to be more composable but I'm going to make this really quick and show you the the revocation but if you're the issuer you can revoke it if you're not the the issuer of the attestation you don't have permissions to revoke it oh yes yes so you can set whether or not you want the attestation to be revocable or not and then when you create the schema you can also control whether or not you want the entire schema to to be revocable yeah good question while this is loading on sepolia so here we go so now we have the statement Bryce to vitalik gmgm if it's
no longer a GM then I can revoke it and we also built a way where you can revoke off chain as well so this is an on chain at the station being revoked it just changes the state so a little bit different than Soul bound tokens right you're not burning anything here you're simply just changing the state of the attestation to show that it has been revoked this is really important because imagine you've been attested to a role right in a tower and at a community group and then you change roles or leave right most often people try to reissue an nft to show your new role which is kind of silly because nfts can be transferred among people with an attestation you can still keep that out to station record saying that I
had this role until this revocation time right or the expiration time and still show that I've uh you know had these roles Etc so here's the the revoked at the station all this can be done through the the through uh code as well good question another one in the back uh only question can we revoke uh enough Shane at the station yes so let me do that I'm going to make an off chain at the station here this is just using yo-yo again just for Simplicity but I'm going to make this
off chain and then off chain attestation is simply just a eip712 signature so I'm signing that with my metamask and it instantly gets created right and you'll see in the in the URI fragment of the URL this is where everything's encoded so the server doesn't even know that this attestation exists so you could actually scan this QR code and it'll decode on your phone without us even knowing and then the timestamp functionality I'll do that and then there's a revoke as well which basically just changes the state and we index that it that uid has been uh revoked but when you time stamp something on chain or revoke it you're not revealing any data about it it's just the uid of the the add to station
and so you can start to pass these around in store we don't presuppose where people store off chain attestations you can actually take this off chain out to station and store it on any network it could be decentralized storage like ceramic or some other place so you can see now we have a verified timestamp and then if I revoke it I can attest to the revocation off chain as well and this is completely private no one knows that this attestation existed unless I disclose it to you like I've done here hello and just wanted to ask what's next on your roadmap oh I think I was trying to find you out there uh so next on our roadmap we're so the contracts have been deployed
um across so several test Nets mainnet Etc and our whole focus is around Builder education so we want to make sure that devs understand that this new primitive exists because we see a lot of devs instantly default to things like uh nfts and when the only existing solution you have is an nft it's kind of like if all you have is a hammer everything looks like a nail and so we're trying to really change the mindset of a lot of devs that this new primitive exists and that it's more composable more secure and things like that so developer education is where we're focused in making sure that we continue to improve things like schema coordination and stuff like that thank you um hello can you show how we can add a custom schema yeah sure so on the
schemas page if you go to the chain you can click create schema and then we have this no code schema Builder so if you wanted to create something like an event you might want event name I'm doing this typing kind of like my dad with two fingers so give me a second so we have event name String and then you can continue to add new Fields you can turn it into an array whatever you'd like you could also do this all through the SDK as well but we did build a no code way so you can really quickly start testing these schemas and then the resolver address remember that allows you to add custom logic to the schema as well so if we click create the node added to the registry which you'll see on the registry here and just a bunch of
different types of uh data structures that people are experimenting around so we don't presuppose what people are building so I don't have as much context on some of these newer ones but we can make some contextual references here that here's an employer ID that they passed an interview skills category and skill level then there's some other like blocking there's some notification things so schemas are the schema itself doesn't really uh matter as much as who makes the attestation right unless you apply a resolver on the schema so anyone can make it an attestation on the schema so like this is true um schema that we were just using for met IRL
it doesn't really matter who's the testing because you can index and search for people that like the entities that you value most that are making the attestation so imagine like if I were to attest that you passed kyc doesn't hold any value right I'm not a kyc verifier but if a kyc entity had tested on the same schema that you passed kyc that holds more value um thank you for the presentation um how are you thinking about cross chain like other stations say like I tested something on optimism but then once you use that attestation on arbitrim like are you thinking about that um oh yeah yeah we are I think a lot of that gets solved in the at the
aggregation layer right the compute layer to see similar ad to stations across chain but just like you can't transfer like tokens right you have to use a bridge to interact today you can't mirror at the stations on a different network what you can do is like republish and offchain allows you to uh give you a little bit more control but if it is made on chain we see a lot of we're partnering with people that are focused more on the compute layer to aggregate the attestation data across chains and then make sense of it to users in a better way go ahead yes
is trying to at least in this UI UI it kind of looks like yes some of the some of the improvements that could be made is to build like an attestation explorer that Aggregates a lot of different types of of schemas while displaying some of the chain but um right now each of the attestations kind of live on their chain so typically we see a lot of apps being built on one specific chain and then if there is a different type of schema that they want to reference then you would just aggregate it using the API so if someone else is making access stations on a different chain that you would find valuable perhaps it's for civil
resistance or something like that you could reference it um just in kind of your your own use case I do agree that there are ways that in the statistation Explorer we could start to make it easier to see cross chain type use cases any other uh yeah sorry he's the testing there's no more time so I will uh respect the choice but we'll be around we're really excited to see the the future of attestations it's a newer primitive and we're getting a lot of positive feedback the ecosystem is starting to finally unite around something pretty powerful for non-financial use cases so we invite
you all to come join us we're completely open source we're public good you can check out everything and we're happy to help you through our Telegram and other channels to help you start building thank you all [Applause] foreign [Music]