White Noise is a secure private messenger that aims to provide similar functionality to Signal in a more open, interoperable, and robust way. The app uses the nostr protocol for identity and data transmission, and the MLS protocol for secure messages.
Jeff on Nostr: https://primal.net/jeffg
Max on Nostr: https://primal.net/p/nprofile1qqst0mtgkp3du662ztj3l4fgts0purksu5fgek5n4vgmg9gt2hkn9lqv6g2cl
White Noise on Nostr: https://primal.net/p/nprofile1qqs8t4ehcdrjgugzn3zgw6enp53gg2y2gfmekkg69m2d4gwxcpl04ac04xqkm
Jeff on X: https://x.com/erskingardner
White Noise on X: https://x.com/whitenoisechat
White Noise: https://www.whitenoise.chat/
EPISODE: 166
BLOCK: 904942
PRICE: 898 sats per dollar
(00:00:02) Trump Intro
(00:02:10) Happy Bitcoin Thursday
(00:04:00) Secure Private Messaging
(00:06:56) Signal Protocol vs MLS Protocol
(00:15:25) Nostr's Role in Secure Messaging
(00:24:38) Privacy and Metadata Concerns
(00:31:02) White Noise App Overview
(00:36:37) Mesh Networking and Future Plans
(00:45:00) Interoperability with Other Clients
(00:52:53) MLS Protocol Features and Upgrades
(00:58:07) Funding and Development of White Noise
(01:04:29) Vibe Coding vs Traditional Coding
(01:09:09) Community Involvement and Future Plans
Video: https://primal.net/e/nevent1qqswn6te79hfcr6mehrepgugtmvhcpn458fsk38c9yxs87pdyv39sms8zy3jt
support dispatch: https://citadeldispatch.com/donate
nostr live chat: https://citadeldispatch.com/stream
odell nostr account: https://primal.net/odell
dispatch nostr account: https://primal.net/citadel
youtube: https://www.youtube.com/@CitadelDispatch
podcast: https://serve.podhome.fm/CitadelDispatch
stream sats to the show: https://www.fountain.fm/
rock the badge: https://citadeldispatch.com/shop
learn more about me: https://odell.xyz
BRICS was set up to, degenerate our dollar and take our dollar as the standard, take it off as the standard. And that's okay if they wanna play that game, but I can play that game too. So anybody that's in BRICS is getting a 10% charge. Is that immediate, sir? Or is that Pretty soon. They engage in some behavior? No. If they're a member of BRICS, they're gonna have to pay 10% tariff just for that one thing, and they won't be a member alone. I thought BRICS was you know, I said this about a year ago, and it largely broke up. But, you know, there are a couple that hang around, but I thought it largely broke up. BRICS is not, in my opinion, not a serious threat. But what they're trying to do is destroy the dollar so that another country can take over and be the standard. And we're not gonna lose the standard at any time. If you have a smart president, you will never lose the standard. If you have a stupid president like the last one, you would lose the standard. You wouldn't you wouldn't have the dollar as you. And if we lost the, the world standard dollar, that would be like losing a war, a major world war. We would not be the same country any longer. We're not gonna let that happen. The dollar you ever hear the expression, dollar is king?
The dollar is king. We're gonna keep it that way. Okay? We're just gonna And and I'm just saying if people wanna challenge it, they can, but they're gonna have to pay a big price. And I don't think any of them are willing to pay that price.
[00:02:10] ODELL:
Happy Bitcoin Thursday, freaks. It's your host, Odell, here for another civil dispatch, the interactive live show focused on actual Bitcoin and Freedom Tech discussion. That intro clip was none other than president Trump himself talking about the risk of the US dollar losing reserve currency status as Bitcoin blasts through all time highs. I can't really imagine a better timeline for Bitcoin, but we are not here to talk about Bitcoin today. If you wanna hear about Bitcoin, we'll have rabbit hole recap tomorrow at the same time as this show, so twenty four hours from now.
But it's pretty pretty hard to contemplate a setup for Bitcoin, amid macro uncertainty, high interest rates than today. Anyway, with all that said, dispatch, as always, is funded by our audience, viewers like you with Bitcoin donations. We have no ads, no sponsors. Dispatch is fully in the business of losing money and sending out signal. So thank you, Freaks, for sending your stats. Best way to support the show is in our Nostril live chat. All the links are at dispatch.com. You can zap live during the show, or you can zap after the show through Fountain Podcast app, in your favorite app store. The top zap through Fountain Podcast for last week was Poopsicle, great name with 800 sets saying good wallet, very slick.
Anyway, guys, I appreciate you all. As always, Ciel Dispatch is available on every major platform, every podcast app. Search, subscribe, share with your friends. It really does go a long way to helping out the show. With all that said, we're gonna be talking about something completely different. We're gonna be talking about secure private messaging. We have return guest Jeff here, who is the creator and lead maintainer of the White Noise app. How's it going, Jeff?
[00:04:12] Jeff Gardner:
It is going very well. Thanks, Matt.
[00:04:14] ODELL:
And we have, ride or die freak, Max Hillebrand here, who I don't exactly know what your role is at White Noise, but you seem to be heavily involved. Why don't you let us know what your role is?
[00:04:28] Max Hillebrand:
I do everything but code. You know, someone has to do the other stuff. So you're that carrier.
[00:04:34] ODELL:
You're the you're the PM of a two man team, basically.
[00:04:37] Jeff Gardner:
Oh, no. There's more than two of us now. Oh, nice. How many are there? I mean, there's, like, somewhere between five to seven. Yeah. Something like that. Not everybody's full time, but, yeah, we've we've got a good number of people on it now.
[00:04:53] ODELL:
That's badass. Anyway, Jeff, you joined the show about a year ago when this project was very much in the napkin writing phase. What is white noise? Why should people care?
[00:05:05] Jeff Gardner:
Yeah. Yeah. It was really fun to come on and and talk about it last year. It's actually funny because the actual napkin writing, phase was a couple of months prior, in, Bedford at the the Chico conference, and me and Max basically sat in the corner and just, talked about, what if you could potentially do something like this? And I think we spent about three hours just, you know, going back and forth on this. So from that, came this idea that, you know, we need to fix DMs. We knew this. Everybody knew this. No one had put their hand up to do it. And, you know, for a long time, I just said, I'm definitely not smart enough to figure this out. But since no one else was gonna do it, I finally was like, well, I guess I'll take a crack and see see how far we get.
And about a year ago, we kinda came around to the the idea that, you know, MLS, this protocol that is now an Internet standard, stands for messaging layer security. That was gonna be the backbone of how we were gonna do this sort of double ratchet encryption to get really secure, messaging over Noster. And so what I had to figure out was basically how do you do, delivery and identity because MLS doesn't care about those two things. They just kinda leave that to whoever's gonna implement it. So how do we do those things in a way that preserves metadata and privacy and things like that over NASDAQ public relays? So that was the the trick in figuring out how to get that to all work. And then since then, you know, building white noise is sort of the reference client and building libraries that help you stitch MLS into any Nuxtra client so that lots of other clients can can put in secure messaging.
[00:06:38] ODELL:
Awesome. I mean, so the general concept is kind of like a signal type app in terms of security and usability, but without relying on a centralized party like signal to manage the servers and the social graph. Right?
[00:06:57] Jeff Gardner:
Exactly. So, like, signal I mean, I think signal's a pretty good actor, but they've got a foundation that's based in America. They've got a CEO. They have a $50,000,000 a year operating budget. So they have to do a bunch of things that they maybe sometimes don't even wanna do. Right? Like, they've gotta give data to the government when the government comes asking. They've gotta pay those server bills. And so if any of those things goes down, signal goes down. We lose kind of the last credible, you know, secure messenger that's around. The idea here is, yeah, we wanted to build something that is signal level privacy or better, but we don't have any servers. We never have to run any servers. We never have any data on people, and we use, public noster relays as just the transport mechanism. But everything's hidden enough that it's totally fine to have those messages out in the open because you can't tell anything from them anyways.
[00:07:46] Max Hillebrand:
Yeah. Nostra is obviously like a superpower protocol. Right? We we all know that. We all love it. But the obvious downside of Nostra was the privacy of of messaging. The original NIP four was badly hacked together, didn't protect any metadata, actually leaked private key material in theory. So it's just really bad standards. Don't roll your own crypto is is the main learning of that. And since then, we've we've upgraded a couple different ways of doing it, but all of them share kind of the same or or one of the major downsides is that if anyone has your public key, your nPub, they see whom you're messaging and when, right, or at least when you're receiving messages. Right? So this timing metadata is leaked to to anyone, basically, and and that's that's simply not acceptable. Right?
And so fast forward, now we have MLS. And with MLS, even if your NSEC leaks, right, your private key leaks, that adversary who has the private key still does not know whom you're messaging. And so we go from anyone with the NPUB sees whom you're messaging to even if they have the NSEC, including you, if you put your NSEC on a new client, by default, your chat history doesn't move forward. Right? So it's it's a insane improvement, to to the messaging.
[00:08:57] ODELL:
Love it. So first of all, huge shout out to Xfrog who zapped us 21,000 sats in the live chat. He said, let's fucking go. We have JCB zapped eight 8,800 zaps. We have Sawzelle zapped five 5,500 zaps. Thank you, guys. Thank you, guys, for supporting the show. It means a lot. I hope you like my new mic. Your zaps help pay for it. The rest came out of my pocket. So first of all, we have when we when we first when we first started talking about this, we were talking about, MLS being signals protocol. But now it's kind of come to my attention that signal protocol is something different. What are the what are the two dip what's the main differences between signals what signal uses, which I guess also WhatsApp has been using versus MLS? And and what are the trade offs there? Why'd you go with MLS instead of signal protocol?
[00:09:53] Jeff Gardner:
Yeah. So this is actually kind of a I mean, it's it's a fun, technical, I guess, timeline if you wanna think about it that way. I'll try to keep it not super technical. But, you know, originally, there was protocols like OTR off the record, which was a really simple straightforward, protocol for doing kind of a ratcheting system of, of symmetrical keys. So you weren't using the identity key to do the encryption. You were using another set of keys that you would derive and then encrypt your messages with. Signal was a really kind of big leap forward when it came out originally because it was the first double ratchet system that used two of these ratcheting key derivation functions to basically make sure that, you know, if an attacker got a key, they couldn't go forward or backward in time. So they couldn't hold on to your key and just listen to your conversation as it progressed forward and, you know, continue to encrypt messages. And if they got a key, they couldn't grab a bunch of old messages and decrypt those with that key. So the key basically changed on almost every message. And that was a, you know, a giant step forward, and why so many of these big apps, you know, ended up licensing the signal protocol for what they were using.
Signal's main drawback is, as a protocol, is that it's pairwise. So it's always just one to one with people that you're talking to, which works great in DM conversations. But when you get to a big group conversation, you're basically encrypting each time to every single participant.
[00:11:15] ODELL:
So it's, you know, basically, it scales So when I'm in a when I'm in a signal group, it's really a bunch of DMs that are just UX wise pieced together to look like a group chat? Pretty much. Yeah. And, like, everybody in the group has those Ts. Right? Yeah. Oh, one of the huge downsides of this is that,
[00:11:35] Max Hillebrand:
Alice can send a message to a group, but she sends a different message to Bob and a different message to Charlie. And then and Bob and Charlie don't know that they're receiving different messages because they're each encrypted to their to their own keys. But it comes with a lot of downsides. And and not just for for multi person groups. Nowadays, everyone has a phone and a laptop. Right? Those are two separate devices with two separate keys. And and so signal never really handled multi device support natively. Both multi device and groups were bolted on top after signal was created with a bunch of extensions.
[00:12:06] ODELL:
Yeah. So if so if I'm using signal desktop if if I'm in a a 100 person group on signal and we're all using both signal desktop and signal mobile, every time I send a message, I'm really sending 200 messages that are just should they look like a group chat UI, though? Pretty much. Yeah. And this is why signal from a US perspective. Yeah.
[00:12:29] Jeff Gardner:
And this is why Signal has, like, big servers in the middle. Right? Because they do all the delivery of those messages. And in in a lot of cases, the way they handle some of the especially the two party thing where it's like you and another device is that they're kind of doing some of the heavy lifting of the encryption and decryption on your behalf, in in certain instances. So it it's good for what it was, and they you know, like Max said, as it progressed and evolved, they kept bolting stuff on top of it, trying to get more out of it. And I you know, they did a great job of it. But, MLS kinda took a, a look at that and went, okay. If we were gonna reimagine this as a completely open, you know, Internet standard style thing, that you can upgrade and change over time and, you know, get a lot of other benefits from, how would we do this? And they took a nod from how TLS works and basically said, okay. Let's use a binary tree structure. So, you know, imagine just a pyramid, basically.
And we're gonna organize the members of a group into this pyramid structure. And so not only are you gonna get these ratcheting keys, you know, that give you really good forward secrecy and post compromise security, but you're also going to get a cryptographic guarantee of what the state of the group is. And you're gonna know that, hey. You know, these are the members of the group. This is the, you know, way that this group is functioning. These are the types of extensions it's using, that sort of thing. And that also gives you a much better than linear, scaling setup than signal has. So when you have to add somebody to a group or remove somebody from a group, you don't have to change out every single key in the group. You basically just change the path to the root and then swap out that chunk of the tree.
So that's a gross oversimplification, but the idea is that just structurally, it's built in a different way so that it's much more efficient when it gets to very large groups. You don't have to re encrypt everything to every single member of the group.
[00:14:18] ODELL:
So it's a more efficient and costly
[00:14:22] Max Hillebrand:
Oh, yeah. Go. Go, Max. Yeah. MLS is basically a key derivation function. Like, how can a group of people come up with the same private key, right, so that they each know the same private key? And then regardless of how many people are in the group, we only need to encrypt a message once and upload this message once because everyone knows the decryption key. But the downside then is if everyone knows this key and we want to kick out one person from the group, now we need to send to everyone minus one a new set of keys. So that doesn't scale as nicely as as it could, and that's where the the tree structure of MLS comes in. It's efficient way to to get everyone on a new key without having to send a new message to everyone specifically.
[00:15:06] ODELL:
Got it. I mean, it's trying to solve the same it it solves the same problem as signal protocol, but it's more efficient.
[00:15:12] Jeff Gardner:
Is there any I guess, like, the the beauty of how we have done this with Noster and and it's funny because, like, the Blue Sky folks and the Mastodon folks are all looking at MLS right now, and they really wanna have something like it, but they can't figure out how to apply it in their scenario. And Nasr is perfect in this sense because we have the identity layer already. Like, we we have our pub keys, and we kinda bake that identity in without that being the key that you're using within MLS. So, again, the cryptographic guarantee of who's in the group means that you can look at someone in the group and go, okay. That's that in pub for sure. We know that. But the keys that we're using to do messaging are different. And then the other piece is because But you're deriving those keys from the pub key, the main in pub. No. No. No. The in pub is literally just a pointer to say this is who this is. Identity.
[00:16:00] Max Hillebrand:
Yeah. It's just identity. Think of it a bit like, PGP subkeys. Right? You have your master key that's somewhere in cold storage, and then you generate a new second subkey for signing, encrypting, verifying. Right? But then your master key signs those sub keys. They're not deterministic, but you you kind of bless the the sub keys with your master key, and the same thing is happening. Right? We create these key package events, which are MLS keys. They're not even snore keys. They're ED25519
[00:16:30] Jeff Gardner:
or something keys. I mean, they could be snore keys in the future, but they aren't right now. Yeah.
[00:16:35] Max Hillebrand:
Yeah. So this again gives you the benefit of if your NSEC leaks, no messages can be decrypted because messages are not encrypted to your NSAC. They're not even encrypted to your sub key. Right? They're just encrypted to something that builds on top of your sub key, something like this.
[00:16:53] ODELL:
Okay. So, it to me, it seems from your overview, it seems like a like a direct improvement over the signal protocol. Is there any downside trade offs that are being or there is there there's is there any negatives to using MLS over signal? Does signal have an advantage there?
[00:17:12] Jeff Gardner:
The only downside that I've heard really, Volley from people is that it's IFT. So it's Internet engineering task force, which is this, you know, semi bureaucratic organization that is semi funded by the NSA that, you know, people are like, oh, it's, you know, whatever. But to me, it you know, it's been an open protocol that's been under tons of scrutiny by a lot of different people. It's been looked at by a lot of different researchers. You know, I I don't think it's compromised in any way.
[00:17:38] ODELL:
The signal protocol has similar concerns, but Exactly. Anyway. Exactly. I mean, I mean, I like to put it to MLS.
[00:17:45] Max Hillebrand:
Yeah. Go ahead. For MLS, we actually have security proofs. Right? There is mathematical proofs at least for parts of the spec, that they are solid. And then, of course, it's open source. It's been in in progress since 2017. So a lot of people had eyes on it. I think the biggest downside to it is is complexity. Like, the signal paper already was damn complex, and that was only 60 pages. MLS is like a 170 pages. Just just a spec, and then there's another spec of, like, 80 pages for the architecture. And then we have extensions building on top of that. So the the the complexity is mind numbing.
And and so you're probably not going to implement it from scratch, and you're gonna use a library most likely. Right? We use the OpenMLS, Rust library. And, you know, who knows? There might be backdoors in there. There's not many people skilled enough and knowledgeable enough to actually review these properly. So that complexity is is the big downside.
[00:18:38] ODELL:
Got it. Got it. For sure. So, I mean, I, so the way the way I, like, think so I love signal. I rely on signal. I use it for pretty much 99% of my comms, whether that's personal or work comms. It's one of those pieces of software that I just, like, absolutely rely on. But I I I and I would put Tor in a a similar bracket except because of Tor's trade off model, I use it much less than signal. Like, signal finds this really nice trade off balance. But I would put both in the same category of their threat model isn't, the US government or the NSA. Like, if the NSA or the US government wanted to take them down, we just wouldn't have access to them. Like, it's just not built into the threat model. And so what's really exciting to me about white noise is it it's trying to solve the same problem as signal, but it's doing it in a way that is way more resistant to denial of service attacks, to censorship.
Let's just I mean, I more or less, I think the security guarantees are probably pretty similar at least once you guys get out of beta and and are out there. Like, I'm not too concerned about signal in terms of security guarantees. I think it's more they compromise your phone and then they access your messages that way rather than compromising signal. But, like, at the end of the day, like, there's people behind it, servers behind it. They could shut down signal if they wanted to shut down signal. That's the biggest issue with signal. That's the biggest risk. Yeah. By far.
[00:20:12] Max Hillebrand:
So, So, I mean, the coolest And I would say there's on the other side, though, is a risk. Right? That that Nostra DMs are just fucked. But, like, signals perfectly fine, but it needs something that works with Nostra.
[00:20:22] ODELL:
Yeah. My Nostra DMs are signal. Like, I tell people, like, if you wanna reach out to me, you can message me on signal. Like, don't don't I don't respond to Nasr DMs. They just it's it's been a massive failure on our part up until this point that, like, not only the fact that if your end sec is compromised, all your messages are seen. Just the metadata leakage. Just the idea that I'm messaging Jeff when I'm messaging Jeff, how often I'm messaging Jeff is out there. So on that note, I see a question from BGC Pens asking about metadata leakage.
[00:20:53] Jeff Gardner:
Is what what kind of metadata leaks when you use this? Yeah. How are you guys thinking about that? This is one of the most fun things that Max and I went back and forth on for all those months that I was trying to figure out how to make this work is that I'd run into something and be like, okay. How do we get around this? So, basically, none is the answer. And what the reason that we can say that and the reason that that works is what happens when you actually publish to a relay. So say, you know, you and Max and I are in a group. I wanna you know, we've already gone through the handshake process to get us all into the group. When I send a message, I am taking the message, which is actually just an unsigned Noster event that we just put into the payload of an MLS, encrypted object. So we take the unsigned event, and the reason it's unsigned is that if those were ever to, you know, leak or whatever, they couldn't be published to relays then. So there's a a small bit of deniability there.
So we take that. We put that in the MLS object. We encrypt that with the MLS keys, and then we take that encrypted blob, and we put that in the, payload of a nostril event. And we use knit 44 Assign, and then that one's actually signed. Exactly. So that's a kind four four five event. That's an MLS message, basically. So you know it's an MLS message. But it's an encrypted thing by MLS, but then we encrypt it again with NIP 44 encryption using a key that comes out of the MLS tree structure. So we don't use the two parties, keys that, you know, like, you would do with normal NIP 44 encryption where it's like, I take my key and your key, and we create this conversation key that we both can share and derive.
We use something that comes out of a tree structure. So if you know if you're in the group, you know this key. If you're not in the group, you don't know this key. And we use that as the key to encrypt the net 44 stuff. And then we gift wrap that thing, or then we just publish that with a, throwaway key. So what you see if you're looking at a you know, if you're on a relay, if you're a relay operator, you get a kind four four five event that has an encrypted payload that's from a throwaway, you know, ephemeral key that's done nothing but publish this one event and will never publish anything again. And the only tag that's on it is an h tag, which is a group ID, for the group.
Now that group ID is a single piece of metadata, but that group ID can rotate over time, and you can actually have groups that will run multiple IDs at the same time. So you can obfuscate pretty quickly what the group is, how big it is, and, you know, even if you left it alone and you only have one, all the an observer can see is relative amount of activity in the group. They don't know how many people are in it. They don't know, you know, like, what they're saying. They can just see, like, well, it's it's busy or it's not busy. We, you know, we don't know.
[00:23:38] Max Hillebrand:
Yeah. So I'm falling down basically to the the underlying Nostred downsides of it's a WebSocket and clear net. And and so that means there's IP leakage. We can solve that with VPN, Tor, mix nets. At the moment, they're not implemented in in white noise. In the future, they will be. And then we can do similar to what Wasabi did a proper identity management for for multiple WebSocket calls. And the second thing is then what do you query inside the WebSocket. Right? If you have one WebSocket connection and you put five different group IDs, then the relay operator would learn that these five groups are are interesting to the same person. But with a proper client implementation, you know, you have one Tor identity or one Mixnet path, to one WebSocket with one group ID.
That might not scale for for many hundreds or thousands of groups in a client, but it will probably work fine. If if you're very paranoid, you can do it very paranoid. If you're less paranoid, it'll be faster.
[00:24:38] Jeff Gardner:
Yeah. That that's really the thing that, I think stands out that a lot of people overlook here is that this whole thing with secure messaging and and secure comms is like, it's trade offs at every single level, and you really have to decide, okay, how paranoid am I? Like, how much does this really matter to me? You know, if you are a activist in some horrible third world authoritarian government, like, you really care about privacy, and you're gonna go to extreme lengths to make sure that what you use is gonna be really secure. Most people don't need that level of security, and there's a direct trade off really between, like, you know, UX and actual security.
So I think it's just one of these things that over time, we're gonna see different clients do this in different ways for different audiences, and I think that's a great thing.
[00:25:22] ODELL:
So right now, it's up to the user to protect their IP address. It's just clear not hitting. There's no real precautions happening. And my understanding is you guys yeah. It's the the current alpha app or beta app, whatever you wanna call it. Again, I called it a beta app. Max called it an alpha app. So we'll go with alpha. Has fixed relays that are chosen, I believe. What are those relays, and why did you go with fixed relays instead of having people
[00:25:53] Jeff Gardner:
choose their relays? So it's not really fixed. What we try to use, outbox model as much as possible. So what we do is we've got, you know, couple of relays, primal damas and, nas.lowell, I think. And then we use purple pages as just a discovery relay. And we use those, principally just out of simplicity to make sure that we, get the thing running off the ground. But every time you publish to someone specifically, so whether that's a, you know, a key package, you're publishing to key package relays that you then specify. If you're a brand new key, you know, key pair, we're gonna give you the default ones anyways, so you're gonna start with that.
When you send a welcome message to someone, you're sending to their inbox relays, So the same ones that you would send a nip 17 d m to. Yeah. And then when you send messages to for a group, every group specifies in its creation which relays they wanna use. So, again, we default those right now to those same three relays. We actually have relay settings all already built. I just turned it off last night because there was a few little UX things in there that, people would just end up confused by. And so it's like, alright. I'll turn this off for a few days and fix this and then put it back on. That'll make sense. I mean, the reason I bring that up is because,
[00:27:10] ODELL:
you know, I've worked in a in a in a volunteer capacity with HRF, Human Rights Foundation for probably, like, seven years now, working with activists. And activists specifically seem specifically, activists that are relatively incentive aligned with the US government feel completely fine doxing their IP address to x or to signal. Right? Like, that's the signal trust model right now. Signal knows your IP address. And so you can see a similar setup here where you choose a re because the relay is the the relay that's receiving the original event is who's seeing the IP address. So you could presumably, like, the the the the easy low level way of handling this kind of IP linkage is choosing your relays accordingly in terms of who you wanna actually leak that information to.
[00:28:05] Max Hillebrand:
Exactly. And, of course, running the relays yourself. Right? Even in in the Yeah. Very long term future, we we have relays on the phone. We have Tor Onion services that you run on the phone. So we can have it this more peer to peer where you actually have the relays on each other's phone with with NEC entropy syncing among them. This is all doable in the long run.
[00:28:26] Jeff Gardner:
We just wanted to get something out of the door first. Right? Yeah. So, again, part of the beauty of MLS is that it is not, like, it's very agnostic to that delivery and the identity system. Right? So delivery right now, yeah, we're using ASTRA relays, and we're using it in clear net and all the rest. But you kind of incrementally can upgrade all these parts of the whole stack and make it so that you can do, you know, whatever is it, Nostril relays, syncing peer to peer with MEG entropy over Bluetooth or whatever it is. Like, you know, you can, you can upgrade that delivery mechanism in a lot of different ways, or have multiple different ways available for people to use.
[00:29:02] Max Hillebrand:
This is actually one one interesting thing that, about message delivery. Right? That, regular chat messages can arrive out of order, and your client will perfectly fine align them properly. Right? So I think this is an improvement that signal doesn't have. Not a 100% sure. There are some messages called, commit messages that basically change the state of the group, like adding or removing someone, and those need to arrive in order. So here, we have to be a bit more careful. But with regular chat messages, you can easily convey them via, you know, Bluetooth a week later.
[00:29:38] ODELL:
We got two zaps from anonymous people. One, his name is unknown, and the other one is Anon. They both zapped 21,000 sats. Thank you for sending me Freedom Money anonymously. Your support is appreciated. I, so to me, the coolest okay. So first of all, I love that it's, you know, an open open source, open project. There's probably gonna be many different implementations, different apps that are, like, handling this in different ways. And so we can have different choices in terms of trade off balances and whatnot. We can have the max approach that's, like, hyper hardcore and and very aggressive and hard to use. And then, hopefully, we'll have, like, very easy to use, you know, options. I mean, to me, the best part about signal is that like, my my 90 year old grandma uses signal actually capable of using that. She would never be using PGP.
I, so I I think white noise can actually can fill both both sides of the equation. And the hard part is how do you actually do that in, like, a UX forward way? But the the answer is probably multiple different apps built by different teams that are all interoperable with each other. Anyway, with all that said, that was very long winded and not actually where I wanted to go with this. Let's just get back to basics really quick. We have the white noise app right now. It's available on Android. It's not available on iPhone yet. I believe you guys are waiting for the test light to be approved. People click the test light button on the website, whitenoise.chat, and it says it's full. It's not actually full yet.
No. It's just not approved yet. Right. Now the coolest part about White Noise to me is that I can take my Nostril identity, my own my already established mature Nostra identity that has a huge social graph and plug it into this thing and have all my friends there. Right? Right. You guys don't have Amber support yet, which means that you have to just put your bare nsec and your private key directly into the app. Apparently, am I I might be one of the only idiots in the world who actually just did that and just raw dogged my nsec. Everyone's, like, making burner accounts. What what are your thoughts on that at this point right now? Did I just rug myself? Do I have to create a new NSEC at some point? You're fine.
[00:32:17] Jeff Gardner:
You're fine. The the NSEC is stored in the secure element on your phone. Like, we're using the actual hardware, security thing, feature in in the, like, operating system level. So you're fine. That said, Amber is definitely, like, top of the, top of the request list. So it's, like, definitely gonna come soon, but it's it's nontrivial to set up for the way the app is set up because most of the code runs in Rust, kinda one layer down. So it's we're kinda jumping a couple of fences to do to make Amber work.
[00:32:48] Max Hillebrand:
I like but there's actually one cool thing of of we're pushing the envelope here, and and the Ross Noster library, maintained by UK. Right? He's actively started working on on Amber support, I think, because of us because we we got to know about it. So we're we're moving the the ecosystem forward. It just takes a while. There's on iOS, by the way, there's, the name of the Keysigner app. Aegis. So, hopefully, we got this word out at the same time. Yeah.
[00:33:16] ODELL:
Yeah. I mean, I look. I I I just thought it was hilarious. I was like, I as soon as I could download, I just download it. It just immediately just download it. I can't Hey, man. It's fine. That's what I do too. And then I We all know. Then I I opened up Nasr, and it's like Gigi and Cali. They're all like, oh, connect to me. And they're, like, clearly using burner accounts. So it's like, oh, I guess I'm just, you know, whatever. YOLO. Just make it happen. But, anyway, that's to me, that's the single coolest part. And then if you don't have a Nostra account already and you sign up for White Noise, you're basically creating that Notstar identity. So at any point in the future, that social graph can then follow you if you wanna use an Instagram competitor or Twitter competitor or one of the other apps.
It could be one of the biggest adoption drivers. I mean, if you guys are successful to new new users on Nostr, and maybe they start with private messaging and then move over to the other the others maybe the other stuff is social. I don't know. I just they can Yeah.
[00:34:18] Max Hillebrand:
Plug and play with you. And that's a superpower of Nostra. We can we can really just automatically create a key for people. I was even in favor of doing it fully automatic by default for everyone. Like, you open the app, and you're instantly in the chat list and and can write messages. And we just give you a random name and stuff like this. We kind of toned that down by now so that we actually have a, a little bit of an a starting UX, and and you can set your own profile name and and stuff like this. But that's, I think, what sets Nostra apart so much, and we should definitely leverage it, to make it as easy, you know, instant in the background by default to give you a new identity.
[00:34:55] Jeff Gardner:
Yeah. This is actually the problem with Apple right now because they wanted to have a login. And and I'm like, there's not a login. There's you just hit create, and it creates a new sheet there, and you're you're ready to go. And they're like, no. Tell us what to do. We're like, okay. So that's actually a cube. Yeah. Exactly. That's the thing. I'm like, I I we can't it doesn't work like that. So in any case You gotta
[00:35:15] ODELL:
you gotta, you know, you gotta just play the game. Just it's a nostril login.
[00:35:20] Max Hillebrand:
Yeah. But we'll give them bacon bacon bacon.
[00:35:23] ODELL:
Yeah. You gotta you gotta talk their their language. I mean, like, people give primal shit, all the time, but primal has apps on iOS and has a built in wallet on iOS. And how did we do it? And we did it through, like, playing their game. Right? There's in app purchases for the in app credits that you can also get from our other multi platform apps, and it's not just iPhone. And, like, that was they're they weren't gonna understand zaps, but they can understand in app credits and master logins, and you kinda have to, but I will say that this project does ride or die on multiplatform.
[00:36:07] Jeff Gardner:
Like, signal is completely useless if it's Android only. For sure. And that's part of what's taking so long here is, you know, I knew that from the get go. And so I was like, this is never gonna be on the web. I mean, it might be on the web in some distant future, but that's definitely not the place it was gonna start. And building for multi platform is, time consuming.
[00:36:25] ODELL:
Yeah. So then my next question for you is, Jack Dorsey got a lot of press recently for his VibeCoded project. I I mean, it's gotta have been VibeCoded. He's into VibeCoding right now. VidChat 100%. Which is Bluetooth mesh. I mean, to me, it's cool. You know, I played around with it at school. I don't really live in, like, a high population density area. So, like, I basically just tested it with myself. And, actually, I I just implore people consider not living in a high population density area. It might be the best decision you can make for your family. But the dream the dream is a signal type app that eventually that if I lose if I if I lose Internet access and I want to switch to mesh, that it just automatically does it in the background. It does both. Right? In good times in good times, it uses Internet. In bad times, it uses mesh. And if someone in the mesh has connection to Internet, then it also uses Internet in that situation.
How do you guys think about that? Is that something that you like, at least high level road map? I know it's still super early.
[00:37:40] Jeff Gardner:
It's a long way out, but, yeah, I mean, I'd love to do a lot of that stuff. I think, you know, the the meshtastic stuff, the Bluetooth low energy, using radio. I think there's, like, a lot of funny stuff you can do. And, again, since MLS doesn't care about the delivery mechanism, we can do whatever we want.
[00:37:56] Max Hillebrand:
So I think there's And I think we get a lot of this for free from from Master. Right? Like, imagine you have, your Citroen, your local relay on the phone. How events get into that relay is is totally out of spec even for white noise. And so you could have a third party I forgot Koala was writing working on something. Sameez. Anyhow, like, exactly. You have that. That fills your local relay. White noise pulls from the local relay. It it works already today.
[00:38:22] ODELL:
And then there's a guy as well. Liberty Liberty Farmer has hamster, which is Nasr Vence Overham radio. Nice. So, yeah, I mean, as that's that's true. I mean, we could do carrier pigeon signed events if we wanted to. It would just be very inefficient.
[00:38:38] Jeff Gardner:
Very slow.
[00:38:41] ODELL:
And then my other question for you was something I completely forgot now. I don't know.
[00:38:51] Max Hillebrand:
Maybe to highlight one one of the cool features, I think, is is, that it's an a standard and a library. Right? Maybe that's the big downside of Cygnus. It's not it's it's not really, a specification. Right? They have a paper. They have multiple papers, but it's it's kind of like Bitcoin. It's it's code by specification or, like, the, you know, the other way around. So it's very difficult to reimplement it from scratch. And so most people you you there is a signal library, and and you can use that, but you're kind of pigeonholed in into sticking with that. And their MLS shines, it's very, very thoroughly specified. They have test vectors for everything.
So it it is much more doable to do an implementation from scratch. Not easy at all, but doable. And and then on top of that with our Nostr side of things, you you don't need to have access to a special server in order to get your account or or to deliver the messages. Right? So with with Nostr and MLS together really means that it's gonna be so easy to create a new client, that does whatever you want it to do. And then and I'm really looking forward to have a client, for example, managed specifically for managing, chatbots, that that are still interoperable with with all the others.
But, you know, these these types of niche products, niche ideas, are are doable. So we get so much superpower just from Nostra. It's it's unbelievable.
[00:40:17] ODELL:
I love that this is the conversation while we're just pumping a new all time highs in the background. Look at us. I,
[00:40:26] Max Hillebrand:
so I'm time high in in gold, by the way. Yeah. Yeah. Whatever. Oh.
[00:40:31] ODELL:
So it's a it's, a it's a narrative thing more than anything else. It's it's a vibes thing. I, that was my question. Yeah. Go ahead. My my question was was, like, how hard is it for Amethyst to add this or Primal to add this functionality? I mean, that seems like the holy grail. The holy grail is someone signs up to primal to ship post, and they have signal level message capability.
[00:41:00] Jeff Gardner:
So that's the other thing that took a long time. Multiplatform, obviously, was a big deal, but, really, I was simultaneously building libraries for how the noster part of the MLS stuff works, so that we would have, a consistent way for clients to implement this. Because, you know, when you're building interoperability in secure messengers like this, the security is based on the weakest link in the stack. Right? So if you've got three different apps and they've implemented this in slightly different ways I mean, two things. One, if they get it wrong, they could just fork the group and, like, half the group goes over there and half the group goes over there, you know, when there's a change in the group because they've got something wrong. On the other side, like, they can easily just break the entire security model by doing something incorrectly. So we really need to have, you know, some very well tested, well audited, implementations of both the actual underlying MLS protocol, but also, you know, the glue protocol that I've written in the NIP, NIPEE, that talks about how to apply MLS to Noster.
And so we've put all of that into the RustNoster libraries. So there's a couple of crates there that are pretty extensible and, I think pretty nice at this point. We are gonna help collaborate with somebody who's working on a, TypeScript MLS implementation, and then we'll build the kind of glue library that goes in between on that one as well. So, yeah, this in theory, the idea here is that, like, white noise is part of our work, but, actually, a a huge part of our work is also just helping other clients implement this properly so that we've got that interoperability across every client that wants it.
[00:42:36] Max Hillebrand:
Yeah. Yeah. And there there's again, right, we're piggybacking on on the open MLS ecosystem. You know, we we started to write our own TypeScript library, then Jeff finds that a guy is already doing it. Right? There's a Kotlin library. There's a c sharp library, a c plus plus library, two Rust libraries. Right? So because this is an Internet standard, we don't have to do all of the work, which is great. And, then since the the flagship client libraries are are in Rust, we can actually do rather easy language bindings into almost anything. Now that's not optimal for some projects, specifically in the web. But for example, for Amethyst, right, we can have Kotlin bindings to the RustNoster library, and Vitor is is fine with that. That that would work for him. And so we're we're really making quite good progress of getting all of the major clients onboarded to this. And just to do a little bit of public pressure so that they actually follow-up on the promises, we we have, like, you know, Primal, Amethyst, Oracle, DAMOS, Shopster, Plebeian Markets.
KeyChat is already working on MLS as well. Iris, yeah, like, well, really, a lot of different apps that that are seriously considering to to integrate MLS. Now, obviously, it's a lot of work, and it might not be priority. But the the will is there, and, hopefully, we can have a a proper industry standard to fix DMs so that we keep the interoperable benefit. You know, I I would love to have something as interoperable as NIP four,
[00:44:10] ODELL:
but more secure than signal. If we have that, then fuck yeah. I will just I mean, on the primal side, like, we intentionally never left NIP four for, like, the stop gap, NIP 17, or anything like that because we were waiting for you guys. Like, it didn't make sense to, like, move the user base over to what was very obviously a stop gap when the goal was ultimately
[00:44:34] Jeff Gardner:
what you guys are trying to achieve. Yeah. So Yeah. I've had a conversation with a million as well. So Yeah. He's he's aware. And
[00:44:41] ODELL:
then it's just a question of of priorities and and implementation timeline. But, I mean, priority wise, it's pretty high up there. It's just it's how how how much how long does it take to actually implement, in a secure way, in a responsible way? And I will say to the earlier point supervisor's doing. Yeah. To the earlier point on the IP address leakage, right, which we actually we handle pretty well at Primal, in the Grok Brain way and the low IQ way, the simple way, which is people give a shit yeah. People give a shit for the caching server. Like, the caching server is the only one who sees your IP address, and then there's a toggle in the app where you can actually broadcast through the caching server too. And then the caching server is literally the only server that sees your IP address, which is the same trust model that you see for most centralized websites.
And it's optional in that regard, and anyone can run a caching server.
[00:45:45] Max Hillebrand:
So This is this is really We could do something crazy on the MLS side is my point. Yeah. The the there's a crazy downside of of Nostra. It's so easy to get someone else's IP. I mean, literally, like, you just upload a picture on your own server. Profile pictures. You're getting all the profile pictures. Exactly. Or you tag someone in an event, and he's gonna be the first one to look at it, and voila. You you have his IP. Like, it's it's scary in Nostril how how this works. I mean, but it's, you know, it's it's the same with any peer to peer attack. Like, torrenting, is is just is is really bad for privacy.
Keyd, for example, as well. Like, everyone in the group knows your IP. That's scary. I mean, the VPN fixes this. Yes? It's just the engine. And you can do inbuilt stuff.
[00:46:28] ODELL:
Yeah. It's literally just a trade off of the Internet.
[00:46:31] Jeff Gardner:
This is the Internet. Yes.
[00:46:34] ODELL:
I, it's just people are discovering it for the first time with Nasr. It's, like, right in your face, you know, you because you actually see it happening.
[00:46:43] Jeff Gardner:
I mean, people should remember, though, that, like, the entire Internet used to be unencrypted. It used to just be all plain text, and it wasn't until, like, not even that long ago, really, that it was like, oh, actually, now everything's encrypted. Like, I remember HTTPS
[00:46:56] ODELL:
becoming a thing, and it was just like, oh, okay. It was the Snowden leaks, and then so that was 2013. And then right after that, Google basically threw their dick on the table, and they were like, we're gonna deprioritize anything that's not HTTPS.
[00:47:09] Jeff Gardner:
Right.
[00:47:11] ODELL:
Because Google's fine with being with complying with the US government, but they're not fine when the US government does it to them without
[00:47:19] Jeff Gardner:
asking for something.
[00:47:21] ODELL:
So they've really pushed it pushed it forward. Okay. I mean, I, basic things. I mean, how you how you thinking about road map priorities? You know, I I signed in. I couldn't I I couldn't search didn't work. Messages were failing. Like, where are we going?
[00:47:45] Jeff Gardner:
Okay. So search is I mean, look. The reason we wanted to push this out as quickly as possible and and, you know, I certainly like the old Marc Andreessen thing of if you're not embarrassed when you release, you released way too late. I certainly feel embarrassed about all the stuff that, you know, I see happening, and it's like, that's that's good. That's fine. We wanna get lots of early adopters to just play with it, right, and put it through its paces and, you know, have us find places where, you know, like, weird contact list, you know, structures come back and, like, wreck the app. So it's, you know, lots of these little UI things that are you know, they are mostly UI bugs, but we need to fair all that stuff out. We need to make sure that we get the underlying protocol stuff really hammered down.
You know, so far, it's been used, you know, really in very small groups or, you know, small numbers of people. So we just need lots more usage. So, yeah, I think, like, immediate term is definitely just, you know, keep fixing bugs, keep adding some of the really basic stuff that, you know, are obvious, like Amber, like, you know, controlling your relays, you know, some more controlling of, like, how stuff happens in groups, you know, how you evolve a group forward over time. And I think through all that, we're gonna end up with something that's just way more solid and secure, and that's the point at which we'll probably really push on getting interoperability with others, and start to add some of those privacy features like tour circuits and, you know, things like that.
[00:49:12] Max Hillebrand:
Yeah. I think by the end of this year, we'll we'll have a smooth app with with all of the basic features required and, you know, stable message delivery, which is currently lacking kind of an important feature. Yes. But, hey, last week, messages didn't go through, like, a 100% of the time. So we made a big progress of, like, 40% of the messages. This is what happens when you throw away your entire front end stack and, like, start over a month before you wanna launch. You're like, oh, okay. Yeah. I will say.
[00:49:38] ODELL:
That's a bigger problem than people give it credit for that signal solved really well. The thought in the back of your head of was this message delivered or not? Even if it's 98%, the 2% chance that the message wasn't delivered and the person on the other side isn't ignoring you, they just never received it, makes it a way less useful communication media. 100% accuracy. With a simple x where it's like with signal, I know. Like, you're ignoring me? Fine. Whatever. You don't wanna talk to me? Fine. I understand. I've noted it. But, like, when you're using some of these other things, you don't know. Like, are did they actually receive it or not?
[00:50:15] Jeff Gardner:
Right. And and read receipts and things like that are Yeah. Like, delivery receipts, read receipts are things that people have talked about putting into Nasr for a long time, and no one's ever done the proper nip for it. And so I think, you know, we need to figure out how to do that, and how we're gonna do it in a way that's gonna make sense for, you know, other use cases and things. So there's a bunch of things, you know, and this is why it's really cool that the actual messages that you're sending back and forth between, you know, people in a group are actually just unsigned Nostra events. Because, basically, a group is just a thread of Nostra posts. And so we can take in any kind of message that we want in there and apply it the same way you would, you know, in a social client, but this is just in a, you know, like a firewall, you know, contained little box.
So Yeah. You know, we'll be able to do rereceipts. We'll be able to do videos. We'll be able to do all sorts of different things inside, you know, the messages, and they'll just be not sure events, which is great.
[00:51:08] Max Hillebrand:
This is one of my original feature requests. So I'm I'm working on this. I want to post to all my follower, like, the people whom I follow, you know, where my location or something more sensitive that I don't want to be public, but I want to share with, like, my thousand friends or or something like this. Not that I have that many. But, that's that is actually possible with with MLS. You you can encrypt something to a dynamic list of followers or or or members into the millions. Right? And and it will be almost instant for for the people receiving this. There was actually a a a recent extension to White Noise published sorry, to to MLS published MLS, Light? No. I I forget the name of it. Yeah. It was called. Yeah.
They they've designed it for to have MLS encryption for WebRTC, calls. Right? So in in the webinar setting where you want to have an encrypted webinar where the the keys for that, you know, webinar, the entire session gets done via MLS, the initial handshake, but you want someone to be able to click a button and within a couple milliseconds, join the webinar. And with the standard MLS, that's not really possible, because it just takes a little bit time to build your own local state of the network or or that group. And with this way, you can just prune it, and you only need a path up the tree. And so this literally scales into the millions of people for basically instant decryption of messages.
And that's, like, the final piece needed to to really have anything that you're doing on Master right now, you can do it encrypted with MLS with however many people you want, and that's just super exciting.
[00:52:51] Jeff Gardner:
Yeah. Yeah. MLS is super cool. I mean, like, the upgradeability of the, you know, of protocol in flight is kind of cool as well. Like, you can actually change the entire Cypher suite of a group over time. So if you started on the kind of standard default one, which is what we're using currently, but you wanna go to, you know, a post quantum cipher suite, which they're working on that extension right now. Like, you can do that without actually getting rid of the group and starting a new one. You just say to the group in a commit message, hey. We're switching to this Cypress suite, and everybody agrees, and they make the commit. And the group just from one message to another is now using a different, you know, Cypress suite.
[00:53:28] ODELL:
That's awesome. Yeah. And I just wanna reiterate, because Max kinda mentioned this in passing. If I if I sign in on mobile with my NSEC and then I sign in on another mobile or desktop or whatever with the same NSEC, it's what happens in that situation? I mean, you say I don't get my message history. Do I break it? Like, does it does everything go to shit all of a sudden and people get like, clients get confused? Like, how does how does that get worked out? So right now in white noise, if you did that, you basically show up as two different people, with the same, you know, identity.
[00:54:10] Jeff Gardner:
So the only thing that would be really weird, I think, is that you would look weird to yourself, more than anything. What we wanna do is we'll handle that properly in the sense that, you know, you'll add yourself just the way you're saying, you know, you do in signal, which is usually, like, scan a QR code from your phone to your computer, and then your computer just, you know, connects. So this is mostly a UI constraint, but, yeah, is every device client you know, every, device that you add is a different member in the group. But because it's pretty, you know, efficient scaling, it really doesn't matter at all. And And it's a UI question of how do we just merge those two people into, like, the same person.
[00:54:48] Max Hillebrand:
Got it. So MLS designed this mainly for multiple devices. Right? Phone and laptop. But we're in Nosterland where we have a gazillion different clients. So we actually use clients as devices. And so let's say you have on one phone, White Noise and later Primal and Amethyst. Let's say, all three of them do MLS. You put your NSAC into each of them or you have Amber, and that does the NSAC management. But anyhow, now each device creates its own key package with its unique MLS keys not derived from anything else, just purely random keys, and and you publish them signed with your NSAC.
And so now we have three subkeys, so to say, and, any client will will recognize that, hey. This one user actually has three keys. So let's put them all together in one group. That's most likely how it's gonna work. One other approach would be that we have one app centralized on on your computer that is the MLS app, and that has your database. And then we have different front ends that pull from the same database and and do signing requests. A little bit like Amber does it, but for MLS database. That's probably not the way it's gonna go, though. Because then you need your computer on all the time. Right? Well, it could be on the phone. Right? You would have one app like Amber that does all of your keys and database, and then you have all the other apps
[00:56:10] Jeff Gardner:
talk to this one phone to to this one phone. I think it's I think it's far better to just have every member of the group as a separate thing a separate entity. Because then if one of those members gets compromised, it's easy to prune them out of a group. Or if they've been completely off line for a really long time, like, say, you just lose your phone, you know, after some point, there's just kind of an auto, eviction policy where, you know, members of the group that haven't shown up for a month are just booted immediately. So there's a lot of little things like that that I think make it more make it make more sense to use the kinda each device as its own thing.
And, again, they're just nostril events that are showing up in the chat. So they're you know, the pub key is your actual, you know, pub key. And so it actually is trivial for the client to, like, show that, you know, this is mapped. This is also mapped. They don't need to know that it came from two different, you know, devices.
[00:57:02] ODELL:
And so but it so, yeah, in practice, I'm I'm let's say I'm signed into primal Mhmm. And I'm signed into white noise, and you send me a message. I I should be getting it on both. Right? And I can reply from either? Of course. Yeah. Exactly. And and and there are good ways reply.
[00:57:22] Max Hillebrand:
So when you reply, the receiver under the hood sees that, hey. He's replying from Primal right now or he's replying from from White Noise right now, but the user wouldn't see that. It's just the the underlying app sees which key package signed in to them.
[00:57:37] Jeff Gardner:
And and just to be clear, people in the group don't know which client you're using. They just know that it's a different client than the other one over there. Right. Because MAT one, MAT two, MAT three. Yeah. Exactly. Whatever. Yeah. Yep. Yeah. There's no reason to leak that metadata.
[00:57:49] ODELL:
It's unnecessary. Yeah. Okay. Next question. This is for Jeff specifically. Jeff, like, so, obviously, for White Noise, you've been funded by HRF and OpenSats. I say obviously not just because I'm part of OpenSats, but also because it says it on the website. Right. But three weeks ago or something like that. I don't know. Time just melds together. You announced participation in a project called and other stuff led by Jack Dorsey. It's kind of like a vibe coding, skunk works type of, open source collective. I don't know. I think I just is rolling in his grave. Kylie is rolling in his grave listening too. He's not in the grave, thankfully.
[00:58:39] Jeff Gardner:
But he's, his stomach is turning when you heard it when you heard it called a vibe coding skunk works. I mean, is that not what it is? No. No. It's not. So, yes, AOS is is a really cool project. I think the idea there is, kinda twofold. One is explore other stuff because, you know, we all know Nostra sort of kind of hit this plateau, which I think is, you know, makes sense if you're focusing just on one use case like, you know, Twitter like use case. I think a lot of us have a lot of conviction that it's the other things that are gonna actually bring a lot more users into to Nostra. And I think on on another kind of aspect, Jack was really keen to try and explore what a non VC model for a smaller, really focused group looks like. And so it's not it's there's no, like, equity. There's no setup like that. It's literally a donation.
So it was you know, had to go through a five zero one c three nonprofit. It came from his start small foundation. And the remit there is you have to figure out how to work together as a group to build stuff that is going to make a material impact on the trajectory of Nasr. And our first stores, non monetized. Yeah. Non monetized, all open source. It doesn't say we can't monetize things. I think that's part of the experiment is, like, try to understand how we can make some of this stuff a little bit more, sustainable.
But, certainly, it's all open source for sure. And and yeah. Like, I think, you know, everybody at at this point has understood that, AI has come a very long way and is kind of unlocking a lot of new, modes of working. And so the idea behind the the Chorus app, which is the thing we launched in Oslo at the Freedom Forum, that was Vibe coded in five days just before the Freedom Forum. Like, we all got together and hung out for a week and, basically just Vibe for thirteen hours a day and, you know, launched this app five days later on stage in Oslo. The idea there was basically just to push ourselves to see, could we effectively keep our IDs, you know, our our code editors closed for a week and build something that works And and, like, have enough conviction behind it that we're gonna launch it on stage to about a thousand, you know, more normal users. These are not, like, all Bitcoiners and and not They're mostly not. Yeah. Mostly not, in fact. So it was like, you know, it was a it was a it was a big burden to put on on the group to be like, okay. We're gonna do this, and we're gonna get Alex Gladstein to, like, announce this on stage. And, like, we we don't wanna make him look stupid, so, like, we can't let it be dumb. Like, we can't let it break and not work.
And it was a it was a really good experiment as well on, like, how do you do community style, apps and, like, does that work for normal users and and groups where they're trying to raise money? You know, these activist groups that are are in Oslo were there specifically in a lot of cases to try and, you know, raise for their for their causes and things.
[01:01:33] ODELL:
I mean, so you can see where people might get the idea that it's a, vibe coding skunk works, considering 100%.
[01:01:40] Jeff Gardner:
100%.
[01:01:42] ODELL:
Did that, screamed it from the rooftops, and announced the project at the same time. Of course. But my question to you was so this project, White Noise, is, like, the exact opposite of Vibe Coating. It seems like it's been a very manual long process. So I'm curious on your specific your personal opinion. Obviously, you're not speaking, for and other stuff. Like, your personal opinion on vibe coding versus analog coding.
[01:02:11] Jeff Gardner:
I think it's interesting, and it's kind of a it's a nuanced one that, you know, the hot takes never capture the the actual reality of the situation. But I think, you know, there's a spectrum, right, on everything. It's a trade off. If you've got code that is, you know, high consequence, so it's it's Bitcoin, it's money, it's cashew, it's or it's high consequence because, you know, what you say could get you thrown in jail or worse, and it's something really new, like MLS is very new, it's not really something, you know, you want to just leave up to a computer to to make up. Right? That's where the the vibes go into full hallucination mode is they don't really know what you're trying to do. They don't it's brand new. You've just invented the spec. So they they honestly have no idea what to do. So they just make it up and, you know, nod their head and say, yeah. You're good, bro. Go for it.
On the other side of the spectrum is, like, if you wanna build a little web service that sort of looks like Twitter and is gonna use React, well, there's, like, fifteen years or twenty years worth of code on the Internet that shows that exact same process. And so, you know, the LMS are really, really good at writing that sort of stuff. And I think, like, Alex Gleason's MK stacks stuff is a great example of this. Like, you know, he picked a bunch of, like, off the shelf super well understood parts. He gave, you know, the LLM tons of context about, like, this is Nostra. This is how it works, and these are the things you do do and don't do. And if people wanna write, like, really simple little web clients, it can do a great job. So I think you gotta pick your tool for the job, and, you know, I think, like Kylie said the other day, you know, the people that are gonna win are the real programmers who apply this properly, to the right, you know, job. And so, yeah, there's there was a lot of manual coding that went into, everything behind white noise, but there's also a lot of Vibe stuff right at the edges where it's like, okay. I just need this button to move in the app or I need to, like, change the way this UI, you know, appears. But all of the stuff that's down in the library code and all the, you know, all the rust that was written to make this thing work, was definitely handwritten.
[01:04:08] ODELL:
Yeah. That makes sense to me. I mean, would you go as far as saying that if you actually, like, get the protocol to a mature spot, get the libraries to a mature spot, people might be vibe coding white noise apps in the like, MLS compatible white noise apps in the future on top of whatever
[01:04:27] Jeff Gardner:
libraries you have analog? Absolutely. Yeah. Yeah. Absolutely. Like, I mean, on what time scale is the only question there. Right? Like, is that gonna take, two years or fifteen? But, like, you know, I think, the LMS will learn it, and they will get better over time, and they will get smarter and smarter. And and to be honest, like, the way I look at them is, like, it's the best pair programmer imaginable because, you know, you're in the middle of something and you're like, I actually don't know which is the better way to write this. Like, should I do it this way or this way? And you can literally have a spitballing session or a rubber duck session with an LLM and go, okay. I I've learned something about the actual programming language that I wasn't sure about before, and now we've written better code,
[01:05:06] Max Hillebrand:
in what we're actually trying to do. And one one of the I mean, first of all, I think this is just a stopgap. Right? Like, in in five years, it's gonna write perfect code all the time even for novel ideas. So it's it's kinda like writing assembly code nowadays. You just don't do that, or you pick a higher language. But then it's also not only for the code. Like, one prime example is we we sneakily announced white noise and a Defec Day in BDC Prague. Great event, by the way. You should all come. I hate doing slides. I'm way too lazy for that. But this was a presentation that really required visual aid. And so what we did is we put the entire a 170 pages MLS specification, the entire 80 pages MLS architecture specification, the entire nip with our nosto wrapper, and I think something else. And we made a one shot prompt with goose, not even a paragraph.
And ten minutes later, we had an HTML coded, presentation slides. I had a markdown file explaining each slide, and and what I should say about it and another markdown file with with commonly asked questions that that are to be expected and how to answer them. And we gave that to to the designer. He made it pretty in our scene. That's probably gonna be obsolete, like, or automated soon as well. And and that's it. Right? So it was it was extremely easy to to make this very technical talk, slides just by adding more context and more compute power.
[01:06:41] ODELL:
Makes sense. Awesome. Well, guys, I mean, I'm pretty I'm pretty excited, about what you guys have built. I'm excited to see where it goes going forward. I would love if we, you know, maybe, like, in six months or something, we do an update show on where we stand. Hopefully I mean, I imagine you've done a lot of the hard part already, and now it's a lot of iterating and shipping updates. So it'd be great if we could do an update episode.
[01:07:13] Jeff Gardner:
The infinite 20%.
[01:07:17] ODELL:
Do you final thoughts before we wrap up? Any call shout outs to the audience? Anything you want them to do? How can they be most helpful?
[01:07:26] Jeff Gardner:
I mean, I guess my shout out is just, like, thanks to everybody for all the support and stuff on this. I mean, to me, it's felt like, it's probably the longest single project I've, like, stuck on, you know, doing just myself for the majority of it, for a lot of the coding. And I just have gotten so much support from so many people. I mean, Max from day one from the napkin conversations has has been there the whole time. But, you know, it's been really cool to see how much the community has been behind this. And I think the only thing I'd ask is, like, just test it. Give us feedback. Send us, you know, issues in GitHub, and bear with us while we, you know, crack through and get through all of everything.
[01:08:04] Max Hillebrand:
Yeah. Like, be active. Join us. It's it's an important mission that that must be completed. Secure comms are fucking essential. People die without them. Nostra comms are are terribly broken. We we have to fix them really fast. This is not a one man project or even a one project project. This requires all of the hundreds or thousands of Nostra clients, to be interoperable and and and work well together. So if you're working on a Nostra client and you want to improve the security of your messaging, reach out. We we really want to know what's your requirements, what's your language, what's your stack, and and how we can help you.
And, of course, if you wanna join white noise coding specifically, well, come ahead. It's written in Rust's back end and, the Flutter front end start. And and, yeah, like, keep keep building. It's it's important stuff. And, also, I guess, keep shipping. Maybe that's one fun little tidbit of we actually yesterday wanted to make a nice quiet release, calm, don't don't be too loud about it. But then Huang Gao from Bitcoin Magazine was like, so, yeah, I published the announcement. And I was like, oh, shit. Well, we're we're not yet released, by the way. But I guess we'll release soon. And and well, then, you know, shit happened, and and it kind of blew up. So, first of all, thanks for for all of the cool, feedback and and support and enthusiasm for the project.
That makes everyone happy, especially the the developers who've been really deep down the rabbit hole, and it's cool to see that your code actually gets used. And, thanks for the warm welcome to the Nostra community, of this new project, and, yeah, help us make it better.
[01:09:49] ODELL:
Love it. Thanks guys for joining us. Freaks, it's whitenoise.chat. I'll put all the relevant links in the show notes, but whitenoise.chat if you wanna test it out. As I said earlier, they're not approved on iPhone test flight yet. So if you click that button, it's gonna tell you the beta is full. It is not full. But Android APKs are available, and it's also available on Zapstore, which is an awesome project,
[01:10:17] Max Hillebrand:
by Frank. Yeah. And one one thing to highlight here is, sorry to interrupt this, is the Freedom Store, an alternative app store for for iOS. We're not on there yet either because you need to be notarized, and Apple doesn't notarize us. But once we're through that hurdle, we can actually release with much less Wait. Bureaucracy. Wait. Apple needs to approve you to get on the Freedom Store? Yes. Yes. You need to be notarized. Sure. It's different than a full app review,
[01:10:43] Jeff Gardner:
but it's still a pain in the ass. But the process is also still labyrinthine. Like, it's crazy. It's really, really complicated. I think once you're in test flight, it's
[01:10:53] ODELL:
like they accept the releases really quickly after that. Yes. The hard part is, like, just getting approved for test flight. For the freaks that don't know, Freedom Store is because, Apple lost a a court case in Europe. So they have to allow other other app stores in Europe, but you have to be European to use it. And, apparently, it still requires some level of Apple permission, which I did not realize. Yeah. But the people behind that are awesome. They're also behind Vexel, the peer to peer Bitcoin trading app, where you can buy and sell Bitcoin without KYC. So it's good to see. Hopefully, we see more I mean, I don't know. I've I I would like to have a pet unicorn. I'm not gonna expect Apple to open up their ecosystem anytime soon, so I won't even say it.
Guys, thank you for joining. Fact that Yeah.
[01:11:43] Max Hillebrand:
So the fact the fact that Zapstore is the only app store where it just worked, you know, shows you how big Nostra is winning already.
[01:11:51] ODELL:
Yes. Yeah. Zapstore is awesome.
[01:11:53] Jeff Gardner:
Literally one command and boom. It was there.
[01:11:57] ODELL:
Yeah. Zapstore and, Fritz, if you haven't listened, I did a little dispatch on Zapstore. But, what is he changed the he changed the domain on me. Is it it's not zap.store anymore. Store.dev.
[01:12:09] Jeff Gardner:
Zapstore.dev. Yeah. I think there was another Zap store that, probably had a cease and desist or something. Oh, is that what happened? I don't know. But I I looked up I just knew I was zap store. The domain was super expensive. Like, the .store domain is expensive, so he didn't feel like
[01:12:24] ODELL:
renewing it for that price was worth it. Okay. But he had the he used to have the domain. Right?
[01:12:31] Max Hillebrand:
Yeah. Just renew would have been, I don't know, couple thousand bucks or something. And now it's a completely different project.
[01:12:38] ODELL:
Access Oracle that bring no. Zap dot stores. Access Oracle that bring more to world data to smart contracts. Someone else bought it. Goddamn. Crypto people in their crypto money. Yeah. And it's, like, what? Wait. Wait. It's, okay. Shit. Well, time is a flat circle. Freaks, thanks for joining us in the live chat. You guys make the show unique. I have a new I have another show tomorrow, with Pip. We're gonna be talking about, Vertex, which is his master web of trust implementation. I'm pretty excited about that. That's verifiable reputations. There's gonna be a lot of AI deepfakes. There already are a lot of spam, AI slot bullshit.
The only way we're gonna really mitigate that at scale, without a centralized third party like Elon doing KYC on everyone, which still is not very effective if you've ever used x recently, is through webs of trust and verifiable reputation. So definitely come join us for that. What did I say it was? Nineteen thirty UTC. I might have said sixteen thirty. It's nineteen thirty UTC. And RHR tomorrow is sixteen thirty UTC. Guys, thanks for joining. I'll be in touch. I'd love to have you back, and let me know if I could be helpful with anything.
[01:13:55] Jeff Gardner:
Thank you very much.
[01:13:56] Max Hillebrand:
Awesome. Thanks for the shuffle. See you later, guys.
[01:13:59] ODELL:
Stay humble, StackSats. Peace.
Trump Intro
Happy Bitcoin Thursday
Secure Private Messaging
Signal Protocol vs MLS Protocol
Nostr's Role in Secure Messaging
Privacy and Metadata Concerns
White Noise App Overview
Mesh Networking and Future Plans
Interoperability with Other Clients
MLS Protocol Features and Upgrades
Funding and Development of White Noise
Vibe Coding vs Traditional Coding
Community Involvement and Future Plans