July 10, 2025

CD166: JEFF GARDNER AND MAX HILLEBRAND - WHITE NOISE PRIVATE CHAT

The player is loading ...
CD166: JEFF GARDNER AND MAX HILLEBRAND - WHITE NOISE PRIVATE CHAT

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

00:02 - Trump Intro

02:10 - Happy Bitcoin Thursday

04:00 - Secure Private Messaging

06:56 - Signal Protocol vs MLS Protocol

15:25 - Nostr's Role in Secure Messaging

24:38 - Privacy and Metadata Concerns

31:02 - White Noise App Overview

36:37 - Mesh Networking and Future Plans

45:00 - Interoperability with Other Clients

52:53 - MLS Protocol Features and Upgrades

58:07 - Funding and Development of White Noise

01:04:29 - Vibe Coding vs Traditional Coding

01:09:09 - Community Involvement and Future Plans

WEBVTT

NOTE
Transcription provided by Podhome.fm
Created: 07/10/2025 18:49:36
Duration: 4443.243
Channels: 1

1
00:00:02.159 --> 00:00:03.679
BRICS was set up to,

2
00:00:04.480 --> 00:00:05.859
degenerate our dollar

3
00:00:06.399 --> 00:00:09.700
and take our dollar as the standard, take it off as the standard.

4
00:00:10.559 --> 00:00:20.385
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?

5
00:00:20.925 --> 00:00:24.065
No. If they're a member of BRICS, they're gonna have to pay 10% tariff

6
00:00:24.605 --> 00:00:30.785
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,

7
00:00:31.300 --> 00:00:33.000
and it largely broke up.

8
00:00:33.940 --> 00:00:38.600
But, you know, there are a couple that hang around, but I thought it largely broke up. BRICS is not,

9
00:00:38.980 --> 00:00:42.915
in my opinion, not a serious threat. But what they're trying to do is destroy the dollar

10
00:00:43.475 --> 00:00:48.775
so that another country can take over and be the standard. And we're not gonna lose the standard

11
00:00:49.555 --> 00:01:01.070
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,

12
00:01:02.410 --> 00:01:04.030
the world standard dollar,

13
00:01:04.729 --> 00:01:15.365
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?

14
00:01:15.825 --> 00:01:22.564
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,

15
00:01:22.865 --> 00:01:28.085
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.

16
00:02:10.310 --> 00:02:12.090
Happy Bitcoin Thursday,

17
00:02:12.390 --> 00:02:20.685
freaks. It's your host, Odell, here for another civil dispatch, the interactive live show focused on actual Bitcoin and Freedom Tech

18
00:02:21.065 --> 00:02:21.565
discussion.

19
00:02:22.505 --> 00:02:25.965
That intro clip was none other than president Trump himself

20
00:02:27.070 --> 00:02:30.610
talking about the risk of the US dollar losing reserve currency status

21
00:02:31.070 --> 00:02:33.330
as Bitcoin blasts through all time highs.

22
00:02:33.790 --> 00:02:36.210
I can't really imagine a better timeline for Bitcoin,

23
00:02:36.510 --> 00:02:39.890
but we are not here to talk about Bitcoin today. If you wanna hear about Bitcoin,

24
00:02:41.275 --> 00:02:43.055
we'll have rabbit hole recap tomorrow

25
00:02:43.595 --> 00:02:45.135
at the same time as this show,

26
00:02:45.435 --> 00:02:47.055
so twenty four hours from now.

27
00:02:47.355 --> 00:02:49.375
But it's pretty pretty hard to

28
00:02:49.755 --> 00:02:50.255
contemplate

29
00:02:51.595 --> 00:02:52.975
a setup for Bitcoin,

30
00:02:54.580 --> 00:02:55.960
amid macro uncertainty,

31
00:02:56.260 --> 00:02:57.400
high interest rates

32
00:02:58.100 --> 00:03:03.000
than today. Anyway, with all that said, dispatch, as always, is funded by our audience,

33
00:03:03.380 --> 00:03:07.000
viewers like you with Bitcoin donations. We have no ads, no sponsors.

34
00:03:08.725 --> 00:03:09.705
Dispatch is

35
00:03:10.325 --> 00:03:14.265
fully in the business of losing money and sending out signal.

36
00:03:14.725 --> 00:03:16.105
So thank you, Freaks,

37
00:03:16.405 --> 00:03:17.865
for sending your stats.

38
00:03:18.885 --> 00:03:23.205
Best way to support the show is in our Nostril live chat. All the links are at dispatch.com.

39
00:03:23.205 --> 00:03:27.840
You can zap live during the show, or you can zap after the show

40
00:03:28.140 --> 00:03:30.000
through Fountain Podcast app,

41
00:03:30.700 --> 00:03:35.680
in your favorite app store. The top zap through Fountain Podcast for last week was Poopsicle,

42
00:03:36.140 --> 00:03:39.600
great name with 800 sets saying good wallet, very slick.

43
00:03:41.915 --> 00:03:46.575
Anyway, guys, I appreciate you all. As always, Ciel Dispatch is available on every major platform,

44
00:03:47.275 --> 00:03:57.070
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

45
00:03:57.690 --> 00:03:58.910
private messaging.

46
00:04:00.330 --> 00:04:01.070
We have

47
00:04:01.450 --> 00:04:02.430
return guest

48
00:04:02.970 --> 00:04:03.870
Jeff here,

49
00:04:04.730 --> 00:04:06.990
who is the creator and

50
00:04:07.305 --> 00:04:09.805
lead maintainer of the White Noise app.

51
00:04:10.345 --> 00:04:11.565
How's it going, Jeff?

52
00:04:11.865 --> 00:04:13.805
It is going very well. Thanks, Matt.

53
00:04:14.265 --> 00:04:15.565
And we have,

54
00:04:16.985 --> 00:04:19.485
ride or die freak, Max Hillebrand here,

55
00:04:20.490 --> 00:04:27.389
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?

56
00:04:28.330 --> 00:04:33.325
I do everything but code. You know, someone has to do the other stuff. So you're that carrier.

57
00:04:33.805 --> 00:04:36.625
You're the you're the PM of a two man team, basically.

58
00:04:37.085 --> 00:04:41.104
Oh, no. There's more than two of us now. Oh, nice. How many are there?

59
00:04:43.245 --> 00:04:51.840
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.

60
00:04:52.539 --> 00:04:57.919
That's badass. Anyway, Jeff, you joined the show about a year ago when this project was

61
00:04:58.460 --> 00:05:01.120
very much in the napkin writing phase.

62
00:05:02.185 --> 00:05:04.445
What is white noise? Why should people care?

63
00:05:05.225 --> 00:05:14.604
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,

64
00:05:15.384 --> 00:05:15.884
Bedford

65
00:05:16.425 --> 00:05:33.745
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.

66
00:05:34.145 --> 00:05:45.044
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.

67
00:05:45.699 --> 00:05:54.039
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.

68
00:05:54.819 --> 00:05:59.925
That was gonna be the backbone of how we were gonna do this sort of double ratchet encryption to get really secure,

69
00:06:00.705 --> 00:06:05.365
messaging over Noster. And so what I had to figure out was basically how do you do,

70
00:06:05.905 --> 00:06:11.850
delivery and identity because MLS doesn't care about those two things. They just kinda leave that to whoever's gonna implement it.

71
00:06:12.730 --> 00:06:19.310
So how do we do those things in a way that preserves metadata and privacy and things like that over NASDAQ public relays?

72
00:06:20.250 --> 00:06:34.775
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.

73
00:06:37.795 --> 00:06:40.375
Awesome. I mean, so the general concept is

74
00:06:42.490 --> 00:06:46.750
kind of like a signal type app in terms of security and usability,

75
00:06:48.969 --> 00:06:56.509
but without relying on a centralized party like signal to manage the servers and the social graph. Right?

76
00:06:56.955 --> 00:07:00.074
Exactly. So, like, signal I mean, I think signal's a pretty good actor,

77
00:07:00.555 --> 00:07:13.810
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.

78
00:07:14.430 --> 00:07:16.130
They've gotta pay those server bills.

79
00:07:16.750 --> 00:07:23.650
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.

80
00:07:24.750 --> 00:07:34.965
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,

81
00:07:35.905 --> 00:07:44.290
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.

82
00:07:45.790 --> 00:07:47.730
Yeah. Nostra is obviously like a superpower

83
00:07:48.110 --> 00:07:50.830
protocol. Right? We we all know that. We all love it.

84
00:07:51.470 --> 00:07:54.450
But the obvious downside of Nostra was the privacy of of messaging.

85
00:07:55.145 --> 00:07:58.044
The original NIP four was badly hacked together,

86
00:07:58.585 --> 00:08:02.604
didn't protect any metadata, actually leaked private key material in theory.

87
00:08:03.145 --> 00:08:07.645
So it's just really bad standards. Don't roll your own crypto is is the main learning of that.

