See full event listing

On Wednesdays We Use Web5: A 'Mean Girls' Guide to Data Sovereignty

In today’s web, our data often isn’t ours. But what if you could change that narrative?Explore the world of Web5, where you reclaim data sovereignty. This beginner’s talk introduces you to the core concepts of DIDs, DWNs, and protocols, all with a “Mean Girls” twist. By the end, we’ll craft a digital Burn Book. But unlike Regina George’s version, this one’s all about privacy. Share your messages, but only with those you truly trust.

Get in. We’re making Web5 happen.

Rizel Scarlett is a Staff Developer Advocate at TBD, Block’s newest business unit. With a diverse background spanning GitHub, startups, and non-profit organizations, Rizel has cultivated a passion for utilizing emerging technologies to champion equity within the tech industry. She moonlights as an Advisor at G{Code} House, an organization aimed at teaching women of color and non-binary people of color to code. Rizel believes in leveraging vulnerability, honesty, and kindness as means to educate early-career developers.

Transcript

Rizel Scarlett 0:47
But anyways, well, further ado, I’m gonna go ahead and talk about web5 and the title of my talk is on Wednesdays we use Web5 - a Mean Girls Guide to data sovereignty. So first to introduce myself, for folks who don’t know my name is results Scarlet, and I am Staff developer advocate at a company called TBD. Now, it does not stand for it to be determined. Before I joined, I thought they were still deciding on the name, but it stands for to be decentralized. If you want it to connect with me in the future. My handle is @blackgirlbytes. So what we’re doing at TBD, we’re actually a company within an incubator company within the organization Block, which is also also owns on cash, app and title. But what we’re doing within TBD is we’re building something called Web5. And today, I’m going to show you why it matters, what it is and how you can build with it. But before that, I want us to get to know each other a bit. I know there’s not too many people in the chat right now. But that’s all right. So I’ll just start off by letting you know that I’m a baby millennial, aka like I was born like a little bit like just at the cut off of being a millennial. And that means I grew up in like the early 2000s. Like when I was five, I think it was 2000. And that means I grew up with some awesome different like TV shows and stuff like that such as brats. That’s So Raven, like songs, like crank that soulja boy and then I also love the song I Write Sins, not tragedies by Panic at the Disco. So if there is anybody in the chat, I don’t know. But if you are in here, feel free to share your favorite show, or movie or song that you’re loving right now or something that you remember from the 2000s. But I want to move forward. So one of the the movies another movie I really love and why it’s focused are called On Wednesdays we use Web5. I love the movie Mean Girls, it was iconic. Anybody that is my age that watched it hopefully all watched, it will tell you it’s an iconic show. But if you’ve never watched it, or movie on its iconic movie, but if you’ve never watched it before, I will give you a little bit of a recap.

Rizel Scarlett 7:25
Right, so the main character’s name is Katie. She’s played by Lindsay Lohan right here. And she attends public school for the first time. She’s like a transfer student. That was like homeschooled in South Africa. And her plan is to essentially take down this popular clique at the high school, they’re called the plastics. And the reason why she wants to take them out is because she wants to expose them for being manipulative. But in order to do that, she has to get in there, she has to kind of become one of them. So to become one of them, sorry, hit my mic. But to become one of them, she has to kind of get accepted into the brew. And she starts like doing their little themed stuff. So like they were, they coordinate their clothes and everything. So for example, on Wednesdays, they wear pink. That’s like a slogan in the whole show. But she also finds out that the plastics have something called a burn book. This is where they write rumors and secrets and elementals about other girls, and even some of the teachers at school, some of us really malicious content. Some of it’s kind of silly, like I remember, they’re like Amber DLCO, I don’t know how to say her name made out with a hot dog or whatever, like little rumors you would say in high school. And the idea is that no one is ever supposed to be able to see this content besides that, until so it’s a private book, until the leaders of the plastics, the leader of the plastic gets upset every everybody and she’s like, You know what, I am mad. And I’m going to distribute all the pages of this book. So she photocopies it, and she spreads it all around school because she’s upset I believe they said something bad about her on the book. And she’s like, Ah, this is I’m not for this. So now everyone’s secrets are out including the teachers. There’s zero privacy. So I heard it’s 2020 for the airing a reboot, or sequel of mean girls called mean girls 2 here’s the twist for this talk. We’re going to pretend that we’re cast in the movie mean girls 2. So here’s what’s happening. Principal Deval wants us to rebuild the burn book digitally with web5. So you might be wondering, why would he want to rebuild it when it caused so much chaos? Hindsight is 20/20 and 20 years later, he’s realizing how important it is for students to have self expression. But he wants to avoid the problem where rumors get spread and friendships gets ruined. So he’s like maybe the solution is students get to vent but they have control over their privacy and they get to decide who gets to see What? And he heard that you could do something like that with web five. So he’s employed the best and brightest software engineers, aka us to lead the initiative. Without principles of oh, okay, well, we’ll agree to it for a hefty price. And we’ll start with MVP first. And if you don’t know what that stands for, it stands for minimum viable product. So we’re going to do the basics on and he’s like, Okay, that sounds good. He agrees to it. But we also admit to him, we don’t really know too much about web5. So we’re going to need a little bit of training.

