[00:56.130 --> 01:00.030] Hey folks, we are going to get this party started here. [01:00.030 --> 01:04.150] My name is Kaitlin Bowden, or Metis4. [01:04.250 --> 01:10.610] My co-presenter is Christian Ryu, aka Dildog, and we're here to talk about Valid. [01:16.890 --> 01:24.050] So Valid is a privacy-oriented application development framework. [01:24.050 --> 01:25.550] You might have heard of it. [01:25.550 --> 01:37.550] If you haven't yet, we're going to tell you all about it and give you some ideas about how you can help and what's been done over the last few years since we released the framework at DEF CON. [01:38.710 --> 01:43.210] Meanwhile, we actually have a third co-presenter. [01:43.210 --> 01:44.290] This is Elit. [01:44.290 --> 01:46.810] This is the mascot of Valid. [01:47.310 --> 01:48.950] They are a brick. [01:49.210 --> 01:50.990] Their pronouns are he, them. [01:51.870 --> 01:59.810] Now, we chose a brick as the mascot simply because bricks, when working together, can build amazing things. [01:59.870 --> 02:03.670] But also, one brick, if thrown properly, can change the world. [02:06.030 --> 02:11.290] Sometimes I get a bunch of little bricks and throw them out to the audience, but I didn't do that this time, so I'm sorry. [02:11.510 --> 02:16.230] Yeah, you missed the foam brick thing where you usually throw them. [02:16.330 --> 02:20.210] Anyway, let Elit be for himself for a second here. [02:20.670 --> 02:22.790] Give you an idea of what this is all about. [02:23.350 --> 02:25.310] Hi there, I'm Elit. [02:25.310 --> 02:30.770] I'm a brick, and I'm the mascot for a cool new privacy project called Valid. [02:31.110 --> 02:34.370] At this point, you're probably asking yourself, what is Valid? [02:34.370 --> 02:37.490] But to answer that, we have to go all the way back in time. [02:37.490 --> 02:43.090] Back to 1984 in Lubbock, Texas, when the world's longest running hacktivist group, Cult of the Dead Cow, was born. [02:43.090 --> 02:48.910] For 40 years, CDC has been changing the world with hacking tools, text files, and hacktivism. [02:48.910 --> 02:51.390] In fact, they even coined the phrase. [02:51.750 --> 03:01.610] Fast forward to the summer of 2023 at DEF CON, when two members of the CDC, Dildog and Menace4, released a brand new privacy project called Valid. [03:01.610 --> 03:03.170] And now you're all caught up. [03:03.250 --> 03:06.450] But wait, no, seriously, what the heck is Valid? [03:06.450 --> 03:10.850] Short story, Valid is an open source peer-to-peer app framework to build privacy for all. [03:10.970 --> 03:12.450] But like, what does that even mean? [03:12.450 --> 03:13.430] How does it work? [03:13.430 --> 03:13.710] What? [03:13.710 --> 03:14.950] What the heck is this? [03:15.270 --> 03:19.750] Well, to explain that, we've got to break down some myths about how online communication works. [03:20.070 --> 03:22.110] So let's break this down. [03:22.150 --> 03:26.070] You have you, your device, your phone, you want to message your bae. [03:26.070 --> 03:28.570] So you just shoot them a text, right? [03:28.570 --> 03:31.170] They shoot a text back, that's how it works. [03:31.530 --> 03:32.850] Ehhh, wrong! [03:32.850 --> 03:34.350] That's not how it works. [03:34.350 --> 03:35.950] This is what actually happens. [03:35.950 --> 03:43.730] Alright, so you have your device, you have your bae, you want to text them, but in between there's Apple, there's a cloud, there's some servers storing everything. [03:43.730 --> 03:49.190] There could be a social media overlord reading every single one of your messages, or even the government. [03:49.210 --> 03:55.450] Either way, there's always somebody in the middle, listening to your conversations, storing them, possibly selling all your data. [03:55.450 --> 03:59.290] And if they're storing it, that means that hackers have the possibility of getting into it. [03:59.290 --> 04:01.070] And then who knows where it goes. [04:01.130 --> 04:06.110] And what Valid does is take out that middleman, so it's just you and someone else chatting, privately. [04:06.490 --> 04:09.990] But wait, Elliot, if there's no servers, how does that even work? [04:09.990 --> 04:11.390] So let's break this down. [04:11.390 --> 04:14.650] You little pink dot, over here we have bae, and you little green dot. [04:14.650 --> 04:22.850] In between the two of you, rather than servers or some social media overlord, you have purple dots, nodes, that are helping to transfer your messages. [04:22.970 --> 04:28.910] A node is just like you, except they can't read anything that you're writing, because it is all encrypted. [04:29.010 --> 04:32.090] Which keeps your data safe from prying eyes. [04:32.250 --> 04:35.730] And Valid is a network made up of all of these nodes. [04:35.730 --> 04:36.850] Lots of them. [04:36.850 --> 04:42.010] Each node is a different app, and can be a different , completely different thing, but they all support each other. [04:42.010 --> 04:46.010] It doesn't matter if one app is bigger than the other, they're all equal. [04:46.030 --> 04:49.250] So every bit supports the network itself. [04:49.450 --> 04:53.030] You're a part of the network, bae's a part of the network, we all are. [04:53.030 --> 05:01.470] So rather than the internet being, you know, Jeff Bezos' cloud, the internet belongs to all of us, with communication between us, how it's supposed to be. [05:01.530 --> 05:02.450] Nerd alert! [05:02.690 --> 05:07.110] And then encrypted, which is upgradable, it's written in Rust, with Flutter, binding similar to Tor and IPFS, but faster, and it's completely distributed. [05:07.110 --> 05:16.450] It's a brand new way of privately communicating with your friends, with no social media oligarchs, no government, and no servers storing your data, keeping it safe from prying eyes. [05:16.490 --> 05:25.950] Because Valid is an open-sourced app development framework, anyone can build any kind of communication app on top of it, with privacy and security built in. [05:25.950 --> 05:30.990] We've built a great community of people working together to build apps that are secure and usable. [05:30.990 --> 05:34.390] All we need is you to bring your ideas and your talents to the project. [05:34.390 --> 05:40.850] So come check us out on Valid.com, and on Twitter, at Valid Network, at least until we've built something better. [05:40.850 --> 05:44.290] I hope you learned something from this video, and come join us on Valid. [05:44.310 --> 05:46.170] Meanwhile, Elit out. [05:47.030 --> 05:48.290] Thanks, Elit. [05:51.140 --> 05:54.780] I'm not very good at animation, but I did my best there. [05:56.460 --> 05:57.280] Thank you, thank you. [05:57.280 --> 05:59.620] I used procreate and screenshots. [05:59.620 --> 06:00.760] There you go. [06:00.880 --> 06:05.900] Either way, that was a nice little visual representation of how Valid works. [06:05.900 --> 06:09.840] But there's so much more to it, and we're going to get into that. [06:10.180 --> 06:18.100] So Valid, first of anything else, is a framework for building applications. [06:18.160 --> 06:22.160] It is not a standalone thing on its own that you run. [06:22.660 --> 06:28.680] You, as a programmer, write your app on top of Valid's core. [06:29.620 --> 06:33.520] Or you, as a user, use an app written by a programmer. [06:33.520 --> 06:33.880] Right. [06:33.880 --> 06:39.300] You might be using a Valid app without even realizing it's Valid-powered on the back end. [06:39.300 --> 06:46.080] The whole point is that Valid applications look and feel like every other app out there. [06:46.080 --> 06:53.820] They'll feel like your social media app, your messaging app, your patient portal app. [06:54.100 --> 07:05.260] All the apps that you're used to getting from the app store are generally using some kind of centralized communications model, with servers on the back end. [07:05.260 --> 07:24.600] Our goal is to make apps that have a peer-to-peer communication paradigm, but not require that the consumer of the app is some kind of privacy expert or some kind of networking genius. [07:25.560 --> 07:32.920] So we made this framework to make and lower the bar for development of peer-to-peer applications. [07:33.240 --> 07:41.360] It's an open-sourced Mozilla Public License 2.0 framework that is primarily written in Rust. [07:41.460 --> 07:49.040] So we built on top of a memory-safe, highly cross-platform environment to begin with. [07:50.440 --> 07:57.620] Conceptually, you can think of it as sort of the offspring of IPFS and Tor. [07:57.620 --> 08:17.000] So if you had, like, the distributed storage of an interplanetary file system, but built for highly high-churn, low-reliability networks, like, say, your cell phone, people are using apps that have to work offline. [08:17.500 --> 08:25.880] You can't require a peer-to-peer networking stack that won't work when you drive through the tunnel. [08:26.760 --> 08:36.580] If the network drops, you switch cell towers, your IP address changes, that adds all kinds of interesting complexity to the low level of a framework like this. [08:36.580 --> 08:43.040] It has to just work, despite environmental challenges. [08:43.980 --> 08:53.720] So one of the hard parts of dealing with peer-to-peer is the cryptography is daunting. [08:53.780 --> 09:01.640] If you're going to have a very different non-centralised trust model, you need to have cryptographic support for that. [09:03.200 --> 09:12.700] Valid has a strong crypto background and a core that is built in. [09:12.760 --> 09:14.200] It's opinionated. [09:14.820 --> 09:21.720] We've done our research, so other people don't have to, and we're trying to make it very hard to use the tools we build incorrectly. [09:22.100 --> 09:27.560] It's very easy to throw the crypto stick at things and just get it wrong. [09:27.880 --> 09:30.720] We want to build fully distributed apps. [09:31.260 --> 09:40.900] Unfortunately, Web 3.0 came along and decided for us that the blockchain was the future of the internet or whatever. [09:41.780 --> 09:48.920] Yeah, there's some interesting privacy implications alone for the distributed ledger that can't ever be erased. [09:49.060 --> 10:08.820] I'm not going to go there, but there's also this notion of transactions that people have kind of bought into, and we're trying to reduce the need for a transactional system where you have to buy in to some coin in order to participate in what would otherwise be the future of the internet. [10:10.400 --> 10:13.800] We want people to be able to make user-facing apps. [10:13.800 --> 10:20.440] You can participate and just help the network by running one of our apps, which is a headless node that just runs Valid. [10:20.480 --> 10:41.000] But what you're running is a tiny Rust core that takes maybe 1-2% CPU on average, and at last check, I think it requires 30 megabytes of memory to run and provide the support to the network at large. [10:41.000 --> 10:54.080] So it's extremely thoroughly optimized and the kind of thing that could run on embedded systems someday and designed to be a very tight, not bloated core. [10:54.540 --> 10:58.060] We have bindings for Flutter, Dart, Python, and browser JavaScript. [10:58.060 --> 11:05.040] It runs on Windows, Mac, and Linux, and iOS and Android, and WebAssembly inside a browser. [11:05.040 --> 11:10.060] So all of these different environments are capable of hosting Valid applications. [11:11.300 --> 11:20.480] We first came up with this idea in 2020 and noodled on all kinds of interesting use cases, and we're going to get into that. [11:21.960 --> 11:26.200] It sounds a lot like Pied Piper, right? [11:26.520 --> 11:29.300] Has anyone seen that? [11:29.300 --> 11:29.760] Yeah. [11:29.760 --> 11:40.480] It sounds a lot like Pied Piper, but we're actually going to be doing this in a way that doesn't involve the corporations, because really that, you know, need for money is the downfall in the show. [11:40.600 --> 11:41.540] So yeah. [11:41.800 --> 11:43.360] We'll get into that more. [11:43.360 --> 11:43.500] Yeah. [11:43.500 --> 11:52.800] So we did start a nonprofit to help us, you know, get donations and whatever to help with community and all that. [11:53.700 --> 11:56.540] We presented the idea at DEF CON 31. [11:56.540 --> 11:58.840] We had a nice big crazy party about it. [11:59.080 --> 12:00.920] There were hot dogs thrown into the audience. [12:00.920 --> 12:02.400] Yeah, sorry about the hot dogs. [12:06.120 --> 12:14.180] We didn't open the packages of the hot dogs, we just threw out the whole package. [12:14.180 --> 12:16.240] Anyway, yeah. [12:16.240 --> 12:18.340] So we also started a community on Discord. [12:18.700 --> 12:42.220] Until we can build something better than Discord on Valid, of course, but we amassed a community of, was it, almost 3,000 people and people from all kinds of walks of life, you know, people who have just a passing interest in privacy through to career developers who want a new way to write applications and privacy advocates. [12:42.980 --> 12:45.540] So yeah, this is how it's going. [12:45.780 --> 12:50.700] You got my 10x engineer slide here, right? [12:51.460 --> 12:53.560] Come on, I have little blinky dots. [12:53.640 --> 12:59.100] But we've been working on things like documentation, making this consumable to developers. [12:59.100 --> 13:00.420] We have a book. [13:00.440 --> 13:07.680] It's a wiki-style MD book that you can compile and it's like the Rust documentation. [13:07.900 --> 13:14.940] We have actual published Rust doc for the crates and various other guides on how to set things up on our GitLab. [13:15.700 --> 13:26.820] And to ask people that have built something like this that is huge, highly recommend you document as you go along, because trying to go backwards and document afterwards is the worst. [13:26.820 --> 13:41.920] It, you know, some of the best contributors in our, in our ecosystem and our Discord are the people who are willing to transcribe my rants and just make sure that everything gets captured somewhere. [13:42.020 --> 13:45.900] I can't, I can't thank the community enough for people willing to do that. [13:45.900 --> 13:46.800] Exactly. [13:46.800 --> 13:50.880] And when we talk about the Discord community having diverse members, that's what we mean. [13:50.880 --> 13:55.680] It's not all high-end 10x engineer, you know, developers there. [13:55.680 --> 14:00.600] In fact, we are actually encouraging people that are outside of tech to join in. [14:00.640 --> 14:07.400] Legal, people that know marketing, people that can do animations, because as you saw, mine is not that great. [14:08.160 --> 14:10.480] But all of these things come together. [14:10.480 --> 14:17.320] And if you want to build an app, come join in, and we will help provide the other parts that you might need. [14:17.340 --> 14:20.640] If you're a technical person, we help provide that human element. [14:20.760 --> 14:25.640] If you need help with like legal, we have people that will help you and advise you from there. [14:25.640 --> 14:27.240] And that's what it takes. [14:27.240 --> 14:30.600] It takes a village to build something that is worthwhile. [14:33.240 --> 14:37.620] So Valid is a framework, but it's also a set of core beliefs. [14:37.760 --> 14:41.380] And the biggest one is that everybody deserves privacy. [14:41.380 --> 14:57.540] And when I say everybody deserves privacy, I mean everybody from the, you know, most elite tech people to your grandmother, to sex workers, to people in countries that have, you know, very few privacy laws. [14:57.580 --> 14:59.680] Everyone deserves privacy. [14:59.680 --> 15:03.780] And they deserve it in a way that is accessible to them. [15:03.780 --> 15:22.180] We're going to get more into what we mean by accessible, but essentially, we want to make it so that privacy is as easy for people to use as Google, as Facebook, as all of these companies that have already come in and collected people's data because they made them feel comfortable. [15:22.560 --> 15:29.820] And we firmly believe that the only way to do that is to take capitalism out of the equation, period. [15:30.400 --> 15:32.180] He has his day job. [15:32.180 --> 15:33.840] I have my day job. [15:33.840 --> 15:35.860] None of us are making money from this. [15:35.860 --> 15:41.660] There is no financial incentive for us to build this. [15:41.660 --> 15:44.320] We're building it solely because it needs to be done. [15:44.800 --> 15:48.960] It's open sourced so that it is out there. [15:49.560 --> 15:53.020] We, you know, anyone who wants to can build with it. [15:53.020 --> 15:57.560] We are doing our best to encourage a community of good people to build good things. [15:57.640 --> 15:58.760] But it is a tool. [15:58.760 --> 15:59.620] It's a hammer. [15:59.620 --> 16:01.860] Most people use hammers to build houses. [16:02.360 --> 16:06.500] But every tool is a weapon if you hold it right, according to Anita Franco. [16:06.500 --> 16:10.340] So it is true. [16:10.340 --> 16:13.440] But we are doing our best to build great things. [16:13.440 --> 16:21.280] And we believe in the, you know, the reasoning of it's worthwhile to just build things, period. [16:21.280 --> 16:25.900] If it gets privacy into the hands of everybody, that's worth it. [16:25.900 --> 16:30.020] And if Mark Zuckerberg curses my name at night, I'm happy. [16:30.480 --> 16:32.680] We all have our motivations. [16:34.200 --> 16:46.360] So designing this thing had to be, you know, we had to consider a lot of different risks. [16:46.420 --> 16:49.000] You know, risks to privacy. [16:49.000 --> 16:58.680] We are going to get into all of the challenges of, you know, the environment around a project like this. [16:58.880 --> 17:05.260] Not everyone has a vested interest in making sure that everybody's private data stays private. [17:05.300 --> 17:20.680] So there's a lot of people who, you know, through their own, like, business and through their influence, would oppose a project like this. [17:20.680 --> 17:21.700] So there are risks. [17:21.700 --> 17:28.200] And we have to consider, you know, how to mitigate those through design. [17:28.240 --> 17:37.700] We have to make it very, very hard for people to do the wrong thing, either with the platform or externally against the platform. [17:37.700 --> 17:49.600] So designing for resilience, designing for security first, you know, it's no, you know, we have to assume that people are going to attack the infrastructure as it comes together. [17:49.940 --> 18:02.880] We have to assume that someone's going to profit from it going down one day or having a bad day or having some app expose things that we said, you know, if done right, wouldn't happen. [18:05.220 --> 18:07.780] You know, so we want everyone to be able to use it. [18:07.820 --> 18:09.520] You know, we want to make it accessible. [18:09.980 --> 18:12.940] But we also have to make sure that people can trust it. [18:13.220 --> 18:16.200] And that they can trust their data to it. [18:17.140 --> 18:24.560] So you can see here on this slide here that we did think through, you know, things like memory and type safety and the cryptography. [18:25.020 --> 18:28.860] And that we are designing for resiliency first. [18:29.280 --> 18:35.640] We have some interesting philosophies about security. [18:37.880 --> 18:40.360] You're familiar with full disclosure. [18:40.540 --> 18:43.460] We've gone a step beyond full disclosure. [18:44.780 --> 18:52.580] You know, there's this whole like, you know, responsible versus full disclosure debate that, you know, has churned for the last 20 years in this industry. [18:52.680 --> 18:59.940] We are actually publishing exploits against our own network in our code base. [18:59.940 --> 19:19.320] If you report something to us, we will not just give you credit, we'll help you build the exploit, fix it, and commit your exploit to our repo so that everybody can see your research and to show and to prove that we fixed the issue. [19:20.080 --> 19:26.980] So, yeah, I don't know of any other organizations that distribute the exploit code that's used against them. [19:26.980 --> 19:31.720] So, you know, we're taking things extremely seriously and just have a very different track on this. [19:31.720 --> 19:39.620] We don't have any, you know, we're not going to lose any money because of exploits and things. [19:39.620 --> 19:55.080] We're not making any, so better to show people what we've done through, you know, directly promoting the work that hackers have done to help us get more secure. [20:04.900 --> 20:17.360] So, you know, we're taking things extremely seriously and just have a very different track on this. [20:17.360 --> 20:18.880] So , yeah , I don't know of any other organizations that distribute the exploit code that's used against them. [20:18.880 --> 20:24.580] We're not making any, so better to show people what we've done through, you know, directly promoting the work that hackers have done to help us get more secure. [20:25.580 --> 20:33.260] We need people that are in the room to tell us, okay, hey, this color is probably a better background color because we might be able to see it a little easier. [20:34.660 --> 20:36.400] You know, we talk about accessibility. [20:36.400 --> 20:38.820] We also want to make sure that this isn't slow. [20:40.340 --> 20:41.600] I mean, I love Tor. [20:41.600 --> 20:42.900] I love the concept of Tor. [20:42.900 --> 20:47.280] As you see, we did some, you know, onion routing when I showed that video earlier. [20:47.280 --> 20:48.780] We don't call it onion routing. [20:48.800 --> 20:50.260] We call it ogre routing. [20:50.440 --> 20:52.940] Just because ogres are just like onions. [20:53.020 --> 20:53.980] They have layers. [20:55.500 --> 21:03.360] But we are trying to take the best parts of these things that have already been built, put them together in a way that is usable, fast, and accessible. [21:04.500 --> 21:06.120] Meaning you can use it. [21:06.120 --> 21:09.440] You can use it the same way that you would use any form of Internet. [21:09.660 --> 21:15.040] You can use it on your phone because that's how most people are accessing the Internet these days. [21:16.040 --> 21:21.680] Originally, we had just envisioned things like, you know, secure private messaging. [21:21.680 --> 21:26.080] Which we do have an app in beta for that. [21:26.860 --> 21:32.640] We have discussed future social media projects or a way to store content privately. [21:32.640 --> 21:41.260] These are the things that we thought of, you know, just as a very small group of people when we first, you know, approached this idea. [21:41.260 --> 21:46.880] Since then, the community has brought us some use cases we never even imagined. [21:47.580 --> 21:50.420] They've talked about a decentralized wiki. [21:50.440 --> 21:53.440] You know, a Slack alternative or a Discord alternative. [21:53.440 --> 21:57.520] So that people could have discussions in organized ways. [21:57.920 --> 21:59.420] You know, patient portals. [21:59.420 --> 22:00.900] That's a huge one. [22:01.240 --> 22:06.960] They are something that everybody needs access to, whether or not they are technologically capable. [22:07.080 --> 22:10.060] And they are something that needs to be secured correctly. [22:10.060 --> 22:16.920] We are seeing way too many things, you know, get leaked out into the world about us that don't need to be. [22:17.780 --> 22:22.820] As well as a privileged chat between lawyers and their clients. [22:22.820 --> 22:29.860] Something that has the attorney-client privilege written into the privacy policy or the terms of service. [22:30.140 --> 22:34.020] These are things that people have brought to us along with so many others. [22:34.020 --> 22:37.480] And the things that people have done with Valid are really, really cool. [22:37.480 --> 22:39.460] And we didn't see any of that coming. [22:39.460 --> 22:49.640] I'm going to give you a little tour of some of the apps that other people, besides our core team, have written using Valid as a platform since we got started. [22:51.780 --> 23:00.780] These are all things that others have come to our Discord, brought their own ideas, put a little bit of code in and made something cool with. [23:01.180 --> 23:03.900] Four projects I'm just going to highlight right now. [23:03.900 --> 23:05.420] One is called The Intersect. [23:05.420 --> 23:14.520] It is effectively a decentralized paste bin where you can take messages, post them into the Valid network, and it stores them. [23:14.520 --> 23:18.680] And then you can retrieve them. [23:18.680 --> 23:25.610] There's an app called Vdrop, which stores slightly larger files for retrieval. [23:26.880 --> 23:38.820] An app called Stigmerge, which can be used sort of like a live BitTorrent seed for transferring much larger things and streaming across Valid. [23:38.820 --> 23:53.700] And then there's a game engine that is written, a Rust game engine called Bevy, that has a Valid plugin now that lets you connect gamers across the Valid network. [23:54.020 --> 23:56.100] So yeah, Intersect looks like this. [23:56.100 --> 24:06.700] This is actually a WebAssembly app that runs completely inside your browser. [24:07.000 --> 24:16.920] So if you go to the website, http://intersect.blog, and you'll have to do that without the HTTPS, don't worry, it's still all encrypted. [24:16.920 --> 24:18.320] Valid does its own. [24:19.420 --> 24:32.920] As you go there and you download the app into your browser, it'll run as a WebAssembly blob in the browser itself and create a full Valid node connecting to all of the other Valid nodes over WebSockets. [24:33.400 --> 24:36.460] So it doesn't actually talk back to the server. [24:36.460 --> 24:40.280] You'll note that it's actually hosted on an S3 bucket. [24:40.280 --> 24:42.880] There's no server that it connects to. [24:43.560 --> 24:46.340] It just connects to other Valid nodes in an encrypted fashion. [24:46.340 --> 24:56.780] So you go to the site, you put in the things you'd like to save the world, you hit save, it produces a link, and you can share that link to your friends. [24:56.780 --> 25:01.480] And when they visit that link, it'll show you the Pastebin-style post. [25:01.480 --> 25:05.620] It works with Markdown and renders everything completely in-browser. [25:06.920 --> 25:08.880] There's another app called StickMerge. [25:08.880 --> 25:13.760] This one is actually a native application that compiles to a command-line app. [25:13.840 --> 25:19.180] And you can say things like StickMerge seed and then a file. [25:19.180 --> 25:23.780] It could be a large file of massive size, like a movie or whatever you'd like. [25:24.660 --> 25:30.980] And that running StickMerge on it will produce a key. [25:30.980 --> 25:42.120] And it says there at the bottom, connecting to Valid networks, seeding, blah, blah, blah, blah, blah, to VLD0 colon some Base64 stuff. [25:42.200 --> 26:02.720] If you take that link, it says anyone may download with Distrans is the old name of it, but if you go to StickMerge fetch VLD0 colon that link, it will immediately swarm out, find a bunch of other places that are seeding and it will pull that file over the Valid network in a completely anonymous fashion. [26:03.120 --> 26:05.800] So it's sort of a bit torrent over Valid. [26:07.980 --> 26:16.940] And I think the first file that anyone ever publicly shared across this thing was the movie Chud, cannibalistic humanoid underground dwellers. [26:16.940 --> 26:21.320] That's probably irrelevant to all of you guys, but I thought it was funny. [26:21.380 --> 26:24.500] I think it gives a good idea of how our community is. [26:24.500 --> 26:26.680] We approach these things because it's fun. [26:26.680 --> 26:28.200] This is supposed to be fun. [26:29.200 --> 26:31.240] Another app is called VDrop. [26:31.240 --> 26:44.320] VDrop is similar conceptually to StickMerge, but VDrop actually stores the entire contents of the file on the Valid network through distributed hash table keys. [26:44.320 --> 26:58.880] So instead of just seeding and transferring in real time, you can pop a file up onto VDrop and then weeks later somebody can use that same link to download the contents from Valid. [26:59.160 --> 27:00.760] So it's encrypted. [27:00.760 --> 27:05.580] It's going to get stored on a bunch of different nodes out there. [27:06.000 --> 27:07.680] You don't really get to pick which ones. [27:07.680 --> 27:09.540] They don't know that they're doing it. [27:09.620 --> 27:14.240] Everybody's double blind and you're just storing chunks of files all over the place. [27:14.240 --> 27:21.960] And the file ends up getting broken up into possibly thousands of little pieces, all encrypted, and then reassembled. [27:22.600 --> 27:26.720] And again, this is another WebAssembly-based application. [27:26.720 --> 27:44.360] The way that I always explain how that works, at least to people that don't understand encryption or decentralized versus centralized, so on and so forth, is if you've seen the movie Willy Wonka, at the very end there's this little boy named Mike TV who wants to be on TV. [27:44.420 --> 27:51.760] And he goes in front of that special camera and then he breaks up into tiny, tiny little pieces that fly across the room. [27:51.760 --> 27:54.000] And then it's reassembled over there. [27:54.000 --> 27:56.660] Well, each of our nodes are those tiny little pieces. [27:56.920 --> 28:00.420] So nobody has the full context of anything. [28:00.420 --> 28:01.600] It's all encrypted. [28:01.720 --> 28:07.640] But at the same time, when put back together, it creates a tiny little Mike TV. [28:07.640 --> 28:15.300] And then just really quickly, the Bevy game engine can run over Valid. [28:15.300 --> 28:25.000] So if you have a Bevy app, this guy, Sergey, wrote a checkers app that lets you play with other people across the Valid network. [28:25.200 --> 28:50.320] So in lieu of an Xbox Live or a Steam, you know, multiplayer Battle.net-type configuration that is all centralized, I imagine being able to just connect to other players of your game without having to have some central game network connecting all of your app's users. [28:50.920 --> 28:56.540] So decentralizing for open source gaming is a really cool use case, I think. [28:57.160 --> 29:00.740] So I'd just like to highlight and say thanks to the contributors. [29:00.740 --> 29:03.400] These are people who have done a whole lot for us. [29:03.400 --> 29:04.080] Absolutely. [29:04.080 --> 29:07.800] And there's people that have done... there's so many more that we can list out. [29:08.240 --> 29:11.700] There are people that have helped out with little things, big things. [29:11.700 --> 29:14.900] But the point is that it's a community, everybody's voice is heard. [29:15.060 --> 29:19.440] And the theme of our community, if you'll pardon my language, is fuck around and find out. [29:19.480 --> 29:22.600] If you come in, literally, that's a scientific process. [29:22.940 --> 29:25.240] Try something new and find out how it works. [29:25.240 --> 29:29.380] And if you screw up, you don't have, you know, your CEO breathing down your neck. [29:29.380 --> 29:30.740] You don't have anyone mad at you. [29:30.740 --> 29:33.900] You have not cost your company thousands of dollars. [29:33.900 --> 29:37.500] If you want to try something new, this is the place to go do it. [29:38.360 --> 29:40.200] You know, if it works out, great. [29:40.380 --> 29:41.980] We will add you to this list. [29:41.980 --> 29:43.960] If it doesn't work out, we'll try again. [29:44.120 --> 29:50.160] Talk to other people that know what they're talking about and, you know, collaborate and try again. [29:51.320 --> 29:53.080] Practice makes perfect. [29:53.080 --> 30:00.220] And we encourage everybody that has an interest in something that can build to this to join us. [30:00.220 --> 30:02.920] You're going to find a lot of people with like minds that want to help you, too. [30:03.720 --> 30:04.640] So, yeah. [30:05.120 --> 30:07.820] So, Valid is resilient privacy. [30:07.920 --> 30:16.440] Now, when I mean resilient, you know, he went into the actual resilience when it comes to, you know, a cell phone, changing towers, going through tunnels, so on and so forth. [30:16.440 --> 30:18.080] The network itself is resilient. [30:18.160 --> 30:25.040] But the point is that this is also resilient in a way that could last years and years and years. [30:26.220 --> 30:32.440] One of the main, you know, concepts of Valid was that it doesn't cost money. [30:32.840 --> 30:33.800] It's free. [30:33.860 --> 30:35.660] It doesn't cost us money, either. [30:36.240 --> 30:44.140] Like, it costs us, you know, a couple hundred dollars to, you know, run our personal, you know, nodes. [30:44.140 --> 30:45.220] But that's about it. [30:45.220 --> 30:46.540] Run our website. [30:47.460 --> 30:49.560] You know, that is it. [30:49.560 --> 30:56.860] And the point is that people can develop things on this framework, and they can do that without any cost to them. [30:57.060 --> 30:58.060] The storage. [30:58.060 --> 31:00.560] You don't have to pay for huge amounts of cloud storage. [31:00.560 --> 31:07.740] You don't have to pay for, you know, all the other costs that go into building something. [31:07.740 --> 31:21.660] We're breaking down that barrier so that everybody can build something that is useful, worthwhile, that matters to them without having to take away that, you know, that sacrifice that they would have to make to pay to do that. [31:21.820 --> 31:25.780] And I know there's a ton of, you know, privacy-focused things out there. [31:25.780 --> 31:30.620] A lot of people are probably looking at our messaging program and saying, well, we have Signal for that. [31:30.780 --> 31:31.600] Signal is great. [31:31.600 --> 31:32.760] We love Signal. [31:32.760 --> 31:36.880] Signal also has a six-figure overhead and no income. [31:37.920 --> 31:42.080] So someday, Signal's going to have to make a really tough choice on how that's going to happen. [31:42.840 --> 31:45.160] We just want to be there, you know. [31:45.680 --> 31:51.560] I love, you know, the team over there, and I like, you know, the technology. [31:51.800 --> 31:53.960] We are rooting for Signal Hardcore. [31:53.960 --> 31:55.120] Let us get that straight. [31:55.120 --> 31:56.780] A win for them is a win for us. [31:56.780 --> 32:09.600] But it's also highlighting some risks, you know, when you put, you know, there should be a thousand Signal foundations and Signal apps out there. [32:09.600 --> 32:13.040] But it's all being shouldered by this one company right now. [32:13.040 --> 32:14.940] That's a damn shame, you know. [32:14.940 --> 32:28.180] But in lieu of a bunch of people stepping up and helping and making more, you know, more of that cost become distributed and decentralized, you can't just donate your way out of it, you know. [32:28.180 --> 32:32.140] You couldn't give them enough money to help the growth, you know. [32:32.200 --> 32:42.120] There needs to be technological and, you know, business risk mitigations going on that, you know, are just going to be challenging for any kind of centralized system. [32:42.120 --> 32:43.420] So we're trying to help. [32:44.180 --> 32:52.320] And we hope that, you know, they survive and that we all survive some of the challenges in the environment around us right now. [32:52.360 --> 32:53.180] Absolutely. [32:53.180 --> 32:57.900] We need as much approachable privacy as we can possibly have. [32:57.980 --> 33:02.820] But that is a fair point when it comes to, you know, where is this going to be in a few years. [33:03.020 --> 33:07.900] That's why I say when we built resilient privacy, we built something that's going to outlast us. [33:07.900 --> 33:18.680] We don't need to, you know, we don't need to count on any funding from any one place to make sure that this continues growing, that this continues building, this continues happening. [33:18.680 --> 33:21.340] At no point does anybody have to make the choice. [33:21.340 --> 33:25.440] Am I going to, you know, sell data in order to cover the costs? [33:25.440 --> 33:28.840] Am I going to have to start charging customers in order to cover the costs? [33:28.840 --> 33:33.140] You put advertisement in your app because you need to pay that cloud bill. [33:33.260 --> 33:36.660] Sorry, but, you know, what are you doing, you know? [33:37.320 --> 33:41.460] So, yeah, it's... the point is we're not anti-capitalism. [33:41.460 --> 33:46.760] Do you want to build something with Valid, like a patient portal, and then go sell it to hospitals and make yourself a millionaire? [33:46.860 --> 33:48.100] Cool, do it. [33:48.100 --> 33:49.400] I hope you do. [33:49.740 --> 33:50.100] You know? [33:50.100 --> 34:02.400] Still better than a centralized thing that someone's just going to get owned and all that stuff's going to be out there getting sucked up by insurance companies so they can charge your grandkids because grandma had cancer or something. [34:02.400 --> 34:03.600] You know, it's all garbage. [34:03.600 --> 34:20.220] Yeah, you know, we are looking at a future where someday our grandchildren may be denied health care coverage because you joined a Facebook group to, you know, deal with, you know, do peer support for other cancer survivors or depression or whatever. [34:20.600 --> 34:24.280] Getting hacked should not be a pre-existing condition for denial. [34:24.280 --> 34:24.940] Sorry. [34:24.940 --> 34:36.560] But our entire, you know, online footprint and all these companies that have collected and sold our data, you know, have consequences beyond our own specific lifetimes. [34:36.720 --> 34:42.080] So we want to build something that's going to outlast us, that is going to be, you know, the future. [34:42.080 --> 34:51.180] And we mentioned Web 3.0 before, but really we need to take it back to Web 1.5 where things started going wrong. [34:52.640 --> 34:56.060] So, yeah, what are the risks to actual privacy? [34:56.060 --> 34:57.680] We've covered some of these. [34:57.780 --> 34:59.920] You have personal risk. [34:59.920 --> 35:21.180] I have to make choices personally that, you know, take me, take the risk out of my own personal life so that, you know, as I'm working on something like Baylid, I can't become the, if I were to get, like, removed from the project for some reason, get hit by a bus, [35:21.180 --> 35:24.480] whatever, the system has to be able to continue without me, right? [35:24.480 --> 35:45.940] Physical risks, you know, if you lose your phone, you know, what are the, you know, how are we designing Baylid so that the apps and the data that are on the physical device are resistant to tampering and backup attacks and iCloud, you know, keychain download problems. [35:45.940 --> 35:53.180] I mean, there's all kinds of, you know, risks associated with the, you know, the physical devices that you use. [35:53.180 --> 36:12.420] And so , you know , I think that Baylid should and does have designs in place to do things like, you know, encrypting all of your data using a key that is stored in hardware-backed storage and that that key is encrypted with possibly an offline, never-serialized key so that if you want, [36:12.420 --> 36:20.820] you could lock your copy of your messages with a password that is never actually serialized to disk. [36:20.820 --> 36:29.320] That way if, you know, someone does obtain your phone, if they don't have the ability to rubber hose the password out of you, they won't be able to decrypt the contents. [36:29.800 --> 36:33.720] And the, you know, contents of the network are not even visible to us. [36:33.720 --> 36:36.420] I think that's important to mention too, like we can't see it. [36:36.420 --> 36:46.980] We're not hosting anything, you know, we don't have a, you know, everybody shares this data around, you know, it's, you know, we don't run servers, you know. [36:46.980 --> 36:55.800] So we don't want to be in the position of having someone come to us and say, hand us over all of your servers so we can sift through them. [36:56.060 --> 36:58.820] We don't want to have that risk at all. [36:58.820 --> 37:02.060] So we just designed it so we never needed to have that. [37:03.020 --> 37:04.940] As well as the financial risk. [37:05.140 --> 37:14.120] Everyone involved with the core team of our project has probably, I know at least a few of us have given up, you know, projects that would be financially... [37:14.120 --> 37:15.440] Job opportunities. [37:15.700 --> 37:21.560] Opportunities that would be financially cool, but they wanted, you know, IP for anything that we created during that time. [37:21.600 --> 37:23.820] And we're not going to do that. [37:24.880 --> 37:38.220] We've got to design this in such a way that, you know, it can balance our personal lives and our requirements to life, you know, along with developing something that a lot of people might not want to see developed. [37:38.220 --> 37:44.060] One thing we can't, you know, necessarily guard against is adding a reporter to your war plans group chat. [37:45.240 --> 37:46.120] Yeah. [37:46.200 --> 37:49.180] So I mean, again, you know, we provide the tools. [37:49.180 --> 37:52.300] People can use them the wrong way. [37:52.460 --> 37:53.980] We can't really control that. [37:53.980 --> 37:57.260] But we can also just try to make it harder to do the wrong thing. [37:58.860 --> 38:04.680] So I'm going to just talk a little bit about some of the things that Valid provides to applications. [38:05.100 --> 38:06.140] Secure storage. [38:06.140 --> 38:09.260] We were talking about device level secret storage APIs. [38:09.380 --> 38:11.020] An encrypted table store. [38:11.020 --> 38:24.240] Basically everything, there's a database that is, you know, basically fully row-level encrypted inside of Valid using keys that are only present in the hardware-backed protected store. [38:24.840 --> 38:38.100] That device key can be protected so that backup attacks and dumping-type attacks on a device are much harder to perform or impossible in some cases. [38:39.090 --> 38:43.000] There's a record store, which is our distributed hash table. [38:43.000 --> 38:53.440] This allows mutable data to be synchronized and distributed across our network. [38:53.440 --> 39:03.240] Mutable meaning that we keep track of changes and do automatic change reconciliation across multiple distributed nodes. [39:03.240 --> 39:06.160] It's a challenging problem. [39:06.160 --> 39:11.040] But we have a lot of interesting innovation in the distributed hash table that we've built. [39:12.460 --> 39:15.400] It's effectively search, if you really think about it. [39:15.400 --> 39:26.060] It's like, how do you find all of the bytes and changes to a bunch of bytes across the internet in a performant fashion? [39:26.060 --> 39:46.840] How do you search across a network and collect all of the parts of a thing and update it in a secure, signed fashion so that people can't put up malicious nodes that, say, host old copies of data or data that has been modified in some way? [39:46.840 --> 40:03.000] How do you sign things so that multiple people can write to a co-located record and get a single, consistent view of that data across the internet? [40:05.080 --> 40:13.260] It's a distributed engineering problem that is hard to solve, but we have made some interesting choices in that department and it works pretty well. [40:13.260 --> 40:18.280] You have this multi-write schema-based DHT. [40:18.280 --> 40:35.720] And we're also working on a block store, which is effectively the IPFS-like component, where we're taking large chunks of content-addressable storage and distributing it across nodes that have shown an interest in that data. [40:35.720 --> 40:46.740] So if you download, you know, a couple megabytes of something, you may be responsible for also sharing out chunks of that to others that are interested in it, since you'll have it cached. [40:46.760 --> 40:48.260] The Mike TV. [40:48.400 --> 40:49.360] Right. [40:49.420 --> 40:50.080] Yeah. [40:50.480 --> 40:58.060] So, yeah, the other thing to note is that, in terms of resilience, is that you have to plan for things to become obsolete. [40:58.060 --> 41:18.980] This means cryptography suites, which are notorious for going out of fashion as computing power becomes more strong and, you know, it becomes trendy to switch to cryptography suites for quantum computers or whatever else is coming down the line. [41:18.980 --> 41:26.520] There's a lot of research going into how to break the cryptography that we consider secure today. [41:26.520 --> 41:36.840] This has been, you know, 30, 40 years of research backing up the idea that you shouldn't bake in a single cryptography suite, you should plan on its obsolescence. [41:36.840 --> 41:58.210] So we built into this network multiple routing tables, multiple kinds of cryptographic keys and support for migrating your data from one type of encryption to another and using simultaneous cryptosystems to maintain the availability of your application as we are switching. [41:58.210 --> 42:11.910] So if you have a cryptosystem that we have built today and everyone just uses it, that tomorrow we can introduce a new one and slowly migrate the apps and their data over to the new cryptosystem before we deprecate the old one. [42:11.910 --> 42:17.890] Usually you have at least a little bit of time before you have to just pull the plug on old crypto. [42:18.030 --> 42:29.210] You get a little bit of a warning, you know, you get a couple of years to move everything over before it becomes, you know, the next, you know, don't use SHA-256 anymore or whatever it is. [42:30.870 --> 42:36.230] So, yeah, on the wire, all of the protocols that we do have the same encryption. [42:36.230 --> 42:44.750] We have a suite that, you know, we handpicked and vetted with a bunch of cryptographers that we know, make sure we weren't doing anything stupid. [42:44.750 --> 42:48.690] Everything is time stamped, everything is encrypted and signed. [42:48.690 --> 42:51.470] All of our node information is signed. [42:51.790 --> 42:56.570] This is not the case with a surprising number of peer-to-peer networks out there. [42:56.630 --> 43:05.030] So you can just kind of make up your node identification and somebody else out there could change things about how to reach your node. [43:05.030 --> 43:05.030] So , yeah , that's pretty much it . [43:05.030 --> 43:11.150] We have a lot of things that we do that does not bode well for long-term resilience. [43:11.710 --> 43:32.970] As of right now, our authentication is based on ED25519, our key exchange is X25519, we have an encryption, symmetric encryption, which is XCHACHA20POLY1305, we have Blake3 as a message digest and we have a key derivation hash, which is Argon2. [43:35.030 --> 43:37.130] So we have a lot of things that we do that does not bode well for long-term resilience. [43:37.130 --> 44:05.010] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [44:05.910 --> 44:07.570] So we have a lot of things that we do that does not bode well for long-term resilience. [44:08.230 --> 44:34.090] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [44:54.750 --> 44:57.070] So we have [45:00.470 --> 45:04.190] a lot of things that we do that does not bode well for long-term resilience. [45:04.190 --> 45:05.010] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [45:07.550 --> 45:08.310] So we have [45:11.630 --> 45:25.130] a lot of things that we do that does not bode well for long-term resilience. [45:25.530 --> 45:35.010] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [45:40.710 --> 45:54.810] So we have a lot of things that we do that does not bode well for long-term resilience. [45:54.810 --> 46:04.810] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [46:09.190 --> 46:14.070] So we have a lot of things that we do that does not bode well for long-term resilience. [46:14.070 --> 46:33.790] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [46:44.170 --> 46:58.790] So we have a lot of things that we do that does not bode well for long-term resilience. [46:58.790 --> 47:04.990] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [47:06.770 --> 47:07.610] So we have [47:10.870 --> 47:17.310] a lot of things that we do that does not bode well for long-term resilience. [47:17.310 --> 47:34.990] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [47:39.970 --> 47:54.490] So we have a lot of things that we do that does not bode well for long-term resilience. [47:54.490 --> 48:04.970] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [48:10.970 --> 48:28.590] So we have a lot of things that we do that does not bode well for long-term resilience. [48:28.770 --> 48:34.970] As of right now, our authentication is based on ED25519, our key exchange is XCHACHA20POLY1305, we have a key derivation hash, which is Argon2. [48:34.990 --> 48:41.970] And you can see here it supports emojis and tacos or whatever, but it does not do media today. [48:41.970 --> 48:52.750] Again, right now we are working primarily on stability and accessibility and we're going to get to eventually things like media and group chats and things like that. [48:52.750 --> 48:57.430] Those are in the design already, they're just going to take some time getting it right. [48:57.430 --> 49:00.610] Like I said, everyone involved has their day jobs. [49:00.610 --> 49:02.430] This is a labor of love. [49:02.430 --> 49:05.270] It's slow-moving because we are doing this in our spare time. [49:05.270 --> 49:11.670] We probably have, what, four active developers on Galachat right now in total. [49:11.670 --> 49:13.250] So it's coming along. [49:13.530 --> 49:20.370] This is as much of a plea for help as it is us talking about what we, you know, being proud of what we built here. [49:20.730 --> 49:25.290] Yeah, not only are we saying, like, this is so great, check it out, but also, like, please help us. [49:25.290 --> 49:28.330] So, yeah, there are in-progress features. [49:28.870 --> 49:33.470] You know, pretty soon you'll be able to share your account between all of the desktop and mobile platforms. [49:34.390 --> 49:37.010] We have localization support as well. [49:37.010 --> 49:42.830] We have people ready to translate the stuff once we are pretty confident that all of the strings are in. [49:42.830 --> 49:46.230] We have lockable and deniable accounts as well. [49:46.230 --> 49:47.670] A deniable account is interesting. [49:47.670 --> 49:56.750] The idea that you could have a password that you know that unlocks a different view of your same account. [49:57.050 --> 50:03.470] So you make an account, and then you make a deniable version of that account that has different contacts and different messages in it. [50:03.470 --> 50:14.270] That way, when you unlock Valid, if it's being done under duress, you can put in the duress password, and it will show a completely different account internally. [50:14.810 --> 50:21.650] And you won't be able to tell the difference that, you know, whether there's one account or if there's multiple accounts. [50:21.650 --> 50:35.770] This way, if someone does decide to rubber hose your phone, or they say you must unlock your phone and show us all your texts, you can type in the duress password and show them something that isn't their actual personal account. [50:35.790 --> 50:37.230] And they wouldn't be able to tell the difference. [50:37.230 --> 50:47.950] And the use case that we had for that originally was, you know, women or people leaving domestic violence situations where somebody is going to their phone. [50:47.950 --> 50:49.170] Unlock your phone. [50:50.950 --> 50:51.910] Just saying. [50:51.910 --> 50:54.530] That is the main use case for that sort of thing. [50:55.050 --> 50:55.490] So, yeah. [50:55.490 --> 50:56.930] All that's missing is you. [50:57.810 --> 50:59.070] Can help us today. [50:59.530 --> 51:00.230] So, yeah. [51:00.230 --> 51:01.350] Like I said, come help us. [51:01.350 --> 51:02.210] Come build. [51:02.290 --> 51:03.270] Come with us. [51:03.270 --> 51:05.630] We'll help you learn something new. [51:05.630 --> 51:07.290] You can try something different. [51:07.390 --> 51:16.030] If you are actively contributing, we would be more than happy to, you know, if you want to go look for a job in that field, like, you want to try... [51:16.030 --> 51:18.610] You can say that you worked for Veiled Foundation. [51:18.610 --> 51:20.410] Yeah, we'll totally do that. [51:20.410 --> 51:21.310] I'll be your alibi. [51:21.310 --> 51:23.970] We'll give you all kinds of job recommendations and shit. [51:23.970 --> 51:24.750] Come help us out. [51:24.750 --> 51:25.910] We'll help you out, too. [51:25.950 --> 51:27.290] Because that's how this works. [51:27.290 --> 51:32.690] We're taking a lot of ideas, like, you know, that come from building community. [51:32.750 --> 51:34.970] Anti-LinkedIn mafia over here. [51:36.590 --> 51:37.510] So, anyway. [51:37.510 --> 51:45.290] If you do want to help but can't code, don't feel like coding, don't have any interest in coding, you can always throw a little cash our way. [51:45.290 --> 52:05.210] We have a 501c3 charitable nonprofit that is there to help develop and distribute this framework and to do things like outreach to help us get to do these kinds of talks and to raise awareness of the problems and how we're trying to help solve those problems. [52:05.210 --> 52:11.870] As well as making Veiled and the network available in places that may not normally have this sort of privacy thing. [52:11.870 --> 52:14.970] So, that involves people, you know, translating and things like that. [52:14.970 --> 52:17.230] And us going to places that we normally wouldn't go. [52:17.230 --> 52:20.070] We've got a pretty low overhead, but every little bit helps. [52:20.070 --> 52:22.650] So , if anyone wants to help, that's one way you can do it. [52:23.050 --> 52:23.670] So, yeah. [52:23.670 --> 52:26.330] You can find us online at all the usual places. [52:26.330 --> 52:27.810] Veiled.com is our website. [52:27.810 --> 52:29.350] We have a Blue Sky account. [52:29.350 --> 52:30.510] We're on Mastodon. [52:30.510 --> 52:32.250] We're still on Twitter. [52:32.510 --> 52:33.950] We're not calling it X. [52:34.110 --> 52:35.270] X, whatever. [52:36.310 --> 52:37.310] Twitter's dead. [52:37.310 --> 52:38.050] It's just dead. [52:38.050 --> 52:38.690] Anyway. [52:38.970 --> 52:42.330] In fact, that was one of the reasons why we started thinking about Veiled. [52:42.330 --> 52:43.270] It was one next bot. [52:43.270 --> 52:46.130] We're kind of like, things are going south. [52:47.190 --> 52:48.890] We need to do something. [52:48.890 --> 52:51.310] And, you know, we're not going to be building a replacement for that. [52:51.310 --> 52:53.210] But maybe we build something. [52:53.210 --> 52:53.630] Maybe someday. [52:53.630 --> 52:55.470] That could help someone do that. [52:55.850 --> 52:56.410] Yeah. [52:56.410 --> 52:57.550] So, we're on Discord. [52:57.550 --> 53:01.490] Our big community is there if you want to meet others that have similar interests. [53:01.830 --> 53:04.750] And the code, as always, is on GitLab. [53:04.750 --> 53:06.590] Feel free to browse through that. [53:06.590 --> 53:09.090] We take merge requests from the community. [53:09.410 --> 53:14.450] And we have all kinds of people willing to help, you know, with the code there. [53:14.450 --> 53:16.570] So, that's where we're at. [53:17.530 --> 53:18.290] That's all. [53:18.290 --> 53:19.170] And that's it. [53:19.830 --> 53:22.090] If you have any questions, you can find us. [53:22.210 --> 53:23.870] Something easy to spot. [53:23.870 --> 53:24.330] Yeah, yeah. [53:24.330 --> 53:25.990] Just come find us after if you want to talk. [53:25.990 --> 53:26.390] Yeah. [53:26.390 --> 53:29.090] A little easy to, you know, just look for the big disco ball. [53:30.670 --> 53:33.150] And thank you for checking us out. [53:33.150 --> 53:35.930] Thank you for not pointing any laser pointers at Caitlin during the talk. [53:35.930 --> 53:36.570] We appreciate it. [53:37.810 --> 53:38.450] Thank you. [53:38.450 --> 53:39.650] It's a safety issue. [53:40.830 --> 53:41.310] All right. [53:41.310 --> 53:42.010] Thanks, everyone.