88
00:08:08.590 --> 00:08:24.575
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

89
00:08:25.035 --> 00:08:29.535
is leaked to to anyone, basically, and and that's that's simply not acceptable. Right?

90
00:08:30.155 --> 00:08:32.335
And so fast forward, now we have MLS.

91
00:08:32.715 --> 00:08:53.205
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,

92
00:08:53.985 --> 00:08:55.205
to to the messaging.

93
00:08:56.705 --> 00:08:57.445
Love it.

94
00:08:58.305 --> 00:09:02.225
So first of all, huge shout out to Xfrog who zapped us 21,000

95
00:09:02.225 --> 00:09:06.545
sats in the live chat. He said, let's fucking go. We have JCB zapped eight

96
00:09:07.370 --> 00:09:08.250
8,800

97
00:09:08.250 --> 00:09:14.910
zaps. We have Sawzelle zapped five 5,500 zaps. Thank you, guys. Thank you, guys, for supporting the show. It means a lot.

98
00:09:16.009 --> 00:09:19.389
I hope you like my new mic. Your zaps help pay for it.

99
00:09:19.690 --> 00:09:21.149
The rest came out of my pocket.

100
00:09:23.925 --> 00:09:25.285
So first of all,

101
00:09:25.925 --> 00:09:31.285
we have when we when we first when we first started talking about this, we were talking about,

102
00:09:31.845 --> 00:09:34.185
MLS being signals protocol.

103
00:09:35.285 --> 00:09:46.320
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

104
00:09:46.700 --> 00:09:52.000
versus MLS? And and what are the trade offs there? Why'd you go with MLS instead of signal protocol?

105
00:09:52.645 --> 00:09:56.265
Yeah. So this is actually kind of a I mean, it's it's a fun, technical,

106
00:09:57.045 --> 00:10:07.065
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,

107
00:10:08.120 --> 00:10:12.060
protocol for doing kind of a ratcheting system of,

108
00:10:12.840 --> 00:10:21.340
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.

109
00:10:21.885 --> 00:10:30.865
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

110
00:10:31.645 --> 00:10:52.945
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,

111
00:10:53.265 --> 00:10:58.245
and why so many of these big apps, you know, ended up licensing the signal protocol for what they were using.

112
00:10:59.105 --> 00:11:10.720
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,

113
00:11:11.100 --> 00:11:12.240
you're basically encrypting

114
00:11:12.620 --> 00:11:14.400
each time to every single participant.

115
00:11:14.860 --> 00:11:19.755
So it's, you know, basically, it scales So when I'm in a when I'm in a signal group,

116
00:11:20.295 --> 00:11:21.115
it's really

117
00:11:21.654 --> 00:11:34.250
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,

118
00:11:34.709 --> 00:11:54.935
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.

119
00:11:55.315 --> 00:11:58.695
And and so signal never really handled multi device support natively.

120
00:11:59.710 --> 00:12:01.730
Both multi device and groups

121
00:12:02.030 --> 00:12:05.730
were bolted on top after signal was created with a bunch of extensions.

122
00:12:06.190 --> 00:12:09.250
Yeah. So if so if I'm using signal desktop

123
00:12:10.590 --> 00:12:13.730
if if I'm in a a 100 person group on signal

124
00:12:14.045 --> 00:12:16.145
and we're all using both signal desktop

125
00:12:16.605 --> 00:12:18.065
and signal mobile,

126
00:12:18.445 --> 00:12:21.185
every time I send a message, I'm really sending 200 messages

127
00:12:21.725 --> 00:12:29.115
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.

128
00:12:29.470 --> 00:12:46.305
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.

129
00:12:47.725 --> 00:12:58.650
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,

130
00:12:59.530 --> 00:13:06.190
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,

131
00:13:06.810 --> 00:13:20.955
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.

132
00:13:22.215 --> 00:13:46.245
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.

133
00:13:47.345 --> 00:13:50.884
And that also gives you a much better than linear,

134
00:13:52.225 --> 00:14:05.490
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.

135
00:14:06.445 --> 00:14:07.905
So that's a gross oversimplification,

136
00:14:08.365 --> 00:14:17.665
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.

137
00:14:17.965 --> 00:14:20.065
So it's a more efficient and costly

138
00:14:21.550 --> 00:14:35.730
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,

139
00:14:36.045 --> 00:14:41.985
we only need to encrypt a message once and upload this message once because everyone knows the decryption key.

140
00:14:42.365 --> 00:14:56.790
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.

141
00:14:57.170 --> 00:14:59.510
It's efficient way to to get

142
00:15:00.210 --> 00:15:04.390
everyone on a new key without having to send a new message to everyone specifically.

143
00:15:06.175 --> 00:15:11.875
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.

144
00:15:12.255 --> 00:15:25.370
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.

145
00:15:25.830 --> 00:15:36.725
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.

146
00:15:37.425 --> 00:15:48.000
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.

147
00:15:49.020 --> 00:15:59.370
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.

148
00:15:59.735 --> 00:16:09.115
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

149
00:16:09.495 --> 00:16:11.915
for signing, encrypting, verifying. Right?

150
00:16:12.660 --> 00:16:17.080
But then your master key signs those sub keys. They're not deterministic,

151
00:16:17.940 --> 00:16:25.080
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,

152
00:16:25.475 --> 00:16:29.795
which are MLS keys. They're not even snore keys. They're ED25519

153
00:16:29.795 --> 00:16:34.055
or something keys. I mean, they could be snore keys in the future, but they aren't right now. Yeah.

154
00:16:34.995 --> 00:16:35.495
Yeah.

155
00:16:36.915 --> 00:16:44.209
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.

156
00:16:44.510 --> 00:16:52.130
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.

157
00:16:52.510 --> 00:16:53.410
Okay. So,

158
00:16:54.885 --> 00:16:58.185
it to me, it seems from your overview, it seems like

159
00:16:58.805 --> 00:17:02.425
a like a direct improvement over the signal protocol. Is there any

160
00:17:03.045 --> 00:17:11.490
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?

161
00:17:12.190 --> 00:17:34.195
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.

162
00:17:34.735 --> 00:17:37.075
You know, I I don't think it's compromised in any way.

163
00:17:37.559 --> 00:17:39.179
The signal protocol has

164
00:17:39.799 --> 00:17:44.779
similar concerns, but Exactly. Anyway. Exactly. I mean, I mean, I like to put it to MLS.

165
00:17:45.240 --> 00:17:50.700
Yeah. Go ahead. For MLS, we actually have security proofs. Right? There is mathematical proofs at least for parts of the spec,

166
00:17:51.095 --> 00:17:55.515
that they are solid. And then, of course, it's open source. It's been in in progress since 2017.

167
00:17:55.895 --> 00:18:00.155
So a lot of people had eyes on it. I think the biggest downside to it is is complexity.

168
00:18:00.615 --> 00:18:04.795
Like, the signal paper already was damn complex, and that was only 60 pages.

169
00:18:05.420 --> 00:18:11.440
MLS is like a 170 pages. Just just a spec, and then there's another spec of, like, 80 pages for the architecture.

170
00:18:11.820 --> 00:18:16.720
And then we have extensions building on top of that. So the the the complexity is

171
00:18:17.115 --> 00:18:17.835
mind numbing.

172
00:18:18.235 --> 00:18:25.375
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,

173
00:18:26.075 --> 00:18:27.055
Rust library.

174
00:18:28.315 --> 00:18:37.500
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.

175
00:18:38.120 --> 00:18:39.740
Got it. Got it. For sure.

176
00:18:40.840 --> 00:18:41.740
So, I mean,

177
00:18:44.120 --> 00:18:44.620
I,

178
00:18:45.335 --> 00:18:52.055
so the way the way I, like, think so I love signal. I rely on signal. I use it for pretty much 99%

179
00:18:52.055 --> 00:18:54.635
of my comms, whether that's personal or work comms.

180
00:18:56.055 --> 00:19:00.315
It's one of those pieces of software that I just, like, absolutely rely on.

181
00:19:01.780 --> 00:19:14.120
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

182
00:19:14.580 --> 00:19:15.960
their threat model isn't,

183
00:19:17.155 --> 00:19:21.815
the US government or the NSA. Like, if the NSA or the US government wanted to take them down,

184
00:19:22.435 --> 00:19:28.855
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

185
00:19:29.500 --> 00:19:33.360
is it it's trying to solve the same problem as signal,

186
00:19:34.140 --> 00:19:37.280
but it's doing it in a way that is way more resistant

187
00:19:37.980 --> 00:19:40.559
to denial of service attacks, to censorship.

188
00:19:42.505 --> 00:19:47.405
Let's just I mean, I more or less, I think the security guarantees are probably

189
00:19:48.025 --> 00:20:02.620
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,

190
00:20:03.320 --> 00:20:11.500
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.

191
00:20:12.040 --> 00:20:21.414
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.

192
00:20:21.715 --> 00:20:33.760
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

