 Hi everybody. Can you hear me? All right, fantastic. My name is Darius. I'm a Mozilla fellow and I'm working with Code for Science and Society on issues of the decentralized web. And I'm here to talk to you about a vision that I have for the future of social network sites and internet services as they might exist outside of the context of corporate monopolies. So, first off, just to define some terms, the decentralized web. I'm going to talk about it a lot here and this is kind of a classic diagram that I have added red circles to. And just very briefly, a centralized network is where there's one source of truth at the middle. Everybody connects to it and it handles all of the messaging and making sure that people, you know, if I'm on the bottom of that blob and I want to talk to someone on the top of that blob, I have to go straight through that big red circle and everybody has to do that. And I made that circle big and red because that circle is more powerful than the other circles. If that circle is like a Facebook server, Facebook can say, no, you're not able to talk to this person because I have decided that you are not able to talk to that person. A decentralized network has many different nodes of roughly equal power and then a whole bunch more nodes that are just regular users. So, this is what networks like Mastodon are like or if you look at the internet in general, you know, one of those red things might be github.com and one of those red things might be Amazon.com and that sort of thing. So in the context of the whole internet, these things are decentralized, but in the context of like Facebook, Facebook as a network is centralized, you have to go through that central control point. And then a truly distributed system is one where every node is kind of its own server and client and they can all talk to each other as equals. But I'm actually talking about the middle case here, not distributed networks and not centralized networks. I'm interested in decentralized networks specifically. The internet's been decentralized since the very start. It was initially proposed during the Cold War by defense think tanks as a resilient network that could pass information around the country even in the case of a nuclear conflict. So it's grim, but the idea is that if one city is wiped off the map, communication traffic could reroute around the big smoking hole in the ground. It was like a Cold War fever dream type thing. Decentralization might also be explained by what it is not. Facebook is sometimes referred to as a walled garden. It's a place that has cool stuff that people might want. But in order to get in there, you have to go through this sort of choke point, usually a gate, there's probably a lock on it. There's usually some form of surveillance like ground keep groundskeepers and that sort of thing. And you know, once you're inside there, it seems like a public space, but it's actually a private space. There's this difference between the inside and the out. And that's an example of centralization. You could as a rule of thumb, if one company can decide to, you know, shut everything down, that's centralized. The problem, especially in the context of social network sites, is that the world itself and our social structures are not especially centralized. Different communities have all sorts of different kinds of norms. For example, we can take the example of on Facebook, there was a time when they decided to install a real name policy, they wanted everybody to be real name, they wanted people to use their government ID names on their profiles. And there was a subset of people who thought this was like in the Facebook community, like users who thought this was a great idea for safety. And there were a bunch of people who saw this as extremely harmful to them for a number of different reasons. And I think part of the problem here is that we have a big centralized social network. And you can't have, I don't think you can have norms that work for a billion people. I think communities need to be partitioned out, and they can kind of come up with their own norms. And there's nothing to say that a Facebook couldn't do that. Like maybe they could give every, you know, Facebook group admin more power or that sort of thing. But it seems highly unlikely for a number of basically organizational reasons. So my vision for a decentralized web is where it's almost kind of like everybody gets their own little wall gardens, kind of, but not really. And I was having trouble articulating this until I read a 50 year old computer science document from the birth of the Internet. In the late 1960s, ARPA, the research branch of the US military, now known as DARPA, funded a project called the ARPA Net. It was meant to be a realization of those Cold War dreams. And it was a joint project between university researchers and defense contractors and also some more general contractors in the sort of civilian technology space. On June 19th, 1970, a group of computer scientists at UCLA and Harvard University published a document called Request for Comments 55, a prototypical implementation of the network control program. The document describes a program that can live on the computer but lets it talk to the ARPA Net. On a modern computer, you might have called it network drivers or something like that. It's the code that lets your machine interpret signals going in and out of it from the Internet, or the ARPA Net in this case. There was no Internet. There also was no ARPA Net at this time either, basically. It's pretty dry until you get to this diagram, which I love. The authors of this paper actually refer to these blobs, literally I quote, as squishy amoeba-like objects. And I thought it was really fun because if you read the whole paper, you realize that there's not actually a hard distinction between what the input interpreter is and the input handler and the output scheduler. And whoever drew up this diagram wanted to make sure that while things like these cues in the middle that look like cylinders are discrete components, these other things are much more nebulous. If you've ever been to like an Amazon presentation or something, they'll always have the cloud, and it's like a cloud. And that's also kind of trying to get the same point across, but I like squishy amoeba-like objects way better because they're still objects. So this got me thinking about amoebas as a metaphor. The amoeba, or perhaps amoeboid, is a useful construct for me because it's amorphous, and yet it has clearly defined inside and outside. You know what is inside the amoeba and what's outside. That's basically it's defining characteristic as a creature or an object. They let things in and out of this kind of filtering system, in this membrane, and an amoeba can change shape as needed, as is needed to be convenient. Things can be allowed into the amoeba and also kicked out. And I think about this now when I think about decentralized and what people call federated networks, which I will explain in a couple of slides. So I want to just start with something that I'm familiar with here, which is this social network called Nastodon that you might be familiar with. It is kind of a Twitter clone. It's open source. You can run your own server. I run my own server. It's called FriendCamp. It's for me and like 50 people that I know. There's a few FriendCampers sitting in this audience right now. It looks like this from a user level. I just, for people's privacy, I replaced all the text with dashes. But I want to talk about what this service looks like on a network level. So from a user, it's like a website. You log into it or you have an app and you post stuff. It's like Twitter. So this is a server. A server is a piece of metal with, it's very complicated and it has electricity going through it. AKA a computer. These are people. And these people have their own computers or tablets or phones or whatever. And these tablets and phones talk to the server. Let's say this server is FriendCamp. And so there's people in the audience right now and maybe they're posting to FriendCamp from their phone or whatever. And this is centralized. This in and of itself is a centralized system. The difference is that for something like FriendCamp, it's me and 50 of my friends, which is way different than Mark Zuckerberg and a billion people who he's never met. It's like a different social contract. So okay, we have this little node here. And it's called Federated because these signals get sent out to other servers as well with their own people inside of them. And there might be more than that. And they all talk to each other and not everyone talks to everyone. But if you look at the top, you'll see that those three nodes, you know, two of them don't talk to each other, right? Might be because they don't know each other exist or it might be because one node hates the other node. And, you know, like one of them was a bad actor. And so they decided to block them or whatever. So this is like an example network here. What makes FriendCamp different and has started making me think about these different models is right now on basic mastodon. If I'm on one of these nodes, as long as I have a link there, all my messages are viewable by basically everybody else. It's all kind of public to the locally known network. On FriendCamp, we have this concept of local only posts. These are posts that never leave this piece of metal here. So they're inherently more secure if you trust me, which because you're 50 of my friends who are using this, you do trust me. At least, you know, I hope so. You know, it's a different, the trust that a friend of mine has in me is very different than the trust that I have even in a company that I think is really great. You know, it's like a different level of trust. So back to here. So this is where the amoeba part comes in. So this is something that already exists technically. And what I would like to do is start introducing concepts. You'll notice that in the middle, there's kind of a kite shape going from the upper left to the upper right to the lower left. And this is a bunch of nodes that all mutually follow each other or aware of each other's existence. And maybe we decide that we are friends with a bunch of people on this other server. So in addition to like, I can friend someone on the other side of the network individually as long as my server can route it, maybe we have servers that become friends with other servers. And so that may introduce a new concept, you know, that's not a fully public post, but maybe it posts to your neighborhood of trusted servers. It's not all your known servers because there are servers inside that blob that know about servers outside of the blob. We just don't fully trust them yet. But we could, you know, maybe in the future, we decide that we really like them and bring them in too. Now, the thing about this sort of amoeba like grabbing things process is there has to be social contracts involved here. So the reason that you might bring someone into your amoeba blob neighborhood thing is because you have sat down and talked with them with like community to community. And you both realize that you share the same values, you don't want the same kinds of, you know, you dislike the same kinds of speech on your network. And there's not, you're going to be a good fit for each other, essentially. And so I want to see ways to bring out these kind of medium spaces there because like local only is is cool. It's really useful. It's really helpful. It's great to have 50 people able to like talk to each other in like a more intimate space. But there's got to be something between that and like talking to the entire world and having your messages sent out to like 5000 servers, you know, 4,990 you have never heard of in your life. So what I'm hoping for is something like this in the future. This is not a mastodon only or even a Fediverse only type concept. But what I do think is that we need to limit the sizes of these individual nodes because otherwise it's not going to be, you know, at that point, if we have like five nodes in the whole network and they each have a billion people on them each, then it's that's just what we have right now. Basically, it's just like, you know, okay, a billion people on friend face camp, face camp, friend camp, Facebook, a billion people on on Facebook, you know, a billion people on another network. And, you know, that's that's kind of just re centralizing. So I'm working on some documents. I'm hoping in a couple of months, I'll sort of publish something like a best practices guide for maintaining one of these nodes and how we might federate nodes with each other to get this notion of a neighborhood. Anyway, that's, you know, that's the 15 minutes of stuff that I wanted to talk about. And so what I really wanted to do is like open up to questions for people. So thanks for listening to this kind of intro.