Rizel Scarlett 10:36
So for us to be able to build this whole thing, we’re going to learn what web5 is, we’re going to learn why it matters, we’re going to follow the quickstart guide that they have. And then we’ll build our own web five application in the start of a burn book. So let’s talk about what is web five. Slug five is an ecosystem that enables developers to build decentralized applications that prioritize data ownership and user privacy. Let me just check the stream yard just to make sure they’re just people saying hi, just wants to make sure there’s nothing in here. That was a good movie. Thank you, Tim TrueBlock are going back. So what five just to repeat is an ecosystem that enables developers to build decentralized applications that prioritize data ownership and user privacy. Now, it’s not something that we just came up with out of the blue, and this is a legit thick, right? So basically, the W3C, which stands for the World Wide Web Consortium created identity standards, they’re starting to think of like, what does identity look like in the future? Maybe it’s not username and passwords. And what we did at TBD is we created a framework to apply those standards. So basically, W three C sat down and said, Alright, here’s the future of identity, here’s how it could work. Maybe you don’t have to use a username or password anymore. They wrote a whole bunch of words. And then the team at TBD was like, here’s the code that can make this work. So shares the main concepts of web five that will quickly go over decentralized identifiers, decentralized web nodes, and verifiable credentials. Starting with decentralized identifiers, they’re also called dis for short, or the IDs, people use it interchangeably. In the website ecosystem, every single user has a decentralized identifier, and that’s represented as an alphanumeric string. So it starts off with the letters DID, which is the scheme then you have the did method. And then after that you have different methods, specific identifier. DIDs, are essentially a W 3C open standard, they’re based on cryptographic principles, I want to emphasize not cryptocurrency but cryptographic. And they’re not tied to one application or system.

Rizel Scarlett 12:57
They can actually replace the need for a username and password. I don’t know if y’all have ever seen my friend might not have. But I’ll let you know my friend, Bill Johnson. He’s a DevRel over an Okta. And he has this really great talk. And he says in the talk, I ain’t got no more passwords in me brah. I love that line so much. And that’s totally okay if he doesn’t, because didn’t remove that need for authenticating with a username and password did use cryptographic create keys like a public and private key pair to identify who you are on the web. Kinda like when you use a yubikey at work, you just like insert it into your laptop, and it knows who you are and logs you into everything. That’s kind of how the experiences, but here you don’t even have to type in your Did you don’t have to remember it. Because web five can augment the workflow, the ecosystem can automatically pick up on who you are, you did also gives you access to something called a decentralized web node, which people have shortened for D wn, and that acts as your personal data store. So when you think of these centralized web nodes, or DWNs, you can kind of think of Dropbox but this one is your personal Dropbox. And here’s the reality of products like Dropbox. This is not like, can’t like come in at the the product or anything like that low boom. But products like Dropbox, because they’re centralized. They can change their terms of service, they can access your data, they can even shut down your services leaving you without access. And here’s the thing, DWNs don’t do that. They provide a personal space where your data is stored, and you decide who gets access. You might be thinking, who cares? I get it. I was the same at one point. I’m like, you know, this is how the internet is. I don’t know anything else beyond that. But here’s the thing today, users don’t own their data. Like I don’t want my data on the internet. Our data, as you can probably tell is often sold and exploited for Africa. Have you ever been sitting down and you’re just thinking about like, I don’t know Oreos, and then you see a commercial for it? And you’re like, what? How did you know that because it’s it’s getting our data on these applications are feeding our data, getting our data and then selling it to other companies for advertisement purposes. And we often think we have ownership of our data because we can do things like create accounts, and content, but behind the scenes, companies can just delete our accounts if they wanted to. And even if you did delete your account on your own platforms could essentially retain our data for unknown purposes. So here are some moments where lack of ownership has backfired in the real world. Recently, someone tweeted that PlayStation essentially sent out a message saying like, hey, some of the digital games that you paid for and owned aren’t going to be there anymore, we are removing access, because we’re not supporting it anymore, or whatever. People are outraged. They’re like I paid for this, I should still be able to have access to this. Here’s a case where maybe the centralized ownership could fall. Another example, if y’all have remembered Twitter, recently rebranded X, and it caused a whole bunch of commotion, including the fact that they’re like, Okay, our username, the Twitter username is Twitter. But now that we’re rebranding to x, we’re going to change our user name to X. Here’s the thing, it already that handle already belongs to someone or so he thought until they sent a message that said, like, they’re x 1234567, whatever the user handle associate associated with account X is affiliated with our organization. So they essentially just took this person’s username, it did not belong to Him. And that made me be like, Oh, my God, like my branding is blackgirlbytes. And if someone took that, I will be so upset. Another thing is things like forgetting my password, I am locked out of my first Twitch account that I’ve ever made, because I forgot my password. And then it wanted me to go through like two factor authentication to just confirm who I am. But that was on a different phone that I own. So I was forever locked out. And now my twitch handle has to be black robots one. Another example is there’s often discontinued products if you’ve ever gone to if you haven’t checked out killed by Google. And they’ve essentially like discontinued a whole bunch of projects. Part of one of them is Google podcasts, which my manager and she was pretty upset about, because that’s what she uses. So she’s like, dang, that’s all the stuff that I was listening to on the daily gone. Another example is lost data. I recently saw that about 578, people have messaged to Google support, that their files in Google Drive have suddenly disappeared, they only can see everything from May 2023. And before. Also, I wanted to just mentioned that even the inventor of the World Wide Web intended for the Internet to be a place where we owned our data. His name is Tim Berners Lee, if you don’t know. And here’s a little quote from him. He says, I think the public has been concerned about privacy, the fact that these platforms have a huge amount of data, and they abuse it. But I think what they’re missing sometimes is the lack of empowerment, you need to get back to a situation where you have autonomy, and you have control of all your data.

