Transcript
WEBVTT
NOTE
Transcription provided by Podhome.fm
Created: 8/3/2024 9:35:54 AM
Duration: 9945.6
Channels: 1
1
00:00:04.080 --> 00:00:09.460
Pounding the table because eventually the Fed is gonna start easing here. That's great for gold and that's for Bitcoin.
2
00:00:09.765 --> 00:00:19.065
What I said is Bitcoin is growing up and will be eventually half the total market cap of gold. So that's about 350,000. So quite a ways to go from here.
3
00:00:19.609 --> 00:00:25.390
The Super Bowls, if central banks adopted and, you know, it's part of the monetary system,
4
00:00:26.169 --> 00:00:26.669
then,
5
00:00:27.115 --> 00:00:39.260
you know, in the millions, but I don't like to talk about that too much. What more than 2,000,000? More than 3? Yeah. Like 2.9. We've got some model, which is you you have to look at the assumptions. Right. Well, yeah, there are always big ifs there.
6
00:00:39.640 --> 00:00:42.539
Where are you as an ETF guy
7
00:00:43.000 --> 00:01:16.340
with all kinds of different ETFs? Everything from fixed income to, you know, who knows? Staples, consumer cyclicals, etcetera. Yeah. Where do you put your personal money right now? I like longer term trends because I feel like, okay, it'll be a bumpy ride, but I like to have conviction about something that's gonna happen in 5 or 10 years. To me, there's no doubt that Bitcoin is becoming adopted the way gold is. I just think it's it's it's it's obvious. Now, I think you have to have your own diversified portfolio and kind of having a huge overweight to Bitcoin is a personal decision,
8
00:01:16.715 --> 00:01:20.255
but I I just see that rising. I'll give you another example, India.
9
00:01:20.635 --> 00:01:26.520
The Indian economy is the best macro story. Everyone says the stocks are overvalued. I get it, but it's doubtless.
10
00:01:26.979 --> 00:01:28.920
The Indian equities have done
11
00:01:29.220 --> 00:01:33.215
as well as US equities over the last 10 years and will continue to do well.
12
00:01:33.854 --> 00:01:37.475
Correct. He but he was a gold bug. So Of course, the founder.
13
00:02:08.715 --> 00:02:09.215
Yeah.
14
00:02:11.915 --> 00:02:13.775
Happy Bitcoin Friday, freaks.
15
00:02:14.555 --> 00:02:18.989
It's your host, Odell, here for another Citadel Dispatch, the interactive
16
00:02:19.690 --> 00:02:24.750
live show focused on actual Bitcoin and Freedom Tech discussion.
17
00:02:25.675 --> 00:02:29.534
That intro clip was Fox Business with the Vanex CEO,
18
00:02:30.635 --> 00:02:32.254
humbly calling for a $2,900,000
19
00:02:33.034 --> 00:02:34.415
Bitcoin per his model,
20
00:02:35.370 --> 00:02:38.909
says that Bitcoin will be worth half the market cap of gold.
21
00:02:39.209 --> 00:02:45.785
I'd like to remind the VanEck CEO that Trump said that Bitcoin is gonna be worth more than gold, so they can argue about that.
22
00:02:46.085 --> 00:02:47.945
And Michael Saylor called for a $49,000,000
23
00:02:48.485 --> 00:02:48.985
Bitcoin,
24
00:02:51.100 --> 00:02:59.120
which if you're wondering what the environment was when I started doing 200 k by conference day in all caps, it was kind of like this. And it kinda makes me wanna just go $200,000,000
25
00:02:59.660 --> 00:03:00.880
by conference day, but
26
00:03:01.565 --> 00:03:10.545
I'm gonna stay humble and not do that this cycle. Just stay on the stacks and and and focus on improving your skills. Guys, we have a crazy rip today.
27
00:03:11.790 --> 00:03:19.250
Bunch of legends in the house. This is the tail end of the Rust Bitcoin Summit at Bitcoin Park. Obviously, last week,
28
00:03:19.864 --> 00:03:20.605
there was,
29
00:03:22.185 --> 00:03:23.805
quite the circus in Nashville
30
00:03:24.345 --> 00:03:25.644
with the Bitcoin conference,
31
00:03:26.345 --> 00:03:28.444
and, we also had a bunch of
32
00:03:28.810 --> 00:03:31.470
really great content and people here at the park.
33
00:03:32.329 --> 00:03:40.665
But we're a little bit masochist here at the park. So, of course, a Rust Bitcoin Summit was planned for the week following that, and And these gentlemen just wrapped on that.
34
00:03:41.925 --> 00:03:42.985
So without further
35
00:03:43.285 --> 00:03:43.785
ado,
36
00:03:45.610 --> 00:03:49.150
let's get to the show. I mean, I think we're gonna probably have, in total, maybe
37
00:03:50.250 --> 00:03:51.950
15 to 18 guests,
38
00:03:52.410 --> 00:03:56.555
on this rip, and they're gonna cycle in and out. Right now, I'm looking at
39
00:03:57.175 --> 00:03:57.995
7 people.
40
00:03:58.694 --> 00:04:01.575
The rest are eating lunch, and they're gonna come in and out.
41
00:04:02.215 --> 00:04:03.970
Tobin, why don't you pick up the mic?
42
00:04:04.770 --> 00:04:06.390
We have Tobin Harding here.
43
00:04:06.930 --> 00:04:08.870
How's it going, Tobin? What's what's
44
00:04:11.385 --> 00:04:13.165
what what was the Rust Bitcoin Summit?
45
00:04:13.705 --> 00:04:15.245
How you doing? Good to be here.
46
00:04:15.865 --> 00:04:23.680
Rust Bitcoin Summit was a get together of programmers who write in the Rust program language, who worked on Bitcoin all day,
47
00:04:24.140 --> 00:04:26.080
and who wanted to come to Nashville.
48
00:04:26.620 --> 00:04:28.560
Let's go. And and who the hell are you?
49
00:04:29.095 --> 00:04:33.914
Me. I'm Tobin. I live in Australia, and I work in Rust on Bitcoin all day.
50
00:04:34.535 --> 00:04:37.595
And, I mean, you're also a rider like freak. Right? You you
51
00:04:37.930 --> 00:04:44.990
you listen about dispatch and rabbit hole recaps. So Dispatch tends to go for 3 hours, so sometimes I get bored. But, yeah, I listen to the actor.
52
00:04:46.615 --> 00:04:53.435
Well That's so interesting. You know? To the show. If if you're listening right now, hopefully, we won't make you bored.
53
00:04:55.539 --> 00:04:58.199
We have Andrew Polster here. How's it going, Andrew?
54
00:04:59.060 --> 00:05:05.125
Hey. Good to be here. I'm Andrew Polster. I'm the founder and, comaintainer of West along with Tobin,
55
00:05:05.504 --> 00:05:06.565
couple other people.
56
00:05:07.264 --> 00:05:12.965
So I'll try to share the mic. Yeah. Why don't you why don't we pass it down and everyone introduce themselves,
57
00:05:13.289 --> 00:05:14.750
because we have a lot of people here.
58
00:05:15.930 --> 00:05:18.750
So hi, folks. I'm Jose. I contribute
59
00:05:19.129 --> 00:05:20.590
to Buzz Bitcoin and BDK.
60
00:05:21.254 --> 00:05:24.235
We are welcoming contributors, so go hang out on GitHub.
61
00:05:24.615 --> 00:05:26.474
We have, like, very nice,
62
00:05:26.854 --> 00:05:27.914
contributor friendly,
63
00:05:28.830 --> 00:05:29.330
new,
64
00:05:29.710 --> 00:05:31.330
issues. So, yeah,
65
00:05:31.790 --> 00:05:36.855
come and join us. Awesome. Yeah. I'm Cody. I work at Feddy and, on Feddy Mint.
66
00:05:39.575 --> 00:05:45.275
I'm Dan Gould. I work on PayJoin DevKit and Rust Pay Joins to better Bitcoin matching.
67
00:05:46.760 --> 00:05:50.620
Rob Hamilton. I am a Rust Bitcoin and Bitcoin devkit prospector,
68
00:05:51.000 --> 00:05:53.705
and will be build our tech on the bank watch.
69
00:05:54.345 --> 00:05:59.724
Yeah. Hey. I'm Matthias de Bernardini. I'm, building on top of BDK and Rust Bitcoin,
70
00:06:01.120 --> 00:06:03.860
working at Anchor Watch with Rob. So yeah.
71
00:06:05.120 --> 00:06:07.700
So how the hell are we gonna structure this conversation, gentlemen?
72
00:06:08.400 --> 00:06:14.195
Why do we have Rust Bitcoin? Where did it come from? How do all the Do do you have a mic? I got my there's mics for me.
73
00:06:14.655 --> 00:06:16.275
I I wanna know how
74
00:06:16.735 --> 00:06:35.560
Russ Bitcoin, this project from 2014, turned into the basis for all of the applications built on Bitcoin. Now, you know, Cash App's using it. Well It's, like, uses it. It's everything. Well, first of all, I mean, dispatch has mostly a technical audience, but it's also a lot of technical curious people. And I think one of the things in the space that we want to see more of is,
75
00:06:36.040 --> 00:06:41.980
just more new open source contributors. I like to say, like, our our birth replacement rate is not great right now.
76
00:06:42.760 --> 00:06:46.845
Like, the devs die before enough new ones are born.
77
00:06:47.225 --> 00:06:48.845
So what the fuck is Rust?
78
00:06:49.785 --> 00:06:50.925
Let's start with that.
79
00:06:51.384 --> 00:06:52.685
I'll I'll take that one.
80
00:06:53.410 --> 00:06:55.270
So Rust is a
81
00:06:55.650 --> 00:06:56.950
new programming language,
82
00:06:57.490 --> 00:07:03.110
you know, in terms of, you know, the history of computing and all of that. You know, you have Python, c.
83
00:07:03.474 --> 00:07:04.134
Those are,
84
00:07:04.435 --> 00:07:07.254
much older languages. But Rust is relatively new.
85
00:07:07.794 --> 00:07:08.294
And
86
00:07:08.835 --> 00:07:10.215
the purpose of Rust
87
00:07:11.240 --> 00:07:11.740
was
88
00:07:12.600 --> 00:07:14.140
to allow people to make
89
00:07:14.760 --> 00:07:17.820
programs that are both performance
90
00:07:18.200 --> 00:07:19.260
and secure.
91
00:07:19.925 --> 00:07:26.825
So for the longest time, you pretty much had to choose between 1 or the other, whether your program was very secure
92
00:07:27.690 --> 00:07:33.150
or it was very fast. And it was hard to sort of have your cake and eat it too.
93
00:07:33.930 --> 00:07:36.134
And this fellow at Mozilla,
94
00:07:36.835 --> 00:07:37.975
working on the Firefox,
95
00:07:38.675 --> 00:07:49.690
browser, I think his name is Sheldon Graden? Graden Hore. Graden Hore. Yeah. Andrew, the mics exist. Yeah. Yeah. Yeah. Talking to mic people. Those people. And he was trying to
96
00:07:50.955 --> 00:07:56.895
was working on this, on on the browser, and there was a very difficult problem that,
97
00:07:57.195 --> 00:07:58.415
they were trying to solve.
98
00:07:59.500 --> 00:08:01.680
It was I believe it was the,
99
00:08:02.860 --> 00:08:03.600
the CSS
100
00:08:04.300 --> 00:08:04.800
render
101
00:08:05.100 --> 00:08:05.919
in Firefox.
102
00:08:06.685 --> 00:08:10.145
And this, part of the browser is very important because,
103
00:08:10.845 --> 00:08:13.665
you want it to be really, really fast so that your page loads.
104
00:08:14.370 --> 00:08:17.030
And the issue was that
105
00:08:17.409 --> 00:08:18.789
they had a number of implementations
106
00:08:19.250 --> 00:08:27.285
in c plus plus which is what Firefox is written in, and they pretty much all of them had one issue one way or another.
107
00:08:27.665 --> 00:08:29.205
Either they could get hacked,
108
00:08:30.305 --> 00:08:31.925
you know, just loaded with vulnerabilities,
109
00:08:32.610 --> 00:08:34.950
or it just wasn't performing enough. So,
110
00:08:37.810 --> 00:08:41.245
this this fellow went back to the drawing board and took
111
00:08:41.725 --> 00:08:47.025
all of the, you know, learnings of past 20 years at at the time and just combine them into
112
00:08:47.645 --> 00:08:55.990
one programming language and just start to work on it. And that was the sort of the beginning of Rust. Would you would you say that Rust is
113
00:08:57.345 --> 00:09:03.764
the hottest programming language out there right now? Like, I feel like it's it's hyped a lot. Like, people get really excited about it.
114
00:09:04.144 --> 00:09:09.450
It it does get hyped a lot because people are very excited about it for for a lot of reasons.
115
00:09:10.230 --> 00:09:11.850
The the biggest one is that
116
00:09:12.470 --> 00:09:12.790
you can
117
00:09:13.830 --> 00:09:15.850
if you learn it, you can start making
118
00:09:16.265 --> 00:09:17.565
applications that are both,
119
00:09:18.505 --> 00:09:20.205
memory safe and performant.
120
00:09:21.545 --> 00:09:27.630
And you can kind of have your cake and eat it too. I mean, there's there's caveats to that, but,
121
00:09:28.810 --> 00:09:31.870
people are definitely excited about it, which is which is positive.
122
00:09:32.775 --> 00:09:35.515
You know, in any new language, you desperately need,
123
00:09:36.375 --> 00:09:38.955
incomers to just come in and and adopt the language.
124
00:09:40.640 --> 00:09:43.460
But it it it does get hyped a lot. I don't know if,
125
00:09:43.840 --> 00:09:45.060
it's the most
126
00:09:46.000 --> 00:09:47.140
hyped up language.
127
00:09:48.885 --> 00:09:51.545
I mean What is the most hyped up language? CSS.
128
00:09:52.005 --> 00:09:52.505
CSS.
129
00:09:54.565 --> 00:10:04.110
I mean, Dan, look, if we don't take the what Mike away from this guy, he's just gonna talk the whole time. Yeah. Yeah. I'd say one of the really valuable things for it is that you
130
00:10:04.650 --> 00:10:14.135
by programming in Rust, you can eliminate entire classes of errors that you would get from programming in other programming languages, and some of those are, like, the most common production errors.
131
00:10:14.470 --> 00:10:28.135
Something on the order of, like, 70% of production errors end up being a, like, a memory error of some kind. And simply by the fact of programming in Rust, you can very reliably remove those classes of errors. So for really, production
132
00:10:28.515 --> 00:10:36.760
important materials like stuff around Bitcoin, if you can just eliminate those before you even deploy the application, it's very valuable, especially, like, when we're dealing with people's money.
133
00:10:37.779 --> 00:10:43.065
There's is there is trade offs. There's no silver bullet. So everyone starts off as a massive fanboy,
134
00:10:43.365 --> 00:10:57.910
but eventually, you hit an edge case in the language and it's annoying. But it is generally a fun language to write. But, yeah, we shouldn't be present it too much like it's all hollow because the air is so hot right now. But, yeah, there is downside. We don't need to go into all the negatives for their own negatives.
135
00:10:58.465 --> 00:11:01.285
Okay. So Rust Bitcoin. What is Rust Bitcoin?
136
00:11:01.905 --> 00:11:04.645
Well, Rust Bitcoin is a project I started in
137
00:11:05.505 --> 00:11:09.480
2014 or so. So the the Rust language itself had its 1.0 in 2015.
138
00:11:10.500 --> 00:11:15.320
But prior to that, it was, I mean, it was originally created in 2008, and there were various iterations
139
00:11:15.940 --> 00:11:24.260
of the language prior to 1 point o. Really big things are happening. It's not like the Gmail beta where, like, everything changed for 10 years of beta. Right? Yeah.
140
00:11:24.660 --> 00:11:28.760
Rust language was dramatically changing pretty much right up to the week of the void.
141
00:11:29.140 --> 00:11:29.640
And
142
00:11:30.020 --> 00:11:47.180
I heard of this. I heard that Mozilla was using this for Firefox and their CSS renderer and and whatever and thought it was a pretty cool thing and wanted to stay with it. And at the time, I was already into Bitcoin. That was kind of the thing that I knew that I didn't have to go googling around to get stocks for. So that's why I started writing. And
143
00:11:47.915 --> 00:11:56.495
I was just kinda keeping up with the language evolution. If you look at the Git history of of Rust Gitcoin, you'll find also for syntax that no longer exists and didn't exist in in Rust 1.0
144
00:11:57.110 --> 00:12:01.750
because it was basically a way for me to play with language features and,
145
00:12:02.790 --> 00:12:10.645
on on something that I was familiar with in in a problem domain that I had experience tackling with c and c plus plus and these other languages.
146
00:12:11.505 --> 00:12:22.720
And in those early days, it was really just my personal hobby product. I was using it to scan the blockchain to like answer random problems that popped into my head. You know, like what's the average transaction size or, you know, stuff like that.
147
00:12:23.055 --> 00:12:24.615
And, and you can even find
148
00:12:25.055 --> 00:12:31.395
I was making PRs and and filing issues with the Rust compiler. That's an early RFC in the Rust programming language,
149
00:12:32.019 --> 00:12:37.000
which if you search for my name, you'll find it. So probably the worst RFC they gave a number to.
150
00:12:37.459 --> 00:12:44.285
But I fixed, like, 20 bugs in one shot by basically proposing that we remove a bunch of stuff from the language that didn't really work.
151
00:12:45.144 --> 00:12:45.644
Unfortunately,
152
00:12:46.345 --> 00:12:50.269
I wasn't the only one who did that, and there there are a bunch of missing things in Rust.
153
00:12:50.570 --> 00:12:59.149
But, Yeah. Rust picked one of really just a toy for for the longest time. And, and I don't know exactly when it became a a big thing that we would have a a summit for.
154
00:12:59.595 --> 00:13:11.910
But there are definitely over the years, a couple of people showed up who knew Rust, who weren't writing c and translating into Rust the way that I was And weren't just like playing with obscure features and copying bad ideas from standard lib like I was.
155
00:13:12.449 --> 00:13:16.149
And they helped clean it up. And then later we had things like the BDK project,
156
00:13:16.675 --> 00:13:23.655
that started using Rust Bitcoin seriously for real. And, and then I realized that I should stop screwing around.
157
00:13:24.690 --> 00:13:27.990
And at some point, I will actually stop screwing around, but I definitely
158
00:13:28.450 --> 00:13:30.230
definitely realized that I should stop.
159
00:13:31.250 --> 00:13:31.750
Awesome.
160
00:13:32.834 --> 00:13:38.774
Alakos, you gotta hand the mic. By the way, now we have we have 13 Bitcoin developers in the studio right now.
161
00:13:40.350 --> 00:13:40.850
We
162
00:13:41.310 --> 00:13:47.845
have I was gonna say, Alakos, if you wanna take on the question, you've joined in a little late. Like Yeah. That is question of why, like,
163
00:13:48.385 --> 00:13:54.325
why Rust Bitcoin? Why you wrote it in Rust? You could maybe take the the the the baton on that and say why,
164
00:13:54.949 --> 00:14:04.745
you know, make another wallet library in Rust on Rust Bitcoin. Would that genesis happen maybe? I think that's a great idea. The person who was just speaking was Steve Myers, a maintainer
165
00:14:05.205 --> 00:14:08.745
of of BDK, a Bitcoin park member who runs our
166
00:14:09.125 --> 00:14:19.750
our bit devs. And, now he's handing the torch to to Alexos Fellini, do do pronounce your last name correct? Yep. He makes that cool, NFC hardware wallet now. Yep.
167
00:14:20.210 --> 00:14:22.550
What do we call that again? What's his what? Oh, portal.
168
00:14:23.015 --> 00:14:24.475
Portal. Yes. Portal.
169
00:14:25.255 --> 00:14:28.075
So, Alex, go to Yes. I miss
170
00:14:28.855 --> 00:14:30.315
more than actual conversations.
171
00:14:31.000 --> 00:14:33.019
I'm not gonna repeat much stuff, but,
172
00:14:33.560 --> 00:14:39.660
yeah. So Rust is cool. Rust gives you a lot of security guarantee. I guess you already talked about that. Correct.
173
00:14:40.055 --> 00:14:44.235
And so was made in Rust because when you start a new project, you,
174
00:14:44.935 --> 00:14:49.730
just look for the best tool to get the job done, and I guess Rust was the best tool to get job done.
175
00:14:50.209 --> 00:14:52.070
It started as kind of an
176
00:14:53.889 --> 00:14:58.550
internal project I was working on with a bunch of consumer release and it also uses
177
00:14:59.815 --> 00:15:01.035
Rust quite a lot.
178
00:15:01.655 --> 00:15:05.435
So, yeah, it was just, I don't know, natural to to start using Rust for it.
179
00:15:06.295 --> 00:15:14.350
And there were there were, thankfully, great tools, Rust speak, Rust speak, or any. So it kinda made sense. I guess the language was good.
180
00:15:14.970 --> 00:15:20.055
The people I was working with were familiar with it, and I was starting to learn it more and more.
181
00:15:21.235 --> 00:15:31.200
And yeah. And then the the ecosystem of us is developing was developing, still developing very well. So it makes sense to to be positive and and make BDK with that level.
182
00:15:33.315 --> 00:15:37.415
Awesome. I mean and I guess to go to where Dan originally started,
183
00:15:38.595 --> 00:15:39.735
so now, like
184
00:15:41.290 --> 00:15:44.990
so so BDK was was built with Rust Bitcoin underpinnings,
185
00:15:45.290 --> 00:15:54.975
essentially, and now there's a ton of projects that are being built on top of BDK, basically. Right? So there's, like, this whole ecosystem that's developing around this, and it's part of the reason why the summit exists.
186
00:15:55.675 --> 00:16:06.735
Yeah. There's a lot of dev kits now. We've also got Matt Corallo in the studio for, doing lightning dev kits. So maybe you wanna get a little bit of that because sort of the order of this was Rust Bitcoin, BDK,
187
00:16:07.035 --> 00:16:07.535
LDK.
188
00:16:08.475 --> 00:16:13.935
Yeah. So that it's Bitcoin devkit and Lightning devkit. Alright. Yeah. And then there's also
189
00:16:14.430 --> 00:16:18.850
Casu dev. Yeah. Casu dev kits in the room. Hey, join dev kits in the room.
190
00:16:19.390 --> 00:16:33.260
We're cornering the market on the dev kit. Fedi Min is Fedi Min is not dev kit. No We've been discussing mean Fedi Mint dev kit. We need to corner the market on the dev kit. Yeah. We have to log in and we kind of organize our repos the same way that you guys do. So I guess, technically,
191
00:16:43.115 --> 00:16:47.694
this kind of sister project, all these other things, kind of your sister project to BDK. BDK
192
00:16:48.315 --> 00:16:49.214
is on chain.
193
00:16:49.595 --> 00:16:50.815
LDK does lightning.
194
00:16:51.240 --> 00:16:54.300
And similarly, it's kind of a library designed to let people build,
195
00:16:54.920 --> 00:17:00.220
whatever they want based on using the Lightning protocol to build awesome wallets or awesome whatevers.
196
00:17:01.144 --> 00:17:04.684
But he met now or several, I guess, Catu 2 has some options
197
00:17:05.225 --> 00:17:08.845
to use LDK to power the lightning, gateways.
198
00:17:11.030 --> 00:17:13.210
That has a bunch of mobile ones. Now
199
00:17:13.510 --> 00:17:17.050
I'll be getting node, which is a much easier, lighter weight API
200
00:17:17.495 --> 00:17:20.315
that you can get started with really quick, few lines of code,
201
00:17:21.015 --> 00:17:24.794
and you can have a lightning wallet in your app with LSP spec support.
202
00:17:25.389 --> 00:17:31.970
So we've got a lot of stuff cooking there too, but, yeah, there's there's just a lot of great stuff in the Rust ecosystem.
203
00:17:33.565 --> 00:17:41.745
Yeah. And the cool thing about Rust too is that we can kinda use this as sort of a baseline for all of the other languages as well because Rust is really good,
204
00:17:42.250 --> 00:17:55.955
support for exporting bindings in all the other languages. So it becomes a really powerful tool for have this be the base, like, have the reference implementations in Rust, and then they export bindings to TypeScript, Python, Java,
205
00:17:56.495 --> 00:18:08.635
Swift, all those other things that everybody else wants to do. So that's sort of what this whole summit was about for, like, how do we make the really strong core that everybody else, when they're building applications, can kinda build on top of.
206
00:18:09.195 --> 00:18:15.375
Love it. Phreaks, if you're listening and you're not in the Nostril Live Chat, the Nostril Live Chat is sidildispatch.com/stream.
207
00:18:17.035 --> 00:18:22.330
You do not need to have a Nostra account to use it. Feel free to throw questions, comments in there,
208
00:18:22.710 --> 00:18:23.450
or zaps.
209
00:18:24.550 --> 00:18:26.445
The show does not have ads, so
210
00:18:27.325 --> 00:18:29.184
please send me sats for my family.
211
00:18:30.524 --> 00:18:34.384
Cody, I mean, I you're the host here. I'm just the producer.
212
00:18:35.380 --> 00:18:49.645
Yeah. Maybe we could kinda cover what went on for the Rust Summit and sort of the big takeaways at the end of it. So what's the current state of Rust Bitcoin? What's of the one point o? Because a lot of our projects are versioning like BDK's cutting the 1 point o. But,
213
00:18:50.184 --> 00:18:57.320
for Rust Bitcoin, what does it look like for cutting 1 point o? Once they track for that and then we can kinda go back to the projects for the current state of them?
214
00:18:58.179 --> 00:19:00.600
Sure. I'll take that. So for Rust Bitcoin,
215
00:19:01.075 --> 00:19:03.075
as people who use the project are,
216
00:19:03.554 --> 00:19:11.990
grimly aware of, the the library has been changing very rapidly. The API has been changing very rapidly over the last year or 2 with the goal of getting towards 1.0. And
217
00:19:12.370 --> 00:19:15.830
for 1.0, we really want a API where we're
218
00:19:16.370 --> 00:19:18.790
using the features of the Rust language
219
00:19:19.115 --> 00:19:21.535
to create an API that's quite hard to misuse.
220
00:19:21.915 --> 00:19:41.155
And better than that, an API where when you try to use it, it guides you by the shape of the API and and what functions are available and what conditions are on those functions into doing the right things. So that kind of complicated protocols, like, for example, building an address from a a series of scripts and then building a tap tree, for example. There's sort of only one way
221
00:19:41.775 --> 00:19:56.595
as a developer. Right? You've got a pile of scripts, and there's really only one way that you can put those together with the API to get an address out. Right? And that one way should be something that I mean, ideally, you just type stuff and then you get close enough that the pilot will tell you. And if not, you leave the docs sort of thing.
222
00:19:57.215 --> 00:19:57.715
And
223
00:19:58.015 --> 00:20:00.434
the library is not there yet. This is improving,
224
00:20:00.894 --> 00:20:10.280
with with every iteration for sure, but there's still lots of weird crafty things where you can do wrong things. So for example, in our our bit 32 module, bit 32 is a a
225
00:20:10.855 --> 00:20:13.914
way of deriving secret keys and public keys for wallets.
226
00:20:14.615 --> 00:20:20.475
And the way it works, you have kind of the series of 31 bit numbers, numbers that are between 0 and above 2,000,000,000.
227
00:20:21.160 --> 00:20:29.100
And you can construct these in Rust Bitcoin with numbers that are out of range right now. And the API will let you do that. It's not going to tell you that you've done anything wrong. It will just
228
00:20:29.595 --> 00:20:35.215
do unexpected and nonstandard things when you do this. So there's stuff like that that we want to clean up.
229
00:20:35.674 --> 00:20:41.520
But as a consequence of this and a consequence of Rust itself having
230
00:20:42.140 --> 00:20:45.039
a gazillion crazy features for API designers,
231
00:20:45.820 --> 00:20:52.075
all of which have sharp edges and surprising limitations. You don't notice till months into trying to use them.
232
00:20:52.375 --> 00:20:55.275
There there have been big changes to the library and and lots of
233
00:20:56.160 --> 00:21:04.900
simultaneously very fast changes and that we're changing a lot of stuff, but also very slow and that we wind up having kind of long arguments about individual piece of the API.
234
00:21:05.345 --> 00:21:11.445
So every 6 to 12 months, we we do a release with all of the crazy breaking overhaul changes that we've done.
235
00:21:12.680 --> 00:21:21.740
This pisses off all of our users who immediately have to rewrite their code. They'll find that there's some functionality they were depending on that we forgot to maintain when we were tightening up the API.
236
00:21:22.265 --> 00:21:30.300
And, and then they come to complain at us, and we're like, oh, well, we're in the middle of doing another round of that. But, yeah, we'll double back and, like, fix your things when we get around to it. We promise.
237
00:21:30.860 --> 00:21:35.360
So the first day of the summit was Tobin and I going up there and and kinda talking about
238
00:21:35.740 --> 00:21:40.240
what we're planning to do to make everyone's lives smoother for the next few months.
239
00:21:40.685 --> 00:21:42.065
And we prepared maybe
240
00:21:42.925 --> 00:21:50.330
0 minutes of material on this, and, nonetheless, we have 4 hours of of people yelling at us saying, like, it's not this, like, please,
241
00:21:50.789 --> 00:21:53.929
like, surely there's some way that we can do the the minimum thing.
242
00:21:54.470 --> 00:21:56.250
And, and where we landed,
243
00:21:56.804 --> 00:22:13.305
well, we we there's maybe 2 takeaways. So one is much of the ecosystem said, you know what? We're gonna freeze on Rust Bitcoin 0.32, and we're not gonna follow your updates for a little while until it stabilizes a bit. But the other thing is that kind of our first order of business in Rust Bitcoin is that we're going to pull
244
00:22:13.765 --> 00:22:23.010
the core components of the library, the structures that represent transactions and blocks and then the basic building blocks. We're gonna pull those into its own library called Bitcoin Primitives
245
00:22:23.710 --> 00:22:29.595
because that work, we pretty much nailed down what those look like. Maybe not every single feature, but definitely the core functionality.
246
00:22:30.135 --> 00:22:34.395
We'll pull that out. We'll stabilize that. That will be a thing that never changes.
247
00:22:34.750 --> 00:22:38.930
And that will reduce a lot of the breakage because at least you've got that core library at the center
248
00:22:39.230 --> 00:22:42.450
and your dependence on Rust Bitcoin and its crazy changes
249
00:22:43.325 --> 00:22:47.265
are limited to maybe the edges of your library or or things that are easier for you to update.
250
00:22:50.110 --> 00:22:59.570
Yeah. I don't know much about that. Oh, more about what we did. Yeah. I don't know much about that. I mean, Angie just, like, hand handed Tobin the mic, and Tobin felt compelled to say something.
251
00:23:00.095 --> 00:23:05.075
Yeah. This is So, Cody, where next? Yeah. So then, the next day, we had BDK, and,
252
00:23:05.535 --> 00:23:09.670
so building off of the discussions of where we're gonna go with Rust Bitcoin,
253
00:23:10.050 --> 00:23:19.155
BDK is cutting the one point out. So maybe Steve, do you wanna get an update so I could I could pick up from there? So, yeah, we we kinda split the 4 days as from the bottom up. So Rust Bitcoin,
254
00:23:19.934 --> 00:23:21.075
BDK, LDK,
255
00:23:22.895 --> 00:23:24.195
the, Fedimint,
256
00:23:24.495 --> 00:23:25.155
and then
257
00:23:26.409 --> 00:23:37.125
what I missed. Yeah. And then all of the anything. Anything else. Like, all the projects. We have a lot of people. So in in addition to these space projects, we have a lot of projects built on top of these projects. But back to BDK, so we spent our day
258
00:23:37.585 --> 00:23:45.240
kind of like our our big milestone was hitting a 1.0. And for us, 1.0 actually, I should say 1.0 beta. We are probably a year late on this,
259
00:23:45.780 --> 00:23:47.240
to be totally honest, but,
260
00:23:48.500 --> 00:23:51.080
you know, designing you know, as Cassandra mentioned, designing
261
00:23:51.605 --> 00:23:53.865
good hard to abuse APIs is very hard.
262
00:23:54.165 --> 00:23:55.865
And I think one of our contributions
263
00:23:56.245 --> 00:23:57.545
to the Rust Bitcoin
264
00:24:00.220 --> 00:24:04.960
team is that we just brought in a bunch of users that wanted to not learn the intricacies
265
00:24:05.475 --> 00:24:09.255
and just get sort of a nice simple wallet API. So doing on chain,
266
00:24:09.795 --> 00:24:12.055
you know, getting your balance, getting your,
267
00:24:12.755 --> 00:24:14.135
you know, making a transaction,
268
00:24:14.435 --> 00:24:15.175
doing RBFs,
269
00:24:16.340 --> 00:24:17.480
supporting, of course,
270
00:24:18.500 --> 00:24:29.975
descriptors with the full manuscript support, Taproot, all that good stuff. Just basically pulling all those components and bringing them together and making a nice easy to use API, but making a nice easy to use API is easier said than done.
271
00:24:30.330 --> 00:24:37.790
We also as part of this, like the, so Lloyd and Evan were sort of the 2 chief architect guys who had this great idea that, hey,
272
00:24:38.154 --> 00:24:41.615
What BDK started as was a simple single purpose
273
00:24:42.235 --> 00:24:44.014
make up single user library.
274
00:24:44.315 --> 00:24:49.210
Hey. Maybe we could, like, break out some of these pieces and and, like, separate out a core
275
00:24:49.670 --> 00:24:59.755
chain tracking crate that did all of the the logic of managing when there's reorgs and things like that. And then just kinda the wallet piece is just sort of a layer on top of that. So,
276
00:25:00.375 --> 00:25:04.650
so the scope of what we originally intended for 1.0 sort of grew a bit with that entire rearchitecting.
277
00:25:07.050 --> 00:25:20.465
The initial actually, the initial, I think, impetus was just we wanted to be able to do asynchronous stuff. Like, we wanted to be able to sync the blockchain data to the wallet while the sync without blocking access to the wallet, like, say, getting a balance or making a transaction. That was kind of the initial,
278
00:25:20.860 --> 00:25:25.840
the initial threat we started pulling on that that ended up becoming, like, a year and a half long design
279
00:25:26.140 --> 00:25:28.720
and implementation project. Talk about it in February.
280
00:25:30.205 --> 00:25:31.505
Use the mic, Alexas.
281
00:25:32.685 --> 00:25:36.625
I think we thought about vk 1.0 in February of last year. Yeah.
282
00:25:36.925 --> 00:25:38.705
Yeah. Yes. I think we did.
283
00:25:39.165 --> 00:25:46.580
I think and I think I so much value. Yeah. I even had a t shirt made that said vdk one point o world tour, and it says 2023 on it.
284
00:25:47.039 --> 00:25:48.895
Here we are in, what is this? In August
285
00:25:49.275 --> 00:25:49.775
2024,
286
00:25:50.235 --> 00:26:01.750
but, hey. Yeah. I'm sorry for the reason. No. No. That's a good point. Yeah. The yeah. So, you know, we we one of the you know, our goals for this one point o, we know it's not perfect. Like, you're never gonna get a perfect API,
287
00:26:02.210 --> 00:26:09.605
but it it it meets the initial goals. It sets us up with a design that I think will take us forward into making future improvements.
288
00:26:10.065 --> 00:26:11.285
And it it gives,
289
00:26:11.770 --> 00:26:28.095
hopefully, it gives our users a stable thing to build their applications on for at least, you know, maybe the same of next year. And then whenever, you know, when when Rust Bitcoin is ready with something, you know, whatever their next big upgrade is. We already, like, have a big backlog of things we wanna get into, say, a 2 point o. So be prepared.
290
00:26:28.519 --> 00:26:32.700
But we will, you know, we're our focus right now with this beta is,
291
00:26:34.600 --> 00:26:35.100
testing
292
00:26:36.174 --> 00:26:41.955
much more tutorial style documentation as we do get a lot of new folks that are just building their first wallet potentially.
293
00:26:43.530 --> 00:26:46.430
Yeah. So, you know, documentation, testing, and,
294
00:26:47.850 --> 00:26:49.710
yeah, just getting it ready
295
00:26:50.010 --> 00:26:50.170
to
296
00:26:50.975 --> 00:27:04.110
you know, for people to build and support products on that will be living out in the wild. I mean, I think a big mainstream success that we had announced this week was Proton. Yes. Thank you. ProtonMail created Proton Wallet on top of BTK. We call ProtonMail
297
00:27:04.650 --> 00:27:24.595
and are actually really, you know, true Bitcoiners, and they wanted to do an on chain self custodial. Of course, there's always trade offs, but they're trying to do sort of a mass market wallet. And they they have a great team to work with and they're very, you know they basically want all the privacy stuff. So whatever we can give them privacy oriented, they want it. They want us to put it in there.
298
00:27:25.475 --> 00:27:28.215
So that's, you know, part of this one point, it was also
299
00:27:28.595 --> 00:27:47.425
to help give them a stable API to break up, you know, to to build on and not break things while they're, you know, trying to, you know, they're they're gonna be supporting a huge audience of ProtonMail users that will soon have access. It's currently in beta, so you need an invite code in ProtonMail. But, you know, once they get out of beta, everyone's gonna have access to a Bitcoin wallet through our ProtonMail accounts,
300
00:27:47.805 --> 00:27:49.585
and they're gonna have a mobile app.
301
00:27:50.880 --> 00:28:03.245
It seems like the biggest thing they're missing, maybe I'm jumping the gun a little bit, though, is coin selection, and that is something that I think is missing in this ecosystem. I thought it was gonna say page 1. So b d k so b d k is so b d k completely supports coin selection. It's just,
302
00:28:04.125 --> 00:28:26.780
so much has gotta, like, implement it. It's more of a I mean, the problem is is Coin control. Coin control. So Coin control, just as a quick anecdote, we spun that up internally at AnchorWatch, and it was like, what? I'm I'm sitting next to Matthias here who could. It was like a day. Just really quick, like, one quick endpoint, and we have full coin control in our wallet natively. It was a very quick stab of a finger. The problem is, though, and I think they're gonna add it relatively soon,
303
00:28:27.080 --> 00:28:30.060
like, in advanced options. The problem is is
304
00:28:31.405 --> 00:28:34.065
fundamentally, coin control has a UX problem,
305
00:28:34.605 --> 00:28:37.025
which is, like, how do you conceptualize
306
00:28:37.405 --> 00:28:38.890
to I mean, this is like
307
00:28:40.650 --> 00:28:54.355
they're they're positioning it as my first Bitcoin wallet. Right? It's it's your first touch point into Bitcoin. They have I don't know how many users. They have a lot of a lot of users, and they've never used Bitcoin before. And how do you explain to them how to use coin selection?
308
00:28:54.815 --> 00:28:59.010
And so, like, why do you you automatically say join. You have a you have a queue in the background. Automatically.
309
00:28:59.870 --> 00:29:07.195
Up in coin control when you receive a pay join or when you set 1. Yeah. They I think they're more interested at this point in things like RBF
310
00:29:07.575 --> 00:29:14.370
because obviously, you know, fee rates might be low now, but in the future, they won't. Well, mempool dot space solve that. You just use the mempool transaction.
311
00:29:14.830 --> 00:29:27.235
Or maybe maybe, ShopBase Repair, and I think that might be higher on the purchase moment, but Andrew needs some Yeah. Well, the way I personally do point control. Right? So I have my my points are all controlled by a series of handwritten wallets.
312
00:29:28.520 --> 00:29:39.045
And I learned that I just don't ever need to spend more than 1 UTXO at once. And I don't ever need change. Right? So whenever I wanna move coins to a hot wallet, to my phone, or to an exchange or whatever, I just pick a UTXO,
313
00:29:39.505 --> 00:29:44.485
and I round down. I just, like, drop the last few digits, and that will be my fee. And I kinda wanna
314
00:29:46.240 --> 00:29:51.299
people solutions where you just throw away the clients. The question is why are you spending the clients? Yeah.
315
00:29:52.720 --> 00:29:56.255
I don't spend it. I I write fully collateralized options.
316
00:29:57.835 --> 00:30:01.695
I'm gonna go on a limb and say that you're not the average proton male user.
317
00:30:02.640 --> 00:30:04.660
Okay. But I would hope they support me.
318
00:30:05.200 --> 00:30:12.179
I I should mention we also have Big Key, which actually you know, Big came out earlier this year was it late last year as a mass market.
319
00:30:12.835 --> 00:30:14.295
Sure, BDK based,
320
00:30:14.915 --> 00:30:21.840
you know, meant for first users with, multi sig and hardware support for, you know, protecting the keys.
321
00:30:22.220 --> 00:30:27.440
So another example again of something Also, it doesn't have coin selection. Also, it does not have coin selection. Exactly.
322
00:30:28.565 --> 00:30:36.105
Has tight integration with exchange, but, you know, there's that's another, like, ecosystem thing built on Rust Bitcoin, EDK, Rust Mini Script,
323
00:30:36.920 --> 00:30:37.580
the libraries.
324
00:30:38.440 --> 00:30:38.940
Yes.
325
00:30:39.800 --> 00:30:51.560
One of the one of the big ones I think that came out with EDK Day is it's very, very hard to make these primitives that work for a wide array of users. And so there's a lot of work that's being done at making it simpler,
326
00:30:51.880 --> 00:30:52.620
But there's,
327
00:30:53.080 --> 00:31:03.375
like, for example, like, we had a long discussion with BDK about how we could use BDK within the Fedimint wallet. Right? But it's like the primitive is a little bit different that we need versus what they need, and
328
00:31:03.755 --> 00:31:25.475
while we could probably roll something, the thing that they're designing for is something that's kind of most widely used, and they already got a good set of users for it. So and, I think another interesting thing that came out from the BDK day was that there's a lot of new users, and the first thing that they do is maybe it's because it's, like, SEO optimized or something, but the first place they land when they start working on Bitcoin development is in Bitcoin DevKit.
329
00:31:25.855 --> 00:31:32.000
Right? So either they'll land in your Discord or any of your other stuff. And then so a lot of the documentation that,
330
00:31:32.320 --> 00:31:39.605
BDK said that they would be working on is stuff where integrating it in with other projects. Right? And for our team, like, we we have
331
00:31:39.985 --> 00:31:44.485
folks that are focused on on language bindings who are also helping with the documentation.
332
00:31:45.500 --> 00:31:54.640
That's the other reason, like, just for our sanity to have a stable API. When you're writing tutorial documentation, you it's very easy to keep the API documentation in sync, but if you're writing, like, a nice,
333
00:31:55.085 --> 00:32:12.675
easy beginner tutorial, you don't want the and we've had this problem, like, we're guilty of this where our tutorial no longer matches our API or any of our code because it's, you know, 6 months out of date. So keeping, you know, keeping the API stable for a year or so will help us have documentation that's valid for a year or so and that we can gracefully upgrade.
334
00:32:13.375 --> 00:32:28.055
So we have this problem for when we're discussing users using the software, but we have it all the way down. So we often well, first, when I came into Bitcoin, I thought, oh, this is not really that complicated. You know, we'll get on top of this in a few months. And then it turns out
335
00:32:28.835 --> 00:32:37.070
there's a few edge cases that you don't get until you've read the specific bit by the 3rd time. And so one thing we try to do in Rust Bitcoin is make it so that,
336
00:32:37.610 --> 00:32:48.715
a developer can come in and not spend 2 weeks reading the bit, pouring over the bit, getting frustrated and angry, but I can just come to the API and go, alright. I just wanna do more or less the basic thing. That'll do it correctly.
337
00:32:49.255 --> 00:33:30.320
But then we have someone else who has spent 3 days reading the BIP who's like, you idiots. That's not exactly correct. Mhmm. They're like, here it is. There's another function called underscore dangerous or something like that that you can get the exact behavior that we all think is wrong, but you can still do it. So we try to support people to do anything they want but make it obvious that you probably don't wanna do this unless you're really, really not doing. And that bubbles all the way up to the users. Right? Some of these things are hard. I just wanted to jump on that too that, you know, part of this breaking up our our crate our our Rust crates a bit is this, you know, we have sort of an opinionated wallet crate and then a chain crate which has all the little knobs and all the all the the lower level detail stuff. Now like for instance, for Fetti,
338
00:33:30.799 --> 00:33:53.840
we'll we'll most likely not use the wallet API because what they're doing is is not a standard kinda wallet, but we would use the chain crate. They just wanna, like, you know, use all the primitive stuff. So we now have that as an option that we didn't have before where it was no single purpose before. Jose, do you have something? Another takeaway, from the Rust Summit is that, we do have good API docs, but we need to have kind of like a cookbook.
339
00:33:54.780 --> 00:33:57.385
So something that newcomers can can see
340
00:33:58.325 --> 00:34:15.945
and and check how to do, like, common basic stuff on top of, Rust Bitcoin and BTK. And this is something that we are pouring some efforts on. We do have our West Bitcoin cookbook, and we have also the book of b k. And we were thinking of integrating this kind of, like, top level user friendly,
341
00:34:16.645 --> 00:34:22.985
docs and tutorials into a single one so that we can also link stuff and share, like, efforts between risk Bitcoin,
342
00:34:23.420 --> 00:34:23.920
BDK,
343
00:34:24.220 --> 00:34:24.720
Fedimint,
344
00:34:25.099 --> 00:34:46.119
LDK, and so on. So this is this is something that we are working on as well. I wanted to plug again also the language findings which falls into this, which is, you know, if you're a new person, you may not wanna learn Rust and you don't have to. We this is something that came up also in the Rust Bitcoin section was we know I think we have sort of a general agreement that, you know, if somebody wants to make you know, we'll we'll create a project,
345
00:34:47.115 --> 00:35:12.420
to support the Rust Bitcoin and then we also have for the you know, for people who don't wanna use the Vk wallet stuff, we'll have some just, like, primitive stuff from Rust Bitcoin available in other languages. That's like Swift, Kotlin, the biggie Swift Kotlin and Python are that kind of a lot of people use those, especially on mobile. And for BDK, we, you know, have extensive support for those languages as well as, like, examples how to actually build it for these mobile apps because, you know, we want more mobile wallets.
346
00:35:13.119 --> 00:35:16.019
Yeah. Well, maybe a a success story in Rust Bitcoin
347
00:35:16.480 --> 00:35:19.299
regarding trying to figure out how to support everything that's
348
00:35:20.265 --> 00:35:27.790
written in a bit, worth making things accessible and and understandable and also documenting it is what we did with the lock times in Rust Bitcoin.
349
00:35:28.110 --> 00:35:39.845
The lock time story in Bitcoin is is pretty complicated. Right? There there are relative lock times that are absolute lock a lock time. They're lock times specified in terms of number of blocks, ones that are specified in terms of of seconds.
350
00:35:40.385 --> 00:35:53.350
They're kinda obvious edge cases there. They're non obvious edge cases. What does it mean to have a lock in seconds? But what it means is if you look at the blockchain and you look at the most recent 7 blocks and you take the median of those 7 blocks 11.
351
00:35:53.665 --> 00:35:56.325
It's 11. Sorry. Rob's telling me it's 11, not 7.
352
00:35:56.705 --> 00:36:02.325
And then there are multiple ways that these lock times are encoded. Right? So for every input,
353
00:36:03.040 --> 00:36:09.380
an absolute lock time is the code of personnel's action, but a relative lock time is encoded per input, like, about the age of the individual inputs.
354
00:36:09.725 --> 00:36:16.145
And then another question about what happens. You have multiple inputs that have different kinds of lock times or or, you know, how do they mix?
355
00:36:16.525 --> 00:36:18.970
If multiple participants are trying to build this stuff,
356
00:36:19.930 --> 00:36:28.830
the lock handler encoded in a field of the transaction relative lock times called the sequence number. Well, there's a limited range of sequence numbers that actually represent lock times,
357
00:36:29.425 --> 00:36:37.765
conceptually. And then there's kind of a separate range of valid values that represent lock times when they're used in the check sequence verify or check lock time verify opcodes.
358
00:36:38.420 --> 00:36:39.160
And so
359
00:36:39.940 --> 00:36:43.480
for a long time in Rust Bitcoin, we were basically just using 32 bit integers
360
00:36:43.940 --> 00:37:00.720
for representing lock time, telling users that you gotta make sure that you're within the rules if you wanna use this. And some people, maybe it was kicked. I don't remember who exactly showed up and said we gotta make the proper API with proper types, and you can't construct the types unless you're you're putting the semantics of the bit. And I basically argued
361
00:37:01.340 --> 00:37:04.555
nobody can possibly know the rules for lockdowns. Like, it's
362
00:37:04.935 --> 00:37:05.755
it's not possible
363
00:37:06.055 --> 00:37:16.800
for you guys to do what you're doing. So you don't have your fun draft PRs and so on, but I'm not even gonna repeat what you're writing because it can't be done. And users don't want to use lock time. It should just stay within, like, really safe
364
00:37:17.260 --> 00:37:17.760
boundary,
365
00:37:18.540 --> 00:37:19.040
of
366
00:37:19.585 --> 00:37:23.285
of, you know, when you know, don't mix a lot of times and don't Mhmm. Use high.
367
00:37:23.585 --> 00:37:25.924
Don't go close to the limits and so on.
368
00:37:26.224 --> 00:37:27.444
And amazingly,
369
00:37:28.490 --> 00:37:35.230
the the people who thought they could do it actually did succeed. And today, we have, a series of lock time types in Rust Bitcoin.
370
00:37:35.585 --> 00:37:41.765
And when I want to use lock times in Bitcoin, I go to the Rust Bitcoin docs and make sure that I can construct what I'm doing.
371
00:37:42.785 --> 00:37:44.085
I mean, I check that,
372
00:37:44.770 --> 00:37:58.105
the other the values that I want to use. I can actually use the Rust Bitcoin API to do what I'm trying to do. If I'm unsure what some of the rules are, typically, I'll check the Rust Bitcoin source code rather than trying to check the BIP and trying to check the reference code in Bitcoin Core.
373
00:37:58.964 --> 00:38:02.880
And if I even if I need to dig into the the BIP stuff,
374
00:38:03.260 --> 00:38:09.680
the API documentation for Rust Bitcoin have citations to the BIP for every rule that we have and everything that we do.
375
00:38:10.285 --> 00:38:12.545
And that I think was actually a tremendous
376
00:38:13.885 --> 00:38:16.385
amount of work even if you don't care about Rust
377
00:38:17.109 --> 00:38:19.770
in making the bits themselves more accessible.
378
00:38:20.630 --> 00:38:21.450
So that,
379
00:38:22.230 --> 00:38:32.635
I mean, we went from from me saying that, like, no human could possibly understand this to now there's, you know, docs.rs slash Bitcoin, and you can you can look up the answer to whatever your question is.
380
00:38:33.255 --> 00:38:35.995
I'd say Rust Bitcoin also has very good examples.
381
00:38:36.450 --> 00:38:37.270
Like, they're extensively
382
00:38:37.890 --> 00:38:44.870
examples as well as documented. That's that's a goal we have for BDK is to have as many good concise examples for a lot of these things. Because
383
00:38:46.895 --> 00:38:51.395
myself, the first thing I'll look for is an example before I read the docs. And so a lot of people do that.
384
00:38:52.255 --> 00:38:57.300
I'm getting a warm fuzzy feeling right now because while this is a shared effort, I've put a lot of effort into that lockdown.
385
00:38:58.319 --> 00:39:06.275
So the downside is I put a comment at the top, and it literally says, if you haven't spent 3 days reading a bit, you probably don't wanna use all these functions.
386
00:39:06.655 --> 00:39:17.359
The downside that I didn't notice is I should have written, if you haven't spent, like, 3 weeks reading the docs, don't patch this module. Because every time I have to review it, it's so hard that I have to go back and read the PIP again.
387
00:39:17.819 --> 00:39:23.295
So just don't touch it anymore unless you wanna spend a long time going in. I'm glad I'm not the only one.
388
00:39:24.395 --> 00:39:30.150
I, I just wanna say, like, just to, like, Andrew's note, I think one of the success stories of Rust is
389
00:39:30.530 --> 00:39:37.430
being able to model a the problem space really well and sort of codify it into the Rust type system
390
00:39:37.965 --> 00:39:39.665
and just make it really concrete,
391
00:39:40.685 --> 00:39:42.205
you know, what's actually going on,
392
00:39:43.565 --> 00:39:46.625
you know, in in inside of our nodes, inside of our wallets.
393
00:39:47.680 --> 00:39:48.180
And,
394
00:39:48.480 --> 00:39:50.400
yeah, actually make it in a way,
395
00:39:50.800 --> 00:39:52.020
that that you can
396
00:39:52.640 --> 00:39:54.215
sort of write software with it
397
00:39:54.695 --> 00:39:55.355
really productively
398
00:39:55.735 --> 00:39:57.355
and actually get up and running,
399
00:39:58.055 --> 00:40:00.235
and put something out there for people to use
400
00:40:00.535 --> 00:40:01.275
and feel
401
00:40:01.750 --> 00:40:06.330
relatively good about it. You know? I think that's one of the big big success stories.
402
00:40:07.270 --> 00:40:14.025
Yeah. So something else that came up I noticed between a lot of the projects is that we've kind of used distinctions between, like, specification
403
00:40:14.405 --> 00:40:16.905
driven ones and then, like, the reference implementations.
404
00:40:17.205 --> 00:40:25.390
Right? And so I know, like, for LDK, LDK generally is, like, aligns with the lightning spec, and then there's LDK node, which is a reference implementation
405
00:40:26.010 --> 00:40:31.755
for it. And for the reference implement like, for Fedimint, like, there is no specification for it. There is the Rust implementation,
406
00:40:32.055 --> 00:40:39.340
and that's it. And for a lot of the Rust Rust reference implementations that we do, because we can export them with language bindings to other,
407
00:40:40.040 --> 00:40:45.420
to other languages as well. Right? Suddenly, you, like you know that when you get it, this is a correct implementation
408
00:40:45.960 --> 00:40:51.015
of what should be happening, right, either in the lightning spec or within the big one spec.
409
00:40:51.795 --> 00:40:53.655
We've got Matt and Tino
410
00:40:54.080 --> 00:40:58.260
for from LDK guys. You guys wanna talk about the differences between, like, LDK node and LDK,
411
00:40:58.560 --> 00:40:59.460
maybe? Sure.
412
00:41:00.000 --> 00:41:00.500
So
413
00:41:01.245 --> 00:41:02.385
LDK is great.
414
00:41:03.005 --> 00:41:07.345
LDK tries to implement the specs all correctly and gives a lot of customizability
415
00:41:07.645 --> 00:41:08.385
to users.
416
00:41:10.319 --> 00:41:10.819
And,
417
00:41:12.000 --> 00:41:14.020
Yeah. Doing that is pretty powerful.
418
00:41:14.960 --> 00:41:17.520
It is, though, pretty big, and it's pretty
419
00:41:18.095 --> 00:41:22.674
it has different modules that need to be integrated to build a full lightning node.
420
00:41:23.934 --> 00:41:30.260
Which is great because they can be switched out. You can integrate lightning in your already existing wallet environment and stuff like that.
421
00:41:31.200 --> 00:41:32.820
But it's, not entirely
422
00:41:33.120 --> 00:41:36.365
trivial to get started. So the idea of the LDK Node project
423
00:41:36.904 --> 00:41:43.085
is to make it much, much easier to get started with a simple note library, essentially,
424
00:41:43.730 --> 00:41:44.630
with a smaller
425
00:41:45.010 --> 00:41:45.510
opinionated
426
00:41:46.049 --> 00:41:47.750
API surface that is
427
00:41:48.289 --> 00:41:52.789
much more controllable and gives more sane defaults that LDK already does.
428
00:41:53.875 --> 00:41:54.935
Yeah. That's the core
429
00:41:55.235 --> 00:42:00.855
idea basically of LDK node to be a bit more, let's say, opinionated, a bit more conservative,
430
00:42:01.580 --> 00:42:04.060
but also a bit more fail safe for,
431
00:42:04.460 --> 00:42:04.960
users,
432
00:42:05.660 --> 00:42:09.360
essentially. And, LDK node comes with an integrated BDK wallet, so
433
00:42:09.660 --> 00:42:10.720
we are basically,
434
00:42:11.835 --> 00:42:13.935
not only Rust Bitcoin users,
435
00:42:14.315 --> 00:42:16.255
but also BDK users ourselves.
436
00:42:18.380 --> 00:42:25.340
Yeah. And, I mean, just Ilya said most of the work. He's not gonna brag about it, but I think the feedback we've had from people has been really great.
437
00:42:26.060 --> 00:42:27.280
It really is just
438
00:42:27.635 --> 00:42:29.335
one library you take as a dependency.
439
00:42:30.035 --> 00:42:34.295
It's in Rust, but supports many other languages through their great language findings,
440
00:42:35.130 --> 00:42:36.589
that exist in the Rust ecosystem.
441
00:42:36.970 --> 00:42:39.869
You know, you add this dependency to your app or your
442
00:42:40.250 --> 00:42:43.529
program or whatever it is and you call, like, 3
443
00:42:44.194 --> 00:42:50.375
you call one function with a few configuration options, and you have a lightning wallet, bitcoin on chain wallet.
444
00:42:51.315 --> 00:42:53.335
You get the whole thing there ready to go.
445
00:42:54.100 --> 00:43:02.565
So it it really the the feedback we've gotten from people is that it it really just works super easy. You don't have to think about it. You get a you get a whole wallet. You get lightning support.
446
00:43:03.045 --> 00:43:06.185
Yep. And it's awesome. For, Feddy Mint, so,
447
00:43:06.645 --> 00:43:13.100
for a follow on to 0 dot 4 so 0 dot 4 dot 1, we have LDK gateway integration for that, and that was, like,
448
00:43:13.480 --> 00:43:30.049
extremely straightforward for just adding the LDK node initially. But then we have, like, this Fedimint specific stuff. And so, one of the another thing that came out of this was trying to figure out where do we have to fork it, where do we need to what can we use that we're not using yet. But just generally speaking, it's like a very
449
00:43:30.670 --> 00:43:40.725
effective note in a box that you just kinda drop there, and then you can add what you need on top of it. Matt, I don't think, so we covered, like, the origins for Rust Bitcoin and, BK. You wanna cover the origins for,
450
00:43:41.345 --> 00:43:47.440
LDK and Rust Lightning? Yeah. I mean, it was basically the same as as Rust Bitcoin. Right? I wanted to learn Rust. I
451
00:43:47.740 --> 00:43:53.680
wanted to learn Lightning, and so I started writing a lightning note in Rust, and it was just a toy. And then,
452
00:43:54.795 --> 00:44:00.415
then I kind of looked back and I spent a few months on it and was like, alright. Well, there's like a lightning note thing here that I wrote.
453
00:44:01.355 --> 00:44:01.855
What
454
00:44:02.869 --> 00:44:13.265
is this just a toy that I should throw away now now that I've learned a little bit about these things? Or, you know, should I find a niche in the market of lighting nodes that actually where this can add real value?
455
00:44:14.605 --> 00:44:15.105
And
456
00:44:15.565 --> 00:44:29.635
we obviously kept working on it. We decided this was great when we founded Spiral. We decided that actually this is something that the whole team should work on and dedicate a lot of resources to. And I think it's now probably by far the lightning node with the most engineering resources on it,
457
00:44:30.355 --> 00:44:31.975
at least working on the lightning part.
458
00:44:32.755 --> 00:44:36.135
But so yeah. I mean, we, you know, we looked at it. We said,
459
00:44:36.915 --> 00:44:38.855
what exists in the lightning
460
00:44:39.560 --> 00:44:45.740
implementation market and what doesn't exist? And what exists and existed at the time and still exists today is
461
00:44:46.040 --> 00:44:47.740
lightning nodes, full binaries
462
00:44:48.305 --> 00:44:50.405
that you take and run on your server,
463
00:44:50.705 --> 00:44:52.405
that route payments, that
464
00:44:52.705 --> 00:44:55.685
do all this stuff and, like, you're an IP and RPC interface,
465
00:44:56.145 --> 00:44:58.619
but not something you can take and embed.
466
00:44:59.079 --> 00:45:00.059
So there's,
467
00:45:01.000 --> 00:45:02.299
Phoenix has their
468
00:45:02.599 --> 00:45:10.965
library that they use to build their app, and you can theoretically take that and embed it, but that's not really something they they primarily support. That's not their goal with the project.
469
00:45:11.585 --> 00:45:12.085
LND
470
00:45:12.869 --> 00:45:14.650
is one big honk and go binary.
471
00:45:15.430 --> 00:45:27.535
In theory, you can run it in the mobile app, but it's pretty honking. It's takes a lot of resources. It it's a little it's not designed for it. Core Lightning is a multi daemon architecture, and that's not even you you can't get that thrown on the mobile. Good luck.
472
00:45:28.420 --> 00:45:29.160
But LDK,
473
00:45:29.620 --> 00:45:35.480
not only is it an embedded library, it's designed to run on any environment, whether it's mobile or server,
474
00:45:36.385 --> 00:45:37.525
but also Wasm.
475
00:45:37.825 --> 00:45:41.605
So, you know, we do all kinds of crazy stuff. Like, we stub out the TCP
476
00:45:42.305 --> 00:45:47.290
library so that it's actually an interface, And this lets people like Mutiny go and take lek,
477
00:45:47.910 --> 00:45:50.490
embed it in their WASM binary
478
00:45:50.869 --> 00:45:53.645
embed a WASM binary of it in the browser.
479
00:45:53.945 --> 00:46:02.880
And when they wanna make a raw TCP connection out to a Lightning node, they can do that. They just have to stub it out and use a proxy that that proxies out your WebSockets.
480
00:46:03.660 --> 00:46:05.200
So we we stub out everything.
481
00:46:05.740 --> 00:46:08.380
Like Elias mentioned, this does make our API pretty big.
482
00:46:08.700 --> 00:46:11.520
We everything, every system call, every anything
483
00:46:11.900 --> 00:46:13.905
is configurable by the user,
484
00:46:14.205 --> 00:46:18.465
and that's just a lot of work to have to figure all that stuff. So that's why lpk node exists.
485
00:46:18.765 --> 00:46:24.200
But for those who want it, wanna do something super custom, wanna embed lightning in some really weird environment,
486
00:46:24.820 --> 00:46:28.845
that's why it exists and it works great for them. And it's the only game in town still.
487
00:46:30.205 --> 00:46:30.925
Very cool.
488
00:46:31.565 --> 00:46:35.265
Yeah. I think for now, one of the talk about? Why Cody's not wearing shoes.
489
00:46:36.445 --> 00:46:39.590
I took them off. Get it go. Make yourself a note.
490
00:46:40.210 --> 00:46:43.830
Is there Yeah. Is there more does Scott do more to this? No. They're right here.
491
00:46:45.355 --> 00:46:54.640
Yeah. Maybe let's go shoes. Yeah. Maybe let's go around again and for, what the contributor set looks like right now for each of the different projects. Right? Like, sort of, I think
492
00:46:55.180 --> 00:47:12.464
for people getting started within Rust Bitcoin and, like like we said, like, they kinda land at BDK, but, like, more on the dev side for contributors, right, of, like, what does it look like right now, like, for maintainers versus kind of, infrequent contributors and then, like, places where maybe you're missing, like, dev talent that you'd, like, wanna have?
493
00:47:14.880 --> 00:47:26.685
And honestly, on on Rust Bitcoin, because as I mentioned, we're changing the API so quickly and and doing so many crazy things. It's a little bit possible to new contributors. I don't mean that, like, we're mean. I try try not to be,
494
00:47:27.085 --> 00:47:32.369
you know, sometimes we're not You're not in you're not intentionally hostile? Yeah. Yeah. We're not we're not intentionally
495
00:47:32.670 --> 00:47:41.135
personally hostile with the environment is, like, when you show up and you're trying to do stuff and you're like, oh, well, for one thing, there's a lot of issues that look like
496
00:47:41.515 --> 00:47:48.060
they're straightforward, like, newbie issues where one of us just kinda, like, threw up an issue to remember something like, oh, you know, we should
497
00:47:48.460 --> 00:48:06.175
restrict the range of bit 32 numbers, right, kinda thing. And a new contributor shows up. They're like, oh, you know, create a a type wrapping a number, restrict the range kinda thing. Here we go. And then they do this and they get 200 plus comments on their pull request Mhmm. Saying that the way that they're modeling,
498
00:48:06.900 --> 00:48:08.040
derivation paths
499
00:48:08.580 --> 00:48:09.480
doesn't allow,
500
00:48:10.260 --> 00:48:24.025
like, infallible runs when you're trying to do a public derivation of a a path that only has public keys. And how we want to have the underlying representations being compatible so that we can use unsafe code to cast between our different wrappers of u 32
501
00:48:24.420 --> 00:48:38.725
and how we have this mental model of how people should use the thing, which matches the bit to be clear and then match an actual usage. But, you know, we didn't write it down because, I mean, it should be obvious in the API. And so it will be obvious as soon as we get to it. And, anyway, instead of
502
00:48:39.025 --> 00:48:46.630
I mean, maybe we should be hostile. Maybe we should see, like, shoe instead of, like, offering individual critiques of these kind of things.
503
00:48:48.050 --> 00:48:57.950
But what do we need on Rust Bitcoin? Right? But, I mean, what we need I would say we're actually not hurting for developer talent right now. And and that's a dangerous thing to say because we will be. Right? Tobin and I will get old,
504
00:48:58.430 --> 00:49:00.690
as we'll we'll kick, and then we're going to regret,
505
00:49:01.550 --> 00:49:05.329
you know, hoarding our stash of of Rust Bitcoin APIs.
506
00:49:05.710 --> 00:49:06.210
But
507
00:49:07.525 --> 00:49:10.105
what we can use obviously is more review.
508
00:49:10.805 --> 00:49:12.345
We can always use more review.
509
00:49:12.645 --> 00:49:18.130
We can use documentation and examples. Probably the the biggest thing is people who are using our code
510
00:49:18.670 --> 00:49:21.330
if they can show up and and discuss what they're doing.
511
00:49:21.630 --> 00:49:22.130
And
512
00:49:22.750 --> 00:49:23.250
if
513
00:49:23.714 --> 00:49:24.214
they
514
00:49:24.755 --> 00:49:30.135
a lot of people try to use our code base and they they find that something's difficult and they'll kinda find a way to work around it.
515
00:49:30.435 --> 00:49:30.935
And
516
00:49:31.950 --> 00:49:34.690
at best, this represents a gap in our documentation,
517
00:49:35.070 --> 00:49:57.099
right, where they they really struggle because we didn't explain something. But at worst, there is actually gaps in our API. We didn't know that people were using it in a certain way. So what would be awesome is if the people using our crate could show up and say, like, this was a pain point for me, and I had to do this crazy hack. And, like, I did this, but it doesn't feel right. Or, like, I did this. And, like, I think you deliberately made this hard because you guys are assholes.
518
00:49:57.455 --> 00:50:02.115
And, like, we would appreciate that kind of feedback because most of the time, I think we're just oblivious.
519
00:50:03.455 --> 00:50:14.880
Yeah. One thing I would say is all open source projects, all free software projects always say this. We need more reviewers. And then when you come to a new project, you're like, how do I review this? I don't know all this stuff you're talking about.
520
00:50:15.215 --> 00:50:17.395
But you can ask well placed questions,
521
00:50:18.255 --> 00:50:36.935
and you can ask them by just looking at the diff. And then you bring up the code yourself and you look around it, and you're like, I can't see any reason why you'll do that. And so you can just ask the question, why did you use that type? Why didn't you use the type? Why have you put that function name sort of thing? And if the person doing the patch can't say, oh, it's because of x y z,
522
00:50:37.315 --> 00:50:43.390
then maybe they overlooked it. So, like, when we're totally infallible, we have to make mistakes all the time, some of us more than others.
523
00:50:44.010 --> 00:50:53.075
And that that's okay. You know? And so a well placed question is really useful. So, yeah, anyone can come and review, look at the code, learn more yourself, and ask good questions,
524
00:50:53.615 --> 00:50:55.234
and, it's really useful.
525
00:50:56.530 --> 00:51:01.110
I I would just sort of second this for BDK. This is probably true for any open source project, especially,
526
00:51:01.490 --> 00:51:05.735
you know, Bitcoin, but probably any open source project. Like, start as a reviewer, ideally.
527
00:51:07.315 --> 00:51:20.310
We have a new full time contributor who came in, valued MAML, and he just started reviewing. And he just did really great reviews. Like, he just really looked at the code, thought about it hard, and, you know, just by doing that, became, you know, a full time maintainer on the project.
528
00:51:20.765 --> 00:51:35.530
The other thing is, of course, documentation since we like, if you wanna come and change your API, that's great. Love to have your contributions, but don't expect it to get merged for another 6 months or a year. So just have expectations with that. The stuff you wanna get stuff involved right away, it's gonna be documentation,
529
00:51:35.910 --> 00:51:37.770
examples, potentially side protocols.
530
00:51:38.470 --> 00:51:39.190
You know, we're,
531
00:51:39.954 --> 00:51:50.260
you know, we provide a basic core wallet, but we need things like, you know, protocols for chain syncing. We have a a contributor here in the room, Rustation Rob, who, you know, built a compact block filter
532
00:51:50.640 --> 00:51:51.940
implementation for BDK
533
00:51:52.400 --> 00:52:09.540
and is integrating that, those kind of contributions. The nice thing about those is you can go You don't really need our review. You can go ahead and just write it and then help integrate it. We'll help you integrate it and, you know, get it into our docs. But yeah. Like, so immediate contributions, docs, side, you know, side add ons, you know, PayJoint's another example
534
00:52:10.000 --> 00:52:12.260
that, you know, and the Casu stuff. We have Casu,
535
00:52:12.720 --> 00:52:20.555
Rust contributor here. You know, those kind of projects are great because you don't really need our permission or or review. It you know, we'd we'd certainly love to help you, but,
536
00:52:21.470 --> 00:52:25.250
you know, for the core library, it's mainly gonna be documentations and testing at this point.
537
00:52:26.030 --> 00:52:29.730
But yeah. So I think that's, you know, that's where we're at right now with BDK.
538
00:52:31.525 --> 00:52:32.025
Yeah.
539
00:52:33.045 --> 00:52:38.265
I mean, in LDK, we also all also really welcome any new contributors, generally.
540
00:52:39.330 --> 00:52:42.470
I would second, like, starting with review and just starting
541
00:52:42.850 --> 00:52:45.990
basically asking questions is is often the right way because,
542
00:52:46.535 --> 00:52:47.275
of course,
543
00:52:48.214 --> 00:52:49.194
new contributors
544
00:52:49.494 --> 00:52:49.994
also
545
00:52:50.295 --> 00:52:50.795
costs
546
00:52:51.174 --> 00:52:51.674
basically
547
00:52:52.214 --> 00:52:52.714
review
548
00:52:53.655 --> 00:52:54.155
time,
549
00:52:54.600 --> 00:52:56.140
especially in the beginning. And,
550
00:52:58.040 --> 00:53:06.125
so but most fresh contributors, I'm pretty aware of that. So it it's just great if a new contributor start off by reviewing and just,
551
00:53:06.585 --> 00:53:07.085
yeah,
552
00:53:08.825 --> 00:53:10.365
basically helping out with review.
553
00:53:12.089 --> 00:53:19.069
But in general, it's really great to to see that in LDK, we see a constant stream of new contributors, to be honest. And
554
00:53:20.955 --> 00:53:26.815
over time, a few really stick around and and make valuable contributions over the years,
555
00:53:27.675 --> 00:53:30.010
which is just amazing to see. So
556
00:53:31.050 --> 00:53:34.510
Is it worth mentioning at a high level, this thing we're doing, it's a meritocracy.
557
00:53:34.890 --> 00:53:43.215
So anyone can show up. And if you work hard, you try hard, you think about shit, you're not a total retard, then you can get there. And then we have things like this impression.
558
00:53:43.595 --> 00:54:09.580
Probably, you can say stuff like that, and people are gonna go, I'm like, god. That guy is like like, when they're looking at your face, they know you're just joking. It's a it's a proof of work thing. Yeah. Yep. Proof of work. But yeah. And also this is like when you're looking at someone, you get more information. Yeah. So we do these things so that when we're online, we can write messages that don't mean stuff. So if you see someone call someone spastic, then you don't have to be upset because you're like, oh, those guys actually ate together, and they drank together, and they know each other. And so that's that's the one we're doing this thing. I,
559
00:54:10.220 --> 00:54:14.320
we're, like, nearing the point where COVID and humidity stops listening to this little dispatch.
560
00:54:15.245 --> 00:54:17.905
So I just wanted to to be clear to the freaks,
561
00:54:18.445 --> 00:54:26.410
before some of you drop off, maybe. I mean, you should stick with us. I we have literally a room full of some of the most prolific Bitcoin developers in the world.
562
00:54:27.110 --> 00:54:29.210
It's kind of ridiculous and amazing.
563
00:54:31.325 --> 00:54:31.825
Rod,
564
00:54:32.205 --> 00:54:41.180
me, Harry, Josh from Bitcoin Park, we made the space available, but Russ Bitcoin Summit was possible because of of Tobin and Steve, Steve Myers.
565
00:54:43.000 --> 00:54:46.300
They they made all this happen. So you shout out to them,
566
00:54:47.000 --> 00:54:51.235
and then I'll just pass it back to Cody who's the host of today's conversation.
567
00:54:52.495 --> 00:55:00.589
I think also, you know, should we go around the horn and and do Bitcoin price predictions? Like, I think that would be more. I get their free schedule. Predictions for a technical
568
00:55:01.150 --> 00:55:03.329
So much? I think we already said 100,000,000.
569
00:55:04.109 --> 00:55:04.930
Yeah. 200,000,000
570
00:55:05.390 --> 00:55:08.755
might count predictions. Anybody think that 2.9 just bearish?
571
00:55:09.135 --> 00:55:13.475
Yes. That's too easy. I go all the hands around. Without an absolute numbers. Yeah.
572
00:55:13.935 --> 00:55:16.700
We could do Oh, like, what's speak to you around. You're on.
573
00:55:17.079 --> 00:55:17.579
Yeah.
574
00:55:18.280 --> 00:55:20.059
Oh, that got spicy. Yeah.
575
00:55:20.520 --> 00:55:25.325
If I if I have one more thing just from the sentiment side, and this is also something You're the host. Summit that,
576
00:55:25.645 --> 00:55:30.305
I saw a lot is that I think where everyone here got a lot of good feedback from
577
00:55:30.845 --> 00:55:34.880
knowledgeable people who hadn't used their project before, like, documenting
578
00:55:35.180 --> 00:55:51.335
their experience with first coming to it. Right? So it's like when you first like, a lot of people we see this a lot with Fannie Mae. It's it's hard to get the feedback for it, but one of the most valuable things you can do as a new contributor is documenting your experience of first coming to the project and trying to set it up, trying to do it yourself.
579
00:55:51.750 --> 00:56:25.375
Because normally people, if they get stuck, then they just let go away. Right? But if that doesn't end up in a GitHub issue, if that doesn't end up in something being told to the Rust Bitcoin guys, the BDK guys, the Fedmek guys, then it's not something we can fix. And so I think everybody here at the Rust Summit had a lot of good experiences with people trying out their project from the other projects because they have they they don't know how specifically how to use LDK, for example, but they're relatively knowledgeable. So relatively knowledgeable Rust programmer runs into an issue, that's something that needs to get documented. And so anybody coming to the project who can open an issue like that, that's extremely valuable.
580
00:56:25.730 --> 00:56:26.930
But, yeah, maybe
581
00:56:27.250 --> 00:56:28.150
oh, yeah. Jose?
582
00:56:28.609 --> 00:56:33.270
Before we lose folks, I just want to say how important it is to support open source.
583
00:56:34.065 --> 00:56:37.184
All of this is possible because we have, like, very big,
584
00:56:37.585 --> 00:56:46.410
and bright ideas. We have open sets. We have Grain. We could have a spiral who will kind of, like, help us organize the summit and also have a Right. Yeah.
585
00:56:46.950 --> 00:56:55.095
We also have Casa Michonne at Brazil who also supports open open source debts to also work on Buzz Bitcoin and related stuff.
586
00:56:56.035 --> 00:56:58.775
Right platform? Yes. Right platform as well. HRF.
587
00:56:59.234 --> 00:56:59.734
HRF.
588
00:57:00.640 --> 00:57:03.940
I might be missing someone. I'm here from Chaincode.
589
00:57:04.400 --> 00:57:06.900
Chaincode. Yes. Chaincode Labs as well.
590
00:57:08.335 --> 00:57:08.835
K.
591
00:57:09.214 --> 00:57:16.994
Yes. Very important. Fund your open source distributors, and everybody should donate to Open Sans. Yeah. Give us There we go. Open sans.org. Is Riot Platform Riot Mining?
592
00:57:17.690 --> 00:57:34.610
Yeah. It was Riot Blockchain then. I thought they became Riot Platform. Okay. Are they Riot Mining now? I don't know. They're awesome. I just I don't know what the name is. Them Riot. Yeah. Know what else I'm talking about. Okay. Well, then you said right platform. I know I do what you're talking about, so I had to double check there. You wanna find out? I would just I would just add,
593
00:57:35.010 --> 00:57:36.550
yeah, we can go to Spicy.
594
00:57:37.330 --> 00:57:37.830
Foundry,
595
00:57:38.290 --> 00:57:45.065
because you mentioned Riot and Riot's Mount Mining, and Foundry is, you know, the KYC suit American based pool,
596
00:57:45.525 --> 00:57:48.825
who's who's been doing great work. This is supposed to be a compliment of them.
597
00:57:50.089 --> 00:57:52.990
They recently launched their own open source,
598
00:57:54.329 --> 00:57:56.910
funding mechanism within their GUI.
599
00:57:57.345 --> 00:58:05.765
So any miner that uses Foundry can have a drop down, and I know OpenSats is supported. I believe HRF and Brinker supported. I think they're gonna add a few others.
600
00:58:06.750 --> 00:58:08.770
But that's just really cool. I think, you know,
601
00:58:09.150 --> 00:58:10.850
as a non dev myself,
602
00:58:12.190 --> 00:58:14.210
lowering the friction point to supporting
603
00:58:14.695 --> 00:58:18.795
open source contributors is incredibly important. I think a lot of people wanna support, but
604
00:58:19.575 --> 00:58:28.940
but it it's too difficult for them or they get overwhelmed, and then they get, like, decision paralysis, and then they go on and live their life and and don't make it happen. So the more ways we can make it,
605
00:58:29.720 --> 00:58:32.685
we can reduce that friction, and I think Foundry did a really good job
606
00:58:34.685 --> 00:58:39.345
with it. We worked with them pretty heavily in terms of it's literally just a drop down, and they they you can pick how much of your hash just like it's
607
00:58:39.645 --> 00:58:41.105
donated, which is awesome.
608
00:58:42.230 --> 00:58:43.370
Cool. So, Opcat.
609
00:58:43.990 --> 00:58:45.530
Andrew, you wanna kick it off?
610
00:58:46.390 --> 00:58:50.090
Sure. Alright. So for those who don't know, of course, Opcat the concatenation
611
00:58:50.390 --> 00:58:55.035
off code for Bitcoin script allows you to combine 2 elements on the stack.
612
00:58:55.734 --> 00:59:02.480
That's all that it does. So if it's a pretty low level thing, I don't think it would really affect anybody. There would be any controversy about it.
613
00:59:02.940 --> 00:59:07.360
But, you know, it's a missing functionality. I think you should put it back in the Bitcoin. And,
614
00:59:07.845 --> 00:59:14.744
yeah, it's a pretty mechanical thing, I'd say. Right? It's just like routine maintenance of the Bitcoin protocol to add a little bit more functionality.
615
00:59:15.089 --> 00:59:17.829
But I expect we should be done that in the next couple of weeks. Yeah.
616
00:59:21.170 --> 00:59:22.790
Does anyone have a different opinion?
617
00:59:23.904 --> 00:59:26.644
Well, I think a big takeaway from the,
618
00:59:27.184 --> 00:59:34.559
Bitcoin plus plus that was in Austin about script and op heads was that the order of these things is,
619
00:59:35.339 --> 00:59:36.720
currently a sufficient
620
00:59:37.099 --> 00:59:41.279
argument against basically anything that you wanna add to Bitcoin
621
00:59:41.855 --> 00:59:43.395
is that it has
622
00:59:43.695 --> 00:59:48.515
potentially unforeseen consequences. Right. Right? And so one of the big
623
00:59:49.230 --> 00:59:55.090
announcements that Rusty Russell did at Bitcoin Pixel Plus was announcing his great script restoration project,
624
00:59:55.470 --> 00:59:57.490
which is a mechanism of basically
625
00:59:57.985 --> 01:00:15.430
writing the script interpreter in a way where you can define the effect of adding a new opcode into it. And so, for example, for OPCAT, if on the engineering side, you can prove before you activate it that this is not going to increase the worst case validation time for a block,
626
01:00:15.975 --> 01:00:20.635
right, then that gets rid of a whole class of arguments, which I think is sufficient
627
01:00:21.015 --> 01:00:23.755
for anybody now that Bitcoin is so big
628
01:00:24.100 --> 01:00:28.500
to halt any new opcode activation or any sort of functionality upgrade up,
629
01:00:29.460 --> 01:00:29.960
upgrade,
630
01:00:30.420 --> 01:00:36.885
just generally speaking. Right? So, like, on the in the Twitter sphere, is the fact that there are unanswered questions about this opcode,
631
01:00:38.145 --> 01:00:43.950
I think that's sufficient for them to say, no. I don't wanna support it. Right? Yeah. I mean, the concern is, like, edge cases that people
632
01:00:45.049 --> 01:00:46.829
that, like, Andrew can't foresee.
633
01:00:47.289 --> 01:00:48.865
Exactly. And the,
634
01:00:49.345 --> 01:00:52.885
the goal of Rusty's Great Script Restoration Project is
635
01:00:53.265 --> 01:00:55.205
what if we can define beforehand
636
01:00:55.799 --> 01:01:03.135
what this is going to look like and prove that there's not gonna be this edge case when it comes to increasing specifically, when it comes to increasing validation time of a block.
637
01:01:03.615 --> 01:01:21.960
Right. From a technical perspective, Cody's totally right. Right. There are some ways that we could extend Bitcoin that actually would break the validation model and or would make it harder to reason about the validation model. You can imagine adding opcodes that did, like, random disk access or opcodes that added extra metadata to your TXOs
638
01:01:22.675 --> 01:01:27.975
and meant that when you were checking whether coins have been spent or not, there's also a weird thing that you're doing.
639
01:01:28.515 --> 01:01:32.480
One of the the biggest ironies of off cap, right, is that it
640
01:01:32.940 --> 01:01:40.960
very easy to reason about in terms of node cost. Right? It doesn't introduce any new ways to introspect transactions. It doesn't introduce any new ways
641
01:01:41.265 --> 01:01:42.165
to do transactions.
642
01:01:42.625 --> 01:01:47.605
All it does is take 2 elements in a stack while you're running a script and put them together.
643
01:01:48.225 --> 01:01:48.725
But
644
01:01:49.619 --> 01:01:50.119
if
645
01:01:50.820 --> 01:01:52.520
you go to a higher layer,
646
01:01:53.060 --> 01:01:57.160
it turns out that this allows you to get access to transaction data
647
01:01:57.460 --> 01:02:04.305
on the stack. And you do this by using the checksig opcode, which is an opcode that reads the whole transaction and and checks that you've signed all of it.
648
01:02:04.845 --> 01:02:06.520
Using offcat, you can kinda like
649
01:02:07.560 --> 01:02:12.620
in conjunction with checks that you can kinda pull the transaction data out of that. And as a result,
650
01:02:13.160 --> 01:02:15.260
now you can do things like covenants,
651
01:02:15.815 --> 01:02:16.315
and
652
01:02:16.695 --> 01:02:25.340
now you can do things like colored coins directly on chain. And you maybe could do like DEXs or some sort of multi asset thing. And you've gotta think
653
01:02:25.880 --> 01:02:30.220
about NUV, and you've gotta think about mining incentives. And the whole thing quickly becomes
654
01:02:31.080 --> 01:02:43.520
kind of intractable in in much of the ways Cody was was worried about from a techno perspective, but but here we're on a much higher layer trying to reason about economic incentives in a world where people are doing arbitrary stress. Yeah. Like, you know, because it's a line that
655
01:02:44.000 --> 01:02:48.820
whatever. Actually, you talk. Yeah. I was about to say the same thing. So I think the problem with engineers.
656
01:02:49.600 --> 01:02:50.980
And and my personal PMD
657
01:02:51.280 --> 01:03:02.005
on the pop cut is I don't care. Like, I personally don't have any use for it. My the thing I'm working on right now, I'm gonna use for it. So I personally don't care whether it's or not. So I'm not speaking
658
01:03:02.305 --> 01:03:03.204
against it
659
01:03:03.540 --> 01:03:18.055
because I I I don't like it or something. I mean, feel free to speak against it if you like. Well, I mean, yeah, what I wanna say is pretty much what Andrew said. So engineers kinda get stuck into this. I can prove there's no additional cost to that. That's okay. That's fine. But then there's,
660
01:03:18.595 --> 01:03:20.055
potentially unintended nuances
661
01:03:20.690 --> 01:03:21.990
that happen because of,
662
01:03:22.690 --> 01:03:37.735
new use case we should be able to. So Yeah. Yeah. Okay. So I've heard, very, very smart people in this room at other times, you know, not to quote people out of context, but, say things along the lines of, opcat may introduce non trivial NVMe v vectors. But, I've never
663
01:03:38.330 --> 01:03:44.830
I never understand what people mean by that. It seems like nobody's able to specifically talk about the MVP vectors. So I get it.
664
01:03:46.025 --> 01:03:50.685
I was having lunch, but we were listening to the the live stream in the other room. So
665
01:03:51.945 --> 01:03:53.245
You're gonna be back.
666
01:03:53.545 --> 01:03:55.480
So I didn't finish my lunch. I'm a little annoyed
667
01:03:56.359 --> 01:03:58.140
Thank you for your sacrifice. Yeah.
668
01:04:00.280 --> 01:04:01.020
I I think
669
01:04:01.320 --> 01:04:04.700
so unlike every other self work we've ever done,
670
01:04:05.265 --> 01:04:05.765
covenants
671
01:04:06.865 --> 01:04:08.484
might materially change
672
01:04:09.665 --> 01:04:13.125
the kind of high level things you can do with Bitcoin, like,
673
01:04:13.665 --> 01:04:14.165
Segwit
674
01:04:14.630 --> 01:04:16.730
enable some things with the,
675
01:04:17.430 --> 01:04:22.330
no malleable transaction IDs, you know, make lightning more practical, and a lot of things
676
01:04:23.365 --> 01:04:24.985
more practical, same with CSV.
677
01:04:25.525 --> 01:04:29.225
But the amount of new things you can do with those
678
01:04:29.660 --> 01:04:30.799
pales in comparison
679
01:04:31.420 --> 01:04:35.680
to covenants. I think we've seen this with a lot of discussion around,
680
01:04:37.224 --> 01:04:42.045
all kinds of ideas that people have for covenants both with CTV, so non recursive covenants.
681
01:04:42.345 --> 01:04:43.085
And now,
682
01:04:43.785 --> 01:04:49.859
there's more discussion about recursive covenants again. So, cat does enable fairly inefficient, but in theory,
683
01:04:50.400 --> 01:04:52.180
are arbitrary recursive covenants.
684
01:04:52.480 --> 01:04:52.980
So,
685
01:04:54.715 --> 01:04:58.655
if you imagine and and I think it's important to recognize this because,
686
01:04:58.955 --> 01:05:02.495
you know, we can't screw Bitcoin up. We we really have
687
01:05:02.875 --> 01:05:03.375
introduced
688
01:05:04.350 --> 01:05:26.720
Meevil in a big way. We're we're kind of focused. Like, we really are at that point focused. Yeah. But, like, what are the I I we'll get there. Right? I just wanna set the stage a little bit. Yeah. Yeah. Well, I just just real quick, Matt. Like, MEV is minor extracted value. It's like adding different variables that miners can play with the chain to try and extract more profit, so it it fucks with everybody.
689
01:05:27.100 --> 01:05:30.080
Yeah. So, I mean, we've seen this on Ethereum. Right? So in Ethereum,
690
01:05:30.765 --> 01:05:35.265
creating a block template, so selecting the transactions that you wanna block is sufficiently complicated
691
01:05:35.964 --> 01:05:36.625
that there's
692
01:05:37.085 --> 01:05:42.049
2, 3, maybe only one company that can really competitively build a block template.
693
01:05:42.670 --> 01:05:49.355
Right? And so there's really only 2 or 3 companies that can mine that would be able to mine Ethereum profitably,
694
01:05:49.815 --> 01:06:02.300
if it were proven to work still. Proof of stake, you actually have some other benefits that help here. You can stake non profitably or stake with less revenue, it's not really a big deal. If you're a miner, you're mining with less revenue than all your competition,
695
01:06:02.680 --> 01:06:04.525
you're gonna go out of business. You're fucked.
696
01:06:05.885 --> 01:06:14.065
So, we'd end up with, you know, the same world that Ethereum has which, again, this is unrelated to their centralization, do you have proof of stake and stake centralization,
697
01:06:14.770 --> 01:06:15.910
Just the centralization
698
01:06:16.290 --> 01:06:16.790
of,
699
01:06:17.570 --> 01:06:20.470
just the centralization that is created through Mev
700
01:06:21.650 --> 01:06:22.630
and for Beeville
701
01:06:23.585 --> 01:06:41.975
results in there only being a few milliseconds in mine in mine. What does Maval stand for? Is it Just just Maval. Maval. Okay. Got it. That's what I thought. The actual definition of Mav is is much broader. It's super it, like, includes fucking everything. So it's kind of a useless term in practice. If you start talking to, like, a billion people,
702
01:06:42.595 --> 01:06:46.615
it it it's not what we're talking about. We're talking about something much more specific, and it's the centralization
703
01:06:47.075 --> 01:06:53.270
Got it. From Mev and those kinds of systems. So And Meville. It's a different term. Call it Meville. Sticking with it.
704
01:06:53.890 --> 01:06:56.390
But, anyway, so to answer the original question,
705
01:06:58.645 --> 01:07:08.280
there are a number of different MEV vectors in Ethereum that create a lot of the MEV, but I think by far and away the biggest or maybe 30 or 40 percent of Mav
706
01:07:08.580 --> 01:07:10.920
is DEX volume. So people trading
707
01:07:11.700 --> 01:07:14.120
their random coins, some NFTs
708
01:07:14.580 --> 01:07:15.080
for,
709
01:07:16.724 --> 01:07:19.144
USDC usually, but often Ethereum itself.
710
01:07:19.845 --> 01:07:21.545
So the most immediate
711
01:07:21.924 --> 01:07:23.860
concern for Bitcoiners should be
712
01:07:24.180 --> 01:07:26.920
can and will someone build a DEX with this,
713
01:07:27.620 --> 01:07:32.440
and especially also AMMs, but just a gen general DEX might be problematic.
714
01:07:34.085 --> 01:07:39.145
And it's not clear with CAT. I think it's very unclear. Right? So there's,
715
01:07:39.605 --> 01:07:44.290
a lot of people who've argued, no, you can't build a DEX because the existing
716
01:07:44.670 --> 01:07:45.810
Colored coin protocols
717
01:07:46.590 --> 01:07:47.090
don't
718
01:07:47.470 --> 01:07:58.960
allow you to build a DEX with cat, but that's not an interesting threshold. Right? Because if you can build a DEX and especially if you can build an AMM, people will And so someone will come up with a different coin protocol.
719
01:07:59.260 --> 01:08:03.600
And there are some I think I've seen at least 1 or 2 proposals for ones that are
720
01:08:04.025 --> 01:08:09.485
pretty bad, but in theory, you can kinda get a deck. You can get a dex, but
721
01:08:09.785 --> 01:08:10.765
AMM maybe.
722
01:08:12.540 --> 01:08:18.880
So so it's unclear. There's definitely been very little research into this. There's been, like, a few people talk about it on Twitter,
723
01:08:19.215 --> 01:08:20.835
and they seem to have different opinions,
724
01:08:21.535 --> 01:08:25.235
and it hasn't gotten very far. So that's the immediate concern.
725
01:08:26.690 --> 01:08:33.805
There's other forms of Mab that could pop up. Right? So there's base roll ups or things that people are clearly working to build,
726
01:08:34.765 --> 01:08:45.870
and if we see those become large, they will be a platform for for DEXs and AMMs, and we won't that it doesn't matter whether the script supports it directly. If you have a a base troll up, you can build that.
727
01:08:46.650 --> 01:08:50.545
So there were various things that could happen with or without CAT.
728
01:08:51.085 --> 01:08:53.505
I think it's clear that CAT makes them much easier.
729
01:08:53.885 --> 01:08:58.785
So bit VM, it's not, you know, it's still very early research, bit VM,
730
01:08:59.440 --> 01:09:08.900
efficiency numbers, but currently the efficiency numbers look like it might end up being the case that with cat, you can practically build bit VM, without cat, you can't.
731
01:09:09.475 --> 01:09:19.490
So the current efficiency numbers for bit VM are, like, you know, if you wanna actually get a proof that hits the chain, you're talking about a week's worth of blocks or maybe more. So, like, maybe that
732
01:09:19.870 --> 01:09:25.890
isn't practical, but certainly with CAT it is. We've seen numbers that are, like, you know, a few blocks or maybe one block,
733
01:09:26.742 --> 01:09:29.235
and that becomes more practical. So, you know, maybe
734
01:09:29.695 --> 01:09:34.835
with CAT, we would see based roll ups, but without we wouldn't. It's kind of unclear right now.
735
01:09:35.520 --> 01:09:36.659
And so I think there's
736
01:09:37.040 --> 01:09:38.500
there's a lot of
737
01:09:39.199 --> 01:09:40.260
ongoing research
738
01:09:40.639 --> 01:09:41.699
on several directions
739
01:09:42.405 --> 01:09:44.105
that will give us a little more clarity
740
01:09:44.405 --> 01:09:46.265
on what you can build with CAT,
741
01:09:47.205 --> 01:09:51.065
but also, I think it's, again, just really important to recognize that
742
01:09:51.445 --> 01:09:51.945
we,
743
01:09:52.489 --> 01:09:55.150
like, we screwed this specific thing up,
744
01:09:55.690 --> 01:09:56.429
we're screwed.
745
01:09:56.969 --> 01:09:57.469
Yeah.
746
01:09:57.849 --> 01:09:58.349
Yeah.
747
01:10:00.055 --> 01:10:04.775
There are 2 two points to add. One quick one. Right? Because as Matt said, there's not a lot of research into this,
748
01:10:05.175 --> 01:10:06.155
and I should
749
01:10:06.535 --> 01:10:10.350
show for the, start where a research grant related to OPCAT.
750
01:10:10.970 --> 01:10:16.270
If you have any ideas for how OPCAT can benefit or more importantly, confirm Bitcoin,
751
01:10:17.115 --> 01:10:30.030
you can look up this stuff where OPCAT research grant. They have a $1,000,000 that they're ready to give out for, for small kinda like 3 to 6 months research grants. I'm not affiliated with StarkWare, but I am sharing this research grant. So I should
752
01:10:30.410 --> 01:10:33.870
just kinda throw that out there. And then the other kinda more
753
01:10:34.215 --> 01:10:39.275
philosophical thing, right, is that the the threshold amount is describing where if we
754
01:10:40.055 --> 01:10:45.690
cross this line in Bitcoin and then we have all of a sudden, we can create DAX and we can create MEV.
755
01:10:46.389 --> 01:10:47.610
This isn't, like,
756
01:10:48.949 --> 01:10:54.395
unique to op cap. We're kind of, like, beside this cliff in Bitcoin development.
757
01:10:54.775 --> 01:11:01.510
And It's also fuzzy. Like, it it is clear you can build base roll ups today. They just can't be bridged, so maybe people won't.
758
01:11:01.970 --> 01:11:04.230
There's cases of people doing,
759
01:11:04.770 --> 01:11:06.070
some of these existing
760
01:11:07.330 --> 01:11:08.995
centralized exchanges with,
761
01:11:10.195 --> 01:11:10.695
with,
762
01:11:11.795 --> 01:11:12.775
token, with
763
01:11:13.075 --> 01:11:13.575
ordinals,
764
01:11:14.595 --> 01:11:21.080
which could, in some cases, create Mev. You know, you also look at some of these other side chain protocols
765
01:11:21.460 --> 01:11:25.560
that that exist in merge mining. Like, merge mining could create substantial Meebel.
766
01:11:25.940 --> 01:11:29.155
There there are a lot of ways that we could create it, and it's not clear,
767
01:11:29.535 --> 01:11:31.875
you know, it's very fuzzy. It's not a clear line.
768
01:11:32.335 --> 01:11:37.155
It's not clear which things we add to Bitcoin would shift that line or not,
769
01:11:37.535 --> 01:11:43.030
but it is something we need to do a lot of research on before we make changes. Right. Yeah. And it is
770
01:11:43.670 --> 01:11:47.610
yeah. It is definitely a fuzzy line, and there are some ways like, there are external
771
01:11:49.265 --> 01:11:50.405
external incentives
772
01:11:50.705 --> 01:11:53.045
that you can create for Bitcoin. So for example,
773
01:11:53.425 --> 01:11:58.969
on the Ethereum chain, I I conveniently have the block counter in front of me. Right? I could write an Ethereum contract that will pay you out,
774
01:11:59.429 --> 01:12:02.329
1 eighth for every instance of block 855-119
775
01:12:03.190 --> 01:12:12.945
that you give me. And then miners, so maybe it has to be more than 1 ETH. I don't know what ETHs are worth, but, you know, maybe a 1,000,000. Alright. Well sorry. I'll give you infinity,
776
01:12:13.260 --> 01:12:14.720
so it's worth, you know, a Bitcoin.
777
01:12:15.260 --> 01:12:15.760
And
778
01:12:16.300 --> 01:12:18.880
I'm gonna give you this for every instance of block 855-119.
779
01:12:20.140 --> 01:12:20.640
Then
780
01:12:20.995 --> 01:12:21.735
in theory,
781
01:12:22.355 --> 01:12:25.895
miner to be incentivized to stop and masking the chain and just create 855-119
782
01:12:26.594 --> 01:12:30.840
over and over and over and keep extracting until all of my infinity ether are gone.
783
01:12:31.300 --> 01:12:31.880
Right? So
784
01:12:32.820 --> 01:12:35.560
without even changes to Bitcoin, I can construct
785
01:12:36.100 --> 01:12:38.040
things that that sure look like Meebo.
786
01:12:38.580 --> 01:12:39.080
But
787
01:12:39.815 --> 01:12:41.195
having them on Bitcoin
788
01:12:43.415 --> 01:12:48.235
no. I I don't think whether it's on Bitcoin is relevant and and totally. I mean, there's you can absolutely
789
01:12:49.250 --> 01:12:57.190
construct Meebel today. There are absolutely cases of Meebel that had existed where miners have been able to extract a little more value.
790
01:12:57.755 --> 01:13:01.614
You know, we see slipstream from Mara. You know, they accept nonstandard transactions.
791
01:13:02.315 --> 01:13:06.575
This is something where they had to hire a full time engineer,
792
01:13:07.050 --> 01:13:10.030
pay them substantial money, you know, find someone competent,
793
01:13:10.570 --> 01:13:14.830
and as a result, they get some very small additional revenue
794
01:13:15.475 --> 01:13:16.535
from doing so.
795
01:13:17.395 --> 01:13:22.455
But that's a lot of work, you know. So that that is Meeval, but they invested
796
01:13:22.835 --> 01:13:23.815
way more money
797
01:13:24.329 --> 01:13:37.085
than they actually got. Right? So, like, there's the Meeval we see today is very very small. If you're a small miner, you know, you're talking about fractions of a percent. It's not gonna make or break your business.
798
01:13:38.345 --> 01:13:42.125
You know, your your margins are only a few percent. Right? So
799
01:13:42.969 --> 01:13:49.550
large fractions of a percent would make or break your business, but but, you know, fractions of a fraction of a fraction of a percent are not.
800
01:13:50.090 --> 01:13:51.710
And so the question is really,
801
01:13:52.035 --> 01:13:53.655
are we going to add things
802
01:13:54.035 --> 01:13:55.095
which create
803
01:13:55.955 --> 01:14:00.535
enough meevil where suddenly it's, like, really material, you know, where we're talking about
804
01:14:00.840 --> 01:14:03.180
half a percent, a percent of mining revenue
805
01:14:03.640 --> 01:14:04.140
change,
806
01:14:04.520 --> 01:14:06.700
that's gonna break Bitcoin incentives.
807
01:14:07.160 --> 01:14:12.935
Right? But if we're talking about fraction of a fraction of fraction, that's okay, and we do see that today already. It's just a question
808
01:14:13.795 --> 01:14:18.055
of what new things are people gonna build in, and to some extent it's a question of like predicting,
809
01:14:18.470 --> 01:14:20.650
you know, what are people gonna build? I've seen people argue,
810
01:14:21.110 --> 01:14:25.370
no. No. No. Based roll people don't build based roll ups. They're not built on Ethereum because,
811
01:14:25.885 --> 01:14:34.705
there's financial incentives for people to build non based roll. If you can have a centralized sequencer, and then you can make money as the sequencer because you're extracting all the revenue, you're extracting all the Mav.
812
01:14:35.460 --> 01:14:40.280
And it's great. Like, okay. Yeah. I mean, if if people really won't build based roll ups, then
813
01:14:40.980 --> 01:14:46.715
maybe we're okay. Maybe we don't need to worry about that. But people can build them, and should
814
01:14:47.335 --> 01:14:49.755
we bet Bitcoin on the fact that people won't.
815
01:14:50.375 --> 01:14:50.875
And
816
01:14:51.495 --> 01:14:52.395
then also,
817
01:14:53.460 --> 01:15:01.305
you know, we see a different community in Ethereum versus Bitcoin. Right? We see Ethereum people don't wanna build these things, but they also don't really have a lot of the same
818
01:15:01.765 --> 01:15:03.465
reaction to centralized parties
819
01:15:03.765 --> 01:15:08.345
who are extracting fees can't steal your money but are extracting fees as you often see in the Bitcoin space.
820
01:15:08.840 --> 01:15:15.260
And so instead, we've seen people actually building base products in Bitcoin. Yeah. We've seen, people building libraries to enable people to do that.
821
01:15:15.640 --> 01:15:16.140
So,
822
01:15:16.905 --> 01:15:17.485
you know,
823
01:15:18.025 --> 01:15:22.284
it's unclear. I mean, this is this is not things we've grappled with
824
01:15:22.585 --> 01:15:24.205
for Softworks in the past.
825
01:15:25.130 --> 01:15:32.510
It's new, it's novel, and, like, it's something that the community broadly needs to discuss. It's not something that a bunch of developers in a room can decide.
826
01:15:32.845 --> 01:15:41.690
Like, the the Bitcoin community needs to decide, is this something we're okay with? Are these trade offs worth it? Are these risks worth it? Because we do get a lot of value. I'm excited about opcat.
827
01:15:42.410 --> 01:16:00.070
More so other script restoration things, other other covenants. I wanna use really awesome covenants. I wanna build all kinds of weird lightning derivative things and, like, a more awesome, more scalable lightning. I want people to have payment verticals that are somewhere between custodial and noncustodial that scale super well and let everyone have Bitcoin.
828
01:16:00.449 --> 01:16:08.310
But, also, I know we can't we can't take that risk if it goes the wrong way. So it's something the broad community needs to discuss.
829
01:16:09.115 --> 01:16:17.455
Yeah. These these are all great points. Right? So I guess we see on Ethereum that very bad thing that happened. There are a lot of very big differences between Ethereum
830
01:16:17.755 --> 01:16:18.255
and
831
01:16:19.020 --> 01:16:22.640
Bitcoin. Right? And I guess the one technical difference that off cat affects
832
01:16:23.100 --> 01:16:23.840
is whether
833
01:16:24.140 --> 01:16:25.600
within a Bitcoin transaction,
834
01:16:26.575 --> 01:16:27.235
can you
835
01:16:28.415 --> 01:16:37.740
introspect and constrain the transaction being spent. Right? So can you do covenants? Can you say these coins can only move to these destinations under these circumstances and so on?
836
01:16:38.680 --> 01:16:39.180
And,
837
01:16:39.800 --> 01:16:45.805
yeah, the the comment that, the Rob one h there. I'm not sure if he's related to the house and Rob h he's talking to. Yeah.
838
01:16:46.185 --> 01:16:48.205
Yeah. He's in he's in the room right now.
839
01:16:50.185 --> 01:16:52.080
I I was being strategically
840
01:16:55.099 --> 01:16:55.980
ambiguous. The
841
01:16:57.980 --> 01:16:59.900
so with with with how to calculate
842
01:17:00.755 --> 01:17:01.895
Well, there's this technical
843
01:17:03.395 --> 01:17:13.880
change. Right? Whether or not you can directly do covenants. Right? Upcap gets you that. Maybe in such an inefficient way that these covenants turn out like, the the, evil that you could create with these covenants
844
01:17:14.260 --> 01:17:14.579
is,
845
01:17:15.380 --> 01:17:17.639
is just too inefficient for you to actually make money.
846
01:17:17.995 --> 01:17:29.670
Maybe it turns out that transaction introspection and covenants aren't enough. Maybe we'd also need an account model or or something like that for these bad things to come to account. Maybe it's not hinted at, like, there's just,
847
01:17:30.210 --> 01:17:59.400
cultural differences. Right? We would need to have some sort of the kind of community in Bitcoin that would move the entire chain of proof of stake in order for these problems to occur. And we don't have a clear idea about when when No. I think it's the other way around. I think with the coins community, you're more likely to see these kinds of decentralized systems that create meable, whereas in Ethereum, you see centralized systems that avoid it. Because often, when when you add a centralized sequence or when you add a centralized party, you avoid the MEWL because that centralized entity just takes the MEWF and pockets it.
848
01:18:00.040 --> 01:18:04.460
But I think the account model thing, I've I've seen that come up a number of times, so I wanted to address that.
849
01:18:04.840 --> 01:18:06.505
That's a really a red herring.
850
01:18:06.985 --> 01:18:09.565
Like, we've seen on Liquid, people have built AMMs.
851
01:18:10.905 --> 01:18:18.829
They're like, people can't build this thing because they want an account model. That's nonsense. Right? Instead, you're actually gonna create more Gmail.
852
01:18:19.130 --> 01:18:25.395
What you'll do so if you imagine, like, a a completely flexible script, Bitcoin scripts, you can do anything you want.
853
01:18:27.315 --> 01:18:27.815
You
854
01:18:28.515 --> 01:18:29.015
will
855
01:18:29.395 --> 01:18:36.330
build an AMM that just has one UTXO. Right? So, like, all of the AMM funds and logic are in that one UTXO,
856
01:18:36.790 --> 01:18:42.410
and then when someone interacts with the AMM, they spend it and they create a new UTXO, and now all the funds and logic are in that UTXO.
857
01:18:42.785 --> 01:18:52.490
And it's fine. That works great. This in fact creates a lot more evil because now miners need to write more Bitcoin Core, but I don't know if Bitcoin Core is gonna it. Write a bunch of additional custom software
858
01:18:53.270 --> 01:18:58.650
to handle this concept of, like, that much state and stuff in 1, UTXO
859
01:18:59.355 --> 01:19:13.920
where they now have to, you know, be able to rebase transactions. Right? So you'd be able to say, like, I saw this transaction in the mempool. I wanna include it, but there's this other transaction that first spent this AMM money, and now I need to, like, take that other transaction and change the input to the other one,
860
01:19:15.260 --> 01:19:15.760
and
861
01:19:16.675 --> 01:19:17.175
do
862
01:19:17.955 --> 01:19:20.835
do, like, transaction rebases, all kinds of complexity there.
863
01:19:22.195 --> 01:19:22.695
So
864
01:19:23.075 --> 01:19:36.195
it I I I don't think that's relevant. In fact, I think it might very well make works. It might mean just more complexity on the side of miners, more private relay networks where small miners aren't able to get all the transaction data that big miners are.
865
01:19:36.815 --> 01:19:43.530
I'm I'm skeptical that it's more complex than the UTXO model because in the account model, you have, you know, maybe,
866
01:19:44.150 --> 01:20:05.150
you know, a 100 transactions and any 80 of them depending on the way that you order them. Any 80 of them you can include. Whereas in the UTXO model, you just have, like, one path. Right? You have one UTXO. So you have to have 100 transactions. No. You still have to, like, rebase them. You do have to rebase them, but rebase them is It wouldn't you're right. It's not, like, a huge difference. I think it's clearly the UTXO model is not
867
01:20:05.450 --> 01:20:06.990
less Beeville creating.
868
01:20:07.375 --> 01:20:11.715
There's a little more complexity. Mine is set to write a little more software. Hopefully, that software is not too complicated.
869
01:20:12.094 --> 01:20:18.910
And so it's gonna be okay, but they do have to do more work because they have to do this kind of rebasing logic. They have to I don't think that's more work. I don't think that's software.
870
01:20:20.090 --> 01:20:22.510
Well, I mean, it's just work that you didn't have to do otherwise.
871
01:20:23.844 --> 01:20:32.340
Maybe less a solution space, but I think I think it's less of a of a solution space because you do have those dependencies in the UTXO model,
872
01:20:33.300 --> 01:20:38.040
but it's probably the same amount of work. Yeah. It's just that you you remove the dependencies.
873
01:20:38.659 --> 01:20:55.640
Right? Like, you you create no dependencies because you have these covenants rather than actual dependencies. Just the miners have to do the work to rewrite the Well, that's the actual inputs. There's never no dependencies. Right? In a rich statefulness model where every transaction is manipulating a global Same kind of dependencies, I would say.
874
01:20:56.500 --> 01:20:56.820
In
875
01:20:57.475 --> 01:21:09.070
no. In in Ethereum, every transaction depends on every other transaction in principle because they're all manipulating the same global store. That's that's a point. Yeah. I I mean, specifically for just if you're just interacting with the AMM contract,
876
01:21:09.530 --> 01:21:20.094
the total dependencies and the total complexity there is is the same. It's just you have to actually rewrite Bitcoin transactions to make it make it work that way. Yeah. A a couple clarifying questions maybe. So,
877
01:21:20.635 --> 01:21:21.855
like, rough consensus,
878
01:21:22.640 --> 01:21:25.220
generally speaking, is that no legitimate
879
01:21:25.680 --> 01:21:31.700
technical question goes unanswered before the activation of it. So, like, a legitimate technical concern there.
880
01:21:32.534 --> 01:21:36.395
Based on the way Bitcoin like, pre script restoration project,
881
01:21:37.335 --> 01:21:48.940
is there anything that we could do for activating opcodes, anything like that, where we could answer the technical I mean, I gotta I've just focused on the engineering side, but, like, that's the thing that we can directly control.
882
01:21:49.305 --> 01:21:54.205
Is that are there any of those where we could feel confident with Bitcoin as it exists today,
883
01:21:54.824 --> 01:22:03.400
activating something new where we could answer every technical question for it, defining the behavior for it. Seems like a strong man. I I don't think
884
01:22:03.775 --> 01:22:17.619
so first of all, I think that answering the technical questions around OPCAT and other things are super easy. We're probably basically there. Like, the the actual, like, is this implementation fine? I mean, like, we could get there a month. Right? Like, we're probably already there. Whatever.
885
01:22:18.785 --> 01:22:19.285
The
886
01:22:19.825 --> 01:22:31.280
Meavil stuff and the higher level, like, is this gonna break Bitcoin stuff need I think we can still answer it. We can still address that point, but we need to do the research. Right? We need to sit down. We need to say,
887
01:22:31.820 --> 01:22:32.720
let's create,
888
01:22:33.260 --> 01:22:37.120
not just, like, talk about how it's hard to create, but actually go create the best
889
01:22:37.665 --> 01:22:41.125
token protocols we can that use off cat and then build the best,
890
01:22:42.385 --> 01:22:54.120
AMM or the best DEX we can using these token protocols. What's that gonna look like? Let's go, you know, have a conversation in the community about, like, are people actually gonna use based roll ups? My intuition is
891
01:22:54.525 --> 01:23:03.025
certainly more so than Ethereum, but I don't know. You know? I'm I'm just one guy. I know that the roll kit people told me to eat shit. They're gonna build it anyway. Right? So,
892
01:23:03.405 --> 01:23:08.370
like, where is the Bitcoin community here? Where is like, why aren't people saying this is bad,
893
01:23:08.830 --> 01:23:16.625
this is something we shouldn't do? Like, these are things that that the Bitcoin community can do broadly and also especially research. You know? Andrew mentioned the
894
01:23:17.645 --> 01:23:18.864
the grant from
895
01:23:19.690 --> 01:23:43.810
startware, I'm sorry, which I think is great. I think that's the exact kind of thing we need to be doing. We need to be funding people and and certainly finding people. Money is one thing. It's really about finding the dev talent, the research talent. But we need to be finding those people who are talented who can do this kind of research and analyze the problem and say, here's what we can build. Here's why it sucks. Here's what we can build in ways that don't suck. And then the Bitcoin community can sit down and say, okay.
896
01:23:44.350 --> 01:23:45.810
I think the things that suck,
897
01:23:46.304 --> 01:24:02.310
that create evil, suck so hard that no one's gonna use it, and are they gonna use the decentralized options instead? Because that's really what we're talking about. We're talking about we want people to not use a decentralized option and use a centralized option instead because the decentralized option breaks Bitcoin, which flies in the face of everything the Bitcoin community
898
01:24:02.864 --> 01:24:10.804
loves to do, but that's that's really what we're talking about. It's really what we need people to want to do. Yeah. And then another question for this is,
899
01:24:11.190 --> 01:24:34.610
I think we've got, like, 12 or so different projects represented here right now. Is that have we come up to the limits of Bitcoin as it exists today in terms of development work and, like, stuff that we can do going in the future? And maybe, like, we could kinda go around for people to describe, like, how much they're doing, but, like, I know with Infangement, we have, like, a multiyear road map for Bitcoin as it exists today requiring no changes, where it's just more resources
900
01:24:34.975 --> 01:24:42.515
can get better results for users without any changes for Bitcoin. Certainly, as simple as Lightning, we have at least 5 years worth of features to show.
901
01:24:43.400 --> 01:24:44.360
Yeah. Same for us, but
902
01:24:45.560 --> 01:24:55.455
But I I think I I think it's a point to push back on that a little bit. Like, I know all of us have a 5 year roadmap, you know, if we ship opcat tomorrow, we're not gonna look at it for another 5 years. Right?
903
01:24:56.815 --> 01:25:09.285
But it is it does again because we're talking about we're we're really talking about a fundamental shift to the nature of what we can do with Bitcoin. And again, I think, you know, there are limits to the kinds of systems we can build today in Bitcoin
904
01:25:09.905 --> 01:25:15.720
that potentially get removed. And, again, there's more research needed, maybe it's not efficient enough to be practical, but potentially get removed.
905
01:25:16.260 --> 01:25:17.800
And we can start to talk about
906
01:25:18.420 --> 01:25:23.480
a lot more systems in the gray area between custodial and noncustodial, and that's really
907
01:25:23.994 --> 01:25:26.415
where Bitcoin needs to get to, you know. There's this,
908
01:25:27.594 --> 01:25:35.440
I guess Peter McCormack always loves to talk about this, kinda like what what do we do when not everyone can own a UTXO? Like, how do we get people on Bitcoin?
909
01:25:35.980 --> 01:25:37.680
And you're not allowed to say custodial.
910
01:25:38.955 --> 01:25:46.175
Maybe you're allowed to say custodial, but I'm gonna add that restriction right now. You're not allowed to say custodial and and we don't have a good answer right now. Generated custody.
911
01:25:46.650 --> 01:26:02.525
Well, I mean I think that you used the word custody. I think you might have broken the one rule. There was just one. But I mean, the night the nice thing about Federman is you don't. It doesn't require a software. I mean, I I'll I'll be the monkey brain in the room, like, the left curve of IQ.
912
01:26:02.985 --> 01:26:04.364
I will say, like, the opcat
913
01:26:04.750 --> 01:26:06.050
discussion, to me,
914
01:26:06.829 --> 01:26:16.955
opcat feels like an attack on Bitcoin, and I'm a little bit conflicted because You just think that because it's Udi. No. No. No. Yes. And and and Andrew, who's incredibly high integrity,
915
01:26:17.575 --> 01:26:22.890
like, breaks the template a little bit. It's like it's like Udi and the degens. Like, I know And then Andrew.
916
01:26:23.350 --> 01:26:23.810
Is
917
01:26:24.270 --> 01:26:26.370
Ethan. I love it. Yeah. Ethan's awesome.
918
01:26:26.910 --> 01:26:27.410
Integrity.
919
01:26:28.510 --> 01:26:28.910
And,
920
01:26:29.875 --> 01:26:30.375
but
921
01:26:30.755 --> 01:26:35.414
besides all of that, I mean, this is just leaving out the activation question.
922
01:26:35.875 --> 01:26:43.190
And, I mean, I would personally propose that the way we decide if we activate it or not is is which side zaps more.
923
01:26:45.485 --> 01:26:51.744
I think it's a good way now. Yeah. During the show. By the end of the pandemic. It's the best activation method for Bitcoin.
924
01:26:52.045 --> 01:27:01.520
Also, yeah, I'm still very curious what people's, over under would be, in terms of, like, a date, for activation. Is it 2 years out that there would be a 50% chance before or after a date?
925
01:27:01.915 --> 01:27:14.090
I mean, it seems like there's some movement towards doing great consensus thing up first. Negotiation notes. That's getting revived a little bit, and that's still probably a ways away. And so if we have that first, I mean, they're talking about
926
01:27:14.390 --> 01:27:20.425
a ways away before we start thinking more seriously about opcat activation being something other than a weak one.
927
01:27:21.465 --> 01:27:24.925
What's what's the number? 3 years? 3 and a half years?
928
01:27:25.304 --> 01:27:26.605
I'm gonna throw out 3.
929
01:27:27.065 --> 01:27:35.320
I'm gonna make a darker prediction though, which is that all this horrible cat stuff is within the next 3 years, people will figure out how to do it without cat,
930
01:27:35.699 --> 01:27:40.805
and then cat's not going to be the thing that pushes us over the edge because we bought, like, movie in the world
931
01:27:41.665 --> 01:27:43.605
that we're not sure how to navigate.
932
01:27:44.065 --> 01:27:48.245
Well, I mean so, to bring it back, like, if if you're an average user
933
01:27:48.940 --> 01:27:53.440
if you're an average user from a use case perspective, well, like, why would you want CAT?
934
01:27:54.300 --> 01:28:00.304
Again, I I think it really comes down to this, like, you can't own a UTXO question. There's obviously a lot of, like
935
01:28:00.685 --> 01:28:05.905
you know, there's a lot of people super excited about, oh, we're gonna do, you know, these these roll up things with BitVM
936
01:28:06.364 --> 01:28:08.340
or CatVM, I guess, now.
937
01:28:09.360 --> 01:28:11.060
And it's gonna be great because,
938
01:28:11.680 --> 01:28:28.780
we can have all the, like, Ethereum complexity and all of the CVM garbage, and it'll all be on the Bitcoin chain and it'll use Bitcoin as the native asset and people are excited about this and I don't really understand why. But if you are a Bitcoiner Surprise. Well, okay. So I'm surprised maybe. Number go up at least until people realize there's nothing there and then they get that. But,
939
01:28:31.135 --> 01:28:31.635
but,
940
01:28:33.215 --> 01:28:40.860
but I think if you're a Bitcoiner, you're like, I just want good money. You know? There's there's a lot of cool there's a lot of cool stuff on Ethereum. I don't know if it'll actually come to Bitcoin because,
941
01:28:41.320 --> 01:28:45.739
it never came to Rootstock, and Rootstock exists and has been around for whatever decade now.
942
01:28:46.199 --> 01:28:54.284
But if you're just like, I want good money, I wanna I wanna transact with good money. I wanna do it with lower fees so that I can own a UTXO even though I only have $10.
943
01:28:56.824 --> 01:29:07.485
You know, how do we build something? There's there's a lot of proposals that are super early for using covenants, and I think, you know, like, with things like time out trees, things like ARC,
944
01:29:08.745 --> 01:29:23.925
they all have big drawbacks that I would say are in some for many of the use case for the the kind of naive use case of just, like, I wanna, you know, have everyone use this thing that they're kinda showstopper kinda drawbacks, but there's a lot of interesting research still to be done there.
945
01:29:24.625 --> 01:29:25.685
There's a lot of
946
01:29:27.265 --> 01:29:30.485
yeah. I mean, we need to dump a lot more technical and and
947
01:29:30.960 --> 01:29:32.820
brainpower into that problem.
948
01:29:33.360 --> 01:29:35.220
And I think it's fairly clear
949
01:29:35.680 --> 01:29:36.420
that we've
950
01:29:37.440 --> 01:29:38.400
mined the,
951
01:29:39.555 --> 01:29:41.575
ideas out of current Bitcoin,
952
01:29:42.035 --> 01:29:45.815
and covenants gives us a whole new space to think about
953
01:29:46.195 --> 01:29:48.055
where we can potentially build
954
01:29:48.780 --> 01:29:50.720
some really, really cool
955
01:29:51.180 --> 01:29:56.560
semi custodial kind of thing, you know, like, Time Out Trees as the for those of you who don't know Time Out Trees, it's it's a
956
01:29:56.985 --> 01:29:59.965
proposal basically what you do. You you take lightning channel, take an LSB.
957
01:30:00.265 --> 01:30:05.325
The LSB opens a channel to everybody all at once in one UTXO using CTV,
958
01:30:06.390 --> 01:30:07.130
And then
959
01:30:07.430 --> 01:30:09.930
at the end of, let's call it 6 months,
960
01:30:10.310 --> 01:30:13.210
all of that money in that UTXO reverts back to the LSP.
961
01:30:13.775 --> 01:30:28.510
So everyone, they got a channel from this LSP, but it's a time limited channel, so they can only use it for the next 6 months, and then they gotta make sure their money's out before the end of 6 months. And then they gotta open a new channel, put the money in the new channel. That's great. You just need one UTXO. You can have as many landing channels as you want.
962
01:30:29.450 --> 01:30:54.105
It kind of falls apart if you actually have to go on chain. It you can't really go on chain because you don't have enough money to go on chain because that's why you didn't have a UTXO. So, like, the average user is just, like, sending between them. Right? Like, just quickly it's like the rug pull stopwatch. Yeah. It's like yeah. Exactly. It's it's a it's a, you know, there's a time timer on the bomb, and it's gonna work for you at the end of the timer, and you gotta make sure you get out. It sounds very much like an MLM when you describe it that way.
963
01:30:55.750 --> 01:30:58.570
But I promise you it's not designed to be a policy scheme.
964
01:30:59.030 --> 01:31:05.130
So but, you know, it it has a big show stopping issue, but also, it would let you actually use
965
01:31:06.005 --> 01:31:07.465
order custodial Bitcoin
966
01:31:08.244 --> 01:31:16.710
on chain in a lightning channel that in a way you can't do today. And so ideas like that, I think, are gonna be
967
01:31:19.090 --> 01:31:24.205
I should say, I I wanna end that sentence with the future of Bitcoin, but that's definitely not how I wanna end that sentence. But,
968
01:31:25.065 --> 01:31:46.375
you know, ideas like that are are are really cool and things that we need to be thinking about, things we need to be building. I think it's clear that we need covenants for that. So personally, I'm really excited about it. I spend a lot of time shitting on covenants because I think there's not enough of that. It's not enough people shitting on covenants, so I end up doing it. That doesn't mean I don't also love covenants and, like, want covenants for my own things I wanna build.
969
01:31:48.099 --> 01:31:56.385
You you made kind of like a a throwaway comment there about how, like, all the ideas are gonna mine out of Bitcoin, but then you'd be have covenants in a whole new world. But
970
01:31:56.784 --> 01:31:58.244
would you say that
971
01:31:58.545 --> 01:32:13.715
having bit the m show up in the last 6 or 8 months or whatever, that was a bit of a, like, was it new ground? Like, I was not expecting new ground of that magnitude. Do you? Yeah. No. Absolutely. Yeah. And, again, I mean, it it might be the case that the ATM is too inefficient to to be practical. I mean, I think that
972
01:32:14.195 --> 01:32:16.935
some people have pointed out to me that the Ethereum,
973
01:32:18.594 --> 01:32:19.255
the Ethereum
974
01:32:20.275 --> 01:32:21.574
roll up the Ethereum,
975
01:32:22.195 --> 01:32:23.415
optimistic roll ups
976
01:32:23.760 --> 01:32:38.505
have never had a challenge proof on chains, so they've never actually validated it. Okay? Oh my god. This is in large part because they have have a limited set of people who are allowed to challenge, so it's not not anyone can come by and challenge. And then in bit the m p 2, anyone can come by and challenge. It's optimistic.
977
01:32:38.960 --> 01:32:39.460
Very
978
01:32:39.920 --> 01:32:40.420
odd.
979
01:32:40.880 --> 01:32:42.420
That's what it works. Who knows?
980
01:32:44.800 --> 01:32:46.420
So, like, maybe maybe inefficient
981
01:32:46.755 --> 01:32:51.415
is fine. Like, I don't know if people went to fly it anyway and just have a limited set of people who can challenge.
982
01:32:52.995 --> 01:32:55.095
But, yeah, I mean, I think I think you're right. The BIVVIA
983
01:32:55.510 --> 01:32:56.410
was a very
984
01:32:57.430 --> 01:33:00.330
transformative idea in terms of what you can do with Bitcoin,
985
01:33:01.510 --> 01:33:02.010
but
986
01:33:02.550 --> 01:33:03.690
I think it is,
987
01:33:04.245 --> 01:33:06.265
to some extent the first new idea
988
01:33:06.725 --> 01:33:09.864
of what you can do directly on Bitcoin since Lightning.
989
01:33:10.885 --> 01:33:14.670
And Lightning was the first new idea of what you can do with Bitcoin in, like,
990
01:33:14.970 --> 01:33:20.830
4 years prior to that. So Since 2013 when every good idea was a Bitcoin Taco Yeah. Basically. People.
991
01:33:22.970 --> 01:33:23.710
I mean, Jeremy
992
01:33:24.074 --> 01:33:26.094
came up with payment channels first. Right?
993
01:33:26.554 --> 01:33:32.094
But, yeah, I mean, like, we had a ton of great new ideas in 2011, 2012, a few great new ideas 2013,
994
01:33:32.880 --> 01:33:36.420
One great new idea, and I don't remember when lightning was. Somebody yell it out.
995
01:33:36.800 --> 01:33:38.100
Nobody? Alright. 2014.
996
01:33:38.880 --> 01:33:42.020
And then 14/10. Then we had the PM. Right? So
997
01:33:42.885 --> 01:33:51.865
it seems like we're not getting a lot of new ideas. You may be right that, like, you know, maybe we just haven't figured it out yet. Maybe there's something there. It's gonna be perfect. We're all gonna use it. We're all gonna love it. But
998
01:33:53.510 --> 01:33:56.790
it wouldn't surprise me to some extent. But but VM surprised me. So
999
01:33:57.830 --> 01:34:04.184
Yeah. I mean, like, half of the booths at the at the conference were just a good yeah. Deripatives or at least, like, super,
1000
01:34:04.965 --> 01:34:06.105
like, attacks,
1001
01:34:07.445 --> 01:34:08.985
affinity scams for VPN,
1002
01:34:09.684 --> 01:34:24.355
at least. Buy your token, BitPM, or something something BitPM. Buy your token. There's these money contracts, BitPM. Yeah. Yeah. Maybe let's start moving toward our wrap up for it and kinda go around the horn for what the current state is for the projects that are here within
1003
01:34:24.815 --> 01:34:29.430
the Rust sort of Bitcoin ecosystem. And Let me finish my lunch now. Yep. You're
1004
01:34:30.450 --> 01:34:32.470
good. My Elliot's too late to pay for.
1005
01:34:33.890 --> 01:34:34.710
Yeah. Okay.
1006
01:34:35.045 --> 01:34:46.840
So he looks like you're on the horn. And, one final thought is final thoughts on this, especially for, like, after the Rustic Point Summit, like, what your project looks like and where you want it to go. If you have, like, specific contributor requests,
1007
01:34:47.300 --> 01:34:50.280
then, let's make those. But before we go to final thoughts,
1008
01:34:50.739 --> 01:34:56.295
like, Andrew, like, how does this how would this get activated if you want opcat? Like, how do you expect this to get activated?
1009
01:35:00.355 --> 01:35:01.815
So I think that
1010
01:35:03.660 --> 01:35:22.460
we need like, we we do need to kind of address this question as a community of this. What does Bitcoin look like in a world where we have transaction introspection and therefore covenants? Right? So one way this gets resolved is just we just kind of figure out how to do covenants without any changes, and then we're across the we're across the threshold.
1011
01:35:23.880 --> 01:35:32.855
I have, like, kind of a a weird conversation with somebody recently where they were talking about simplicity, which is a total rewrite of bit my script. And they said, like, how could you possibly propose simplicity
1012
01:35:33.235 --> 01:35:40.349
when it brings all these new things to Bitcoin and will let you do all these know you the things and how you reason about it. And I said, well, if we have cap first,
1013
01:35:40.730 --> 01:35:45.415
cap actually by itself lets you do everything. Right? In simplicity, it's just kind of an optimization,
1014
01:35:46.755 --> 01:35:48.855
which is a weird thing to
1015
01:35:49.315 --> 01:35:54.680
to to hear myself saying. That's a weird thing to be true, but I think it is true. So one way
1016
01:35:55.380 --> 01:35:56.120
is that
1017
01:35:56.740 --> 01:36:05.385
we just wind up stumbling over that cliff, right, without any further upgrades to Bitcoin. And at that point, right, there's no further harm caused by op cap.
1018
01:36:05.845 --> 01:36:17.219
Although as Matt hinted before he left, there is a kind of a fuzziness related to the efficiency of these things. Right? So maybe we find it tremendously inefficient way to emulate off cap by, like, using shot 1 collisions or something.
1019
01:36:17.679 --> 01:36:22.145
And then off cap lets us do it, you know, unless than 2 to the 80 work. Alright. That's an improvement.
1020
01:36:22.844 --> 01:36:25.965
And then a real covenant opcode would obviously let us do it without,
1021
01:36:26.764 --> 01:36:29.824
you know, using 30 opcodes and and a whole bunch of other crap.
1022
01:36:30.750 --> 01:36:31.250
So
1023
01:36:32.110 --> 01:36:33.330
the correct way
1024
01:36:33.949 --> 01:36:40.594
to get opcat, and I guess the the kind of optimistic path that I see, right, is that we do figure out
1025
01:36:41.775 --> 01:36:42.275
that
1026
01:36:43.054 --> 01:36:46.514
Bitcoin should move forward. Right? We shouldn't just, like, stay ossified
1027
01:36:46.815 --> 01:37:01.135
where we are. Right? That's essentially what we have to do. Right? If if we want to avoid all the new functionality that cap gives us, it's not just cap you avoid. You have to avoid all faults apparently, according to Brandon Black, I think, on my panel and, at the big conference.
1028
01:37:02.155 --> 01:37:07.820
You also have to avoid, like, an opcode that can do a comparison of 2 arbitrarily length strings.
1029
01:37:08.520 --> 01:37:11.820
You have to avoid arbitrary size arithmetic.
1030
01:37:12.440 --> 01:37:14.460
You might have to avoid opmall.
1031
01:37:15.304 --> 01:37:19.244
Yeah. There's various crypto opcodes you'd have to avoid.
1032
01:37:20.264 --> 01:37:25.960
You'd have to avoid certain kinds of variable length encodings for for signature and public keys.
1033
01:37:27.060 --> 01:37:32.760
There's there's a lot of ways to to to get what AutoCAD gives you. And the reason is that fundamentally,
1034
01:37:33.325 --> 01:37:38.385
all of the scary stuff, all the scary transaction in respect to them already in OpCheksig.
1035
01:37:39.085 --> 01:37:41.345
It's just that you can't get it out of Cheksig
1036
01:37:41.660 --> 01:37:43.520
and make it do more than checking the signature,
1037
01:37:44.300 --> 01:37:49.200
because of just like these these kinda accidents of of what computations you can do on your signatures.
1038
01:37:49.900 --> 01:37:50.140
So
1039
01:37:50.775 --> 01:38:00.470
okay. May like, maybe we don't ever want to cross this line. And in that case, we can't do any of the things that I described, any additional upgrades. You need to be really carefully, super specific things
1040
01:38:00.790 --> 01:38:03.290
that avoid providing a new general functionality.
1041
01:38:04.070 --> 01:38:09.770
And we better hope that there's no further research that that lets you, you know, be able to do that off cap.
1042
01:38:10.615 --> 01:38:16.235
Ultimately, we decide that we just need to bite the bullet and move forward, but that is something that the community does need to decide.
1043
01:38:16.775 --> 01:38:17.275
And
1044
01:38:18.110 --> 01:38:20.290
until we do so, off Cat is
1045
01:38:20.670 --> 01:38:21.170
in,
1046
01:38:21.790 --> 01:38:26.290
in stasis. So I mean, I feel like you very gracefully didn't answer my question.
1047
01:38:28.045 --> 01:38:31.745
So one thing that I like, the way I look at it is,
1048
01:38:33.860 --> 01:38:39.400
in in Bitcoin, we have this idea of soft forks and hard forks. Right? And the key difference between soft forks
1049
01:38:40.099 --> 01:38:45.655
versus hard forks is soft forks are effectively backwards compatible. You don't have to go and update your node.
1050
01:38:46.355 --> 01:38:49.095
They are sold as opt in changes to Bitcoin.
1051
01:38:50.370 --> 01:38:55.750
And with a hard fork as we have with Bcash, a hard fork is the history of the chain is the same
1052
01:38:56.050 --> 01:39:05.685
up until the point of the fork. And then at that point, you're basically split into 2 forward histories or or or the the transaction letters are just split going forward.
1053
01:39:06.120 --> 01:39:11.260
And if you want to be on the fork, you have to then up update your your
1054
01:39:11.640 --> 01:39:13.740
your Bitcoin software. You have to update your note.
1055
01:39:15.775 --> 01:39:17.554
I think there's, like, a little bit
1056
01:39:18.255 --> 01:39:19.155
of a misunderstanding
1057
01:39:19.695 --> 01:39:23.875
on the risks of a soft fork because we've never had a contentious soft fork.
1058
01:39:24.360 --> 01:39:24.860
And
1059
01:39:25.560 --> 01:39:30.940
with something like OPCAT, I mean, right now, I mean, I I think if if you look at what
1060
01:39:31.695 --> 01:39:36.275
what the community is looking at right now with OPCAT, there is clearly not
1061
01:39:36.894 --> 01:39:39.635
broad consensus on it. It would probably be our first
1062
01:39:40.210 --> 01:39:41.590
contentious soft fork.
1063
01:39:41.970 --> 01:39:48.230
So if if you did go through activation, what does activation look like? Well, you know, you have the Bitmain Mafia at 50%,
1064
01:39:48.885 --> 01:39:50.905
nearly, like, Anpool's basically creating
1065
01:39:51.365 --> 01:39:54.745
block templates for 50% of the hash, and you have Foundry at 35%.
1066
01:39:55.205 --> 01:40:00.900
So let's say you convince those 2 people, right? You can convince the CEO of Foundry and you convince Jiyeon,
1067
01:40:01.280 --> 01:40:05.495
and they go ahead and activate it, but there's not actually a broad consensus for it.
1068
01:40:05.975 --> 01:40:08.795
Basically, what happens at that point is is effectively
1069
01:40:09.255 --> 01:40:12.155
a hard fork, but much messier than a hard fork.
1070
01:40:13.230 --> 01:40:16.369
So I feel like that is the concern that's not really being addressed.
1071
01:40:17.869 --> 01:40:25.445
And you would have no relay protection. Like it would be it would be an absolute fucking mess. Most users would be really, really confused.
1072
01:40:26.545 --> 01:40:31.205
So, I mean, I think that's the core of the question. The core of the question is like, how much here are we just,
1073
01:40:32.330 --> 01:40:32.990
you know,
1074
01:40:34.010 --> 01:40:35.230
playing mental gymnastics
1075
01:40:35.530 --> 01:40:36.590
over something that
1076
01:40:36.970 --> 01:40:39.150
really in practice cannot be
1077
01:40:41.335 --> 01:40:41.835
responsibly
1078
01:40:43.415 --> 01:40:43.915
implemented
1079
01:40:44.614 --> 01:40:45.994
on a protocol level?
1080
01:40:46.614 --> 01:40:48.875
And then, I mean, the second question would be,
1081
01:40:49.800 --> 01:41:01.925
would it be cleaner to just do a hard fork? Like, why why isn't there just, like, a replay protection, OPCAT hard fork and then let the market dictate? Like, I would be I would be happy to have 2 Bitcoins again.
1082
01:41:03.745 --> 01:41:07.020
I I too made a bunch of money off of eCash. So,
1083
01:41:08.920 --> 01:41:12.700
well, to answer your first question about why are we not addressing it. Right? In some sense,
1084
01:41:13.080 --> 01:41:34.785
we're addressing it by not proposing an activation. Right? Like because you're right. Like, right now, if you or I were to go on the mailing list and just, like, say, here's an activation parameters. Even if they were super responsible, and it was like, nothing's gonna happen for 16 months, and then we're gonna have 4 months of signaling, and then it will activate, you know, 6 months later or whatever. We can get people all the time in the world, but that's not going to address
1085
01:41:35.805 --> 01:41:37.825
the question of is a community
1086
01:41:38.530 --> 01:41:41.270
entirely on board, and is there a large faction of the community
1087
01:41:41.650 --> 01:41:46.950
that is explicitly not on board and would try to go do their own fork? And in that case, you know,
1088
01:41:48.005 --> 01:41:56.770
I wouldn't say this is a first contentious way. I mean, some of these aspects appear in the SegWit as well. Right. And that there was a lot of and there we kinda stumbled into it because
1089
01:41:57.150 --> 01:42:04.050
on the technical side, none of us were really expecting SegWit to be contentious. It was a very boring technical change at its core
1090
01:42:04.555 --> 01:42:07.455
to change the way that the commitment structure works within blocks.
1091
01:42:08.235 --> 01:42:12.015
And it's a change that made various things like chaining unchanged transactions together,
1092
01:42:12.850 --> 01:42:19.670
much easier, which you think, like, a lot of the b cash crowd is like, you know, 0 comp should work kind of thing. Well, 0 comp works much better with SegWilly.
1093
01:42:20.005 --> 01:42:23.065
We weren't expecting any of the the opposition that we had.
1094
01:42:23.525 --> 01:42:26.425
And the reasons for that the reasons for the opposition
1095
01:42:27.045 --> 01:42:32.130
are are still not entirely clear. Right? It may have been basic boost. It may have been some cynical b cash,
1096
01:42:32.510 --> 01:42:40.245
that does make money by having a fork. It may have been some weird power play or or ego thing where, like, Roger or somebody wanted to be king of Bitcoin.
1097
01:42:42.065 --> 01:43:00.590
I don't know, but we certainly weren't expecting it going into it. Right? And then we were in the middle of it. And and somehow or other, we got to the other side. Right? But here with CAT, we're in a more fortunate position. Right? Where we know there's nothing like ASIC booth related to op cat because it's such a tiny narrow technical change. So that's that's the relief. Right?
1098
01:43:01.790 --> 01:43:02.290
And
1099
01:43:03.150 --> 01:43:13.555
if there was really opposition of the form, like, I just want to have my own b cash fork that that I pre mine a bunch. Well, that's I mean, those ideas are pretty much dead. There have been a 1,000,000 of Fort Coins, and they're they're no longer big.
1100
01:43:14.895 --> 01:43:26.580
But what we do have is is this real opposition of the form like this changes philosophically what Bitcoin can do. And that's quite a serious form of opposition. Right? And if a lot of people feel that way, then we can't move forward.
1101
01:43:27.185 --> 01:43:30.885
But what I will say, and you'll notice I continue not to answer your question.
1102
01:43:32.625 --> 01:43:33.764
A couple years ago,
1103
01:43:34.270 --> 01:43:42.449
right, we could have been having this conversation, and the idea of having covenants in Bitcoin was just like, Right? Yeah. Covenants is a bad word. Nobody wanted them.
1104
01:43:42.750 --> 01:43:43.250
And
1105
01:43:43.685 --> 01:43:49.145
those attitudes changed a little bit around certainly over the years that Jeremy was was shilling CPV,
1106
01:43:50.005 --> 01:43:57.590
but also just think vaults became more popular as a concept as as the Bitcoin value went up and and more people became long term holders.
1107
01:43:58.290 --> 01:43:58.790
And
1108
01:43:59.365 --> 01:44:04.505
there's also kind of this this idea that Matt was hinting at that maybe these Meeval things
1109
01:44:05.125 --> 01:44:08.345
are not actually efficient enough to make people money.
1110
01:44:08.740 --> 01:44:09.240
And,
1111
01:44:09.620 --> 01:44:22.525
like, there are a lot of challenges of the form, like, show me the mebel. Right? Like, actually give me a construction for some terrible thing that you can do with covenants that would make any sort of sense that you usually go along with and that could make money. And,
1112
01:44:24.985 --> 01:44:31.820
I mean, attitudes have changed a lot in the last couple of years. Right? We're now, like, we're seeing this as a contentious thing. Well, a few years ago, it wasn't contentious.
1113
01:44:32.315 --> 01:44:38.815
The majority like, everybody was kind of on the opposite, like, on the anti cat side. And now we're contentious, and maybe maybe,
1114
01:44:39.195 --> 01:44:43.350
the over to the window continues to shift. And then it becomes less contentious,
1115
01:44:43.890 --> 01:44:45.430
and people are pro cap.
1116
01:44:45.890 --> 01:44:48.230
And maybe we can we can move forward then.
1117
01:44:48.535 --> 01:44:58.820
But do you think I mean, I guess, like, my question is, like, do you think it's particularly dangerous to activate a contentious self work? Like, to actually activate it, to have a majority of hash rate,
1118
01:44:59.200 --> 01:45:03.300
basically force it through. I mean, we had an interesting question. We do Chatham House rules,
1119
01:45:03.735 --> 01:45:07.114
at Bitcoin Park. We had an interesting question last week, which was,
1120
01:45:08.375 --> 01:45:12.475
until we at least partially mitigate mining centralization concerns,
1121
01:45:12.970 --> 01:45:14.030
Shouldn't all these
1122
01:45:14.570 --> 01:45:23.615
activation questions just be off the table? Because right now, like, I think you can obviously, it's a little bit hyperbolic, but you you can you can basically say this, like, Jeehan plus Foundry,
1123
01:45:24.235 --> 01:45:25.055
things activated.
1124
01:45:26.555 --> 01:45:27.055
Like,
1125
01:45:27.970 --> 01:45:31.030
as a Bitcoiner, as I mean, I know you've been a Bitcoiner
1126
01:45:31.490 --> 01:45:37.765
longer than most people and have the majority of your savings in Bitcoin, like, you're heavily invested in this.
1127
01:45:39.185 --> 01:45:41.525
I mean, you lost it all in a voting accident. I apologize.
1128
01:45:43.719 --> 01:45:49.020
No. But, I mean, you have I mean, your whole career is in Bitcoin. Right? Like, if Bitcoin dies, like, it's like
1129
01:45:49.325 --> 01:45:54.785
Andrew Polstra is a nobody. Like, you and and as Bitcoin succeeds, you're an absolute legend.
1130
01:45:55.245 --> 01:46:01.370
Do you not do you not, like There's a lot of member whittles. Do you not agree with that as, like, I to me, it's just
1131
01:46:02.230 --> 01:46:02.730
Okay.
1132
01:46:03.350 --> 01:46:15.430
Count them both rules here. I feel like all of this is I I I just feel like all of this is, like, you're putting the cart before the horse a little bit. Like, it to me, it's just, like, every like, cool minds. Like, everyone just chill the fuck out a little bit.
1133
01:46:16.690 --> 01:46:22.070
So regarding the the kind of like personal identity parts of what you're what you're asking me. Right?
1134
01:46:22.405 --> 01:46:28.665
We know that it's well, many people believe that at some point in the future, we'll have quantum computers. Right? Right. And those will
1135
01:46:29.579 --> 01:46:45.045
focus Bitcoin to change pretty dramatically. Right? So the mining incentive will get kinda wonky where our our random work will become quantum random work. So All of our Schnorr and ECDSA signatures get, like, immediately broken. And all of my expertise as a cryptographer goes up the window. Right. Everything I've done cryptographically is, like,
1136
01:46:45.380 --> 01:46:50.600
appealing elliptic curves to do cool stuff. An elliptic curve, they're basically useless Yeah. In a post quantum world.
1137
01:46:50.980 --> 01:46:51.480
So
1138
01:46:52.020 --> 01:46:53.640
that's what I lay awake
1139
01:46:53.965 --> 01:47:03.165
at night thinking, like, at what point do I need to just ride off into the sunset and disappear? And then when I think about doing that, it's quantum computers. Right? Cat didn't even cross my mind that's,
1140
01:47:04.200 --> 01:47:08.580
something cat related or or covenant related or scripting or whatever would,
1141
01:47:09.000 --> 01:47:10.060
would be the trigger.
1142
01:47:12.735 --> 01:47:14.995
I forget what the second half of your question was.
1143
01:47:15.455 --> 01:47:18.515
I don't know. I just I just think mining centralization,
1144
01:47:19.055 --> 01:47:22.730
we got we have a unique situation where 2 parties can can
1145
01:47:23.110 --> 01:47:25.210
basically force through this change if
1146
01:47:25.590 --> 01:47:27.290
if, like, Udi pays them enough.
1147
01:47:28.395 --> 01:47:42.910
Right. And, like, that to me is incredibly dangerous. Like, I I I don't I actually I think the lesson from b cash the lesson from b cash wasn't that hard forks so dangerous. I actually I would much prefer a hard fork here. Like, I think a hard fork would replay protection, would be incredibly clean,
1148
01:47:43.290 --> 01:47:45.630
and it it wouldn't you know, I
1149
01:47:45.974 --> 01:47:52.635
I apologize for saying what I said about your potential saving strategy, but my family is all in on Bitcoin.
1150
01:47:53.310 --> 01:47:58.929
Like, I I mean, we can stop talking about you. Like, I'm a fucking nobody. If if if Bitcoin fails,
1151
01:47:59.310 --> 01:48:00.610
I will live in the woods.
1152
01:48:01.074 --> 01:48:09.175
And if Bitcoin succeeds, I will live in the woods. But if Bitcoin fails, I will be living on someone else's woods. Like, I will just be squatting in your woods.
1153
01:48:11.720 --> 01:48:13.260
It it's important to
1154
01:48:13.800 --> 01:48:19.340
I I think we're we're falling into the trap that too many people fall into, which is we're we're misdefining
1155
01:48:19.720 --> 01:48:20.105
software.
1156
01:48:21.625 --> 01:48:23.965
A fork in Bitcoin is a change
1157
01:48:24.265 --> 01:48:30.280
that is enforced by the vast majority of economic terms that applies to soft and hard forks.
1158
01:48:30.820 --> 01:48:43.395
Right? So if if you're not if you don't have the vast majority of nodes enforcing the rules, this is not a change to Bitcoin's rules. This is just a censorship attack. Right? So what you're describing is not a software. It's a censorship attack.
1159
01:48:44.040 --> 01:48:49.260
And the wonderful thing about censorship attacks is they only last as long as the same miners are still doing it.
1160
01:48:49.719 --> 01:48:51.820
So if you actually saw
1161
01:48:52.185 --> 01:48:56.045
Hash Power just, oh, I'm gonna go we're gonna go enforce OPCAT tomorrow.
1162
01:48:56.665 --> 01:48:57.324
The main
1163
01:48:57.625 --> 01:49:03.630
the main mafia decides, like, oh, we're just gonna enforce OPCAT. It's It's the rules of the network now. Everybody's gotta learn to deal with it.
1164
01:49:04.090 --> 01:49:06.750
This is gonna last as long as the miners
1165
01:49:07.530 --> 01:49:08.910
don't wake up and realize,
1166
01:49:09.290 --> 01:49:34.495
oh, we can make a lot of money if we go just take all that money locked up and off cat. Like, all this there's all this money sitting on chain locked up and off cat. That is actually anyone can spend money. Right? We're not talking about this bullshit anyone can spend, SegWizz anyone can spend because, you know, not all nodes enforced it. No. Basically, all nodes enforced it. Right? But the only the reason it wasn't anyone can spend money is because all nodes enforced it, not because Hashpower enforced it, because the nodes enforced it.
1167
01:49:34.980 --> 01:49:51.395
And so if you see that kind of malicious fork, well, yeah, sure, it might last a while. You know, the the mid name mafia might stick around. They might keep enforcing it. But then in 10 years, all of a sudden, there's gonna be new miners and they're gonna say, oh, you know, there's a lot of Bitcoin sitting there. We can just take that Bitcoin. It's our Bitcoin now.
1168
01:49:51.855 --> 01:49:54.790
And a lot of people are gonna be real sad. It's gonna be a total clusterfuck.
1169
01:49:55.170 --> 01:49:57.590
Right? If people actually start using something
1170
01:49:58.130 --> 01:50:02.905
based on a censorship attack, you've got a lot of people with a lot of Bitcoin locked up in
1171
01:50:03.365 --> 01:50:03.865
basically
1172
01:50:04.565 --> 01:50:05.065
custodial
1173
01:50:05.525 --> 01:50:06.025
shitcoin
1174
01:50:06.325 --> 01:50:07.145
with Bitmain.
1175
01:50:07.739 --> 01:50:13.840
You know, if you're using OPCAT and on Bitmain is the only one enforcing it, you're just custodying your money with Bitmain. That's all you're doing.
1176
01:50:15.665 --> 01:50:23.925
Wasn't for wasn't one of the takeaways from I wasn't around at the time, so any of the old timers can correct me on this, but wasn't the day that they did
1177
01:50:24.305 --> 01:50:24.805
the
1178
01:50:25.540 --> 01:50:31.640
fork wasn't it something like 75% of Hash Power moved over there and, like, by the end of the day, they were back on Bitcoin?
1179
01:50:32.815 --> 01:50:41.395
I don't think that ever happened. Every time I had b cash? Yeah. B cash. No. That never happened. Dion never had the balls to actually like, he indirectly controlled
1180
01:50:42.119 --> 01:50:44.219
the overall majority of hash power,
1181
01:50:44.840 --> 01:50:57.255
but he never had the balls to kill his golden keys. Have the balls to take a 1,000,000,000 of his company's dollars and put them directly into Bcash and then ride it all the way down to 0. Yeah. He did do that. But with the hash rate, he never
1182
01:50:57.895 --> 01:50:59.915
I don't think the hash rate ever flipped, period.
1183
01:51:00.400 --> 01:51:13.295
There there were some people mining back and forth, switching on whatever was most profitable. Oh, yeah. Oh, yeah. Sorry. There Oh, shit. There there were a number of miners that, were switching back and forth depending on whatever was most profitable.
1184
01:51:14.955 --> 01:51:17.135
And that caused a lot of issues,
1185
01:51:17.590 --> 01:51:19.930
especially on the Bitcoin Cash Corp.
1186
01:51:20.470 --> 01:51:20.970
But,
1187
01:51:21.430 --> 01:51:27.685
like, they they were just following, like, an just an algorithm, you know, what's most profitable. Okay. Just do that.
1188
01:51:29.025 --> 01:51:33.045
But I I don't think they were looking to accomplish anything other than
1189
01:51:33.390 --> 01:51:37.250
just make the most amount of money in the shortest amount of time. They were probably,
1190
01:51:37.710 --> 01:51:55.550
like, hour long periods where VCAS is the most profitable, and they had 80% a half hour or something, but certainly not on a scale of, like scale where we can actually average this out. Right? Because you can't really accurately measure where Hash rate is on short time horizon. When there was a forked up mobile website. Right? Right. But,
1191
01:51:56.010 --> 01:51:59.630
yeah, I mean, you there's a lot of noise. They have to average out over some time horizon.
1192
01:51:59.955 --> 01:52:08.330
Yeah. On the time horizons, they could average out. I I don't know the hash rate. Yeah. Forged out, you never saw a significant percentage of all hash power.
1193
01:52:08.810 --> 01:52:13.150
I mean, I think you saw, like, 10 or 20%, and I think it was enough that blocks were slow,
1194
01:52:13.690 --> 01:52:28.030
but it was, like, annoyingly slow. Like, no one was, like, like, blocks weren't happening or it was nothing like that. Right? It was just, like, a little bit annoying. And some people and I think the fee rate increased in this time, and some people were arguing that it was because the blocks were 10 or 20% slower.
1195
01:52:28.489 --> 01:52:30.110
And I don't know if that's,
1196
01:52:30.570 --> 01:52:36.014
you know, justified for the actual one. It was a pretty minor thing. Shadowgram, just in case with Yeah. Okay. Chat Chat
1197
01:52:36.815 --> 01:52:40.890
but they don't have a choice yet. I don't Yeah. And, also, they're not zapping with their comments.
1198
01:52:41.290 --> 01:52:44.590
You can So ignore it. I live on mobile phone
1199
01:52:45.130 --> 01:52:47.450
24 7. I'm pretty sure it never flipped.
1200
01:52:47.930 --> 01:52:51.514
I I I mean, I think Matt that I'll be wishing that is
1201
01:52:51.914 --> 01:52:58.894
Matt Matt explained my concerns much more eloquent than me. He and he used the technical term clusterfuck. Like, I really wanted to avoid.
1202
01:52:59.540 --> 01:53:03.239
I'd prefer to avoid a a mass rug pull,
1203
01:53:03.940 --> 01:53:09.935
kind of event or, like, a massive reorg if if you start to see miners, you know, switch
1204
01:53:10.555 --> 01:53:16.575
back. And, like, right now, that it just feels like we're at, like, kind of a detente, and it it feels like most of the conversation is
1205
01:53:17.275 --> 01:53:17.775
unproductive.
1206
01:53:19.719 --> 01:53:30.075
I mean, that's also true if you watch Twitter. If you hang out with developers, I'm not sure, like, you know, if you just watch Twitter, you would assume that, like, myself and Polstra or myself and,
1207
01:53:31.175 --> 01:53:33.255
Ethan Heilman or myself and and
1208
01:53:33.920 --> 01:53:45.705
don't know. You're just fighting with everybody. You'd think that we, like, wouldn't get along and that we hate each other. It's not like you know, we have we have conversations about it and we talk about it, like, there's more research needed. And I think I think there's I I don't
1209
01:53:46.085 --> 01:53:49.785
know that we actually really have that drastically different of a viewpoint.
1210
01:53:50.650 --> 01:54:03.315
Like, you know, I I take different positions in public because I I think these issues aren't talked about enough, and that's what I focus on in public, but that doesn't necessarily mean that that's the only thing I care about. That doesn't necessarily mean that I don't love El Cat too. Right?
1211
01:54:04.255 --> 01:54:06.835
So then what about Andrew? Like, what is your,
1212
01:54:08.380 --> 01:54:13.520
and I love this is, like, such a great detour before final thoughts, like, half an hour detour before the 5 minutes.
1213
01:54:13.900 --> 01:54:15.280
We're not in a rush here.
1214
01:54:15.740 --> 01:54:18.815
The Final thoughts before I went and finished my line. I know.
1215
01:54:19.195 --> 01:54:25.455
And then you came back, and we're just continuing No. I'll finish my line. Well, I mean, I I we got this group here. We have to have,
1216
01:54:27.070 --> 01:54:33.890
like so what are your thoughts on, like, more restrictive changes, like, something like an out fault or something? Like, you just don't need to think like that.
1217
01:54:34.525 --> 01:54:35.025
So
1218
01:54:36.125 --> 01:54:48.270
they I'm skeptical that they're actually more restrictive. Right? So op vault is a is a good example of an opcode where, you know, 2 weeks ago, I would have cited that as an example of something more restrictive. It just enabled vault, and it doesn't do anything else.
1219
01:54:49.210 --> 01:54:49.950
And then,
1220
01:54:50.490 --> 01:54:56.415
I think it was Brandon. Whoever it was on my panel beside me said, oh, like, just a few days ago, I figured out how to do,
1221
01:54:57.355 --> 01:55:02.015
how to do, like, generic covenants just using off walls. Right? I figured out how to abuse them.
1222
01:55:02.395 --> 01:55:02.895
So
1223
01:55:05.420 --> 01:55:07.199
I think that it's possible
1224
01:55:07.659 --> 01:55:09.599
to come up with new opcodes
1225
01:55:09.900 --> 01:55:13.119
that don't enable you to do everything that does,
1226
01:55:14.594 --> 01:55:19.014
But I'm not convinced that, like, I'd really have to study any specific proposal
1227
01:55:19.795 --> 01:55:21.815
before I, come in. Is
1228
01:55:22.470 --> 01:55:24.010
probably pretty clearly nonrecursive.
1229
01:55:24.390 --> 01:55:26.890
I believe that CTV is okay. Yeah.
1230
01:55:27.270 --> 01:55:38.235
So you could use that as an as an example. Yeah. So CTV, yeah, is is a good example. And it's also been around for a few years, and nobody's, like, figured out how to do it. So that's also pretty good evidence that CTV actually only does what it sets on the 10th.
1231
01:55:39.175 --> 01:55:41.275
So if your question is, like, do I support it?
1232
01:55:44.300 --> 01:55:49.280
I guess. I mean, it it enables a bunch of stuff, and and maybe if that's something we could all agree on.
1233
01:55:49.715 --> 01:55:54.775
Well, that's my answer. If it's something we can all agree on, then I support it. But it it's it's not. Right? CTV was,
1234
01:55:55.875 --> 01:56:10.445
kinda got mired in a lot of of arguing about whether it needed to be more general or or whether it was too narrowly focused for the complexity that it brought and so on. But, yeah, whether it added any real value directly or whether we should just add something like cat and then add.
1235
01:56:10.985 --> 01:56:19.010
Yeah. Yeah. Exactly. Right? I mean, there are a few Jeremy had, of course, his website with a bigillion use case and so on. But but many of those use cases were pretty,
1236
01:56:19.870 --> 01:56:28.395
kinda, like, made pretty bad trade offs, I'd say. There were a few that that were really good, but the the ones that were good, I would say, is a small set and probably not enough to justify the complexity.
1237
01:56:29.655 --> 01:56:30.155
So
1238
01:56:30.840 --> 01:56:39.340
kind of what got me excited about cat, right, is that the complexity, technically speaking, was so low. Right? And you'd do very little room for bike shedding. You'd do very little room for
1239
01:56:40.055 --> 01:56:41.835
for for code that could be buggy,
1240
01:56:42.695 --> 01:56:44.395
if we deploy it. And then
1241
01:56:44.695 --> 01:56:54.110
later, we move on and say, you know what? That was fucking useless. That's just you know, we should have had some better off code. Well, you know, it's only 5 lines of code that we have to maintain forever because of it. Right?
1242
01:56:54.730 --> 01:56:56.830
So cat has those benefits
1243
01:56:57.130 --> 01:57:02.675
going for it. And in general, I think any opcode does narrow enough not to do what opcat does
1244
01:57:03.934 --> 01:57:07.875
would have to fall into the CTV kind of range. It would be pretty technically
1245
01:57:12.440 --> 01:57:12.940
expressive.
1246
01:57:13.400 --> 01:57:13.900
Right?
1247
01:57:14.440 --> 01:57:15.420
And, personally,
1248
01:57:16.324 --> 01:57:30.250
I would like to have vaults. Right? If we got covenants and they can do vaults but nothing else, I'd be happy. Well, we had an opcode. It turns out it doesn't just do vaults. Alright. Fine. CTV doesn't do vaults. It does sort of a boring form of nonrecursive vaults, but you can do that today with pretying transactions.
1249
01:57:30.630 --> 01:57:32.010
So that's not so exciting.
1250
01:57:32.824 --> 01:57:35.725
Like, to do proper vaults, you kinda need recursive covenants,
1251
01:57:36.344 --> 01:57:37.725
and then they come with
1252
01:57:38.425 --> 01:57:39.565
I don't know. It's
1253
01:57:41.470 --> 01:57:48.050
I I I know. It's not like there's there's kind of a range of trade offs that we can make. Right? And I don't think of any good points in that area.
1254
01:57:48.645 --> 01:57:52.824
At the Bitcoin plus plus in Austin, that was basically all of the
1255
01:57:53.125 --> 01:58:02.270
smaller opcodes where we're like, hey. We're trying to narrowly focus this down, and so it only does one thing. So the opcode you in? Yeah. Well, all of them showed up, and all of their presentations
1256
01:58:02.730 --> 01:58:14.055
were consisted of, I tried my best to make this as tight as possible, and 8 months later, when I had the 9th or 10th guy look at it, he found a way to basically turn it into a generalized company.
1257
01:58:14.410 --> 01:58:16.750
And that was for all of them. That was, like, thoughtful,
1258
01:58:17.050 --> 01:58:28.585
APO. Right? Like, just down the line. Right? And so and with CTV, right, it's like, hey. Say we activate CTV. Well, now you can use CTV with basically any other sort of tiny change, and then you end up getting the
1259
01:58:28.965 --> 01:58:36.230
covenants there. And so discussion that Andrew's having about we have to decide whether or not we want this is, like, very important because
1260
01:58:36.690 --> 01:58:37.510
there's basically
1261
01:58:38.395 --> 01:58:47.400
to to date, there's basically no way for when you try to add one of these things without accidentally introducing this down the line potentially. Right? You can't prove that you won't be able to
1262
01:58:47.960 --> 01:58:56.060
before that. And then another important point that came up there for it was that currently there's no way for someone to express on chain
1263
01:58:56.575 --> 01:59:07.360
whether or not they want this thing. Right? So for example, if we had Cat activated, for example, and there were 100 of people or, like like, millions and millions of Bitcoin worth of activity
1264
01:59:07.739 --> 01:59:12.000
for people using OPCAT for vaults, then that's, like, a very clear
1265
01:59:12.435 --> 01:59:19.094
direction where Bitcoin Core and, like, the developers for it can say, hey. People definitely want Vaults. And so we can take the
1266
01:59:19.530 --> 01:59:46.960
inefficient use of this with opcat and turn that into a tighter opcode, for example, for it, where it's doing the same thing that people are already doing with opcat. But for example, today, for whenever anybody talks about vault, so there's no way you can click. Like, there's a bunch of huge entities that are currently using pre signed transactions to get around the vaulting thing, but that's not something that people can point at. They're not very public about it. So when you try to point to, oh, hey. This huge company or this huge entity is demonstrating that they do want vaults.
1267
01:59:47.325 --> 01:59:53.105
That's not something that you can, like, point to and say that's, like, actual economic activity that we should try to align around for.
1268
01:59:55.119 --> 01:59:58.500
I'm gonna push back on that. I don't believe that anyone will ever use phones.
1269
02:00:00.079 --> 02:00:04.275
I think that the conversation so I will So aside from both sides. Aside from both sides.
1270
02:00:05.555 --> 02:00:06.535
And his weird,
1271
02:00:07.395 --> 02:00:08.855
manually created everything.
1272
02:00:11.350 --> 02:00:17.290
He's gonna write all of his own software. They were they were great with 1, put 1 up, which is not accurate. Yeah. So
1273
02:00:19.670 --> 02:00:21.290
so the problem so the problem involves
1274
02:00:23.225 --> 02:00:26.525
management problem and replace it with 2 key management problems.
1275
02:00:27.945 --> 02:00:32.950
And at least I have a project called codec city too, which was 69.
1276
02:00:33.730 --> 02:00:41.755
Just pieces of paper. We replaced our 2 key management problems with 10 key management problems. Now this is only strictly better. No. But you only have to call 7 of the time.
1277
02:00:42.055 --> 02:00:42.555
Right.
1278
02:00:42.935 --> 02:00:44.155
Right. Right then.
1279
02:00:44.695 --> 02:00:45.195
Alright.
1280
02:00:46.100 --> 02:00:55.239
So, you know, there's a lot of large entities with lots of Bitcoin that care very deeply about their key management, and have spent a lot of time, a lot of money investing in key management.
1281
02:00:55.945 --> 02:00:56.525
And vaults
1282
02:00:57.065 --> 02:01:09.320
give you replace your key management problem with 2 slightly different key management problems. So it is true that your hot keys is ever so slightly different in its security model than your cold key, but
1283
02:01:09.860 --> 02:01:18.185
it's not that different. Like, you still want your hot or, I guess, maybe it's your warning key because you have a separate hot wallet, so now you have 3 key management problems. But,
1284
02:01:19.605 --> 02:01:20.905
but your warning key,
1285
02:01:21.240 --> 02:01:24.540
you know, you still want it to be super secure
1286
02:01:24.840 --> 02:01:36.165
and not have to deal with it. Then your cold key, you still have to access regularly to make sure it's still there. You know, one one problem with the vault cold key construction is, you know, no one's ever gonna have a,
1287
02:01:37.660 --> 02:01:52.205
call you know, no no enterprise should ever Yeah. That's exactly right. Have a super cold key or set of keys where they never access it or you still have to you wanna access it once a year to check that it's still there, it's still working, you can still you know how to access it, whatever.
1288
02:01:53.385 --> 02:01:54.925
And so this is something that
1289
02:01:55.830 --> 02:01:59.210
basically so I so I think in practice for a large enterprise,
1290
02:01:59.670 --> 02:02:00.810
the cold key,
1291
02:02:01.190 --> 02:02:03.210
vault cold key, and the existing
1292
02:02:04.265 --> 02:02:06.445
warm ish, cool ish key,
1293
02:02:07.785 --> 02:02:10.125
design would look basically identical.
1294
02:02:11.065 --> 02:02:13.165
And so I think for most of them,
1295
02:02:13.930 --> 02:02:17.950
when they actually sit down and start designing the vault system, they're gonna say,
1296
02:02:18.410 --> 02:02:43.315
why are we duplicating all these keys? Can we just not do this? And not and so I I think there will definitely be both some maybe I was a little harsh. There will be people who use it, but I think the, like, excitement over how, like, every large enterprise wants this, that's gonna be great. I don't think that's really accurate, and at least the large enterprises that I've spoken with had to sit and, like when you kinda sit down, you're like, alright. So How are you gonna design your cold key? And they're gonna kinda stare at you blankly and then they say,
1297
02:02:43.775 --> 02:02:44.275
oh,
1298
02:02:46.015 --> 02:02:50.100
you know, maybe we won't. But isn't it it's more helpful for, like, individuals in inheritance.
1299
02:02:50.560 --> 02:02:51.780
Is that not true?
1300
02:02:52.480 --> 02:02:52.980
Maybe.
1301
02:02:53.760 --> 02:03:04.620
I mean, that Maybe we can still use, like, multisig to do our own thing if you want. I mean But we could try to drag Robin to this conversation. And it's like, right now, Anchor Watch. Wait. He's active in the live chat.
1302
02:03:05.500 --> 02:03:21.235
Yeah. Oh, that's what it is. Alright. So I I think that Anchor Watch I don't know what your term bill is limited to a year at a time or something. You do have layers of keys that people have to manage, and I wonder Yeah. So conceptually, I would call this kind of like our MVB product to start. Right?
1303
02:03:22.220 --> 02:03:24.480
Making it very compressed on the technical side.
1304
02:03:26.380 --> 02:03:28.800
The idea ultimately is that they couldn't addresses
1305
02:03:29.635 --> 02:03:32.455
to distribute risk and make them safer and more resilient.
1306
02:03:33.155 --> 02:03:40.420
We basically make a pseudo vault within a single UTXO by leveraging manuscripts. Right? And this enables with the combination of time locks
1307
02:03:40.880 --> 02:03:42.179
and threshold to thresholds.
1308
02:03:42.800 --> 02:03:47.494
We're basic and, you know, using, like, op if, like, nested opt if statements, we're able to do
1309
02:03:47.875 --> 02:03:56.960
many different ways that you can spend a Bitcoin UTX. So the idea, ultimately, is that we wanna be able to provide assurances that there's many ways that this Bitcoin address can be encumbered. And, basically,
1310
02:03:57.500 --> 02:04:00.559
in general, just how the industry work and kind of how the practices have developed,
1311
02:04:00.940 --> 02:04:13.780
everyone's using, for long term cold storage, either some sort of MPC architecture where they're sharding an individual key, or they are doing some sort of n of n multisig, which has beta multisig has been around since 2011. We've paid a Scrip Hash since 2014.
1312
02:04:14.480 --> 02:04:16.020
And it was just a general observation
1313
02:04:16.719 --> 02:04:24.645
we had about over a year ago that there was a more rich design space built on, you know, to make this full circle, Rust Bitcoin, Bitcoin DevKit, Rust Minionscript.
1314
02:04:25.505 --> 02:04:31.340
And for us, I think I view this as, like, the starting place of being able to make Vault like functionality
1315
02:04:31.960 --> 02:04:33.740
with the understanding that, you know,
1316
02:04:34.360 --> 02:04:50.390
I'm a company building in the space, so I don't have the luxury of hoping that there will be some sort of fork activation that's gonna add new functionality. This is kind of like an idealized state of how far can we take this concept of vaulting today. And it is a key management problem, but you can distribute those keys and you can have more robust scripting.
1317
02:04:51.090 --> 02:05:03.505
So you can rely on organizations, lawyers, estates, trusts. And with that distribution of keys, you're able to distribute the risk and internally make the money more safe by not making it there's this one way you can spend the money in the transaction.
1318
02:05:04.330 --> 02:05:19.960
Would you would you imagine that your users so right now, there are keys that are, like, time locked with with the highest time lock in in your elaborate script. Would you imagine that some of those keys would move from being, like, very long time lock keys to being actual vault keys that just aren't used except in
1319
02:05:20.280 --> 02:05:21.900
bad cases? So I guess, like,
1320
02:05:22.200 --> 02:05:31.435
to to Matt's point about, you know, you're just changing one key management problem to another. There needs to be a contingency of if this default happy path is broken and those keys are compromised,
1321
02:05:31.975 --> 02:05:44.449
you do need to have some sort of emergency cold storage keys that you're able to reclaim to in the event that those hot keys are compromised. A very simple example is I could have a with an op vault construction on my phone, maybe I have a single sig,
1322
02:05:45.245 --> 02:06:00.420
that it sits in an intermediary address for, say, a week before it can actually get flooded, which maybe 90% of the time is fine. But if someone compromises my phone key, someone's just maliciously trying to drain my money all the time, and I'm constantly spending money on chain transactions trying to sweep it out, you need to be able to have
1323
02:06:00.835 --> 02:06:36.760
some sense of kind of distribution of keys. But I think what you can do is you can make a bunch of keys phone keys. You can make them really hot and accessible, and then you can have your hardware wallet, cold storage, in a bunker wrapped around in aluminum foil to kinda keep your super safe keys as, like, disaster recovery or some sort of federation or distribution of those. I think that's totally an option. Yeah. I think we're gonna build that, and then we're gonna see people are gonna say, oh, my phone got hacked. Let me go find my key that I wrote down when I created this wallet. It's I put it in a safety deposit box. They're gonna go to the bank, and then they're gonna realize the bank took their safety deposit box and sold it because they haven't visited the bank,
1324
02:06:37.415 --> 02:06:45.395
in the last year, which, by the way, is a thing that happens. Sure. Yeah. It did. And then they're gonna get sued. So I I think, you know, I I think when we really sit down and we model out
1325
02:06:45.770 --> 02:06:56.005
all of these issues, I think we're gonna find that that and in in general, when I do talk to people who do model out these issues, and maybe you guys have, but I think at least on the enterprise case,
1326
02:06:57.665 --> 02:06:59.844
we we generally find that people say, oh,
1327
02:07:00.545 --> 02:07:03.910
well, actually, the key ends up looking similar, and we end up building
1328
02:07:04.370 --> 02:07:05.590
something very similar.
1329
02:07:06.690 --> 02:07:28.965
You know, we All of my keys are codecs32 checksums, and every 3 to 6 months on a schedule, right, I make sure I can access them, and I verify the checksum using my worksheets, which I then burn. So I do have a process to refresh my key that don't require the interrupt. Again, we've already established you're gonna use all this stuff. These conversations whether other people were mentally stable, they're gonna use all these things. Again.
1330
02:07:29.425 --> 02:07:33.125
I can't do it. If it's mental stability, it's the threshold of the conversation.
1331
02:07:36.090 --> 02:07:40.270
Andrew's actually gonna retire on the profits from selling the book that allows you to do this stuff.
1332
02:07:41.690 --> 02:07:43.710
Yeah. It's it's the rich dad, poor dad model.
1333
02:07:44.250 --> 02:07:55.940
I'll watch I'll watch your Netflix movie. I have a quick story for, like, what made me decide that, like, bolts are important. So, I was helping out a guy who had all of his funds stolen out of his cold storage.
1334
02:07:56.400 --> 02:07:57.380
And the
1335
02:07:57.840 --> 02:08:03.460
time that the guy had actually gotten compromised was, like, 3 years previously when his Google was compromised.
1336
02:08:03.795 --> 02:08:14.110
Right? And at the time, this was just, like, you know, a total newbie or whatever. He'd taken a picture of his seat. Right? And so this he had it there. And instead of immediately sweeping all the funds,
1337
02:08:14.489 --> 02:08:22.349
what the hacker had done was he'd set up a worker for just watching the wallet Mhmm. And allowed the guy to continue stacking to his cold storage.
1338
02:08:22.745 --> 02:08:25.885
And the guy continued to do it for, like, 2, 3 years,
1339
02:08:26.185 --> 02:08:29.165
and then the first time that he actually tried to move the funds
1340
02:08:29.705 --> 02:08:38.369
was basically a replace by fee transaction that swept the entire wallet. Right? And so based off that, right, like, the the thing that I'm most,
1341
02:08:38.965 --> 02:08:58.195
bullish on for Vaults, right, is that when a key gets compromised currently, right, they don't have to do the attack immediately. It's like once compromised, there's no indication that the key has been compromised, and there's no way that you can have any sort of reactive security to your key was compromised. They started moving the funds. I can do something about it. Right? And so just, like, think about how many,
1342
02:08:58.815 --> 02:09:33.185
like, how many freaks are out there and, like, you know, they did their cold storage setup with their multisig or whatever, and they've just been continuously stacking to it without checking all these things and also not having any sort of indication that the key was compromised in the event that it was, and then 5, 10 years later or something. Right? Like, because once you have the key, you already own the wallet, and you don't have to do anything that shows that you do it. But with a vaulting structure, that's something where in the event that it is compromised, you do have that window for being able to go after it. And that was the specific instance where after that one, I was like, oh my god. Look. We need Proactive to react. 2 things. Right? Like, the there's
1343
02:09:33.885 --> 02:09:38.320
yeah. I mean, there there are definitely cases we can point to where we can solve it. There's no question about that.
1344
02:09:39.040 --> 02:09:44.739
And you're right that, like, being able to have reactive security isn't it'd be primitive that that may be useful.
1345
02:09:45.040 --> 02:09:46.980
But I think it's important to ask
1346
02:09:47.934 --> 02:10:00.050
what percentage of attacks are like that. You know, how many does the attacker really leak the key, get the key, and then sit on it for a long time? And I think that may probably growing, but it I assume it's still fairly rare.
1347
02:10:01.150 --> 02:10:10.304
And then there's the question of what percentage of people are gonna build this vaulting thing and then assume that their vault key is safe and then forget about it
1348
02:10:10.605 --> 02:10:13.105
and not actually have it be safe, and I think that's
1349
02:10:13.480 --> 02:10:24.835
probably very high, especially, you know, when we're talking about enterprises. I know when Volts first were being talked about, it was mostly about enterprises. I don't know that enterprises are really gonna use Volts very much, but at least them, they are we know,
1350
02:10:25.534 --> 02:10:33.460
okay. They're gonna they're gonna do all stuff. They're gonna check that the keys are still there once every 6 months. They're gonna send people out to all the vaults, physical vaults in this case.
1351
02:10:33.840 --> 02:10:38.415
Check the keys, reroute the keys, try to sign something, make sure it's all valid.
1352
02:10:40.555 --> 02:10:50.460
But with a normal person, we assume they just never will. I think 99% of people just never will. It's never gonna rise to the the threshold of, like, they're gonna actually check it.
1353
02:10:51.245 --> 02:10:56.864
And so I I I don't know. Like, you know, we have to we have to consider those proportions, and some people are gonna build wallets like that.
1354
02:10:57.165 --> 02:11:04.800
I don't know that they're gonna have the most users. You know, I think they're, like, 2 or 3 model where a server applies velocity. You know, one thing,
1355
02:11:05.420 --> 02:11:09.360
if we had volts where you can apply velocity, like, maybe just velocity controls generally
1356
02:11:09.775 --> 02:11:14.195
would solve this too. Like, maybe that's actually what people want to velocity controls, not volts.
1357
02:11:16.255 --> 02:11:17.395
Maybe we want both.
1358
02:11:18.495 --> 02:11:27.010
So, you know, maybe Vault's the wrong thing to focus on. Maybe we should be focusing on 64 bit math, and then we get the curse of covenants again, and then we have this whole thing starting from the top.
1359
02:11:27.650 --> 02:11:28.150
But
1360
02:11:28.645 --> 02:11:31.205
nice. Yeah. Another super cool thing other than vaults that you can do,
1361
02:11:31.845 --> 02:11:42.329
that I think you'll win immediately is, clawback transactions. Like, you know, undo button that expires after 20 minutes. You can't do that now, But, you pay somebody and then you can pull back the money in, like, an hour or something.
1362
02:11:43.030 --> 02:11:45.785
So you think, like, the lack of chargeback chargebacks
1363
02:11:46.165 --> 02:11:55.410
is a bug not future? Well, like, if this guy wants to bring the government in, if you take all chargebacks, I think, I'm fine. Yeah. Yeah. He's gonna be sig with the CRM. He doesn't love with
1364
02:11:57.150 --> 02:12:02.450
that. No. But Sorry. I respect. Yeah. But he did, he did some Mike for fun.
1365
02:12:02.975 --> 02:12:12.595
Oh, no. I I don't know. Like, could you do that with the multi sig and some sort of time lock? You like, the clawback stuff? Yeah. I don't know. I mean, there's no way to to remove this much additional.
1366
02:12:13.790 --> 02:12:26.655
Yeah. That's a so in the layered example, like, what we're doing, once a time lock is satisfied and you can't you can still spend the older condition. So if I have money I can spend today and there's a new spend condition at 6 months and there's a new spend condition at 1 year,
1367
02:12:27.035 --> 02:12:32.920
you can spend the no time lock and the 6 month time lock condition even if you hit the 1 year. It's not like you can expire
1368
02:12:33.620 --> 02:12:34.680
a spend condition
1369
02:12:35.060 --> 02:12:38.815
by the nature of how it's funny because you call it, like, a time lock. It's more like an unlocking
1370
02:12:39.675 --> 02:13:03.695
of some sort of condition. Right? You basically pass a you open up a logic gate with the either check lock time verifier or the check sequence verify. Right? So you turn a verify function in Bitcoin script, which is pass fail into pass, and you can't make it go to fail again once you flip it to pass. Yeah. You can't make it invalid after a certain time. Jersey. To to bring Brad the the conversation to us, this is like a cargo feature. It's just additive by nature.
1371
02:13:04.590 --> 02:13:05.330
No. I got
1372
02:13:05.910 --> 02:13:06.410
it.
1373
02:13:06.990 --> 02:13:11.970
You can first do this by No, Mike. You can do this by just spending the UTXL,
1374
02:13:12.805 --> 02:13:14.425
Putting another transaction. RBF.
1375
02:13:14.965 --> 02:13:31.430
Yeah. Or yeah. Yeah. Mehul's never clear again. You'll always have the opportunity to RBF. You can just give someone an end lock time transaction to the future, and then you have time to be able to spend it, bump it out, and claw yourself back without hitting the men publicly. I mean, of course, you could just get into, like, a back and forth where it just goes to 0. Totally.
1376
02:13:32.655 --> 02:13:33.875
Scorched earth policy.
1377
02:13:34.975 --> 02:13:37.395
I mean, I just wanted to shout out weirdo robot,
1378
02:13:38.095 --> 02:13:38.995
in the comments.
1379
02:13:41.000 --> 02:13:44.460
Matt, he called you mister Blue, which I feel like more of us should do.
1380
02:13:47.375 --> 02:13:48.275
Room because that's ambiguous.
1381
02:13:49.135 --> 02:13:51.395
Yeah. Mister Blue's good. It bangs.
1382
02:13:52.175 --> 02:13:52.675
Yeah.
1383
02:13:53.935 --> 02:13:56.890
Should we should we do what what Cody suggested,
1384
02:13:57.350 --> 02:13:58.410
an hour ago?
1385
02:13:59.430 --> 02:14:08.985
Yeah. Sure. So let's go around for the projects of, like, what the road map looks like for them and then, like, contribute. We talked a little bit about contributor status, but, like, anything where you're kind of, like, lacking
1386
02:14:09.285 --> 02:14:19.880
somebody and you'd want them to, like, come in. I work at a couple of, I'm sure everyone else has maybe a couple of, like, this is part this is part of our roadmap where we don't have dev resources that we could throw at this right now.
1387
02:14:20.500 --> 02:14:21.000
K.
1388
02:14:21.395 --> 02:14:38.580
Sure. I'll speak to my rusty coin. It feels like the project's healthy. We've got people coming in. I go to sleep sometimes, and I wake up stuff's done. So it feels really good, but it's like sometimes it doesn't. Yeah. So it feels good. We've got developers. We need more of yours. It's felt good to hear everyone, or it's been good to hear everyone
1389
02:14:39.055 --> 02:14:48.755
saying that they're using the project. That's great. My ultimate dream is that no one ever talks about rustic coin. It does exactly what you want. No one rinses about it, and you never hear about us again.
1390
02:14:50.280 --> 02:14:58.460
Yep. They agreed on all counts then. Yeah. The biggest thing we need are are users who, will tell us what they're doing. So we we aren't, accidentally breaking up stuff.
1391
02:14:59.145 --> 02:15:03.245
Yeah. Double on the on the user feedback, I think. So BDK,
1392
02:15:03.705 --> 02:15:11.440
we do want you to hear about us. We want people building products, you know, new self custodial, high privacy on chain stuff,
1393
02:15:12.140 --> 02:15:13.760
high security best practice.
1394
02:15:14.765 --> 02:15:18.465
We're stabilized specifically so people can do those products
1395
02:15:18.845 --> 02:15:24.320
and get that kind of guarantee and give us the chance to write the documentation. So we need your help and feedback, documentation,
1396
02:15:25.580 --> 02:15:30.000
build stuff with us. Just build it. And if you're, you know, an existing user of BDK,
1397
02:15:31.155 --> 02:15:33.574
let us know. We will help you migrate,
1398
02:15:34.435 --> 02:15:42.920
to a pre one point o to the one point o API. So, you know, reach out. We're on Discord or, you know, email. We we're building the software that
1399
02:15:43.380 --> 02:16:00.800
is built by people that are better than anybody else you'd be able to hire. Like, these are rock star Rust devs that are building amazing software and you get it for free. Of course, we would like your support financially also, but, it's a complete game changer for building a company. So please take advantage of that.
1400
02:16:01.179 --> 02:16:03.360
And, yeah. Check us out. Bitcoindebkit.org.
1401
02:16:06.635 --> 02:16:10.655
Before I get into that I'm sorry. I have to bring the conversation back once more.
1402
02:16:12.635 --> 02:16:23.170
6 hour podcast. Someone did DM me, and they sent me a chart. I'm not actually sure where it's from, so I don't know if it's legit. But it does show the BCH hash power getting a tick over 50%,
1403
02:16:24.054 --> 02:16:25.755
very briefly sometime between
1404
02:16:26.375 --> 02:16:27.675
midnight August 20th
1405
02:16:28.454 --> 02:16:29.434
August 24th.
1406
02:16:30.135 --> 02:16:31.094
So we were on,
1407
02:16:32.130 --> 02:16:34.311
thanks to Eric Wall for pointing out.
1408
02:16:35.010 --> 02:16:36.070
Eric Wall.
1409
02:16:38.690 --> 02:16:40.265
I I will point out that,
1410
02:16:40.824 --> 02:16:46.045
Rob in in the room pointed it out to me. And I told I basically I shushed him.
1411
02:16:46.425 --> 02:16:47.725
I got to shoot. Yeah.
1412
02:16:49.381 --> 02:17:05.555
I mean, I I mean, that's like that that was the kind of show you. I don't think that was, like, a real flip. But you're just trying to keep the frequency No. I'm not I'm not person. Gaslighting. I admitted it. I admit it. Fighting the freak. Gaslighting the chat that was telling us we were wrong. But how did they measure that? Like, how is that even measurable?
1413
02:17:06.210 --> 02:17:08.069
It was a 3 hour rolling average.
1414
02:17:08.449 --> 02:17:08.949
Okay.
1415
02:17:09.729 --> 02:17:12.069
I got the same image from Maribel. But, like
1416
02:17:12.930 --> 02:17:14.550
oh, you got it from Maribel?
1417
02:17:14.985 --> 02:17:21.485
So he hit you first, didn't get didn't did get spoke about, and then he hit he and mister Blurb. Can explain yourself.
1418
02:17:22.890 --> 02:17:25.870
I like Eric. Eric's one of my favorite shit corners. I,
1419
02:17:27.450 --> 02:17:30.970
yeah. I mean, at that point, if I recall correctly, like, in August was
1420
02:17:31.775 --> 02:17:45.619
they had, like, a ridiculous difficulty adjustment algorithm. Remember, it's like teams and their algorithm trying to It was like an insane trying to steal hash power Yeah. Worked very briefly and then it created And it was really bad. Their market collapsed and then they got their hash power.
1421
02:17:45.920 --> 02:17:46.739
Okay. Continue.
1422
02:17:47.040 --> 02:17:47.939
Alright. Alright.
1423
02:17:49.785 --> 02:17:50.524
Yeah. So,
1424
02:17:50.825 --> 02:17:51.325
LDK,
1425
02:17:51.945 --> 02:18:01.150
our road map sadly, you know, a lot of people in this room talked about all kinds of great API things and trying to get the API perfect and focusing on stuff like that. We just we're just trying to ship features.
1426
02:18:01.610 --> 02:18:02.590
We've gotta ship,
1427
02:18:03.210 --> 02:18:08.670
splicing and bill funding and taproot channels and multisync channels and,
1428
02:18:09.595 --> 02:18:10.495
async payments
1429
02:18:11.355 --> 02:18:12.495
and trampoline payments
1430
02:18:13.355 --> 02:18:14.015
and BLASA.
1431
02:18:15.275 --> 02:18:16.175
Nice. So,
1432
02:18:16.610 --> 02:18:22.210
we have a huge road map. We like our API. We think we're our API is pretty good, but that is not our focus.
1433
02:18:22.690 --> 02:18:29.985
But we are hiring, so the great thing about LEK is Spiral has headcount full time to work on this. You know, we funded a lot of developers
1434
02:18:30.445 --> 02:18:38.381
on other stuff, but Spiral you can come work directly for Spiral, and we are hiring right now for at least 1 LDK engineer, maybe 2.
1435
02:18:39.261 --> 02:18:46.944
You don't need to know Rust. We don't require you to know Rust. I think everyone on Spiral learned Rust while working on LDK. I don't think anyone actually knew Rust coming in.
1436
02:18:47.245 --> 02:18:50.545
Some people didn't know lightning that helps, but it's certainly not a requirement.
1437
02:18:52.351 --> 02:19:02.024
Somebody in the chat's asking if splicing is an in all the key today. No. It's not. We're getting there. We've got we've made good progress on it. We're not right there. We'll find things a little closer. But we've got the state machine. We gotta
1438
02:19:02.564 --> 02:19:03.625
finish writing it.
1439
02:19:04.484 --> 02:19:16.061
But also more broadly, and I think this was discussed earlier when I also wasn't in the room, but, you know, if you wanna contribute to an open source project like LDK, it doesn't have to be writing code. In many cases, it can just be providing feedback.
1440
02:19:16.605 --> 02:19:18.785
LDK, a little harder because it's actually a library,
1441
02:19:19.405 --> 02:19:31.410
but, you know, write take LDK Node. Try to make a high level app. You know? It's act it's designed to be super easy. You should only barely need to be a developer to know how to do that. So do it and let us know how it goes.
1442
02:19:31.790 --> 02:19:36.825
And I think one thing that open source projects universally don't get enough of is just user feedback.
1443
02:19:37.686 --> 02:19:38.186
People
1444
02:19:38.645 --> 02:19:41.780
assume that open source projects, you can just take it and run it.
1445
02:19:42.340 --> 02:19:48.280
And if it doesn't work, then you have to work around it because it's open source, so you have to do the work to make it run.
1446
02:19:50.095 --> 02:20:09.024
No. Let us know. Let us know how it went. We wanna get better. We wanna actually get feedback, and we just don't get that in a way that a lot of for profit things where people pay for it and then they assume they get support. And in many cases, open source projects do actually give you the same level of support. You just have to actually ask for it. You have to know you wanna you can ask for it.
1447
02:20:10.125 --> 02:20:11.805
Yeah. Just to briefly add for that,
1448
02:20:12.765 --> 02:20:13.085
for,
1449
02:20:13.890 --> 02:20:14.390
for
1450
02:20:14.930 --> 02:20:17.590
release, we're really, really looking forward to upgrading,
1451
02:20:18.050 --> 02:20:19.670
to BDK 1 dot o,
1452
02:20:20.210 --> 02:20:21.430
which will be,
1453
02:20:22.215 --> 02:20:22.955
really great,
1454
02:20:23.335 --> 02:20:24.295
on many levels.
1455
02:20:24.854 --> 02:20:27.194
It will also allow us to get add a
1456
02:20:28.295 --> 02:20:36.511
bit more server features syncing with Bitcoin, stuff like that. That will be great. Also, we'll be looking to add some more support for the LSP spec.
1457
02:20:37.370 --> 02:20:38.591
But apart from that,
1458
02:20:39.185 --> 02:20:45.365
what I wanted to mention is one takeaway from this week was that a bunch of this project or I think
1459
02:20:46.120 --> 02:20:49.180
all of the project most of the projects in the room were actually,
1460
02:20:49.560 --> 02:20:50.460
building out,
1461
02:20:51.399 --> 02:20:53.659
language bindings that kind of reexported
1462
02:20:53.960 --> 02:20:55.580
some of the rust Bitcoin types.
1463
02:20:56.585 --> 02:21:20.105
And one takeaway from this week was that we will now create a new project that basically instead of everybody doing the same work of exposing these types of rust Bitcoin, we'll do that once and all the other projects can reimport that project so that these rust Bitcoin types are available. This will be writing a bit of boilerplate code, and it it will probably not be super complicated.
1464
02:21:20.920 --> 02:21:22.060
But if you,
1465
02:21:22.840 --> 02:21:24.300
out there, basically, are,
1466
02:21:24.680 --> 02:21:27.899
a Rust developer and have, maybe even with experience,
1467
02:21:28.359 --> 02:21:36.045
with with language bindings and maybe Unify in particular, the Mozilla language binding generator, that would be a really great project to start
1468
02:21:36.550 --> 02:21:40.729
contributing to that would benefit all of the or most of the projects here in the room.
1469
02:21:41.590 --> 02:21:47.655
Yeah. And then, I'll cover Fedi Vin, and then let's go for everybody else because we've got a bunch of projects here.
1470
02:21:48.035 --> 02:21:54.391
So for FettiMint specifically, we're cutting a 0.4 release this week and then after that, there's a couple of different,
1471
02:21:55.330 --> 02:22:00.391
Rust elements that we're working on. And so but to work on payment, you kinda need to be a pretty significant
1472
02:22:00.745 --> 02:22:03.725
lead experienced Rust developer because there's consensus code involved.
1473
02:22:04.104 --> 02:22:11.080
But, one thing we're really excited about is we're gonna have a TypeScript client very, very soon. And so that's just gonna be a drop in
1474
02:22:11.381 --> 02:22:18.435
WASM compatible so you can just put it run it in a PWA or you can run it server side, but like a full TypeScript client. So more people
1475
02:22:18.814 --> 02:22:34.029
integrating Fediment into their existing applications. Right? So if you want something where you already have an on chain component it or you already have a Lightning component but you wanna add, eCash, it's gonna be the the goal of it is to just have a super simple drop in. So anybody working on any other Bitcoin projects
1476
02:22:34.335 --> 02:22:52.131
wants to add Feddy Mint, like, we're gonna have very good TypeScript bindings for that. So you can just drop it in, just npm install or uninstall Feddy Mints, and then, you can get started with it. Yeah. I want me to rephrase a bit. The goal of, the Fendament Web SDK is going to be to completely eat everybody's lunch in terms of developer experience for Bitcoin Lightning.
1477
02:22:53.175 --> 02:22:54.334
Everybody, but,
1478
02:22:54.774 --> 02:23:07.619
Yeah. NPM installed, and we have a fully working Lightning wallets, eCash wallets, unlock your wallet. Yes. It's one sec. So deal. So yeah. Yeah. And so doing a DevX. That'll be pretty great. And then, specifically within Fedimint,
1479
02:23:08.159 --> 02:23:20.370
we have UIs for the running the guardians and running the gateways that we don't have developers for just because the guys who normally work on it, they've, kind of moved on for other projects. And so anybody with any sort of React experience,
1480
02:23:20.910 --> 02:23:27.890
like, we can help you out with all the Rust side of things, but it's mostly just working on a normal front end project. So any front end web developers
1481
02:23:28.255 --> 02:23:29.475
like Faiman's definitely,
1482
02:23:30.335 --> 02:23:49.125
wanting some of you guys right now. Also, yeah, we're we're also serving for, like, front end help, in the open source side. So, like, for, like, the Guardian UI. You know, right now, Cody is, taking that all on himself, and the the Fedi front end people are, strung out. So so, yeah, if you are a front end dev and wanna contribute to some of this hardcore Bitcoin open source stuff, yeah, we need you to.
1483
02:23:49.985 --> 02:23:53.205
Yep. And maybe go around the room for anything. Hey, Tony.
1484
02:23:53.985 --> 02:23:58.780
Hey, Tony. I wanted to say a couple things on Russ Bitcoin, though, that we missed.
1485
02:24:00.520 --> 02:24:01.080
We missed,
1486
02:24:02.205 --> 02:24:02.945
some some
1487
02:24:03.965 --> 02:24:04.465
Cindy
1488
02:24:05.564 --> 02:24:12.910
cryptographic function optimization. There is some room in Rust Bitcoin to optimize these functions. Maybe We talked about that as a problem and we also talked
1489
02:24:13.390 --> 02:24:15.890
generally, all of our projects are looking for
1490
02:24:16.190 --> 02:24:19.170
a better HTTP client, to make requests.
1491
02:24:20.375 --> 02:24:20.875
Yep.
1492
02:24:21.654 --> 02:24:25.994
Turning an HTTP client that already exists, async, one that's async.
1493
02:24:26.295 --> 02:24:29.274
Yeah. Yeah. On the page one side specifically,
1494
02:24:30.360 --> 02:24:34.780
we're working on getting our dependencies up to speed with everyone, of course,
1495
02:24:36.280 --> 02:24:37.420
finishing the
1496
02:24:38.065 --> 02:24:42.485
async pay join protocol spec, which is very, very close that will be
1497
02:24:43.104 --> 02:24:47.365
merged in the bps repo this year for sure, hopefully fall during the fall,
1498
02:24:47.881 --> 02:24:49.181
and getting
1499
02:24:50.520 --> 02:24:51.980
a pseudo stable,
1500
02:24:52.601 --> 02:24:54.540
maybe the better word is complete API
1501
02:24:55.105 --> 02:25:01.846
for page 1 so you can do some of the more interesting batching stuff if you're an exchange or someone like that.
1502
02:25:03.825 --> 02:25:11.270
So there's there's cryptographic stuff to do for public key encryption that's a cross between what PayJoint is doing, what
1503
02:25:13.205 --> 02:25:15.225
Rust Bitcoin has, and
1504
02:25:15.685 --> 02:25:16.825
some general
1505
02:25:17.604 --> 02:25:25.189
Tor alternative oblivious HTTP stuff that we can work on, and that's that's about it. Yeah. When do you expect people to use PayJoin?
1506
02:25:26.369 --> 02:25:27.830
I mean, I use PayJoin.
1507
02:25:28.535 --> 02:25:31.515
I mean, like, more than like, more than a dozen of us.
1508
02:25:32.774 --> 02:25:37.115
I don't understand your question. I'm not even using PayJoint. I don't know. I,
1509
02:25:37.851 --> 02:25:44.885
I'm not gonna what? It's out there. You can't I know it's out there. I'm not gonna we'll we'll we'll have a proper conversation, just the 2 of us. But,
1510
02:25:45.904 --> 02:25:50.484
I think Pedro and I I mean, I love I love what you're working on. I think it's incredibly important.
1511
02:25:51.561 --> 02:25:58.860
But it probably unless we see, like, a mainstream client that just completely ignores coin selection and just does pay joints by default,
1512
02:25:59.625 --> 02:26:09.085
like, we probably will not see significant adoption, and we have not seen significant adoption. I completely agree. I think the reason you haven't seen it in mainstream clients is because the original
1513
02:26:09.530 --> 02:26:18.351
two protocols relied on synchronous communication Yeah. Which is incompatible with someone like an exchange using it, but the new protocol allows that to happen.
1514
02:26:18.835 --> 02:26:21.734
And there are 2 exchanges who have commitments
1515
02:26:22.035 --> 02:26:26.854
to integrating it with both their exchange product and their client applications
1516
02:26:27.410 --> 02:26:35.910
as soon as they can. That's awesome. I just wanna jump in. So Dan showed a demo today with BK and the new page point protocol, the CLI.
1517
02:26:36.445 --> 02:26:48.020
I think making examples of how to do this for, you know, your basic or maybe wallet developers will help just adoption. Are there Make it available. Ready for mutiny. They just have to hit the merge button. Are the 2 exchanges public?
1518
02:26:48.800 --> 02:26:56.595
Yeah. Galois has a bounty out for it, and Francis has been tweeting all over the So Bill Bitcoin is 1? Yes. I think Galois is not an exchange.
1519
02:26:57.375 --> 02:27:02.675
Galois has a custodial exchange product, I think, in blank. No? I don't know. Yeah.
1520
02:27:03.250 --> 02:27:08.310
Okay. Dope. Well, maybe jump to the chat. It's asking just a couple of small questions.
1521
02:27:08.930 --> 02:27:20.891
The one is is Requests not cutting it? And no. I mean, Requests has a massive dependency tree for one thing that, like, exceeds the size of any of our existing dependent. So we don't wanna open more than double that. It also,
1522
02:27:21.430 --> 02:27:23.370
how it's like it changes kind
1523
02:27:24.230 --> 02:27:29.975
of frequently, so it's difficult to have it as a dependency because then you can't stake what's the single compiler version.
1524
02:27:30.354 --> 02:27:34.455
Then are those the repos being discussed? That is definitely Rust Bitcoin. Is that the repo?
1525
02:27:34.835 --> 02:27:39.391
Yes. Yep. Cool. And then is this a point of PDK? I guess you mean BDK.
1526
02:27:40.170 --> 02:27:42.030
No. Page on that. PDPDK.
1527
02:27:42.650 --> 02:28:00.625
And Oh, okay. Cool. We're adding just every everything's a dev kit. They needed a new protocol too, though. It wasn't just a dev kit. The dev kit started getting built last year, and then there were the protocol was terrible. It required synchronous communication so we needed a whole new protocol and now that's just maturing, like that is that is almost merge worthy.
1528
02:28:01.825 --> 02:28:03.685
Also, a request isn't blocking
1529
02:28:04.385 --> 02:28:06.965
quite well. It does like a Yeah. It's weird. Small blocking.
1530
02:28:07.345 --> 02:28:10.730
Async is small blocking that is not, like, blocking. So yeah.
1531
02:28:11.190 --> 02:28:12.570
One more critical thing.
1532
02:28:13.511 --> 02:28:17.851
The new version of PayJoint, we're looking for someone to help
1533
02:28:19.085 --> 02:28:21.745
implement it in Bitcoin Core. It seems
1534
02:28:22.765 --> 02:28:28.340
possible now that you can just take the Rust implementation and copy it over into c plus plus
1535
02:28:28.720 --> 02:28:37.915
and there are some avenues where funding may be available. To be clear, he means the wallet. Like, it's not a core protocol change. It's just the wallet. Get a feature. One core wallet. Exactly.
1536
02:28:38.375 --> 02:28:41.175
Dan, can I ask you, like, if you're making a private
1537
02:28:41.811 --> 02:28:43.990
well, a public shield to exchanges
1538
02:28:44.690 --> 02:28:45.431
to add,
1539
02:28:46.051 --> 02:28:46.950
this support,
1540
02:28:47.330 --> 02:28:48.230
like, what is
1541
02:28:48.610 --> 02:28:49.410
what is the,
1542
02:28:50.895 --> 02:28:56.354
what is the sell? Like, do they have fee savings out of it? What is it? Yeah. The biggest thing is fee savings. So
1543
02:28:57.055 --> 02:28:58.274
the example is
1544
02:28:58.720 --> 02:29:14.970
cut if you go to payjoin.org and click learn more, this is the first article that talks exactly about this. We show an example where you save, I think it's like 16% in fees and this is not a totally optimized example where this is an absolute best case. This is like a pretty generic example that's a small transaction.
1545
02:29:16.070 --> 02:29:16.970
So if you take
1546
02:29:17.830 --> 02:29:18.330
batching
1547
02:29:18.710 --> 02:29:32.375
Right. Which has been around forever, that only allows you to batch outputs actually. Yep. PayJoin lets you also batch inputs. It totally opens up that space. So it's like someone's depositing to the exchange and they participate in the batch withdrawal. Is that what's happening?
1548
02:29:32.740 --> 02:29:35.240
Exactly. And Oh, that's cool. As a consequence,
1549
02:29:35.940 --> 02:29:39.480
you blur the edge of the cluster of each of the depositors
1550
02:29:40.186 --> 02:29:42.766
and people withdrawing and the exchange
1551
02:29:43.306 --> 02:29:43.806
because
1552
02:29:44.186 --> 02:29:49.165
unless you are the exchange yourself or one of the participants, you don't know all of the coins
1553
02:29:49.760 --> 02:29:53.140
involved. So for a 3rd from a the perspective
1554
02:29:54.000 --> 02:30:01.665
of dragnet surveillance, they join As long as the exchange isn't providing that information. Publishing things, it's still it's still worse. But
1555
02:30:02.045 --> 02:30:17.455
if your exchange does this and you deposit, then at least It's strictly yeah. Interacting with you. Like, if I'm giving you some money and you, for whatever reason, are selling Bitcoin to an exchange, which you would never do Right. Then it would be more difficult Not on chain. That you're going to that exchange or your,
1556
02:30:17.835 --> 02:30:21.435
like, how much you're depositing? It's strictly net net better. And,
1557
02:30:22.234 --> 02:30:26.820
from an external external viewpoint, it's it's strictly better and the exchange saves
1558
02:30:27.520 --> 02:30:40.774
money. That's right. And everyone everyone wins. It's a good sell. And it fall it falls back. So if it if the page one doesn't work, you fall back to a naive transaction. Okay. I'm gonna I'm gonna help you with this. We'll get more we'll get more onboard.
1559
02:30:41.154 --> 02:30:44.200
I'm sold. Matt does naming, and he does project descriptions.
1560
02:30:46.980 --> 02:30:47.641
You're good.
1561
02:30:48.181 --> 02:30:57.216
Who's next? Oh, maybe I'll jump in here. I get to have some closing thoughts without actually saying much conversation, which is nice. Can we introduce Nick? Yeah. So, Nick, our
1562
02:30:58.590 --> 02:31:02.370
thanks for joining us. Thanks for having me. It's good to see you again. Nickar, we were back.
1563
02:31:02.750 --> 02:31:06.426
So working for us now. On all of the things we just discussed. Yeah.
1564
02:31:07.365 --> 02:31:10.426
We can go back to the start. Just just keep it on your.
1565
02:31:12.860 --> 02:31:15.360
Working for a snap, next generation multisig.
1566
02:31:15.900 --> 02:31:21.280
It's gonna make Bitcoin self custody much much easier, much much better, much more more private.
1567
02:31:21.955 --> 02:31:23.734
We could do a lot of fun stuff with it.
1568
02:31:25.555 --> 02:31:27.734
Also, separate to Frost Nap, we have
1569
02:31:28.114 --> 02:31:30.354
a very spicy thing coming out in
1570
02:31:31.030 --> 02:31:32.490
maybe today, maybe tomorrow.
1571
02:31:33.270 --> 02:31:37.450
I can't talk about it publicly yet. Oh. Looked forward to that. It's coming out tomorrow.
1572
02:31:38.426 --> 02:31:44.926
You teasing us? What is it? Oh, yeah. I can't tell you. Everyone's already No. We'll we'll edit this part out of the Yeah. This live
1573
02:31:50.880 --> 02:31:52.740
Yeah. They're gonna have catch that. Right?
1574
02:31:53.075 --> 02:31:54.935
So I don't even know what it is, but sure.
1575
02:31:56.275 --> 02:31:57.495
But, yeah, check out frostnap.com.
1576
02:31:59.075 --> 02:32:01.095
Next generation. This one's on custody.
1577
02:32:01.875 --> 02:32:03.560
Twitter for the update.
1578
02:32:03.939 --> 02:32:08.760
Oh, yeah. Yeah. Probably, if you wanna see the the thing we're gonna post soon, UTXO
1579
02:32:09.220 --> 02:32:10.680
UTXO club on Twitter.
1580
02:32:11.404 --> 02:32:14.944
Do do you have an aster or no? Website. Read out your hand pub.
1581
02:32:15.245 --> 02:32:18.770
Yeah. Yeah. What is your name, bud? Nick at utxo.club
1582
02:32:19.710 --> 02:32:20.370
is my,
1583
02:32:21.150 --> 02:32:24.210
zip zero file. She'll blind sign her too on Duster.
1584
02:32:24.670 --> 02:32:25.330
Oh, yeah.
1585
02:32:25.726 --> 02:32:27.025
Yeah. That's good.
1586
02:32:27.485 --> 02:32:30.145
That's that's gonna take too long. We gotta go away over 2 minutes.
1587
02:32:30.766 --> 02:32:33.730
Thank you. Is your hardware wallet public yet or no?
1588
02:32:34.450 --> 02:32:50.455
Well, there's there's no video here. I can It's like the human centipede of hardware wallet. It's like the mouse plugs and tabs. Supposed to be posted on that or you just Well, I asked him. I asked him. Something else. Yeah. It's a cool design. I like it. We we can post
1589
02:32:51.075 --> 02:32:51.234
this
1590
02:32:52.520 --> 02:32:54.460
the new devices publicly as
1591
02:32:54.921 --> 02:32:57.740
well soon. They'll be for sale soon as well.
1592
02:32:58.921 --> 02:32:59.820
Soon, GM.
1593
02:33:00.415 --> 02:33:03.074
Yeah. You just, like, you plug the mouth to the ass
1594
02:33:03.375 --> 02:33:06.034
over and over again for multi sig. It's amazing.
1595
02:33:06.335 --> 02:33:13.410
Actually, I have some for you. Oh, thank you. I've seen some out points with all those ones. Not not the ones I have in my hand. We'll edit this part out.
1596
02:33:15.405 --> 02:33:19.665
I'm glad you called me on that. Thank you for joining us, Nick. It was a pleasure. Service. Yes.
1597
02:33:21.485 --> 02:33:25.120
Yeah. I can go. So I'm the single kid. I'm working on Kashi Dev Kit.
1598
02:33:25.680 --> 02:33:30.101
Similar to other parts and agreements that the development kit built built in, Rust.
1599
02:33:33.936 --> 02:33:35.795
Kinda was at the top of the click containers.
1600
02:33:36.096 --> 02:33:43.680
We're looking for people to build stuff on Cashew and in general. It's it's really wide open design space. There's a lot of stuff left to do,
1601
02:33:44.560 --> 02:33:51.380
and then you can use CDK to do it. It does both knit and and wallet. So whatever you're looking to do, you can use CDK for it and
1602
02:33:51.765 --> 02:33:55.545
let me know what's what's broken in it. It's it's a little less mature than the.
1603
02:33:57.364 --> 02:34:01.891
But yeah. So let me know. Report issues, and I'll fix them, or even
1604
02:34:02.270 --> 02:34:04.770
better open a PR and, can join the.
1605
02:34:05.950 --> 02:34:06.450
Okay.
1606
02:34:07.630 --> 02:34:12.734
Hey, wait. You got you got PayPoint 10 runs working in half an hour. Right?
1607
02:34:13.194 --> 02:34:15.596
It's a little more than half an hour because I have the whole,
1608
02:34:16.075 --> 02:34:19.660
PayPal wallet. But the PayPoint card was was about a half hour.
1609
02:34:20.220 --> 02:34:23.260
Yes. The cash you guys have actually have on chain support, but,
1610
02:34:23.900 --> 02:34:28.320
I hacked it into it some day. Oh, yeah. I was wondering about that when I was watching the presentation.
1611
02:34:28.765 --> 02:34:32.864
Yeah. So there's a a draft a draft knot, to implement it.
1612
02:34:34.045 --> 02:34:37.940
So, we're working on on getting on chain support implemented,
1613
02:34:39.040 --> 02:34:45.860
in the in the spec. Because you know Cali fundament I mean, he's not the ruler of Cashew, but he fundamentally disagrees with on chain support.
1614
02:34:46.886 --> 02:34:59.390
Well, we'll see. Because of the because of the permission thing. Because of, you know, Mintz not being able to control what goes in and what goes out. Yeah. That is that is one of the issues. I mean, we have Cody here. Like, Fedimint had a DNS
1615
02:35:00.010 --> 02:35:00.510
issue
1616
02:35:00.890 --> 02:35:01.710
where, like,
1617
02:35:02.250 --> 02:35:04.990
some of the Fedimint's, they got banned on the dotxyz
1618
02:35:07.314 --> 02:35:07.814
domain,
1619
02:35:08.115 --> 02:35:08.435
and,
1620
02:35:10.115 --> 02:35:18.479
they couldn't stop people from continuing to deposit. And Cali kinda took a victory lap on me on that one. And he was like, well, that can't happen with Cashew.
1621
02:35:18.860 --> 02:35:21.500
Well, so Cashew is a little bit different in that it does you
1622
02:35:22.265 --> 02:35:38.750
I mean, of course, it does it's a quote. You get a quote before you deposit. Of course, if you do get a quote at a time, you can still use that that address later. But in theory, if a wallet is functioning correctly, it's getting a quote and using it kind of immediately or within the expiry time.
1623
02:35:39.645 --> 02:35:46.145
On chain, of course, you can't, like, actually expire the address that you can with lightning so that that it doesn't use that issue.
1624
02:35:47.261 --> 02:36:03.730
But, yeah, it's kind of an unavoidable issue on on chain, I think, that that leads it up to implementation to protect users. I mean, I will say from, like, a user point of view, like, leaving a mint. I prefer having on chain support like, native on chain support so you don't have to deal with liquidity or anything. Otherwise, it just
1625
02:36:04.610 --> 02:36:05.110
becomes,
1626
02:36:05.490 --> 02:36:13.785
kind of what we're talking about with, like, time out channels. Like, in a real user situation, it's just them going from, like, custodial they're, like, hopping from custodial wallets trying to not get rugged
1627
02:36:14.245 --> 02:36:24.950
Yeah. When on chain is beautiful. Right? It's like you just give them an address and you just get your money. Yeah. So both in for both on chain and lightning, the mint operator does have the option to disable,
1628
02:36:25.729 --> 02:36:28.210
like minting. So an operator could decide to do,
1629
02:36:29.385 --> 02:36:34.285
you can't you cannot mint into on on chain, but you can melt
1630
02:36:34.665 --> 02:36:35.405
on chain.
1631
02:36:35.785 --> 02:36:36.845
So that would be
1632
02:36:37.330 --> 02:36:42.290
the spec would probably support groups or both. Like I said, it's a draft, so let's let's see what actually happens. But,
1633
02:36:43.810 --> 02:36:48.306
the operator could decide to do exactly that where you have to peg in lightning
1634
02:36:48.846 --> 02:36:54.945
and you peg out. So you go withdraw via on chain but not deposit? Yes. You could do it that way via the implementation.
1635
02:36:55.860 --> 02:37:10.275
Cody, you wanna defend Fedimint until you grab the white? So specifically, I'll be in this issue that is solved in 0.4 getting cut this week. So Nice. I appreciate your your work. Yeah. For the and the for the on chain wallet, that's currently,
1636
02:37:10.895 --> 02:37:27.125
well, there's an element of it where if you give out a previous wallet, a previous address, you can't stop somebody from doing another deposit for that other one. But, currently, that's just an implementation detail impediment is that the way that you do a peg in is that you tweak the Federation's descriptor
1637
02:37:27.585 --> 02:37:29.045
and you deposit to the tweak.
1638
02:37:29.425 --> 02:37:37.420
And so for that one, because the descriptor, the Federation is public for it or they reveal it to whoever in their community has, like, joined the federation,
1639
02:37:38.600 --> 02:37:49.955
you I mean, you could stop it of just, like, you stop revealing what the descriptors. Right? Or the other thing is, for example, for, like, if we move to, like, a BDK wallet, where instead of the client creating the address,
1640
02:37:50.530 --> 02:37:58.955
the federation creates the address and gives it out, and the federation, just the same way with Casio, could just stop giving out the address if they wanted to be Right. Documenting. Fair enough.
1641
02:38:03.436 --> 02:38:07.135
Hey. I'm Rusteshin Rob, and I'm working on some
1642
02:38:07.580 --> 02:38:08.800
compact block filters,
1643
02:38:09.740 --> 02:38:11.520
node implementation in Rust.
1644
02:38:12.460 --> 02:38:15.680
Right now, it's just me. I make an issue and talk to myself.
1645
02:38:20.075 --> 02:38:21.695
Stop some eyes on it.
1646
02:38:22.395 --> 02:38:23.615
Yeah. It's called Kyoto,
1647
02:38:24.730 --> 02:38:27.471
because one of the main dependencies is Tokyo. So,
1648
02:38:27.931 --> 02:38:28.591
for a station,
1649
02:38:29.131 --> 02:38:32.511
Rob. Kyoto, please come check it out and, save me
1650
02:38:33.210 --> 02:38:33.790
for myself.
1651
02:38:35.345 --> 02:38:39.686
He has it well integrated with BDK and a great demo also on,
1652
02:38:40.385 --> 02:38:47.520
with language bindings recently. I think we got that running with, Swift. So it's Yeah. A lot of fun stuff to play with. It's,
1653
02:38:48.561 --> 02:38:54.555
it's a standalone project, I guess, technically, but I had BDK in mind, like and LDK Node as well.
1654
02:38:55.734 --> 02:39:06.130
So all the design choices and stuff, if I've been, yeah, mashing it at a BDK, and we have a wallet balance that updates properly and everything. So, yeah, it's pretty good.
1655
02:39:08.750 --> 02:39:10.965
Awesome. Anchor watch. Anchor watch.
1656
02:39:12.705 --> 02:39:25.090
I'll just briefly plug that we use a lot of work on top of BDK. So for things that are on the BDK roadmap, we're obviously interested in our things like the mini scripts planning module. I know that maybe more of a BDK 2 point o thing, but any eyes or anyone who's interested
1657
02:39:25.516 --> 02:39:26.815
in being able to streamline.
1658
02:39:27.835 --> 02:39:38.540
I can have a bag of keys that are part of my larger vault, and I can kinda put in a date and a time, and I can get, you know, pre trap stuff sent over me, which is we kind of code around that right now with, like, hard coded,
1659
02:39:39.561 --> 02:39:48.756
understanding what layer you're trying to execute upon. Just as a really quick thing with all the logic before talking about time locks, that's what BBK must be quite greatly abstract because it's constructing
1660
02:39:49.130 --> 02:40:04.565
all of the witness data that is on top of that also the end lock times required. So it's just a massive force multiplier for us. And I'll hand it over to Matthias because he's also upstreaming some code around databases to BDK. Yeah. I mean, yeah, just being able to host multiple wallets,
1661
02:40:05.985 --> 02:40:08.005
in Postgres using BDK.
1662
02:40:09.590 --> 02:40:18.330
I gotta get that going, hopefully, the next week. And then I think there's still a bug in cargo that doesn't let me add it to the BDK repo. So,
1663
02:40:19.895 --> 02:40:25.675
hopefully, when that gets fixed, I'll add it to the BDK repo, but otherwise, it might just live on the Internet as its own crate.
1664
02:40:26.950 --> 02:40:30.970
But, yeah, thanks thankful for everyone in here working on risk Bitcoin,
1665
02:40:31.670 --> 02:40:33.210
BDK on Fediments.
1666
02:40:34.415 --> 02:40:37.155
I mean, rising tide lifts all ships. So,
1667
02:40:38.095 --> 02:40:42.420
yeah, just, super grateful to be a part of all this. So thank you, everyone.
1668
02:40:43.920 --> 02:40:46.660
Stay humble, StackSats, and support open source.
1669
02:40:47.360 --> 02:40:49.140
Love it. Love you all. Peace.
1670
02:41:08.305 --> 02:41:11.604
Fast on a rough road riding high.
1671
02:41:12.385 --> 02:41:13.524
Through the mountains
1672
02:41:13.825 --> 02:41:14.325
climbing,
1673
02:41:14.930 --> 02:41:16.229
twisting, turning
1674
02:41:16.770 --> 02:41:17.270
further
1675
02:41:17.810 --> 02:41:19.029
from my home.
1676
02:41:31.080 --> 02:41:33.819
Out into this great unknown.
1677
02:41:37.319 --> 02:41:40.585
And I don't want no one to cry.
1678
02:41:41.305 --> 02:41:44.205
But tell them if I don't survive,
1679
02:43:44.141 --> 02:43:44.881
unknown stranger.
1680
02:43:45.341 --> 02:43:45.841
Grateful
1681
02:43:46.460 --> 02:43:49.440
for my time with no regrets.
1682
02:43:53.575 --> 02:43:55.516
Close to my destination,
1683
02:43:56.695 --> 02:43:57.195
tired.
1684
02:43:58.615 --> 02:44:00.075
Frilled and aching,
1685
02:44:00.535 --> 02:44:01.035
waiting
1686
02:45:24.115 --> 02:45:25.090
Love your freaks.
1687
02:45:25.810 --> 02:45:27.590
That was born for you by Kid Rock.
1688
02:45:28.050 --> 02:45:30.790
Stay on the stack set support, open source contributors.
1689
02:45:31.970 --> 02:45:35.325
It's a it's a good idea. You should do it. It it helps all of us.
1690
02:45:35.805 --> 02:45:37.905
One of the easiest ways is by going to opensas.org.
1691
02:45:38.925 --> 02:45:40.145
There'll be more dispatches.
1692
02:45:40.655 --> 02:45:45.600
I have no idea when they're gonna be, and thank you guys for all being a part of making this happen.