193
00:20:34.060 --> 00:20:35.280
point that, like,

194
00:20:35.580 --> 00:20:48.215
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,

195
00:20:48.675 --> 00:20:52.135
I see a question from BGC Pens asking about metadata leakage.

196
00:20:53.315 --> 00:21:05.870
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,

197
00:21:06.270 --> 00:21:07.810
okay. How do we get around this?

198
00:21:08.990 --> 00:21:09.490
So,

199
00:21:09.790 --> 00:21:11.570
basically, none is the answer.

200
00:21:12.030 --> 00:21:13.155
And what

201
00:21:13.795 --> 00:21:20.215
the reason that we can say that and the reason that that works is what happens when you actually publish to a relay.

202
00:21:20.755 --> 00:21:28.430
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

203
00:21:28.890 --> 00:21:29.950
I send a message,

204
00:21:30.490 --> 00:21:35.710
I am taking the message, which is actually just an unsigned Noster event that we just put into

205
00:21:36.090 --> 00:21:37.630
the payload of an MLS,

206
00:21:38.010 --> 00:21:48.605
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.

207
00:21:49.065 --> 00:21:56.720
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,

208
00:21:57.100 --> 00:22:08.560
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.

209
00:22:08.925 --> 00:22:14.225
But it's an encrypted thing by MLS, but then we encrypt it again with NIP 44 encryption

210
00:22:14.765 --> 00:22:20.545
using a key that comes out of the MLS tree structure. So we don't use the two parties,

211
00:22:21.440 --> 00:22:30.420
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.

212
00:22:30.800 --> 00:22:45.245
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,

213
00:22:45.705 --> 00:23:00.880
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.

214
00:23:01.340 --> 00:23:05.440
And the only tag that's on it is an h tag, which is a group ID,

215
00:23:06.140 --> 00:23:06.945
for the group.

216
00:23:07.264 --> 00:23:24.440
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

217
00:23:24.900 --> 00:23:30.360
can see is relative amount of activity in the group. They don't know how many people are in it. They don't know,

218
00:23:31.059 --> 00:23:36.385
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.

219
00:23:37.565 --> 00:23:44.065
Yeah. So I'm falling down basically to the the underlying Nostred downsides of it's a WebSocket and clear net.

220
00:23:44.525 --> 00:23:46.784
And and so that means there's IP leakage.

221
00:23:47.960 --> 00:23:51.100
We can solve that with VPN, Tor, mix nets.

222
00:23:51.800 --> 00:23:58.780
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

223
00:23:59.320 --> 00:24:02.300
identity management for for multiple WebSocket calls.

224
00:24:03.315 --> 00:24:15.495
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.

225
00:24:16.400 --> 00:24:18.340
But with a proper client implementation,

226
00:24:19.440 --> 00:24:22.419
you know, you have one Tor identity or one Mixnet path,

227
00:24:23.200 --> 00:24:25.460
to one WebSocket with one group ID.

228
00:24:26.480 --> 00:24:30.980
That might not scale for for many hundreds or thousands of groups in a client, but

229
00:24:31.679 --> 00:24:37.355
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.

230
00:24:38.054 --> 00:24:57.740
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

231
00:24:58.200 --> 00:25:05.015
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.

232
00:25:05.554 --> 00:25:13.255
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.

233
00:25:14.030 --> 00:25:21.730
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.

234
00:25:22.270 --> 00:25:23.409
So right now,

235
00:25:25.795 --> 00:25:28.775
it's up to the user to protect their IP address.

236
00:25:29.155 --> 00:25:34.355
It's just clear not hitting. There's no real precautions happening. And my understanding is you guys

237
00:25:34.835 --> 00:25:43.929
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.

238
00:25:45.190 --> 00:25:52.570
Has fixed relays that are chosen, I believe. What are those relays, and why did you go with fixed relays instead of having people

239
00:25:53.495 --> 00:25:57.415
choose their relays? So it's not really fixed. What we try to use,

240
00:25:57.735 --> 00:26:04.555
outbox model as much as possible. So what we do is we've got, you know, couple of relays, primal damas and,

241
00:26:06.055 --> 00:26:06.855
nas.lowell,

242
00:26:06.855 --> 00:26:07.435
I think.

243
00:26:07.930 --> 00:26:10.430
And then we use purple pages as just a discovery relay.

244
00:26:10.810 --> 00:26:12.270
And we use those,

245
00:26:13.130 --> 00:26:16.030
principally just out of simplicity to make sure that we,

246
00:26:16.730 --> 00:26:27.215
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.

247
00:26:28.795 --> 00:26:34.175
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.

248
00:26:35.115 --> 00:26:42.950
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.

249
00:26:43.650 --> 00:26:44.309
And then

250
00:26:44.690 --> 00:26:45.590
when you send

251
00:26:45.970 --> 00:26:47.990
messages to for a group,

252
00:26:48.370 --> 00:26:55.184
every group specifies in its creation which relays they wanna use. So, again, we default those right now to those same three relays.

253
00:26:56.044 --> 00:27:09.530
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,

254
00:27:10.230 --> 00:27:12.970
you know, I've worked in a in a

255
00:27:13.430 --> 00:27:15.690
in a volunteer capacity with HRF,

256
00:27:16.070 --> 00:27:18.885
Human Rights Foundation for probably, like, seven years now,

257
00:27:19.605 --> 00:27:22.185
working with activists. And activists specifically

258
00:27:23.205 --> 00:27:23.365
seem

259
00:27:24.805 --> 00:27:25.945
specifically, activists

260
00:27:26.405 --> 00:27:27.625
that are relatively

261
00:27:28.165 --> 00:27:29.945
incentive aligned with the US government

262
00:27:30.725 --> 00:27:39.179
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.

263
00:27:40.039 --> 00:27:42.700
And so you can see a similar setup here

264
00:27:43.159 --> 00:27:51.715
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

265
00:27:52.894 --> 00:27:53.394
the

266
00:27:53.774 --> 00:27:54.274
the

267
00:27:55.134 --> 00:28:00.034
the easy low level way of handling this kind of IP linkage is choosing your

268
00:28:00.335 --> 00:28:04.355
relays accordingly in terms of who you wanna actually leak that information to.

269
00:28:04.759 --> 00:28:09.980
Exactly. And, of course, running the relays yourself. Right? Even in in the Yeah. Very long term future,

270
00:28:10.360 --> 00:28:19.179
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

271
00:28:19.635 --> 00:28:22.855
on each other's phone with with NEC entropy syncing among them.

272
00:28:23.475 --> 00:28:25.335
This is all doable in the long run.

273
00:28:26.035 --> 00:28:38.420
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,

274
00:28:39.920 --> 00:28:51.355
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

275
00:28:51.735 --> 00:28:54.875
over Bluetooth or whatever it is. Like, you know, you can,

276
00:28:55.495 --> 00:28:58.375
you can upgrade that delivery mechanism in a lot of different ways,

277
00:28:58.775 --> 00:29:01.674
or have multiple different ways available for people to use.

278
00:29:02.440 --> 00:29:06.380
This is actually one one interesting thing that, about message delivery.

279
00:29:06.840 --> 00:29:07.480
Right? That,

280
00:29:07.960 --> 00:29:12.060
regular chat messages can arrive out of order, and your client will

281
00:29:12.440 --> 00:29:25.174
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,

282
00:29:25.475 --> 00:29:30.535
and those need to arrive in order. So here, we have to be a bit more careful. But with regular chat messages,

283
00:29:31.340 --> 00:29:35.040
you can easily convey them via, you know, Bluetooth a week later.

284
00:29:37.820 --> 00:29:44.685
We got two zaps from anonymous people. One, his name is unknown, and the other one is Anon. They both zapped 21,000 sats.

285
00:29:45.085 --> 00:29:47.265
Thank you for sending me Freedom Money anonymously.

286
00:29:47.645 --> 00:29:48.865
Your support is appreciated.

287
00:29:51.245 --> 00:29:51.745
I,

288
00:29:52.845 --> 00:29:55.985
so to me, the coolest okay. So first of all,

289
00:29:58.045 --> 00:29:59.985
I love that it's, you know, an open

290
00:30:00.929 --> 00:30:01.830
open source,

291
00:30:02.210 --> 00:30:03.029
open project.

292
00:30:04.130 --> 00:30:09.269
There's probably gonna be many different implementations, different apps that are, like, handling this in different ways.

293
00:30:09.570 --> 00:30:15.510
And so we can have different choices in terms of trade off balances and whatnot. We can have the max approach that's, like,

294
00:30:16.515 --> 00:30:17.335
hyper hardcore

295
00:30:17.715 --> 00:30:23.175
and and very aggressive and hard to use. And then, hopefully, we'll have, like, very easy to use,

296
00:30:23.795 --> 00:30:24.455
you know,

297
00:30:25.315 --> 00:30:31.020
options. I mean, to me, the best part about signal is that like, my my 90 year old grandma uses signal