Rizel Scarlett 18:30
Here’s the last concept I wanted to introduce to you all before we actually go ahead and build our application is this idea of verifiable credentials. verifiable credentials are essentially like digital proof of your identity. And here’s the cool thing. TBD within Web5, is not the only ones working on this. There’s known organizations such as Okta that are working on verifiable credentials today. And you may have even used verifiable credentials or something similar in the past. For example, some states have issued digital driver’s license. So now you can just show your driver’s license on your phone, you don’t have to carry around the card, which will be great for me, I wish Massachusetts would do it, because I lose everything. And then also, some people have had digital COVID vaccine cards. So maybe you’re going into a building and they’re like, hey, you need your vaccination card. And you you’ve been lost that little tattered up paper card that they gave you at CVS. So now you can just show it on your phone. I wanted to quickly show a website called verifiable credentials, dot dev that was created by octave. So if you’re curious on a little bit more about verifiable credentials and what they could look like off that is actually like working on this. I don’t know if it’s necessarily a proof of concept, but I’m really excited to learn more about it. But like, here’s an example They have like ID card and university degree vaccine proof and proof of employment as well. Alright, let’s head back over here. So just wanted to end this portion, not the whole thing, but and this portion by saying like, let’s step into the future, let’s embrace the future of privacy, so that we’ll have rights over our data. And we have control over when our data gets deleted. And when it’s deleted, it’s deleted for real, and we get control over who can see our data. So what we’re gonna go ahead and do is we’re going to start kind of coding ourselves. But before I do that, I do want to check the chat. Just double check if people have questions. Oh, awesome. Just Brian said he got locked out of an account for a similar reason. Yeah, sucks.

Rizel Scarlett 20:49
Alright. So let’s talk about how we would store data in our personal data store called a decentralized web node. Now that we know what five is, we need to be able to put data in there, retrieve it, and so on and so forth. Here’s the awesome thing. A lot of times before I got into this idea of decentralized identity, when I would hear people talk about it sounded super complicated. It is a paradigm shift. But here’s the part that I found that’s been really familiar to me, on web five uses a familiar concept for me, which is crud. And that stands for create, read, update, and delete. Many software developers, I don’t want to speak for all of them. But they may have used this in their own like careers, where maybe you have to do API calls, where you doing a get a post, and so on and so forth, it uses these very familiar concepts. So what I’m going to do is I’m going to go ahead and go to the quickstart guide, if you wanted to check it out, you could. It’s at developer.tv dot website, slash docs. But I’m gonna go ahead and follow the quickstart guide. I’m like kind of code live for you all. So let’s go over here. Sorry about that, y’all. So one of the first steps on the quickstart guide, and I wish I could show you both at the same time, but that’s alright. So I’ve already like installed the, the package that we need, which is the web five API, so I don’t need to do that part. And I’ve imported it as well. But the next thing we want to do is we want to actually create a record in web five. So first thing I’m going to do is just paste this in here, hopefully, it’s legible enough for you all. But here’s what we have, right. So the first thing we want to do is we want to automatically connect to the web five ecosystem. So we’re gonna get that and we’re gonna get like this instance of what CLI and we’re also gonna get the our decentralized identifier, I’m gonna name this resulted because my name is Russell, not Alice. So what we can do just to seed proof of this is I’m going to console log my own did.

