Feb. 9, 2022

CD54: pruned nodes, utreexo, and validation with @seardsalmon, @mario_gibney, @kcalvinalvinn, @SomsenRuben, and @sanket1729

CD54: pruned nodes, utreexo, and validation with @seardsalmon, @mario_gibney, @kcalvinalvinn, @SomsenRuben, and @sanket1729
Citadel Dispatch
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

WEBVTT

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
Already more than $5,000,000

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
Happy Bitcoin Tuesday, freaks. It's your boy, Odell, here for Citadel dispatch 54.

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
It's going good, Matt. Thanks for having me on.

42
00:03:57.890 --> 00:03:59.189
It's a pleasure as always.

43
00:04:01.090 --> 00:04:02.150
Thank you, Vivek.

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
Yeah. I'm doing great. Excited to be here. My first time at the show.

46
00:04:09.605 --> 00:04:12.345
Cheers. Thank you for being here. We got Calvin.

47
00:04:13.690 --> 00:04:16.350
Hello. Also very excited to be on the show.

48
00:04:17.130 --> 00:04:17.630
Gotcha.

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
Hey. How's it going? I'm, yeah, glad to be here. Thanks for having me on.

51
00:04:24.825 --> 00:04:27.805
And we have Ruben Thompson. How's it going, Ruben?

52
00:04:28.265 --> 00:04:31.890
Hey. I'm I'm very not glad to be here, but I'm here anyway.

53
00:04:32.510 --> 00:04:39.325
Ruben joined us last minute, and, we're very Just kidding. No. This is great. We're very appreciative he that he's here.

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
That's amazing.

62
00:05:11.125 --> 00:05:15.705
That's that's just how I always pictured them. Right? No one no one saw that one coming.

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
Yeah. Couple thoughts, I guess. I didn't know like, I've been off Twitter, so I didn't know the treasury department seized it. So I'm guessing Draper might win another auction again and have

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
Do they, did they deserve it back, at this point, though? I mean, I guess it was theirs, of course, but, like,

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
right, which there was a little bit of funny business happening there because,

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
and stuff. So, So, I mean, even if they don't get the money back, they could just sell the top of this pump and make a ton of money off of it. That's yeah. That's pretty dirty. I I was not aware. Like, I actually totally forgot that about that LEO token. And when you mentioned it's like, oh, yeah. They did that. And I I I had no clue what was going on with that.

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
And you could actually see, like, the, like, the token's volume and price rose before the announcement,

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
is that like, do we know for a fact that the government has those many Bitcoins and they found it on cloud storage? That just sounds, like,

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
Well somewhere which is under a seizure warrant that you can I mean, I think we can I think we can

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
the US says they have 90 if the the Department of Justice says they just seized 3 and a half $1,000,000,000 worth of Bitcoin, and then in 6 months, they're like, no. We were just fucking with you. Like, I feel like heads would roll. Well, I I think it has happened before. The governments have been like, you know, we've confiscated or, like, you know, we've taken possession of someone's wallet, but, like, you know, we we don't have the private keys, so we can't spend the funds. I've definitely seen headlines like that before. I would I would hope that the,

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
That'd be so sad if they thought they had

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
Well, the the case doc said, like, they

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
Sounds pretty clear then. I wonder, like, the have they

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
Bitcoin investigator celebrity on Twitter. I forget what he broke last time, but crypto herpes cat?

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
I

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
WhaleBot noticed a bid for next hack coins move moved and because everyone knows those addresses.

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
So transaction ID is out there somewhere. Well, I believe it was. Sounds legit. Sounds like they actually have the 96,000 Bitcoin. Yeah.

150
00:12:39.500 --> 00:12:40.400
In the US?

151
00:12:40.785 --> 00:12:43.605
Take that, El Salvador, USA, number 1.

152
00:12:46.065 --> 00:12:47.825
So US government should just,

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
Well, like, one x x freedom or something?

156
00:12:59.985 --> 00:13:02.324
That's perfect. Yeah. Something like that.

157
00:13:03.105 --> 00:13:07.365
The the irony of seized coins going to an address is it says Freedom on it. Right?

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
I agree with you. Like,

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
Yeah. Actually, Ruben and I recorded an episode, of on Ashdorer today where I tried to give Ruben the cliff notes on this.

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
that's