298
00:30:36.860 --> 00:30:39.680
actually capable of using that. She would never be using PGP.

299
00:30:41.580 --> 00:30:42.080
I,

300
00:30:42.860 --> 00:30:44.960
so I I think white noise can actually

301
00:30:45.655 --> 00:30:46.635
can fill both

302
00:30:47.015 --> 00:30:52.395
both sides of the equation. And the hard part is how do you actually do that in, like, a UX forward way?

303
00:30:53.495 --> 00:30:55.515
But the the answer is probably

304
00:30:55.895 --> 00:30:57.195
multiple different apps

305
00:30:57.655 --> 00:31:00.875
built by different teams that are all interoperable with each other.

306
00:31:02.300 --> 00:31:07.360
Anyway, with all that said, that was very long winded and not actually where I wanted to go with this.

307
00:31:08.300 --> 00:31:13.760
Let's just get back to basics really quick. We have the white noise app right now. It's available on Android.

308
00:31:14.845 --> 00:31:19.345
It's not available on iPhone yet. I believe you guys are waiting for the test light to be approved.

309
00:31:19.725 --> 00:31:23.164
People click the test light button on the website, whitenoise.chat,

310
00:31:23.164 --> 00:31:25.825
and it says it's full. It's not actually full yet.

311
00:31:26.125 --> 00:31:28.465
No. It's just not approved yet. Right.

312
00:31:29.190 --> 00:31:32.169
Now the coolest part about White Noise to me

313
00:31:34.309 --> 00:31:35.850
is that I can

314
00:31:36.630 --> 00:31:40.250
take my Nostril identity, my own my already established

315
00:31:41.965 --> 00:31:43.505
mature Nostra identity

316
00:31:43.885 --> 00:31:48.385
that has a huge social graph and plug it into this thing and have all my friends there. Right?

317
00:31:49.085 --> 00:31:49.585
Right.

318
00:31:50.205 --> 00:31:58.620
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.

319
00:31:59.160 --> 00:31:59.660
Apparently,

320
00:32:00.840 --> 00:32:07.660
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.

321
00:32:09.245 --> 00:32:16.784
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.

322
00:32:17.245 --> 00:32:22.465
You're fine. The the NSEC is stored in the secure element on your phone. Like, we're using the actual hardware,

323
00:32:23.005 --> 00:32:23.505
security

324
00:32:24.059 --> 00:32:28.159
thing, feature in in the, like, operating system level. So you're fine.

325
00:32:28.460 --> 00:32:31.340
That said, Amber is definitely, like, top of the,

326
00:32:32.059 --> 00:32:36.799
top of the request list. So it's, like, definitely gonna come soon, but it's it's

327
00:32:37.125 --> 00:32:41.785
nontrivial to set up for the way the app is set up because most of the code runs in Rust,

328
00:32:42.485 --> 00:32:47.625
kinda one layer down. So it's we're kinda jumping a couple of fences to do to make Amber work.

329
00:32:48.325 --> 00:32:53.880
I like but there's actually one cool thing of of we're pushing the envelope here, and and the Ross Noster library,

330
00:32:54.500 --> 00:33:01.560
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.

331
00:33:02.260 --> 00:33:07.775
So we're we're moving the the ecosystem forward. It just takes a while. There's on iOS, by the way, there's,

332
00:33:08.395 --> 00:33:09.935
the name of the Keysigner app.

333
00:33:10.395 --> 00:33:13.375
Aegis. So, hopefully, we got this word out at the same time.

334
00:33:13.755 --> 00:33:14.255
Yeah.

335
00:33:16.235 --> 00:33:18.095
Yeah. I mean, I look. I I

336
00:33:19.580 --> 00:33:36.565
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,

337
00:33:37.345 --> 00:33:40.005
you know, whatever. YOLO. Just make it happen.

338
00:33:40.705 --> 00:33:49.045
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

339
00:33:49.840 --> 00:33:52.420
that Notstar identity. So at any point in the future,

340
00:33:53.520 --> 00:33:56.500
that social graph can then follow you if you wanna use

341
00:33:56.960 --> 00:34:00.740
an Instagram competitor or Twitter competitor or one of the other apps.

342
00:34:01.200 --> 00:34:05.475
It could be one of the biggest adoption drivers. I mean, if you guys are successful

343
00:34:05.935 --> 00:34:08.195
to new new users on Nostr,

344
00:34:08.495 --> 00:34:10.035
and maybe they start with

345
00:34:10.655 --> 00:34:17.635
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.

346
00:34:18.260 --> 00:34:35.805
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.

347
00:34:36.184 --> 00:34:39.325
We kind of toned that down by now so that we actually have a,

348
00:34:39.704 --> 00:34:48.360
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,

349
00:34:48.820 --> 00:34:54.520
to make it as easy, you know, instant in the background by default to give you a new identity.

350
00:34:54.980 --> 00:35:12.734
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.

351
00:35:13.675 --> 00:35:15.135
So in any case You gotta

352
00:35:15.460 --> 00:35:19.800
you gotta, you know, you gotta just play the game. Just it's a nostril login.

353
00:35:20.420 --> 00:35:22.600
Yeah. But we'll give them bacon bacon bacon.

354
00:35:23.060 --> 00:35:26.760
Yeah. You gotta you gotta talk their their language. I mean,

355
00:35:28.845 --> 00:35:30.785
like, people give primal shit,

356
00:35:31.565 --> 00:35:32.385
all the time,

357
00:35:33.484 --> 00:35:35.425
but primal has apps

358
00:35:35.805 --> 00:35:36.545
on iOS

359
00:35:36.925 --> 00:35:46.180
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

360
00:35:46.480 --> 00:35:50.660
that you can also get from our other multi platform apps, and it's not just iPhone.

361
00:35:52.480 --> 00:35:57.060
And, like, that was they're they weren't gonna understand zaps, but they can understand

362
00:35:57.845 --> 00:36:01.305
in app credits and master logins, and you kinda have to,

363
00:36:02.404 --> 00:36:06.265
but I will say that this project does ride or die on multiplatform.

364
00:36:06.645 --> 00:36:20.180
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.

365
00:36:21.280 --> 00:36:21.780
And

366
00:36:22.205 --> 00:36:24.785
building for multi platform is, time consuming.

367
00:36:25.245 --> 00:36:25.745
Yeah.

368
00:36:27.005 --> 00:36:29.425
So then my next question for you is,

369
00:36:33.005 --> 00:36:35.425
Jack Dorsey got a lot of

370
00:36:36.330 --> 00:36:39.070
press recently for his VibeCoded project.

371
00:36:40.090 --> 00:36:44.690
I I mean, it's gotta have been VibeCoded. He's into VibeCoding right now. VidChat 100%.

372
00:36:45.050 --> 00:36:46.750
Which is Bluetooth mesh.

373
00:36:47.690 --> 00:36:48.750
I mean, to me,

374
00:36:49.345 --> 00:36:52.245
it's cool. You know, I played around with it at school.

375
00:36:52.865 --> 00:36:58.805
I don't really live in, like, a high population density area. So, like, I basically just tested it with myself.

376
00:37:00.945 --> 00:37:07.829
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.

377
00:37:08.529 --> 00:37:12.230
But the dream the dream is a signal type app

378
00:37:13.170 --> 00:37:14.069
that eventually

379
00:37:15.215 --> 00:37:32.720
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.

380
00:37:33.579 --> 00:37:39.680
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.

381
00:37:39.980 --> 00:37:45.205
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

382
00:37:45.505 --> 00:37:46.565
Bluetooth low energy,

383
00:37:47.185 --> 00:37:54.805
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.

384
00:37:55.905 --> 00:38:03.310
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.

385
00:38:03.690 --> 00:38:09.550
How events get into that relay is is totally out of spec even for white noise. And so you could have a third party

386
00:38:09.930 --> 00:38:12.830
I forgot Koala was writing working on something. Sameez.

387
00:38:13.130 --> 00:38:14.895
Anyhow, like, exactly.

388
00:38:15.515 --> 00:38:20.015
You have that. That fills your local relay. White noise pulls from the local relay.

389
00:38:20.395 --> 00:38:22.015
It it works already today.

390
00:38:22.315 --> 00:38:28.815
And then there's a guy as well. Liberty Liberty Farmer has hamster, which is Nasr Vence Overham radio.

391
00:38:30.180 --> 00:38:37.080
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.

392
00:38:37.780 --> 00:38:38.599
Very slow.

393
00:38:40.660 --> 00:38:43.160
And then my other question for you was

394
00:38:44.275 --> 00:38:46.215
something I completely forgot now.

395
00:38:48.035 --> 00:38:49.015
I don't know.

396
00:38:51.395 --> 00:38:55.895
Maybe to highlight one one of the cool features, I think, is is, that it's an

397
00:38:56.210 --> 00:38:59.990
a standard and a library. Right? Maybe that's the big downside of Cygnus.