Rizel Scarlett 23:01
And we’re going to run it. And I’m going to go ahead and do node Quickstart dot j s. All right, and you can see your your did is this will long, alphanumeric string. But don’t worry, you do not need to remember it, because you can just take it around with you. But as you can see, it starts off with that schema that I told you about starts off with the method I on. And then here’s like this thing that identifies who I am. Alright, next thing I want to do, once I have my data is I actually want to store something inside of my DWN. So I’m gonna go ahead and copy this. And I’ll comment this out. And what I’m going to do, so I’m going to store some words, I want to say hello, well, five, maybe since this is a Mean Girls themed, you can say so fetch. For those who watch mean, girls, you get the reference. So I’m gonna go ahead and console, log that and see what that gives us. So what it’s doing right and creating the record on when it’s getting stored in that D wn, and I’m getting upset, telling you the data format text plain, it’s not like JSON, or mp4 or whatever, you can store whatever type of data you want in here. So if I go ahead and run this, we’ll see this object. It’s a lot in here, right? But it’s just information about the record. It kind of says like who created it. So I’m the author right here you see my did, you could see what type of method I use, I use the right we can see when it was created, and so on and so forth. Alright, next part we want to do really quickly is we actually want to read that method or that record, we want it to print back out to us. So I’m going to go ahead and comment this out. Just just so we don’t get too confused. I’m going to go ahead and do something like this. And this is going to read our record for us. I’m going to press console log, that read result. And what we should see is the words. So fetch, once I printed out, I’m gonna clear my console. Ah, it’s not really an async function, I guess. So let’s see. Really quickly, maybe I can do something like that, and then return it.

Rizel Scarlett 25:42
And okay, and then I’m just gonna call on me. Hopefully this works. For some reason, when I call it a lot. I forget everything. Record is not the fight. Oh, TA is because I, I commented this out. I didn’t even need to do all what I was doing. Alright, I’ll take this back out of here. All right. Okay, let’s run this again. And here we go, we got the word. So fetch. So we so far have been able to write our record, we’ve been able to read the record. And now we actually want to update the record. Hopefully, I don’t make a mistake here. So in terms of updating the record, we’re going to do something like, hopefully, are cool. So I wanted to say that maybe I could say, making web five happen. Um, and maybe let’s see if it actually console logs, this updated result, maybe we’ll see that I have ever that’s already recognized defines again, I keep doing that. To, here we go. So this basically gives us like, hey, it was successfully updated. So maybe what we need to do next, if I can remember is maybe we could actually get the record out here. So give me a quick second. What we want to do is this

Rizel Scarlett 27:50
There we go. So we have the updated result, and it says I’m making what five happen. And then last but not least, we want to go ahead and delete that record. So I’m gonna grab this, then do that. And we’ll just, we’re just gonna go ahead and see that this result was actually to lead it. And I think what will make the most sense here is I take this part of, and it’s just gonna say like, Hey, this was successful or not, it might not be Yep. Let me see.