181
00:14:39.515 --> 00:14:46.654
so outside of okay. Like, I I don't even know where to begin with that. I, and yeah. I mean, like, it's it's kinda hard to predict now how

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
I think, like, Tash said, like, Bitcoin is for enemies.

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
Yeah. I mean, it just seems like such an obvious use case, and I feel like it's it is waking people up, at least people that,

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
Yeah. Hopefully, it's not being,

210
00:16:55.355 --> 00:16:56.975
saved in cloud storage encrypted.

211
00:16:57.435 --> 00:17:04.310
Right. And that's the funniest part is I know for I know for a fact they're going, like, through, like, crazy lengths to make sure it's secure,

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
I wanna

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
Sure. I I could I could give it a I could give it a try.

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
And that would be, like, useful, I guess, for, like, time sensitive things, like, when for example, like, a lightning transaction

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
Yeah. I don't know too much about that, but, Reuben, I don't know. Anyone else?

285
00:21:37.900 --> 00:21:41.065
Well, I guess, like, you know, for for

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
Gotcha.

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
Calvin, can you explain the, the bloom filters maybe? Yeah. I could go a little bit at bloom filters. Bloom filters are it's like a sort of a data structure that you learn in computer science.

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
maybe Yeah. It should not have any false positives if that's what you're

317
00:24:04.485 --> 00:24:04.985
Yeah.

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
It's it's a way of putting your database to find it if there is data, if some sort of data is there, but also without revealing what specific data you're trying to find out. Is that correct? So, like, that's what

333
00:25:00.179 --> 00:25:13.075
boom filters are used for in Bitcoin, but it's that's not what it's originally used for, or that's not that's not a popular use. Okay. So you're describing just Bloom Filters in general. Okay. Got it. So it's like, Bloom Filters literally just tell you,

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
Yeah. So so the, well, the thing what it it does is the the compact block filters, they they turn it around. Whereas with the, the original bloom filters, what you would do is you would set the filter

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
So

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
Yeah.

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
That's,

403
00:30:28.135 --> 00:30:28.875
one second.

404
00:30:32.040 --> 00:30:33.420
So, like, in a nutshell

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
Yeah. And and it's sort of worse in a sense because you are, like I said, you are well, yeah, it's a difference. It's hard to sort of sort of measure it, but but the thing that I I think, you should emphasize

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
Yeah. Okay.

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
like, are you with me, Ruben? Like, do you agree on this? Yeah. Yeah. No. Yeah. I I agree with you. And I I would say sort of like the, you know, the the goal of Bitcoin is sort of impossible, right, to be really not trusting anyone, not even developers, check all the code

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
the cool part is the cool part about Bitcoin is that you can go to crazy town if you want to. For most people,

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
Yeah.

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
just interject for one second. And if you have a fast enough Internet connection, just running a node just running an archival node, for the sake of running an archival node, it probably helps

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
can't find fast enough peers. So anyways, so so just putting that there. Sorry. Go ahead, Sanket. What what about the peers in the network itself? Like, if it's a bunch of raspberry pies that are giving ear blocks, is that

467
00:35:25.540 --> 00:35:26.040
desired?

468
00:35:29.380 --> 00:35:31.560
There are, like, okay. Let me so

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
Yeah.

497
00:37:41.775 --> 00:37:43.935
It is so running a full node,

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
Yeah. So, for example, for me, I,

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
yeah. And, yeah, that's how we should reason about these things rather. But then there's there's a privacy component too that we can't Yeah. That discount because I I feel like

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
Yeah. They know, like,

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
Awesome.

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
Depends on who you are.

521
00:39:56.205 --> 00:39:56.865
My gosh.

522
00:39:58.125 --> 00:40:02.305
Okay. Okay. Well, I I agree with your operational definitions for

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
Yeah. So,

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
Any Yeah. Anybody have been I thought it was a pretty good

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
Yeah. If you're into, like, computer

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
the UTXO

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
Yeah. I think that's fair to say.

609
00:44:37.155 --> 00:44:37.655
So

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
So dust goes in the UTXO set because it is still spendable.

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
the outputs are not allowed to be small. You you can you can spend a small output,

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
Yep. So, like, if you want to do it, you could send it directly to a miner, and they could might defer you because it's not against the consensus rule. Yeah. You could even, create a 0 satoshi output.