398
00:39:00.450 --> 00:39:02.549
It's not it's it's not really,

399
00:39:03.329 --> 00:39:04.069
a specification.

400
00:39:04.769 --> 00:39:12.515
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.

401
00:39:12.895 --> 00:39:15.555
So it's very difficult to reimplement it from scratch.

402
00:39:16.095 --> 00:39:26.520
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.

403
00:39:26.980 --> 00:39:28.920
They have test vectors for everything.

404
00:39:29.619 --> 00:39:35.799
So it it is much more doable to do an implementation from scratch. Not easy at all, but doable.

405
00:39:36.740 --> 00:39:40.280
And and then on top of that with our Nostr side of things,

406
00:39:41.465 --> 00:39:53.965
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,

407
00:39:54.450 --> 00:40:00.150
that does whatever you want it to do. And then and I'm really looking forward to have a client, for example,

408
00:40:00.450 --> 00:40:02.210
managed specifically for managing,

409
00:40:02.530 --> 00:40:03.030
chatbots,

410
00:40:03.650 --> 00:40:06.525
that that are still interoperable with with all the others.

411
00:40:07.484 --> 00:40:09.265
But, you know, these these types

412
00:40:09.805 --> 00:40:11.984
of niche products, niche ideas,

413
00:40:12.684 --> 00:40:16.464
are are doable. So we get so much superpower just from Nostra. It's it's unbelievable.

414
00:40:17.164 --> 00:40:21.265
I love that this is the conversation while we're just pumping a new all time highs in the background.

415
00:40:22.820 --> 00:40:23.780
Look at us. I,

416
00:40:25.700 --> 00:40:29.240
so I'm time high in in gold, by the way. Yeah. Yeah. Whatever. Oh.

417
00:40:30.820 --> 00:40:36.520
So it's a it's, a it's a narrative thing more than anything else. It's it's a vibes thing.

418
00:40:37.725 --> 00:40:38.225
I,

419
00:40:40.285 --> 00:40:41.425
that was my question.

420
00:40:41.725 --> 00:40:46.385
Yeah. Go ahead. My my question was was, like, how hard is it for

421
00:40:47.005 --> 00:40:52.945
Amethyst to add this or Primal to add this functionality? I mean, that seems like the holy grail. The holy grail is someone

422
00:40:53.270 --> 00:40:55.210
signs up to primal to ship post,

423
00:40:55.750 --> 00:40:57.609
and they have signal level

424
00:40:57.910 --> 00:40:58.970
message capability.

425
00:40:59.589 --> 00:41:03.510
So that's the other thing that took a long time. Multiplatform, obviously, was a big deal, but,

426
00:41:04.150 --> 00:41:05.690
really, I was simultaneously

427
00:41:05.990 --> 00:41:06.970
building libraries

428
00:41:07.745 --> 00:41:10.805
for how the noster part of the MLS stuff works,

429
00:41:11.665 --> 00:41:13.045
so that we would have,

430
00:41:13.665 --> 00:41:18.485
a consistent way for clients to implement this. Because, you know, when you're building interoperability

431
00:41:18.945 --> 00:41:36.190
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.

432
00:41:37.105 --> 00:41:46.965
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,

433
00:41:47.825 --> 00:41:52.170
implementations of both the actual underlying MLS protocol, but also,

434
00:41:52.550 --> 00:41:56.970
you know, the glue protocol that I've written in the NIP, NIPEE,

435
00:41:57.830 --> 00:42:00.570
that talks about how to apply MLS to Noster.

436
00:42:01.430 --> 00:42:07.925
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,

437
00:42:08.365 --> 00:42:10.445
I think pretty nice at this point.

438
00:42:11.245 --> 00:42:14.605
We are gonna help collaborate with somebody who's working on a,

439
00:42:15.085 --> 00:42:15.585
TypeScript

440
00:42:16.290 --> 00:42:17.110
MLS implementation,

441
00:42:17.570 --> 00:42:21.510
and then we'll build the kind of glue library that goes in between on that one as well.

442
00:42:22.370 --> 00:42:32.505
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

443
00:42:32.805 --> 00:42:34.665
across every client that wants it.

444
00:42:35.685 --> 00:42:37.045
Yeah. Yeah. And there there's

445
00:42:37.605 --> 00:42:40.265
again, right, we're piggybacking on on the open MLS

446
00:42:40.725 --> 00:42:41.225
ecosystem.

447
00:42:42.170 --> 00:42:51.710
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,

448
00:42:52.090 --> 00:42:58.425
two Rust libraries. Right? So because this is an Internet standard, we don't have to do all of the work, which is great.

449
00:42:59.045 --> 00:43:01.625
And, then since the the flagship

450
00:43:01.925 --> 00:43:07.865
client libraries are are in Rust, we can actually do rather easy language bindings into almost anything.

451
00:43:08.849 --> 00:43:21.685
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

452
00:43:22.065 --> 00:43:24.005
making quite good progress of getting

453
00:43:24.785 --> 00:43:25.685
all of the

454
00:43:25.985 --> 00:43:32.005
major clients onboarded to this. And just to do a little bit of public pressure so that they actually follow-up on the promises,

455
00:43:33.145 --> 00:43:35.365
we we have, like, you know, Primal, Amethyst,

456
00:43:35.940 --> 00:43:36.440
Oracle,

457
00:43:36.980 --> 00:43:37.480
DAMOS,

458
00:43:38.579 --> 00:43:40.280
Shopster, Plebeian Markets.

459
00:43:41.220 --> 00:43:43.560
KeyChat is already working on MLS as well.

460
00:43:44.660 --> 00:43:45.160
Iris,

461
00:43:46.740 --> 00:43:50.680
yeah, like, well, really, a lot of different apps that that

462
00:43:50.994 --> 00:43:56.135
are seriously considering to to integrate MLS. Now, obviously, it's a lot of work, and it might not be priority.

463
00:43:56.915 --> 00:44:03.655
But the the will is there, and, hopefully, we can have a a proper industry standard to fix DMs

464
00:44:04.160 --> 00:44:09.140
so that we keep the interoperable benefit. You know, I I would love to have something as interoperable as NIP four,

465
00:44:09.520 --> 00:44:25.755
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,

466
00:44:26.215 --> 00:44:32.635
move the user base over to what was very obviously a stop gap when the goal was ultimately

467
00:44:33.620 --> 00:44:39.720
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.

468
00:44:40.100 --> 00:44:40.600
And

469
00:44:40.980 --> 00:44:42.920
then it's just a question of

470
00:44:43.540 --> 00:44:45.240
of priorities and and

471
00:44:45.540 --> 00:44:46.040
implementation

472
00:44:46.740 --> 00:44:47.240
timeline.

473
00:44:48.670 --> 00:44:49.170
But,

474
00:44:49.755 --> 00:44:56.654
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,

475
00:44:57.595 --> 00:45:03.135
in a secure way, in a responsible way? And I will say to the earlier point supervisor's doing.

476
00:45:03.910 --> 00:45:07.530
Yeah. To the earlier point on the IP address leakage,

477
00:45:08.390 --> 00:45:09.290
right, which

478
00:45:10.150 --> 00:45:13.290
we actually we handle pretty well at Primal,

479
00:45:14.550 --> 00:45:18.970
in the Grok Brain way and the low IQ way, the simple way, which is

480
00:45:19.275 --> 00:45:29.454
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

481
00:45:29.755 --> 00:45:39.000
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.

482
00:45:40.099 --> 00:45:44.599
And it's optional in that regard, and anyone can run a caching server.

483
00:45:45.484 --> 00:46:01.440
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.

484
00:46:02.380 --> 00:46:14.960
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,

485
00:46:15.855 --> 00:46:18.675
is is just is is really bad for privacy.

486
00:46:19.215 --> 00:46:22.115
Keyd, for example, as well. Like, everyone in the group knows your IP.

487
00:46:22.895 --> 00:46:27.715
That's scary. I mean, the VPN fixes this. Yes? It's just the engine. And you can do inbuilt stuff.

488
00:46:28.059 --> 00:46:30.720
Yeah. It's literally just a trade off of the Internet.

489
00:46:31.020 --> 00:46:32.640
This is the Internet. Yes.

490
00:46:34.299 --> 00:46:41.119
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

491
00:46:41.660 --> 00:46:42.559
see it happening.

492
00:46:43.075 --> 00:46:55.655
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

493
00:46:55.955 --> 00:47:03.590
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

494
00:47:04.130 --> 00:47:08.470
threw their dick on the table, and they were like, we're gonna deprioritize anything that's not HTTPS.

495
00:47:09.250 --> 00:47:09.750
Right.

496
00:47:10.690 --> 00:47:12.450
Because Google's fine with being

497
00:47:13.325 --> 00:47:18.305
with complying with the US government, but they're not fine when the US government does it to them without

498
00:47:18.684 --> 00:47:19.744
asking for something.

499
00:47:21.085 --> 00:47:23.664
So they've really pushed it pushed it forward.

