CD54: pruned nodes, utreexo, and validation with @seardsalmon, @mario_gibney, @kcalvinalvinn, @SomsenRuben, and @sanket1729
EPISODE: 54
BLOCK: 722401
PRICE: 2269 sats per dollar
TOPICS: pruned nodes, utreexo, validation, full nodes, tradeoffs, liquid, soft forks, utxo set
@mario_gibney: https://twitter.com/mario_gibney
@kcalvinalvinn: https://twitter.com/kcalvinalvinn
@sanket1729: https://twitter.com/sanket1729
@seardsalmon: https://twitter.com/seardsalmon
@SomsenRuben: https://twitter.com/somsenruben
streamed live every tuesday:
https://citadeldispatch.com
twitch: https://twitch.tv/citadeldispatch
bitcointv: https://bitcointv.com/video-channels/citadeldispatch/videos
podcast: https://www.podpage.com/citadeldispatch
telegram: https://t.me/citadeldispatch
support the show: https://citadeldispatch.com/contribute
stream sats to the show: https://www.fountain.fm/
join the chat: https://matrix.to/#/#citadel:bitcoin.kyoto
00:00 - Cryptocurrency as a crowdfunding solution for truckers
01:20 - Bitcoin Tuesday and Citadel Dispatch
03:38 - Introduction of guests on Citadel Dispatch
05:00 - Seizure of Bitcoin from the Bitfinex hack
09:24 - Discussion on the impact of the Bitfinex seizure
13:45 - Bitcoin as a solution for fundraising and free speech
17:22 - Explanation of full nodes, SPV nodes, and bloom filters
23:21 - Introduction of compact block filters and their privacy benefits
39:53 - Explanation of UTXO set and its relevance
47:47 - UTXO set and its purpose
50:42 - UTXO set and UTXO pruning
59:32 - UTXO set and UTXO pruning in Bitcoin Core
01:00:47 - UTXO set and UTXO pruning in Utreexo
01:06:30 - Opinions on CTV and TX hash
01:35:48 - Implementing simplicity in a cost-effective way
01:36:24 - Adding new opcodes in Bitcoin script
01:37:42 - The need for general purpose command line tools for writing simplicity
NOTE
Transcription provided by Podhome.fm
Created: 3/17/2024 4:29:03 PM
Duration: 7482.906
Channels: 1
1
00:00:00.160 --> 00:00:01.300
2
00:00:01.760 --> 00:00:04.660
for the truckers. How long till they try to shut that down too?
3
00:00:05.120 --> 00:00:08.260
Some Canadians are clearly worried about that. They're turning to cryptocurrency.
4
00:00:08.684 --> 00:00:12.865
Tally coin, for example, is a small crowdfunding service that uses Bitcoin.
5
00:00:13.244 --> 00:00:15.904
It's not controlled by banks. That's the point.
6
00:00:16.289 --> 00:00:25.269
They're hosting a fundraiser for the truckers. Now why is this appealing? No one can steal the money. No government can pressure anyone to turn the money over because governments don't control crypto.
7
00:00:26.345 --> 00:00:41.100
Bitcoin goes from person a to person b, and all the intermediary does, the company, is connect the 2. It's pretty appealing. And you can imagine the long term consequences here. If the people in charge in this country and in Canada wanna make the US dollar irrelevant,
8
00:00:41.425 --> 00:00:44.405
they'll keep acting like this and soon that it will be.
9
00:01:20.385 --> 00:01:26.640
10
00:01:27.340 --> 00:01:33.185
Citadel dispatch is an interactive live show about Bitcoin distributed systems privacy and open source software.
11
00:01:34.285 --> 00:01:42.150
Dispatch is a 100% audience funded without ads or sponsors, and that's thanks to you, Freaks. So I truly do appreciate all the support you guys
12
00:01:43.670 --> 00:01:51.130
have been providing the show. It's not possible without you guys, and it allows us to stay purely focused on actual Bitcoin discussion.
13
00:01:51.685 --> 00:01:53.465
The easiest way to support the show
14
00:01:54.005 --> 00:02:00.025
is through podcasting 2 point o apps. My two favorites are Fountain Podcasts and Breeze Wallet.
15
00:02:01.570 --> 00:02:12.345
They work just like a regular podcast app does. You search it on dispatch. You press subscribe. You load it up with sats, and you can stream sats directly to my node. You choose basically how many sats per minute,
16
00:02:13.525 --> 00:02:17.740
you think dispatch is worth. You can also support the show by going to sidlodispatch.com
17
00:02:19.320 --> 00:02:25.395
and using our integrated BTC pay server, where you can contribute either via lightning or on chain.
18
00:02:25.855 --> 00:02:28.675
And I have a Pay NIM, easy to remember. It's Odell.
19
00:02:29.375 --> 00:02:31.360
If you want to support through SAMURAI
20
00:02:31.740 --> 00:02:34.960
or Sparrow, the 2 wallets that support Pay NIMs.
21
00:02:36.460 --> 00:02:39.235
Dispatch is broadcast via Twitch, Twitter, YouTube, and
22
00:02:39.535 --> 00:02:40.435
bitcoin tv.com
23
00:02:41.215 --> 00:02:43.555
with all archives posted to bitcoin tv.com
24
00:02:44.015 --> 00:02:44.515
afterwards.
25
00:02:46.500 --> 00:02:50.599
It is also available in all of your favorite podcast apps. Recently, I've been putting
26
00:02:50.980 --> 00:02:56.092
I mean, you really shouldn't use Spotify, but the videos are also on Spotify because I have access to that. So,
27
00:02:56.885 --> 00:03:02.504
if you insist on using Spotify, you can watch the videos there too or obviously listen to the audio.
28
00:03:03.125 --> 00:03:09.159
With all that said, we have a bit of a of a tight time window here, so I'm gonna get the party rolling.
29
00:03:10.340 --> 00:03:10.840
Oh,
30
00:03:11.700 --> 00:03:14.680
once I forgot, but our live chat is,
31
00:03:15.585 --> 00:03:19.445
through Matrix now. So if you wanna join the live chat, go to cildispatch.com,
32
00:03:20.145 --> 00:03:21.960
click that Citadel chat button,
33
00:03:22.920 --> 00:03:24.140
and follow the steps,
34
00:03:25.400 --> 00:03:27.500
follow the steps to install Element,
35
00:03:28.760 --> 00:03:30.620
and sign up to the matrix room.
36
00:03:31.005 --> 00:03:37.025
My dog only barks as soon as the show rolls, so I'm gonna try and get into introductions really quickly.
37
00:03:38.450 --> 00:03:41.270
Serial dispatch 54 is about pruned nodes, UTXO,
38
00:03:41.570 --> 00:03:46.230
and validation. We're gonna be going all over the place. We have an all star lineup here.
39
00:03:47.330 --> 00:03:47.830
First
40
00:03:49.155 --> 00:03:52.855
first off, we have, Vivek here, return guest. How's it going, Vivek?
41
00:03:54.115 --> 00:03:57.010
42
00:03:57.890 --> 00:03:59.189
It's a pleasure as always.
43
00:04:01.090 --> 00:04:02.150
44
00:04:02.530 --> 00:04:04.629
We have Sanket here. How's it going, Sanket?
45
00:04:05.365 --> 00:04:09.065
46
00:04:09.605 --> 00:04:12.345
47
00:04:13.690 --> 00:04:16.350
48
00:04:17.130 --> 00:04:17.630
49
00:04:18.810 --> 00:04:21.230
We have Mario. What's up, Mario?
50
00:04:21.705 --> 00:04:24.525
51
00:04:24.825 --> 00:04:27.805
52
00:04:28.265 --> 00:04:31.890
53
00:04:32.510 --> 00:04:39.325
54
00:04:40.505 --> 00:04:41.965
To those watching the video,
55
00:04:43.065 --> 00:04:45.485
the picture that was posted in the live chat,
56
00:04:46.539 --> 00:04:49.759
is the alleged Bitfinex hacker from 2016.
57
00:04:52.460 --> 00:04:53.599
She has a
58
00:04:54.175 --> 00:04:57.315
aspiring rap career, and that was from one of her rap videos.
59
00:04:57.695 --> 00:05:06.530
Wait. Sorry. This is not a this is not a joke? That's No. That's that's Heather, and her and her husband got arrested in Manhattan today, and they seized 96,000
60
00:05:06.990 --> 00:05:09.010
Bitcoin from the Bitfinex hack.
61
00:05:09.685 --> 00:05:10.425
62
00:05:11.125 --> 00:05:15.705
63
00:05:17.379 --> 00:05:19.319
Before we jump into the tech,
64
00:05:19.860 --> 00:05:23.479
I mean, since the live chat brought it up with that eloquent picture,
65
00:05:24.580 --> 00:05:29.105
do you guys have any thoughts on that? I mean, I know we were talking about it a little bit before we,
66
00:05:29.645 --> 00:05:31.585
went live, but, you know, this is
67
00:05:32.300 --> 00:05:35.360
the largest seizure in department of justice history,
68
00:05:36.140 --> 00:05:37.200
Bitcoin or not.
69
00:05:37.900 --> 00:05:39.040
It's over $3,000,000,000.
70
00:05:40.935 --> 00:05:48.155
And, you know, now the American government is is one of the largest holders of Bitcoin in the world, at least on a state level.
71
00:05:51.130 --> 00:06:01.215
72
00:06:01.595 --> 00:06:05.375
some nice clean, quote, unquote, Bitcoin to go fund companies.
73
00:06:06.789 --> 00:06:08.009
Wondering also whether
74
00:06:08.870 --> 00:06:10.009
this influences
75
00:06:10.870 --> 00:06:11.370
Bitfinex
76
00:06:11.830 --> 00:06:12.330
to
77
00:06:13.245 --> 00:06:18.625
play nice in US jurisdictions to maybe get that back somehow. I I don't know. Like,
78
00:06:18.925 --> 00:06:20.860
yeah, it's it's pretty interesting. Like,
79
00:06:22.139 --> 00:06:24.319
yeah, they they just kinda lost that. That sucks.
80
00:06:25.419 --> 00:06:30.719
81
00:06:31.165 --> 00:06:32.465
they they did
82
00:06:32.925 --> 00:06:34.945
raise funds from their,
83
00:06:35.565 --> 00:06:39.105
users, right, in order to basically, you have some token.
84
00:06:39.569 --> 00:06:48.949
They they did, like, the p f x token or something. Right? Yeah. So it just seems kinda weird to me. Like, I don't know how the economics work out there where they they did that
85
00:06:49.475 --> 00:06:52.615
and then they make their users whole through that process.
86
00:06:53.555 --> 00:07:00.310
And now they get this money, like, maybe maybe that's right, but it just seems a little odd to me. But not only did they have that token,
87
00:07:00.689 --> 00:07:04.229
88
00:07:06.014 --> 00:07:08.275
technically, I guess, you could say they made their
89
00:07:09.375 --> 00:07:16.380
users whole because, technically, if users waited on the token, it accrued enough value to make up for all the money that was lost.
90
00:07:16.840 --> 00:07:17.340
But,
91
00:07:18.280 --> 00:07:21.900
you know, most most people just sold the airdrop token immediately.
92
00:07:23.325 --> 00:07:25.665
So I think bid for next was able to basically,
93
00:07:26.845 --> 00:07:30.065
give a massive haircut to users, but, like, on an optional basis.
94
00:07:30.370 --> 00:07:36.710
Then there's another interesting element here that after that, they launched, their LEO token, which is their exchange,
95
00:07:37.795 --> 00:07:41.495
token, you know, modeled after, like, a BNB or,
96
00:07:43.155 --> 00:07:43.895
you know,
97
00:07:44.195 --> 00:07:53.720
FTX's token. I don't know. All these exchanges have tokens now. Yeah. And that LEO token pumped today because they announced that if they do get the money back, they're gonna buy
98
00:07:54.235 --> 00:07:57.215
the LEO token and burn it burn a bunch of tokens.
99
00:07:58.315 --> 00:08:01.215
So they're already, like, playing games again with, like, tokenomics
100
00:08:01.595 --> 00:08:18.014
101
00:08:18.419 --> 00:08:23.720
But, yeah, I thought the, the Bitfinex, haircut thing was kind of weird also because, you know, it's like
102
00:08:24.580 --> 00:08:27.800
you like, US exchange can sort of buy back your
103
00:08:28.365 --> 00:08:31.345
your debts. Right? And, like, if you know you're gonna be made whole,
104
00:08:31.725 --> 00:08:42.730
like, you can play the market because you know much better, like, what's your financial situation is. And if everybody's afraid that Bitfinex is doing terrible, then the token is gonna be worth less, and then they could just buy up their own token with the FUD, basically.
105
00:08:43.430 --> 00:08:44.889
So, yeah, that was kinda weird,
106
00:08:45.805 --> 00:08:49.265
and this sounds like another weird move, but I guess that's what we're
107
00:08:49.725 --> 00:08:52.865
used to by now from, all these exchanges and all these tokens.
108
00:08:53.850 --> 00:08:59.230
109
00:09:00.490 --> 00:09:08.045
whether that was people watching the chain activity of the stolen coins because it did kinda look like the US might have captured them,
110
00:09:08.585 --> 00:09:11.645
or if it was insider information or it was a combo of both.
111
00:09:12.260 --> 00:09:15.400
Yeah. There was a lot of activity there on the token beforehand.
112
00:09:16.820 --> 00:09:19.080
So it should be interesting to see how it plays out.
113
00:09:20.375 --> 00:09:26.875
The other thing I wanted to talk about before does anyone here have any comments on it? Sanket, you got a comment on it? Yeah. I was like,
114
00:09:27.280 --> 00:09:35.205
115
00:09:35.685 --> 00:09:37.625
hard to believe that you have, like, 96,000
116
00:09:38.085 --> 00:09:38.585
Bitcoins
117
00:09:39.045 --> 00:09:44.505
118
00:09:47.050 --> 00:09:53.230
we can operate under the assumption that if the US government says they have 96,000 Bitcoin, they have the 96,000 Bitcoin?
119
00:09:53.595 --> 00:09:55.695
Now the US government has been
120
00:09:56.154 --> 00:09:59.855
known in the past to do parallel construction and a bunch of other shenanigans,
121
00:10:00.235 --> 00:10:00.735
so
122
00:10:01.089 --> 00:10:04.870
everything else that's in the case stocks, I would say, are alleged.
123
00:10:06.370 --> 00:10:10.070
You know, a lot of it does seem extremely far fetched, but people are idiots. So
124
00:10:11.195 --> 00:10:15.835
I wouldn't necessarily put it past them for that being the reality. But,
125
00:10:16.715 --> 00:10:18.415
I don't see I I mean, like,
126
00:10:18.860 --> 00:10:40.830
127
00:10:41.470 --> 00:10:42.190
that the,
128
00:10:42.910 --> 00:10:44.450
the authorities here are
129
00:10:45.345 --> 00:10:52.485
a bit more knowledgeable, especially considering the sums involved. So I'd hope you're right, but at the same time, I would I I do understand people being a bit skeptical,
130
00:10:53.425 --> 00:10:54.165
that they
131
00:10:54.720 --> 00:10:57.860
that really understand what taking possession of coins looks like.
132
00:10:58.480 --> 00:11:01.380
133
00:11:01.845 --> 00:11:05.625
cashacious coins or, like, a ledger with that much, and it was just hardware.
134
00:11:06.165 --> 00:11:08.585
135
00:11:09.400 --> 00:11:10.140
they they
136
00:11:10.760 --> 00:11:20.495
the private keys were encrypted on cloud storage, and they got the decryption key, and they decrypted them. And that's how they accessed it, and then they moved them to a new wallet. So we saw the movement of coins as well.
137
00:11:21.835 --> 00:11:24.895
138
00:11:25.380 --> 00:11:30.279
have they presented a transaction ID to show it? I guess, actually, we should probably be able to do this. Right?
139
00:11:30.660 --> 00:11:37.885
Because the the hacked keys and the outputs are unknown. So so I don't know if you guys remember the niche,
140
00:11:38.745 --> 00:11:44.670
141
00:11:47.209 --> 00:11:49.290
No. I only remember him because of his fantastic
142
00:11:50.665 --> 00:11:51.165
143
00:11:51.704 --> 00:12:01.690
is he is he affiliated all with, like, that, like, Kim Nielsen guy or or Neil Nils Kimson? I don't know. He he noticed it on February 1st because on February 1st,
144
00:12:03.190 --> 00:12:08.970
145
00:12:09.725 --> 00:12:10.225
And,
146
00:12:11.165 --> 00:12:22.910
there was a telltale sign. He actually has a tweet out that says, I think the US gov sees them because, supposedly, what what the US gov likes to do is they test out their address with a one Bitcoin transaction, and it was
147
00:12:23.450 --> 00:12:27.205
abnormal for the Bitfinex hackers to consolidate and do a 1 Bitcoin,
148
00:12:27.905 --> 00:12:28.405
transaction.
149
00:12:30.145 --> 00:12:38.160
150
00:12:39.500 --> 00:12:40.400
151
00:12:40.785 --> 00:12:43.605
152
00:12:46.065 --> 00:12:47.825
153
00:12:48.465 --> 00:12:50.245
generate some vanity addresses.
154
00:12:50.950 --> 00:12:54.970
So just so that it's like, hey. We do actually have it or something.
155
00:12:55.910 --> 00:12:58.650
156
00:12:59.985 --> 00:13:02.324
157
00:13:03.105 --> 00:13:07.365
158
00:13:09.550 --> 00:13:14.690
The other thing that's nontechnical that I just was curious on your guys' opinion real quick was, you know,
159
00:13:15.185 --> 00:13:18.725
I know he's a bit of a lightning rod in terms of politics,
160
00:13:19.745 --> 00:13:22.165
and people tend to either love him or hate him.
161
00:13:22.700 --> 00:13:26.000
But I started this episode out with Tucker Carlson, who
162
00:13:26.940 --> 00:13:31.120
on Fox has the most watched, news show for whatever that's worth in America,
163
00:13:31.665 --> 00:13:35.685
and he was talking about this tally coin fundraiser for the Canadian truckers,
164
00:13:36.705 --> 00:13:39.045
that is raising Bitcoin for them after GoFundMe,
165
00:13:39.825 --> 00:13:41.285
froze their funds.
166
00:13:42.530 --> 00:13:45.270
To me, I think this is a massively significant
167
00:13:45.650 --> 00:13:46.150
event.
168
00:13:46.610 --> 00:13:47.990
I've compared it to WikiLeaks.
169
00:13:49.445 --> 00:13:53.305
I'm curious if you guys think it's of a similar magnitude or if I'm just,
170
00:13:54.405 --> 00:13:55.305
being a blowhard.
171
00:13:55.685 --> 00:13:57.225
172
00:13:57.765 --> 00:14:00.330
that was, like, really huge when WikiLeaks,
173
00:14:00.870 --> 00:14:04.170
funding got pulled and, like, Bitcoin was able to
174
00:14:04.550 --> 00:14:08.894
serve as a source. But, also, I wanted to ask Mario because Mario is,
175
00:14:09.274 --> 00:14:13.080
like, from Canada, so I'm just, like, a Twitter LARPer. I wanna know what he thinks.
176
00:14:14.120 --> 00:14:20.540
177
00:14:20.925 --> 00:14:24.865
So if you want if you want the, the the my full opinion, it's there.
178
00:14:25.404 --> 00:14:28.305
But, yeah, I mean, in general, I have, like,
179
00:14:29.500 --> 00:14:37.740
I have some mixed feelings about the trucker convoy, but, like, just what happened with the GoFundMe campaign being like, yeah, we're gonna donate these funds to other causes. That's just like
180
00:14:38.475 --> 00:14:38.975
181
00:14:39.515 --> 00:14:46.654
182
00:14:47.070 --> 00:14:51.010
big of impact it's going to be in in terms of marketing for Bitcoin.
183
00:14:51.709 --> 00:14:56.105
But, I mean, I think it's pretty reasonable for to at least be comparing it to the WikiLeaks event.
184
00:14:56.505 --> 00:15:00.125
You know, again, like, I'm not a massive fan of of Tucker Carlson, but, like,
185
00:15:00.505 --> 00:15:01.404
you know, it
186
00:15:01.785 --> 00:15:10.480
it it everything he said about, you know, Bitcoin and, like, what it's useful for was absolutely correct. This is this is the reason the money exists. You know, if,
187
00:15:11.280 --> 00:15:18.625
regardless of whether or not you like the cause, you don't get to just confiscate people's money donated to a cause and send it elsewhere. You know, the,
188
00:15:19.904 --> 00:15:21.045
yeah. I mean, I
189
00:15:21.380 --> 00:15:33.274
I'll I'm sure that there's this is gonna get a lot of people at least paying attention to Bitcoin, and and it it it speaks, it it proves it what its main use case. So, yeah, I, I I think it's pretty huge.
190
00:15:34.454 --> 00:15:37.834
191
00:15:38.430 --> 00:15:46.385
So, like, it freedom that Bitcoin provides is not just for me, it's for everyone. Right? So I think this shows that well.
192
00:15:50.865 --> 00:15:57.100
193
00:15:57.800 --> 00:15:59.980
you know, support free speech and protests.
194
00:16:02.524 --> 00:16:09.904
I don't know. It should be it should be interesting to see what kind of momentum has you know, humans are funny. Right? Like, the first thing that happened was,
195
00:16:10.510 --> 00:16:12.530
and Tucker mentioned it on his clip,
196
00:16:13.230 --> 00:16:14.770
was a different centralized
197
00:16:15.710 --> 00:16:16.210
traditional
198
00:16:16.590 --> 00:16:17.090
financial
199
00:16:18.165 --> 00:16:19.785
crowdfunding platform, GiveSendGo,
200
00:16:20.805 --> 00:16:25.065
that brands itself as the go send the GoFundMe for Christians
201
00:16:27.110 --> 00:16:30.889
has gotten the majority of donations in the wake of it. Right? Like, they have, like, $5,000,000
202
00:16:31.350 --> 00:16:32.649
or something, and we're at,
203
00:16:33.509 --> 00:16:38.155
like, 11 Bitcoin or something like that, 12 Bitcoin now, which is, like, 550
204
00:16:38.615 --> 00:16:39.915
k or something like that.
205
00:16:41.575 --> 00:16:42.075
Still
206
00:16:42.535 --> 00:16:44.055
substantial amount, and,
207
00:16:45.080 --> 00:16:48.140
hopefully, the whole thing doesn't blow up because it's being held in
208
00:16:49.080 --> 00:16:52.700
multisig by, like, 4 big corners, and I would not wanna be them right now.
209
00:16:53.595 --> 00:16:54.795
210
00:16:55.355 --> 00:16:56.975
saved in cloud storage encrypted.
211
00:16:57.435 --> 00:17:04.310
212
00:17:04.690 --> 00:17:08.309
and it's only 500 k in comparison to 3 and a half $1,000,000,000.
213
00:17:12.735 --> 00:17:16.355
Okay. Well, now that we got that out of the way,
214
00:17:17.039 --> 00:17:19.380
let's dive into the weeds. Where do you guys wanna start?
215
00:17:22.080 --> 00:17:22.820
216
00:17:23.840 --> 00:17:24.799
start from,
217
00:17:25.725 --> 00:17:30.865
what is a full node and maybe the different types of nodes. Like, what is a light client,
218
00:17:31.485 --> 00:17:32.304
an SPV,
219
00:17:33.485 --> 00:17:33.985
Neutrino?
220
00:17:34.560 --> 00:17:35.860
And then after that,
221
00:17:37.920 --> 00:17:38.420
basically,
222
00:17:39.200 --> 00:17:39.700
what
223
00:17:40.080 --> 00:17:42.260
is, like, the UTXO set?
224
00:17:42.720 --> 00:17:44.420
And we'd love to hear from
225
00:17:45.155 --> 00:17:48.135
Calvin or Sanket or whoever's wanna hop on it.
226
00:17:51.075 --> 00:17:54.290
227
00:17:54.930 --> 00:17:56.390
So a full node,
228
00:17:57.570 --> 00:17:58.630
there are many
229
00:17:59.730 --> 00:18:11.409
ways people use the word full node. Someone might say, like, a full node is only an archival node, and an archival node is a node that keeps the entirety of the Bitcoin blockchain, the 300
230
00:18:11.789 --> 00:18:13.090
so gigs of it.
231
00:18:13.870 --> 00:18:14.370
But
232
00:18:14.830 --> 00:18:16.850
to so for how I
233
00:18:17.495 --> 00:18:24.875
say, how how I define a full node, and I think a lot of other people do as well is a fully validating
234
00:18:25.575 --> 00:18:27.090
node. So that means,
235
00:18:27.789 --> 00:18:30.210
you don't have to keep the historical data,
236
00:18:30.750 --> 00:18:31.809
but you have
237
00:18:32.110 --> 00:18:32.850
the UTXO
238
00:18:33.230 --> 00:18:33.730
sets,
239
00:18:34.145 --> 00:18:38.245
and and I will get to the UTXO sets, but you you have the UTXO set
240
00:18:38.705 --> 00:18:40.405
so that you'll be able to verify,
241
00:18:41.184 --> 00:18:43.880
new blocks. So when a new block comes in,
242
00:18:44.500 --> 00:18:49.000
you look at it, you you validate everything, and so you're not trusting anyone.
243
00:18:49.540 --> 00:18:50.440
And so
244
00:18:51.455 --> 00:18:53.875
I would I would define or I would
245
00:18:54.335 --> 00:18:56.835
explain full node in that sense.
246
00:18:57.695 --> 00:18:58.515
Like node,
247
00:18:58.890 --> 00:19:01.630
on the other hand, I guess that could be like your your
248
00:19:02.250 --> 00:19:05.070
normal wallet, like, leisure live, or
249
00:19:05.370 --> 00:19:09.165
or if you if you use, like, blue wallet without your own node
250
00:19:09.625 --> 00:19:10.125
is
251
00:19:10.745 --> 00:19:12.665
a node that would just
252
00:19:14.299 --> 00:19:16.080
you would just hold your keys.
253
00:19:16.620 --> 00:19:18.400
You wouldn't know anything about,
254
00:19:18.940 --> 00:19:20.000
the Bitcoin blockchain,
255
00:19:20.380 --> 00:19:22.880
but you would just, ask a server,
256
00:19:23.875 --> 00:19:29.735
what's here. I have these sorts of keys. How much money do I have? That sort of a thing. And so,
257
00:19:30.035 --> 00:19:32.455
I mean, the obvious advantage is that,
258
00:19:33.310 --> 00:19:33.810
you
259
00:19:34.590 --> 00:19:39.730
don't you don't have any overhead of being a full node. So, I mean, don't don't have any
260
00:19:40.264 --> 00:19:45.965
computational overhead that comes with full nodes. You don't have any, like, storage space. It's very small.
261
00:19:46.424 --> 00:19:46.924
And,
262
00:19:47.760 --> 00:19:55.620
it makes it accessible for people. But at the same time, it no. It's it's not it's very it's fully trusting somebody, and it's not very great for privacy.
263
00:19:56.745 --> 00:19:59.645
So that's what I'd like to notice. SPV node
264
00:20:00.025 --> 00:20:01.325
is a node that
265
00:20:01.865 --> 00:20:02.365
validates
266
00:20:02.825 --> 00:20:03.325
only
267
00:20:03.784 --> 00:20:06.125
the headers of the the block headers.
268
00:20:06.570 --> 00:20:07.870
So you would download
269
00:20:08.409 --> 00:20:11.149
all the block headers, and you would see that they match up.
270
00:20:11.610 --> 00:20:13.470
And when you ask for
271
00:20:14.115 --> 00:20:14.775
your money,
272
00:20:15.395 --> 00:20:19.555
so you would still have to ask because an SPV node does not keep the,
273
00:20:20.115 --> 00:20:25.900
the UTXO set nor the, entire Bitcoin blockchain. So you still have to ask a server, but,
274
00:20:26.280 --> 00:20:31.660
you could validate that that server is lying to you. So it's it's a little bit of a better security
275
00:20:32.404 --> 00:20:35.465
in that sense, but you're still losing out on privacy.
276
00:20:36.885 --> 00:20:37.385
Well,
277
00:20:38.485 --> 00:20:41.465
and you you could well, so privacy is sort of like,
278
00:20:42.480 --> 00:21:06.720
sorry, I'll just so so you could validate because you have the you validated the block header and you could see you could ask for a Merkle tree proof of your transaction inside the the, the Merkle tree and the block header. So you could you could just hash up and see, hey, is this guy lying to me or is this guy not lying to me? One thing they could do is they could withhold information from you. So you can't ever prove
279
00:21:07.580 --> 00:21:08.080
that
280
00:21:09.395 --> 00:21:13.095
they're, like, not telling you this money that you have. So that's
281
00:21:13.555 --> 00:21:16.215
that's one, security risk, I guess.
282
00:21:16.680 --> 00:21:23.580
283
00:21:24.165 --> 00:21:26.905
is, like, unilateral close or something like that. Right?
284
00:21:32.220 --> 00:21:36.560
285
00:21:37.900 --> 00:21:41.065
286
00:21:41.445 --> 00:21:48.184
a lightning node, what you really wanna know is whether that transaction is appearing on the blockchain or or even in the mempool, I guess,
287
00:21:48.679 --> 00:21:52.299
that somebody's about to close or has closed, your channel,
288
00:21:52.760 --> 00:21:54.700
and you need to be notified of that somehow.
289
00:21:55.559 --> 00:22:02.005
Ensure you could trust the like client to do that for you, but then if they don't tell you, then you won't notice that your channel is closing and you might be in trouble.
290
00:22:02.785 --> 00:22:08.620
So, you know, always the the trustless option is to just run your own full note. Right? That you that you can be certain,
291
00:22:09.240 --> 00:22:19.205
that you know, what the state is. But, yeah. I mean, I don't think it's unreasonable to to trust someone else to do that. But, you know, the the problem is sort of like, you can do that for smaller amounts.
292
00:22:19.664 --> 00:22:24.725
But as a whole, like, if the entire network starts to rely on these assumptions for the entire network,
293
00:22:25.120 --> 00:22:32.820
everybody runs live clients, nobody runs a full note. Like, that's why you're in trouble. Right? So it's it's sort of the kind of thing that works as long as not too many people or not too much value does it.
294
00:22:33.765 --> 00:22:34.745
And then with SPV,
295
00:22:35.205 --> 00:22:37.365
wallet specifically, I guess I would add that,
296
00:22:38.005 --> 00:22:45.560
you you're also implicitly trusting the miners because you're checking the proof of work, But then if if the miners they could theoretically
297
00:22:45.940 --> 00:22:51.320
create fake blocks. And then if you only check the headers, if you only check the the proof of work, basically,
298
00:22:51.835 --> 00:22:58.095
they would sort of implicitly trust whatever miners mind and and they could still theoretically lie to you, but in practice,
299
00:22:58.395 --> 00:23:05.419
if not many people do that, there's almost no incentive for minors to do that. So, you know, again, it it works as long as not too many people do it.
300
00:23:06.039 --> 00:23:06.539
301
00:23:07.000 --> 00:23:10.784
And I guess, like, we we briefly touched on privacy,
302
00:23:11.164 --> 00:23:12.225
or Calvin did.
303
00:23:12.924 --> 00:23:19.230
What's the difference between, like, a bloom filter versus, like, you know, the new, like, compact block filters?
304
00:23:21.210 --> 00:23:32.305
305
00:23:32.605 --> 00:23:34.365
And it's mainly used for
306
00:23:35.000 --> 00:23:36.220
so Bloom filters,
307
00:23:37.800 --> 00:23:38.300
it's,
308
00:23:38.840 --> 00:23:41.420
yeah, it's basically like a filter. So it's
309
00:23:42.120 --> 00:23:42.860
you could
310
00:23:43.355 --> 00:23:45.455
try so if you have some data,
311
00:23:45.755 --> 00:23:49.534
you could try to see if that data exists. And I think it's a
312
00:23:50.164 --> 00:23:50.664
yes,
313
00:23:51.390 --> 00:23:54.210
forget which one it is. Songa, do you remember? I think it's like,
314
00:23:55.070 --> 00:23:57.570
yes, it absolutely exists and like no
315
00:23:58.085 --> 00:23:58.585
or
316
00:23:59.605 --> 00:24:03.605
317
00:24:04.485 --> 00:24:04.985
318
00:24:05.525 --> 00:24:06.405
There we go. But,
319
00:24:07.660 --> 00:24:12.800
so so it's used for databases to just sort of see if it's actually in the database. And,
320
00:24:13.260 --> 00:24:14.160
if you get,
321
00:24:15.245 --> 00:24:20.065
maybe, it's like, hey, maybe it's in there. And so it's like, you just then you look
322
00:24:20.445 --> 00:24:27.200
and so it's it saves on, the space of the if you're someone's asking for data that's not there, which is possible,
323
00:24:28.140 --> 00:24:28.960
it'll help.
324
00:24:30.460 --> 00:24:31.760
So that's Bloom Filters.
325
00:24:32.060 --> 00:24:32.780
Bloom Filters
326
00:24:34.015 --> 00:24:36.435
sorry, Taz is telling me that we got it wrong.
327
00:24:36.815 --> 00:24:37.315
Okay.
328
00:24:38.655 --> 00:24:41.395
You could okay. So it's maybe it's there,
329
00:24:41.780 --> 00:24:43.880
and it's definitely not there,
330
00:24:44.420 --> 00:24:45.240
Bloom Filters.
331
00:24:45.540 --> 00:24:48.040
There you go. Thanks, Taj. But but
332
00:24:48.420 --> 00:24:59.240
333
00:25:00.179 --> 00:25:13.075
334
00:25:13.935 --> 00:25:15.955
hey, it might be there or then it's,
335
00:25:17.399 --> 00:25:17.899
definitely
336
00:25:18.440 --> 00:25:19.179
not there.
337
00:25:19.720 --> 00:25:25.899
So if it's definitely not there, you shouldn't look in the database. Right? Because the the that's that's more costly
338
00:25:26.665 --> 00:25:28.765
operation to go to the disk. So,
339
00:25:29.785 --> 00:25:34.605
just check really quickly, and if it's not there, you don't go. If it's maybe there, then you check.
340
00:25:35.289 --> 00:25:38.669
So that's what bloom filters are. Bloom filters are used
341
00:25:38.970 --> 00:25:40.429
were used for SPV
342
00:25:40.890 --> 00:25:42.270
I think they're still used,
343
00:25:42.615 --> 00:25:44.955
for SPV to sort of hide,
344
00:25:47.415 --> 00:25:51.330
what's transaction you're asking for. So when you're when you're SVB,
345
00:25:51.630 --> 00:25:53.170
as you said, you need to ask
346
00:25:53.630 --> 00:25:55.890
a a server or you need to ask a node.
347
00:25:57.390 --> 00:25:58.210
Hey, like,
348
00:25:58.674 --> 00:25:59.495
do I,
349
00:25:59.875 --> 00:26:02.054
like I have these sorts of private keys.
350
00:26:02.595 --> 00:26:03.095
Please,
351
00:26:03.794 --> 00:26:04.534
give me,
352
00:26:06.115 --> 00:26:07.255
information about,
353
00:26:08.549 --> 00:26:13.529
these transactions in a block where if I have some UTXOs to my key. And
354
00:26:14.630 --> 00:26:17.210
you ask in a way, so you you send
355
00:26:18.455 --> 00:26:18.955
you
356
00:26:19.414 --> 00:26:20.955
you send the entire filter
357
00:26:21.575 --> 00:26:24.154
and then you sort of fill up the filter, so
358
00:26:25.630 --> 00:26:30.610
the the receiver can't really tell. So as well, it's harder to tell.
359
00:26:31.230 --> 00:26:32.370
But, problem
360
00:26:33.034 --> 00:26:34.575
with bloom filters is that,
361
00:26:35.115 --> 00:26:39.054
the filter gets dirty and privacy breaks them. So,
362
00:26:40.510 --> 00:26:43.010
the compact block filters that Nutrien implements
363
00:26:43.870 --> 00:26:46.930
sort of solves this problem. I forget how it does,
364
00:26:47.550 --> 00:26:48.050
and
365
00:26:48.745 --> 00:26:54.765
it's better privacy. So it's it's harder to tell as a as a node if someone's asking
366
00:26:55.465 --> 00:26:58.285
if someone gives you a compact block filter,
367
00:26:59.770 --> 00:27:03.950
the compact block filter doesn't have the problem of getting dirty, and so
368
00:27:04.970 --> 00:27:10.025
which is an error problem with film filters. So it's it's better privacy in that sense.
369
00:27:10.565 --> 00:27:20.550
370
00:27:20.930 --> 00:27:21.570
and then,
371
00:27:22.050 --> 00:27:25.910
the full note would fetch the information that you need based on that filter.
372
00:27:26.595 --> 00:27:31.415
What happens here is that every full note creates 1 filter per block
373
00:27:31.955 --> 00:27:34.135
and then you can ask for that filter
374
00:27:34.640 --> 00:27:38.740
and then you can check for yourself whether or not the transaction that you're interested in
375
00:27:39.040 --> 00:27:41.620
is inside of the block by checking with the filter.
376
00:27:42.080 --> 00:28:01.470
And this makes it so that you don't you don't really give any information to the full node about, like, what you're looking for. All that you're saying is, okay, give me the filter of every block, let's say, and then you check all the filters and then you find which blocks you're interested in, and then you go and ideally you you you're connected to multiple nodes.
377
00:28:01.955 --> 00:28:09.975
You go to every full node and you you request a block, you download the full block, so even then that, full node doesn't really know
378
00:28:10.330 --> 00:28:27.595
what data specifically you're interested in. They just know, oh, you're downloading a block and that's not weird because, you know, every every full note, is supposed to especially if you're doing IBD or something if you're, know, a new node and you're starting up, it's not strange for someone to want to download a block. So it just, preserves your privacy a lot better that way.
379
00:28:28.960 --> 00:28:29.460
380
00:28:30.880 --> 00:28:31.539
I see.
381
00:28:31.919 --> 00:28:32.419
Yeah.
382
00:28:32.799 --> 00:28:34.340
Just interjecting one.
383
00:28:35.120 --> 00:28:35.620
So,
384
00:28:37.065 --> 00:28:46.410
when I was, like, keeping up with Neutrino stuff, like, as in I was reading that up, why was there objection to, like, not have this in the like, in Bitcoin Core or, like,
385
00:28:46.890 --> 00:28:47.470
was there
386
00:28:48.490 --> 00:28:49.710
any issue with this?
387
00:28:50.650 --> 00:28:51.050
388
00:28:51.690 --> 00:28:56.645
I'm not sure if I fully remember, but there were a couple of discussions. I mean, one of the discussions was that,
389
00:28:58.065 --> 00:29:00.465
whether or not to implement this as a,
390
00:29:02.850 --> 00:29:08.230
well well, you you could you could commit these filters into a block. Right? So that would be one thing. And you can probably,
391
00:29:08.610 --> 00:29:13.735
I mean, you probably know what the issue is with that but maybe just to to say it also in general
392
00:29:14.275 --> 00:29:22.730
is that now you're sort of committed to this specific filter. And then if it turns out that you wanna use a different filter in the future or there's a there's a better way of doing things,
393
00:29:23.110 --> 00:29:35.425
now you have to keep supporting it because it became a consensus rule as soon as you implemented into a block. You committed into a block and everybody balance and validates it. So that's sort of the the main thing I think that people were sort of hesitant
394
00:29:35.725 --> 00:29:36.545
to support.
395
00:29:36.970 --> 00:29:38.730
And then I think the second thing is that,
396
00:29:39.850 --> 00:29:42.430
the question was sort of, like, the degree to which,
397
00:29:44.075 --> 00:29:48.655
they wanted to enable people to just be able to download these filters from anyone.
398
00:29:50.155 --> 00:29:52.175
And I I don't know exactly, but,
399
00:29:52.840 --> 00:29:56.780
you know, one of the concerns I think is that you you can't really check
400
00:29:57.400 --> 00:30:12.445
I mean, that's maybe not related to this specifically, but you can't really check whether or not someone who sent you a filter actually sent you the correct filter. Sent you the correct filter, like the only way to to check that is to create your own filter and the only way you can create your own filter is by having to use the excel sets, which means you have to run a full note yourself.
401
00:30:13.690 --> 00:30:22.055
So there's some some awkwardness with that as well. That's about the extent, to which I noticed, but, there must be more to it, but that's what I know.
402
00:30:26.935 --> 00:30:27.435
403
00:30:28.135 --> 00:30:28.875
one second.
404
00:30:32.040 --> 00:30:33.420
405
00:30:34.280 --> 00:30:41.855
yeah. It's been it's been a while since I looked at the compact VOC filter in in technical depth. But in a nutshell, it's, like, hey, SPV, but
406
00:30:42.155 --> 00:30:42.975
better privacy.
407
00:30:43.915 --> 00:30:44.415
So
408
00:30:45.115 --> 00:30:45.855
there you go.
409
00:30:46.475 --> 00:30:57.299
410
00:30:58.024 --> 00:30:59.164
is that you're not,
411
00:31:00.024 --> 00:31:16.085
yeah, the the well, the problem of of lying by omission is still there or receiving the wrong filter and then not knowing that you're actually interested in the block, but you you know, you you don't know it because you didn't get the right filter. So there's still some issues there. Right. But it's sort of, it's sort of like client y. Yep.
412
00:31:18.325 --> 00:31:19.225
413
00:31:20.085 --> 00:31:20.985
I just, like,
414
00:31:21.524 --> 00:31:24.505
sort of jump back to Vivek's question because I don't think we fully,
415
00:31:26.590 --> 00:31:28.610
like, discussed the node taxonomy,
416
00:31:29.070 --> 00:31:30.770
so called as he named it.
417
00:31:31.950 --> 00:31:32.450
And
418
00:31:32.894 --> 00:31:38.115
I think, like, before addressing this, the first thing we should discuss is it's all about,
419
00:31:39.375 --> 00:31:44.290
like, all of this different trade offs and which type of node you run are all about,
420
00:31:44.590 --> 00:31:45.630
what sort of,
421
00:31:46.430 --> 00:31:48.370
trust model or third model you are
422
00:31:48.670 --> 00:31:51.455
comfortable with. So the very
423
00:31:51.935 --> 00:31:58.355
like, ideally, if you're, like, into coding and if you understand c plus plus and Bitcoin Core, you would just
424
00:31:58.780 --> 00:32:03.520
go to GitHub, Bitcoin, download it, and build it, check whether,
425
00:32:04.060 --> 00:32:07.600
you know, all the checksums match and so on. And
426
00:32:08.105 --> 00:32:10.605
so that if you guard against your hardware,
427
00:32:10.905 --> 00:32:13.405
like, your hardware or software being corrupt and
428
00:32:13.865 --> 00:32:14.365
your
429
00:32:15.660 --> 00:32:16.800
various system problems.
430
00:32:18.300 --> 00:32:28.024
And, like or maybe if you're talented enough, you also not talented. If you know c plus plus, you also review every like, single line and make sure that there's no backdoor and so on. But
431
00:32:28.325 --> 00:32:32.005
assuming that you get that part done, and I, like, I agree that
432
00:32:32.450 --> 00:32:34.230
I think that the goal of Bitcoin
433
00:32:35.330 --> 00:32:43.385
running a full node should be after that point, you really shouldn't have to, like, trust anyone. So I think, are we, and I think this would
434
00:32:44.325 --> 00:32:48.105
this reasoning would help us reason about more things like
435
00:32:49.590 --> 00:32:52.330
assume UTXO or assume valid, which is,
436
00:32:52.870 --> 00:33:06.330
437
00:33:06.710 --> 00:33:14.570
yourself. You know, you could be even farther and, like, well, you should build your own PC because who knows what's in there and the ever all the component should be open source because,
438
00:33:14.924 --> 00:33:21.424
you know, like, you could go all the way into crazy town. Right? And and so we're sort of we're doing the best we can. But
439
00:33:21.804 --> 00:33:27.870
440
00:33:28.330 --> 00:33:28.990
the practical
441
00:33:29.610 --> 00:33:32.590
reasoning should be to try and reduce trust as much as possible.
442
00:33:32.995 --> 00:33:34.375
The way I like to describe,
443
00:33:35.635 --> 00:33:38.615
using your own node is to interact with the Bitcoin network,
444
00:33:39.715 --> 00:33:43.620
you need to use a node. A node allows you to interact with the network directly.
445
00:33:43.920 --> 00:33:50.580
Now if you're not using your own node, you're using someone else's node. And if you're using someone else's node, that means you're trusting them with validation and privacy.
446
00:33:52.865 --> 00:33:53.365
447
00:33:53.745 --> 00:34:03.980
So this one, like, this may be slightly controversial, but I'd like to, like, discuss this. And maybe I'll discuss this in informal context with other people. Like,
448
00:34:04.440 --> 00:34:11.055
the difference in, like, running a full node just for, like, sake of running it and actually using it to verify
449
00:34:11.755 --> 00:34:19.180
incoming transactions is, like, there's a big difference in this. Like, if you you can just spin up thousands of nodes on AWS
450
00:34:20.120 --> 00:34:24.940
and can call it contributing to the network, and that really doesn't act too much.
451
00:34:25.285 --> 00:34:26.745
But unless you are, like,
452
00:34:27.285 --> 00:34:28.345
actually receiving
453
00:34:29.125 --> 00:34:30.345
your wallet is
454
00:34:30.805 --> 00:34:33.065
either you're receiving transactions or you're connected,
455
00:34:33.630 --> 00:34:35.650
like, verifying that your transaction is
456
00:34:36.670 --> 00:34:39.490
in a block which is validated by a node, then it has
457
00:34:39.950 --> 00:34:42.530
some value to it. And that's So I just wanna
458
00:34:43.095 --> 00:34:52.830
459
00:34:53.130 --> 00:34:56.170
because, I saw a LOPS post saying that,
460
00:34:57.530 --> 00:34:58.590
the the bandwidths,
461
00:34:59.355 --> 00:35:00.494
well, IBDs
462
00:35:01.994 --> 00:35:05.934
have sort of been slowing not slowing down, but it it's
463
00:35:06.315 --> 00:35:06.815
it's
464
00:35:07.420 --> 00:35:09.520
it's slower than it should be because,
465
00:35:11.100 --> 00:35:11.840
these nodes
466
00:35:12.300 --> 00:35:24.580
467
00:35:25.540 --> 00:35:26.040
desired?
468
00:35:29.380 --> 00:35:31.560
469
00:35:32.075 --> 00:35:35.055
so there is 2 ways in which you would, like,
470
00:35:35.355 --> 00:35:41.820
primary interact primarily interact with the Bitcoin network. 1 is when you, like, want to check a transaction which you,
471
00:35:42.360 --> 00:36:05.850
you know, like, which you received, and if it is there in the blockchain and, you know, it has sufficient confirmations and so on. And that is the like, that is for me the primary use case. And the other thing is when you are sending a sending transaction, if you, like, broadcast it via wallet or some other software, you lose some, like, by using your full note to broadcast things, you have more privacy in terms of, like,
472
00:36:07.015 --> 00:36:10.155
when you when you actually broadcast your transactions. And
473
00:36:10.535 --> 00:36:11.915
so those are, like,
474
00:36:12.775 --> 00:36:20.410
like, those are 2 ways in which you would use a full node. Like, if you're a miner, you have other nodes. Like, that's a different issue.
475
00:36:22.390 --> 00:36:23.030
So from,
476
00:36:24.275 --> 00:36:25.815
so your question was where
477
00:36:26.755 --> 00:36:33.359
replying to Calvin's comment, like, I yeah. There should be sufficient number of nodes which are willing to, like, help,
478
00:36:33.660 --> 00:36:34.160
like,
479
00:36:34.540 --> 00:36:37.200
have old blocks so that people can sync up.
480
00:36:37.500 --> 00:36:37.740
And,
481
00:36:38.540 --> 00:36:39.839
whether that is necessary
482
00:36:40.220 --> 00:36:41.520
and, like, all the
483
00:36:43.725 --> 00:36:44.225
UTXO
484
00:36:44.525 --> 00:36:52.145
assumptions. Like, we still need to sync up a full node from scratch, and that is one of the selling points of, Bitcoin as compared to
485
00:36:52.720 --> 00:36:53.859
many other cryptocurrencies
486
00:36:54.160 --> 00:36:57.780
which have, like, finality where they just say, okay. This is the state.
487
00:36:58.720 --> 00:37:00.660
I do agree, but, that's like,
488
00:37:02.565 --> 00:37:04.185
I I don't see that as a, like
489
00:37:06.565 --> 00:37:10.090
yeah. I don't get that much weight to that point given the current,
490
00:37:10.650 --> 00:37:12.430
network state. Maybe it's like,
491
00:37:13.130 --> 00:37:20.815
like, it's a drawing a line type of thing, and it's up for debate where you can say something. But if you're just like, my point is if you're just running a node
492
00:37:21.355 --> 00:37:25.615
and that's sitting somewhere and you're not using it either for one of those two purposes, you're
493
00:37:26.155 --> 00:37:30.400
not really doing that much. Like, okay. Sure you're helping the network propagate
494
00:37:30.700 --> 00:37:36.800
blocks. And if you have fast Internet connection, that is helpful. I do agree. But I don't think that is, like, anyway as
495
00:37:37.375 --> 00:37:40.115
useful for an individual user as the first two things.
496
00:37:40.655 --> 00:37:41.155
497
00:37:41.775 --> 00:37:43.935
498
00:37:44.335 --> 00:37:51.160
to reiterate for the freaks, is purely a selfish thing. You wanna verify your own transactions that you are receiving
499
00:37:52.100 --> 00:37:53.000
or sending.
500
00:37:55.494 --> 00:37:57.895
501
00:37:58.215 --> 00:38:09.250
it is off for 7 days. I don't care. Like, it is it does not have to be. For when I receive money, I have to make sure that it is in the longest, like, whatever heaviest, longest chain. And so I,
502
00:38:09.630 --> 00:38:12.815
like, I can make sure that this transaction which I'm receiving, okay, that's approved by
503
00:38:13.535 --> 00:38:14.515
the network. And that's
504
00:38:14.895 --> 00:38:22.675
505
00:38:23.270 --> 00:38:26.970
big corners historically have always talked about the verifying and validating
506
00:38:27.510 --> 00:38:28.010
aspect.
507
00:38:28.550 --> 00:38:35.235
But I think for a lot of average people, the privacy aspect is actually more tangible and more obvious just because, I mean,
508
00:38:36.015 --> 00:38:50.865
throughout the whole history of Bitcoin, pretty much anytime if you go to a block explorer, any of the big block explorers, it's not lying to you. That hasn't happened yet. Doesn't mean it can happen in the future, but that hasn't happened yet where, like, a major wallet has told you that you have Bitcoin, but you don't.
509
00:38:52.045 --> 00:38:56.305
But the privacy side is very obvious. Right? If you're looking up your balances,
510
00:38:57.510 --> 00:39:07.905
on someone else's server, someone else's node, then they're gonna know your IP address. If you're not using Tor, they're gonna know your address balances, and they're gonna be able to correlate transactions,
511
00:39:08.525 --> 00:39:09.585
to each other. Right?
512
00:39:10.045 --> 00:39:11.505
513
00:39:12.445 --> 00:39:15.985
what time you sent your transactions, what is the destination address,
514
00:39:16.900 --> 00:39:23.320
and how much amount you send. And, for example, if you know if I get paid in Bitcoin on what day if I get paid, how much I get paid, then
515
00:39:23.635 --> 00:39:29.095
It's easy. Like, if you know some other social information, it's easy to put together a bigger picture and
516
00:39:29.475 --> 00:39:31.655
just completely paint a profile of what
517
00:39:32.680 --> 00:39:35.980
some, like, a person's private information is.
518
00:39:39.000 --> 00:39:39.500
519
00:39:39.965 --> 00:39:51.829
So I guess the next question I have is, like, I guess most of the freaks know by now that a prune node is still a full node because it's a fully validating node as Calvin had said.
520
00:39:53.569 --> 00:39:54.845
521
00:39:56.205 --> 00:39:56.865
My gosh.
522
00:39:58.125 --> 00:40:02.305
523
00:40:02.880 --> 00:40:06.420
this episode, but, I was just gonna say also
524
00:40:06.720 --> 00:40:07.220
that,
525
00:40:08.480 --> 00:40:13.615
you know, Ultra Prune was added by Peter Willow, I think, in,
526
00:40:14.255 --> 00:40:15.795
o dot 8,
527
00:40:16.335 --> 00:40:17.555
and that's, like,
528
00:40:18.095 --> 00:40:19.475
the formal introduction
529
00:40:19.775 --> 00:40:21.555
of what we now call today
530
00:40:21.930 --> 00:40:22.670
the UTXO
531
00:40:23.050 --> 00:40:26.270
set. I think most of freaks know what a UTXO
532
00:40:26.570 --> 00:40:27.390
is, but
533
00:40:27.770 --> 00:40:29.150
what is the UTXO
534
00:40:29.530 --> 00:40:30.030
set,
535
00:40:30.425 --> 00:40:33.645
and why do we care? Why is it relevant during syncs?
536
00:40:34.825 --> 00:40:35.325
And
537
00:40:35.625 --> 00:40:37.085
are there any other, like,
538
00:40:37.420 --> 00:40:39.920
tangible things we could do with our, bitcoin.com
539
00:40:40.540 --> 00:40:42.400
for, like, dbcash? Any hints?
540
00:40:44.780 --> 00:40:45.599
541
00:40:46.225 --> 00:40:46.725
UTXO
542
00:40:47.025 --> 00:40:47.525
set
543
00:40:47.905 --> 00:40:48.385
is
544
00:40:48.865 --> 00:40:49.925
was sort of
545
00:40:50.785 --> 00:40:55.700
you you needed UTXO set for prunedodes anyways, and and I I believe that's how,
546
00:40:57.680 --> 00:41:01.540
and that was one of many reasons why it was merged into core. And
547
00:41:02.015 --> 00:41:02.915
so so before
548
00:41:03.775 --> 00:41:06.435
the concept of the UTXO sets existed,
549
00:41:07.455 --> 00:41:09.875
you just kept the full chain. And
550
00:41:10.175 --> 00:41:11.635
if you and
551
00:41:12.320 --> 00:41:14.340
you had you had a database
552
00:41:15.040 --> 00:41:16.980
of pointers. So, like,
553
00:41:17.840 --> 00:41:18.900
so for this
554
00:41:20.065 --> 00:41:25.285
transaction and you could still spend this transaction. Okay. Where do I find the data for this transaction?
555
00:41:26.465 --> 00:41:29.829
Then it would just be pointing at some file.
556
00:41:30.290 --> 00:41:43.735
And it's like, okay. If you go to this file and if you look here, you'll see you'll find this block. And then in this block, if you look here, you'll find that transaction. So so that's how it worked in the past. And and that's still how LiveBitcoin
557
00:41:44.035 --> 00:41:45.095
works, I believe.
558
00:41:45.849 --> 00:41:48.430
LiveBitcoin is the is an alternative implementation
559
00:41:48.730 --> 00:41:49.470
of Bitcoin.
560
00:41:50.010 --> 00:41:50.510
And
561
00:41:50.970 --> 00:41:57.375
so so before, that's how everything worked, But, for 1, for pruned nodes, you can't do that because
562
00:41:57.914 --> 00:41:58.575
if you
563
00:41:59.275 --> 00:42:06.110
start deleting historical blocks, you don't have the UTXO set anymore, or you don't have the data that you need to validate.
564
00:42:06.890 --> 00:42:08.510
So you couldn't do that. So
565
00:42:08.810 --> 00:42:11.710
you needed a UTXO set, and that was one of the reasons.
566
00:42:12.635 --> 00:42:14.655
But, a UTXO set is,
567
00:42:16.555 --> 00:42:19.855
again, in my opinion, is is beneficial for a lot of things.
568
00:42:20.395 --> 00:42:21.910
1, if you
569
00:42:22.370 --> 00:42:25.890
if you have the UTXO set, you don't have to go to disk every time. So,
570
00:42:26.770 --> 00:42:27.890
going to your
571
00:42:28.955 --> 00:42:31.855
whether that's an hard disk or or a SSD,
572
00:42:32.475 --> 00:42:33.455
it is an expensive
573
00:42:33.995 --> 00:42:36.975
operation. Expensive as in it. It says it's slow.
574
00:42:37.275 --> 00:42:39.770
And so if you have a
575
00:42:40.870 --> 00:42:41.450
a memory
576
00:42:41.750 --> 00:42:44.250
cache, like, like a little bit
577
00:42:44.550 --> 00:42:50.065
of your UTXO set ends in your memory, that's a lot faster of an operation. So
578
00:42:50.525 --> 00:42:52.225
when you first sync up,
579
00:42:52.525 --> 00:42:53.425
in your bitcoin.com,
580
00:42:53.805 --> 00:42:54.865
as you said,
581
00:42:55.610 --> 00:42:58.990
there is a optional setting called DB cash.
582
00:42:59.530 --> 00:43:03.630
And if you increase that, what you do is you you end up increasing
583
00:43:04.185 --> 00:43:07.245
the, memory usage. And so you keep more
584
00:43:08.025 --> 00:43:08.905
of the,
585
00:43:09.705 --> 00:43:16.180
the UTXO sets in your memory. And and that will speed the initial sync, the initial block download
586
00:43:16.559 --> 00:43:17.299
by a lot.
587
00:43:17.599 --> 00:43:23.365
So that is one one of the benefits of the UTXO set. I just think it make I also think it just makes sense
588
00:43:23.745 --> 00:43:28.725
in in terms of the memory hierarchical hierarchy architecture in Bitcoin Core.
589
00:43:29.230 --> 00:43:29.810
And so,
590
00:43:30.910 --> 00:43:35.230
like, why would you not that is the most expensive operation. Why would you not have this,
591
00:43:35.870 --> 00:43:37.010
in memory cache?
592
00:43:37.470 --> 00:43:37.950
And so
593
00:43:39.535 --> 00:43:43.214
yeah, anyways, I, hopefully, I explained the UTXO set good enough.
594
00:43:43.615 --> 00:43:46.355
595
00:43:46.900 --> 00:43:50.600
good explanation. Maybe, maybe one thing to sort of add or rephrase
596
00:43:51.220 --> 00:43:54.280
would be that, like, the the UTXO set is sort of the
597
00:43:55.105 --> 00:44:01.125
the minimum amount of data that you need in order to validate the next block. So when a new block comes in,
598
00:44:01.665 --> 00:44:03.365
really what you want to know is
599
00:44:03.910 --> 00:44:04.569
are these
600
00:44:04.869 --> 00:44:10.170
transactions allowed to happen? And in order to know that, you need to check what the UTXO set.
601
00:44:10.470 --> 00:44:15.204
So that's sort of what I would say maybe at a high level, to to sort of If you're Verizon.
602
00:44:15.825 --> 00:44:17.605
603
00:44:18.625 --> 00:44:21.125
programming, like, like, QTXO set us, like,
604
00:44:21.600 --> 00:44:29.840
the state of your Bitcoin or, like, that's Yeah. That's how and with every block, you keep on updating your state, which you're
605
00:44:30.835 --> 00:44:31.575
606
00:44:31.875 --> 00:44:33.015
set is Bitcoin
607
00:44:33.315 --> 00:44:34.455
in in in a sense.
608
00:44:34.915 --> 00:44:36.695
609
00:44:37.155 --> 00:44:37.655
610
00:44:38.035 --> 00:44:38.355
do
611
00:44:39.820 --> 00:44:41.840
so everyone has the UTXO
612
00:44:42.220 --> 00:44:47.760
set that runs Bitcoin Core, I guess, like, the later clients that added this after 0.8.
613
00:44:48.645 --> 00:44:51.385
How does Dust and Opera turns and
614
00:44:51.765 --> 00:44:52.665
the old legacy
615
00:44:53.045 --> 00:44:53.545
MultiSigs
616
00:44:53.845 --> 00:44:54.745
affect this?
617
00:44:55.445 --> 00:44:56.985
Do we keep those forever?
618
00:45:01.430 --> 00:45:06.089
619
00:45:07.495 --> 00:45:08.235
It's just
620
00:45:09.575 --> 00:45:12.315
does this also not a consensus rule? Right?
621
00:45:13.015 --> 00:45:17.390
It's so when you try to spend transaction that's too small,
622
00:45:18.089 --> 00:45:18.829
it's not
623
00:45:19.210 --> 00:45:20.750
so you could you can do
624
00:45:21.130 --> 00:45:21.789
that except,
625
00:45:22.250 --> 00:45:25.069
so that that is a possibility for spamming.
626
00:45:25.675 --> 00:45:27.775
So Bitcoin Core has a
627
00:45:28.635 --> 00:45:33.135
A relay policy. Right? Yeah. It's a policy that's it's like, hey,
628
00:45:34.369 --> 00:45:36.069
I I don't so it's like,
629
00:45:36.529 --> 00:45:41.430
are you really trying to spend this? Or, like, prove to me that you're really trying to spend this by
630
00:45:43.164 --> 00:45:46.145
show me the intent. So, basically, it's, like, pay enough.
631
00:45:47.164 --> 00:45:49.184
If the amount is too small,
632
00:45:49.860 --> 00:45:57.480
then, like, a like, are you I think you're just trying to spam, that sort of a thing. Yeah. So so just to to clarify, you probably meant it, but, like, the
633
00:45:57.795 --> 00:46:02.375
634
00:46:02.835 --> 00:46:12.440
if it's already there, but, you're not allowed to create a new one. So at least that won't be propagated over the network even though it is technically legal for a miner to add it into into a block.
635
00:46:12.820 --> 00:46:24.944
636
00:46:25.700 --> 00:46:29.000
637
00:46:29.380 --> 00:46:32.200
set grows in size? Like, are there any, like,
638
00:46:32.580 --> 00:46:34.200
negative network externalities?
639
00:46:36.325 --> 00:46:36.825
640
00:46:37.925 --> 00:46:42.825
alright. Now now we're getting into so we don't know. If a UTXO set is too big,
641
00:46:43.530 --> 00:46:45.390
we don't know what's gonna happen. And,
642
00:46:46.090 --> 00:46:46.890
what's funny was,
643
00:46:47.450 --> 00:46:50.349
in a conversation with Taj, I think he mentioned that
644
00:46:51.865 --> 00:46:54.444
we're we're talking about something like like,
645
00:46:54.905 --> 00:46:58.285
big blockers. We're like, hey, we could we have, like, these
646
00:46:59.020 --> 00:47:09.035
100 gigabyte blocks or whatever. Look how much we could process. But what you really should be doing is you should be increasing the UTXO set. You should you should have a chain
647
00:47:09.335 --> 00:47:14.075
that just has a huge bloated UTXO set. So right now,
648
00:47:15.299 --> 00:47:17.319
Bitcoin, it's about 4 gigabytes,
649
00:47:18.740 --> 00:47:19.240
and
650
00:47:20.260 --> 00:47:21.619
it already is the
651
00:47:22.845 --> 00:47:26.305
when you first do the, sync, that that is already
652
00:47:26.605 --> 00:47:27.345
the the
653
00:47:27.965 --> 00:47:31.984
one of the biggest slowing down factors. So it's one of the biggest overheads.
654
00:47:32.680 --> 00:47:35.400
So we wanna keep the UTXO set small. So,
655
00:47:36.520 --> 00:47:39.099
so going back to, like, what you mentioned about, like, op returns.
656
00:47:39.400 --> 00:47:51.305
Op returns, we know for a fact that it cannot be spent. And the UTXO set is unspent transaction output. So it's like, hey. What are all the collection of Bitcoins that is able to be spent? Or
657
00:47:52.530 --> 00:47:53.510
we're we're we're
658
00:47:53.810 --> 00:47:54.310
we're
659
00:47:54.610 --> 00:47:55.110
not
660
00:47:55.410 --> 00:48:02.474
so everything that we're absolutely sure cannot be spent does not go in the UTX OSO.
661
00:48:03.015 --> 00:48:04.155
And so upturns,
662
00:48:04.615 --> 00:48:11.640
when you see them, your Bitcoin Core node will not add them to the UTX OSO because we know for a fact that it cannot be spent.
663
00:48:12.180 --> 00:48:16.680
664
00:48:19.945 --> 00:48:22.285
665
00:48:22.905 --> 00:48:27.920
the entire motivation for having a UTXO set is fast validation. Right? We want
666
00:48:28.220 --> 00:48:33.359
to verify blocks as soon as possible. And there have been, like, improvements where,
667
00:48:33.734 --> 00:48:34.474
like, even
668
00:48:34.855 --> 00:48:35.994
SegWit or,
669
00:48:37.815 --> 00:48:45.110
like, p two s h in some sense where you, like, where you dis where you disallow random things in, like, their scriptPubKeys.
670
00:48:46.130 --> 00:48:51.964
Like, this is just to make the size of your TXO smaller and so that you can have more of them in your
671
00:48:52.265 --> 00:48:53.565
memory, and you can
672
00:48:53.944 --> 00:48:56.765
verify blocks faster. So all of these improvements have,
673
00:48:57.625 --> 00:49:01.569
like all of these in the bigger picture just are to verify blocks
674
00:49:01.869 --> 00:49:03.329
as soon as possible.
675
00:49:04.990 --> 00:49:05.745
676
00:49:06.305 --> 00:49:11.105
just to I think there's only one guy that doesn't believe in the e c x o set, and that's,
677
00:49:13.320 --> 00:49:21.900
Eric Voskuil of of Bitcoin. And he's and he's like, oh, no. You don't you don't want pruned nodes in the network. Why do you want that? They don't have the network. And,
678
00:49:23.645 --> 00:49:31.585
so so the database is a big overhead, and he's like, yeah, we don't have a database. We just point to the we just point to the flat files.
679
00:49:32.769 --> 00:49:34.150
And so, like
680
00:49:34.690 --> 00:49:40.390
like, so, like, there there is an argument to be had there. Of course, the core is way more performant than the Bitcoin.
681
00:49:40.714 --> 00:49:43.855
But, hey, what if the usage also grows? Like, can
682
00:49:44.315 --> 00:49:44.815
is
683
00:49:46.635 --> 00:49:47.775
can can normal
684
00:49:48.410 --> 00:49:57.230
hardware handle that? We don't know. Maybe. Maybe not. I mean, no one's really tested that. So I mean, if you're a minor, you'll probably want to use your dataset.
685
00:49:58.235 --> 00:49:58.875
686
00:49:59.755 --> 00:50:01.555
Yeah. Risk using your
687
00:50:01.995 --> 00:50:10.579
and it's like and if you're verifying your block and, yeah, you don't care if it's 10 seconds late at your own local or not. Okay. You can use lib Bitcoin. So
688
00:50:10.880 --> 00:50:11.599
depends on
689
00:50:12.559 --> 00:50:19.035
690
00:50:19.415 --> 00:50:21.435
691
00:50:23.150 --> 00:50:30.050
That is a good plan for it. You're correct. Anyways, I think this is a good segue to UTXO
692
00:50:30.750 --> 00:50:33.235
because, you know, I think of the UTXO
693
00:50:33.695 --> 00:50:36.275
set being useful because of the prune nodes,
694
00:50:36.895 --> 00:50:37.795
and UTXO
695
00:50:38.095 --> 00:50:41.680
is almost like a pruning of the UTXO
696
00:50:41.980 --> 00:50:44.780
set. If I don't know. Maybe that's a bad analogy, but,
697
00:50:45.580 --> 00:50:46.880
can you explain more?
698
00:50:47.355 --> 00:50:48.815
699
00:50:49.435 --> 00:50:51.215
It's so so UTREXO
700
00:50:51.755 --> 00:50:52.255
is,
701
00:50:53.275 --> 00:50:56.335
so so literally UTREXO is just a
702
00:50:57.870 --> 00:51:01.330
fancy Merkle tree. I I explained it as a fancy Merkle tree.
703
00:51:02.270 --> 00:51:05.970
I touched this in the chat. I don't know how he feels about that definition, but
704
00:51:06.325 --> 00:51:08.425
it is literally fancy Merkle trees.
705
00:51:09.285 --> 00:51:14.250
So what we do is we Merkle ize the UTXO system.
706
00:51:14.570 --> 00:51:17.870
So it's like if you think of a normal Bitcoin block,
707
00:51:18.810 --> 00:51:19.870
you you construct
708
00:51:20.250 --> 00:51:22.110
so you organize the transactions
709
00:51:22.595 --> 00:51:27.175
into a Merkle tree so that you you just have to keep the Merkle tree root. Right?
710
00:51:27.875 --> 00:51:29.415
That's the same exact idea,
711
00:51:29.715 --> 00:51:30.535
except there's,
712
00:51:31.490 --> 00:51:34.950
so UTXO is fancy. It has little more operations, little,
713
00:51:35.490 --> 00:51:43.894
bits here and there. But the idea is the same and that's, hey, let's take the UTXO set. Let's let's put that into a Merkle tree, and we only have to keep,
714
00:51:44.755 --> 00:51:46.694
the the root or roots
715
00:51:46.994 --> 00:51:48.375
in in the case of Utrext.
716
00:51:49.230 --> 00:51:52.049
And so that that's literally what it is. And,
717
00:51:53.549 --> 00:51:57.890
there's a lot of well, there's a couple of fun things you could do because,
718
00:51:59.165 --> 00:52:02.625
as I mentioned before, the UTXO set is about, like, 4 gig,
719
00:52:03.005 --> 00:52:03.825
like, 4 gigabytes.
720
00:52:04.525 --> 00:52:05.345
With UTXO,
721
00:52:07.109 --> 00:52:09.029
it's like a Merkle tree. It just,
722
00:52:09.589 --> 00:52:11.130
it makes it a lot smaller.
723
00:52:12.309 --> 00:52:12.809
And
724
00:52:13.405 --> 00:52:13.905
for
725
00:52:14.925 --> 00:52:18.465
for for if you're using Utrechtel, it's like under a kilobyte.
726
00:52:19.405 --> 00:52:22.225
So it's a lot of reduction in size.
727
00:52:22.550 --> 00:52:30.090
And okay. So do I before I continue on, is there any other comments slash questions that anybody else might have?
728
00:52:31.105 --> 00:52:33.285
729
00:52:33.905 --> 00:52:34.405
730
00:52:35.025 --> 00:52:35.525
Yeah.
731
00:52:35.905 --> 00:52:38.885
Would you would you agree that the high level UTXO
732
00:52:42.849 --> 00:52:43.990
summary is,
733
00:52:44.930 --> 00:52:48.630
you use more bandwidth, but you have significantly less disk space
734
00:52:49.325 --> 00:52:49.825
requirements.
735
00:52:52.925 --> 00:52:55.425
736
00:52:56.360 --> 00:52:59.100
yeah, that is true. So so you use more bandwidth
737
00:52:59.400 --> 00:53:02.300
because of the fact that when you receive a block,
738
00:53:03.320 --> 00:53:03.820
so
739
00:53:04.805 --> 00:53:06.105
as a UTRAXO
740
00:53:06.885 --> 00:53:14.050
node that only keeps so so if you're a UTRAXO node, you have the option to only keep the Merkle roots,
741
00:53:15.230 --> 00:53:23.875
of the of the entire UTXO set. So if you only have that and you receive a blog, you don't have the UTXO set. So So you need that data.
742
00:53:24.575 --> 00:53:31.155
And and what you do is you receive that data from your peer. And so this does end up increasing your bandwidth
743
00:53:31.810 --> 00:53:34.050
because you need to first receive the,
744
00:53:34.850 --> 00:53:35.750
Merkle proof
745
00:53:36.370 --> 00:53:39.350
for the for your, Utrecht's or Merkle root.
746
00:53:40.095 --> 00:53:41.955
So you need to validate that.
747
00:53:42.655 --> 00:53:47.555
Second, you need the actual data of the, inputs. So in a in a transaction,
748
00:53:47.935 --> 00:53:52.319
you're referencing the inputs. You would verify that they exist with the,
749
00:53:52.880 --> 00:53:53.700
with UTRAXO,
750
00:53:54.720 --> 00:53:55.220
verification.
751
00:53:56.160 --> 00:53:57.940
And then you need to do the,
752
00:53:59.145 --> 00:54:05.005
like, the actual Bitcoin consensus rule validation. And so you need that data. So you need, like, the signature
753
00:54:05.950 --> 00:54:06.690
and amounts
754
00:54:07.230 --> 00:54:08.690
and all all all, like,
755
00:54:10.190 --> 00:54:11.410
the all the misc
756
00:54:12.109 --> 00:54:12.609
data.
757
00:54:14.025 --> 00:54:16.845
And so you do end up increasing the bandwidth
758
00:54:17.145 --> 00:54:20.684
in that sense. But as I said before, yeah, you could reduce
759
00:54:21.305 --> 00:54:21.805
your
760
00:54:23.380 --> 00:54:24.280
disk usage
761
00:54:25.059 --> 00:54:26.839
to other kilobytes if you want.
762
00:54:27.300 --> 00:54:30.359
So there's that benefit. So it is a trade off,
763
00:54:30.740 --> 00:54:31.800
and we're working
764
00:54:32.325 --> 00:54:35.225
for the past 6 months. We've been working a lot to
765
00:54:36.165 --> 00:54:42.260
sort of reduce this trade off. So, hey, what if we cash a little bit more and download a lot less? And,
766
00:54:43.440 --> 00:54:45.380
yeah, that's what we've been working on.
767
00:54:45.760 --> 00:54:46.580
It's not
768
00:54:46.960 --> 00:54:58.665
769
00:55:01.030 --> 00:55:01.850
770
00:55:02.550 --> 00:55:04.470
yeah. Me, Taj, and,
771
00:55:04.870 --> 00:55:05.930
there's a
772
00:55:06.575 --> 00:55:09.315
there's a 3rd contributor that contributes a lot,
773
00:55:10.575 --> 00:55:12.755
in in Germany. His name is Nicholas
774
00:55:14.575 --> 00:55:15.075
Goyer.
775
00:55:15.900 --> 00:55:22.240
I I think I'm probably butchering the name. Yeah. That's the 3rd guy. But, yeah, Ruben, you could talk about
776
00:55:23.340 --> 00:55:25.120
you could talk about, your
777
00:55:26.345 --> 00:55:29.465
which chain is it now? Soft yeah. Soft chains,
778
00:55:30.025 --> 00:55:31.005
779
00:55:31.865 --> 00:55:32.685
Yeah. So
780
00:55:33.010 --> 00:55:38.150
I I guess well, it it it is related to the sort of like like client story we've been talking about.
781
00:55:38.610 --> 00:55:41.030
So one of the things that UtreXo does
782
00:55:41.505 --> 00:55:52.599
is it basically allows you and, actually, I wanna keep this short, but but I'll I'll I'll try and give Kevin an overview. What what UtreXo does is it allows you to actually validate blocks
783
00:55:53.460 --> 00:55:53.960
without
784
00:55:54.500 --> 00:55:55.000
knowing,
785
00:55:56.020 --> 00:55:59.065
a transition from one block to another block without necessarily
786
00:55:59.365 --> 00:56:02.904
having to know the fatigue so sets. And that's actually a very interesting property.
787
00:56:03.845 --> 00:56:11.340
And so I came up with a way to sort of do a like client validation that is actually very close to running a full node,
788
00:56:12.360 --> 00:56:18.035
but it utilizes this UTRAXO property of being able to validate a transition from one block to the next.
789
00:56:18.655 --> 00:56:20.275
And basically, the way it works
790
00:56:20.734 --> 00:56:21.234
is
791
00:56:21.940 --> 00:56:26.200
you start off with an assumption. Let's say we assume that 1% of all miners is honest.
792
00:56:26.820 --> 00:56:27.320
So
793
00:56:27.700 --> 00:56:36.505
we're sort of assuming that up to 99% of the network, all the miners they can create invalid blocks as much as they like, and it's not gonna bother us in in this consensus model.
794
00:56:37.440 --> 00:56:42.100
And basically, what we do is we look at forks. So we look at whenever a miner
795
00:56:43.120 --> 00:56:46.500
doesn't mine on the most proof of work chain, but instead creates a fork,
796
00:56:47.225 --> 00:56:50.125
we can use this as sort of a hint to say like, oh,
797
00:56:50.425 --> 00:56:50.925
well,
798
00:56:51.225 --> 00:56:53.325
the fact that this miner created a fork
799
00:56:54.079 --> 00:56:55.940
seems to mean that this miner
800
00:56:56.319 --> 00:56:58.740
thinks that the current must be of work chain is invalid.
801
00:56:59.440 --> 00:56:59.940
And
802
00:57:00.400 --> 00:57:03.059
using that as a hint, we can then go in and investigate
803
00:57:03.635 --> 00:57:04.855
and download the block
804
00:57:05.155 --> 00:57:05.655
after,
805
00:57:06.115 --> 00:57:07.815
which it is forking off from,
806
00:57:08.435 --> 00:57:08.935
and
807
00:57:09.315 --> 00:57:13.460
validate it, and then check to see whether or not the transition was valid or invalid.
808
00:57:13.920 --> 00:57:20.975
And if it was invalid, then now we can reject the most proof of work chain. And if it was, valid, then we just continue in the most proof of work chain.
809
00:57:21.355 --> 00:57:24.575
And one thing that's interesting is, initially, I'd sort of like
810
00:57:24.955 --> 00:57:27.530
I thought this was maybe, not good enough
811
00:57:28.410 --> 00:57:31.230
for, sort of as a like line for Bitcoin.
812
00:57:32.170 --> 00:57:35.390
But, now I'm actually of the opinion that it might be because
813
00:57:36.035 --> 00:57:38.615
you could take that assumption farther and so
814
00:57:39.715 --> 00:57:47.020
what it means for 1% of the miners to be honest, it it basically means that out of 100 blocks, one of those blocks is gonna be valid.
815
00:57:47.400 --> 00:57:49.180
And in the case that 99%
816
00:57:49.640 --> 00:57:51.660
if the miners are being dishonest,
817
00:57:52.039 --> 00:57:55.645
it means that there will be 1 fork block that is that's actually being honest.
818
00:57:56.505 --> 00:58:05.270
But then 200 blocks in the future, you would assume that the honest chain is 2 blocks long. And 300 blocks in the future, you would assume that that chain is 3 blocks long.
819
00:58:05.890 --> 00:58:07.190
And so what you can do
820
00:58:07.890 --> 00:58:10.070
is you can start running,
821
00:58:10.450 --> 00:58:17.785
you you can download all the headers and you can download all the forks off all the headers. So so you download literally all the block headers, even the ones that are not,
822
00:58:19.785 --> 00:58:21.410
not in the most weird work chain,
823
00:58:22.369 --> 00:58:25.829
and you just look at the forks. And the farther you are in history,
824
00:58:26.369 --> 00:58:29.755
the longer needs to be the fork for you to be,
825
00:58:30.375 --> 00:58:33.355
to say, like, oh, hey. Something's going on here. I need to check,
826
00:58:33.735 --> 00:58:34.875
I need to check a block.
827
00:58:35.655 --> 00:58:38.859
And so that means that the farther you are in history,
828
00:58:39.160 --> 00:58:46.040
the less latest. And even though there's a fork there, it needs to be really long for you to actually care about it. And the closer you come to the actual tip
829
00:58:46.744 --> 00:58:50.605
well, at the actual tip, you can just download the last 100 blocks,
830
00:58:51.144 --> 00:58:54.045
and and you could be actually certain that those are all valid.
831
00:58:54.380 --> 00:59:00.880
And then for everything else, you only check the forks. And the farther you go in history, the less you have to check because the fork needs to be longer.
832
00:59:01.260 --> 00:59:04.000
And that can actually be a way that you can come to consensus,
833
00:59:05.164 --> 00:59:09.265
with very little data and and be at the tip of of the, Bitcoin blockchain.
834
00:59:09.645 --> 00:59:12.770
So it's a it's a Yeah. It's it's an interesting thing,
835
00:59:13.250 --> 00:59:20.145
and I think, yeah, it can be useful in that way. And I I also came up with a kind of a more convoluted way of using this for sort of a 2 way pegs,
836
00:59:21.105 --> 00:59:24.485
side chain, which is a cool idea in theory, but in practice is,
837
00:59:25.425 --> 00:59:29.845
it might be good for Altcoin or something. But, for Bitcoin, it's it's a little bit too crazy,
838
00:59:30.369 --> 00:59:32.230
but that's sort of the the high level idea.
839
00:59:32.690 --> 00:59:35.430
840
00:59:35.809 --> 00:59:37.750
so you don't have to talk about that.
841
00:59:39.674 --> 00:59:42.815
842
00:59:43.515 --> 00:59:44.015
843
00:59:46.155 --> 00:59:49.890
844
00:59:50.830 --> 00:59:58.735
you know, the the federated side chain model, like, I don't know what you guys think but, like, you know, people complain about it and say, like, oh, well, you know, it's not trustless. But
845
00:59:59.455 --> 01:00:06.595
I mean it's it's much better than something like Coinbase and we need these solutions that are sort of in the middle and I think, yeah,
846
01:00:06.970 --> 01:00:08.430
Federated Sidechains Liquid,
847
01:00:08.890 --> 01:00:10.109
they are great for that.
848
01:00:10.490 --> 01:00:12.910
So I sort of, you know, I think every
849
01:00:13.609 --> 01:00:23.744
way in which you can do another chain that is not introducing an altcoin, I I think is basically good. That's that's how I see it. I thought it was kind of cool that they added,
850
01:00:24.440 --> 01:00:27.780
851
01:00:28.200 --> 01:00:30.220
852
01:00:30.600 --> 01:00:40.924
853
01:00:41.440 --> 01:00:46.340
854
01:00:47.760 --> 01:00:57.035
I don't think it's activated on liquid, but maybe other elements. No. No. This is like it's not CTV, so it is much more powerful than that.
855
01:00:57.655 --> 01:01:01.380
It is, like, it allows you direct transaction
856
01:01:01.760 --> 01:01:03.620
introspection of codes, which,
857
01:01:04.400 --> 01:01:04.900
like,
858
01:01:05.680 --> 01:01:08.020
at a technical level, it means that you can directly
859
01:01:09.135 --> 01:01:12.435
observe, like, what is the what is the output amount at this,
860
01:01:13.535 --> 01:01:14.915
like, what is output amount,
861
01:01:15.375 --> 01:01:18.470
at this output index? What is the input hash,
862
01:01:19.990 --> 01:01:23.210
or what is the destination script up key you're sending to? And it,
863
01:01:23.725 --> 01:01:27.585
it is much more powerful in the sense it allows you to create actually good vaults,
864
01:01:28.445 --> 01:01:28.945
with
865
01:01:31.405 --> 01:01:32.190
and, like,
866
01:01:32.670 --> 01:01:37.410
it is a more general programming framework which allows you to emulate CTV. So CTV is like
867
01:01:37.950 --> 01:01:39.569
a templated fixed hash,
868
01:01:39.905 --> 01:01:41.525
and you can just, like, output,
869
01:01:41.825 --> 01:01:47.125
the hash by selecting the different parts of the transaction template and then hashing them together and,
870
01:01:47.950 --> 01:01:51.569
like, emulating CTV. So it was always possible to,
871
01:01:52.349 --> 01:01:53.490
like, do CTV.
872
01:01:54.269 --> 01:01:57.575
873
01:01:58.115 --> 01:02:00.115
874
01:02:00.915 --> 01:02:04.935
of like, it was there from the start, but now we have, like, something which is direct transaction
875
01:02:05.859 --> 01:02:07.799
introspection, and that allows you to,
876
01:02:08.579 --> 01:02:09.240
like, to,
877
01:02:10.180 --> 01:02:11.720
emulate CTV, but
878
01:02:12.259 --> 01:02:14.194
also do many other applications,
879
01:02:14.895 --> 01:02:16.994
which are not which don't have
880
01:02:17.535 --> 01:02:18.035
fixed
881
01:02:18.494 --> 01:02:18.994
transaction,
882
01:02:20.974 --> 01:02:21.875
883
01:02:22.255 --> 01:02:25.630
free. Is this what Russell has been on the mailing list,
884
01:02:26.089 --> 01:02:30.985
885
01:02:31.305 --> 01:02:31.965
the CTV
886
01:02:32.265 --> 01:02:32.765
is,
887
01:02:33.705 --> 01:02:34.845
a fixed template,
888
01:02:35.625 --> 01:02:44.130
and you hash according to this particular you hash these these objects, and you you get, like, these these parts of the transaction and you get, like, your CTV hash.
889
01:02:44.829 --> 01:02:48.130
But, what Russell is saying is that we should have more
890
01:02:48.565 --> 01:02:52.825
programmatic control over what sort of things you are going to access so that you can enable
891
01:02:53.205 --> 01:02:55.465
and there's a more forward thinking way if we can have
892
01:02:56.580 --> 01:02:57.480
more applications,
893
01:02:57.780 --> 01:02:58.840
not only just,
894
01:03:00.260 --> 01:03:03.240
like, CPV. So it is a programmatic approach to,
895
01:03:03.780 --> 01:03:04.280
like,
896
01:03:04.744 --> 01:03:05.944
having different things.
897
01:03:06.505 --> 01:03:09.565
So it is, like and this is still different from, like, introspection
898
01:03:09.865 --> 01:03:17.460
of codes. So, like, just to I won't dive too much into it. Just to give one example of differences. With CTV, you need to have
899
01:03:17.920 --> 01:03:18.900
all your possible
900
01:03:19.360 --> 01:03:19.840
outputs of
901
01:03:20.625 --> 01:03:28.885
all your possible states of your transactions be decided. For example, if you're having a using a vault, then you need to know that you are going to withdraw
902
01:03:29.190 --> 01:03:35.930
0.5 Bitcoin always. And that's like a severe limitation in some sense. Like, the price of Bitcoin might be something else. You might want to
903
01:03:36.230 --> 01:03:37.130
withdraw 0.501
904
01:03:37.990 --> 01:03:39.625
Bitcoin or something else.
905
01:03:39.925 --> 01:03:40.724
And it's just,
906
01:03:41.204 --> 01:03:45.385
severely limited, but with, like, arithmetic opcodes and with,
907
01:03:47.380 --> 01:03:55.240
like, transaction introspection, you can have, like, a dynamic wall, which is more sort of something with how would you use a wallet, like, withdraw how much you need and
908
01:03:55.664 --> 01:03:59.605
know without going in the future how much amount you're going to need. So that's just, like,
909
01:04:00.305 --> 01:04:01.684
one difference. That's
910
01:04:02.840 --> 01:04:03.340
911
01:04:03.640 --> 01:04:09.180
Yeah. And it's very interesting. Yeah. So so, Sanket, I I'm also wondering, like, do do you have an opinion on,
912
01:04:09.985 --> 01:04:10.725
like, OPCTV
913
01:04:11.105 --> 01:04:12.565
and anyprevaled versus,
914
01:04:13.345 --> 01:04:15.745
TX hash and, checksick from,
915
01:04:16.465 --> 01:04:17.845
Yeah. Checksick from Stackverify.
916
01:04:19.079 --> 01:04:20.859
Or maybe a verify.
917
01:04:22.200 --> 01:04:27.319
918
01:04:28.255 --> 01:04:30.355
just give me 10 seconds to organize it. So,
919
01:04:30.655 --> 01:04:33.474
920
01:04:34.015 --> 01:04:34.994
921
01:04:35.340 --> 01:04:46.395
to get a second and, just talk about it a little bit, what I'm sort of, like, asking. So we current currently have a discussion on, whether or not Ops TV could could go into Next Soft Fork
922
01:04:46.775 --> 01:04:48.395
or and there's any.
923
01:04:49.175 --> 01:04:49.994
Both are,
924
01:04:51.015 --> 01:04:58.839
interesting functions. 1 is sort of like a, you know, a very fixed covenant that Sanket just explained, and the other one is, kind of a way to
925
01:04:59.220 --> 01:05:02.839
do sort of transactions that are a little bit more loose. So you you can spend,
926
01:05:03.345 --> 01:05:07.924
you can create a transaction that spends an output, but it doesn't specify which output.
927
01:05:08.545 --> 01:05:15.260
So you could sort of, like, yeah. It becomes more loose and and that has some advantages for, lightning in particular.
928
01:05:16.040 --> 01:05:16.540
So
929
01:05:16.920 --> 01:05:17.420
recently,
930
01:05:18.375 --> 01:05:22.555
Russell O'Connor put out a a mailing host basically arguing,
931
01:05:23.175 --> 01:05:25.195
well, we can get both of these features
932
01:05:25.890 --> 01:05:28.870
in a way that is sort of more flexible by
933
01:05:29.170 --> 01:05:30.470
creating these 2 nodes
934
01:05:30.930 --> 01:05:36.575
that, are slightly more expensive, they're a few more bytes in in terms of transaction size,
935
01:05:36.954 --> 01:05:37.454
but
936
01:05:37.755 --> 01:05:46.359
it's it's much more flexible, and it allows us to do more in the future. And my personal concern and something that I want Sanket also to to comment on if he has an opinion
937
01:05:46.820 --> 01:05:49.640
is that I I'm noticing sort of this this
938
01:05:50.055 --> 01:05:51.675
fight here, this battle between,
939
01:05:52.375 --> 01:05:54.795
okay, are we going to try to
940
01:05:55.255 --> 01:06:03.410
be very forward thinking and add these new features and and really, even though we don't have a use case for them yet, kind of prepare for them already,
941
01:06:03.710 --> 01:06:22.650
or are we going to be very use case oriented and just say, no, we just want OPCTV because we wanna do this and this, no, we just want AnyPerfout because currently we want this and this, and then maybe in the future we do a a complete language overhaul, something like simplicity which is is kind of an alternative scripting language, that hopefully we'll get into in a second,
942
01:06:24.315 --> 01:06:27.295
and and sort of not worry about that, today.
943
01:06:27.755 --> 01:06:31.055
So with that, Sanket, please tell us your thoughts. Yeah.
944
01:06:31.595 --> 01:06:32.095
945
01:06:32.720 --> 01:06:32.880
yeah,
946
01:06:33.520 --> 01:06:35.299
1st, let's start with, like,
947
01:06:37.760 --> 01:06:39.859
check template verify. Like, I have,
948
01:06:40.775 --> 01:06:42.635
like, the idea is good in person.
949
01:06:43.175 --> 01:06:51.390
I like the idea. The idea is technically sound, so I will get 2 things out of the way. Like, I don't have any technical objections to it. So the question,
950
01:06:52.810 --> 01:06:53.310
yeah.
951
01:06:53.849 --> 01:06:59.785
So the question like, the main question, should we soft fork that into Bitcoin and should that, like,
952
01:07:00.165 --> 01:07:02.425
what should be our stance on this? So
953
01:07:02.885 --> 01:07:03.625
there is,
954
01:07:05.119 --> 01:07:07.380
so I'll first go into, like,
955
01:07:07.680 --> 01:07:09.060
the more sort of,
956
01:07:10.080 --> 01:07:14.555
social argument, which, like, I'm not taking any side, but I'm just saying my business
957
01:07:15.015 --> 01:07:16.475
thing which we need to discuss.
958
01:07:18.455 --> 01:07:19.115
Like, this,
959
01:07:19.575 --> 01:07:20.075
so
960
01:07:20.695 --> 01:07:26.299
this opcode upgrade is not as big as Taproot. Like, for example, our segment. It is
961
01:07:26.839 --> 01:07:29.339
it is not as big as so it's not changing how,
962
01:07:29.640 --> 01:07:30.140
like,
963
01:07:30.519 --> 01:07:33.335
how things work fundamentally. But, it
964
01:07:33.835 --> 01:07:34.335
clearly
965
01:07:34.835 --> 01:07:35.335
is
966
01:07:35.835 --> 01:07:36.335
not,
967
01:07:36.914 --> 01:07:38.835
how should I say? It's clearly is not as,
968
01:07:41.050 --> 01:07:44.109
does not have as good support as Taproot or Segwit,
969
01:07:44.410 --> 01:07:50.190
for example. And because it is specifically use case oriented, whereas Taproot and Segwit were,
970
01:07:52.235 --> 01:07:59.695
yeah, where Taproot and, Segwit were, like, kind of benefiting like, at least benefiting everyone. And in this case, it is not that
971
01:08:01.579 --> 01:08:05.839
it's not clear. So we have to evaluate this from the use case perspective.
972
01:08:06.619 --> 01:08:11.315
So now this really brings, like, the social problem which I was discussing is
973
01:08:11.935 --> 01:08:13.235
where you have,
974
01:08:15.295 --> 01:08:18.540
like, now certain set of Bitcoin users want this application.
975
01:08:21.800 --> 01:08:28.345
And, should, like, should we include this, and is that worth it or not? That's basically that's the question. When it does not affect,
976
01:08:28.905 --> 01:08:30.285
where it, like, doesn't
977
01:08:30.825 --> 01:08:31.805
directly touch,
978
01:08:33.385 --> 01:08:35.645
doesn't directly touch most of the Bitcoin users.
979
01:08:36.505 --> 01:08:37.005
So,
980
01:08:37.700 --> 01:08:40.520
okay, where I was going with this? Yeah. And
981
01:08:41.220 --> 01:08:42.180
so because it,
982
01:08:44.100 --> 01:08:51.195
and this also sort of sets the precedent in future for how many like, how do we want these things to,
983
01:08:53.170 --> 01:09:03.745
like, how we want these things to change. Like, how do we want opcode future opcode proposals? So all of these critics were not in particular critics of CTV in general, but those are just,
984
01:09:04.465 --> 01:09:08.405
like, observations about an upcoming of for soft work in Bitcoin,
985
01:09:09.480 --> 01:09:11.340
which is, like, not unilaterally
986
01:09:11.960 --> 01:09:15.340
like, which does not directly benefit everyone, for example, Taproot.
987
01:09:15.800 --> 01:09:16.300
So
988
01:09:17.235 --> 01:09:19.395
so we should really, like, have more
989
01:09:20.035 --> 01:09:24.050
and this has sort of set the precedent in future for how do we want to do these things.
990
01:09:24.770 --> 01:09:29.030
No. I personally am of the opinion that we should be more liberal
991
01:09:29.570 --> 01:09:30.070
towards,
992
01:09:30.530 --> 01:09:31.510
opcode activations.
993
01:09:32.405 --> 01:09:36.405
Like, in general, like, it's not a big as big of a change as,
994
01:09:37.285 --> 01:09:44.830
like, Taproot or Cypress. So it should not have that high bar, but it's, like, up to everyone to decide. So that is my opinion on, like, this particular,
995
01:09:45.690 --> 01:09:55.285
like, sort of social issue. Like, I want more opcodes. I want Bobcat. I want, like, objects, like, from Slack, and I would be proposing. And I don't think we should have
996
01:09:55.830 --> 01:09:59.930
that that high bar for it. So this is, like, the first
997
01:10:01.430 --> 01:10:04.405
not a creative CTV, but just an new software
998
01:10:04.705 --> 01:10:13.364
which should set the precedent for opcode upgrades in general. And this was not the case for, like I think AJ brings this up. It was not the case for previous
999
01:10:14.370 --> 01:10:17.830
like c like CSV and CLTV, which were, like,
1000
01:10:19.090 --> 01:10:22.050
like, Bitcoin was it was still big, but it was clearly
1001
01:10:22.595 --> 01:10:26.215
and it was driven by lightning network, for example, CSV upgrade.
1002
01:10:26.675 --> 01:10:27.715
So I think the
1003
01:10:28.515 --> 01:10:29.335
yeah. This
1004
01:10:29.635 --> 01:10:31.780
the ecosystem has changed low.
1005
01:10:32.179 --> 01:10:33.960
Yeah. Ecosystem has changed significantly.
1006
01:10:34.900 --> 01:10:37.559
Now towards the specific things of CDV
1007
01:10:38.500 --> 01:10:42.245
where so one of the things I dislike and which I,
1008
01:10:43.125 --> 01:10:45.225
like, which I should really find time and
1009
01:10:45.525 --> 01:10:51.190
write down more concretely is it is explicitly designed with the goal to avoid,
1010
01:10:51.890 --> 01:10:55.590
what we informally call recursive or unlimited covenants.
1011
01:10:56.485 --> 01:10:57.945
People think those are dangerous,
1012
01:10:58.324 --> 01:11:00.985
and they have some arguments for it. But I am,
1013
01:11:01.764 --> 01:11:05.065
like, with time, I have learned to appreciate that.
1014
01:11:06.179 --> 01:11:15.725
And, like, after talking to numerous people, like, that those those really aren't that dangerous, and we have we we have good rationale for having recursive covenants. And,
1015
01:11:16.845 --> 01:11:17.805
and we should really
1016
01:11:18.365 --> 01:11:27.360
if we are going to have this recursive covenants for, you know, that is the solution which I am personally interested in. Now because in the first, we have evaluated that we should really,
1017
01:11:29.875 --> 01:11:37.175
like, judge this opcode upgrade by use case basis. And for me, like, an world where I can just withdraw fixed amounts is really
1018
01:11:37.715 --> 01:11:38.614
not that interesting.
1019
01:11:38.990 --> 01:11:49.215
Like, I really want to have a more dynamic world where we can, like because no one really knows the future, and you cannot really say that I will always want to withdraw this much amount. So That's
1020
01:11:50.735 --> 01:11:53.155
and with recursive covenants, you can do,
1021
01:11:54.175 --> 01:11:56.275
Yeah. Like, you have
1022
01:11:56.980 --> 01:11:58.340
more possibilities for,
1023
01:12:00.420 --> 01:12:03.560
like, doing things than just a fixed template.
1024
01:12:03.915 --> 01:12:07.055
1025
01:12:07.995 --> 01:12:10.655
recursive covenants, does it? Or are Sorry?
1026
01:12:11.440 --> 01:12:21.655
Well, specifically, the example you're giving, changing the amount so having something like, obviously, TV, but the amount is something you can you can change for instance. That that would not require recursive covenants. Right?
1027
01:12:22.675 --> 01:12:39.855
1028
01:12:40.715 --> 01:12:42.175
so simplest way to,
1029
01:12:42.635 --> 01:12:45.920
like, understand CTV is, like, it is, like, pre signing a transaction, but
1030
01:12:46.480 --> 01:12:49.780
with consensus support. Like, all everything you could do with pre signing,
1031
01:12:50.719 --> 01:12:53.460
transaction pre signing tricks, now you can do with
1032
01:12:54.795 --> 01:12:59.135
1033
01:13:00.155 --> 01:13:03.535
you're saying I want recursive covenants because then I can
1034
01:13:04.170 --> 01:13:05.290
have something like,
1035
01:13:06.170 --> 01:13:10.110
an output where I said money, but I don't have a fixed amount. I can still change the amount
1036
01:13:10.570 --> 01:13:11.550
at spending time.
1037
01:13:12.145 --> 01:13:15.765
But I I'm saying that's still not an example of a recursive covenants. Right?
1038
01:13:16.305 --> 01:13:18.725
1039
01:13:19.260 --> 01:13:26.800
it's not a recursive covenant. That's, I would say not a covenant where you don't have where you don't enumerate all your possibilities
1040
01:13:27.340 --> 01:13:27.840
at
1041
01:13:28.405 --> 01:13:28.905
creation
1042
01:13:29.365 --> 01:13:31.065
time. Like, that is what, like,
1043
01:13:32.005 --> 01:13:36.185
but the way in which you would do that, for example, transaction introspection, that could enable
1044
01:13:36.565 --> 01:13:37.545
recursive covenants.
1045
01:13:37.860 --> 01:13:45.560
And with Valls, for example, you would want some sort of, like, recursive covenants to enforce that things go back into Vowel under the same policy.
1046
01:13:46.285 --> 01:13:46.785
Yeah.
1047
01:13:47.245 --> 01:13:49.245
So it is like that is
1048
01:13:51.725 --> 01:13:52.945
so again, it's
1049
01:13:54.900 --> 01:13:55.880
so do you really,
1050
01:13:56.260 --> 01:13:57.320
like, so
1051
01:13:57.700 --> 01:14:02.440
again, that, personally, that brings me to the question, do I should I be advocating for CTV?
1052
01:14:02.955 --> 01:14:09.455
Because I don't have anything against it, but those are not the use cases which I'm interested in. And that is something like,
1053
01:14:11.010 --> 01:14:12.150
that is something which
1054
01:14:13.090 --> 01:14:17.590
yeah. I have to decide. But on the other hand, I do also think that the bar should be lower than
1055
01:14:18.525 --> 01:14:25.264
than that for, like, Taproot, for example. That is just my opinion because we have all these ops access and all these all upgrades,
1056
01:14:25.645 --> 01:14:28.199
and we definitely want to use them. So
1057
01:14:28.980 --> 01:14:34.760
the yeah. That is the thing. And soft forks also have this, like, coordination issue. So, like, is it
1058
01:14:35.345 --> 01:14:43.925
if we, like, if this is if we are really going to have this sort of recursive covenants, like, CTB is still useful and do we do have to go through this process again?
1059
01:14:44.470 --> 01:14:44.970
And,
1060
01:14:45.910 --> 01:14:47.530
like, that is basically, I think,
1061
01:14:48.070 --> 01:14:49.370
the mailing list conversation.
1062
01:14:50.390 --> 01:14:59.035
1063
01:14:59.690 --> 01:15:05.150
Is that why you prefer something like the X hash? Is is that right? Or or am I summarizing quickly?
1064
01:15:06.485 --> 01:15:10.825
1065
01:15:11.205 --> 01:15:11.705
personal
1066
01:15:12.165 --> 01:15:15.785
ideally, I would want, like, something which would add in elements, like,
1067
01:15:16.310 --> 01:15:17.130
where you can,
1068
01:15:18.070 --> 01:15:24.010
like, where you can have direct transaction introspection, and that just gives you more programmatic access to do
1069
01:15:24.525 --> 01:15:27.324
different type of covenants. Like, that is what I would want,
1070
01:15:28.125 --> 01:15:30.465
Yeah. Personally. But I and that's,
1071
01:15:31.220 --> 01:15:35.240
obviously, Bitcoin doesn't work that way, but I would have to Sure. Sure.
1072
01:15:35.620 --> 01:15:41.305
1073
01:15:41.925 --> 01:15:47.705
the current kind of line of software. So, obviously, TV and AnyProvide as well, I guess, to some degree. You're you're just not
1074
01:15:48.480 --> 01:15:54.340
super interested in them, but you're interested in something that's a bit more powerful than that that allows more flexibility.
1075
01:15:55.335 --> 01:16:04.869
1076
01:16:05.670 --> 01:16:09.130
should I spend my time trying to review it when I'm not going to use it?
1077
01:16:09.510 --> 01:16:11.770
Or Yeah. Like yeah. So that's something
1078
01:16:12.845 --> 01:16:16.945
because clearly those have to be evaluated based on use cases. And,
1079
01:16:17.405 --> 01:16:18.945
yeah, if I really find
1080
01:16:19.740 --> 01:16:24.000
a good use case, which I want something right now, then I can yeah. Surely.
1081
01:16:24.540 --> 01:16:26.240
1082
01:16:27.255 --> 01:16:30.315
thought process was where I went down this tangent was,
1083
01:16:31.895 --> 01:16:33.995
like, isn't this the perfect use case
1084
01:16:35.210 --> 01:16:38.270
for a federated side chain to basically test out for us?
1085
01:16:39.290 --> 01:16:40.510
1086
01:16:40.890 --> 01:16:54.290
possible. Like, I mean, it is possible to build applications, and you you can write, like, applications today, which emulates CTV and just do it. But is is liquid to is liquid to divergent from Bitcoin to be
1087
01:16:55.070 --> 01:16:57.329
1088
01:16:58.345 --> 01:17:02.845
another federated side chain that's basically, like, Bitcoin plus controversial changes?
1089
01:17:03.625 --> 01:17:12.330
1090
01:17:13.030 --> 01:17:17.705
like, I don't think it's too divergent. It has, like, so the main difference here is, like,
1091
01:17:18.885 --> 01:17:22.025
different assets where you can have, like,
1092
01:17:22.645 --> 01:17:28.380
multi asset chain. And second thing is confidential transactions. Like, you those are like, you can still
1093
01:17:29.000 --> 01:17:30.520
have CTV on
1094
01:17:31.455 --> 01:17:34.515
like, you can still emanate CTV and have all the applications of CTV,
1095
01:17:34.895 --> 01:17:36.515
on liquid. And if people
1096
01:17:36.895 --> 01:17:39.555
want to do it, they can build it. Like, there's nothing,
1097
01:17:40.990 --> 01:17:45.010
like, you can you can emulate it as it is today. You cannot do it for presegment
1098
01:17:45.630 --> 01:17:48.450
transactions, I think, but that's, I think, a very minor limitation.
1099
01:17:49.485 --> 01:17:55.085
1100
01:17:55.485 --> 01:17:55.985
library,
1101
01:17:56.739 --> 01:17:58.360
the more experimental one.
1102
01:18:00.099 --> 01:18:01.960
S e c p k 256.
1103
01:18:02.579 --> 01:18:06.985
1104
01:18:07.925 --> 01:18:13.145
1105
01:18:13.650 --> 01:18:16.710
1106
01:18:18.690 --> 01:18:19.190
So
1107
01:18:19.730 --> 01:18:20.550
the problem
1108
01:18:21.175 --> 01:18:28.555
problem here, I should say, like, the decision here to be made is if you are a test bed and it doesn't real money, you deploy something which is
1109
01:18:28.935 --> 01:18:32.520
consensus critical, and then you cannot change it. So for example
1110
01:18:33.480 --> 01:18:37.580
and this is a decision which has to be made on case by case basis. But for example,
1111
01:18:38.085 --> 01:18:41.305
you have a new opcode and you want to test this on,
1112
01:18:42.485 --> 01:18:44.265
you you want to test this to,
1113
01:18:45.540 --> 01:18:46.920
like, test this on liquid,
1114
01:18:47.380 --> 01:18:48.420
then you would,
1115
01:18:49.700 --> 01:19:05.330
like, then you would give a spec. You'd implement it, and now it's in liquid consensus. Now you change it, and then suddenly the for based on, like, feedback or real life data gathered, and then you have different versions on liquid and on a bit. That is one possibility, but you can, like
1116
01:19:05.630 --> 01:19:15.135
like that can be evaluated on case by case basis whether that's worth it or not. But it particularly in the case of CTV, what is available on the code is much more powerful. So it's like,
1117
01:19:15.915 --> 01:19:19.455
like, you can emulate CTV and you can do much more things. It's really
1118
01:19:20.210 --> 01:19:20.370
there
1119
01:19:21.410 --> 01:19:24.310
as additional code really was not needed to
1120
01:19:24.850 --> 01:19:30.505
have that functionality. So to answer your question, like, yes, you can do this on liquid. And,
1121
01:19:31.005 --> 01:19:34.305
if people want to experiment CTV, they can try it.
1122
01:19:36.020 --> 01:19:38.600
1123
01:19:38.980 --> 01:19:42.119
Sanket. I'm I'm the caveman that's conservative,
1124
01:19:42.420 --> 01:19:46.605
that is ignorant, and doesn't understand all these new proposals, and
1125
01:19:46.985 --> 01:19:51.165
I appreciate Bitcoin being ossified, and I don't want new things.
1126
01:19:52.530 --> 01:19:57.270
Recursives were Recursive covenants were sold to me as being like the boogeyman of everything,
1127
01:19:57.650 --> 01:19:59.270
because that's what I guess
1128
01:19:59.695 --> 01:20:10.500
the federal government would use to make sure you're now in this locked KYC system or something like that. Yeah. Is there I had that opinion, but I have, like, based on, like,
1129
01:20:11.040 --> 01:20:14.100
1130
01:20:14.480 --> 01:20:20.395
like, changed that. Like, have changed my stance significantly and to the point that I'm even, like,
1131
01:20:20.935 --> 01:20:23.195
I would be supportive of a fuzzy proposal which
1132
01:20:24.295 --> 01:20:26.310
has As you've heard of. Can you So for example why.
1133
01:20:26.930 --> 01:20:29.190
Yeah. Yeah. Yeah. So, like, just to,
1134
01:20:30.130 --> 01:20:32.150
recap what the supposed
1135
01:20:32.585 --> 01:20:33.485
danger is.
1136
01:20:33.945 --> 01:20:34.825
So I think,
1137
01:20:35.785 --> 01:20:36.285
the
1138
01:20:36.985 --> 01:20:38.505
the argument which is,
1139
01:20:39.305 --> 01:20:40.365
like, given for,
1140
01:20:41.530 --> 01:20:44.590
like, against recursive governance is you have,
1141
01:20:46.170 --> 01:20:49.665
what if the government goes to Coinbase, And it says that,
1142
01:20:50.445 --> 01:20:51.185
you have,
1143
01:20:53.565 --> 01:21:10.014
like, you have to use all your Bitcoins have to be inside this covenant where the federal government can always freeze the skis, and that frees the coins. And And that's like a recursive covenant. So whenever you withdraw from Coinbase or you send it to your friends or so on, you have to keep this,
1144
01:21:10.715 --> 01:21:13.179
like, this covenant must float around,
1145
01:21:14.199 --> 01:21:16.860
like, forever till the eternity of the coin.
1146
01:21:17.239 --> 01:21:18.119
Right? And that's,
1147
01:21:19.645 --> 01:21:20.285
and and that's a
1148
01:21:21.085 --> 01:21:23.265
and that's the concern. I don't think it is
1149
01:21:23.725 --> 01:21:25.185
well found because,
1150
01:21:25.565 --> 01:21:28.360
a, if you're keeping your money at, like,
1151
01:21:28.739 --> 01:21:29.559
at an exchange,
1152
01:21:31.300 --> 01:21:41.875
then, like, they already have your money, then they can, like, you know, just freeze it then and there itself. And if you're accepting any coins from primary, from any, like,
1153
01:21:42.415 --> 01:21:49.680
from someone like, why would you accept coins which are, like, when you receive coins and Bitcoin, you receive it to an address of your choosing.
1154
01:21:50.300 --> 01:21:51.980
Like, you never receive it to,
1155
01:21:52.380 --> 01:21:59.344
like, any covenant address which is, like, has a covenant. So you have to explicitly opt into the system
1156
01:21:59.804 --> 01:22:00.304
to,
1157
01:22:00.844 --> 01:22:02.125
yeah, yeah, to, you know,
1158
01:22:02.925 --> 01:22:03.824
to use this.
1159
01:22:04.910 --> 01:22:05.390
So
1160
01:22:05.870 --> 01:22:06.270
and,
1161
01:22:07.390 --> 01:22:10.270
the argument here is that why does the government not use a
1162
01:22:11.885 --> 01:22:21.510
they can do the same thing today, but with a multisig. They can just have a policy then they can just go to Coinbase and say, you know, we just have a multisig or, like, our policy where
1163
01:22:21.970 --> 01:22:24.550
every every transaction you spend must have an alternative
1164
01:22:25.010 --> 01:22:29.430
pathway for the alternative path where government can freeze or send the coins.
1165
01:22:29.735 --> 01:22:30.955
And then they can
1166
01:22:31.335 --> 01:22:34.155
do have the exact same behavior today that is emulated,
1167
01:22:34.775 --> 01:22:35.515
like, in,
1168
01:22:36.615 --> 01:22:44.650
like, that can be done today. So with recursive covenants, all you're adding is ability, like, I'll be careful here, is the ability to do this in consensus,
1169
01:22:45.190 --> 01:22:51.704
whereas previously, it was the ability to do something at, like, a policy level where you could just say the government can have
1170
01:22:52.005 --> 01:22:53.864
can spend this using their own keys.
1171
01:22:54.405 --> 01:22:56.650
And the argument which Jeremy
1172
01:22:57.130 --> 01:23:00.989
listed on mailing list is, I think, an article from someone on Twitter.
1173
01:23:01.370 --> 01:23:02.429
I forget the name.
1174
01:23:03.825 --> 01:23:08.965
But the essentially, the Medium post just says that it makes this distinction between
1175
01:23:09.345 --> 01:23:09.845
having
1176
01:23:11.250 --> 01:23:11.989
covenant at
1177
01:23:12.610 --> 01:23:13.590
consensus level
1178
01:23:14.050 --> 01:23:19.110
versus a policy one, where they say that the policy can change with time and,
1179
01:23:19.969 --> 01:23:20.469
say,
1180
01:23:21.155 --> 01:23:23.415
the government changes or you have new
1181
01:23:24.035 --> 01:23:28.835
new some other policy, then you can opt out of it. Whereas, if you are into this,
1182
01:23:31.000 --> 01:23:35.980
whereas if you are, into this covenant, then you are stuck with it forever. And I think that's just
1183
01:23:37.695 --> 01:23:40.275
philosophical difference. At this point, if you
1184
01:23:40.655 --> 01:23:42.015
really want to get out of,
1185
01:23:42.495 --> 01:23:44.355
like, hard fork at that point, like,
1186
01:23:44.655 --> 01:23:47.440
get out of the covenant, you can just hard fork out of it. And
1187
01:23:47.920 --> 01:23:49.300
I don't think there's any,
1188
01:23:52.320 --> 01:23:55.380
this has an anything to do with enabling
1189
01:23:57.605 --> 01:23:59.145
these covenants on
1190
01:24:00.085 --> 01:24:13.440
on Bitcoin. And secondly, these are so like, again, this is maybe we are at this point where we don't even have off cat, like, just adding 2 elements on on the stack because that might enable covenants accidentally enable covenants.
1191
01:24:13.825 --> 01:24:25.929
So it is like a very how do I say it? It's because we have, like, by nature of how check, there is some level of introspection by nature of some the scripting in between you can
1192
01:24:26.389 --> 01:24:26.889
have,
1193
01:24:27.190 --> 01:24:27.989
like, you can do
1194
01:24:29.095 --> 01:24:34.555
like, for all I know, it might still be possible today using all the weird op codes available, like, to actually
1195
01:24:34.935 --> 01:24:35.435
do,
1196
01:24:35.975 --> 01:24:48.185
like, do covenants. And I like, instead of having this game of avoiding covenants, we should just, like, discuss whether, like, are these dangers really well found? I thought that at one point where governments could have, like,
1197
01:24:49.605 --> 01:24:54.025
they could enforce this covenant, but I don't think that's really any different than having a policy.
1198
01:24:54.870 --> 01:24:55.370
And,
1199
01:24:56.469 --> 01:24:57.850
yeah, that's basically
1200
01:24:58.230 --> 01:25:04.615
1201
01:25:14.050 --> 01:25:14.950
Getting those UTXOs?
1202
01:25:16.210 --> 01:25:19.650
1203
01:25:20.050 --> 01:25:31.345
like, you generate that as it's your response. Like, what is the guarantee that when you receive coins on your wallet that you're they are actually being sent to the private key you have? Right? There's nothing you have to trust your wallet to to
1204
01:25:31.980 --> 01:25:42.535
the correct thing. So it's onto you as a receipt as a user when you see an address that it is an act that it is the coin where you can spend according to the spending policy that you have defined.
1205
01:25:42.915 --> 01:25:43.415
And,
1206
01:25:43.795 --> 01:25:50.210
yeah, that's basically the receiver's responsibility. Like, you when I send you a Bitcoin, you don't get you don't accept Bitcoin Cash. Right?
1207
01:25:50.670 --> 01:25:54.210
Because it's yeah. That's yeah. It's not the same coin and,
1208
01:25:54.670 --> 01:26:01.075
even though maybe the address might be the same. So it's just the same thing when you when someone sends you money at this address, like, at this
1209
01:26:01.535 --> 01:26:12.050
address, but which has this, like it would be a different address, but let's say to the same public key but has this covenant, you will say, no. I that's a different coin. I don't accept it. And I just want yeah.
1210
01:26:12.555 --> 01:26:16.015
1211
01:26:16.315 --> 01:26:22.910
and that, you know, the risk of someone, you know, permanently encumbering coins. It appears to me that that's basically like
1212
01:26:23.610 --> 01:26:35.045
like that doesn't seem any worse than allowing people to burn coins, you know, know, if they want to. The the government could go into Coinbase tomorrow and force them to, like, send, you know, their reserves to, you know, op return outputs.
1213
01:26:35.505 --> 01:26:44.270
And so I you know, maybe this is a little too simplistic, but I I always thought that, like, you know, being worried that someone else might screw up and make their coins less useful,
1214
01:26:45.185 --> 01:26:48.485
doesn't doesn't seem to apply when we allow people to burn their coins outright.
1215
01:26:49.185 --> 01:26:54.405
1216
01:26:55.250 --> 01:26:57.590
which is that it's more like creating a dust out
1217
01:26:58.210 --> 01:27:03.909
where the output is there. It has to go into u tp excels app, but now it's useless because you you created this confidence.
1218
01:27:05.235 --> 01:27:05.735
And
1219
01:27:06.195 --> 01:27:13.094
I guess I could imagine, like, I, like, I guess you could use this sort of as a colored coin mechanism, right, where you create this this covenant
1220
01:27:13.780 --> 01:27:14.280
where
1221
01:27:14.740 --> 01:27:20.440
any coin that is encumbered by this covenant is a coin, is a rare pepper or something, whatever.
1222
01:27:21.125 --> 01:27:26.745
And then these become worthless, and now these UTXOs just sit there in the in the Bitcoin blockchain.
1223
01:27:27.125 --> 01:27:40.085
1224
01:27:41.905 --> 01:27:46.565
1225
01:27:47.260 --> 01:27:49.120
1226
01:27:51.180 --> 01:27:54.160
1227
01:27:55.105 --> 01:28:01.365
if you are going into government by the nature of Bitcoin when you receive something, it is your responsibility to check that it is according to
1228
01:28:01.745 --> 01:28:04.005
the policy that you accept. And if you accept,
1229
01:28:04.590 --> 01:28:10.289
like, these colored or covenant or RarePay quarter coins, it's on to you that you chose this thing. Right?
1230
01:28:10.909 --> 01:28:11.409
1231
01:28:11.975 --> 01:28:15.675
Yeah. I don't even think it's a strong argument, but I I'm just pointing out the difference.
1232
01:28:16.695 --> 01:28:21.900
1233
01:28:23.480 --> 01:28:24.860
aim towards. And,
1234
01:28:26.440 --> 01:28:27.340
yeah, and
1235
01:28:27.965 --> 01:28:28.465
maybe,
1236
01:28:29.805 --> 01:28:37.085
like, if there is more like, AG had a proposal where he like, check time lock update verify or, for example, TX.
1237
01:28:38.540 --> 01:28:40.560
These are more towards recursive covenants,
1238
01:28:41.180 --> 01:28:43.520
and Jeremy's solution is designed more towards
1239
01:28:44.945 --> 01:28:46.405
explicitly forbidding this,
1240
01:28:46.785 --> 01:28:47.285
which,
1241
01:28:47.825 --> 01:28:48.325
like,
1242
01:28:49.185 --> 01:28:55.099
Yeah. I think if this is a problem where, like, people just don't want covenants, like, we should discuss it right now and try to address this.
1243
01:28:55.400 --> 01:28:57.659
And maybe if we are going to have a covenant
1244
01:28:58.119 --> 01:29:00.380
upgrade, like, maybe this can beat us instead.
1245
01:29:01.080 --> 01:29:02.375
1246
01:29:03.095 --> 01:29:03.915
That's interesting.
1247
01:29:04.535 --> 01:29:11.595
So so one other thing, Sanket, that, I was wondering about. So, I mean, I don't know. Yeah. Like like, you know, I mentioned simplicity.
1248
01:29:12.210 --> 01:29:13.190
I know it was, like, I mean,
1249
01:29:14.130 --> 01:29:19.765
I would expect it, but I I was told by Adam back at least that it was gonna come out, at the end of last year.
1250
01:29:20.725 --> 01:29:21.225
And,
1251
01:29:21.765 --> 01:29:24.185
obviously, you know, I'm not surprised that didn't happen.
1252
01:29:24.725 --> 01:29:28.825
But, I'm sort of wondering about the progress. I'm wondering if you're still, like, actively
1253
01:29:29.210 --> 01:29:36.190
involved with Symplicity at the moment because I know you've kind of turned your attention towards these, these new opcos that are added into,
1254
01:29:36.730 --> 01:29:37.230
liquid.
1255
01:29:38.685 --> 01:29:46.060
And, yeah, I'm also just sort of curious that whether your experience with simplicity thus far has sort of colored your opinion on confidence in general.
1256
01:29:47.820 --> 01:29:48.960
1257
01:29:50.620 --> 01:29:53.040
first question is I I have been working on simplicity
1258
01:29:53.580 --> 01:29:56.045
again, like that. I was working on, like,
1259
01:29:57.324 --> 01:29:59.265
mini script stuff and,
1260
01:29:59.965 --> 01:30:04.945
like, mostly mini script stuff now. Side news, we have, PR to Bitcoin Core, which
1261
01:30:05.300 --> 01:30:09.940
by the roster and, like, have been helping to do that. And there was some progress on,
1262
01:30:10.740 --> 01:30:15.955
like, on Peter's internal report. So I was let's see with some part of that and some part of, like,
1263
01:30:16.655 --> 01:30:22.115
elements descriptor works. But, regardless, now I've been now I'm back on, like, simplicity track.
1264
01:30:22.495 --> 01:30:25.300
And what is the status? So,
1265
01:30:28.160 --> 01:30:34.284
so the language in itself is ready. You can program with it. There is no change to the spec. But what,
1266
01:30:35.225 --> 01:30:37.485
like, what is being worked on right now is
1267
01:30:38.105 --> 01:30:42.570
the reason it was delayed was primarily because of, like, adding support for Taproot introspection
1268
01:30:43.270 --> 01:30:44.330
for and this
1269
01:30:44.870 --> 01:30:50.465
is particularly simplicity is, like, is itself at this core simplicity, and then you have extensions
1270
01:30:51.005 --> 01:30:57.665
to for example, if for tomorrow we want to modify it for Bitcoin, we would have, like, a Bitcoin extension. Right now, we have an elements extension,
1271
01:30:58.210 --> 01:31:00.469
and there we want to have support for, like,
1272
01:31:00.849 --> 01:31:01.349
introspecting
1273
01:31:01.809 --> 01:31:04.929
different, like, range proofs, projection proofs, and,
1274
01:31:05.650 --> 01:31:11.324
so so the work is due along those, like, on those lines. And there is some, like,
1275
01:31:11.704 --> 01:31:12.925
denial of service,
1276
01:31:15.065 --> 01:31:18.040
calculations. Those need, like, those need to be finalized.
1277
01:31:18.580 --> 01:31:19.080
But,
1278
01:31:19.460 --> 01:31:20.440
if we want,
1279
01:31:20.740 --> 01:31:23.160
like, we can, like, deploy it,
1280
01:31:24.075 --> 01:31:25.135
well, it's just like
1281
01:31:25.515 --> 01:31:26.655
these things are
1282
01:31:27.275 --> 01:31:29.135
it's just like when do you call it,
1283
01:31:29.995 --> 01:31:34.460
like, this will be an ongoing work, and it would be, like, when do you call it, 1.0
1284
01:31:35.080 --> 01:31:45.735
whatever, like, 0.1 or whatever, like and then just take these other basic features which we want to the the major problem is would not be simplicity. Simplicity would be something like
1285
01:31:46.355 --> 01:31:54.920
a like a super back end. It's like assembly. It would be around 2 links so that people can actually use that. And that is what I will be trying to
1286
01:31:55.380 --> 01:31:57.960
work towards the next 2, 3 months at least to,
1287
01:31:59.125 --> 01:32:02.185
yeah. And I cannot, like, cannot assure a timeline with
1288
01:32:02.645 --> 01:32:11.480
1289
01:32:11.940 --> 01:32:12.440
1290
01:32:14.235 --> 01:32:16.335
Yeah. Yeah. 18 months is staying in the Bitcoin.
1291
01:32:18.155 --> 01:32:25.329
1292
01:32:25.869 --> 01:32:27.329
1293
01:32:28.190 --> 01:32:28.929
So but,
1294
01:32:29.389 --> 01:32:29.889
simplicity,
1295
01:32:32.114 --> 01:32:33.494
simplicity is like,
1296
01:32:33.795 --> 01:32:37.815
you know, raw assembly where you just have native instructions for,
1297
01:32:38.594 --> 01:32:39.094
like,
1298
01:32:40.210 --> 01:32:45.590
here's how you make a pair, here is how you have a number, here is how you pick first thing from it, here is how you
1299
01:32:45.890 --> 01:32:47.110
compose 2 things.
1300
01:32:47.445 --> 01:32:48.825
And with these
1301
01:32:49.205 --> 01:32:49.705
basic,
1302
01:32:50.405 --> 01:32:52.185
like, terms you build on
1303
01:32:53.285 --> 01:32:55.065
complicated things like Shardoo 56,
1304
01:32:55.949 --> 01:32:57.010
signature algorithms,
1305
01:32:57.389 --> 01:32:57.889
or,
1306
01:32:58.909 --> 01:33:01.949
transaction introspection, for example, and all these
1307
01:33:03.114 --> 01:33:04.974
So doing these operations
1308
01:33:05.275 --> 01:33:07.215
natively on, like, simplicity
1309
01:33:07.594 --> 01:33:09.614
bit machine, which is like an abstract,
1310
01:33:10.390 --> 01:33:14.170
like, an abstract machine on which simplicity program will execute. Kind of
1311
01:33:14.470 --> 01:33:16.170
like analogous to Bitcoin interpreter.
1312
01:33:17.190 --> 01:33:17.930
You would,
1313
01:33:19.605 --> 01:33:20.665
where you would, like, execute
1314
01:33:21.045 --> 01:33:21.545
these,
1315
01:33:23.845 --> 01:33:24.665
these programs.
1316
01:33:25.205 --> 01:33:25.705
And
1317
01:33:26.739 --> 01:33:27.719
completely executing,
1318
01:33:28.580 --> 01:33:29.080
this,
1319
01:33:31.139 --> 01:33:31.639
like,
1320
01:33:32.340 --> 01:33:36.804
program which computes shadow 56 or Schnorr signature verification is
1321
01:33:37.264 --> 01:33:38.724
expensive. Like, it takes
1322
01:33:39.344 --> 01:33:45.100
6 minutes to verify Schnorr signatures, which is, like, not acceptable at all, for example, like, in raw simplicity.
1323
01:33:46.120 --> 01:33:48.920
That's because you you do these operations at,
1324
01:33:49.320 --> 01:33:50.760
like, super, like,
1325
01:33:51.400 --> 01:33:52.665
bit level, but,
1326
01:33:54.665 --> 01:33:58.045
like, just boiling down to the core simplicity terms.
1327
01:33:58.505 --> 01:33:59.965
So what you can do here,
1328
01:34:01.079 --> 01:34:01.980
otherwise is,
1329
01:34:02.440 --> 01:34:04.139
like, have sort of
1330
01:34:04.840 --> 01:34:07.739
what we call as jets. The jets are intermediate
1331
01:34:08.045 --> 01:34:13.425
c code, which would be like, you know, SNAR, SECP, SNAR, signature, verify.
1332
01:34:14.045 --> 01:34:17.585
And those were called the c code, but those are written in a
1333
01:34:17.960 --> 01:34:20.540
subset of c language, which is, like,
1334
01:34:21.720 --> 01:34:23.180
which you can formally verify
1335
01:34:23.560 --> 01:34:28.845
and, which you can have, like, which you can have a spec for it, and you can see that those spec actually,
1336
01:34:30.105 --> 01:34:32.925
like, matches the code, which you wanted to execute.
1337
01:34:33.520 --> 01:34:36.260
And with that JET, whenever you see, like,
1338
01:34:36.960 --> 01:34:41.440
whenever you see something which tells you that this is you might want to execute,
1339
01:34:42.080 --> 01:34:44.205
see, like, a Merkle root
1340
01:34:44.585 --> 01:34:45.965
term, let's say, to
1341
01:34:46.824 --> 01:35:00.610
be abstract. Whenever you see some root some Merkle root term, instead of doing all this raw computation, what you do is you just substitute this in place of the c code, which you have now formally verified against the spec which you have. That the c code would produce identical
1342
01:35:01.525 --> 01:35:03.625
outputs for all possible inputs,
1343
01:35:04.725 --> 01:35:10.740
against the code which you have spec'd out in raw simplicity. Then you can just substitute that, and then you can use that. So that
1344
01:35:11.060 --> 01:35:13.160
brings us, like, the efficiency and
1345
01:35:14.580 --> 01:35:17.320
so that simplicity is actually usable in practice.
1346
01:35:17.995 --> 01:35:24.715
And so what Ruben was mentioning is when you have these jets, you want to define more and more sort of jets so that, things are
1347
01:35:25.490 --> 01:35:28.150
programmers can do more interesting things with,
1348
01:35:29.090 --> 01:35:33.510
like, with script. For example, we have jets which allow you to do all the elliptical operations,
1349
01:35:33.955 --> 01:35:37.574
like, efficiently. It allows you to do all the field operations,
1350
01:35:38.035 --> 01:35:39.415
all the arithmetic operations,
1351
01:35:39.875 --> 01:35:41.255
manipulations and amounts,
1352
01:35:42.200 --> 01:35:43.980
like confidential transaction stuff,
1353
01:35:44.600 --> 01:35:54.165
verification, like introspect and transaction outputs, and so on. So all these stuff all these things, if you try implement and draw simplicity, those would be expensive. And with Jet, you kind of,
1354
01:35:55.585 --> 01:35:56.725
cheat, but, like,
1355
01:35:57.800 --> 01:36:08.805
you verifiably cheat, I guess. Yeah. And then you and then you know that the outputs would be the same. So and these jets would always be an ongoing work, like, based on demand.
1356
01:36:09.345 --> 01:36:17.400
For example, if we have, like, I don't know, 10 more people, experienced people, or this we could, like, have, like, checks for SNARK verification.
1357
01:36:17.860 --> 01:36:19.960
And you could do SNARK verification and,
1358
01:36:20.820 --> 01:36:23.719
like, start verification and simplicity, for example.
1359
01:36:24.185 --> 01:36:29.325
1360
01:36:29.865 --> 01:36:42.765
like like in Bitcoin terms. Right? The new opcode that you're adding is something you could have already done, but you would have needed a very long script for it. And now it's it's an opcode. Now it's just one opcode. Yeah. And you can show that those 2 are equivalent.
1361
01:36:43.065 --> 01:36:44.045
That's Yeah.
1362
01:36:44.825 --> 01:36:45.325
So,
1363
01:36:46.400 --> 01:36:55.495
yeah, so is that is that what you were working on when you're saying you're working on tooling? Is that the jets that you're working on, or is that something else? Is something where, like, even if I give you simplicity,
1364
01:36:55.875 --> 01:36:56.375
1365
01:36:56.755 --> 01:37:02.295
so it's analogous to how miniscript is for Bitcoin script. Even if you have Bitcoin script today,
1366
01:37:02.595 --> 01:37:15.585
like, to do anything with it, you it's really hard to do. Like, with for example, if you look at what Shashak has done, like, where you have, like, min.sc, that is more. That is that is what tooling would be, like, which allows a
1367
01:37:16.045 --> 01:37:19.105
programmer who is experienced with, like, writing computer programs
1368
01:37:19.470 --> 01:37:25.630
to actually, like, write simplicity in terms of, like, languages, there are tools they're familiar with, like,
1369
01:37:26.270 --> 01:37:28.935
JavaScript like syntax, for example, which win.sc
1370
01:37:29.315 --> 01:37:34.935
has, where you can write mini script or, for example, mini script policy, where you don't really need to write,
1371
01:37:36.750 --> 01:37:43.890
like, raw Bitcoin script where you are going to definitely make some errors and trying to reason about those things. So as these tools allow,
1372
01:37:45.225 --> 01:37:48.365
like, other developers to actually use those things just,
1373
01:37:48.985 --> 01:37:49.725
it's like
1374
01:37:50.185 --> 01:37:50.925
with simplicity,
1375
01:37:51.545 --> 01:37:52.105
like, you can't
1376
01:37:53.110 --> 01:37:56.650
it would be bad because even if even when I am, like,
1377
01:37:57.110 --> 01:38:01.530
sort of experienced with it, it is hard for me to write simplicity programs natively.
1378
01:38:02.155 --> 01:38:06.014
Rasa does that. He has some Haskell code to, like, do something about
1379
01:38:06.475 --> 01:38:07.355
having people,
1380
01:38:07.835 --> 01:38:14.550
experience Haskell and, like, Ethereum proving language just to program write a smart contract in some place today is a big ask.
1381
01:38:14.930 --> 01:38:19.605
But what we need is more sort of general purpose command line tools which are still,
1382
01:38:21.185 --> 01:38:21.925
yeah, useful,
1383
01:38:22.225 --> 01:38:22.725
which,
1384
01:38:23.185 --> 01:38:25.525
which would, like, bridge the gap between,
1385
01:38:26.430 --> 01:38:28.610
like, normal, like, normal
1386
01:38:28.990 --> 01:38:30.290
programmers who have experience
1387
01:38:31.070 --> 01:38:33.010
and write them writing simplicity directly.
1388
01:38:33.695 --> 01:38:37.075
1389
01:38:38.095 --> 01:38:43.690
So so maybe to to kind of turn into a different leaf here, Mario, are are you still with
1390
01:38:44.389 --> 01:38:44.889
us?
1391
01:38:45.590 --> 01:38:46.570
Yeah. I'm here.
1392
01:38:47.270 --> 01:38:52.735
So maybe it would be, like, I I feel like we sort of, like, jumped into this, and we didn't really, like, explain
1393
01:38:53.114 --> 01:39:11.159
how we all know each other. And I thought maybe you could, like, sort of put a personal spin on it. Yeah. Yeah. I think that that would be appropriate too because, like like, we're we're all talking here, and we were introduced, but we're sort of like, what is the relationship? Like, why, like, why do I know Mario and and Sunken and Who the fuck are you guys?
1394
01:39:11.485 --> 01:39:19.665
1395
01:39:20.240 --> 01:39:28.180
I, I I I guess we're off air, and I mentioned this originally, but this is very much kind of a a sole Bitcoin meetup reunion going on here.
1396
01:39:29.284 --> 01:39:30.505
The the 4 of us,
1397
01:39:31.605 --> 01:39:36.025
that is, myself, Calvin, Sankep, and Reuben all lived in Seoul at overlapping
1398
01:39:36.405 --> 01:39:37.304
periods of time.
1399
01:39:37.640 --> 01:39:45.260
And, Rubin started the bit the Bitcoin meetup in Seoul back in when did you start it? 2013 or something like that? 24th.
1400
01:39:45.575 --> 01:39:47.835
February 2014. February 2014.
1401
01:39:48.615 --> 01:39:48.695
And,
1402
01:39:49.495 --> 01:39:50.875
and so Reuben had this
1403
01:39:52.750 --> 01:39:53.969
small but dedicated,
1404
01:39:55.070 --> 01:39:57.309
meetup going for a few years. And then,
1405
01:39:58.110 --> 01:40:04.295
I believe it was May 20 16 when I first rolled up and hooked right away. And Sanket, I believe, showed up a few months afterwards,
1406
01:40:04.835 --> 01:40:07.255
and then it would have been, it would have been
1407
01:40:07.590 --> 01:40:08.810
Calvin the year afterwards.
1408
01:40:10.310 --> 01:40:20.255
And, and so I'd be a lot of I'm sure we'll all agree that, like, Rubin has taught each of us a tremendous amount about Bitcoin and is very much like a lot of the the kind of efforts that,
1409
01:40:20.715 --> 01:40:26.250
that we've we've made in the space. So he he definitely gets partial credit at least for a lot of it.
1410
01:40:27.270 --> 01:40:39.435
But, yeah. And, like, so we ended up kind of leaving over the course of, I don't know, between 2018 and 2020. You know, I moved back to Canada in 2018 when I joined Blockstream, and then, Sanket, I believe, was about a year after that.
1411
01:40:40.615 --> 01:40:41.115
Ruben,
1412
01:40:41.680 --> 01:40:42.880
was forced to leave,
1413
01:40:43.280 --> 01:40:44.800
due to COVID, and,
1414
01:40:45.520 --> 01:40:51.745
Calvin is holding down the fort back home. But this is the first time the 4 of us have actually, chatted together in in about,
1415
01:40:52.445 --> 01:40:55.245
it would have been it's coming up on 4 years now. And,
1416
01:40:55.965 --> 01:41:03.220
and so, yeah, this is this is kind of exciting, exciting time. So, yeah, thanks so much, like, Vivek and Matt, for bringing us together again for this.
1417
01:41:03.920 --> 01:41:04.160
We,
1418
01:41:04.800 --> 01:41:08.500
we are gonna get to see each other in person again soon if one's going to advancing Bitcoin.
1419
01:41:09.265 --> 01:41:13.284
Ruben and, and Sanket, I believe we're speaking there, and,
1420
01:41:14.385 --> 01:41:16.645
I'll be attending. Calvin, I think you're going.
1421
01:41:17.025 --> 01:41:19.400
If you can the government will let you. Yeah?
1422
01:41:20.500 --> 01:41:24.599
1423
01:41:25.525 --> 01:41:32.425
1424
01:41:33.560 --> 01:41:36.120
1425
01:41:36.680 --> 01:41:39.260
this has been a great conversation. I'm glad we did it.
1426
01:41:39.775 --> 01:41:42.835
1427
01:41:43.615 --> 01:41:44.435
1428
01:41:45.215 --> 01:41:45.715
Yeah.
1429
01:41:46.415 --> 01:41:47.155
Yeah. Yeah.
1430
01:41:47.860 --> 01:41:55.239
1431
01:41:56.545 --> 01:41:57.765
1432
01:41:59.825 --> 01:42:03.500
1433
01:42:05.240 --> 01:42:15.554
But they were invited, and that's the important part. Yeah. Yeah. I I you guys didn't, like, introduce yourselves. Like, your title is either, like, I mean, Sanket, like, you should
1434
01:42:16.335 --> 01:42:17.315
definitely say
1435
01:42:17.855 --> 01:42:20.675
how you started at Blockstream and everything. It's a cool story.
1436
01:42:22.040 --> 01:42:23.020
1437
01:42:23.400 --> 01:42:25.260
So, yeah, I thought I started
1438
01:42:25.800 --> 01:42:29.195
Bitcoin first. That that's more, like, interesting. It was like,
1439
01:42:29.915 --> 01:42:31.534
yeah. I was not expecting,
1440
01:42:32.474 --> 01:42:33.614
I guess my first,
1441
01:42:34.395 --> 01:42:37.375
like, first two weeks in Korea, and I was, like,
1442
01:42:38.140 --> 01:42:45.360
was a foreigner there. And if you are in Korea and particularly, I was, like, slightly outskirts of Seoul, so there is, like,
1443
01:42:47.415 --> 01:42:51.275
yeah, there's no English. Like, it's hard to communicate,
1444
01:42:51.655 --> 01:42:54.155
with the locals, and this is the first thing.
1445
01:42:54.710 --> 01:42:56.810
Actually, the first, like, non
1446
01:42:57.430 --> 01:43:05.465
Korean thing, English thing, which I found out. I was like, oh, this looks cool. And I knew what Bitcoin was, but I never really knew, like, anything else. I just knew there is a thing.
1447
01:43:05.844 --> 01:43:10.060
And surprisingly, this turned out to be a technical meetup where, like,
1448
01:43:11.260 --> 01:43:18.560
like, where I could discuss technical things. And I was also interested in computer science cryptography, and Reuben had an excellent, like, understanding of Bitcoin.
1449
01:43:18.895 --> 01:43:22.035
So one thing led to another, and I was more regular there.
1450
01:43:22.895 --> 01:43:24.675
1451
01:43:25.055 --> 01:43:32.020
I remember I remember being surprised you traveled, like, 2 and a half hours to the meet ups each day. Yeah. I was yeah. I used to travel, like, 1 and a half hours.
1452
01:43:32.640 --> 01:43:36.740
1453
01:43:37.440 --> 01:43:38.945
Yeah. Every single minute.
1454
01:43:39.565 --> 01:43:44.225
Yeah. So, yeah, I tried to end there for, like, year and a half, like, while I was in Korea.
1455
01:43:44.925 --> 01:43:45.425
And,
1456
01:43:46.420 --> 01:43:48.199
yeah, afterwards, then I,
1457
01:43:48.739 --> 01:43:49.239
like,
1458
01:43:50.100 --> 01:43:51.699
I decided to do more sort of
1459
01:43:52.739 --> 01:43:55.785
like, I had interest in cryptography and Bitcoin, so I applied
1460
01:43:56.265 --> 01:43:59.485
to, like, universities for studying more of the stuff.
1461
01:43:59.865 --> 01:44:04.630
And I got, like, I got a good funding position at University of Illinois where I didn't have to,
1462
01:44:05.190 --> 01:44:08.730
like, basically pay anything. So I was like, cool. This looks like a good opportunity.
1463
01:44:09.350 --> 01:44:10.870
And I started working with,
1464
01:44:11.429 --> 01:44:12.170
my professor,
1465
01:44:12.550 --> 01:44:14.375
like, Andrew Miller, who is
1466
01:44:15.575 --> 01:44:16.715
kinda involved in
1467
01:44:17.015 --> 01:44:17.515
Zcash.
1468
01:44:18.375 --> 01:44:19.675
Was, at least, not anymore.
1469
01:44:20.615 --> 01:44:29.830
And, yeah, he he's also, like, he he knew Peter Adam and, like, he also works on core cryptography. So he knew Andrew, Peter Adam and he they,
1470
01:44:30.450 --> 01:44:32.310
he referred to me there, and
1471
01:44:32.665 --> 01:44:38.125
that's where I started working at internals and Blockstream with Peter and Andrew. Like, awesome.
1472
01:44:38.585 --> 01:44:41.720
Like, probably the best 3 months of my life where you get to, like,
1473
01:44:42.200 --> 01:44:51.100
work with Peter and discuss Bitcoin all in, like, my understanding of Bitcoin, like, grew exponentially in those 3 months. And that's where I was, like, hooked into all of these things. And
1474
01:44:52.275 --> 01:44:55.975
as soon as I graduated, I joined DocStream, and I've been working on,
1475
01:44:57.074 --> 01:44:58.614
mini script, Simplicity,
1476
01:44:58.915 --> 01:45:00.855
2 main projects right now.
1477
01:45:05.860 --> 01:45:06.360
1478
01:45:07.780 --> 01:45:10.955
1479
01:45:13.575 --> 01:45:14.055
Yeah.
1480
01:45:14.775 --> 01:45:16.315
My story is not that
1481
01:45:17.175 --> 01:45:18.475
different from socket's
1482
01:45:19.110 --> 01:45:25.770
in the sense that, hey, I found this meetup. I wasn't looking for a English speaking meetup. I was more or less looking for
1483
01:45:26.555 --> 01:45:29.115
something to get because I was interested in
1484
01:45:30.395 --> 01:45:30.895
Ethereum.
1485
01:45:33.380 --> 01:45:35.080
1486
01:45:36.820 --> 01:45:37.880
1487
01:45:38.980 --> 01:45:41.080
1488
01:45:41.735 --> 01:45:43.175
when I looked up, like, all these,
1489
01:45:44.375 --> 01:45:45.915
like, 20 2017,
1490
01:45:46.695 --> 01:45:59.010
you'll you'll look up Google. It's like, hey. I wanna know more about, like, this blockchain thing. And the first thing that comes up is, like, oh, yeah. Bitcoin's really old, and, you need to look at Ethereum. I was like, oh, okay. I'll look at it. And
1491
01:45:59.705 --> 01:46:04.445
but, I was sort of looking to get my fill on more technical stuff, and
1492
01:46:04.905 --> 01:46:08.765
I think it was one of the very few meet ups that had a monthly
1493
01:46:09.290 --> 01:46:18.350
thing going on, and that that said in the description that it's a technical thing. I was like, oh, yeah. This this seems perfect for me. And that's why I first went. And,
1494
01:46:19.215 --> 01:46:19.715
yeah,
1495
01:46:20.574 --> 01:46:21.074
stayed
1496
01:46:21.454 --> 01:46:26.195
for much, much longer than all the other Mario and,
1497
01:46:26.895 --> 01:46:27.395
sockets,
1498
01:46:27.900 --> 01:46:28.400
And,
1499
01:46:29.020 --> 01:46:31.040
yeah, ended up doing a lot of,
1500
01:46:32.460 --> 01:46:34.880
co organizing of the Solbitcore meetup.
1501
01:46:35.340 --> 01:46:35.840
And,
1502
01:46:36.594 --> 01:46:41.315
what I'm doing now is I'm just on a on a grads on BitMax to work on NutriX. So
1503
01:46:42.034 --> 01:46:44.135
and that was started because
1504
01:46:45.620 --> 01:46:46.920
Taj in 2019
1505
01:46:47.460 --> 01:46:54.200
was coming to what works was visiting Korea for a conference, and we were doing, like, a sole bitcoin
1506
01:46:55.205 --> 01:46:56.425
this conference people.
1507
01:46:57.125 --> 01:46:59.605
And I remember, we had Taj and then we had,
1508
01:47:00.645 --> 01:47:01.625
we had the
1509
01:47:03.020 --> 01:47:03.520
the
1510
01:47:03.900 --> 01:47:06.720
we we had the Mimble, Wimble developer. I forget his name.
1511
01:47:07.580 --> 01:47:09.120
1512
01:47:10.105 --> 01:47:17.565
1513
01:47:17.870 --> 01:47:22.770
1514
01:47:23.270 --> 01:47:23.770
1515
01:47:24.270 --> 01:47:27.409
1516
01:47:30.615 --> 01:47:32.075
1517
01:47:32.855 --> 01:47:33.355
yep.
1518
01:47:33.815 --> 01:47:41.800
Taz explained you, Shrek. So and I felt really I felt sort of bad because he was like, oh, yeah. And, like, I'm just working on this alone. If anyone wants to actually
1519
01:47:42.260 --> 01:47:44.120
contribute, it'd be great. And then,
1520
01:47:44.755 --> 01:47:49.335
I was like, okay. Well, I'll take a look at it. And I I started submitting PRs.
1521
01:47:50.275 --> 01:47:50.775
He
1522
01:47:51.450 --> 01:47:54.910
took he he he kept he kept taking them. I was like,
1523
01:47:55.290 --> 01:47:55.790
really?
1524
01:47:56.170 --> 01:48:02.094
Like, my my code? You're taking my code? And, you know, it just kept going, and here I am now.
1525
01:48:04.875 --> 01:48:07.130
Yeah. That's my story. Mario is next.
1526
01:48:08.330 --> 01:48:08.969
1527
01:48:09.610 --> 01:48:13.290
Well, I'm about to reveal. I'm definitely the least technical of the bunch here. I,
1528
01:48:14.010 --> 01:48:25.155
yeah, I, did my best to learn cryptography and coding while I was at the meetup, but I'm I I much prefer kind of working on the communications end of things. I enjoy writing, interacting, and speaking with people a lot more.
1529
01:48:25.540 --> 01:48:30.920
And, I don't have a technical background. These guys do. So, I, but I did
1530
01:48:31.460 --> 01:48:33.239
manage to worm my way into Blockstream,
1531
01:48:33.885 --> 01:48:45.300
in a customer support job. So I was there for about 3 years. So I did customer support, and I I ended up doing a lot of, a lot of, kind kind of just odds and ends around the marketing team. I was working under, Samson Moe for most of that time.
1532
01:48:45.679 --> 01:48:46.159
And,
1533
01:48:46.480 --> 01:48:48.099
about 1 year ago, I
1534
01:48:48.844 --> 01:48:50.304
moved over to, Leddon,
1535
01:48:51.165 --> 01:48:56.545
Leddon dot io, where I'm currently working as a director of community. So I work on a lot of growth stuff and
1536
01:48:57.030 --> 01:49:08.975
and, kind of, organic marketing type things and comms, and it's fun. I get to be, like, the, kind of internal Bitcoin consultant to the company, which is a lot of fun, And, do things like, planning for the upcoming Miami conference.
1537
01:49:09.435 --> 01:49:11.535
And, yeah. So that's what I'm doing these days.
1538
01:49:11.915 --> 01:49:13.135
1539
01:49:14.650 --> 01:49:30.864
1540
01:49:31.280 --> 01:49:38.485
I guess I just sort of enjoy teaching others. So that sort of, like, coincided and, it, you know, became this really nice
1541
01:49:38.965 --> 01:49:41.304
group of, now close friends.
1542
01:49:41.925 --> 01:49:48.264
And, yeah, since then, I've sort of, you know, just by learning more and getting better and better,
1543
01:49:48.860 --> 01:49:57.045
Now I'm working on sort of these layer 2 side chaining protocols. I'm sort of, I've become the side chain guy. I have 3 sidechains,
1544
01:49:57.664 --> 01:50:00.324
soft chains, state chains, space chains,
1545
01:50:01.184 --> 01:50:05.060
a lot of them. If you wanna know more about that, you can check out tiny.cc/sompson
1546
01:50:06.960 --> 01:50:26.620
that has links to a lot of my work. Don't forget shroom chains. It's an important one. Shroom chains. Yeah. That's that's the one I work on with Mario for when we were They intentionally all start with us, or is it just a coincidence? No. That's it. It's it's a bit of both. Yeah. It's Ruben and those will get there we'll get very upset with him if the next one doesn't start with s's. Len Somsen chain.
1547
01:50:27.239 --> 01:50:38.905
Oh. Yeah. Exactly. Now, it's, it's it's grown into a thing. And, you know, as a joke, I'm also, I call myself a Bitcoin sorcerer, which is also an s. So there there you go. Big ass guy over here.
1548
01:50:40.010 --> 01:50:58.800
Yeah. And, also, you know, together with Mario, which, I think Mario already mentioned earlier, but, we do the, Unhashed podcast. So that's maybe something also people might wanna check out where it's, Mario, me, and, Colin and Brian. And, I don't know if you guys listen, but it's it's a it's a fun show. It's a great show. I was telling you earlier that the
1549
01:50:59.200 --> 01:50:59.760
1550
01:51:01.040 --> 01:51:03.060
theme song always gets stuck in my head.
1551
01:51:03.474 --> 01:51:10.594
1552
01:51:11.440 --> 01:51:14.980
1553
01:51:15.599 --> 01:51:17.920
1554
01:51:18.615 --> 01:51:39.335
who made that who made a song for us, and it cost us $40, and it's hilarious. Yeah. I was gonna dox the cost, but since you did, I didn't realize that. I it was it's like a Fiverr theme song then. I thought it was, like, a cousin or something. I think he said he he found it. He found some dude, I think, that's trying to set a record of being the person who has written the most songs ever.
1555
01:51:39.715 --> 01:51:42.935
And so I think as, like, down to a fucking t and,
1556
01:51:44.195 --> 01:51:57.595
and and we also sent it back and had him correct some lyrics because we didn't like the first version because it said, like, it said, like, you know, we trust but verify. We're like, no. No. No. It's gonna be don't trust but verify. Like, it all did some other lyrics. So the blind. That we,
1557
01:51:58.075 --> 01:52:00.735
no. I I was worth on that. I was mad impressed.
1558
01:52:01.275 --> 01:52:01.775
Yeah.
1559
01:52:02.315 --> 01:52:03.215
But now we're
1560
01:52:03.660 --> 01:52:26.760
Ruben and I recorded an episode earlier today, and, actually, it's good. When it's, when the old brothers are missing, Ruben and I go a bit deeper on technical stuff, and it was a lot of fun. We chatted about some BitMixed Research's latest things that that should drop, tomorrow, I think. Awesome. And the TX hash stuff that we discussed today also comes up Right. That's right. At the very least, listen to the first minute so you can hear the theme song, and then you can turn it off. Yeah. You gotta listen to the theme song, Trix.
1561
01:52:27.460 --> 01:52:28.920
1562
01:52:29.445 --> 01:52:31.945
He's been on the show many times, and he'll be on,
1563
01:52:33.205 --> 01:52:40.320
many times in the future. I hope all of these people I've changed. I'm not a sales bro anymore. I'm a finance bro. I'll tell you, I've never done introductions
1564
01:52:40.860 --> 01:52:43.040
at 2 hours in at the end of the show.
1565
01:52:44.034 --> 01:52:46.695
Might make that might make that a trend in the future.
1566
01:52:47.475 --> 01:52:51.510
1567
01:52:52.070 --> 01:52:59.690
why should I care about these guys? And then you hear them talking to to say interesting things, and that's like, oh, I wonder who these guys are. Or it's like movie credits. You just get up and leave.
1568
01:53:00.675 --> 01:53:01.575
1569
01:53:02.115 --> 01:53:15.670
1570
01:53:16.930 --> 01:53:18.630
Before we wrap up, I know,
1571
01:53:19.715 --> 01:53:22.295
we're, like, 3 minutes past our self imposed deadline.
1572
01:53:24.275 --> 01:53:25.495
There's 2 things
1573
01:53:26.440 --> 01:53:28.620
I wanted to just bring up real quickly.
1574
01:53:29.000 --> 01:53:30.060
The first is,
1575
01:53:31.800 --> 01:53:36.125
consider using bisque. I just feel like it's a good moment for a Bisk chill.
1576
01:53:36.905 --> 01:53:42.445
You don't need to provide KYC information to a regulated entity. You can buy and sell Bitcoin p to p
1577
01:53:43.390 --> 01:53:44.530
without centralized,
1578
01:53:45.230 --> 01:53:46.770
services in between you.
1579
01:53:47.710 --> 01:53:52.130
And then the other thing is, is Cypherpunk pay on any of your guys' radar?
1580
01:53:54.105 --> 01:53:58.445
Never heard of it. So Cypherpunk Pay is a lightweight alternative,
1581
01:53:59.590 --> 01:54:03.050
to BTC pay server that I feel like doesn't get enough love.
1582
01:54:05.429 --> 01:54:05.989
So I'm
1583
01:54:06.525 --> 01:54:10.225
I've spoken to the freaks about it, but I guess I'm showing it to you guys now.
1584
01:54:11.405 --> 01:54:16.304
What's really cool about it is you don't have to use your own node. You don't have to run a full node.
1585
01:54:16.670 --> 01:54:17.489
It uses
1586
01:54:19.469 --> 01:54:23.730
it goes through Tor and hits random block explorers to check addresses.
1587
01:54:25.755 --> 01:54:26.494
1588
01:54:26.875 --> 01:54:35.440
1589
01:54:35.980 --> 01:54:36.480
But,
1590
01:54:38.060 --> 01:54:41.520
it's pretty fucking cool. I mean, it's super lightweight, and, obviously,
1591
01:54:42.135 --> 01:54:42.875
you have,
1592
01:54:43.335 --> 01:54:43.995
you know,
1593
01:54:44.455 --> 01:54:54.120
some validation trade offs there, verification trade offs. But on the privacy side, it seems pretty well thought out. Like, you don't have the privacy trade off of not using your own node.
1594
01:54:55.060 --> 01:55:01.784
1595
01:55:02.085 --> 01:55:06.344
1596
01:55:06.724 --> 01:55:08.344
It's worse than a b Casher.
1597
01:55:10.050 --> 01:55:12.949
Well, I mean, check that out. I think it's I think it's cypherpunkpay.org.
1598
01:55:14.369 --> 01:55:19.375
You guys should check it out. I'm curious on your opinion. You can give that to us at a later date.
1599
01:55:19.675 --> 01:55:27.960
1600
01:55:28.260 --> 01:55:38.105
your information. Like, I can't imagine that that's not the case. But But No. Maybe there's something there I'm missing. But The whole point is that it, like, hits it hits different block explorers for different
1601
01:55:38.565 --> 01:55:43.545
1602
01:55:43.925 --> 01:55:45.465
onion circuits for everyone.
1603
01:55:46.230 --> 01:55:48.170
I see. I see. Okay.
1604
01:55:49.429 --> 01:55:50.810
It's pretty fun. Cypherpunkpay.org.
1605
01:55:51.670 --> 01:55:52.889
Check it out for me.
1606
01:55:53.485 --> 01:55:56.225
I mean, I've checked it out, but I'm curious on your opinions.
1607
01:55:56.765 --> 01:55:59.745
So, I mean, you can get back to us on a later date for that.
1608
01:56:00.449 --> 01:56:06.550
Yeah. It seems reasonable at least. Yeah. It's a pretty cool concept. I like I think it's clever. I like these clever,
1609
01:56:09.215 --> 01:56:11.315
I don't know, options. Options are good for Bitcoiners.
1610
01:56:12.495 --> 01:56:14.915
So, anyway, guys, it's been 2 hours.
1611
01:56:15.295 --> 01:56:20.050
I appreciate your time. I don't wanna keep you too long. I like to end it with final thoughts,
1612
01:56:21.230 --> 01:56:24.210
so let's do that. Final thoughts. Sank it.
1613
01:56:25.905 --> 01:56:26.485
1614
01:56:26.785 --> 01:56:29.205
great to be here and discuss about,
1615
01:56:29.985 --> 01:56:30.725
you know,
1616
01:56:31.105 --> 01:56:33.045
validating notes and yes.
1617
01:56:33.740 --> 01:56:34.720
Basically, I discussed
1618
01:56:35.420 --> 01:56:43.685
with all my peers where we were in person 4 years ago at at, like, Tom and Tom's shop, but now it's online. But, yeah, it's it was really cool discussing
1619
01:56:44.385 --> 01:56:51.380
all those different things again. And it did tangent a bit to simplicity and CPV, but, yeah, I enjoyed it. Yep.
1620
01:56:51.920 --> 01:56:54.660
1621
01:56:56.000 --> 01:57:05.594
1622
01:57:07.300 --> 01:57:18.555
So I don't know how I did. Maybe I rambled a little bit. Hopefully, that but okay. I I was hoping to talk about the use cases of Utrechtel, which I which I unfortunately did not get into, but maybe next time.
1623
01:57:19.095 --> 01:57:21.515
1624
01:57:22.215 --> 01:57:27.440
1625
01:57:29.739 --> 01:57:36.955
1626
01:57:37.815 --> 01:57:38.715
after the conference.
1627
01:57:39.735 --> 01:57:46.810
And now now it is virginity's ruined. So It's our chance. We made it too long. We were we were planning for the perfect perfect date.
1628
01:57:47.910 --> 01:57:50.405
1629
01:57:52.405 --> 01:57:58.324
about it. You guys just just swept in, and now yeah. Now it's too late. It was all Vivek. Anyway, Mario, final thoughts. You call me a pimp?
1630
01:57:59.125 --> 01:57:59.625
1631
01:57:59.940 --> 01:58:00.440
it's
1632
01:58:00.900 --> 01:58:02.280
a great chat with you guys.
1633
01:58:03.140 --> 01:58:04.600
I I don't know what to show
1634
01:58:06.100 --> 01:58:09.000
what I've already showed, and, yeah. Hopefully,
1635
01:58:12.375 --> 01:58:12.875
1636
01:58:13.895 --> 01:58:15.114
Ruben, final thoughts.
1637
01:58:15.574 --> 01:58:30.535
1638
01:58:31.395 --> 01:58:42.270
So, you know, I'm glad I was able to, you know, get those questions in and get the answers that I was curious about, and I'm even more looking forward to seeing them on person than, giving everyone a big hug.
1639
01:58:42.965 --> 01:58:44.185
1640
01:58:45.045 --> 01:58:46.905
Vivek, OG Pimp, final thoughts.
1641
01:58:47.845 --> 01:58:56.080
1642
01:58:56.865 --> 01:59:02.165
1643
01:59:02.865 --> 01:59:08.000
1644
01:59:08.300 --> 01:59:12.960
1645
01:59:13.905 --> 01:59:15.285
most of you for your work.
1646
01:59:16.785 --> 01:59:19.505
This this has been a great conversation. I think it's been,
1647
01:59:20.490 --> 01:59:23.870
it's been fun. It's been informative. I hope the freaks enjoyed it.
1648
01:59:26.330 --> 01:59:27.790
Yeah. Thank you very much.
1649
01:59:30.224 --> 01:59:30.704
And,
1650
01:59:31.664 --> 01:59:34.005
to all the freaks and to the guests,
1651
01:59:34.545 --> 01:59:36.244
I usually do not intro
1652
01:59:36.850 --> 01:59:39.830
our music before we play the outro music.
1653
01:59:41.489 --> 01:59:42.710
This is a very special
1654
01:59:43.570 --> 01:59:46.535
this is a very special choice. We like to highlight,
1655
01:59:46.935 --> 01:59:48.795
Bitcoin rappers and artists,
1656
01:59:49.255 --> 01:59:50.795
when they put out new tracks.
1657
01:59:51.095 --> 01:59:52.875
This track is a little bit older.
1658
01:59:53.770 --> 01:59:55.150
She put it out in 2019,
1659
01:59:55.530 --> 01:59:58.590
but until yesterday, she was in custody of 96,000
1660
01:59:59.050 --> 02:00:00.270
Bitcoin in her
1661
02:00:00.810 --> 02:00:01.710
cloud storage.
1662
02:00:02.284 --> 02:00:05.585
So it feels like a great time to play it. Cheers.
1663
02:00:08.525 --> 02:00:11.025
1664
02:00:18.965 --> 02:00:26.490
What? Wrestle cons. Deliver such a better win. Come real far but don't know where I'm heading. Motherfucking crocodile of Wall Street.
1665
02:00:27.050 --> 02:00:37.114
Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck your message at the beep. Beep. Beep. Beep.
1666
02:00:40.614 --> 02:00:41.755
Spirit of a revolutionary
1667
02:00:42.055 --> 02:01:04.699
power of a dictator love to be contrary, but I'm fly like a gator. I've got pilot blood. I'm a real risk taker. Pirate riding the flood. Badass money maker. Grandmother crocodile. Weirder than an x file. Free fire. It's sliver. So sexy when I slither. Sparkle on my little finger. Hell of arousal ear to ear, poised to throw a zinger, playing on their worst feet. Wrestle cons, live for such better win.
1668
02:01:05.000 --> 02:01:09.765
Come real far but don't know where I'm heading. Motherfucking crocodile of Wall Street.
1669
02:01:10.225 --> 02:01:19.590
Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck y'all message at the beep. Beep. Beep.
1670
02:01:21.370 --> 02:01:21.870
Beep.
1671
02:01:23.650 --> 02:01:30.515
Russell comes to the name that hot grandma you really wanna bang. Always run the guilt game ever since I was 15.
1672
02:01:31.614 --> 02:01:32.675
I'm many things.
1673
02:01:32.975 --> 02:01:36.450
A rapper, an economist, a journalist, a writer, a CEO,
1674
02:01:36.910 --> 02:01:52.780
and a dirty, dirty, dirty, dirty ho. Better than most writers, creepier than most girls, weirder than most rappers, but I still rock pearls, brassle kong, the Versace better win. Come real far but don't know where I'm heading, motherfucking crocodile of wall street.
1675
02:01:53.340 --> 02:02:01.360
Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck y'all message at the beep.
1676
02:02:01.685 --> 02:02:05.105
1677
02:02:06.565 --> 02:02:29.000
1678
02:02:30.600 --> 02:02:38.835
Unless they're gay. Kids don't count. They're exempt. They're exempt. Russell Khan, the first time she better win. Come real far but don't know where I'm
1679
02:02:39.315 --> 02:02:41.495
Motherfucking crocodile of Wall Street.
1680
02:02:41.875 --> 02:02:51.900
Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck y'all message at the beep. Beep. Beep. Beep.
1681
02:02:55.239 --> 02:03:00.635
Beep. Everyone worries too much about what's proper, but not rouse. No shame. Bad, don't stopper.
1682
02:03:00.935 --> 02:03:02.795
Blindly following rules is for fools.
1683
02:03:03.335 --> 02:03:12.699
Instead, I work the edge cases with my tools. Awkward as fuck. Ab shit like a whirling dervish battered duck. This bitch is Turkish. Don't pressure luck.
1684
02:03:13.095 --> 02:03:14.875
ISIS can't handle them Kurdish.
1685
02:03:15.255 --> 02:03:20.795
Fuck your Jane Austen Romans. Rather be taken. Attack your army class. Prefer Vietnam
1686
02:03:21.175 --> 02:03:21.980
over France.
1687
02:03:22.540 --> 02:03:24.320
Doing my jerk off dance.
1688
02:03:25.180 --> 02:03:26.960
Looking like a gay male stripper,
1689
02:03:27.420 --> 02:03:30.320
but my synesthesia world is even trippier.
1690
02:03:52.685 --> 02:03:56.625
1691
02:03:58.010 --> 02:04:06.705
We live in the strangest fucking time, and I have no idea really how that happened or what the fuck is going on, but she made that 3 years after stealing
1692
02:04:07.165 --> 02:04:07.665
96,000
1693
02:04:08.205 --> 02:04:11.105
Bitcoin from bid for next, allegedly. So,
1694
02:04:12.445 --> 02:04:13.824
yeah, that happened. Anyway,
1695
02:04:14.489 --> 02:04:16.750
I'll see you on Thursday for a little recap.
1696
02:04:17.530 --> 02:04:19.469
I hope you found this conversation great.
1697
02:04:20.409 --> 02:04:27.395
I'll see you on Tuesday for another sale of dispatch. Also, I think we're gonna do I might we're gonna probably do a dispatch on Thursday morning,
1698
02:04:27.775 --> 02:04:30.355
me, Tony, and seed signer in person.
1699
02:04:31.900 --> 02:04:34.960
So just be on the lookout for that. We're gonna just change it up.
1700
02:04:35.660 --> 02:04:37.040
We're all in the same place,
1701
02:04:37.340 --> 02:04:41.361
so it'll just be a fucking fun rip. Anyway, I love you all. Stay on, we'll.