636
00:46:25.700 --> 00:46:29.000
So is it desirable though that, the UTXO

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
It's

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
Yeah. You're you're basically destroying your coins if you if you send coins to an opportune.

664
00:48:19.945 --> 00:48:22.285
So, I mean, just to reiterate, the

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
So just

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
Yes. If you're

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
Yes. If you're a miner, you definitely wanna use Bitcoin Core because that that I think with LiveVicore, you would literally be losing money.

690
00:50:19.415 --> 00:50:21.435
No. You should use not to mine.

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
I think that's a good analogy.

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
I think that was a pretty good explanation so far.

729
00:52:33.905 --> 00:52:34.405
Okay.

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
You so yeah. Yeah. In a nutshell,

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
out yet. It'll be very soon. Calvin, who is the we? You know, I know you mentioned you and Taj, but there's also 2 others. I know Ruben also has a project that uses it or something. Right? Like, you wanna introduce everyone?

769
00:55:01.030 --> 00:55:01.850
So, like,

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
utilize it.

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
Yeah. We should move on. Me and Sanket are liquid maximalist,

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
So there is one thing that I would recommend. Users of the network.

842
00:59:43.515 --> 00:59:44.015
Yeah.

843
00:59:46.155 --> 00:59:49.890
Well, I mean, I I like liquid too, you know. Like, it's a I I think,

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
well, they added CTV to it recently, didn't they? I

851
01:00:28.200 --> 01:00:30.220
Yeah. I think that that that

852
01:00:30.600 --> 01:00:40.924
yeah. Yeah. That was AJ who actually hacked her script in order to do that. That. Sanket, maybe you know more about that. And and also, Sanket, what I really want you to talk about is simplicity actually. So

853
01:00:41.440 --> 01:00:46.340
I'm putting it out to him, you know, because he's the most talented. Wait, Vivid. Did I make that up?

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
Matt, we we we had opcat and opchecksig

873
01:01:58.115 --> 01:02:00.115
from stack and Yeah. That was their

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
like, transaction

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
talking about TX hash? No. That is a different thing. That is the

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
yeah.

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
Is that is that's okay. I have opinions on these things, but, okay. So let me

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
yeah, I'll about to get spicy, Matt. It's about to get spicy.

920
01:04:34.015 --> 01:04:34.994
So so maybe

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
So,

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
And even the But, changing the amount doesn't require,

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
I think if CTV with everything in CTV, you have to know in future for all all your transaction templates. Like, you have to know all the possible risk. Yeah. So you can, like, you can you can say, like, it can be 0.5 or 0.25 or it can be 0.1. Like, you can do all these, like, here, but you have to enumerate all of your possible

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
makes it even No. Yeah. But but that that was what I was asking. Like, so what I was asking is,

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
Yeah. That's still not an example. But that's, like,

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
Yeah. So okay. But but that's interesting. So is it because of the recursive confidence and the possibility that that might get added in the future or that's at least where you want to head?

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
Yeah. I that that that may so for ideally, like, this may be a bit tougher

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
Yeah. Yeah. But but okay. But but you're you're sort okay. So you actually sort of have apathy for the entire,

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
Yeah. So yep. And so I'm also debating this personally. Like, should I be advocating for CTV if I don't have anything against it? And Yeah. Like, that that that's something, like,

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
But I guess what my original,

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
Yeah. It is,

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
a good test bed for it? Like, should we have

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
That's kinda like what already is. Like, take that for instance. Right? There is a but but you want real money. I guess that's the point. Like, we have extended that. Okay. But, yeah, it's,

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
And it's not divergent. It'd be, like, early if anything. Right? Because he uses the z k p,

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
Yeah. That's not related to cryptography. That's, like, opcode is different.

1104
01:18:07.925 --> 01:18:13.145
Yeah. That's how they elements and liquid in general, like, I guess, diverging from Bitcoin?

1105
01:18:13.650 --> 01:18:16.710
Yeah. Yeah. They do that. Like, so there is, like, a bid.

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
So I'm on the other side of the spectrum,

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
reading the mailing list and some RC conversations, I have,

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
the gist of it. Well, so I guess the big fear was that, like, you'd get tricked into actually accepting it.