500
00:47:26.285 --> 00:47:27.505
Okay. I mean, I,

501
00:47:29.970 --> 00:47:32.870
basic things. I mean, how you how you thinking about

502
00:47:33.330 --> 00:47:37.270
road map priorities? You know, I I signed in. I couldn't

503
00:47:38.210 --> 00:47:40.230
I I couldn't search didn't work.

504
00:47:41.330 --> 00:47:44.390
Messages were failing. Like, where are we going?

505
00:47:44.825 --> 00:47:56.125
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.

506
00:47:56.985 --> 00:48:02.119
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.

507
00:48:03.140 --> 00:48:12.440
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,

508
00:48:12.980 --> 00:48:20.735
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,

509
00:48:21.275 --> 00:48:25.775
but we need to fair all that stuff out. We need to make sure that we get the underlying

510
00:48:26.395 --> 00:48:28.735
protocol stuff really hammered down.

511
00:48:29.640 --> 00:48:30.380
You know,

512
00:48:30.680 --> 00:48:31.980
so far, it's been used,

513
00:48:32.599 --> 00:48:37.819
you know, really in very small groups or, you know, small numbers of people. So we just need lots more usage.

514
00:48:39.319 --> 00:48:49.285
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,

515
00:48:50.225 --> 00:48:56.005
you know, some more controlling of, like, how stuff happens in groups, you know, how you evolve a group forward over time.

516
00:48:57.200 --> 00:49:05.380
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,

517
00:49:06.080 --> 00:49:10.420
and start to add some of those privacy features like tour circuits and, you know, things like that.

518
00:49:11.625 --> 00:49:17.885
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

519
00:49:18.425 --> 00:49:37.099
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.

520
00:49:37.985 --> 00:49:40.965
That's a bigger problem than people give it credit for

521
00:49:41.265 --> 00:49:43.365
that signal solved really well.

522
00:49:44.785 --> 00:49:49.765
The thought in the back of your head of was this message delivered or not? Even if it's 98%,

523
00:49:50.190 --> 00:49:56.369
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,

524
00:49:56.670 --> 00:49:58.930
makes it a way less useful communication

525
00:49:59.310 --> 00:50:00.530
media. 100%

526
00:50:00.589 --> 00:50:02.210
accuracy. With a simple x

527
00:50:02.675 --> 00:50:09.494
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.

528
00:50:10.195 --> 00:50:14.695
But, like, when you're using some of these other things, you don't know. Like, are did they actually receive it or not?

529
00:50:15.270 --> 00:50:24.410
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

530
00:50:24.950 --> 00:50:54.390
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,

531
00:50:55.010 --> 00:50:57.430
like a firewall, you know, contained little box.

532
00:50:57.825 --> 00:51:03.845
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,

533
00:51:05.105 --> 00:51:07.285
and they'll just be not sure events, which is great.

534
00:51:08.224 --> 00:51:11.940
This is one of my original feature requests. So I'm I'm working on this.

535
00:51:12.500 --> 00:51:13.880
I want to post

536
00:51:14.180 --> 00:51:16.680
to all my follower, like, the people whom I follow,

537
00:51:17.540 --> 00:51:26.200
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.

538
00:51:27.224 --> 00:51:30.444
But, that's that is actually possible with with MLS.

539
00:51:31.224 --> 00:51:33.964
You you can encrypt something to a dynamic

540
00:51:34.345 --> 00:51:36.525
list of followers or or or members

541
00:51:36.825 --> 00:51:37.805
into the millions.

542
00:51:38.184 --> 00:51:45.680
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

543
00:51:46.240 --> 00:51:47.700
sorry, to to MLS published

544
00:51:48.000 --> 00:51:48.500
MLS,

545
00:51:49.280 --> 00:51:52.660
Light? No. I I forget the name of it. Yeah. It was called. Yeah.

546
00:51:53.920 --> 00:51:54.160
They

547
00:51:54.800 --> 00:51:58.325
they've designed it for to have MLS encryption for WebRTC,

548
00:51:59.345 --> 00:51:59.845
calls.

549
00:52:00.145 --> 00:52:04.325
Right? So in in the webinar setting where you want to have an encrypted webinar

550
00:52:04.785 --> 00:52:10.950
where the the keys for that, you know, webinar, the entire session gets done via MLS, the initial handshake,

551
00:52:11.890 --> 00:52:16.550
but you want someone to be able to click a button and within a couple milliseconds,

552
00:52:17.170 --> 00:52:21.030
join the webinar. And with the standard MLS, that's not really possible,

553
00:52:22.214 --> 00:52:25.835
because it just takes a little bit time to build your own local

554
00:52:26.535 --> 00:52:28.875
state of the network or or that group.

555
00:52:29.494 --> 00:52:38.910
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.

556
00:52:39.609 --> 00:52:44.510
And that's, like, the final piece needed to to really have anything that you're doing on Master right now,

557
00:52:44.970 --> 00:52:50.085
you can do it encrypted with MLS with however many people you want, and that's just super exciting.

558
00:52:50.545 --> 00:52:51.045
Yeah.

559
00:52:53.025 --> 00:52:55.685
Yeah. MLS is super cool. I mean, like, the upgradeability

560
00:52:56.065 --> 00:53:10.330
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,

561
00:53:10.869 --> 00:53:26.575
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,

562
00:53:27.035 --> 00:53:27.935
Cypress suite.

563
00:53:28.474 --> 00:53:29.615
That's awesome. Yeah.

564
00:53:30.555 --> 00:53:31.375
And I just

565
00:53:31.675 --> 00:53:32.494
wanna reiterate,

566
00:53:33.830 --> 00:53:34.890
because Max kinda

567
00:53:35.430 --> 00:53:36.650
mentioned this in passing.

568
00:53:37.030 --> 00:53:39.450
If I if I sign in

569
00:53:39.990 --> 00:53:40.730
on mobile

570
00:53:41.510 --> 00:53:42.650
with my NSEC

571
00:53:43.270 --> 00:53:44.650
and then I sign in

572
00:53:45.030 --> 00:53:48.410
on another mobile or desktop or whatever with the same NSEC,

573
00:53:49.724 --> 00:53:50.224
it's

574
00:53:51.164 --> 00:53:54.545
what happens in that situation? I mean, you say I don't get my message history.

575
00:53:55.244 --> 00:54:08.960
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.

576
00:54:10.220 --> 00:54:13.120
So the only thing that would be really weird, I think, is that

577
00:54:13.500 --> 00:54:16.240
you would look weird to yourself, more than anything.

578
00:54:16.785 --> 00:54:28.805
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.

579
00:54:30.180 --> 00:54:30.680
So

580
00:54:31.060 --> 00:54:34.920
this is mostly a UI constraint, but, yeah, is every device

581
00:54:35.220 --> 00:54:36.359
client you know, every,

582
00:54:36.819 --> 00:54:47.655
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.

583
00:54:48.435 --> 00:54:56.375
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.

584
00:54:56.680 --> 00:55:05.660
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.

585
00:55:06.920 --> 00:55:12.380
You put your NSAC into each of them or you have Amber, and that does the NSAC management. But anyhow,

586
00:55:13.315 --> 00:55:20.615
now each device creates its own key package with its unique MLS keys not derived from anything else, just purely random keys,

587
00:55:21.315 --> 00:55:23.975
and and you publish them signed with your NSAC.

588
00:55:24.355 --> 00:55:27.660
And so now we have three subkeys, so to say,

589
00:55:28.140 --> 00:55:28.640
and,

590
00:55:29.500 --> 00:55:33.440
any client will will recognize that, hey. This one user actually has three keys.

591
00:55:33.740 --> 00:55:36.160
So let's put them all together in one group.

592
00:55:37.099 --> 00:55:41.920
That's most likely how it's gonna work. One other approach would be that we have one app

593
00:55:42.365 --> 00:55:45.825
centralized on on your computer that is the MLS app,

594
00:55:46.365 --> 00:55:48.065
and that has your database.

595
00:55:48.525 --> 00:55:55.984
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.

596
00:55:56.490 --> 00:56:01.390
That's probably not the way it's gonna go, though. Because then you need your computer on all the time. Right?

597
00:56:02.410 --> 00:56:09.310
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

598
00:56:09.625 --> 00:56:20.525
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.

599
00:56:21.225 --> 00:56:25.780
Or if they've been completely off line for a really long time, like, say, you just lose your phone,

600
00:56:26.800 --> 00:56:28.180
you know, after some point,

601
00:56:28.560 --> 00:56:30.080
there's just kind of an auto,

602
00:56:30.400 --> 00:56:35.380
eviction policy where, you know, members of the group that haven't shown up for a month are just booted immediately.

603
00:56:35.994 --> 00:56:43.455
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.

604
00:56:44.555 --> 00:57:00.130
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.

605
00:57:01.630 --> 00:57:03.809
And so but it so, yeah, in practice,