Rizel Scarlett 28:46
well, Ah, here we go. I’m like trying to read the deleted result. Here we go. Awesome. So it was successfully deleted. So within all of that, we got to see like me writing a result, which says, Go fetch, then we got to read it. And it printed out that it was like successful. And we also got to see that it said, so fact, after that, we updated it on to say, I’m making web five happen. And then, um, after that we didn’t need it. So we got that part out. Someone said, where are these records stored on her local PC? So there are, let me just double check some of the chat. Awesome, thank you. Thank you so much. So this is getting stored on like, yes, locally on my local DWN, or my local data storage, and people don’t get access to it, but I will expand a little bit more to see if that helps you to gain more understanding. Let’s go back to our slots. So that was just the quickstart guide, but we’ll go even deeper so Next thing I want to show y’all is creating did so you thought that you can automatically create a did. But you can also do it just like on your own like manually. So here’s some examples, we’re not going to watch me type it all up, which is really great. So we don’t have to get tired. But basically here we have different ways or different methods of this, right. So you have different types of deeds, you might have a dead ion, they all do have different purposes or return slightly different data. So they’re and this is just like within the entire decentralized identity ecosystem, many different companies make different types of design methods. So if you wanted to make a did that was like a good key method or the DHT method or an ion method, you can use web5 for that. So as you can see here, we’re just going to make a DID key and it DID DHT method, and we’ll print it out, I’m going to go ahead and run this. And I’m going to do node index.js. And here we can see, this is a lot. But here we can see first, it created the did key method for me. And then underneath it has a dot method. And it’s a little bit like there’s a little bit less information in the DID DHT method, even the alphanumeric string itself is a little bit shorter as well. So especially shorter than the ion method that we were using before. So they all provide different benefits depending on like why you want to use it. Alright, and so sorry, Brian, I know, I’m like switching between coding and slides. Alright, cool. So here’s the next thing I want to talk about. And protocols are where the magic happens, I think for a long time. And let me go back to where I was reading my slides. For myself, here we go. So for a long time, I was like, how exactly do you accomplish this data ownership part where you’re deciding who can read the data, who doesn’t have access to the data, because all I’m seeing is like we can store data in our DWN. But what else, and basically, you use something called protocols. And protocols are just JSON objects that will structure your data and help you decide who gets access to that data. So here we can see in this example, I’ve defined the protocol. And at the bottom, we have something called actions. Well, first, let me go over here. And the data within my protocol is called a thing that’s going to be using the schema and the data format is going to be application JSON. But skipping ahead to my favorite part, which is this actions array, it decides on who can be able to create this type of data in your decentralized web node, who will be able to read the data that you create, on and so on, so forth. So here we can see that anyone that uses my application can write a thing, but only the author can read their own their own deck, and only the recipient can read their own thing. So basically, only if I sent Brian a message, we would be the only people that would be able to read that thing. Alright, so we’re gonna go ahead and jump into building our burn book. And let me show y’all we’re, what I’m doing. And we will switch into the code really quickly. So I’m going to do this really fast. If you did want to follow along, I guess I should have given Brian this link, but maybe I’ll show it to you all in the end. Let’s see if I press join chat. No, I’ll show it to you all in the end. And I’ll just paste it into the private chat. So what you can do, if you wanted to try this out on your own in the future, is I created this little starter tutorial that you can follow through.

Rizel Scarlett 33:58
But here’s how we’re going to start off. First, right now we have this web application, it’s half finished, right? It has some of the structure in place, but it doesn’t have all of the web class methods. First thing we want to do is actually initialized when five wants to project loads. So what I’m going to do is within my youth effect method I’m using Next.js and react. So if you’re familiar with Next.js, you’ll know but basically right now as soon as my project loads, I want it to create a DID and I’d want it to connect to the webweb5site ecosystem. And then I’m also going to have it set those state variables for me. Next thing I want to do is I want to go ahead and create my protocol. And we kind of seen an example of this earlier. So I’m going to look for where we define this protocol right here. And what we can see is I have our burn book. This is like the day Just structure and who gets access to it and how it’s going to look. So our burn book is going to have two types of data, we’re going to have secret messages that only we ourselves can see. And then we’re going to have direct messages where we can maybe share a message with one person. So here’s the rules of interaction for our secret messages. Only an off, anyone can write a secret message, but only the person who wrote the secret message will be able to read it. And then in terms of direct messages, an author can read their own direct message, a recipient, whoever receives that direct message, can also read it, and anyone can write it. So here’s the big difference between the two of them, but a secret message only you can read it, you the person that wrote it can read it. And within the direct message, you’re saying, the person I sent it to can read it, and I can read it. Next thing we want to do is, we’re gonna do something called querying our protocol. So when I say that now put both of them. Or, yeah, let me put both of them so we can see it. I’ll focus I’ll focus. But basically, we’re acquiring a power, right. So everything is stored on the DWN and including the rules of how you structure your data. That includes your protocol. So here, we’ve we’ve defined our protocol, it’s going to get written to our dw and But first, we’re going to check rd wn to see if that protocol already exists. And that’s why we’re searching for it. We’re like, okay, hey, DWN, what do you see a protocol that matches this URL that we’ve specified right here. Then next thing we want to do, I’ll also do it for the remote protocol. So you have a local DWN and a remote DWN as well. Next thing you want to do is you want to be able to install it. So installing it is basically creating this shared agreement that like, Yes, I agree to using this applications protocol. And like anyone that goes on to the app, so you get the choice if you want to do that. So I basically have this method that’s called to install it if the person is looking to interact with the app with the DWI, or what my DWN. So the overall logic, which is it sounds confusing, but the overall logic is going to be. First you define the protocol, then after that, you start to see if the protocol already exists on the DWN. And if it doesn’t, it’ll install the protocol. And if it is already there, it’s just going to say it’s already installed. And let me check the time. Okay, we’re doing pretty good. Next thing I want to do is I want to create the methods for actually writing messages to our DWN, or basically just handling like, hey, how do we handle like creating a secret message or creating a direct message.

