{"id":"1773021528170-MjczYmIzZjgtZjg1","videoId":"273bb3f8-f85a-4056-bbed-049976af4406","url":"https://serve.podhome.fm/episode/8029725b-0319-44b9-4793-08dc404e83a4/639084369127469757273bb3f8-f85a-4056-bbed-049976af4406.mp3","title":"CD193: FIPS - FIXING THE INTERNET","type":"podcast","topicCount":19,"segmentCount":161,"createdAt":"2026-03-09T01:58:48.170Z","uploadDate":"20260306","chunks":[{"title":"Introduction and Show Updates","summary":"Odell opens the show, provides the current Bitcoin block height and price metrics, and encourages viewers to support and share the podcast.","entries":[{"text":"[Music]","offset":0,"duration":32},{"text":"Odell: Happy Bitcoin Friday, freaks. It's your host Odell here for another Citadel Dispatch, the show focused on actionable Bitcoin and freedom tech discussion. Today is Friday, March 6th at 22:00 UTC. The current Bitcoin block height is 939631. Sats per dollar 1465. Current US dollar price is 68,239. I told you freaks I’m gonna go with the price priced in gold now as well. Priced in gold: 13.97 ounces of gold buys you a Bitcoin. We're outperforming gold on the week, but not on the day, the month, or the year. But we will eventually, hopefully, expecting, we’ll see.","offset":32,"duration":42},{"text":"Odell: As always, Dispatch is funded by our viewers. Viewers like you, thank you guys for supporting the show with your hard-earned Bitcoin. We have no ads or sponsors. Uh, this was—I’m trying to do as many shows as possible that are high signal for you freaks, so this one was two days after the last one. It seems like no one has supported the show in significant size, so I don't really have anything to read out, but thank you to everyone who does support the show. Uh, an easy way to support the show without sparing your hard-earned sats is sharing it with your friends and family. Citadel Dispatch is available on every major podcast app. All relevant links at citadeldispatch.com.","offset":74,"duration":46}],"startTime":0},{"title":"Introduction to FIPS and the IP Problem","summary":"Arjen introduces the Free Internetworking Peering System (FIPS). They discuss how the protocol solves the problem of IP addresses changing when users switch internet providers within mesh networks like Tollgate.","entries":[{"text":"Odell: Anyway, freaks, I have a great show today. We are going to be talking about the recently announced FIPS project, which I believe stands for Free Internetworking Peering System. Um, and it’s basically the idea of, of building the internet from the ground up, uh, without all the middlemen bullshit that is involved in the current internet setup, using Nostr at its core. It's a little bit above my pay grade, so we’re going to be diving in deep here. And if I can understand it, then at least some of you can understand it. And we have Arjen here, one of the main contributors. How's it going, Arjen?","offset":120,"duration":39},{"text":"Arjen: I’m good. Thank you for having me.","offset":159,"duration":2},{"text":"Odell: Was my basic explanation decent?","offset":161,"duration":3},{"text":"Arjen: Yeah, I think so. I think so.","offset":164,"duration":2},{"text":"Odell: What is FIPS?","offset":166,"duration":2},{"text":"Arjen: So, FIPS is an attempt to, uh, do networking in a way that doesn't require any, any authority to be involved. The need actually came from, uh, from Tollgate where, um, you know, we, we pay for internet access for, uh, but if you have a system where, you know, you can pay other people to peer with them, basically, you need, you can switch between the people. So, if you switch, the person you’re buying your internet from, what happens in the current structure of the internet is that you lose your IP address, it changes, and that’s okay if you’re reaching out to the outer world, but that’s not okay if you want to host anything inside such a network.","offset":168,"duration":53},{"text":"Odell: Yeah. So first to pull back, Tollgate is this project that allows you to basically sell your Wi-Fi for sats and then people are able to access it. And then in the traditional internet infrastructure, we have internet service providers, we have DNS providers, we have all this different, all these middlemen that are involved in networking everyone together. And our IP address is our quote-unquote identity, I guess, on the internet. And a lot of home internet, I guess, their IP addresses do change a decent amount. Sometimes they change, sometimes they don't. But if you’re, like, hosting a website or something, you basically need a fixed IP address, right?","offset":221,"duration":33},{"text":"Arjen: Exactly, yeah.","offset":254,"duration":1}],"startTime":120},{"title":"Decoupling Routing From Physical Transports","summary":"The discussion shifts to how FIPS separates the physical transport layer from the routing layer. This allows peers to connect seamlessly across different broadcast mediums like Wi-Fi, Ethernet, and Bluetooth.","entries":[{"text":"Odell: So FIPS, yeah, so continue.","offset":255,"duration":3},{"text":"Arjen: Yeah, so, so in a, in a Tollgate network, right, the, the way we envisioned it first is like, okay, you have someone that is connected to the legacy ISP, if you will. And from there on out, you start reselling that internet, and someone can buy it from you and they start reselling it. That assumes a tree structure where someone’s on top and someone’s at the bottom. But if you have a network that grows and like, say, you’re two, three steps down, and there’s someone that actually gives a better price for that connection and you’re going to switch over, everyone below you is going to lose their, lose that structure that was there to define them inside that network.","offset":258,"duration":41},{"text":"Odell: Right. So in this situation, everyone has a Nostr public key-private key pair, which you can spin up relatively easily. That's your public identity. And then this is why I think it's fascinating because conceptually, high level, it makes a lot of sense to me. So then you’re able to just connect peer-to-peer between those public keys without anything else. So I can be connected via Wi-Fi or Bluetooth, I can run a long-ass Ethernet cable to my neighbor, and he could run a long-ass Ethernet cable to his neighbor, and we’d all be connected to each other, and then one of them could then have, like, some kind of long-distance mesh to someone else, and then you can continue and all that networking would work natively with Nostr. That all seems awesome, high level. How, but how is that possible? That doesn’t, like, what's the nitty-gritty that actually makes that a reality versus just something that just seems really cool in a, in a tweet?","offset":299,"duration":52},{"text":"Arjen: It is just by, by decoupling two layers, if you will, the, the physical transport layer and the routing layer. In a lot of cases, they’re very interconnected. Right, if, um, we have internet, like, IP traffic, it presumes, um, that it uses Ethernet, basically Ethernet or Wi-Fi. Um, it doesn’t run over Bluetooth. And every different protocol kind of has its own way of doing that. And what we found is it’s better if you have something that works across it and just, um, show, expose some interfaces to the layer below where it doesn’t matter how it works. All you need to know is just I want to be able to send some data to a peer and I want to be able to get some data to a peer. I don’t care how you get it there, just get it there. If it’s Ethernet, right, you use the Ethernet protocol or Wi-Fi. If it’s Bluetooth, you use Bluetooth underneath, but the FIPS protocol doesn’t have to, doesn’t care about that.","offset":351,"duration":60},{"text":"Odell: But then how does discovery work?","offset":411,"duration":3},{"text":"Arjen: That depends on the layer you use, or the transport you use. If you use a broadcast medium, say Wi-Fi, you can broadcast the fact that you’re a FIPS node and that you want to peer with people. That way people can discover you and send messages back.","offset":414,"duration":18}],"startTime":255},{"title":"Hypothetical Global Routing and Discovery Servers","summary":"Odell and Arjen explore how FIPS could hypothetically route traffic across the globe. They discuss the potential use of specialized Nostr relays or discovery servers to find routes without relying on a central authority.","entries":[{"text":"Odell: Okay, work with me here on, uh, hypothetical, 'cause it—I understand hypotheticals better. Uh, let's say you're successful, this project is a smashing success, and it's five years in the future. Um, you’re in a different country than me. I have your public key. I want to send you information. How, how does me pressing enter on my side get to you?","offset":432,"duration":32},{"text":"Arjen: If we are on the other side of the world, that is a problem we hope that we’re going to run into with, um, people using it. Uh, we’re nowhere near that yet. But I, I think the, one thing that can help us with that, where, um, if you do mesh without the cryptographic identities and Nostr keys for that matter, I think we can use nodes that are somewhere in between that can help us route that traffic. But this is two-step, two, three steps ahead and like, routing further away.","offset":464,"duration":24},{"text":"Odell: So are these, are these similar to, like, what a DNS server currently is? How does that look?","offset":488,"duration":6},{"text":"Arjen: Yeah, in this instance, it would be something like that. Like, uh, you would maybe publish something to the—it's very theoretical. You would publish something to, say, a Nostr relay that is specialized in this, right? You can use your, you can use your Nostr keys to sign something and like how people can find you. But you can do it in a way where there’s not one party involved, it's like one central authority you look at, like how does that traffic go from A to B, uh, but you can send it to multiple people.","offset":494,"duration":32},{"text":"Odell: So the difference would be from the modern-day setup is that it'd just be more accessible to run these kind of discovery servers or whatever you’re calling them. Like, anyone could basically run one and there, there wouldn't be, like, lock-in. Maybe? Am I reading this correctly or...?","offset":526,"duration":13},{"text":"Arjen: Yeah, if you would use something like this, yes. Um, but I think we should backtrack a bit first, like how the, how it works.","offset":539,"duration":6},{"text":"Odell: Let's backtrack, yeah. Whatever you think is best.","offset":545,"duration":3}],"startTime":432},{"title":"Local Mesh Discovery and Cross-Transport Uplinks","summary":"Arjen details how local peers discover each other and encrypt traffic hop-to-hop using Nostr keys and Bloom filters. They also discuss bridging isolated mesh networks via Starlink and UDP connections.","entries":[{"text":"Arjen: In the local level. Um, so on the local level, you discover a peer, um, and you encrypt, like, you advertise your own pubkey, right? The peer advertises his pubkey. You can immediately encrypt something to that pubkey, so there’s a handshake there where the two peers use a noise protocol to establish an encrypted connection. And every peer does that amongst each other, and so every hop of the way is individually encrypted. And then on top of that, there is the, the longer routing of, like, the longer routes. And the way you can find another peer within the mesh, say, like, a mesh up to 10,000 people, oh shit, is that every peer holds a Bloom filter of the people that they can reach. So if you connect to a peer that can already reach, say, like, 10,000 other peers, it will give you a Bloom filter, which is a very compressed, uh, version of a list of npubs that it can reach. It's just one kilobyte at this moment. You get that, and then whenever you get a packet that’s for any of those 10,000, you know that that peer that’s on your left-hand side can actually reach it.","offset":548,"duration":76},{"text":"Odell: Got it. So in practice, each peer is like, almost like a DNS server?","offset":624,"duration":8},{"text":"Arjen: Um, I think it’s hard to make that comparison because it's not—it's, it's a different—it's a different way of doing things.","offset":632,"duration":12},{"text":"Odell: Right, it's fundamentally different. But each peer is also my method of discovery?","offset":644,"duration":6},{"text":"Arjen: Yes. In a smaller local mesh, that is the way you found other people.","offset":650,"duration":6},{"text":"Odell: Yeah, I mean, you can, this is a interoperable way of rolling out, like, a local community mesh relatively easily.","offset":656,"duration":6},{"text":"Arjen: Yeah, yeah. And that's honestly, that's if only that works, I would already be very happy because you can roll this out in a community, you can host servers, right? You can, you can host things on an npub that can even physically move around in a network, and if the network gets cut off from the rest of the world, everything just keeps working. You can do it if, you know, part of the network fails, you go over Bluetooth, uh, whatever works. Whatever method you have available, that’s how you want to route the traffic.","offset":662,"duration":29},{"text":"Odell: It's completely agnostic. And some peers can be on Ethernet, some could be on Wi-Fi, some could be on Bluetooth. Doesn't matter.","offset":691,"duration":7},{"text":"Arjen: Yeah, or even satellite uplinks.","offset":698,"duration":4},{"text":"Odell: Now, what if one person—have you guys, is it in scope of the project if, like, one person has Starlink, for instance? Would then the whole community have broader internet access or no? Is that...?","offset":702,"duration":11},{"text":"Arjen: Yes, you can, so if you use Starlink, you are using the, uh, regular internet stack, IPs, but you can establish peer connections over, over the internet. So if I have a mesh here in my house and you have one in your house, uh, we can establish a link over UDP and connect the mesh that way.","offset":713,"duration":21}],"startTime":548},{"title":"Circumventing Authoritarian Network Shutdowns","summary":"Using the Iran protests as a case study, Odell highlights how FIPS could help communities survive internet blackouts. The protocol allows users to maintain local communications while automatically discovering tunnels to the global internet.","entries":[{"text":"Odell: Yeah, I mean, 'cause like, in practice, so let's use a real-world example, right? The internet—the government of Iran cut the internet relatively recently. I don't know if the internet's on right now or if it’s off. But at least during the protests a couple weeks ago, uh, now we have war in Iran. But, uh, during the protests a couple weeks ago, uh, government internally cut the internet because they didn't want communication among the protesters. It's something we see happen all the time. And as a result, Bitchat usage spiked in the country. Now, Bitchat has its own issues, right, in terms of range and whatnot and capability. But the biggest one that I kept thinking about is those people could communicate internally, which is great, still an advantage, you know, it's better than the alternative which is no communication internally. But they couldn't, for instance, broadcast to the rest of the world and be like, this is what’s happening on the ground right now. There was a fog of war that was happening and, and that was part of the government's design. That's why when you see large protest movements happen in different places, authoritarian governments often cut the internet. Now, the dream high level in my mind has always been you have, like, local meshes and then one person smuggles in a Starlink and then all of a sudden the entire community can broadcast globally on Nostr, for instance, and say, you know, here's a video of the police abusing us or whatnot, or corruption or whatever they’re trying to get out. Presumably this project should be able to offer that kind of capability, no?","offset":734,"duration":88},{"text":"Arjen: Yes, because you can introduce, basically, say, quote-unquote a tunnel to the rest of the world from anywhere, and that would automatically be discovered by the network. So if, yes, you have a Starlink that goes up and, right, goes down in another country and you have a mesh there, well, as long as you knew one of the npubs that was on the other side of the mesh before it got cut off, you can actually find that route again.","offset":822,"duration":22},{"text":"Odell: That's awesome. I mean, have you talked to the, have you talked to the Bitchat guys at all or...?","offset":844,"duration":9},{"text":"Arjen: Uh, no, we just, uh, we just released it, actually, so it was two weeks—two weeks ago, uh, I just met—the idea has been around for, for a little while, and I met Jonathan just in last November, and we kept talking, talking about the idea, and, uh, so that slowly developed over the last few months, and just the last couple weeks we had a, had a working working demo.","offset":853,"duration":23}],"startTime":734},{"title":"FIPS Origins, Sovereign Engineering, and NoDNS","summary":"Arjen shares the backstory of meeting Jonathan and developing FIPS. They discuss Arjen's time at Sovereign Engineering and his previous work on NoDNS, which pioneered using Nostr pubkeys as static identifiers.","entries":[{"text":"Odell: That's awesome. Did you guys, did you guys meet at Sovereign Engineering?","offset":876,"duration":4},{"text":"Arjen: No, at a conference in Costa Rica. Uh, there was this conference for Nostr conference, and I think, yeah, it was two days and the only thing I did is basically sit in a room with him talking about these ideas on doing addressing with, with npubs instead of, instead of IP or for DNS as well.","offset":880,"duration":20},{"text":"Odell: So what is the Sovereign Engineering connection? I—Justin Moon introduced us. I believe he met you at Sovereign Engineering?","offset":900,"duration":6},{"text":"Arjen: Yeah, correct, yeah.","offset":906,"duration":1},{"text":"Odell: What was the Sovereign Engineering experience like? I mean, I love what those guys are doing. I haven't been myself, but I work closely with Gigi at OpenSats and he’s heavily involved in Sovereign Engineering. I think it’s a fascinating program.","offset":907,"duration":13},{"text":"Arjen: Yeah, so some of the, the original idea on, like, addressing with npubs is something I worked on at Sovereign Engineering last year. Uh, it came from the ideas like if we can use npubs to address services instead of IP addresses or traditional domain names, then at least we have a static identifier we can use across the web to reach things even if the IP address changes. Um, that experiment turned into what's called now, uh, NoDNS, where someone signs cryptographically on in a Nostr message all the, um, DNS records, publishes that, and other people can resolve that as DNS. So that’s kind of the, the predecessor of this idea. We can do it inside the IP network. You still have that structure, but when it changes, you have some flexibility on correcting that, similar to if an IP address changes now, you use update the DNS record and people can reach you again. You can do it much faster this way, that’s nice, but it doesn’t resolve the, the entire issue.","offset":920,"duration":62},{"text":"Odell: I didn't realize, so Tollgate is your project as well?","offset":982,"duration":5},{"text":"Arjen: I work on it as well, yeah.","offset":987,"duration":1},{"text":"Odell: Yeah. So Toll—you were in Sovereign Engineering for Tollgate specifically?","offset":988,"duration":4},{"text":"Arjen: Uh, the first one I was at, Sovereign Engineering 3, I didn’t know much about Tollgate back then, but I met the guy that started it, and from there on we started to basically rolled into it and we started to, uh, work, work on it together.","offset":992,"duration":18}],"startTime":876},{"title":"Routing Incentives and DDoS Defense Mechanisms","summary":"The conversation explores integrating economic incentives into FIPS so users can pay for cheaper or faster routing. Arjen also explains how hidden npubs and connection rate-limiting serve as native DDoS protections.","entries":[{"text":"Odell: I think it's a super cool project too. I so the the whole premise of Tollgate is that I’m, I’m paying sats for internet access. Are sats involved in FIPS at all? Like, are people, are people using—is the idea that people will be paying for peering, or have you thought about that at all?","offset":1010,"duration":21},{"text":"Arjen: Yeah, that, that’s my hope for sure. Like, the whole reason FIPS exists is because, um, we don't have a way to do this dynamic, uh, this dynamically changing network. So I think it's a very—payment is a very important part of it because you want to be able to steer traffic based on economic incentives as well. So if say one link is very expensive and the other is cheap, well why not, if you pay for that connection, why not incorporate that in your routing decisions as well. But that’s a—that’s definitely a next step. But it can be, can be combined.","offset":1031,"duration":33},{"text":"Odell: I mean, and wouldn’t something like that be necessary because—have you thought at all about DDoS concerns or, or any kind of malicious attacker trying to flood the network or break down the mesh?","offset":1064,"duration":16},{"text":"Arjen: Yeah, there’s, um, there's a couple things there. The mesh when, when joining the mesh, uh, physically, you need to do that with a peer, so, and that peer it will be, uh, rate-limiting how many people can connect at the same time. So that’s, that’s one defense. Another defense is that to send traffic to an endpoint, you need to know the npub because on the routing layer, uh, the nodes don’t know for the packets they send, they don’t know the npub. They only know a node ID that is derived from the npub. So that provides some protection. If your npub is not known by the whole world, it's hard for someone to DDoS you.","offset":1080,"duration":40},{"text":"Odell: Interesting. Because that would be the attack, right? If we were going to go down our hypothetical and you're in Iran and the government's shutting down the internet, they would try and jam different types of signals, I guess, and then also they would presumably just spin up, spin up npubs, right, and just start spamming the network.","offset":1120,"duration":21},{"text":"Arjen: Yeah. I mean, it’s a—it's definitely not a—not an easy problem to solve, right? That’s, it’s not fully solved in the current internet.","offset":1141,"duration":8},{"text":"Odell: Yeah. Probably the hardest problem set.","offset":1149,"duration":2},{"text":"Arjen: Well, the current internet just solved it with centralization, right?","offset":1151,"duration":4},{"text":"Arjen: Yes, yeah, you have Cloudflare to do these things.","offset":1155,"duration":5},{"text":"Odell: Which is just a massive middlemen honeypot. And then also just internet infrastructure in general, right? There’s, like, a million central points of failure that can be pressured and shut down. That’s why authoritarians can, I mean, it’s not as simple as it, but basically click a button and cut off the internet for the entire country, right?","offset":1160,"duration":17},{"text":"Arjen: Yeah, yeah. So, um, that’s why an internet that is, that is designed to fracture and recombine is, is very useful.","offset":1177,"duration":9}],"startTime":1010},{"title":"Backwards Compatibility and Seamless App Integration","summary":"Odell asks how FIPS overcomes the bootstrapping problem. Arjen delivers a 'mic drop' explanation of how a custom DNS server intercepts packets and issues deterministic IPv6 addresses, allowing unmodified apps to use the network seamlessly.","entries":[{"text":"Odell: Well, what I like about this is it's very pragmatic because one of the trouble—like, mesh is something that I've been fascinated with for maybe a decade. And there's been many different attempts at doing different things. Um, I think it was, it was exciting that and obviously partially it was because of Jack Dorsey tweeting it out, but the excitement around Bitchat. But it was also kind of weird, right, because if you'd actually been following the mesh space for a while, like people were acting like it was the first mesh project that ever existed, but there was a million predecessors that failed beforehand. And always the problem—well, not always, there’s many different, you, like you said, it's very hard problem to solve. But one of the core problems I feel like is this bootstrapping issue, where, you know, you need a critical mass of at least your neighbors to be using it for it to be useful, right? I, and people saw with Bitchat, right? It’s like they would download Bitchat, and then it was just nobody to talk to, right? Because you don't have neighbors that also download Bitchat. And there's different ways of solving it. You know, it's easier in cities. I like the idea of being in a, in a—like a sports arena or something that already has poor internet, and maybe in a sports arena everyone wants to talk about the same thing. They're all watching the same game, they all want to talk about the same game. It’s a high-density group of people. You could see it being really useful in that situation, a concert, a music festival. Um, but at scale, to actually, like, see it work at scale, um, it's a just a really hard problem. But one of the things that I've thought about historically is if you could bootstrap it in a way that it works with modern internet infrastructure until the modern internet infrastructure isn't needed anymore, then that makes it way more useful. Because if we’re in different parts of the world but we can use this tech to communicate because of the existing internet infrastructure, then all of a sudden it's useful today without actually having the build-out of people interconnected all the way between us or whatever, right? Does that make sense?","offset":1186,"duration":125},{"text":"Arjen: Yeah, yeah. And there's, um, there’s a couple things to unpack there too is that I really hope we can, when nerd-snipe the, the people from Bitchat into this. Because if, you know, if you run a mesh that is cross-transports, you can lower the burden of making apps like Bitchat because now Bitchat needs to design its own protocol on like how over Bluetooth the app, apps are going to talk together, whereas if it was just you can just send TCP/IP traffic like through this, like any existing application like a relay and a, and a Nostr app, then you can do this over Bluetooth without having to specifically design the app to also support that.","offset":1311,"duration":41},{"text":"Odell: Can we go a little bit deeper there? How does that look in practice?","offset":1352,"duration":5},{"text":"Arjen: So, say you would have, you would run a FIPS network and every phone has, has it running and is peering with each other over both Wi-Fi and Bluetooth, some people are only Bluetooth. Now on these phones, you can host, um, something like a Nostr relay. Now everyone can reach that relay over a npub.fips address from any app on their phone. So now they don't need a app that is specifically designed to be a Bluetooth app, it can just be like any other app and not have to put in any effort to, to do this. And so you don't just have one app that can do this, but you have pretty much everything under the sun that would work if, if it uses infrastructure like Nostr relays that are really good at, um, facilitating so many use cases at once.","offset":1357,"duration":47},{"text":"Odell: But so how does that look in practice for like an app developer? How would they integrate in that situation?","offset":1404,"duration":7},{"text":"Arjen: Um, so if I would, say, like White Noise, right? Bitchat app. White Noise connects to Nostr relays. White Noise does what White Noise does best, like do all the encryption, do all the rotation, group management, but they might not want to put so much effort into making a Bluetooth mesh. If they, if someone that uses their app on their phone also connects to a FIPS network, they can just configure a relay like they always would, saying npub.fips in the relay, in the relay list. Then they can already talk to that relay that’s on FIPS. Now if they then move around inside that mesh, and other people join, they go from Bluetooth to Wi-Fi, they can still reach that relay that is elsewhere in the network. So they don’t have to change their app to work over Bluetooth.","offset":1411,"duration":59},{"text":"Odell: But they have to add FIPS support specifically though, right?","offset":1470,"duration":7},{"text":"Arjen: No, that's the—that’s one of the things that I really wanted in here is a—I should have mentioned it earlier—is a system where it works for existing applications that expect the IP stack to work. Because I looked at some of the other protocols, and what I found is the, they often seem to expect everyone to re-implement all their applications to work with it. But there’s no way in hell you're going to get any adoption if everyone needs to rebuild their stack from scratch. There’s, there’s 40 years of history in libraries, etc. Unless it works from scratch or like without any modification in all the applications, it’s not going to fly. So the way this works is we add a custom DNS server together with FIPS, the FIPS daemon. What happens is if any application on your, on let's say with computers for now, any application on your computer asks for npub.fips, what that DNS server does is it gives you back an IPv6 address that is deterministically derived from that npub, which is the same as the node ID of the destination.","offset":1477,"duration":70},{"text":"Odell: That's wild.","offset":1547,"duration":1},{"text":"Arjen: And then the application will send its traffic like it always would, right? It's going to, in my browser it's going to be HTTP becomes TCP becomes IP packets. And then down at the bottom where, you know, the system would send it out as an IP packet, we know we just generated that IPv6 address, so we intercept it and actually send it over FIPS instead. And the app just thinks it’s using the regular internet.","offset":1548,"duration":27},{"text":"Odell: Yes. So that’s what we’re focusing on most now is like all the applications, right? Ping, when I did the first experiments in Sovereign Engineering, Sec5, I found is like, okay, I make something like this. And now I have to rewrite, fucking ping app—excuse my French—the ping application. I’m not going to do that. Like, no one’s—no one in hell’s going to rewrite everything from scratch. So it has to work with everything that we already have.","offset":1575,"duration":27},{"text":"Odell: That's awesome. I mean, I think that's the key, right? That's the key for bootstrapping, then you don't even have the app developers don't have to change a thing.","offset":1602,"duration":15},{"text":"Arjen: Yeah, I think, I think that's a must-have. I don't think anything like this can, can scale if it doesn’t, isn’t backwards compatible.","offset":1617,"duration":10}],"startTime":1186},{"title":"Local Network Resilience and the Offline Spectrum","summary":"FIPS envisions a network where local services like Bitcoin nodes and Cashu mints remain fully operational even if the broader internet goes down. Nostr's verifiable data allows nodes to gracefully reconcile information once reconnected.","entries":[{"text":"Odell: Okay, I mean, I don't know where to go from here. That's like a mic drop moment for me. I mean, if this works, it seems like it's kind of the holy grail that you stumbled on here, sir. I mean, I’m reading through your Git repo. What do you want to cover? You know better than me. I, by the way, huge shout out to Justin Moon. He set up this conversation. I told him to join for it. He said he was unnecessary. I think he would have been very helpful.","offset":1627,"duration":28},{"text":"Arjen: We can, we can still try to get him in.","offset":1655,"duration":4},{"text":"Odell: What do you want to talk about? What is, what is most interesting to you here? You have thousands of people listening to this show. What do you want to talk about?","offset":1659,"duration":9},{"text":"Arjen: I think, I think the opportunity to make the internet in this general—like, FIPS doesn’t have to replace the internet if for, like, long-range stuff, right? If we’re necessarily. If we’re doing a call like this, it's fine if that still exists, like the hierarchy there, we’re not, you know, that’s not going to change quick. Um, I think it already wins if it works local. And that’s exactly, I think the most exciting thing is like if it works local with, say, half a million people or a million people, you don’t even need the traditional internet—the traditional way of doing things is we go out, like when we visit a website, right? I go to amazon.com. The way it works now is I send a message to Amazon saying, go fetch, go fetch, go fetch. And I think in a world with Nostr where everything, everything in Nostr is a stream, all the data is signed, so we can do replication wherever needed. So what we can do with that is we collect information once, we pull it inside the network that we have here, and from there on out it doesn’t matter if that connection to the outside world gets severed because the information’s already inside the network on the relays. And then from there, we can spread that information. So I think if we have a decent way of hosting that stuff inside this network that can rearrange and is resilient, then it doesn’t matter as much when connections outside are, are unstable. Like, you’ll just pull in the new stuff whenever you have a connection. And if not, you go about your day and do your things inside your network. You can run your Bitcoin nodes, your Cashu mints, uh, Nostr relays and Blossom servers in the, in your town and the main cable gets cut. Well, okay, it sucks, but you can still chat with whoever you want over all the, over White Noise. You can still use, um, Primal, right? And then what—and then the key is when that cable gets uncut or whatever, I don’t know what the opposite analogy is, when you get reconnected, you can gracefully reconnect to the water network.","offset":1668,"duration":130},{"text":"Arjen: Yeah, and then you can see like what was gone, what is not, right? That boundary Nostr allows us to, to completely remove the boundary between what is offline and online is, becomes a spectrum of offline and online. Like, offline is I don’t have anything on, I don’t have a relay on my computer, I don’t have a Blossom server on my computer, and I’m not connected to any other node. Then I’m offline. Whereas like you can be a little bit online where you have one other node peering some info, right, like shades of grey. Yeah. So there’s no—and then everything because of Nostr, everything’s signed, it’s all verifiable, you can gracefully reconcile afterwards. Yeah, so the way information flows I think will dramatically change in a Nostr world.","offset":1798,"duration":48}],"startTime":1627},{"title":"Current Testing Status and MTU Limitations","summary":"Arjen calls for developers to test and break the newly released protocol. They discuss physical hardware limitations, noting that FIPS must account for the Maximum Transmission Unit (MTU) sizes of various communication channels.","entries":[{"text":"Odell: What are the, what are the hurdles you face? Like, what are the trade-offs here? Like concerns, what are the dealbreakers? How are you thinking about that?","offset":1846,"duration":10},{"text":"Arjen: Well, for sure we need a shitload of testing of this, right? People need to, you know, if you have any kind of knowledge related to this, you should test it out, break it. We want feedback as much as possible, because of course it’s a—it’s a very big aim.","offset":1856,"duration":13},{"text":"Odell: Do you have this running in the wild right now?","offset":1869,"duration":2},{"text":"Arjen: Um, it was—it’s just been two weeks, but I, yeah, I have two servers, public, public servers people can connect to, I can share that.","offset":1871,"duration":8},{"text":"Odell: Are they connected to any peers? How many people are using this thing?","offset":1879,"duration":5},{"text":"Arjen: Well, right now it's mostly Jonathan, me, and maybe one or two other people. So we’re hoping for a lot more.","offset":1884,"duration":6},{"text":"Odell: Is Justin Moon using it yet?","offset":1890,"duration":3},{"text":"Arjen: No, he said he didn’t yet. We have to bully him into doing it.","offset":1893,"duration":4},{"text":"Odell: Fair enough. I’ll try and get my feet wet. This is there limitations, like bandwidth, users, you know, where the, where the points of failure here as someone who—I want to strawman it, but I don't, I’m steelmanning it, sorry, continue.","offset":1897,"duration":34},{"text":"Arjen: Uh, so there are, um, limitations on the, the physical transport you can use, right? People need to—uh, you know, steelman by the way, steelman, sorry, continue. The underlying transport stack. So, like limitations—I'm sorry, like limitations on, like, Wi-Fi connections or, like, actual physical limitations.","offset":1931,"duration":8},{"text":"Arjen: Wi-Fi—yeah, Wi-Fi and Ethernet are fine. Um, but it is like the lower you get, like you have tech like LoRa, right? There is in the way internet protocols work you have something called an MTU, which is the—minimum—um, I'll, I'll, I’ll find what the full meaning is, but it's the amount of bytes you can, um, you can transfer in one go on a network. So on traditional IP that's like 1500 bytes for every packet, something like that. You can go up and down in some networks. But if you have transports that are less reliable or lower power, um, something like Bluetooth uses smaller packets but still works fine. But if you go down to LoRa, like LoRa Meshtastic, they might get too small to send like the minimum size of a FIPS packet might be too big for those. Although there's some really exciting developments with stuff like Halo, um, Halo, which is a, um, Wi-Fi standard on the LoRa frequencies. So I do have hopes that even though it’s the same frequencies, the throughput can be increased in the coming years. And then maybe that will become feasible. But stuff like satellite uplinks might be already.","offset":1939,"duration":78},{"text":"Odell: I mean, I don't know how much it matters, but MTU stands for Maximum Transmission Unit.","offset":2017,"duration":4},{"text":"Arjen: Oh, yes, yeah. Yeah.","offset":2021,"duration":2},{"text":"Odell: So what you were looking for.","offset":2023,"duration":1},{"text":"Arjen: Yeah, yeah. It’s basically just how thick the pipe is between the two nodes, like how much, uh, how much water you can move at once.","offset":2024,"duration":11}],"startTime":1846},{"title":"LoRa and Low-Power Hardware Integration","summary":"Odell inquires about integrating LoRa devices into FIPS. Arjen explains that while low-power frequency bands have strict data transmission limits, FIPS's agnostic design allows hardware experts to potentially build compatible low-power transports.","entries":[{"text":"Odell: What's happening with the LoRa project? Are you following it or...?","offset":2035,"duration":4},{"text":"Arjen: I’m not following it that much. I think it’s cool, but, but a lot of them have been around for years, right? Um, uh, I really hope, that’s my maybe it's wishful thinking, that if the throughput can get higher, which, um, Corridore, the guy I work with for, for Tollgate, he knows a lot about doing wireless, um, uh, wireless stuff. And the things he said, like, I have to go from secondhand information, but what I know about it is that the waves and the frequencies themselves are not necessarily the problem. It is the tech that’s used on either end on like how much data you can put through that on that same frequency at once. With newer hardware, you can use the same frequencies but actually transmit more data at once. So I think if those developments continue, I think those technologies will be, will help.","offset":2039,"duration":50},{"text":"Odell: Well, I mean, I’m a little bit confused because doesn’t, like if I have a LoRa device, isn't it using Wi-Fi usually to transmit information?","offset":2089,"duration":9},{"text":"Arjen: Um, I don't know. I don't know exactly what they use.","offset":2098,"duration":4},{"text":"Odell: Okay.","offset":2102,"duration":1},{"text":"Arjen: But it's like whatever their specific protocol is that is actually the limiter. Or—","offset":2103,"duration":7},{"text":"Arjen: Yeah, no, I think it's a bunch of things. It’s the hardware, it's the protocols they use for transmission. But the goal is, you’re—I guess your point here, the high-level point is that you want low-power devices to be able to communicate with this protocol, and there might be some limitations there that you'll have to...","offset":2110,"duration":18},{"text":"Arjen: Yes, yeah.","offset":2128,"duration":1},{"text":"Odell: Yeah, and I don't want to venture too much into that area. Like, that's not my, my area of expertise, so I don't want to go too much into that. Right.","offset":2129,"duration":7},{"text":"Odell: And I guess the cool part of FIPS is that you have a very a relatively simple, robust protocol that people that are then more technically sound on, on the hardware side could come up with low-power ways of handling it. Yeah, right?","offset":2136,"duration":17},{"text":"Arjen: Yes.","offset":2153,"duration":2}],"startTime":2035},{"title":"Overcoming Mesh Networking Hype Cycles","summary":"Acknowledging the long history of failed mesh networking projects, Odell pushes Arjen to address the skepticism. Arjen credits the protocol's viability to combining new primitives like e-cash and Nostr, alongside Jonathan's deep cryptography expertise.","entries":[{"text":"Odell: That's awesome. What uh are there any other pain points to steelman? Um, I just, I just want to be clear here, like I have, I got into the LoRa hype, I got into the GoTenna hype. GoTenna’s proprietary as hell. I don’t know. I’ve just been through a lot of mesh hype to the point where when Bitchat came out, like I went along with the hype but like internally I was fading it. I was like, yeah, okay. Um, so what are the things that you hit that guess disappoint you or—?","offset":2155,"duration":40},{"text":"Arjen: I just want it to be a reality, you know? Like, the modern internet sucks. But the story of this story of humanity is us just solving problems by centralizing things, it’s the easiest way to do it. Um, and as a result, our lives that are incredibly digital now, the most digital our lives have ever been in existence, are like built on a shitload of centralized points of failure. And so I would love to have this dream of robots and people and drones and everything all interconnected in a graceful, robust peer-to-peer mesh way. But usually it’s just hype and we don't actually see any of it in practice. And maybe this time is different, and I want to ask the hard questions but I don't have the capability of asking the hard questions. So I’m asking you to ask yourself the hard questions is what I’m trying to do here.","offset":2195,"duration":62},{"text":"Arjen: Yeah. No, I think—I think that’s a fair ask. It’s a—it's a very big aim. I think it’s a very big aim to say like we can make anything else than then work besides IP. I had this, like, I had this idea, this, this, like exactly what I told you, like this local, local networking stuff, I think it can, I think it can work and I think it can work because we have the primitives of Nostr and Blossom and e-cash, right? We can transact locally, do micropayments. So we have a bunch of new primitives that have never been combined this way. And when I talk to Jonathan, who by the way is like a very OG, um, OG open-source developer...","offset":2257,"duration":41},{"text":"Odell: Yeah, his reputation precedes himself.","offset":2298,"duration":3},{"text":"Arjen: Yeah, he’s been around, um, in Bitcoin early on. He was on the, on the mailing list, the Cypherpunks mailing list. He's done a ton of cryptography and he, he looked at it and was like, oh, this, this might work. And I’m not at his level, and but I, I think I nerd-sniped him hard enough to, to come back from his retirement. Blue seal of approval. Yeah. So, you know, it’s—it's not, um, you know, you might notice like I venture outside of some of my comfort zone as well, I know all of these high-over things and how we use these services together, but when it comes to cryptography, I have to, have to give it to Jonathan there.","offset":2301,"duration":44}],"startTime":2155},{"title":"Digital Identity and Client Key Rotation","summary":"Odell asks how digital identity works if Nostr private keys are compromised. Arjen explains that for regular clients browsing the network, FIPS keys should be rotated frequently—similar to MAC address spoofing—to preserve privacy.","entries":[{"text":"Odell: Okay, so let's pull back to something that I'm actually very comfortable with. By the way, when Justin said—so first of all, I saw FIPS because Jonathan posted it. And so I immediately retweeted on Nostr because it was Jonathan. So I was like, okay, like it might be hypy, but it’s coming from this dude, so I have respect for it automatically. And then Justin was like, um, Justin was like, you should talk about FIPS on Dispatch. I was like, I would love to. And I was like, I can't believe I’m getting Jonathan on the podcast. And then he’s like, no, Jonathan doesn't want to speak. But you’ll you’ll get Arjen. And Arjen is very impressive individual, I met him at Sovereign Engineering. So by the way, that's the background of the show. But Nostr, right? So Nostr gets a lot of shit, I think, because of people, specifically if I would distill it, is like perfect is the enemy of good. Like Nostr is fascinating to me because it's super simple and robust and doesn't try and solve all the problems. It’s like very relatively easy to implement. Um, I mean, things like just the events being just like simple JSON. The private keys just being simple single-sig private keys. When you think about Nostr used in this context, is there a concern that someone's basic digital identity is just, you know, just a private key that effectively can't really be rotated, right?","offset":2345,"duration":89},{"text":"Arjen: Um, I'm not too into the debate of, of rotating keys. I know it's a, I know it's a big topic. Uh, one thing I do think is that everyone should, like use Nostr keys in the FIPS context, but it’s not meant to be tied to your Nostr like social identity. It is just you should, it should be rotated. Um, we have an open issue for that. It should be rotated by default, only when you host something it should be static.","offset":2434,"duration":32},{"text":"Odell: Well so then—sorry, I don't know if that answers your question. I mean, it kind of does. I mean, I think on the, on the social aspect, I don't think it's like that big of a deal. I think you just deal with key security, and so it's a key security problem. I mean, you can't rotate Bitcoin keys, like if your Bitcoin key is compromised you lose your Bitcoin. Um, but you can have many, right? And like that's kind and also we have all these different mechanisms for accessible cold storage and all this other stuff. So I think you kind of solve it from the key storage piece, and I think especially when you start thinking about agents and stuff using these things, it's more important that you can spin up a ton of keys rather than the individual robustness of a single key. I mean, I've been diving down the AI rabbit hole like pretty hard over the last five weeks or so. Like my agent at this point has like 25 different Nostr keys, you know, so... My point is is the cool part is that you can just spin them up on demand all the time. But in so in practice, on your side for this, are you envisioning that peers would constantly be changing their, or not maybe not constantly, but they will be changing their identities often?","offset":2466,"duration":78},{"text":"Arjen: Yeah, I think they should. If you’re, if you’re just consuming like you are right now, like you don't, you don't care on your phone when you're out and about what your IP address is, right? You're not hosting anything. No, I have no idea what my IP address is. Yeah, and it's actually a good thing that it changes all the time, similar to MAC addresses when you go hop on different Wi-Fi networks, like your phone spoofs it, you should do the same with FIPS keys. Only when you host something.","offset":2544,"duration":23},{"text":"Odell: Yeah. I've been using Starlink, I’ve been using Starlink, and I was talking to a Greybeard about it, and I was like it’s fantastic, like blah blah blah, and he’s like, yeah, but Elon gimped it because the way he did the scaling, your IP address is like shared and rotated all the time and you can't host anything. And I was like that's a huge advantage, like if I accidentally leak my IP address, like I’d rather it be rotated and shared all the time.","offset":2567,"duration":23},{"text":"Arjen: Yeah, yeah. The IP now is in this, in this part of the world and two minutes later it’s elsewhere.","offset":2590,"duration":6},{"text":"Odell: Like, you know just the region, basically. Yeah, you basically just have the region. So for the actual individual, it's actually a benefit, but if you want to host something locally, it's a negative. That's interesting. But then how to—and I guess peers would just handle that gracefully. They would just have, it doesn't necessarily have to be a static identity for your peers to...","offset":2596,"duration":26},{"text":"Arjen: No, I think—and I think if you cycle, it’s going to be the same as like, you know, walking from from Wi-Fi to 4G right now. If you walk out the door, you get a little hiccup, right? Um, it would be similar.","offset":2622,"duration":9},{"text":"Odell: That's interesting. So yeah, then that doesn't really matter, I guess, unless you're hosting something.","offset":2631,"duration":6},{"text":"Arjen: Yeah.","offset":2637,"duration":1},{"text":"Odell: But if you're hosting something, how do you think about it in that regard? Like, what if, um, I don't know if these hypotheticals are helpful or not, but what if I’m the person in charge of keeping track of everyone's the total grain that the community has, or something? I don't know. Um, and my Nostr key gets compromised. Is that really that bad of a situation? Couldn't I just broadcast out that like I'm now at this new one? I mean, I don't know how they'd verify that I'm the one saying it and then—","offset":2638,"duration":35},{"text":"Arjen: Well, that’s social, social key rotation, right? If you lose your—you mean like the social Nostr key?","offset":2673,"duration":6}],"startTime":2345},{"title":"Securing Hosted Services and Server Key Management","summary":"The discussion pivots to identity management for long-standing services like Cashu mints. Arjen suggests using NoDNS to link a secure cold-storage key to a hot key, allowing service providers to safely rotate compromised keys without losing their identity.","entries":[{"text":"Odell: Yeah, I don't know what it looks like locally—a lot of these problems are easy to solve locally because you just, like, walk to the farmer’s market and you're like, yeah, it's just you can find it at this new address now, right? Um, I guess an example, a broader example would be, um, I don't know if you saw, but down-detector.com got sold for a billion dollars. No, isn't that wild? Um, but anyway, uh, I mean, it’s fiat games. It's like, what is things valued nowadays? But a part of the reason is not necessarily the data that—you know what Down Detector is, right? Like you go and check if a website's down. But it's not necessarily that they have the data on what things are down and a lot of it is user-reported, some of it is ISP-reported. But it's also just the reputation, right? Like, I know if I’m having trouble with something and I’m trying to troubleshoot if it’s me or if it’s, you know, Cloudflare going down globally, if I go to downdetector.com, they have a relatively good reputation that they’re telling the truth and have good data, right? So in this context, it would be some npub presumably that is like tracking some information and they’ve been doing it for five years, 10 years. How would they—have you even thought about like how they would gracefully move to—because it's hard to keep a key secure for five years hot.","offset":2679,"duration":88},{"text":"Arjen: Well, I can, I can only talk from the networking perspective. The social, social rotation I really don’t know how, how that should be solved. But for the routing side, if you say you are hosting an important server, say you are hosting a Cashu mint, right? That's an important server, and the traffic is encrypted with a Nostr key, which means that the key is probably hot, right? The key is used actively on the device. In that case, it might be dangerous to link that to make that the identity of the mint because currently the mint identity is the domain name. So if that becomes npub.fips, and that key leaks because it's always hot, that can be problematic. So it might still be useful to use, um, something like NoDNS where you have a key maybe in cold storage that then publishes these DNS records on Nostr, get resolved by name servers that are compatible, and that then actually link to the hot key, but that can then be rotated because the identity is then tied to that self-proclaimed—yes, but at least you can keep one in cold storage and no one should be able to touch it.","offset":2767,"duration":76},{"text":"Odell: That's a good solution. And that's a good example by the way. I'm running my basically my community bank. That's like a pretty serious responsibility. Yeah. And they need to be able to securely connect to me and know it's actually me and not some malicious actor.","offset":2843,"duration":20},{"text":"Arjen: Yeah, I think that's with, particularly with mints, I think it is a risk that it somewhat uses the domain name as its identity, right? It's mint.minibits.cash. It's, um, so if that gets rug-pulled and they change their domain, well, it's kind of gone from all the, from all the apps that use it. So I think those things should probably be npubs to begin with.","offset":2863,"duration":25},{"text":"Odell: I mean, on that note, I mean, it would it would make self-hosting these things way easier, right? And self-hosting and then connecting to them way easier. Yeah, that too. Specifically privately, right? Like, the powers that be know—I don't know who runs MiniBits, but the powers that be knows who runs MiniBits because of the existing networking stack, presumably. It's pretty hard to get a private domain, it's pretty hard to have a private IP address that's not linked to your identity, like he's presumably doxxed to the powers that be. And then existing solutions like things like Tor or whatever have a bunch of their own trade-offs and actually solve a bunch of things with centralization themselves and centralized blocklists and they have a bunch of—what about latency issues? Like, Tor’s slow as hell. Would this be slow as hell in comparison, or...?","offset":2888,"duration":55}],"startTime":2679},{"title":"Network Privacy and Tollgate ISP Liability","summary":"Arjen clarifies that FIPS is not onion routing, but its decentralized nature prevents any single entity from observing all traffic. They also debate the liability of individuals acting as local ISPs in Tollgate and the philosophy of an open internet.","entries":[{"text":"Arjen: It's not, uh, it's not onion routing, so—","offset":2943,"duration":4},{"text":"Odell: Because it's direct peer-to-peer?","offset":2947,"duration":1},{"text":"Arjen: It’s meant to be fast, so I I’m not making any any big privacy claims here. I I don't think it's necessarily way better than what we have. In some aspects it is, like it's encrypted hop-to-hop and then also end-to-end. Um, I think that helps. Of course, if you are the almighty observer of the entire network, I don’t think it's going to be much different from now.","offset":2948,"duration":22},{"text":"Odell: Fair enough. But right now we're forced to run through the almighty observer. In this case, we wouldn't be.","offset":2970,"duration":8},{"text":"Arjen: Yeah, yeah. I think that's actually a big thing with, with Tollgate, right? It changes the financial incentives. So if you have more, more actors, especially on, on the edges, right? You're always going to have the undersea cables or, like, major parties, that's fine, it's going to stay that way. But if you have entire communities that self-run and don't, you know, don't observe everything by choice, you can at least maybe only deduct that someone in this community looked up this thing, which is way better than always being able to point down everything to every individual.","offset":2978,"duration":31},{"text":"Odell: That's super cool. It's kind of like a—in that situation, it's almost like a hosted VPN, shared VPN kind of privacy model where you have a bunch of people coming out through the same IP address.","offset":3009,"duration":14},{"text":"Arjen: Well, yeah, I think it, I think it helps to introduce more people to convince to observe. Right. Now you just go to large ISPs and say, like, oh, you give me this information. Whereas with Tollgate, you have to go to maybe half a million ISPs because everyone is an ISP.","offset":3023,"duration":18},{"text":"Odell: Right. I mean, on the Tollgate piece, while I have you, a lot of people's concerns I've heard with the Tollgate project is like similar to running a Tor exit node. It's like, let's say I live in Paris and a bunch of random people are just connecting to my Wi-Fi and paying me sats and then looking up maybe questionable stuff. Yeah. What is your answer to those people on the Tollgate side?","offset":3041,"duration":25},{"text":"Arjen: Yeah. Um, I think the people that, like, have the connections to, um, basically to upstream, right? The general broader internet, should probably implement a specific block filters to block things that are like clearly illegal. Uh, but there's no clear-cut clear-cut solution to it. Um, but I think it's also why I want to move to local communities, doing everything local, where you should trust your community enough that everyone's, like, an honest actor, or I want to maybe. Maybe it's naive.","offset":3066,"duration":35},{"text":"Odell: Well, at least in small communities you definitely could. Yeah, yeah. I mean, small towns.","offset":3101,"duration":7},{"text":"Arjen: Yeah. It is a good point, but also it's not really—it’s like, are you going to abuse cars for—who’s responsible for producing—is the person that produces the cars responsible for, you know, anything anyone ever does with a car? Um, it becomes this this moral debate that is, you take either either one stance on.","offset":3108,"duration":25},{"text":"Odell: Yeah, I mean, it's not specific to Tollgate. I mean, you see this already with, like, coffee shops and stuff, right? Particularly in the developing world where you have bad cell connections, it's like every coffee shop becomes an ISP. They just don't have Tollgate there to charge people for it, instead it's just, you know, you're buying a coffee so you get the Wi-Fi password.","offset":3133,"duration":23},{"text":"Arjen: Yeah, yeah. But there's no, uh, there's no good answer. My personal opinion is that, you know, the internet is is should be open, open and free. I think the only counter-movement is that you observe everything and start to play police on every, every little thing, which is what we’re seemingly heading towards. I don't think that's the right future. Making everything, like, completely open and free, I think that's probably the best way and, like, solve things in the old-fashioned sleuthing way where you you go after bad people whenever the chance occurs.","offset":3156,"duration":35}],"startTime":2943},{"title":"How to Test and Deploy FIPS","summary":"Odell asks how listeners can get involved with the project. Arjen points users to the FIPS repository, highlighting available Docker images, test cases, and upcoming packages for OpenWrt routers.","entries":[{"text":"Odell: I think that's reasonable. I think that's what a lot of us are working towards. I just asked my bot to steelman FIPS. I think this conversation’s been fascinating. I think the project's really fucking cool, to be frank. I obviously need to play around with it. I’m hoping this conversation leads to more people trying it out, giving feedback.","offset":3191,"duration":25},{"text":"Arjen: Yes, please. We want we want a lot of people to test it.","offset":3216,"duration":4},{"text":"Odell: What's the process for—what like how does someone go about doing that? How should they think about participating here? Or testing it?","offset":3220,"duration":8},{"text":"Arjen: Yeah. So currently the repository, there's some, some manuals where you can compile and run it yourself. There's test cases, Docker, um, Docker-based meshes you can spin up quite easily. There's, like, step-by-step guides. Your LLM can do it. And we’re currently working on packaging, packaging it, uh, tarball should be ready any moment now, and I’m working on packaging it for OpenWrt routers and a bunch more. So then it should become easier to deploy it as well.","offset":3228,"duration":35},{"text":"Odell: I uh, okay, so I’m going to play around with it. Hopefully the freaks play around with it, give feedback. Those who can, will look over the the code and the specs and maybe provide feedback and advice on that side. Um, and then when I'm a little bit more fluent in it and more people are using it, I would love to have you back on when I can ask more reasonable questions, and I hope I wasn't too much of a struggle here. I think it will still be helpful to people.","offset":3263,"duration":28},{"text":"Arjen: No, no. These questions are these questions are valid and, and I have to make, like, you know, some of it ventures out of my my comfort zone as well. It’s a...","offset":3291,"duration":8}],"startTime":3191},{"title":"An AI Steelman of the FIPS Protocol","summary":"Odell reads a summary generated by Opus AI that perfectly captures the Cypherpunk ethos of FIPS. The AI argues that FIPS enforces privacy through mathematics rather than policy, aiming to return the internet to a network of peers.","entries":[{"text":"Odell: It's just so much—there's a lot of things to it, and it's really hard to, you know, convey these things in a short manner as well. Uh, so I asked—I asked Opus 4.6, which is supposed to be the smartest of the models right now, to steelman your project. I’ve never done this before, but I'm just going to read what Opus said: \"FIPS embodies a principle that the Cypherpunks articulated decades ago. Privacy and freedom of communication should be enforced by mathematics, not by policy. Laws change, companies get acquired, governments get replaced, but the laws of cryptography don't change. A system where your privacy is guaranteed by encryption rather than by someone's terms of service is fundamentally more robust. FIPS is ambitious but not delusional. It's technically sound, addresses a real and growing need, is built by someone with relevant deep expertise, integrates with an existing ecosystem, and is designed to work even at small scale. If it gets even 10% of the way to its vision, it could provide genuinely life-saving communication infrastructure for people living under authoritarian regimes and a meaningful privacy upgrade for everyone else. The internet was supposed to be a network of peers; somewhere along the way, it became a network of subjects. FIPS is trying to make it a network of peers again.\"","offset":3299,"duration":78},{"text":"Arjen: Damn. You didn't even have to have me on. You could have just generated—","offset":3377,"duration":3},{"text":"Odell: That's pretty good, right? That was just a one-shot prompt to steelman FIPS, and I gave the URL obviously.","offset":3380,"duration":8},{"text":"Arjen: Yeah, that’s a great summary.","offset":3388,"duration":2}],"startTime":3299},{"title":"Conclusion and Final Thoughts","summary":"Odell wraps up the show, providing links to the GitHub repository and Sovereign Engineering in the show notes. Arjen leaves the audience with a final call to test, break, and provide feedback on the FIPS protocol.","entries":[{"text":"Odell: Okay. Well, I had a great time. I'm excited, uh, I'm excited to see where this project goes. You have any final thoughts for the freaks before we wrap?","offset":3390,"duration":9},{"text":"Arjen: Test it. Give feedback. Break it. All that.","offset":3399,"duration":6},{"text":"Odell: Fair enough. I will link to the GitHub repo. I’m going to link to Sovereign Engineering. I think if you're a developer out there, you should check it out. It’s a really great program. Uh, anything else I should link to in the show notes for the freaks?","offset":3405,"duration":13},{"text":"Arjen: Tollgate.","offset":3418,"duration":1},{"text":"Odell: Tollgate. I’ll link to Tollgate. You are—are you on Nostr too? Do you have a personal npub on Nostr?","offset":3419,"duration":6},{"text":"Arjen: Yes, yeah.","offset":3425,"duration":1},{"text":"Odell: Okay. You don't have to say it out loud. You can just send it to me and then I’ll put it in the show notes as well.","offset":3426,"duration":4},{"text":"Arjen: I’ll send it.","offset":3430,"duration":1},{"text":"Odell: I'm not going to make you read the npub. Okay, Arjen, this was awesome. Uh, thanks for joining.","offset":3431,"duration":6},{"text":"Arjen: Yeah, thanks for having me.","offset":3437,"duration":3},{"text":"Odell: Freaks, I hope you enjoyed the show. Provide feedback. All links are at citadeldispatch.com. If you go to primal.net/citadel, it's the main Citadel Nostr experience. That's the best place to leave feedback, then the rest of the community can jump in and everyone can comment. I'll tag Arjen there in that post as well. Awesome. Love you all. Stay humble, stack sats. Peace.","offset":3440,"duration":24},{"text":"Arjen: Cheers. [Music] [Music fades]","offset":3464,"duration":15}],"startTime":3390}],"entries":[{"text":"[Music]","offset":0,"duration":32},{"text":"Odell: Happy Bitcoin Friday, freaks. It's your host Odell here for another Citadel Dispatch, the show focused on actionable Bitcoin and freedom tech discussion. Today is Friday, March 6th at 22:00 UTC. The current Bitcoin block height is 939631. Sats per dollar 1465. Current US dollar price is 68,239. I told you freaks I’m gonna go with the price priced in gold now as well. Priced in gold: 13.97 ounces of gold buys you a Bitcoin. We're outperforming gold on the week, but not on the day, the month, or the year. But we will eventually, hopefully, expecting, we’ll see.","offset":32,"duration":42},{"text":"Odell: As always, Dispatch is funded by our viewers. Viewers like you, thank you guys for supporting the show with your hard-earned Bitcoin. We have no ads or sponsors. Uh, this was—I’m trying to do as many shows as possible that are high signal for you freaks, so this one was two days after the last one. It seems like no one has supported the show in significant size, so I don't really have anything to read out, but thank you to everyone who does support the show. Uh, an easy way to support the show without sparing your hard-earned sats is sharing it with your friends and family. Citadel Dispatch is available on every major podcast app. All relevant links at citadeldispatch.com.","offset":74,"duration":46},{"text":"Odell: Anyway, freaks, I have a great show today. We are going to be talking about the recently announced FIPS project, which I believe stands for Free Internetworking Peering System. Um, and it’s basically the idea of, of building the internet from the ground up, uh, without all the middlemen bullshit that is involved in the current internet setup, using Nostr at its core. It's a little bit above my pay grade, so we’re going to be diving in deep here. And if I can understand it, then at least some of you can understand it. And we have Arjen here, one of the main contributors. How's it going, Arjen?","offset":120,"duration":39},{"text":"Arjen: I’m good. Thank you for having me.","offset":159,"duration":2},{"text":"Odell: Was my basic explanation decent?","offset":161,"duration":3},{"text":"Arjen: Yeah, I think so. I think so.","offset":164,"duration":2},{"text":"Odell: What is FIPS?","offset":166,"duration":2},{"text":"Arjen: So, FIPS is an attempt to, uh, do networking in a way that doesn't require any, any authority to be involved. The need actually came from, uh, from Tollgate where, um, you know, we, we pay for internet access for, uh, but if you have a system where, you know, you can pay other people to peer with them, basically, you need, you can switch between the people. So, if you switch, the person you’re buying your internet from, what happens in the current structure of the internet is that you lose your IP address, it changes, and that’s okay if you’re reaching out to the outer world, but that’s not okay if you want to host anything inside such a network.","offset":168,"duration":53},{"text":"Odell: Yeah. So first to pull back, Tollgate is this project that allows you to basically sell your Wi-Fi for sats and then people are able to access it. And then in the traditional internet infrastructure, we have internet service providers, we have DNS providers, we have all this different, all these middlemen that are involved in networking everyone together. And our IP address is our quote-unquote identity, I guess, on the internet. And a lot of home internet, I guess, their IP addresses do change a decent amount. Sometimes they change, sometimes they don't. But if you’re, like, hosting a website or something, you basically need a fixed IP address, right?","offset":221,"duration":33},{"text":"Arjen: Exactly, yeah.","offset":254,"duration":1},{"text":"Odell: So FIPS, yeah, so continue.","offset":255,"duration":3},{"text":"Arjen: Yeah, so, so in a, in a Tollgate network, right, the, the way we envisioned it first is like, okay, you have someone that is connected to the legacy ISP, if you will. And from there on out, you start reselling that internet, and someone can buy it from you and they start reselling it. That assumes a tree structure where someone’s on top and someone’s at the bottom. But if you have a network that grows and like, say, you’re two, three steps down, and there’s someone that actually gives a better price for that connection and you’re going to switch over, everyone below you is going to lose their, lose that structure that was there to define them inside that network.","offset":258,"duration":41},{"text":"Odell: Right. So in this situation, everyone has a Nostr public key-private key pair, which you can spin up relatively easily. That's your public identity. And then this is why I think it's fascinating because conceptually, high level, it makes a lot of sense to me. So then you’re able to just connect peer-to-peer between those public keys without anything else. So I can be connected via Wi-Fi or Bluetooth, I can run a long-ass Ethernet cable to my neighbor, and he could run a long-ass Ethernet cable to his neighbor, and we’d all be connected to each other, and then one of them could then have, like, some kind of long-distance mesh to someone else, and then you can continue and all that networking would work natively with Nostr. That all seems awesome, high level. How, but how is that possible? That doesn’t, like, what's the nitty-gritty that actually makes that a reality versus just something that just seems really cool in a, in a tweet?","offset":299,"duration":52},{"text":"Arjen: It is just by, by decoupling two layers, if you will, the, the physical transport layer and the routing layer. In a lot of cases, they’re very interconnected. Right, if, um, we have internet, like, IP traffic, it presumes, um, that it uses Ethernet, basically Ethernet or Wi-Fi. Um, it doesn’t run over Bluetooth. And every different protocol kind of has its own way of doing that. And what we found is it’s better if you have something that works across it and just, um, show, expose some interfaces to the layer below where it doesn’t matter how it works. All you need to know is just I want to be able to send some data to a peer and I want to be able to get some data to a peer. I don’t care how you get it there, just get it there. If it’s Ethernet, right, you use the Ethernet protocol or Wi-Fi. If it’s Bluetooth, you use Bluetooth underneath, but the FIPS protocol doesn’t have to, doesn’t care about that.","offset":351,"duration":60},{"text":"Odell: But then how does discovery work?","offset":411,"duration":3},{"text":"Arjen: That depends on the layer you use, or the transport you use. If you use a broadcast medium, say Wi-Fi, you can broadcast the fact that you’re a FIPS node and that you want to peer with people. That way people can discover you and send messages back.","offset":414,"duration":18},{"text":"Odell: Okay, work with me here on, uh, hypothetical, 'cause it—I understand hypotheticals better. Uh, let's say you're successful, this project is a smashing success, and it's five years in the future. Um, you’re in a different country than me. I have your public key. I want to send you information. How, how does me pressing enter on my side get to you?","offset":432,"duration":32},{"text":"Arjen: If we are on the other side of the world, that is a problem we hope that we’re going to run into with, um, people using it. Uh, we’re nowhere near that yet. But I, I think the, one thing that can help us with that, where, um, if you do mesh without the cryptographic identities and Nostr keys for that matter, I think we can use nodes that are somewhere in between that can help us route that traffic. But this is two-step, two, three steps ahead and like, routing further away.","offset":464,"duration":24},{"text":"Odell: So are these, are these similar to, like, what a DNS server currently is? How does that look?","offset":488,"duration":6},{"text":"Arjen: Yeah, in this instance, it would be something like that. Like, uh, you would maybe publish something to the—it's very theoretical. You would publish something to, say, a Nostr relay that is specialized in this, right? You can use your, you can use your Nostr keys to sign something and like how people can find you. But you can do it in a way where there’s not one party involved, it's like one central authority you look at, like how does that traffic go from A to B, uh, but you can send it to multiple people.","offset":494,"duration":32},{"text":"Odell: So the difference would be from the modern-day setup is that it'd just be more accessible to run these kind of discovery servers or whatever you’re calling them. Like, anyone could basically run one and there, there wouldn't be, like, lock-in. Maybe? Am I reading this correctly or...?","offset":526,"duration":13},{"text":"Arjen: Yeah, if you would use something like this, yes. Um, but I think we should backtrack a bit first, like how the, how it works.","offset":539,"duration":6},{"text":"Odell: Let's backtrack, yeah. Whatever you think is best.","offset":545,"duration":3},{"text":"Arjen: In the local level. Um, so on the local level, you discover a peer, um, and you encrypt, like, you advertise your own pubkey, right? The peer advertises his pubkey. You can immediately encrypt something to that pubkey, so there’s a handshake there where the two peers use a noise protocol to establish an encrypted connection. And every peer does that amongst each other, and so every hop of the way is individually encrypted. And then on top of that, there is the, the longer routing of, like, the longer routes. And the way you can find another peer within the mesh, say, like, a mesh up to 10,000 people, oh shit, is that every peer holds a Bloom filter of the people that they can reach. So if you connect to a peer that can already reach, say, like, 10,000 other peers, it will give you a Bloom filter, which is a very compressed, uh, version of a list of npubs that it can reach. It's just one kilobyte at this moment. You get that, and then whenever you get a packet that’s for any of those 10,000, you know that that peer that’s on your left-hand side can actually reach it.","offset":548,"duration":76},{"text":"Odell: Got it. So in practice, each peer is like, almost like a DNS server?","offset":624,"duration":8},{"text":"Arjen: Um, I think it’s hard to make that comparison because it's not—it's, it's a different—it's a different way of doing things.","offset":632,"duration":12},{"text":"Odell: Right, it's fundamentally different. But each peer is also my method of discovery?","offset":644,"duration":6},{"text":"Arjen: Yes. In a smaller local mesh, that is the way you found other people.","offset":650,"duration":6},{"text":"Odell: Yeah, I mean, you can, this is a interoperable way of rolling out, like, a local community mesh relatively easily.","offset":656,"duration":6},{"text":"Arjen: Yeah, yeah. And that's honestly, that's if only that works, I would already be very happy because you can roll this out in a community, you can host servers, right? You can, you can host things on an npub that can even physically move around in a network, and if the network gets cut off from the rest of the world, everything just keeps working. You can do it if, you know, part of the network fails, you go over Bluetooth, uh, whatever works. Whatever method you have available, that’s how you want to route the traffic.","offset":662,"duration":29},{"text":"Odell: It's completely agnostic. And some peers can be on Ethernet, some could be on Wi-Fi, some could be on Bluetooth. Doesn't matter.","offset":691,"duration":7},{"text":"Arjen: Yeah, or even satellite uplinks.","offset":698,"duration":4},{"text":"Odell: Now, what if one person—have you guys, is it in scope of the project if, like, one person has Starlink, for instance? Would then the whole community have broader internet access or no? Is that...?","offset":702,"duration":11},{"text":"Arjen: Yes, you can, so if you use Starlink, you are using the, uh, regular internet stack, IPs, but you can establish peer connections over, over the internet. So if I have a mesh here in my house and you have one in your house, uh, we can establish a link over UDP and connect the mesh that way.","offset":713,"duration":21},{"text":"Odell: Yeah, I mean, 'cause like, in practice, so let's use a real-world example, right? The internet—the government of Iran cut the internet relatively recently. I don't know if the internet's on right now or if it’s off. But at least during the protests a couple weeks ago, uh, now we have war in Iran. But, uh, during the protests a couple weeks ago, uh, government internally cut the internet because they didn't want communication among the protesters. It's something we see happen all the time. And as a result, Bitchat usage spiked in the country. Now, Bitchat has its own issues, right, in terms of range and whatnot and capability. But the biggest one that I kept thinking about is those people could communicate internally, which is great, still an advantage, you know, it's better than the alternative which is no communication internally. But they couldn't, for instance, broadcast to the rest of the world and be like, this is what’s happening on the ground right now. There was a fog of war that was happening and, and that was part of the government's design. That's why when you see large protest movements happen in different places, authoritarian governments often cut the internet. Now, the dream high level in my mind has always been you have, like, local meshes and then one person smuggles in a Starlink and then all of a sudden the entire community can broadcast globally on Nostr, for instance, and say, you know, here's a video of the police abusing us or whatnot, or corruption or whatever they’re trying to get out. Presumably this project should be able to offer that kind of capability, no?","offset":734,"duration":88},{"text":"Arjen: Yes, because you can introduce, basically, say, quote-unquote a tunnel to the rest of the world from anywhere, and that would automatically be discovered by the network. So if, yes, you have a Starlink that goes up and, right, goes down in another country and you have a mesh there, well, as long as you knew one of the npubs that was on the other side of the mesh before it got cut off, you can actually find that route again.","offset":822,"duration":22},{"text":"Odell: That's awesome. I mean, have you talked to the, have you talked to the Bitchat guys at all or...?","offset":844,"duration":9},{"text":"Arjen: Uh, no, we just, uh, we just released it, actually, so it was two weeks—two weeks ago, uh, I just met—the idea has been around for, for a little while, and I met Jonathan just in last November, and we kept talking, talking about the idea, and, uh, so that slowly developed over the last few months, and just the last couple weeks we had a, had a working working demo.","offset":853,"duration":23},{"text":"Odell: That's awesome. Did you guys, did you guys meet at Sovereign Engineering?","offset":876,"duration":4},{"text":"Arjen: No, at a conference in Costa Rica. Uh, there was this conference for Nostr conference, and I think, yeah, it was two days and the only thing I did is basically sit in a room with him talking about these ideas on doing addressing with, with npubs instead of, instead of IP or for DNS as well.","offset":880,"duration":20},{"text":"Odell: So what is the Sovereign Engineering connection? I—Justin Moon introduced us. I believe he met you at Sovereign Engineering?","offset":900,"duration":6},{"text":"Arjen: Yeah, correct, yeah.","offset":906,"duration":1},{"text":"Odell: What was the Sovereign Engineering experience like? I mean, I love what those guys are doing. I haven't been myself, but I work closely with Gigi at OpenSats and he’s heavily involved in Sovereign Engineering. I think it’s a fascinating program.","offset":907,"duration":13},{"text":"Arjen: Yeah, so some of the, the original idea on, like, addressing with npubs is something I worked on at Sovereign Engineering last year. Uh, it came from the ideas like if we can use npubs to address services instead of IP addresses or traditional domain names, then at least we have a static identifier we can use across the web to reach things even if the IP address changes. Um, that experiment turned into what's called now, uh, NoDNS, where someone signs cryptographically on in a Nostr message all the, um, DNS records, publishes that, and other people can resolve that as DNS. So that’s kind of the, the predecessor of this idea. We can do it inside the IP network. You still have that structure, but when it changes, you have some flexibility on correcting that, similar to if an IP address changes now, you use update the DNS record and people can reach you again. You can do it much faster this way, that’s nice, but it doesn’t resolve the, the entire issue.","offset":920,"duration":62},{"text":"Odell: I didn't realize, so Tollgate is your project as well?","offset":982,"duration":5},{"text":"Arjen: I work on it as well, yeah.","offset":987,"duration":1},{"text":"Odell: Yeah. So Toll—you were in Sovereign Engineering for Tollgate specifically?","offset":988,"duration":4},{"text":"Arjen: Uh, the first one I was at, Sovereign Engineering 3, I didn’t know much about Tollgate back then, but I met the guy that started it, and from there on we started to basically rolled into it and we started to, uh, work, work on it together.","offset":992,"duration":18},{"text":"Odell: I think it's a super cool project too. I so the the whole premise of Tollgate is that I’m, I’m paying sats for internet access. Are sats involved in FIPS at all? Like, are people, are people using—is the idea that people will be paying for peering, or have you thought about that at all?","offset":1010,"duration":21},{"text":"Arjen: Yeah, that, that’s my hope for sure. Like, the whole reason FIPS exists is because, um, we don't have a way to do this dynamic, uh, this dynamically changing network. So I think it's a very—payment is a very important part of it because you want to be able to steer traffic based on economic incentives as well. So if say one link is very expensive and the other is cheap, well why not, if you pay for that connection, why not incorporate that in your routing decisions as well. But that’s a—that’s definitely a next step. But it can be, can be combined.","offset":1031,"duration":33},{"text":"Odell: I mean, and wouldn’t something like that be necessary because—have you thought at all about DDoS concerns or, or any kind of malicious attacker trying to flood the network or break down the mesh?","offset":1064,"duration":16},{"text":"Arjen: Yeah, there’s, um, there's a couple things there. The mesh when, when joining the mesh, uh, physically, you need to do that with a peer, so, and that peer it will be, uh, rate-limiting how many people can connect at the same time. So that’s, that’s one defense. Another defense is that to send traffic to an endpoint, you need to know the npub because on the routing layer, uh, the nodes don’t know for the packets they send, they don’t know the npub. They only know a node ID that is derived from the npub. So that provides some protection. If your npub is not known by the whole world, it's hard for someone to DDoS you.","offset":1080,"duration":40},{"text":"Odell: Interesting. Because that would be the attack, right? If we were going to go down our hypothetical and you're in Iran and the government's shutting down the internet, they would try and jam different types of signals, I guess, and then also they would presumably just spin up, spin up npubs, right, and just start spamming the network.","offset":1120,"duration":21},{"text":"Arjen: Yeah. I mean, it’s a—it's definitely not a—not an easy problem to solve, right? That’s, it’s not fully solved in the current internet.","offset":1141,"duration":8},{"text":"Odell: Yeah. Probably the hardest problem set.","offset":1149,"duration":2},{"text":"Arjen: Well, the current internet just solved it with centralization, right?","offset":1151,"duration":4},{"text":"Arjen: Yes, yeah, you have Cloudflare to do these things.","offset":1155,"duration":5},{"text":"Odell: Which is just a massive middlemen honeypot. And then also just internet infrastructure in general, right? There’s, like, a million central points of failure that can be pressured and shut down. That’s why authoritarians can, I mean, it’s not as simple as it, but basically click a button and cut off the internet for the entire country, right?","offset":1160,"duration":17},{"text":"Arjen: Yeah, yeah. So, um, that’s why an internet that is, that is designed to fracture and recombine is, is very useful.","offset":1177,"duration":9},{"text":"Odell: Well, what I like about this is it's very pragmatic because one of the trouble—like, mesh is something that I've been fascinated with for maybe a decade. And there's been many different attempts at doing different things. Um, I think it was, it was exciting that and obviously partially it was because of Jack Dorsey tweeting it out, but the excitement around Bitchat. But it was also kind of weird, right, because if you'd actually been following the mesh space for a while, like people were acting like it was the first mesh project that ever existed, but there was a million predecessors that failed beforehand. And always the problem—well, not always, there’s many different, you, like you said, it's very hard problem to solve. But one of the core problems I feel like is this bootstrapping issue, where, you know, you need a critical mass of at least your neighbors to be using it for it to be useful, right? I, and people saw with Bitchat, right? It’s like they would download Bitchat, and then it was just nobody to talk to, right? Because you don't have neighbors that also download Bitchat. And there's different ways of solving it. You know, it's easier in cities. I like the idea of being in a, in a—like a sports arena or something that already has poor internet, and maybe in a sports arena everyone wants to talk about the same thing. They're all watching the same game, they all want to talk about the same game. It’s a high-density group of people. You could see it being really useful in that situation, a concert, a music festival. Um, but at scale, to actually, like, see it work at scale, um, it's a just a really hard problem. But one of the things that I've thought about historically is if you could bootstrap it in a way that it works with modern internet infrastructure until the modern internet infrastructure isn't needed anymore, then that makes it way more useful. Because if we’re in different parts of the world but we can use this tech to communicate because of the existing internet infrastructure, then all of a sudden it's useful today without actually having the build-out of people interconnected all the way between us or whatever, right? Does that make sense?","offset":1186,"duration":125},{"text":"Arjen: Yeah, yeah. And there's, um, there’s a couple things to unpack there too is that I really hope we can, when nerd-snipe the, the people from Bitchat into this. Because if, you know, if you run a mesh that is cross-transports, you can lower the burden of making apps like Bitchat because now Bitchat needs to design its own protocol on like how over Bluetooth the app, apps are going to talk together, whereas if it was just you can just send TCP/IP traffic like through this, like any existing application like a relay and a, and a Nostr app, then you can do this over Bluetooth without having to specifically design the app to also support that.","offset":1311,"duration":41},{"text":"Odell: Can we go a little bit deeper there? How does that look in practice?","offset":1352,"duration":5},{"text":"Arjen: So, say you would have, you would run a FIPS network and every phone has, has it running and is peering with each other over both Wi-Fi and Bluetooth, some people are only Bluetooth. Now on these phones, you can host, um, something like a Nostr relay. Now everyone can reach that relay over a npub.fips address from any app on their phone. So now they don't need a app that is specifically designed to be a Bluetooth app, it can just be like any other app and not have to put in any effort to, to do this. And so you don't just have one app that can do this, but you have pretty much everything under the sun that would work if, if it uses infrastructure like Nostr relays that are really good at, um, facilitating so many use cases at once.","offset":1357,"duration":47},{"text":"Odell: But so how does that look in practice for like an app developer? How would they integrate in that situation?","offset":1404,"duration":7},{"text":"Arjen: Um, so if I would, say, like White Noise, right? Bitchat app. White Noise connects to Nostr relays. White Noise does what White Noise does best, like do all the encryption, do all the rotation, group management, but they might not want to put so much effort into making a Bluetooth mesh. If they, if someone that uses their app on their phone also connects to a FIPS network, they can just configure a relay like they always would, saying npub.fips in the relay, in the relay list. Then they can already talk to that relay that’s on FIPS. Now if they then move around inside that mesh, and other people join, they go from Bluetooth to Wi-Fi, they can still reach that relay that is elsewhere in the network. So they don’t have to change their app to work over Bluetooth.","offset":1411,"duration":59},{"text":"Odell: But they have to add FIPS support specifically though, right?","offset":1470,"duration":7},{"text":"Arjen: No, that's the—that’s one of the things that I really wanted in here is a—I should have mentioned it earlier—is a system where it works for existing applications that expect the IP stack to work. Because I looked at some of the other protocols, and what I found is the, they often seem to expect everyone to re-implement all their applications to work with it. But there’s no way in hell you're going to get any adoption if everyone needs to rebuild their stack from scratch. There’s, there’s 40 years of history in libraries, etc. Unless it works from scratch or like without any modification in all the applications, it’s not going to fly. So the way this works is we add a custom DNS server together with FIPS, the FIPS daemon. What happens is if any application on your, on let's say with computers for now, any application on your computer asks for npub.fips, what that DNS server does is it gives you back an IPv6 address that is deterministically derived from that npub, which is the same as the node ID of the destination.","offset":1477,"duration":70},{"text":"Odell: That's wild.","offset":1547,"duration":1},{"text":"Arjen: And then the application will send its traffic like it always would, right? It's going to, in my browser it's going to be HTTP becomes TCP becomes IP packets. And then down at the bottom where, you know, the system would send it out as an IP packet, we know we just generated that IPv6 address, so we intercept it and actually send it over FIPS instead. And the app just thinks it’s using the regular internet.","offset":1548,"duration":27},{"text":"Odell: Yes. So that’s what we’re focusing on most now is like all the applications, right? Ping, when I did the first experiments in Sovereign Engineering, Sec5, I found is like, okay, I make something like this. And now I have to rewrite, fucking ping app—excuse my French—the ping application. I’m not going to do that. Like, no one’s—no one in hell’s going to rewrite everything from scratch. So it has to work with everything that we already have.","offset":1575,"duration":27},{"text":"Odell: That's awesome. I mean, I think that's the key, right? That's the key for bootstrapping, then you don't even have the app developers don't have to change a thing.","offset":1602,"duration":15},{"text":"Arjen: Yeah, I think, I think that's a must-have. I don't think anything like this can, can scale if it doesn’t, isn’t backwards compatible.","offset":1617,"duration":10},{"text":"Odell: Okay, I mean, I don't know where to go from here. That's like a mic drop moment for me. I mean, if this works, it seems like it's kind of the holy grail that you stumbled on here, sir. I mean, I’m reading through your Git repo. What do you want to cover? You know better than me. I, by the way, huge shout out to Justin Moon. He set up this conversation. I told him to join for it. He said he was unnecessary. I think he would have been very helpful.","offset":1627,"duration":28},{"text":"Arjen: We can, we can still try to get him in.","offset":1655,"duration":4},{"text":"Odell: What do you want to talk about? What is, what is most interesting to you here? You have thousands of people listening to this show. What do you want to talk about?","offset":1659,"duration":9},{"text":"Arjen: I think, I think the opportunity to make the internet in this general—like, FIPS doesn’t have to replace the internet if for, like, long-range stuff, right? If we’re necessarily. If we’re doing a call like this, it's fine if that still exists, like the hierarchy there, we’re not, you know, that’s not going to change quick. Um, I think it already wins if it works local. And that’s exactly, I think the most exciting thing is like if it works local with, say, half a million people or a million people, you don’t even need the traditional internet—the traditional way of doing things is we go out, like when we visit a website, right? I go to amazon.com. The way it works now is I send a message to Amazon saying, go fetch, go fetch, go fetch. And I think in a world with Nostr where everything, everything in Nostr is a stream, all the data is signed, so we can do replication wherever needed. So what we can do with that is we collect information once, we pull it inside the network that we have here, and from there on out it doesn’t matter if that connection to the outside world gets severed because the information’s already inside the network on the relays. And then from there, we can spread that information. So I think if we have a decent way of hosting that stuff inside this network that can rearrange and is resilient, then it doesn’t matter as much when connections outside are, are unstable. Like, you’ll just pull in the new stuff whenever you have a connection. And if not, you go about your day and do your things inside your network. You can run your Bitcoin nodes, your Cashu mints, uh, Nostr relays and Blossom servers in the, in your town and the main cable gets cut. Well, okay, it sucks, but you can still chat with whoever you want over all the, over White Noise. You can still use, um, Primal, right? And then what—and then the key is when that cable gets uncut or whatever, I don’t know what the opposite analogy is, when you get reconnected, you can gracefully reconnect to the water network.","offset":1668,"duration":130},{"text":"Arjen: Yeah, and then you can see like what was gone, what is not, right? That boundary Nostr allows us to, to completely remove the boundary between what is offline and online is, becomes a spectrum of offline and online. Like, offline is I don’t have anything on, I don’t have a relay on my computer, I don’t have a Blossom server on my computer, and I’m not connected to any other node. Then I’m offline. Whereas like you can be a little bit online where you have one other node peering some info, right, like shades of grey. Yeah. So there’s no—and then everything because of Nostr, everything’s signed, it’s all verifiable, you can gracefully reconcile afterwards. Yeah, so the way information flows I think will dramatically change in a Nostr world.","offset":1798,"duration":48},{"text":"Odell: What are the, what are the hurdles you face? Like, what are the trade-offs here? Like concerns, what are the dealbreakers? How are you thinking about that?","offset":1846,"duration":10},{"text":"Arjen: Well, for sure we need a shitload of testing of this, right? People need to, you know, if you have any kind of knowledge related to this, you should test it out, break it. We want feedback as much as possible, because of course it’s a—it’s a very big aim.","offset":1856,"duration":13},{"text":"Odell: Do you have this running in the wild right now?","offset":1869,"duration":2},{"text":"Arjen: Um, it was—it’s just been two weeks, but I, yeah, I have two servers, public, public servers people can connect to, I can share that.","offset":1871,"duration":8},{"text":"Odell: Are they connected to any peers? How many people are using this thing?","offset":1879,"duration":5},{"text":"Arjen: Well, right now it's mostly Jonathan, me, and maybe one or two other people. So we’re hoping for a lot more.","offset":1884,"duration":6},{"text":"Odell: Is Justin Moon using it yet?","offset":1890,"duration":3},{"text":"Arjen: No, he said he didn’t yet. We have to bully him into doing it.","offset":1893,"duration":4},{"text":"Odell: Fair enough. I’ll try and get my feet wet. This is there limitations, like bandwidth, users, you know, where the, where the points of failure here as someone who—I want to strawman it, but I don't, I’m steelmanning it, sorry, continue.","offset":1897,"duration":34},{"text":"Arjen: Uh, so there are, um, limitations on the, the physical transport you can use, right? People need to—uh, you know, steelman by the way, steelman, sorry, continue. The underlying transport stack. So, like limitations—I'm sorry, like limitations on, like, Wi-Fi connections or, like, actual physical limitations.","offset":1931,"duration":8},{"text":"Arjen: Wi-Fi—yeah, Wi-Fi and Ethernet are fine. Um, but it is like the lower you get, like you have tech like LoRa, right? There is in the way internet protocols work you have something called an MTU, which is the—minimum—um, I'll, I'll, I’ll find what the full meaning is, but it's the amount of bytes you can, um, you can transfer in one go on a network. So on traditional IP that's like 1500 bytes for every packet, something like that. You can go up and down in some networks. But if you have transports that are less reliable or lower power, um, something like Bluetooth uses smaller packets but still works fine. But if you go down to LoRa, like LoRa Meshtastic, they might get too small to send like the minimum size of a FIPS packet might be too big for those. Although there's some really exciting developments with stuff like Halo, um, Halo, which is a, um, Wi-Fi standard on the LoRa frequencies. So I do have hopes that even though it’s the same frequencies, the throughput can be increased in the coming years. And then maybe that will become feasible. But stuff like satellite uplinks might be already.","offset":1939,"duration":78},{"text":"Odell: I mean, I don't know how much it matters, but MTU stands for Maximum Transmission Unit.","offset":2017,"duration":4},{"text":"Arjen: Oh, yes, yeah. Yeah.","offset":2021,"duration":2},{"text":"Odell: So what you were looking for.","offset":2023,"duration":1},{"text":"Arjen: Yeah, yeah. It’s basically just how thick the pipe is between the two nodes, like how much, uh, how much water you can move at once.","offset":2024,"duration":11},{"text":"Odell: What's happening with the LoRa project? Are you following it or...?","offset":2035,"duration":4},{"text":"Arjen: I’m not following it that much. I think it’s cool, but, but a lot of them have been around for years, right? Um, uh, I really hope, that’s my maybe it's wishful thinking, that if the throughput can get higher, which, um, Corridore, the guy I work with for, for Tollgate, he knows a lot about doing wireless, um, uh, wireless stuff. And the things he said, like, I have to go from secondhand information, but what I know about it is that the waves and the frequencies themselves are not necessarily the problem. It is the tech that’s used on either end on like how much data you can put through that on that same frequency at once. With newer hardware, you can use the same frequencies but actually transmit more data at once. So I think if those developments continue, I think those technologies will be, will help.","offset":2039,"duration":50},{"text":"Odell: Well, I mean, I’m a little bit confused because doesn’t, like if I have a LoRa device, isn't it using Wi-Fi usually to transmit information?","offset":2089,"duration":9},{"text":"Arjen: Um, I don't know. I don't know exactly what they use.","offset":2098,"duration":4},{"text":"Odell: Okay.","offset":2102,"duration":1},{"text":"Arjen: But it's like whatever their specific protocol is that is actually the limiter. Or—","offset":2103,"duration":7},{"text":"Arjen: Yeah, no, I think it's a bunch of things. It’s the hardware, it's the protocols they use for transmission. But the goal is, you’re—I guess your point here, the high-level point is that you want low-power devices to be able to communicate with this protocol, and there might be some limitations there that you'll have to...","offset":2110,"duration":18},{"text":"Arjen: Yes, yeah.","offset":2128,"duration":1},{"text":"Odell: Yeah, and I don't want to venture too much into that area. Like, that's not my, my area of expertise, so I don't want to go too much into that. Right.","offset":2129,"duration":7},{"text":"Odell: And I guess the cool part of FIPS is that you have a very a relatively simple, robust protocol that people that are then more technically sound on, on the hardware side could come up with low-power ways of handling it. Yeah, right?","offset":2136,"duration":17},{"text":"Arjen: Yes.","offset":2153,"duration":2},{"text":"Odell: That's awesome. What uh are there any other pain points to steelman? Um, I just, I just want to be clear here, like I have, I got into the LoRa hype, I got into the GoTenna hype. GoTenna’s proprietary as hell. I don’t know. I’ve just been through a lot of mesh hype to the point where when Bitchat came out, like I went along with the hype but like internally I was fading it. I was like, yeah, okay. Um, so what are the things that you hit that guess disappoint you or—?","offset":2155,"duration":40},{"text":"Arjen: I just want it to be a reality, you know? Like, the modern internet sucks. But the story of this story of humanity is us just solving problems by centralizing things, it’s the easiest way to do it. Um, and as a result, our lives that are incredibly digital now, the most digital our lives have ever been in existence, are like built on a shitload of centralized points of failure. And so I would love to have this dream of robots and people and drones and everything all interconnected in a graceful, robust peer-to-peer mesh way. But usually it’s just hype and we don't actually see any of it in practice. And maybe this time is different, and I want to ask the hard questions but I don't have the capability of asking the hard questions. So I’m asking you to ask yourself the hard questions is what I’m trying to do here.","offset":2195,"duration":62},{"text":"Arjen: Yeah. No, I think—I think that’s a fair ask. It’s a—it's a very big aim. I think it’s a very big aim to say like we can make anything else than then work besides IP. I had this, like, I had this idea, this, this, like exactly what I told you, like this local, local networking stuff, I think it can, I think it can work and I think it can work because we have the primitives of Nostr and Blossom and e-cash, right? We can transact locally, do micropayments. So we have a bunch of new primitives that have never been combined this way. And when I talk to Jonathan, who by the way is like a very OG, um, OG open-source developer...","offset":2257,"duration":41},{"text":"Odell: Yeah, his reputation precedes himself.","offset":2298,"duration":3},{"text":"Arjen: Yeah, he’s been around, um, in Bitcoin early on. He was on the, on the mailing list, the Cypherpunks mailing list. He's done a ton of cryptography and he, he looked at it and was like, oh, this, this might work. And I’m not at his level, and but I, I think I nerd-sniped him hard enough to, to come back from his retirement. Blue seal of approval. Yeah. So, you know, it’s—it's not, um, you know, you might notice like I venture outside of some of my comfort zone as well, I know all of these high-over things and how we use these services together, but when it comes to cryptography, I have to, have to give it to Jonathan there.","offset":2301,"duration":44},{"text":"Odell: Okay, so let's pull back to something that I'm actually very comfortable with. By the way, when Justin said—so first of all, I saw FIPS because Jonathan posted it. And so I immediately retweeted on Nostr because it was Jonathan. So I was like, okay, like it might be hypy, but it’s coming from this dude, so I have respect for it automatically. And then Justin was like, um, Justin was like, you should talk about FIPS on Dispatch. I was like, I would love to. And I was like, I can't believe I’m getting Jonathan on the podcast. And then he’s like, no, Jonathan doesn't want to speak. But you’ll you’ll get Arjen. And Arjen is very impressive individual, I met him at Sovereign Engineering. So by the way, that's the background of the show. But Nostr, right? So Nostr gets a lot of shit, I think, because of people, specifically if I would distill it, is like perfect is the enemy of good. Like Nostr is fascinating to me because it's super simple and robust and doesn't try and solve all the problems. It’s like very relatively easy to implement. Um, I mean, things like just the events being just like simple JSON. The private keys just being simple single-sig private keys. When you think about Nostr used in this context, is there a concern that someone's basic digital identity is just, you know, just a private key that effectively can't really be rotated, right?","offset":2345,"duration":89},{"text":"Arjen: Um, I'm not too into the debate of, of rotating keys. I know it's a, I know it's a big topic. Uh, one thing I do think is that everyone should, like use Nostr keys in the FIPS context, but it’s not meant to be tied to your Nostr like social identity. It is just you should, it should be rotated. Um, we have an open issue for that. It should be rotated by default, only when you host something it should be static.","offset":2434,"duration":32},{"text":"Odell: Well so then—sorry, I don't know if that answers your question. I mean, it kind of does. I mean, I think on the, on the social aspect, I don't think it's like that big of a deal. I think you just deal with key security, and so it's a key security problem. I mean, you can't rotate Bitcoin keys, like if your Bitcoin key is compromised you lose your Bitcoin. Um, but you can have many, right? And like that's kind and also we have all these different mechanisms for accessible cold storage and all this other stuff. So I think you kind of solve it from the key storage piece, and I think especially when you start thinking about agents and stuff using these things, it's more important that you can spin up a ton of keys rather than the individual robustness of a single key. I mean, I've been diving down the AI rabbit hole like pretty hard over the last five weeks or so. Like my agent at this point has like 25 different Nostr keys, you know, so... My point is is the cool part is that you can just spin them up on demand all the time. But in so in practice, on your side for this, are you envisioning that peers would constantly be changing their, or not maybe not constantly, but they will be changing their identities often?","offset":2466,"duration":78},{"text":"Arjen: Yeah, I think they should. If you’re, if you’re just consuming like you are right now, like you don't, you don't care on your phone when you're out and about what your IP address is, right? You're not hosting anything. No, I have no idea what my IP address is. Yeah, and it's actually a good thing that it changes all the time, similar to MAC addresses when you go hop on different Wi-Fi networks, like your phone spoofs it, you should do the same with FIPS keys. Only when you host something.","offset":2544,"duration":23},{"text":"Odell: Yeah. I've been using Starlink, I’ve been using Starlink, and I was talking to a Greybeard about it, and I was like it’s fantastic, like blah blah blah, and he’s like, yeah, but Elon gimped it because the way he did the scaling, your IP address is like shared and rotated all the time and you can't host anything. And I was like that's a huge advantage, like if I accidentally leak my IP address, like I’d rather it be rotated and shared all the time.","offset":2567,"duration":23},{"text":"Arjen: Yeah, yeah. The IP now is in this, in this part of the world and two minutes later it’s elsewhere.","offset":2590,"duration":6},{"text":"Odell: Like, you know just the region, basically. Yeah, you basically just have the region. So for the actual individual, it's actually a benefit, but if you want to host something locally, it's a negative. That's interesting. But then how to—and I guess peers would just handle that gracefully. They would just have, it doesn't necessarily have to be a static identity for your peers to...","offset":2596,"duration":26},{"text":"Arjen: No, I think—and I think if you cycle, it’s going to be the same as like, you know, walking from from Wi-Fi to 4G right now. If you walk out the door, you get a little hiccup, right? Um, it would be similar.","offset":2622,"duration":9},{"text":"Odell: That's interesting. So yeah, then that doesn't really matter, I guess, unless you're hosting something.","offset":2631,"duration":6},{"text":"Arjen: Yeah.","offset":2637,"duration":1},{"text":"Odell: But if you're hosting something, how do you think about it in that regard? Like, what if, um, I don't know if these hypotheticals are helpful or not, but what if I’m the person in charge of keeping track of everyone's the total grain that the community has, or something? I don't know. Um, and my Nostr key gets compromised. Is that really that bad of a situation? Couldn't I just broadcast out that like I'm now at this new one? I mean, I don't know how they'd verify that I'm the one saying it and then—","offset":2638,"duration":35},{"text":"Arjen: Well, that’s social, social key rotation, right? If you lose your—you mean like the social Nostr key?","offset":2673,"duration":6},{"text":"Odell: Yeah, I don't know what it looks like locally—a lot of these problems are easy to solve locally because you just, like, walk to the farmer’s market and you're like, yeah, it's just you can find it at this new address now, right? Um, I guess an example, a broader example would be, um, I don't know if you saw, but down-detector.com got sold for a billion dollars. No, isn't that wild? Um, but anyway, uh, I mean, it’s fiat games. It's like, what is things valued nowadays? But a part of the reason is not necessarily the data that—you know what Down Detector is, right? Like you go and check if a website's down. But it's not necessarily that they have the data on what things are down and a lot of it is user-reported, some of it is ISP-reported. But it's also just the reputation, right? Like, I know if I’m having trouble with something and I’m trying to troubleshoot if it’s me or if it’s, you know, Cloudflare going down globally, if I go to downdetector.com, they have a relatively good reputation that they’re telling the truth and have good data, right? So in this context, it would be some npub presumably that is like tracking some information and they’ve been doing it for five years, 10 years. How would they—have you even thought about like how they would gracefully move to—because it's hard to keep a key secure for five years hot.","offset":2679,"duration":88},{"text":"Arjen: Well, I can, I can only talk from the networking perspective. The social, social rotation I really don’t know how, how that should be solved. But for the routing side, if you say you are hosting an important server, say you are hosting a Cashu mint, right? That's an important server, and the traffic is encrypted with a Nostr key, which means that the key is probably hot, right? The key is used actively on the device. In that case, it might be dangerous to link that to make that the identity of the mint because currently the mint identity is the domain name. So if that becomes npub.fips, and that key leaks because it's always hot, that can be problematic. So it might still be useful to use, um, something like NoDNS where you have a key maybe in cold storage that then publishes these DNS records on Nostr, get resolved by name servers that are compatible, and that then actually link to the hot key, but that can then be rotated because the identity is then tied to that self-proclaimed—yes, but at least you can keep one in cold storage and no one should be able to touch it.","offset":2767,"duration":76},{"text":"Odell: That's a good solution. And that's a good example by the way. I'm running my basically my community bank. That's like a pretty serious responsibility. Yeah. And they need to be able to securely connect to me and know it's actually me and not some malicious actor.","offset":2843,"duration":20},{"text":"Arjen: Yeah, I think that's with, particularly with mints, I think it is a risk that it somewhat uses the domain name as its identity, right? It's mint.minibits.cash. It's, um, so if that gets rug-pulled and they change their domain, well, it's kind of gone from all the, from all the apps that use it. So I think those things should probably be npubs to begin with.","offset":2863,"duration":25},{"text":"Odell: I mean, on that note, I mean, it would it would make self-hosting these things way easier, right? And self-hosting and then connecting to them way easier. Yeah, that too. Specifically privately, right? Like, the powers that be know—I don't know who runs MiniBits, but the powers that be knows who runs MiniBits because of the existing networking stack, presumably. It's pretty hard to get a private domain, it's pretty hard to have a private IP address that's not linked to your identity, like he's presumably doxxed to the powers that be. And then existing solutions like things like Tor or whatever have a bunch of their own trade-offs and actually solve a bunch of things with centralization themselves and centralized blocklists and they have a bunch of—what about latency issues? Like, Tor’s slow as hell. Would this be slow as hell in comparison, or...?","offset":2888,"duration":55},{"text":"Arjen: It's not, uh, it's not onion routing, so—","offset":2943,"duration":4},{"text":"Odell: Because it's direct peer-to-peer?","offset":2947,"duration":1},{"text":"Arjen: It’s meant to be fast, so I I’m not making any any big privacy claims here. I I don't think it's necessarily way better than what we have. In some aspects it is, like it's encrypted hop-to-hop and then also end-to-end. Um, I think that helps. Of course, if you are the almighty observer of the entire network, I don’t think it's going to be much different from now.","offset":2948,"duration":22},{"text":"Odell: Fair enough. But right now we're forced to run through the almighty observer. In this case, we wouldn't be.","offset":2970,"duration":8},{"text":"Arjen: Yeah, yeah. I think that's actually a big thing with, with Tollgate, right? It changes the financial incentives. So if you have more, more actors, especially on, on the edges, right? You're always going to have the undersea cables or, like, major parties, that's fine, it's going to stay that way. But if you have entire communities that self-run and don't, you know, don't observe everything by choice, you can at least maybe only deduct that someone in this community looked up this thing, which is way better than always being able to point down everything to every individual.","offset":2978,"duration":31},{"text":"Odell: That's super cool. It's kind of like a—in that situation, it's almost like a hosted VPN, shared VPN kind of privacy model where you have a bunch of people coming out through the same IP address.","offset":3009,"duration":14},{"text":"Arjen: Well, yeah, I think it, I think it helps to introduce more people to convince to observe. Right. Now you just go to large ISPs and say, like, oh, you give me this information. Whereas with Tollgate, you have to go to maybe half a million ISPs because everyone is an ISP.","offset":3023,"duration":18},{"text":"Odell: Right. I mean, on the Tollgate piece, while I have you, a lot of people's concerns I've heard with the Tollgate project is like similar to running a Tor exit node. It's like, let's say I live in Paris and a bunch of random people are just connecting to my Wi-Fi and paying me sats and then looking up maybe questionable stuff. Yeah. What is your answer to those people on the Tollgate side?","offset":3041,"duration":25},{"text":"Arjen: Yeah. Um, I think the people that, like, have the connections to, um, basically to upstream, right? The general broader internet, should probably implement a specific block filters to block things that are like clearly illegal. Uh, but there's no clear-cut clear-cut solution to it. Um, but I think it's also why I want to move to local communities, doing everything local, where you should trust your community enough that everyone's, like, an honest actor, or I want to maybe. Maybe it's naive.","offset":3066,"duration":35},{"text":"Odell: Well, at least in small communities you definitely could. Yeah, yeah. I mean, small towns.","offset":3101,"duration":7},{"text":"Arjen: Yeah. It is a good point, but also it's not really—it’s like, are you going to abuse cars for—who’s responsible for producing—is the person that produces the cars responsible for, you know, anything anyone ever does with a car? Um, it becomes this this moral debate that is, you take either either one stance on.","offset":3108,"duration":25},{"text":"Odell: Yeah, I mean, it's not specific to Tollgate. I mean, you see this already with, like, coffee shops and stuff, right? Particularly in the developing world where you have bad cell connections, it's like every coffee shop becomes an ISP. They just don't have Tollgate there to charge people for it, instead it's just, you know, you're buying a coffee so you get the Wi-Fi password.","offset":3133,"duration":23},{"text":"Arjen: Yeah, yeah. But there's no, uh, there's no good answer. My personal opinion is that, you know, the internet is is should be open, open and free. I think the only counter-movement is that you observe everything and start to play police on every, every little thing, which is what we’re seemingly heading towards. I don't think that's the right future. Making everything, like, completely open and free, I think that's probably the best way and, like, solve things in the old-fashioned sleuthing way where you you go after bad people whenever the chance occurs.","offset":3156,"duration":35},{"text":"Odell: I think that's reasonable. I think that's what a lot of us are working towards. I just asked my bot to steelman FIPS. I think this conversation’s been fascinating. I think the project's really fucking cool, to be frank. I obviously need to play around with it. I’m hoping this conversation leads to more people trying it out, giving feedback.","offset":3191,"duration":25},{"text":"Arjen: Yes, please. We want we want a lot of people to test it.","offset":3216,"duration":4},{"text":"Odell: What's the process for—what like how does someone go about doing that? How should they think about participating here? Or testing it?","offset":3220,"duration":8},{"text":"Arjen: Yeah. So currently the repository, there's some, some manuals where you can compile and run it yourself. There's test cases, Docker, um, Docker-based meshes you can spin up quite easily. There's, like, step-by-step guides. Your LLM can do it. And we’re currently working on packaging, packaging it, uh, tarball should be ready any moment now, and I’m working on packaging it for OpenWrt routers and a bunch more. So then it should become easier to deploy it as well.","offset":3228,"duration":35},{"text":"Odell: I uh, okay, so I’m going to play around with it. Hopefully the freaks play around with it, give feedback. Those who can, will look over the the code and the specs and maybe provide feedback and advice on that side. Um, and then when I'm a little bit more fluent in it and more people are using it, I would love to have you back on when I can ask more reasonable questions, and I hope I wasn't too much of a struggle here. I think it will still be helpful to people.","offset":3263,"duration":28},{"text":"Arjen: No, no. These questions are these questions are valid and, and I have to make, like, you know, some of it ventures out of my my comfort zone as well. It’s a...","offset":3291,"duration":8},{"text":"Odell: It's just so much—there's a lot of things to it, and it's really hard to, you know, convey these things in a short manner as well. Uh, so I asked—I asked Opus 4.6, which is supposed to be the smartest of the models right now, to steelman your project. I’ve never done this before, but I'm just going to read what Opus said: \"FIPS embodies a principle that the Cypherpunks articulated decades ago. Privacy and freedom of communication should be enforced by mathematics, not by policy. Laws change, companies get acquired, governments get replaced, but the laws of cryptography don't change. A system where your privacy is guaranteed by encryption rather than by someone's terms of service is fundamentally more robust. FIPS is ambitious but not delusional. It's technically sound, addresses a real and growing need, is built by someone with relevant deep expertise, integrates with an existing ecosystem, and is designed to work even at small scale. If it gets even 10% of the way to its vision, it could provide genuinely life-saving communication infrastructure for people living under authoritarian regimes and a meaningful privacy upgrade for everyone else. The internet was supposed to be a network of peers; somewhere along the way, it became a network of subjects. FIPS is trying to make it a network of peers again.\"","offset":3299,"duration":78},{"text":"Arjen: Damn. You didn't even have to have me on. You could have just generated—","offset":3377,"duration":3},{"text":"Odell: That's pretty good, right? That was just a one-shot prompt to steelman FIPS, and I gave the URL obviously.","offset":3380,"duration":8},{"text":"Arjen: Yeah, that’s a great summary.","offset":3388,"duration":2},{"text":"Odell: Okay. Well, I had a great time. I'm excited, uh, I'm excited to see where this project goes. You have any final thoughts for the freaks before we wrap?","offset":3390,"duration":9},{"text":"Arjen: Test it. Give feedback. Break it. All that.","offset":3399,"duration":6},{"text":"Odell: Fair enough. I will link to the GitHub repo. I’m going to link to Sovereign Engineering. I think if you're a developer out there, you should check it out. It’s a really great program. Uh, anything else I should link to in the show notes for the freaks?","offset":3405,"duration":13},{"text":"Arjen: Tollgate.","offset":3418,"duration":1},{"text":"Odell: Tollgate. I’ll link to Tollgate. You are—are you on Nostr too? Do you have a personal npub on Nostr?","offset":3419,"duration":6},{"text":"Arjen: Yes, yeah.","offset":3425,"duration":1},{"text":"Odell: Okay. You don't have to say it out loud. You can just send it to me and then I’ll put it in the show notes as well.","offset":3426,"duration":4},{"text":"Arjen: I’ll send it.","offset":3430,"duration":1},{"text":"Odell: I'm not going to make you read the npub. Okay, Arjen, this was awesome. Uh, thanks for joining.","offset":3431,"duration":6},{"text":"Arjen: Yeah, thanks for having me.","offset":3437,"duration":3},{"text":"Odell: Freaks, I hope you enjoyed the show. Provide feedback. All links are at citadeldispatch.com. If you go to primal.net/citadel, it's the main Citadel Nostr experience. That's the best place to leave feedback, then the rest of the community can jump in and everyone can comment. I'll tag Arjen there in that post as well. Awesome. Love you all. Stay humble, stack sats. Peace.","offset":3440,"duration":24},{"text":"Arjen: Cheers. [Music] [Music fades]","offset":3464,"duration":15}],"logs":[{"elapsed":"0.0","message":"Downloading podcast episode...","detail":null},{"elapsed":"5.2","message":"Episode downloaded (52.9 MB) in 5.2s","detail":"File size: 52.9 MB"},{"elapsed":"5.2","message":"Episode: CD193: FIPS - FIXING THE INTERNET","detail":null},{"elapsed":"5.2","message":"Uploading audio to Gemini File API...","detail":null},{"elapsed":"12.1","message":"Audio uploaded in 6.9s","detail":"File ref: files/r058j8icjipo"},{"elapsed":"12.1","message":"Audio processed in 0.0s. Transcribing with gemini-3-flash-preview...","detail":null},{"elapsed":"118.5","message":"Transcription complete in 106.4s","detail":"55555 chars received"},{"elapsed":"118.5","message":"Transcription tokens: 86,935 in / 14,677 out — cost: $0.0875","detail":null},{"elapsed":"118.5","message":"Parsed 161 transcript segments","detail":null},{"elapsed":"118.5","message":"Analyzing topics across 161 segments with gemini-3.1-pro-preview...","detail":null},{"elapsed":"185.8","message":"Topic analysis complete in 67.3s — found 19 topics","detail":null},{"elapsed":"185.8","message":"Analysis tokens: 15,669 in / 1,666 out / 5,875 thinking — cost: $0.1218","detail":null},{"elapsed":"185.8","message":"Pipeline finished in 185.8s — total cost: $0.2093 (124,822 tokens)","detail":null}]}