1201
01:25:14.050 --> 01:25:14.950
Getting those UTXOs?

1202
01:25:16.210 --> 01:25:19.650
You can access coins to any address which you don't like. I mean, it's

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
I always thought there's even simpler argument against the kind of caution there

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
Well, I guess there is one difference, which I don't think is a strong argument, but it is a difference nonetheless,

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
Sure. I guess that's that's the worst case scenario I can think of. Yeah. That's the But then the risk profile is the same. Right? The government the US government going to Coinbase tomorrow and force them to convert all of their, like, cold squirted to dust if they wanted to. Like, we can't stop that. That that risk already exists.

1224
01:27:41.905 --> 01:27:46.565
Yeah. But that would be that would be sort of an attack. Right? What I'm describing could happen naturally.

1225
01:27:47.260 --> 01:27:49.120
Okay. Yeah. Alright. Yeah. Fair.

1226
01:27:51.180 --> 01:27:54.160
Yeah. I think that's, like, completely allowed too. Like, that's,

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
Yeah.

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
Yeah. So, basically, I think that this is what we should, like,

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
And Yeah. Yeah.

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
Yes. So,

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
No. No. I I like I said, like, I always kept going the first time already. So I I I and I don't wanna put you on a spot to to make up a number here. 2 weeks.

1289
01:32:11.940 --> 01:32:12.440
Yeah.

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
So is the tooling also related to, like like, creating jets and stuff? And maybe you wanna kind of explain the concept of jets at a high level.

1292
01:32:25.869 --> 01:32:27.329
Okay. So yeah.

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
And Yeah. So it it's it's sort of like adding a new opcode, but the new opcode that you're adding

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
like

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
Oh, yeah. Well, yeah, that that satisfies my, my curiosity.

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
Yeah. That's a that's a great question. I mean, to be honest, this is, you yeah. You guys will understand why we we thought it was important for Ruben to join here.

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
No. The, yeah. Good government will let me. I will be. Sweet.

1423
01:41:25.525 --> 01:41:32.425
But yeah. So this is, this is part of the reason why we kind of, I I'm I'm guessing this is more guests that you guys usually have on at the time here. Yeah?

1424
01:41:33.560 --> 01:41:36.120
Yeah. It's definitely on our higher end, but,

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
We're all graduates of the Rubin Bitcoin Academy?

1427
01:41:43.615 --> 01:41:44.435
Yeah. Absolutely.

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
I think we've had this much before. We had, like, I think when you had the nodes on The battle of the nodes. Yeah. There's a lot of guys.

1431
01:41:56.545 --> 01:41:57.765
Surprisingly civil.

1432
01:41:59.825 --> 01:42:03.500
Well, it's it's because one of them didn't show up. Yeah. Exactly.

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
Oh, sure.

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
And You you fit in pretty well.

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
Yeah. But it it was definitely, like, it was definitely worth everything.

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
Yeah.

1478
01:45:07.780 --> 01:45:10.955
Yeah. Calvin, go. Alright. Oh oh, okay. I'm going.

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
It's my first memory, Calvin.

1486
01:45:36.820 --> 01:45:37.880
That's what I remember.

1487
01:45:38.980 --> 01:45:41.080
And my excuse for that is because,

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
Hashmap. That was the nickname.

1512
01:47:10.105 --> 01:47:17.565
Hashmap. There we go. Yeah. And he talked about, like, the direction of, like, mimble, mimble or or or what's the coin? A grin.

1513
01:47:17.870 --> 01:47:22.770
And, yeah, Taj was talking about Nobody even remembers what that is anymore.

1514
01:47:23.270 --> 01:47:23.770
Oh.

1515
01:47:24.270 --> 01:47:27.409
Did you remember Chase Mayer being canceled for a different coin?

1516
01:47:30.615 --> 01:47:32.075
So yeah. Anyhow,

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
Oh, yeah.

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
Let's fucking go.