606
00:57:04.269 --> 00:57:06.369
I'm I'm let's say I'm signed into primal

607
00:57:06.924 --> 00:57:08.785
Mhmm. And I'm signed into white noise,

608
00:57:10.525 --> 00:57:11.904
and you send me a message.

609
00:57:12.365 --> 00:57:13.105
I I

610
00:57:13.805 --> 00:57:21.355
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.

611
00:57:22.150 --> 00:57:23.850
So when you reply, the receiver

612
00:57:24.230 --> 00:57:29.850
under the hood sees that, hey. He's replying from Primal right now or he's replying from from White Noise right now,

613
00:57:30.390 --> 00:57:35.530
but the user wouldn't see that. It's just the the underlying app sees which key package signed in to them.

614
00:57:36.695 --> 00:57:48.875
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.

615
00:57:49.290 --> 00:57:49.950
It's unnecessary.

616
00:57:51.050 --> 00:57:51.550
Yeah.

617
00:57:52.090 --> 00:57:53.310
Okay. Next question.

618
00:57:55.690 --> 00:57:57.230
This is for Jeff specifically.

619
00:57:58.170 --> 00:57:59.070
Jeff, like,

620
00:58:00.250 --> 00:58:04.270
so, obviously, for White Noise, you've been funded by HRF and OpenSats.

621
00:58:07.825 --> 00:58:12.645
I say obviously not just because I'm part of OpenSats, but also because it says it on the website.

622
00:58:13.105 --> 00:58:14.964
Right. But three weeks ago

623
00:58:15.424 --> 00:58:17.845
or something like that. I don't know. Time

624
00:58:18.145 --> 00:58:19.285
just melds together.

625
00:58:20.430 --> 00:58:25.250
You announced participation in a project called and other stuff led by Jack Dorsey.

626
00:58:25.790 --> 00:58:28.609
It's kind of like a vibe coding, skunk works

627
00:58:29.310 --> 00:58:30.130
type of,

628
00:58:31.230 --> 00:58:38.184
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.

629
00:58:38.645 --> 00:58:43.464
But he's, his stomach is turning when you heard it when you heard it called a vibe coding skunk works.

630
00:58:44.164 --> 00:58:50.890
I mean, is that not what it is? No. No. It's not. So, yes, AOS is is a really cool project.

631
00:58:51.750 --> 00:58:53.530
I think the idea there is,

632
00:58:54.150 --> 00:59:06.935
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.

633
00:59:08.515 --> 00:59:14.135
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.

634
00:59:15.560 --> 00:59:17.900
And I think on on another kind of aspect,

635
00:59:18.680 --> 00:59:26.860
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

636
00:59:27.315 --> 00:59:31.255
it's there's no, like, equity. There's no setup like that. It's literally a donation.

637
00:59:32.195 --> 00:59:37.255
So it was you know, had to go through a five zero one c three nonprofit. It came from his start small foundation.

638
00:59:37.954 --> 00:59:38.454
And

639
00:59:39.075 --> 00:59:48.050
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.

640
00:59:49.550 --> 00:59:55.630
And our first stores, non monetized. Yeah. Non monetized, all open source. It doesn't say we can't monetize things.

641
00:59:56.175 --> 01:00:00.815
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,

642
01:00:01.215 --> 01:00:01.715
sustainable.

643
01:00:02.335 --> 01:00:02.835
But,

644
01:00:03.695 --> 01:00:05.555
certainly, it's all open source for sure.

645
01:00:06.175 --> 01:00:06.675
And

646
01:00:06.975 --> 01:00:08.835
and yeah. Like, I think, you know,

647
01:00:09.260 --> 01:00:09.760
everybody

648
01:00:10.060 --> 01:00:12.060
at at this point has understood that,

649
01:00:12.700 --> 01:00:16.940
AI has come a very long way and is kind of unlocking a lot of new,

650
01:00:17.819 --> 01:00:18.720
modes of working.

651
01:00:19.020 --> 01:00:25.445
And so the idea behind the the Chorus app, which is the thing we launched in Oslo at the Freedom Forum,

652
01:00:26.065 --> 01:00:31.925
that was Vibe coded in five days just before the Freedom Forum. Like, we all got together and hung out for a week and,

653
01:00:32.385 --> 01:00:39.040
basically just Vibe for thirteen hours a day and, you know, launched this app five days later on stage in Oslo.

654
01:00:39.500 --> 01:01:12.690
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.

655
01:01:14.375 --> 01:01:18.555
And it was a it was a really good experiment as well on, like, how do you do community style,

656
01:01:19.015 --> 01:01:26.075
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

657
01:01:26.470 --> 01:01:29.610
were there specifically in a lot of cases to try and, you know,

658
01:01:30.070 --> 01:01:32.090
raise for their for their causes and things.

659
01:01:33.350 --> 01:01:36.730
I mean, so you can see where people might get the idea that it's a,

660
01:01:37.430 --> 01:01:40.155
vibe coding skunk works, considering 100%.

661
01:01:40.235 --> 01:01:41.195
100%.

662
01:01:41.515 --> 01:01:48.975
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,

663
01:01:49.675 --> 01:01:53.295
White Noise, is, like, the exact opposite of Vibe Coating.

664
01:01:54.170 --> 01:02:01.390
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,

665
01:02:03.130 --> 01:02:07.150
for and other stuff. Like, your personal opinion on vibe coding versus

666
01:02:08.090 --> 01:02:09.150
analog coding.

667
01:02:10.545 --> 01:02:21.845
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,

668
01:02:22.839 --> 01:02:31.339
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,

669
01:02:32.599 --> 01:02:35.660
and it's something really new, like MLS is very new,

670
01:02:36.485 --> 01:02:49.380
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.

671
01:02:49.940 --> 01:02:55.720
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.

672
01:02:56.579 --> 01:03:12.525
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.

673
01:03:13.065 --> 01:03:32.030
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.

674
01:03:32.885 --> 01:03:36.185
So I think you gotta pick your tool for the job, and,

675
01:03:37.125 --> 01:03:43.464
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,

676
01:03:44.405 --> 01:03:49.670
to the right, you know, job. And so, yeah, there's there was a lot of manual coding that went into,

677
01:03:49.970 --> 01:04:04.775
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,

678
01:04:05.175 --> 01:04:06.315
was definitely handwritten.

679
01:04:08.455 --> 01:04:11.915
Yeah. That makes sense to me. I mean, would you go as far as saying that

680
01:04:13.040 --> 01:04:14.260
if you actually, like,

681
01:04:15.119 --> 01:04:20.500
get the protocol to a mature spot, get the libraries to a mature spot, people might be vibe coding

682
01:04:20.960 --> 01:04:26.660
white noise apps in the like, MLS compatible white noise apps in the future on top of whatever

683
01:04:27.444 --> 01:04:36.025
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?

684
01:04:37.045 --> 01:04:38.345
But, like, you know, I think,

685
01:04:38.885 --> 01:04:43.369
the LMS will learn it, and they will get better over time, and they will get smarter and smarter.

686
01:04:43.830 --> 01:05:03.734
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,

687
01:05:04.035 --> 01:05:05.714
and now we've written better code,

688
01:05:06.380 --> 01:05:17.440
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.

689
01:05:18.540 --> 01:05:24.095
So it's it's kinda like writing assembly code nowadays. You just don't do that, or you pick a higher language.

690
01:05:25.115 --> 01:05:27.535
But then it's also not only for the code. Like,

691
01:05:28.075 --> 01:05:35.700
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.

692
01:05:36.660 --> 01:05:37.880
I hate doing slides.

693
01:05:38.180 --> 01:05:42.119
I'm way too lazy for that. But this was a presentation that really required

694
01:05:42.420 --> 01:05:48.200
visual aid. And so what we did is we put the entire a 170 pages MLS specification,

695
01:05:48.660 --> 01:05:50.040
the entire 80 pages

696
01:05:50.475 --> 01:05:51.935
MLS architecture specification,

697
01:05:52.475 --> 01:05:53.615
the entire nip

698
01:05:54.075 --> 01:05:55.455
with our nosto wrapper,

699
01:05:56.315 --> 01:06:02.095
and I think something else. And we made a one shot prompt with goose, not even a paragraph.

700
01:06:02.840 --> 01:06:05.660
And ten minutes later, we had an HTML

701
01:06:06.360 --> 01:06:10.060
coded, presentation slides. I had a markdown file

702
01:06:10.440 --> 01:06:19.815
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.

703
01:06:20.515 --> 01:06:26.134
And we gave that to to the designer. He made it pretty in our scene. That's probably gonna be obsolete, like, or automated

704
01:06:26.434 --> 01:06:27.335
soon as well.

705
01:06:28.035 --> 01:06:34.089
And and that's it. Right? So it was it was extremely easy to to make this very technical talk,

706
01:06:34.710 --> 01:06:35.210
slides

707
01:06:35.589 --> 01:06:38.170
just by adding more context and more compute power.