Rizel Scarlett 38:07
So we’ll start with creating a secret message. When we create a secret message, what is going to do is basically what we did earlier, when we saw us do like the create method in the earlier Quickstart example, where I said, So fetch, so essentially does that same thing where I pass in my data, which is going to be a message object. And so it’s not saying so fetch, because it’s not plain text anymore. But I’m also going to specify different things like, hey, we want to use, we want to follow this protocol, we want this to be a secret message type. And we want it to use the secret message like structure, these actions, these interaction rules. And after that, we also specify who is going to get sent to and specifically is going to get sent to myself. So my DID is not going to get to sent to anybody else. As opposed to the direct message, the direct message behaves very similarly. But instead of saying, hey, the recipient is going to be myself or my did, the recipient instead is the like person I’m sending it to I’ll like insert inside of it input box, somebody’s the ID, and it’ll pick up on that and insert it. And the rest of it is essentially written out for us. So when we press the submit button, what’s going to happen is it’s going to double check if it’s a direct type of message, and if so, it’ll decide between who’s the target recipient, either it’s the person that we wrote in the input box, or it’s ourselves. And once it does that, it will construct our message for us, and it will write it and we also have a Oh, and here’s our message object as well. Here’s the text So we’re sending in, it has a little bit of more information like the timestamp, the sender, What type is it a secret, and I also have support for image URLs. After that, the next thing that happens is we just have something that handles fetching or retrieving those message messages, very similar to what we did in the Quickstart, where we basically just query the DW N, and we’re like, hey, we don’t want all the records from the DW one, we only want the records that match this protocol, and have this particular direct message schema or in terms of secret messages. We want it for the secret message schema. I think I scrolled past it too fast. But let’s go ahead and try this out. I am going to go to the final example of this. And that is over here. We are almost done. I’m surprised how well it did on time. Okay. And I feel free to ask questions after hopefully I am able to answer. Um, so I’m gonna go ahead and run NPM run ddevef to get this project going. And the way that I can thinks something else is running. But that’s okay. The way that I can test this because I’m not two different people as I can open a regular browser and an incognito browser as well. Let me check the comments before I move into that. Awesome Ebony’s answered some questions. Hi, Aaron. Awesome. So what I’m gonna do is I’m gonna open up maybe this browser here we go. Got localhost. 3001. Alrighty, so I’m going to maybe split it in half. I wonder if I can do that. And then maybe incognito mode. All right. So you can see them side by side. localhost 3001. Cool. So let’s try out just sending a secret message to ourselves. Demo gods be with me. Alright, so I’m just gonna say, Hey, this is my own secret message. And I’m gonna press Submit message. And here we can see immediately that this is like my own secret message. In my burn book, no one else can see this. If I want to say OMG. Like, I don’t know, teenage angst, what do teenagers say, I hate my mom. I don’t know, I never hated my mom. But whatever like secret message you wanted to put in here, you can, and you have the ability to also delete it. But let’s try out maybe sending a message to someone else, we’re going to try sending it to this person in incognito mode.