1539
01:49:14.650 --> 01:49:30.864
Yeah. So, for me, it's, well, I mean, you've already heard a little bit about, like, how I ran the meetup. That was also my way of learning about Bitcoin when I first started the meetup. I I barely knew anything. I just wanted to meet other people. But then as things went on, you know, I got super interested in the technology, and

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
Yeah. That,

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
Oh, yeah. Yeah. We, definitely have the theme, so everybody I think that's the most common common version of feedback we get. So the theme song, you you said you

1552
01:51:11.440 --> 01:51:14.980
like, that wasn't a friend who made that? No. You paid? Colin

1553
01:51:15.599 --> 01:51:17.920
Colin Colin, one of our cohosts, found a guy,

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
Vivek doesn't need an introduction.

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
I think it's sort of good actually because that's where you start caring about the guest. Before, you're like,

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
Yeah. Yeah.

1569
01:53:02.115 --> 01:53:15.670
If he knows the credits, that that's fine too. No. It's like movie credits. Everyone always stays to watch to see if there's a big, teaser at the end. I always have a teaser at the end. They always stay. The ride or die freaks stay with me even if the music videos are horrible sometimes.

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
I see.

1588
01:54:26.875 --> 01:54:35.440
Can you run your own full node? You can use your own node if you want to, but you don't have to. And they just added lightning support, which is why I bring it up.

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
This is the alpha you stay for. Like, Matt, you've been dropping all these new lightweight things, like, I didn't know about Fulcrum.

1595
01:55:02.085 --> 01:55:06.344
That was, pretty cool, and I thought it's fun to know. By BSV. Yeah.

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
So one thing I'm wondering about is, like, the privacy. Right? Because, like okay. So if you are checking block explorers, then cert like, you must be leaking your

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
addresses. So it's using a little bit of information for each of them. And it's using different,

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
No. It's

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
Awesome. Thank you. Calvin, final thoughts.

1621
01:56:56.000 --> 01:57:05.594
Yeah. It was also great talking with these guys. It's my first time on, like, any show, any any big boys show. I love it. I took your virginity. I also took Vivint's virginity.

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
We'll, we'll give you a chance on the MS podcast.

1624
01:57:22.215 --> 01:57:27.440
Oh, yeah. We're still gonna have you on as a guest. Yeah. But you can never take his virginity. That already happened.

1625
01:57:29.739 --> 01:57:36.955
I We we actually were thinking about it. We we just discussed it on the on the show saying that, well, we should we should talk talk to Kelvin

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
Well, this I thought this was beautiful, so I'm very happy

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
I

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
Awesome.

1636
01:58:13.895 --> 01:58:15.114
Ruben, final thoughts.

1637
01:58:15.574 --> 01:58:30.535
Yeah. Same here. It was great to talk with everyone, and I was like, yeah. I was just yeah. I sort of, like, started asking some questions because, like, I knew these guys had interesting interesting things to say. Right? Kelvin with Utrecht, so super interesting. Latsanka is working also super interesting.

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
Awesome. Thank you, Ruben.

1640
01:58:45.045 --> 01:58:46.905
Vivek, OG Pimp, final thoughts.

1641
01:58:47.845 --> 01:58:56.080
You know, just wheeling and dealing. I'm hoping that, me and you get invited to Unhash sometime, and that's about it. Yeah. I think they owe I think they owe us now.

1642
01:58:56.865 --> 01:59:02.165
Well, if you if you sing the opening theme and we could play for the episode, we we might consider it.

1643
01:59:02.865 --> 01:59:08.000
I Vivek volunteers for that role. I'll get someone on Fiverr here. We could pull it off.

1644
01:59:08.300 --> 01:59:12.960
Anyway, guys Hey, Kyle. Really I appreciate all of you for your time. I appreciate,

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
Never forget weirdest is most original.

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
Beep. Beep. Beep. Beep. Beep. Beep. Beep.

1677
02:02:06.565 --> 02:02:29.000
The Versace you better win. Got the bling that win with the Berber and Mike. I'll win every fight. My swag ain't just lit, so we really packed a hit. Bobby fashion's so legit. Pussy bitch is saying stuff about to pop, ain't gonna quit. They say rise a filthy bitch, but they're jealous of my tits, my eyes, my nose muffling. My clothes, these rings, my hoes. Everyone knows I don't fuck with no bros.

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
Cheers, freaks. Yes. That's the alleged bid for next attacker.

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.