708
01:06:40.710 --> 01:06:41.530
Makes sense.

709
01:06:43.225 --> 01:06:43.725
Awesome.

710
01:06:44.585 --> 01:06:47.484
Well, guys, I mean, I'm pretty I'm pretty excited,

711
01:06:47.865 --> 01:06:51.645
about what you guys have built. I'm excited to see where it goes going forward.

712
01:06:53.785 --> 01:07:00.310
I would love if we, you know, maybe, like, in six months or something, we do an update show on where we stand. Hopefully

713
01:07:00.710 --> 01:07:02.010
I mean, I imagine

714
01:07:02.550 --> 01:07:04.410
you've done a lot of the hard part

715
01:07:04.710 --> 01:07:08.330
already, and now it's a lot of iterating and shipping updates.

716
01:07:08.994 --> 01:07:11.335
So it'd be great if we could do an update episode.

717
01:07:12.515 --> 01:07:13.974
The infinite 20%.

718
01:07:16.595 --> 01:07:16.835
Do you

719
01:07:17.555 --> 01:07:24.455
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?

720
01:07:26.250 --> 01:07:32.650
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,

721
01:07:33.130 --> 01:07:48.185
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,

722
01:07:48.805 --> 01:07:49.465
you know,

723
01:07:49.845 --> 01:07:57.680
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,

724
01:07:58.620 --> 01:08:02.160
and bear with us while we, you know, crack through and get through all of everything.

725
01:08:04.300 --> 01:08:04.800
Yeah.

726
01:08:05.740 --> 01:08:10.684
Like, be active. Join us. It's it's an important mission that that must be completed.

727
01:08:11.545 --> 01:08:14.845
Secure comms are fucking essential. People die without them.

728
01:08:15.704 --> 01:08:23.005
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.

729
01:08:23.640 --> 01:08:26.940
This requires all of the hundreds or thousands of Nostra clients,

730
01:08:27.640 --> 01:08:35.100
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,

731
01:08:36.120 --> 01:08:41.235
reach out. We we really want to know what's your requirements, what's your language, what's your stack,

732
01:08:41.775 --> 01:08:43.315
and and how we can help you.

733
01:08:44.574 --> 01:08:47.395
And, of course, if you wanna join white noise coding specifically,

734
01:08:47.935 --> 01:08:51.315
well, come ahead. It's written in Rust's back end and,

735
01:08:52.400 --> 01:08:54.100
the Flutter front end start.

736
01:08:55.760 --> 01:09:06.260
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,

737
01:09:06.784 --> 01:09:09.284
calm, don't don't be too loud about it.

738
01:09:09.665 --> 01:09:13.605
But then Huang Gao from Bitcoin Magazine was like, so, yeah, I published the announcement.

739
01:09:13.985 --> 01:09:19.605
And I was like, oh, shit. Well, we're we're not yet released, by the way. But I guess we'll release soon.

740
01:09:20.610 --> 01:09:22.710
And and well, then, you know,

741
01:09:23.170 --> 01:09:27.670
shit happened, and and it kind of blew up. So, first of all, thanks for for all of the cool,

742
01:09:28.130 --> 01:09:31.030
feedback and and support and enthusiasm for the project.

743
01:09:31.730 --> 01:09:39.114
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.

744
01:09:40.295 --> 01:09:43.195
And, thanks for the warm welcome to the Nostra

745
01:09:43.495 --> 01:09:43.995
community,

746
01:09:44.455 --> 01:09:46.715
of this new project, and, yeah,

747
01:09:47.015 --> 01:09:48.395
help us make it better.

748
01:09:49.490 --> 01:09:50.230
Love it.

749
01:09:50.930 --> 01:09:52.210
Thanks guys for joining us.

750
01:09:52.930 --> 01:09:53.430
Freaks,

751
01:09:53.810 --> 01:09:55.810
it's whitenoise.chat.

752
01:09:55.810 --> 01:09:59.350
I'll put all the relevant links in the show notes, but whitenoise.chat

753
01:09:59.410 --> 01:10:04.775
if you wanna test it out. As I said earlier, they're not approved on iPhone test flight yet.

754
01:10:05.395 --> 01:10:09.815
So if you click that button, it's gonna tell you the beta is full. It is not full.

755
01:10:10.435 --> 01:10:12.215
But Android APKs are available,

756
01:10:12.515 --> 01:10:15.735
and it's also available on Zapstore, which is an awesome project,

757
01:10:16.620 --> 01:10:23.920
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.

758
01:10:24.780 --> 01:10:34.015
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.

759
01:10:34.735 --> 01:10:35.235
Bureaucracy.

760
01:10:35.695 --> 01:10:42.995
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,

761
01:10:43.375 --> 01:10:52.540
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

762
01:10:52.920 --> 01:10:58.725
like they accept the releases really quickly after that. Yes. The hard part is, like, just getting approved for test flight.

763
01:10:59.285 --> 01:11:02.185
For the freaks that don't know, Freedom Store is because,

764
01:11:03.525 --> 01:11:08.585
Apple lost a a court case in Europe. So they have to allow other

765
01:11:09.125 --> 01:11:16.349
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.

766
01:11:17.449 --> 01:11:21.070
Yeah. But the people behind that are awesome. They're also behind Vexel,

767
01:11:21.449 --> 01:11:22.429
the peer to peer

768
01:11:23.050 --> 01:11:26.985
Bitcoin trading app, where you can buy and sell Bitcoin without KYC.

769
01:11:28.405 --> 01:11:30.325
So it's good to see. Hopefully, we see more

770
01:11:31.845 --> 01:11:39.780
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.

771
01:11:40.340 --> 01:11:42.599
Guys, thank you for joining. Fact that Yeah.

772
01:11:42.980 --> 01:11:46.440
So the fact the fact that Zapstore is the only app store

773
01:11:47.059 --> 01:11:50.920
where it just worked, you know, shows you how big Nostra is winning already.

774
01:11:51.300 --> 01:11:53.000
Yes. Yeah. Zapstore is awesome.

775
01:11:53.335 --> 01:11:55.835
Literally one command and boom. It was there.

776
01:11:56.614 --> 01:12:00.795
Yeah. Zapstore and, Fritz, if you haven't listened, I did a little dispatch on Zapstore.

777
01:12:02.855 --> 01:12:08.820
But, what is he changed the he changed the domain on me. Is it it's not zap.store anymore. Store.dev.

778
01:12:09.060 --> 01:12:10.280
Zapstore.dev.

779
01:12:10.500 --> 01:12:23.325
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

780
01:12:23.965 --> 01:12:29.825
renewing it for that price was worth it. Okay. But he had the he used to have the domain. Right?

781
01:12:30.685 --> 01:12:36.785
Yeah. Just renew would have been, I don't know, couple thousand bucks or something. And now it's a completely different project.

782
01:12:37.950 --> 01:12:46.450
Access Oracle that bring no. Zap dot stores. Access Oracle that bring more to world data to smart contracts. Someone else bought it. Goddamn.

783
01:12:47.070 --> 01:12:50.850
Crypto people in their crypto money. Yeah. And it's, like, what? Wait. Wait. It's,

784
01:12:51.665 --> 01:12:52.645
okay. Shit.

785
01:12:53.505 --> 01:12:55.445
Well, time is a flat circle.

786
01:12:55.825 --> 01:12:59.525
Freaks, thanks for joining us in the live chat. You guys make the show unique.

787
01:13:00.065 --> 01:13:02.245
I have a new I have another show tomorrow,

788
01:13:03.745 --> 01:13:06.050
with Pip. We're gonna be talking about,

789
01:13:07.230 --> 01:13:08.770
Vertex, which is

790
01:13:09.310 --> 01:13:13.489
his master web of trust implementation. I'm pretty excited about that. That's verifiable reputations.

791
01:13:15.949 --> 01:13:21.165
There's gonna be a lot of AI deepfakes. There already are a lot of spam, AI slot bullshit.

792
01:13:21.945 --> 01:13:24.364
The only way we're gonna really mitigate that at scale,

793
01:13:25.225 --> 01:13:28.525
without a centralized third party like Elon doing KYC on everyone,

794
01:13:29.145 --> 01:13:32.445
which still is not very effective if you've ever used x recently,

795
01:13:34.199 --> 01:13:43.500
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.

796
01:13:44.119 --> 01:13:46.699
And RHR tomorrow is sixteen thirty UTC.

797
01:13:47.835 --> 01:13:49.135
Guys, thanks for joining.

798
01:13:49.675 --> 01:13:54.068
I'll be in touch. I'd love to have you back, and let me know if I could be helpful with anything.

799
01:13:54.767 --> 01:13:55.827
Thank you very much.

800
01:13:56.287 --> 01:13:58.867
Awesome. Thanks for the shuffle. See you later, guys.

801
01:13:59.327 --> 01:14:00.387
Stay humble, StackSats.

802
01:14:01.008 --> 01:14:01.508
Peace.