Rizel Scarlett 42:51
So I’m gonna go ahead and copy this person’s DID, I will paste it in. And I’ll switch this to saying I want to send a direct message. There we go. I’ll paste in the recipient ID right here. And I’ll say, Hey, can you see this message? Question mark, and I’ll press submit. So on my side, I can see that I sent it and I don’t have like it automatically pulling. So I do have to press refresh. But awesome. There, we saw that I said, this direct message to this person. And I essentially have control over who can see this data that’s being stored in one in my DW. And just by those basic interaction rules that I’ve specified, I can also try sending a message. So I’m going to look up like, image, I mean, not a message an image, I’m gonna look up an image of Mean Girls, and I’ll take this URL. See, I just want to make sure cool. And I’m gonna go ahead and say, hey, it’s the mean, girls. And I’ll put this image URL in, and I’ll press submit. So we see it on my side. Let’s see if we see it on the other person’s side as well. Here we go. Let’s go back to our slides now that we’ve seen this demo working in action. So so many different monitor screens I have I need like millions of monitors. But anyways, so right now we see that we can send messages to ourselves, and to transmit friends. But we can add so much more principle that all things are off to a really great start. So for example, we can do stuff like incorporate the use of verifiable credentials, which I mentioned earlier for things like moderation and reporting where users can report inappropriate content. And moderators can issue the cease to mark actions take it or even something as simple as maybe the students at the school saying, Hey, this is a trusted friend, I’m giving out a trusted friend verifiable credential, and I’m only enabling people to perform actions On my posts or messages, maybe I say, since you’re a trusted friend, you’re allowed to comment on it, or you’re allowed to screenshot or whatever. So if you wanted to get started with web five, you can definitely use my project as a jumping off point. But definitely feel free to just let your imagination soar. Here’s some other use cases for what glad maybe a place to store all your music playlists in one place. Full Review apps, voting social media, or personal data ball, I seen this really awesome project that someone made will apply, where he put all of these boring documents in there like documents, you don’t want to read from end to end, such as like your renter’s insurance, and then he incorporated AI into it. So he uses use the vector database. And basically he can talk to this AI chat assistant and say, hey, when does my renter’s insurance expire? Or when did this happen, or whatever, whatever information he needed, instead of reading it all, I thought that was really cool. Or you can even use it for healthcare data management. If you did want to learn more, you can check out the TBD website, I should have put a QR code. But I forgot to at developer dot TBD dot website, you can check out the TBD devs blog or my own blog at Black or bytes Dev. And you can also follow me on social media. My handle is at Black robots everywhere except for Twitch. And that is it. I am open to questions.

Brian Rinaldi 46:33
Thanks for so that was that was really really interesting. I love the demo. Love the Mean Girls references. Even though I was not a I am not a millennial. And Gen X. That’s

Rizel Scarlett 46:46
okay. If you if you love the mean, girls references, that’s all that matters.

Brian Rinaldi 46:53
Okay, so we did actually have some questions from the audience. I pulled down your slides here. Okay. So first of all, first question was, how much data can you store? In that detail? Yeah. Oh,

Rizel Scarlett 47:09
I got a double check. But from my knowledge, I don’t think there’s like a limitation of how much data you can store.

Brian Rinaldi 47:15
Okay, so So when you say it’s stored locally, like it locally in the browser would be like in what is that, like in? In local storage? Or, as you said, is stored locally and remotely? Is locally, it’s gonna be like local storage somehow, or is it? In?

Rizel Scarlett 47:35
Yeah. So let me just double check. So just to give a disclaimer, I still like to two and a half months into the job, so make sure to stay there. So yeah, from my knowledge you do have it’s like local to your computer from my knowledge, but I will double check. Once I get the answer to just make sure I’d say the wrong thing. I’ll message you. Just so you can make sure it gets out to everybody. But let me see what ebene says yes. You don’t have to worry about you. Okay. No, but yeah, so my understanding is local to your computer. And then we do have like, servers with reads a remote DW ends as well.

Brian Rinaldi 48:20
Okay. So so is that like the that’s where TBD comes into? This is the remote wn storage is that that’s kind of like what you would use? TBD for. Yeah. As you said, it’s a web standard. But it’s also like, it’s, you know, there’s remote. It’s there’s if there’s remote data, we ends up seeming, that’s where you like Lupin. TBD. And that’s eventually charged.

Rizel Scarlett 48:49
Okay, so So Evany explained deeper browsing memory, but I don’t know. So that’s where the local would be. But when TBD the part that TBD comes in for I think is more of the framework itself. Like that’s how I would think of it is more of the web five framework itself. But yeah,

Brian Rinaldi 49:11
okay. Yeah, I’m gonna, I’m gonna for those because some folks are on.

Rizel Scarlett 49:17
Oh, yeah. Can they copy some

Brian Rinaldi 49:19
of some of share some of what what ebony has said here on the screen? So we can, we can? Yeah, I think.

Rizel Scarlett 49:30
Yeah. And I think that was to Tim Trueblood, where he said is the idea that I don’t store user info on a SQL database or no SQL database. Yeah. Yeah.

Brian Rinaldi 49:38
And so like, yeah, she says that you have to get the permission. And yeah, and it’s sort of in browser. Okay. Yeah. Thank you. Evany for answer any questions. Okay, so I’m on Crowdcast. Ryan asks, how do people verify ownership of of D IDs like? She says, he says first samples, anyone can make a D ID and another person can copy and pose as a D ID.

Rizel Scarlett 50:04
They can’t, they can’t copy and pose as it. Because it’s using, like, the cryptographic principles. So just as if you wouldn’t, I think you can’t like, you know, with your YubiKey. You can’t just take someone else’s YubiKey and like, plug it in and be like, Oh, that shit, is that hold on, I want to make sure that’s a good analogy. Or if you were like, Yeah, I don’t I don’t think you can take some of the whole point of a UB keys, you can log in as somebody else. Right. So that’s how I tried to think of it. Whereas using a private and public key with cryptographic principles, so even if you had their D ID, you couldn’t just run around and use it because it has the like, didn’t knows who you are from, like, your actual computer and all that. Okay.

Brian Rinaldi 50:55
So yeah, so So I think it’s basically it’s, it’s, it’s just an ID, it doesn’t actually have, like, it only has whatever information you shared about yourself effectively, like, so it doesn’t actually know who I am. It’s just Yeah.

Rizel Scarlett 51:13
Yeah, just Yeah. Hold on. Let me let me clarify for like, I’m making it confusing. But yeah, so it doesn’t have like, this is result Bob, some folders results, Karla, whatever, it doesn’t have all of that information. But it just has like, basically, your like a private key and public key pair. So it’s like this is this person’s particular ID. And wherever they are on the Web, it’ll lock them in or give them authentication to that specific space.

Brian Rinaldi 51:40
Okay, okay. So, let me see we I’m looking at my, my notes for questions. Yeah. So, Erin asks, so it’s okay. Is it like a call to confirm the key. So that’s effectively what you’re doing with this SDK is you’re confirming the key key with that remote. Remote, dw, en sorry, learning terminology. And we wn and like, and then getting whatever information is stored there.

Rizel Scarlett 52:17
I want to make sure I understand you all, so. Okay. So when you do like web five, connect, and it created that did I might have went a little bit fast? I don’t know, can I share my screen really quick. So I show you all? Cool, because I think it will be better explaining if I share my screen. So right here where I follow up, I connect and it creates a did for me, that does, like one generate the did but it also gives me access or authenticates me to my specific DW. And I think that’s what you were saying, Brian, but I want to make sure that I said it right. Or answering your question, right? Yeah, I

Brian Rinaldi 52:58
was I was trying to phrase Erin’s question. So I think yes, yes. Okay. I think that that seems. Okay. The very cool. I did, you know, I wasn’t I wasn’t even aware that like, this was standards thing. You know, there was, you know, I think between web three and what, five and two, it’s like, um, like, I don’t know, I don’t know, I can’t

Rizel Scarlett 53:24
It’s like another another version, but it’s not so. So what five title? I do think that confuses people. And it confused. Me too. I think there’s another version of web three, but it’s really just a play on the name of web three. So they’re just like, hey, we like some of the ideas that came from web three were on maybe things should be decentralized. But this is not necessarily on the blockchain. It’s just essentially just creating decentralized applications without necessarily needing the blockchain. So it’s like, we liked these ideas of what, three, we liked these ideas of web two. And instead of like, oh, replacing everything, we want to combine both and like, give these web two technologies that but yeah, I know, it can be like, another another version of web three, and you might feel skeptical.

Brian Rinaldi 54:16
Yeah, so I, that was I think, what, until I started digging into it, because once you propose, it was like, Okay, let me dig into it. I don’t, I don’t really know anything. And then it’s like, okay, this is not really like a web three. It’s, I mean, to me, it’s, it’s, it’s almost like, okay, we’re replacing what would essentially be, like we’d use like, someplace like an Aussie Euro, or, or like some other authentic identity provider, but you’re actually using a Webster’s based identity. That’s cryptographic, you know, and that’s what essentially sounds like to me. Yeah, you could, in theory, replace those kinds of identity providers with with that is kind of an identity provider, which makes makes sense if you can eliminate the need for passwords and stuff like that.

Rizel Scarlett 55:06
Yeah, I think of it that way too.

Brian Rinaldi 55:09
Sorry. I mean, it does sound a little bit like, like back in the day there was still kind of exist. But open ID was an attempt to make everybody have like, but it never I wasn’t really like a web standard built in web standard kind of thing. So yeah, maybe a little like that as well. Yeah,

Rizel Scarlett 55:26
no, I think so too. I was I, when I first started diving into it, I’m like, okay, there was like, I think, like another step and who like how we authenticate, like, firstly, we had username, password, and we have like, multi factor authentication. And then we have like, I know, GitHub started using pass keys. And so like, this is like an additional like, hey, let’s make it even easier type of stuff. And it does have like, some calls out to like more retro, retro things, like you said, like stuff from stuff from back in the days.

Brian Rinaldi 56:02
Yeah, yeah, exactly. Like mean, girls. Is that built into the protocol?

More Awesome Sessions