1
00:00:16,490 --> 00:00:22,690
Live from this is Bitcoin
explained Hey sure Hello how
2
00:00:22,690 --> 00:00:24,810
have you been?
Not bad, it's only been three
3
00:00:24,810 --> 00:00:28,810
months.
Was our last episode also a
4
00:00:28,810 --> 00:00:30,450
Bitcoin Core release episode
perhaps?
5
00:00:30,450 --> 00:00:32,369
No, no, no.
We talked about silent payments.
6
00:00:32,490 --> 00:00:34,960
Oh, that's right.
Yes, that is right.
7
00:00:35,840 --> 00:00:38,720
Well, this time we're going to
discuss the new Bitcoin Core
8
00:00:38,720 --> 00:00:42,480
release, because there is one.
Version 28.0.
9
00:00:43,160 --> 00:00:47,200
First, here's a message from our
sponsor, Coinkite.
10
00:00:47,600 --> 00:00:50,280
Sure, she put a bunch of
presents here for me to look at.
11
00:00:50,480 --> 00:00:54,160
That's right.
This this looks like a battery.
12
00:00:54,440 --> 00:00:58,360
Yeah, this is a 9 Volt battery.
You know the the this square
13
00:00:58,360 --> 00:01:00,920
shape battery for people who
don't know what they look like
14
00:01:01,040 --> 00:01:02,120
a.
Duracell Battery.
15
00:01:02,120 --> 00:01:05,600
And then there's a little device
next to it and there's I believe
16
00:01:05,600 --> 00:01:08,760
called cold power, which you can
connect to the 9 Volt battery
17
00:01:08,760 --> 00:01:11,120
and then it can power any USB
device.
18
00:01:11,480 --> 00:01:14,920
But you know, probably the USB
device you want to power with it
19
00:01:15,920 --> 00:01:19,680
is the cold card.
I Yeah.
20
00:01:19,680 --> 00:01:23,480
So wait, so this is a coincide
products that I'm holding right
21
00:01:23,480 --> 00:01:24,240
now.
Yes.
22
00:01:25,040 --> 00:01:26,920
And oh, I see.
I can wait.
23
00:01:26,920 --> 00:01:30,480
I have to maybe So what?
OK, yes.
24
00:01:31,520 --> 00:01:34,080
It's very unfortunate in moments
like these that we don't have
25
00:01:34,080 --> 00:01:37,600
any video with our podcast.
Well, this this is.
26
00:01:38,000 --> 00:01:41,480
OK, so I'm now attaching this
little like USB advice.
27
00:01:41,560 --> 00:01:44,320
You should do it closer to the
mic and then we can play the the
28
00:01:44,320 --> 00:01:49,440
game that they do in queue music
called that hello the sound and
29
00:01:49,440 --> 00:01:50,760
then you have to guess what
sound it is.
30
00:01:50,760 --> 00:01:54,280
This is a very Dutch in joke.
OK, so now I connected the
31
00:01:54,280 --> 00:01:56,600
battery to the thingy and now
now it's charging.
32
00:01:56,880 --> 00:01:59,120
No, no, not now.
That's just AUSB port.
33
00:01:59,120 --> 00:02:01,880
Now you can connect the USB
cable to that and then the cold
34
00:02:01,880 --> 00:02:03,920
card to it.
And then you have your hardware
35
00:02:03,920 --> 00:02:06,640
wallet getting power, not so
much charging because it, I
36
00:02:06,840 --> 00:02:10,520
don't think it has a battery,
but just it has power.
37
00:02:10,520 --> 00:02:13,480
So you can turn it on and you
can move your files from the
38
00:02:13,480 --> 00:02:17,720
hardware wallet to the computer
without having this device
39
00:02:17,720 --> 00:02:21,080
connected to AUSB port of the
computer.
40
00:02:22,880 --> 00:02:27,560
I have absolutely no idea what's
going on here, but it's I also
41
00:02:27,560 --> 00:02:30,400
don't want to linger on it for
10 minutes and they're not
42
00:02:30,400 --> 00:02:33,560
paying us enough for that.
It's a very cool device though.
43
00:02:33,560 --> 00:02:37,480
It's called the cold.
But I think they primarily want
44
00:02:37,480 --> 00:02:40,320
to sell more, more cold cards,
their hardware wallets.
45
00:02:40,320 --> 00:02:43,000
OK, cold cards wait, but I got
something else as well.
46
00:02:43,000 --> 00:02:46,040
There's here is the top signer
of the what?
47
00:02:46,040 --> 00:02:49,600
What is this source?
You can tap it and then it signs
48
00:02:49,600 --> 00:02:51,600
things.
I think it's just kind of like
49
00:02:51,640 --> 00:02:53,320
it.
Just has your private key on it.
50
00:02:53,360 --> 00:02:56,160
Yeah, Would that wouldn't be
your like savings private key,
51
00:02:56,160 --> 00:02:58,400
Obviously we could be just one
of many keys.
52
00:02:59,880 --> 00:03:01,840
And this is another coin guide
product.
53
00:03:01,840 --> 00:03:03,840
Coin guides making all sorts of
stuff nowadays.
54
00:03:03,880 --> 00:03:05,360
Yours.
I remember when they were just
55
00:03:05,360 --> 00:03:07,800
making hardware wallets.
The open times.
56
00:03:09,040 --> 00:03:13,680
Yeah, I mean, they've been at it
for a long time, actually.
57
00:03:13,720 --> 00:03:18,600
Like Rodolfo was at the 2014
conference in Amsterdam.
58
00:03:19,040 --> 00:03:21,200
Oh, that's 10 years ago.
Yeah, I don't remember what he
59
00:03:21,200 --> 00:03:23,560
was like.
He was already like selling
60
00:03:23,560 --> 00:03:28,000
stuff and building thingies and,
you know, gadgets and who knows
61
00:03:28,000 --> 00:03:29,480
what.
I don't think it was hard role.
62
00:03:29,480 --> 00:03:31,160
Maybe it was actually back then,
I don't know.
63
00:03:31,360 --> 00:03:36,400
And then here we got the
calculator looking hardware
64
00:03:36,400 --> 00:03:38,640
wallet as well.
The queue, the queue.
65
00:03:39,040 --> 00:03:42,720
OK, we've we've this is way more
than they paid for.
66
00:03:42,720 --> 00:03:44,720
Let's get to actual the actual
episode here.
67
00:03:44,720 --> 00:03:46,280
Shows.
Well, there's another fun news
68
00:03:46,520 --> 00:03:51,320
which is that how do I say this?
Iron stack sets, Iron stack
69
00:03:51,320 --> 00:03:58,040
sets, Iron stack sets because we
have connected you in fountain
70
00:03:59,240 --> 00:04:03,280
so that the SAT's that are
streamed now also go to you so
71
00:04:03,280 --> 00:04:04,680
you didn't have to set up your
own node.
72
00:04:04,760 --> 00:04:07,920
I I think we need to make more
episodes for that to actually
73
00:04:08,400 --> 00:04:10,920
return some dividends.
I haven't seen anything come in
74
00:04:10,920 --> 00:04:12,680
I think.
No, because we haven't done an.
75
00:04:12,680 --> 00:04:13,960
Episode.
OK, there we go.
76
00:04:13,960 --> 00:04:16,640
And they're not a sponsor.
Apparently people aren't paying
77
00:04:16,640 --> 00:04:18,560
us for doing nothing.
The podcasting 2 point O.
78
00:04:18,560 --> 00:04:20,680
So let's get to the actual
episode there shows.
79
00:04:20,800 --> 00:04:26,120
Yes, Sir.
Bitcoin Core 28, we've mentioned
80
00:04:26,120 --> 00:04:29,640
in basically every other Bitcoin
Core, you know, new release
81
00:04:29,640 --> 00:04:32,200
episode that there is a new
Bitcoin Core release every half
82
00:04:32,200 --> 00:04:34,480
year.
People know that by now, which
83
00:04:34,480 --> 00:04:38,440
means that whatever is done at a
certain time goes in.
84
00:04:38,440 --> 00:04:40,600
If it's not done yet, then it
doesn't go in.
85
00:04:40,600 --> 00:04:42,560
You know, this is kind of
different with some other
86
00:04:42,560 --> 00:04:45,160
software products.
You will release a new version
87
00:04:45,160 --> 00:04:46,800
when some sort of new future is
done.
88
00:04:46,800 --> 00:04:49,640
Bitco Core Nope, every half year
there's just whatever is done is
89
00:04:49,640 --> 00:04:51,560
in there.
So we're going to discuss what's
90
00:04:51,560 --> 00:04:55,960
in there this time There is,
there are some at least slightly
91
00:04:55,960 --> 00:04:58,640
interesting things in there,
yes, I would say.
92
00:04:59,440 --> 00:05:01,000
I'd say it's quite a lot of
interesting things.
93
00:05:01,000 --> 00:05:02,360
Yeah, it's like an actual
upgrade.
94
00:05:02,360 --> 00:05:05,480
Sometimes it's, you know, it
seems sort of like a maintenance
95
00:05:05,480 --> 00:05:06,920
upgrade.
Now, there's some actual new
96
00:05:06,920 --> 00:05:10,800
stuff here.
We'll start off with what is, at
97
00:05:10,800 --> 00:05:14,000
least in my personal opinion,
the least interesting 1.
98
00:05:14,280 --> 00:05:15,920
I don't know why we're even
discussing this.
99
00:05:15,920 --> 00:05:17,080
I think it's one of my
favourites.
100
00:05:17,080 --> 00:05:19,120
The test net one.
Test NET 4.
101
00:05:19,440 --> 00:05:21,680
That's right.
Why are we talking about test
102
00:05:21,680 --> 00:05:23,680
net?
Short Test net is not Bitcoin
103
00:05:23,720 --> 00:05:25,280
anyway, so there's a new test
net.
104
00:05:25,280 --> 00:05:26,480
Sure.
She wants to talk about the new
105
00:05:26,480 --> 00:05:28,080
test net.
What's new with the new test
106
00:05:28,080 --> 00:05:29,520
net?
Well, there's there's two two
107
00:05:29,600 --> 00:05:34,360
things in there. 1 is there were
recently block storms, also
108
00:05:34,360 --> 00:05:38,320
known as the lop lop apocalypse.
Lop apocalypse.
109
00:05:38,320 --> 00:05:40,240
It's hard to pronounce.
Actually, it's easy to write.
110
00:05:40,240 --> 00:05:44,560
The lop lop that is harder to
pronounce than you would think.
111
00:05:45,800 --> 00:05:48,760
James and Lop was just trolling
everyone with just a single
112
00:05:48,760 --> 00:05:52,120
laptop producing hundreds of
thousands of blocks, making test
113
00:05:52,120 --> 00:05:57,000
net 3 unusable for people with
bad software, but also generally
114
00:05:57,000 --> 00:06:01,320
not not easy to use.
And it was exploiting a a well
115
00:06:01,320 --> 00:06:05,200
known a bunch of well known
vulnerabilities in in test net 3
116
00:06:05,200 --> 00:06:06,640
specifically.
The problem with test net
117
00:06:06,640 --> 00:06:10,440
fundamentally, and we'll never
be able to fix that, is that it
118
00:06:10,520 --> 00:06:13,640
cannot fully rely on proof of
work the way Bitcoin does
119
00:06:14,640 --> 00:06:16,400
because all the proof of work is
on Bitcoin.
120
00:06:16,400 --> 00:06:20,520
And if it was the same as
Bitcoin, it would be a shit coin
121
00:06:20,880 --> 00:06:23,680
and it would be attacked, you
know?
122
00:06:23,840 --> 00:06:26,680
I mean, the problem, of course,
is that, you know, performing
123
00:06:26,680 --> 00:06:30,160
proof of work actually costs,
you know, requires you to
124
00:06:30,160 --> 00:06:32,680
perform proof of work.
There's like actual energy you
125
00:06:32,680 --> 00:06:33,960
have to expend.
Yeah.
126
00:06:33,960 --> 00:06:36,440
And the reason miners do that on
Bitcoin is because they get paid
127
00:06:36,440 --> 00:06:38,040
for it in Bitcoin.
Yeah.
128
00:06:38,040 --> 00:06:41,680
While testnet, which is designed
to not be worth anything.
129
00:06:41,920 --> 00:06:45,200
And if it does get worth, you
know, if people start valuing
130
00:06:45,200 --> 00:06:48,600
it, they just, they reset it
and, you know, they being a
131
00:06:48,600 --> 00:06:50,360
developer.
So it's like designed to not
132
00:06:50,360 --> 00:06:52,560
have any value.
So therefore there's actually
133
00:06:52,560 --> 00:06:57,240
no, yeah.
And, and even if there was,
134
00:06:57,240 --> 00:07:00,840
which indeed, you know, the sort
of the rule is that if that
135
00:07:00,840 --> 00:07:05,480
happens, if people start valuing
test net coins, then it's being
136
00:07:05,480 --> 00:07:07,480
it, it gets reset.
There's just a new test net,
137
00:07:07,480 --> 00:07:09,640
which is what's happening.
And part of the reason is
138
00:07:09,640 --> 00:07:13,600
because people started selling
test net 3 coins, but it was
139
00:07:13,600 --> 00:07:16,880
also just becoming harder and
harder to use and one of the
140
00:07:16,880 --> 00:07:19,880
weaknesses in the test net 3.
So in order to deal with this
141
00:07:19,880 --> 00:07:24,520
lack of of incentives, it has a
few extra test net has a few
142
00:07:24,520 --> 00:07:28,400
extra rules that keep it
somewhat workable in the face of
143
00:07:28,520 --> 00:07:31,280
of minors messing with the
network.
144
00:07:31,760 --> 00:07:33,720
In particular.
What could have could happen
145
00:07:33,760 --> 00:07:38,200
without these rules is a minor
decides to put like a giant ASIC
146
00:07:38,200 --> 00:07:42,560
farm on test net three, increase
the difficulty to some really,
147
00:07:42,560 --> 00:07:44,480
really high difficulty and then
disappear.
148
00:07:45,080 --> 00:07:48,320
And then if you're just at home
trying to test something with
149
00:07:48,320 --> 00:07:51,040
your CPU, you just cannot mine a
block anymore.
150
00:07:51,600 --> 00:07:55,240
And so test net had a rule that
after 20 minutes, you could do
151
00:07:55,240 --> 00:07:58,440
it anyway at a very low
difficulty.
152
00:07:59,680 --> 00:08:03,000
And it was a bunch of these
rules and they were such that
153
00:08:03,000 --> 00:08:06,280
they were creating a mess
because it it was too easy to
154
00:08:06,280 --> 00:08:09,960
mine hundreds of thousands of
block very quickly and test Net
155
00:08:09,960 --> 00:08:14,040
4 fixes that at least fixes it
somewhat because fundamentally
156
00:08:14,040 --> 00:08:16,680
you can't really fix it.
Yeah.
157
00:08:16,680 --> 00:08:18,640
OK.
So how does test net for fix it?
158
00:08:19,880 --> 00:08:24,080
I don't know, I forgot it.
It basically adds a few more
159
00:08:24,080 --> 00:08:26,320
constraints to the timestamp I
think.
160
00:08:27,160 --> 00:08:29,920
I think one of the problems was
that you would.
161
00:08:30,520 --> 00:08:32,760
So after 20 minutes you were
able to mine that block a
162
00:08:32,760 --> 00:08:35,120
difficulty 1, which is the
lowest difficulty.
163
00:08:35,960 --> 00:08:38,919
And then what you would do is
the last block in the in the
164
00:08:38,919 --> 00:08:41,039
difficulty period would also be
one.
165
00:08:41,159 --> 00:08:43,039
And then you would keep doing
that.
166
00:08:43,039 --> 00:08:44,960
Then the difficulty would
permanently be 1.
167
00:08:45,240 --> 00:08:47,520
So it wouldn't be temporary for
20 minutes, it would just be
168
00:08:47,520 --> 00:08:49,760
permanent.
And so I think the new rule is
169
00:08:49,760 --> 00:08:53,000
that the the block at the edge
of the difficulty period has to
170
00:08:53,000 --> 00:08:57,680
be the normal difficulty.
So the downside is that if some
171
00:08:57,680 --> 00:09:03,120
ASIC drives up the difficulty,
you can mine blocks after 20
172
00:09:03,120 --> 00:09:05,880
minutes, but not the first block
of the difficulty period.
173
00:09:05,880 --> 00:09:09,480
So some ASIC will have to come
around once every two weeks to
174
00:09:09,480 --> 00:09:13,320
produce 1 block if this happens,
but they can't then lower the
175
00:09:13,320 --> 00:09:16,560
difficulty permanently.
OK.
176
00:09:16,680 --> 00:09:18,200
Because the problem is once the
difficulty I.
177
00:09:18,200 --> 00:09:21,880
Hope you can excuse me for kind
of not being very interested in
178
00:09:21,880 --> 00:09:24,640
all the adversarial ways that
test net can be abused.
179
00:09:24,640 --> 00:09:28,040
No, I wanted to move on to
actual Bitcoin here, Yeah.
180
00:09:28,880 --> 00:09:30,000
This is fundamental.
I mean, if you.
181
00:09:30,000 --> 00:09:32,840
Think there's something to add
for our listener that might find
182
00:09:32,840 --> 00:09:34,360
this interesting?
Go ahead.
183
00:09:34,360 --> 00:09:37,600
But I'm I'm done with the test
net stuff short well.
184
00:09:37,600 --> 00:09:38,960
Didn't you want to talk about
the time warp fix?
185
00:09:38,960 --> 00:09:40,800
Yes.
Let's go to the Oh no, that is
186
00:09:40,800 --> 00:09:42,760
still test net, Yeah.
But.
187
00:09:42,760 --> 00:09:45,000
It's OK, OK.
I thought we were already there.
188
00:09:45,160 --> 00:09:46,440
Go for it.
Well, the.
189
00:09:46,440 --> 00:09:48,840
Time Warp Fix is something we
talked about in the great
190
00:09:48,840 --> 00:09:53,080
consensus cleanup episode, yes.
So it's useful to, to try that
191
00:09:53,080 --> 00:09:56,120
on test net simply because you
know, maybe one day we want to
192
00:09:56,120 --> 00:09:58,040
use it on mainnet.
But that's not the immediate
193
00:09:58,040 --> 00:10:02,000
plan here.
And one practical reasons why
194
00:10:02,000 --> 00:10:04,760
it's being deployed on test net
is because the timeboral protect
195
00:10:04,760 --> 00:10:09,600
is another way to very quickly
mine all the coins, like mine
196
00:10:09,600 --> 00:10:12,160
the whole subsidy.
So you want to prevent that.
197
00:10:12,160 --> 00:10:14,720
We definitely want to prevent
that on main net because that's
198
00:10:14,720 --> 00:10:17,440
just bad.
But on test net, it's, it's also
199
00:10:17,440 --> 00:10:19,560
important to prevent it because
otherwise someone's going to
200
00:10:19,560 --> 00:10:23,480
mine all 21 million coins on
test net and then we have to
201
00:10:23,480 --> 00:10:29,760
make another test net.
Which is totally fine.
202
00:10:30,640 --> 00:10:33,360
For you, yeah, But it's a pain
in it's a pain in the butt to
203
00:10:33,360 --> 00:10:35,480
make a new test net.
There's actual, actual work
204
00:10:35,480 --> 00:10:38,720
involved, OK.
So there is a time work, the
205
00:10:38,720 --> 00:10:42,000
time warp fix that is part of
the great consensus cleanup
206
00:10:42,400 --> 00:10:45,880
which we discussed just two
episodes ago.
207
00:10:46,600 --> 00:10:50,560
So everyone you know, still has
that fresh in their memory of,
208
00:10:51,320 --> 00:10:54,320
you know, January 2022 or
whenever the last episode was
209
00:10:54,320 --> 00:10:55,040
two weeks.
Ago.
210
00:10:56,600 --> 00:10:58,560
But that has been rolled out on
test net.
211
00:10:58,560 --> 00:11:00,320
So in a way it's also being
tested now.
212
00:11:00,320 --> 00:11:02,640
I guess you can sort of see it
that way.
213
00:11:03,040 --> 00:11:05,960
Yeah, and it it already led to
some discussion and some people
214
00:11:05,960 --> 00:11:09,920
argued that this fix is not good
enough, not even for mainnet.
215
00:11:10,080 --> 00:11:13,400
And so it's good to have this
code out there when when code is
216
00:11:13,400 --> 00:11:15,520
actually out there, people are
more likely to look at it and
217
00:11:15,520 --> 00:11:19,160
critique it.
Good, but.
218
00:11:19,160 --> 00:11:21,280
One thing that's important to
point out, I already kind of
219
00:11:21,280 --> 00:11:24,800
said it, but often times when
there's a software proposal,
220
00:11:25,040 --> 00:11:27,080
people hash out the whole
software proposal, then they
221
00:11:27,080 --> 00:11:29,320
agree, then they deployed on
test net, then they deployed on
222
00:11:29,320 --> 00:11:30,880
mainnet.
That's not what happening here.
223
00:11:30,880 --> 00:11:34,920
This is just a test on test net.
It's not like the test that's,
224
00:11:34,920 --> 00:11:36,640
you know, we're about to do this
on mainnet.
225
00:11:37,120 --> 00:11:38,600
Yeah, this is actually
different.
226
00:11:38,600 --> 00:11:41,680
There's actually a practical
reason to use this on test net
227
00:11:41,680 --> 00:11:43,240
right now.
That's the reason it's on test
228
00:11:43,240 --> 00:11:44,840
net right now.
Not to test it from.
229
00:11:44,840 --> 00:11:47,760
Mainnet well.
It it's there to test in case we
230
00:11:47,760 --> 00:11:50,120
want it from mainnet, but it's
not like the the typical
231
00:11:50,120 --> 00:11:52,400
software test on test net is
really like, OK, we think this
232
00:11:52,400 --> 00:11:56,000
is completely ready, whereas in
this case we don't think that.
233
00:11:57,040 --> 00:12:00,240
Right.
OK, done with that net.
234
00:12:00,680 --> 00:12:03,840
Yes, Awesome.
Let's go to Bitcoin.
235
00:12:04,680 --> 00:12:06,080
Talk about the MAMPOL.
Yeah, so.
236
00:12:06,080 --> 00:12:08,520
There's a well, the Mampol.
Isn't really the blockchain
237
00:12:08,560 --> 00:12:09,600
either.
So do you care?
238
00:12:09,600 --> 00:12:10,760
Are you going to fall asleep
again?
239
00:12:12,280 --> 00:12:14,960
Mampol definitely counts.
Mampol counts as Bitcoin.
240
00:12:14,960 --> 00:12:16,440
OK.
Mampol is sort of.
241
00:12:16,960 --> 00:12:20,520
You heard it here first.
Yeah, I, I count it.
242
00:12:20,600 --> 00:12:23,800
I count it to it.
I care about the MAMPOL for
243
00:12:23,960 --> 00:12:25,600
reasons that we're going to
explain right now.
244
00:12:26,200 --> 00:12:31,920
So there has been sort of a
package of upgrades, which also
245
00:12:31,920 --> 00:12:36,760
includes a package.
It's true though.
246
00:12:37,040 --> 00:12:41,000
So the problem in a nutshell,
and the reason that this is
247
00:12:41,360 --> 00:12:47,360
needed, I think, correct me if
I'm wrong, is so in case there
248
00:12:47,360 --> 00:12:50,480
are any listeners that don't
know this, you know, every
249
00:12:50,640 --> 00:12:54,240
Bitcoin note has a memple and
the man pool collects
250
00:12:54,280 --> 00:12:56,960
transactions that are then
included in blocks.
251
00:12:57,440 --> 00:13:00,080
So they're sort of like a
waiting room for transactions
252
00:13:00,080 --> 00:13:02,080
until they're actually included
in the blockchain.
253
00:13:02,640 --> 00:13:05,960
So if you are a minor, then
you're actually mining from the
254
00:13:05,960 --> 00:13:07,880
man pool of your note?
Essentially, yeah.
255
00:13:08,160 --> 00:13:10,160
There's no one man pool.
Everybody has their own man
256
00:13:10,160 --> 00:13:14,200
pool, but all the man pools tend
to be very similar, especially
257
00:13:14,200 --> 00:13:16,920
the top of the man pool.
The the thing that's probably
258
00:13:16,920 --> 00:13:21,800
going to be my next right.
But there is a problem, namely
259
00:13:21,800 --> 00:13:26,760
that memples are also limited in
size, Like it depends per person
260
00:13:26,760 --> 00:13:28,920
or per note how big that size is
exactly.
261
00:13:28,920 --> 00:13:32,400
But ultimately a memple also is
a size, you know, in the same
262
00:13:32,400 --> 00:13:34,640
way that a Bitcoin block is a
size maximum size.
263
00:13:35,120 --> 00:13:40,960
So if your transaction doesn't
have a have enough V, then it
264
00:13:40,960 --> 00:13:43,200
will actually drop out of
people's memples.
265
00:13:43,400 --> 00:13:47,840
Yeah, now this is a real
problem, especially for second
266
00:13:47,840 --> 00:13:55,280
layer protocols like Lightning
where sometimes you need to get
267
00:13:55,280 --> 00:13:58,120
a transaction that is sort of
pre made, pre signed.
268
00:13:58,440 --> 00:14:01,960
You need to get it into a block.
But first of all, you need to
269
00:14:01,960 --> 00:14:04,680
get it into a man pool to get it
into a block.
270
00:14:05,240 --> 00:14:09,520
Now if the fee is too low to get
it into a block, but it's at
271
00:14:09,520 --> 00:14:12,600
least gets into the man pool,
you can fix that with this trick
272
00:14:12,600 --> 00:14:14,680
called child place for parent
or.
273
00:14:14,680 --> 00:14:17,960
With replace by fee depending on
the type of transaction, right?
274
00:14:18,040 --> 00:14:20,840
But in this case, we're talking
about child place for parents
275
00:14:20,840 --> 00:14:22,360
mostly, right?
For the fix we're going to
276
00:14:22,360 --> 00:14:24,440
discuss right now, yeah.
Because if you're talking about
277
00:14:24,440 --> 00:14:27,360
lightning, what often happens is
that you and your channel
278
00:14:27,360 --> 00:14:30,240
partner agree about a
transaction, you pre sign it.
279
00:14:30,400 --> 00:14:32,440
And so at the moment you sign
it, you don't know what the
280
00:14:32,440 --> 00:14:34,000
mental fees are going to be in
the future.
281
00:14:34,480 --> 00:14:37,480
And so the only way to if you
you know, if if there's some
282
00:14:37,480 --> 00:14:40,600
conflict, you only or you can't
find the other side, the only
283
00:14:40,600 --> 00:14:44,040
way to get your transaction then
included to get it in the Maple
284
00:14:44,040 --> 00:14:46,480
at all is that it must have
enough fees to make it in the
285
00:14:46,480 --> 00:14:49,200
Maple period.
And to bump it.
286
00:14:49,360 --> 00:14:53,600
You cannot replace it because
you don't have the yeah, you
287
00:14:53,600 --> 00:14:55,920
can't RBF a transaction because
the other side has to do the
288
00:14:55,920 --> 00:14:58,840
same thing.
And so child pays for parent is
289
00:14:58,840 --> 00:15:02,360
then the only way to get it
included in the next block or to
290
00:15:02,360 --> 00:15:04,000
even get it in the Maple.
Yeah, so.
291
00:15:04,000 --> 00:15:07,840
In other words, if I want to get
my money out of a Lightning
292
00:15:08,600 --> 00:15:11,160
payment channel, then I can do
that.
293
00:15:12,520 --> 00:15:16,160
And then if the transaction fee
of me doing that is not high
294
00:15:16,160 --> 00:15:19,920
enough because this was all like
pre done, then what I can do is
295
00:15:20,040 --> 00:15:23,000
OK, you know what, I'll just
spend that money that I'm
296
00:15:23,000 --> 00:15:25,280
sending to myself anyways and
I'll spend it in a new
297
00:15:25,280 --> 00:15:29,120
transaction also to myself and
I'll close up, I'll include a
298
00:15:29,120 --> 00:15:32,840
higher fee and then you know,
notes will figure out that's OK.
299
00:15:33,040 --> 00:15:35,440
If we include both of these
transaction in the block, then
300
00:15:35,440 --> 00:15:40,080
we get both of these fees.
So that usually works unless if
301
00:15:40,080 --> 00:15:43,480
the first transaction where I'm
originally getting my money out
302
00:15:43,480 --> 00:15:46,200
of this lighting payment
channel, if that transaction
303
00:15:46,200 --> 00:15:50,760
doesn't even have enough fee to
fit in people's memples, then I
304
00:15:50,760 --> 00:15:53,840
also can't claim it with this
child pays for parent trick.
305
00:15:53,880 --> 00:15:57,840
Because now this, this child
that I'm using, you know, the
306
00:15:57,840 --> 00:16:00,760
child payment that I'm using to
claim the money isn't referring
307
00:16:00,760 --> 00:16:03,520
to something that other nodes
know about because the parent
308
00:16:03,520 --> 00:16:06,400
transaction, the first
transaction already fell out of
309
00:16:06,400 --> 00:16:10,760
their memple.
So the idea to fix that is that
310
00:16:11,120 --> 00:16:14,480
I should be able to tell other
notes on the network.
311
00:16:14,840 --> 00:16:17,560
Hey, I want to pay for this
transaction as well.
312
00:16:17,560 --> 00:16:20,120
So please consider both of these
transactions.
313
00:16:20,400 --> 00:16:22,520
I know that the first
transaction doesn't have enough
314
00:16:22,520 --> 00:16:24,040
fee for your member, I know
that.
315
00:16:24,240 --> 00:16:26,080
But look, I got another
transaction.
316
00:16:26,360 --> 00:16:28,920
Please consider them both.
Yeah, and the nice.
317
00:16:28,920 --> 00:16:31,200
Thing, that's what we're trying
to accomplish here, yeah.
318
00:16:31,200 --> 00:16:34,760
And if you can do that, then one
benefit is that when you open a
319
00:16:34,760 --> 00:16:38,880
Lightning channel, you can use a
very low fee by default because,
320
00:16:38,880 --> 00:16:41,440
you know, you can just add
whatever fees are needed later
321
00:16:41,440 --> 00:16:44,000
and you don't have to think
about the absolute worst case
322
00:16:44,840 --> 00:16:47,640
inscription hype type mental
situation.
323
00:16:48,160 --> 00:16:50,600
Yeah, yeah.
Just, you know, just assume an
324
00:16:50,600 --> 00:16:52,520
easy mental.
So it'd be nice if this was
325
00:16:52,520 --> 00:16:53,960
possible, but currently it
isn't.
326
00:16:54,560 --> 00:16:56,440
Yeah, very.
I'll, I'll repeat this one more
327
00:16:56,440 --> 00:16:59,120
time to make it very simple,
hopefully in case there's still
328
00:16:59,120 --> 00:17:00,760
someone out there doesn't
understand.
329
00:17:01,040 --> 00:17:04,000
So when it comes to including
transactions into blocks,
330
00:17:04,480 --> 00:17:08,599
transactions are potentially
considered in in combinations
331
00:17:08,599 --> 00:17:11,640
like if one transaction spends
from another, then the fees are
332
00:17:11,640 --> 00:17:14,440
sort of added up and a minor
will figure, OK, if I include
333
00:17:14,440 --> 00:17:15,720
them all, then I get enough
fees.
334
00:17:15,720 --> 00:17:16,040
Yeah.
And the.
335
00:17:16,040 --> 00:17:17,800
Minor has an incentive to do
that, of course.
336
00:17:17,800 --> 00:17:20,240
Yeah.
So the the goal is to accomplish
337
00:17:20,240 --> 00:17:23,319
a similar logic for the mental.
So notes will also see, OK,
338
00:17:23,319 --> 00:17:26,319
we're going to consider each
transactions as a combination of
339
00:17:26,319 --> 00:17:28,280
transactions rather than each
individually.
340
00:17:28,800 --> 00:17:31,480
OK, Yeah, so that's that that's
what we're trying to achieve
341
00:17:31,480 --> 00:17:34,040
here.
You know, I'm saying we that's
342
00:17:34,040 --> 00:17:36,560
what Bitcoin Core developers are
trying to achieve, yeah.
343
00:17:36,640 --> 00:17:39,800
Some Bitcoin Core developers,
not me per SE, but I try to
344
00:17:39,800 --> 00:17:41,320
understand what they're doing
right.
345
00:17:41,360 --> 00:17:45,000
And now in Bitcoin Core 28,
there's been some actual good
346
00:17:45,000 --> 00:17:49,560
progress on this, this goal.
Yeah.
347
00:17:49,880 --> 00:17:53,000
We've got 4 buzzwords basically
and we'll try to explain them
348
00:17:53,040 --> 00:17:57,080
so.
The first one you wrote down is
349
00:17:57,080 --> 00:18:00,480
one parent, one child packages.
Yes.
350
00:18:01,080 --> 00:18:02,600
And so, yeah.
Go on.
351
00:18:03,360 --> 00:18:05,680
Yeah.
So the most simple example which
352
00:18:05,680 --> 00:18:10,240
is the example you gave is you
have one parent just for example
353
00:18:10,240 --> 00:18:13,920
this lightning close thing and
one child which is your fee
354
00:18:13,920 --> 00:18:17,720
bump.
And that is a special case of a
355
00:18:17,720 --> 00:18:20,280
package, the simplest possible
package and that.
356
00:18:21,320 --> 00:18:24,040
So basically support has been
added to be Concorde to handle
357
00:18:24,040 --> 00:18:30,920
that very specific case using
under the hood something called
358
00:18:30,920 --> 00:18:34,320
the orphanage as far as I
understand it so.
359
00:18:34,320 --> 00:18:39,760
There's there's actually a part
of the Bitcoin Core code that is
360
00:18:39,760 --> 00:18:42,680
called the orphanage, yes.
And remember when Roger Veer
361
00:18:42,680 --> 00:18:44,400
said that Bitcoin Core kills
babies?
362
00:18:44,600 --> 00:18:47,680
Well, it turns out Bitcoin Core
kills a lot of them because the
363
00:18:47,680 --> 00:18:50,640
orphanage doesn't really work.
It was actually true.
364
00:18:50,640 --> 00:18:52,800
OK how so?
What is the orphanage and how
365
00:18:52,800 --> 00:18:55,160
does it work?
How does it not work?
366
00:18:56,320 --> 00:18:58,720
I'm a little vague on this, so
if you really, truly, deeply
367
00:18:58,720 --> 00:19:01,800
want to understand this, you
should look at everything Gloria
368
00:19:01,800 --> 00:19:05,040
Zhao has been writing on various
mailing lists and other places.
369
00:19:05,360 --> 00:19:08,520
Give us the which explains.
In more detail, but roughly the
370
00:19:08,520 --> 00:19:14,120
idea is this you so, so you and
I are exchanging transactions.
371
00:19:14,120 --> 00:19:16,960
You want to close your channel,
you want to send me those
372
00:19:16,960 --> 00:19:20,080
transactions, right?
And so the first thing you do is
373
00:19:20,080 --> 00:19:23,800
you tell me, hey, I have some
new transactions, namely.
374
00:19:23,800 --> 00:19:25,480
And then you don't give me the
full transaction, you just give
375
00:19:25,480 --> 00:19:27,600
me some, some identifier of
them.
376
00:19:27,840 --> 00:19:30,640
So you give me a list and I look
at that list and I say, well,
377
00:19:30,640 --> 00:19:33,200
OK, send them to me.
So then you're sending me the
378
00:19:33,200 --> 00:19:38,040
full transactions.
But, and so this would be the
379
00:19:38,040 --> 00:19:40,160
lightning close transaction that
you want to send me and the
380
00:19:40,160 --> 00:19:44,080
child that you want to send me.
However, before we did any of
381
00:19:44,080 --> 00:19:46,680
that, I told you like, I'm not
interested in transactions that
382
00:19:46,680 --> 00:19:51,120
are paying a very low fee.
And so the the Lightning action
383
00:19:51,120 --> 00:19:53,720
transaction, let's say is below
that level, but your child is
384
00:19:53,720 --> 00:19:56,320
above it so.
You're for example saying I only
385
00:19:56,320 --> 00:20:00,400
want transactions that at least
pay free sets per box and.
386
00:20:00,400 --> 00:20:05,200
So you being very nice, you
don't send me the, the thing
387
00:20:05,200 --> 00:20:06,480
that you actually want to
include.
388
00:20:06,480 --> 00:20:10,600
And you just sent me the child.
And that child then goes into
389
00:20:10,600 --> 00:20:14,240
the orphanage, into my
orphanage, because I recognize
390
00:20:14,240 --> 00:20:16,600
that this transaction looks
interesting, seems to pay a lot
391
00:20:16,600 --> 00:20:19,480
of fees, but I, I don't know the
parent.
392
00:20:19,760 --> 00:20:23,560
So then a while later, probably
a fraction of a second later, I
393
00:20:23,560 --> 00:20:27,800
ask you, could you please give
me this parent?
394
00:20:28,680 --> 00:20:32,680
And you say, sure, you didn't
send it before because the fee
395
00:20:32,680 --> 00:20:35,680
rate, but now because I'm asking
you if, if I'm asking you,
396
00:20:35,680 --> 00:20:37,120
you're going to send it to me
regardless.
397
00:20:37,920 --> 00:20:40,080
And so I look at it and say,
well, this doesn't pay enough
398
00:20:40,080 --> 00:20:43,560
fees and I just throw it away.
And then later on, the child is
399
00:20:43,560 --> 00:20:44,800
also thrown out of the
orphanage.
400
00:20:45,680 --> 00:20:47,360
That's how it used to work.
That's.
401
00:20:47,360 --> 00:20:49,640
Rough, that's.
Yeah, you know, life on the
402
00:20:49,640 --> 00:20:51,960
blockchain is rough, and life in
the memple is even rougher.
403
00:20:53,000 --> 00:20:56,000
Oh my God.
So you request the parent of
404
00:20:56,000 --> 00:20:59,920
that poor child and I send you
the parents and you still throw
405
00:20:59,920 --> 00:21:01,240
them both away?
Yes.
406
00:21:02,160 --> 00:21:03,680
Do you at least throw them away
together?
407
00:21:04,200 --> 00:21:05,480
No.
I'd probably be separately.
408
00:21:06,040 --> 00:21:11,280
So so anyway, so that is, as far
as I understand the the really
409
00:21:11,280 --> 00:21:13,720
the thing that is being fixed
and you so you could say it's a
410
00:21:13,720 --> 00:21:16,360
bit of a hack.
It doesn't really scale towards
411
00:21:16,360 --> 00:21:19,080
more complicated groups of
transactions, but there's one
412
00:21:19,080 --> 00:21:22,160
child, one parent use case is
very useful already for the
413
00:21:22,160 --> 00:21:26,440
example we just discussed.
So I believe the the only the
414
00:21:26,440 --> 00:21:29,920
main thing this this release
changes is that when you're
415
00:21:29,920 --> 00:21:32,960
sending this parent this time,
it will look at it and say, oh,
416
00:21:32,960 --> 00:21:34,800
look at that.
If I combine this parent with
417
00:21:34,800 --> 00:21:37,080
this child that I have here in
the orphanage, it does pay
418
00:21:37,080 --> 00:21:38,760
enough.
Let me accept that and let me
419
00:21:38,880 --> 00:21:42,080
forward it to peers the same
way, who then repeat the same
420
00:21:42,080 --> 00:21:45,840
process if they're all upgraded.
So as long as there there is a
421
00:21:45,840 --> 00:21:49,280
bunch of upgraded nodes between
you and the minor, they will
422
00:21:49,280 --> 00:21:50,840
finally get both of them.
This is.
423
00:21:50,840 --> 00:21:53,680
A very wholesome upgrade then
yes, I'm very happy with it.
424
00:21:53,680 --> 00:21:55,360
But it is.
Also a bit of a duct tape
425
00:21:55,360 --> 00:21:57,080
solution.
Why?
426
00:21:57,560 --> 00:22:01,120
Well, the the orphans is not
really designed to handle like
427
00:22:01,120 --> 00:22:03,960
the generic case of thousands of
packages etcetera.
428
00:22:04,160 --> 00:22:07,760
And you can quite easily
overwhelm it.
429
00:22:07,760 --> 00:22:11,200
So if you send so let's say
instead of, it's a small.
430
00:22:11,200 --> 00:22:12,120
Orphanage.
It's a very.
431
00:22:12,120 --> 00:22:18,600
Small orphanage so if you're
sending 1000 children, then the
432
00:22:18,600 --> 00:22:23,680
orphanage going to throw away
like all but the last five right
433
00:22:23,720 --> 00:22:25,720
So if it's.
A hard knock life.
434
00:22:25,720 --> 00:22:28,280
It's a hard.
Life on the Maple even harder
435
00:22:28,280 --> 00:22:33,520
than on the blockchain.
So basically what you're saying
436
00:22:33,520 --> 00:22:35,760
is.
You.
437
00:22:36,040 --> 00:22:38,520
Know what I'm saying?
The adversarial, you know,
438
00:22:38,520 --> 00:22:44,320
person in the Bitcoin network
can intentionally create all
439
00:22:44,320 --> 00:22:49,960
kinds of transactions that don't
even have a parent or child.
440
00:22:49,960 --> 00:22:51,400
Well, they.
Might have it, but you just
441
00:22:51,960 --> 00:22:54,160
yeah, it's never going you're
never going to ask for it
442
00:22:54,160 --> 00:22:56,680
because it's too many too many
orphans at the same time, stuff
443
00:22:56,680 --> 00:22:59,520
like that.
So as far as I understand it,
444
00:22:59,520 --> 00:23:02,760
there needs to be a better
mechanism to really deal with
445
00:23:02,760 --> 00:23:05,840
this problem of of a one parent,
one child and and multiple
446
00:23:05,840 --> 00:23:09,960
parents, multiple children.
But this you know, hopefully is
447
00:23:09,960 --> 00:23:12,560
good enough that under most
circumstances you will get your
448
00:23:12,560 --> 00:23:14,920
lightning close transactions to
a minor but.
449
00:23:15,040 --> 00:23:20,200
There might be a better solution
tomorrow Tomorrow.
450
00:23:20,760 --> 00:23:23,800
I don't know.
I'm I'm making any references
451
00:23:23,800 --> 00:23:25,720
yours.
OK.
452
00:23:26,000 --> 00:23:28,760
Orphanage.
Nevermind.
453
00:23:28,760 --> 00:23:30,360
We're moving on to the next
point.
454
00:23:31,680 --> 00:23:35,080
There are fee free transactions,
yeah.
455
00:23:35,200 --> 00:23:37,400
And so version.
Free transaction, yeah, and so.
456
00:23:37,400 --> 00:23:40,800
That's just the field in the
transaction that says #3, where
457
00:23:40,800 --> 00:23:46,120
it currently usually says #2 so.
The the transactions are the
458
00:23:46,120 --> 00:23:48,200
same now, they just are version
free.
459
00:23:48,200 --> 00:23:49,240
OK, what is it?
Yeah, and that.
460
00:23:49,240 --> 00:23:50,400
Doesn't apply to all
transactions.
461
00:23:50,400 --> 00:23:53,080
It applies to special
transactions that care about the
462
00:23:53,080 --> 00:23:59,160
following truck.
And so truck stands for.
463
00:23:59,600 --> 00:24:03,720
Was it again topologically
constrained until confirmation,
464
00:24:03,960 --> 00:24:06,000
Topologically constrained until
confirmation.
465
00:24:06,000 --> 00:24:09,000
So in other words, there are
topologies, so how transactions
466
00:24:09,000 --> 00:24:12,480
relate to each other and there
are rules for that in the MEP
467
00:24:12,480 --> 00:24:15,760
pool, not in the blockchain.
So it's until confirmation.
468
00:24:17,760 --> 00:24:21,800
And you may wonder what rules,
well roughly it needs to be a
469
00:24:21,800 --> 00:24:25,400
one child, one parent pair,
exactly that special case that
470
00:24:25,400 --> 00:24:29,600
we just talked about.
And then the other rule I
471
00:24:29,600 --> 00:24:33,240
believe is that the child cannot
be more than 10 kilobytes or 10K
472
00:24:33,240 --> 00:24:37,880
V bytes.
And this just means that if you
473
00:24:37,880 --> 00:24:41,800
opt into this version number,
there are a lot of shenanigans
474
00:24:41,800 --> 00:24:45,080
that somebody trying to keep you
out of the MAMPOL or keep you
475
00:24:45,080 --> 00:24:47,560
from bumping the fees etcetera,
because we didn't really talk
476
00:24:47,560 --> 00:24:49,640
about that scenario can be
prevented.
477
00:24:49,800 --> 00:24:52,600
So the it's not really
interesting to the scenario you
478
00:24:52,600 --> 00:24:54,800
started with, which is you're
not in the MAMPOL, you want to
479
00:24:54,800 --> 00:24:58,760
be in the MAMPOL, but it's the
more complicated thing called
480
00:24:58,760 --> 00:25:02,000
pinning attacks that we would
need a lightning expert to
481
00:25:02,080 --> 00:25:04,880
completely explain.
But it comes down to like you
482
00:25:04,880 --> 00:25:08,280
are in the Mampol but you want
to be higher in the MAMPOL
483
00:25:08,280 --> 00:25:12,040
because if you stay at the
bottom of the memple, then
484
00:25:12,040 --> 00:25:14,840
you'll just never get confirmed.
And that's not good because
485
00:25:14,840 --> 00:25:17,600
there might be a deadline for
your lightning transaction that
486
00:25:17,600 --> 00:25:20,200
you want to close it.
Hang on.
487
00:25:20,200 --> 00:25:22,280
So OK, I'm sending a
transaction, right?
488
00:25:22,280 --> 00:25:26,040
So then I decide if that's going
to be a fee 2 or fee free or fee
489
00:25:26,040 --> 00:25:29,680
one transaction.
It can be whatever I want and
490
00:25:29,680 --> 00:25:31,240
that.
But if I make it a fee free
491
00:25:31,240 --> 00:25:35,520
transaction, then it cannot have
any grandchildren.
492
00:25:36,440 --> 00:25:39,800
You know, it cannot have any
children of children in that in
493
00:25:39,800 --> 00:25:44,160
the Maple, it can only have
grandkids when it is included in
494
00:25:44,160 --> 00:25:45,160
the blockchain.
That's right.
495
00:25:45,640 --> 00:25:48,880
And there is a benefit to this
which has something to do with
496
00:25:48,880 --> 00:25:53,280
pinning attacks and lightning,
which I I don't understand and
497
00:25:53,320 --> 00:25:56,320
you also can't quite explain,
no.
498
00:25:56,320 --> 00:25:58,040
Exactly.
But the generally in lightning
499
00:25:58,040 --> 00:26:00,080
you are coordinating
intersection together with
500
00:26:00,080 --> 00:26:04,600
somebody else.
And so that transaction you may
501
00:26:04,600 --> 00:26:07,280
want to have it in the Maple
because the situation is to your
502
00:26:07,280 --> 00:26:09,680
benefit to get it included.
Or they might want it in the
503
00:26:09,680 --> 00:26:12,520
Maple because it's in their
benefit to get it in the Maple.
504
00:26:13,000 --> 00:26:16,440
And your benefit you, you may
have a conflict there where the
505
00:26:16,440 --> 00:26:19,400
other side may want to stop you
from getting it into the Maple.
506
00:26:19,920 --> 00:26:22,520
And you can do all sorts of
shenanigans where you attach
507
00:26:22,520 --> 00:26:24,760
lots and lots of small
transactions or very large
508
00:26:24,760 --> 00:26:28,040
transactions with too low fees
to this lightning close
509
00:26:28,040 --> 00:26:31,120
transaction so that it doesn't
get into the Maple or doesn't
510
00:26:31,120 --> 00:26:33,520
get high enough into the Maple.
And you can bump it anymore
511
00:26:33,520 --> 00:26:35,280
because the RBF rules are
complicated.
512
00:26:35,920 --> 00:26:40,000
And so all that goes away with
V3 because they can only be one
513
00:26:40,000 --> 00:26:43,080
child.
And, you know, you you may still
514
00:26:43,080 --> 00:26:46,000
have to race for paying higher
fees, but it's somewhat limited.
515
00:26:47,000 --> 00:26:48,960
It's a bit, of course, one child
policy.
516
00:26:50,200 --> 00:26:55,880
Yes, the the.
Connotations here are less than
517
00:26:55,880 --> 00:27:00,080
optimal source, but I will
remind the listener it's an opt
518
00:27:00,080 --> 00:27:01,240
in thing.
You don't have to.
519
00:27:01,240 --> 00:27:03,520
You can have as many Childs as
you want, Yeah.
520
00:27:03,520 --> 00:27:05,280
Exactly.
You don't have to use those B2B
521
00:27:05,280 --> 00:27:07,400
transactions, OK.
So that's a new thing.
522
00:27:07,400 --> 00:27:08,840
I don't quite understand the
band.
523
00:27:08,840 --> 00:27:11,280
Well, I kind of, oh, let's just
move to next it.
524
00:27:11,280 --> 00:27:13,640
Removes all the stuff that we
don't understand, right?
525
00:27:13,840 --> 00:27:15,160
Got it.
So we.
526
00:27:15,160 --> 00:27:17,560
Don't have to explain how
painting works because it's less
527
00:27:17,560 --> 00:27:20,280
of a problem got.
It and then there's one OK,
528
00:27:20,520 --> 00:27:24,320
there's one more thing to the
whole MAMPOL upgrade yes last.
529
00:27:24,320 --> 00:27:25,360
Buzzword.
Yes.
530
00:27:25,360 --> 00:27:28,400
And then we'll then we're done
with the Mampol upgrades.
531
00:27:28,920 --> 00:27:32,280
So we had the one parent, one
child packages kind of with
532
00:27:32,280 --> 00:27:35,680
orphanages and then we were just
discussing the version three,
533
00:27:35,680 --> 00:27:42,240
one child only palsy and now and
and that's called the TRUC.
534
00:27:42,240 --> 00:27:46,760
What stands for?
Topologically restrained, sorry.
535
00:27:47,080 --> 00:27:50,000
Yeah, I think topologically
restricted until confirmation.
536
00:27:50,000 --> 00:27:52,440
OK, yes.
You can only have grandchilds
537
00:27:52,440 --> 00:27:55,040
while you're in the when you're
in the blockchain as a
538
00:27:55,040 --> 00:27:57,520
transaction, being a transaction
anyways.
539
00:27:57,760 --> 00:27:59,560
OK.
And then there's something
540
00:27:59,560 --> 00:28:01,960
called P2A.
Yes.
541
00:28:02,120 --> 00:28:06,280
What is P2A paid?
To anchor and so we've, we
542
00:28:06,280 --> 00:28:08,960
talked about this, this
situation where you want to make
543
00:28:08,960 --> 00:28:11,760
a child to pay for the parent.
Now the question is what does
544
00:28:11,760 --> 00:28:14,560
that child look like?
It can be anything doesn't
545
00:28:14,560 --> 00:28:17,160
really matter as far as long as
it pays a lot of fees.
546
00:28:17,520 --> 00:28:20,520
But it you want it to be small
because you don't have to pay
547
00:28:20,520 --> 00:28:22,760
just the fees for your parent.
You also have to pay your own
548
00:28:22,760 --> 00:28:24,480
fees.
So you want the child to be as
549
00:28:24,480 --> 00:28:27,640
small as possible and paid to
anchor is like a new
550
00:28:27,720 --> 00:28:31,160
standardness rule that lets you
make a very, very small
551
00:28:31,480 --> 00:28:35,680
transaction to do just that.
And The funny thing about is
552
00:28:35,680 --> 00:28:38,520
that on the blockchain it will
the address will look like
553
00:28:38,520 --> 00:28:42,040
something like one fees or BC1P
fees.
554
00:28:43,160 --> 00:28:45,760
And that's done with a special
very small script that just
555
00:28:45,760 --> 00:28:48,160
happens to represent the word
fees.
556
00:28:49,400 --> 00:28:52,080
But it's really just a way to
make it easier to make these
557
00:28:52,080 --> 00:28:55,160
children doesn't have any
special meaning otherwise.
558
00:28:55,280 --> 00:28:57,880
But the changes that these are
not standard so they will
559
00:28:57,880 --> 00:29:00,800
actually get relayed.
OK.
560
00:29:00,800 --> 00:29:04,120
So it was already possible
according to the consensus rules
561
00:29:04,120 --> 00:29:07,440
to create this, but so far
Bitcoin wouldn't relay them,
562
00:29:07,560 --> 00:29:09,280
Yeah.
And I understand correctly it
563
00:29:09,280 --> 00:29:12,240
wouldn't relay spending them.
So you could send money to that
564
00:29:12,640 --> 00:29:15,280
address, but you couldn't spend
from it.
565
00:29:17,720 --> 00:29:19,760
OK.
And this is so this is
566
00:29:20,120 --> 00:29:22,800
specifically intended to also
benefits these other things we
567
00:29:22,800 --> 00:29:25,280
just discussed with orphanage
and the one child policy.
568
00:29:25,280 --> 00:29:27,640
It's yeah, because.
That's the the the child is now
569
00:29:27,640 --> 00:29:29,280
spending from that address
essentially.
570
00:29:29,440 --> 00:29:32,560
And you can do that or anybody
else can do it too.
571
00:29:32,680 --> 00:29:35,240
So maybe you want to outsource
it to Watchtower or something
572
00:29:35,240 --> 00:29:38,120
like that long.
Story short Now we've been on
573
00:29:38,120 --> 00:29:43,960
Court 28 Manple Paul Man Manple
policy has improved to the point
574
00:29:43,960 --> 00:29:47,960
where it makes Lightning a bit
more usable, reliable.
575
00:29:47,960 --> 00:29:51,240
When they start using it and
that might be another year, who
576
00:29:51,240 --> 00:29:53,440
knows, right?
At at least Pico Core has now
577
00:29:53,440 --> 00:29:59,160
facilitated lightning to become
more usable.
578
00:29:59,160 --> 00:30:00,640
Cheaper, yeah.
Hopefully.
579
00:30:01,040 --> 00:30:03,200
That, that sort of stuff, OK,
and.
580
00:30:03,400 --> 00:30:05,600
And I mean, when we say
lightning, we mean anything that
581
00:30:05,600 --> 00:30:08,040
has the same concerns as
lightning, right?
582
00:30:08,040 --> 00:30:09,480
Yeah.
But yeah, a lot of Layer 2
583
00:30:09,480 --> 00:30:11,320
protocols actually have these
kinds of issues.
584
00:30:11,320 --> 00:30:13,280
Of course.
OK.
585
00:30:13,280 --> 00:30:18,360
We're just discussing relay
policy with the anchor stuff.
586
00:30:18,840 --> 00:30:21,840
Speaking of relay policy,
Bitcoin Core.
587
00:30:21,840 --> 00:30:25,360
So next topic, we're done with
the Maple stuff next, more Maple
588
00:30:25,360 --> 00:30:27,040
stuff.
It's more Maple stuff for you.
589
00:30:28,600 --> 00:30:31,320
Full RBF is now the default.
Yeah.
590
00:30:31,320 --> 00:30:33,680
So we've done multiple episodes
about full RBF.
591
00:30:33,680 --> 00:30:36,680
If you look for the term in our
show notes or in our history,
592
00:30:36,680 --> 00:30:38,360
you will find it replace.
By fee.
593
00:30:39,200 --> 00:30:44,120
Yes well full RBF, you know says
like it's fully replacing by
594
00:30:44,160 --> 00:30:47,760
anyway doesn't really matter it
it the only thing it does is it
595
00:30:47,760 --> 00:30:50,560
turns the flag off so over it
ignores the flag.
596
00:30:50,560 --> 00:30:53,520
So it used to be that you had
something called opt in RBF
597
00:30:53,800 --> 00:30:56,480
where you would signal that your
transaction could be replaced
598
00:30:56,680 --> 00:30:59,480
and if you didn't signal that
then nodes if they were nice
599
00:30:59,480 --> 00:31:01,840
would not replace it.
If they were not nice, they
600
00:31:01,840 --> 00:31:04,240
would replace it.
So unconfirmed transactions were
601
00:31:04,240 --> 00:31:07,760
always safe unsafe for that
reason because it's just a
602
00:31:07,760 --> 00:31:13,400
mental rule.
So but then this new setting
603
00:31:13,400 --> 00:31:17,000
came in that's that's that lets
you know, basically ignore this
604
00:31:17,000 --> 00:31:19,480
flag and say I'm going to just
anything that pays a higher fee
605
00:31:19,480 --> 00:31:22,000
and meets all these other
conditions will get relayed.
606
00:31:22,000 --> 00:31:24,040
Now you don't need to flag
anymore there.
607
00:31:24,040 --> 00:31:25,920
Was a setting in mid, Yeah, that
was.
608
00:31:25,920 --> 00:31:30,560
Off by default because it was a
new thing, but now it turns out
609
00:31:30,560 --> 00:31:33,680
that most minors appear to be
also using that.
610
00:31:34,000 --> 00:31:37,080
And so when minors are using a
certain mental policy, it is
611
00:31:37,080 --> 00:31:40,680
better for pull notes to also
use that policy so that their
612
00:31:40,680 --> 00:31:43,480
memple reflects the next block
accurately.
613
00:31:43,800 --> 00:31:47,360
And this helps with things like
compact block relay where you
614
00:31:47,360 --> 00:31:50,240
relay not the whole block to
your peers when you see it, but
615
00:31:50,240 --> 00:31:55,120
you relay a very short summary.
And that short summary relies on
616
00:31:55,320 --> 00:31:57,640
on the fact that the person
you're sending it to has the
617
00:31:57,640 --> 00:32:01,000
same ample as you do.
And so we'll we'll recognize
618
00:32:01,000 --> 00:32:03,080
doesn't need you don't need to
send all the transactions to
619
00:32:03,080 --> 00:32:04,760
your peers.
You just sent the header and a
620
00:32:04,760 --> 00:32:09,360
few other details that doesn't
work and that started to you
621
00:32:09,360 --> 00:32:11,440
could measure that it was
working less well.
622
00:32:11,440 --> 00:32:15,440
So basically block relay was
getting slower because too many
623
00:32:15,440 --> 00:32:18,120
people were using full RBF, but
to know too many people were
624
00:32:18,120 --> 00:32:20,760
not.
And now hopefully it'll speed up
625
00:32:20,760 --> 00:32:24,320
again because everybody will be
using full RBF for most people.
626
00:32:24,720 --> 00:32:27,080
Right.
Yeah.
627
00:32:27,080 --> 00:32:31,920
I mean, this is obviously been a
pretty controversial topic over
628
00:32:31,920 --> 00:32:36,400
the, you know, you know, for
over 10 years now, RBF in
629
00:32:36,400 --> 00:32:39,600
itself.
You know, some people would
630
00:32:39,600 --> 00:32:43,560
argue that it makes unconfirmed
transactions less reliable,
631
00:32:43,560 --> 00:32:46,640
whereas previously they were
still pretty reliable.
632
00:32:47,000 --> 00:32:49,920
You know, if you got a
transaction even it was, even if
633
00:32:49,920 --> 00:32:52,520
it was unconfirmed, you would
probably just receive it.
634
00:32:52,520 --> 00:32:56,440
And now that's been, you know,
that's a lot less obvious now
635
00:32:56,440 --> 00:32:59,200
that it won't get replaced by a
completely different
636
00:32:59,200 --> 00:33:00,160
transaction.
I'm not.
637
00:33:00,160 --> 00:33:02,600
Sure, if it matters that much in
practice, you'd have to ask
638
00:33:02,600 --> 00:33:05,320
merchants who still use it.
There's not that many of them.
639
00:33:05,560 --> 00:33:08,480
They probably use all sorts of
other risk scoring techniques
640
00:33:08,640 --> 00:33:11,360
that are completely unrelated to
the use of this flag.
641
00:33:11,360 --> 00:33:14,400
But this flag would make it more
difficult to perform the attack.
642
00:33:14,400 --> 00:33:17,080
Yeah, yeah.
Well, anyways, we've discussed
643
00:33:17,080 --> 00:33:20,400
RBF at length in different
episodes, so let's just, you
644
00:33:20,400 --> 00:33:24,200
know, keep it, keep it at that.
In any case, Political Core 28
645
00:33:24,200 --> 00:33:27,880
now has full RBF on by default.
Yeah, and.
646
00:33:27,880 --> 00:33:30,800
Then for later on we need to
figure out do we want to get rid
647
00:33:30,800 --> 00:33:33,920
of this flag?
Do we like deprecate BIP 125 or
648
00:33:33,920 --> 00:33:36,720
like that part of it?
Or because that that's the flag
649
00:33:36,720 --> 00:33:37,960
seems pretty.
Useless.
650
00:33:37,960 --> 00:33:38,640
Now it's.
Useless.
651
00:33:38,640 --> 00:33:40,720
Yes.
But if Bitcoin Core turns it off
652
00:33:40,920 --> 00:33:43,720
but everybody else doesn't, now
you know which wallets are using
653
00:33:43,720 --> 00:33:45,800
Bitcoin Core.
So there's still the question of
654
00:33:45,800 --> 00:33:47,880
what to do with the flag.
And maybe we should just say
655
00:33:47,880 --> 00:33:50,280
like it should just be there.
That just doesn't mean anything
656
00:33:50,280 --> 00:33:53,920
anymore.
I don't know, I say remove it,
657
00:33:54,640 --> 00:33:58,600
get rid of it.
Just a full RBF is the new
658
00:33:58,600 --> 00:34:02,840
reality.
OK, Assume UTXO is available on
659
00:34:02,840 --> 00:34:06,000
main as yes.
We talked about Assume UTXO in
660
00:34:06,000 --> 00:34:17,480
episode number 14 in 2020 and
it's ready.
661
00:34:17,639 --> 00:34:21,440
Well, you still need some
command line magic, but you can.
662
00:34:21,440 --> 00:34:23,960
Basically how you use it is you
download a torrent.
663
00:34:25,400 --> 00:34:26,560
What is it?
What is it?
664
00:34:26,560 --> 00:34:28,040
Sure.
What are we talking about?
665
00:34:28,800 --> 00:34:29,800
That's what I'm explaining.
OK.
666
00:34:29,800 --> 00:34:32,480
Reminder listener.
Oh, you are explaining it OK,
667
00:34:32,560 --> 00:34:33,320
good, good, good.
So you.
668
00:34:33,320 --> 00:34:35,639
Download a torrent about 10
gigabytes which represents the
669
00:34:35,639 --> 00:34:37,440
UTXL set during the halving
block.
670
00:34:37,440 --> 00:34:41,280
So it represents who owns what
coin, Who owned what coin, that
671
00:34:41,280 --> 00:34:45,159
block 8400?
Sorry 840,000.
672
00:34:46,520 --> 00:34:50,199
Then your note loads that
snapshot and it checks it based
673
00:34:50,199 --> 00:34:52,080
on the hash that the developers
put in.
674
00:34:52,239 --> 00:34:54,440
It doesn't trust it, it just
assumes it.
675
00:34:54,480 --> 00:34:57,080
Hence it's called.
Assume you think so, then it
676
00:34:57,080 --> 00:35:00,160
goes to the tip, which is quick
because it's only 6 months worth
677
00:35:00,160 --> 00:35:02,240
of blocks.
From now, yeah.
678
00:35:02,240 --> 00:35:03,640
And from.
That point on you can use your
679
00:35:03,640 --> 00:35:06,280
note pretty much normally.
You you can create a wallet, you
680
00:35:06,280 --> 00:35:08,480
can receive coins, you can send
coins, you have a mem pool, all
681
00:35:08,480 --> 00:35:11,200
that stuff works.
Meanwhile in the background it
682
00:35:11,200 --> 00:35:14,520
starts at genesis block, goes
all the way to block 848,000.
683
00:35:15,000 --> 00:35:20,880
Make sure that the EDXO set from
Genesis actually matches what
684
00:35:20,880 --> 00:35:26,320
you assumed and it's the moment
it confirms that it's happy and
685
00:35:26,320 --> 00:35:29,720
if not, it crashes right?
So for a limited amount of time,
686
00:35:29,720 --> 00:35:32,240
you are kind of trusting the
developers.
687
00:35:32,240 --> 00:35:37,240
Yes, You know, potentially the
developers could have yeah, I
688
00:35:37,240 --> 00:35:40,640
mean actually that coins to
themselves that weren't really
689
00:35:40,640 --> 00:35:42,920
theirs, to name an extreme
example.
690
00:35:42,920 --> 00:35:45,280
Yeah.
But your note is still you know,
691
00:35:45,280 --> 00:35:47,320
it's a temporary thing.
It's like OK, it's a stop gap
692
00:35:47,320 --> 00:35:50,240
until we've the note is really
fully synced and the.
693
00:35:50,240 --> 00:35:51,880
Other thing is you're.
Just going to any.
694
00:35:51,880 --> 00:35:53,920
Kind of fraud would be trivial
to detect, right?
695
00:35:53,920 --> 00:35:57,440
Because anybody can take their
own node, make this snapshot
696
00:35:57,440 --> 00:36:00,360
themselves, compare the hash and
look at the code and say, hey,
697
00:36:00,560 --> 00:36:03,680
the hash in the code does not
actually match what I found.
698
00:36:03,680 --> 00:36:07,320
So it's not just new people
using it that would be surprised
699
00:36:07,320 --> 00:36:08,680
by this.
Everybody would be saying, hey,
700
00:36:08,680 --> 00:36:12,000
why is Bitcoin Core putting a
invalid snapshot in the source
701
00:36:12,000 --> 00:36:15,560
code, But it does actually check
against this is something so you
702
00:36:15,560 --> 00:36:17,720
cannot why is.
My money gone there.
703
00:36:17,720 --> 00:36:20,160
Why is source so rich all of a
sudden?
704
00:36:20,640 --> 00:36:24,040
Something like that, yeah.
So it's not the case that you
705
00:36:24,040 --> 00:36:26,400
can just download a snapshot
from a random person on the
706
00:36:26,400 --> 00:36:29,560
Internet and they could pull
that thing on you because
707
00:36:29,560 --> 00:36:32,680
Bitcoin Core assume like is
expecting a specific one.
708
00:36:34,120 --> 00:36:35,760
But maybe in the future that
might change.
709
00:36:35,760 --> 00:36:38,800
It depends on what people want
and what risks you're worried
710
00:36:38,800 --> 00:36:40,160
about.
Right.
711
00:36:41,200 --> 00:36:43,440
So, but you still have to do
like you have to find the
712
00:36:43,440 --> 00:36:46,320
torrent, you have to download
it, you have to enter a command.
713
00:36:46,320 --> 00:36:49,080
So the next steps will be to
make that process easier.
714
00:36:50,680 --> 00:36:52,200
Right.
OK.
715
00:36:52,280 --> 00:36:54,760
So that's included in Bitcoin
Core 28 as well.
716
00:36:54,880 --> 00:37:01,200
Yep, Next point.
It's now easier to migrate your
717
00:37:01,200 --> 00:37:05,280
wallet from your legacy wallet
to the new descriptor wallet
718
00:37:05,280 --> 00:37:06,400
format.
Yeah.
719
00:37:06,400 --> 00:37:10,360
So basically a couple of years
ago already the Bitcoin Core
720
00:37:10,360 --> 00:37:12,400
wallet was changed in two
important ways.
721
00:37:12,760 --> 00:37:16,720
One is it uses a more modern way
to organize cool to organize
722
00:37:16,720 --> 00:37:19,480
keys using descriptors.
We probably talked about that a
723
00:37:19,480 --> 00:37:21,240
little bit along with mini
script.
724
00:37:21,920 --> 00:37:24,080
We've definitely spoken about
this in one of our episodes,
725
00:37:24,080 --> 00:37:26,160
basically.
The wallet used to be a just a
726
00:37:26,160 --> 00:37:31,160
bag of keys and some scripts and
some logic to make sure that
727
00:37:31,160 --> 00:37:34,080
it's presenting same addresses.
And this has been made much more
728
00:37:34,080 --> 00:37:36,920
elegant in a way that's also
easier to import your wallet,
729
00:37:36,920 --> 00:37:38,360
export your wallet, that sort of
stuff.
730
00:37:39,520 --> 00:37:43,120
The other thing that changed is
the database back end, which is
731
00:37:43,120 --> 00:37:46,240
a bit boring, but we used to
have wallets.
732
00:37:46,520 --> 00:37:50,360
The wallet used to use Berkeley
DB, which is a very, very old
733
00:37:50,360 --> 00:37:53,640
piece of software that we use a
10 year old version of from like
734
00:37:53,760 --> 00:37:56,960
2014 or even older, I think
maybe 2010.
735
00:37:58,120 --> 00:38:01,920
And the new modern wallet used
SQLite 3, which is a modern
736
00:38:02,440 --> 00:38:06,160
database thing.
And so those two things were
737
00:38:06,160 --> 00:38:08,880
combined.
So it's the nicer organized
738
00:38:08,880 --> 00:38:11,320
scripts and the more modern
database back end.
739
00:38:11,880 --> 00:38:14,400
And now the goal is to get rid
of that old database back end.
740
00:38:14,400 --> 00:38:16,520
But of course, you know, there's
a lot of money in these old
741
00:38:16,520 --> 00:38:18,400
wallets, so we don't want people
to lose anything.
742
00:38:19,640 --> 00:38:22,640
And so there's a migration tool
that has already been there for
743
00:38:22,640 --> 00:38:24,000
a while, but you need to come
outline.
744
00:38:24,000 --> 00:38:25,680
And I believe now you can do it
from the GUI.
745
00:38:26,280 --> 00:38:29,360
And this tool is going to get
more and more like insistent
746
00:38:29,360 --> 00:38:32,840
that you use it because the goal
is to get rid of the old
747
00:38:32,840 --> 00:38:36,480
database format.
But there is a way that we can
748
00:38:36,480 --> 00:38:39,920
still read those old wallets.
So we will get rid of the
749
00:38:39,920 --> 00:38:42,360
software dependency, but there
will still be code in Bitcoin
750
00:38:42,360 --> 00:38:45,640
Core that can read the old
wallet and then upgrade it, but
751
00:38:45,640 --> 00:38:49,320
he cannot use it anymore so.
Let's say I have a Bitcoin core
752
00:38:49,320 --> 00:38:51,320
wallet that's still legacy
wallet.
753
00:38:51,320 --> 00:38:54,000
What's the incentive for me to
upgrade?
754
00:38:54,000 --> 00:38:55,560
What's the benefit for me, if
any?
755
00:38:57,400 --> 00:38:59,800
Sanity.
But in the future, you don't
756
00:38:59,800 --> 00:39:03,160
have a choice, OK?
It will basically say like, hey,
757
00:39:03,760 --> 00:39:05,800
you need to upgrade this wallet,
otherwise you can't use it.
758
00:39:05,800 --> 00:39:07,960
We'll keep, you know, you keep a
backup of the old thing.
759
00:39:08,200 --> 00:39:10,480
So if there's if there is a
problem, please file a bug
760
00:39:10,480 --> 00:39:12,920
report, Right.
But yeah.
761
00:39:13,400 --> 00:39:17,520
OK, so that's now a bit.
Upgrading or migrating I should
762
00:39:17,520 --> 00:39:20,560
say, is now a bit easier.
Yep, you can actually see what
763
00:39:20,560 --> 00:39:22,000
you're doing if you're not a
developer.
764
00:39:22,360 --> 00:39:24,480
I think it just just press a
button.
765
00:39:24,480 --> 00:39:29,200
Yeah, yeah, I.
Like buttons final point last
766
00:39:29,200 --> 00:39:31,080
point of this episode.
Sure.
767
00:39:31,120 --> 00:39:32,800
Yeah, there's.
Plenty more in the release, but
768
00:39:32,920 --> 00:39:34,520
this is what we're going to
cover, yeah.
769
00:39:34,520 --> 00:39:36,120
We're we're.
This is the.
770
00:39:36,120 --> 00:39:38,280
Most exciting feature I think of
the release.
771
00:39:39,920 --> 00:39:44,880
Is that sarcasm?
Yes, block files are No.
772
00:39:45,840 --> 00:39:47,720
I'm not sure how to pronounce
this.
773
00:39:47,800 --> 00:39:49,840
XOR.
Yeah, block file XOR.
774
00:39:50,840 --> 00:39:54,640
What is a block block file XOR?
Well, the goal is the the
775
00:39:54,640 --> 00:39:55,440
problem here.
What's?
776
00:39:55,440 --> 00:39:57,720
New here.
Is that there are virus scanners
777
00:39:57,720 --> 00:40:01,880
out there and they historically
already they would look at your
778
00:40:01,880 --> 00:40:03,400
MAMPOL and they would look at
your blocks.
779
00:40:03,840 --> 00:40:06,200
And then if something was,
especially back then in the
780
00:40:06,200 --> 00:40:10,160
MAMPOL that looked like a virus,
like a transaction that just
781
00:40:10,160 --> 00:40:14,320
has, you know, an upper turn,
which doesn't do anything, but
782
00:40:14,320 --> 00:40:17,520
the upper turn is followed by a
well known worm or a well known
783
00:40:17,520 --> 00:40:21,200
virus, then the virus scanner
doesn't know that it's just a.
784
00:40:21,600 --> 00:40:23,400
You know an operator and it
doesn't do anything.
785
00:40:23,560 --> 00:40:25,120
It just sees the pattern of the
virus.
786
00:40:25,120 --> 00:40:27,520
It puts your whole pick on core
note into quarantine.
787
00:40:27,960 --> 00:40:31,600
Or worse, it puts some files in
quarantine but breaking the
788
00:40:31,600 --> 00:40:32,280
node.
Basically we.
789
00:40:32,280 --> 00:40:35,560
Did discuss this at some point
in some context, but I think.
790
00:40:36,080 --> 00:40:38,400
I think so too.
And and and from what I remember
791
00:40:38,400 --> 00:40:41,080
is it was first added to the mem
pool, the solution that we're
792
00:40:41,080 --> 00:40:43,560
about to discuss.
And that same solution is now
793
00:40:43,560 --> 00:40:46,720
also applied to the blockchain
files on your disk, right?
794
00:40:46,760 --> 00:40:50,040
OK, So the the problem indeed
is, so you're storing all kinds
795
00:40:50,040 --> 00:40:52,080
of data in your mem pool in your
blockchain.
796
00:40:52,320 --> 00:40:55,000
And this data can also be
generated not what is usually
797
00:40:55,000 --> 00:40:57,720
generated by other people on the
Internet.
798
00:40:58,120 --> 00:41:00,360
Yeah.
And it can be generated in such
799
00:41:00,360 --> 00:41:03,720
a way, like you said, people can
just put data in an opportunity,
800
00:41:03,720 --> 00:41:05,760
for example, that just looks a
lot like virus.
801
00:41:06,320 --> 00:41:09,280
And then your virus scanner
will, you know, say, hey, that
802
00:41:09,280 --> 00:41:11,360
doesn't look good to me.
I'm just going to lock this
803
00:41:11,360 --> 00:41:15,000
entire program over here, which
in that case is Bitcoin.
804
00:41:15,000 --> 00:41:16,320
So you can't use Bitcoin
anymore.
805
00:41:16,880 --> 00:41:20,880
So there was a solution for this
for the member already.
806
00:41:20,880 --> 00:41:22,320
I'm pretty sure we discussed
that.
807
00:41:22,320 --> 00:41:25,760
And now the same solution has
been applied to the blockchain
808
00:41:25,760 --> 00:41:26,960
itself.
So what's the solution?
809
00:41:26,960 --> 00:41:29,240
Yeah, the.
Solution is called XOR which
810
00:41:29,240 --> 00:41:33,400
basically how to easily.
It scrambles it obviously, but
811
00:41:33,400 --> 00:41:34,920
it scrambles it in a symmetrical
way.
812
00:41:34,920 --> 00:41:38,680
So you you use one key from.
The blockchain in this case,
813
00:41:38,680 --> 00:41:41,040
yeah.
On disk it uses a key, very
814
00:41:41,040 --> 00:41:43,920
simple key, and it just encrypts
everything with that key, and
815
00:41:43,920 --> 00:41:45,600
with the same key it can decrypt
it.
816
00:41:45,680 --> 00:41:50,280
And this operation is extremely
fast on most computers, so it
817
00:41:50,280 --> 00:41:52,760
can be done easily.
It's not meant to be a secure
818
00:41:52,760 --> 00:41:56,840
form of encryption.
Like any 5 year old can decrypt
819
00:41:56,840 --> 00:42:00,320
it because the encryption key is
literally stored next to it.
820
00:42:00,800 --> 00:42:03,360
So it's like here's the
encryption key like please go
821
00:42:03,360 --> 00:42:05,160
decrypt.
It's just enough to trick the
822
00:42:05,160 --> 00:42:08,640
virus scanner, right?
Just to hide it from the virus
823
00:42:08,640 --> 00:42:10,840
scanner and so.
If the virus scanner tries to be
824
00:42:10,840 --> 00:42:13,120
really smart and says, well, I
think that's the decryption key,
825
00:42:13,120 --> 00:42:15,720
let me decrypt it and then it's
game over.
826
00:42:15,720 --> 00:42:19,880
But hopefully, because viruses
of course use this trick too to
827
00:42:19,880 --> 00:42:23,400
hide some of their own code, so
they might start with some code
828
00:42:23,480 --> 00:42:26,200
that is just enough to extract
the real code.
829
00:42:26,680 --> 00:42:30,240
And so virus scanners will look
at code that you know, decrypts
830
00:42:30,320 --> 00:42:33,120
bad code, etcetera.
So hopefully this won't be a cat
831
00:42:33,120 --> 00:42:36,560
and mouse game, but there it is.
OK.
832
00:42:37,840 --> 00:42:39,600
OK.
Well, that's covers it.
833
00:42:39,600 --> 00:42:42,400
Well, as as we mentioned,
there's of course a whole bunch
834
00:42:42,400 --> 00:42:46,480
of new, you know, upgrades,
maintenance, all kinds of stuff
835
00:42:46,480 --> 00:42:48,800
happening with Bitcoin Core, but
these were some of the most
836
00:42:48,800 --> 00:42:51,960
notable changes in Bitcoin Core
28.
837
00:42:52,600 --> 00:42:54,640
That's right.
Where can people find Bitcoin
838
00:42:54,640 --> 00:42:56,600
core 28 yours Bitcoin?
Core.org.
839
00:42:57,320 --> 00:42:59,600
Great.
Or they can go on Noster and
840
00:42:59,600 --> 00:43:05,120
follow me or Vladimir from the
land who you know, the former
841
00:43:05,120 --> 00:43:08,920
elite maintainer.
And there you can actually get a
842
00:43:08,920 --> 00:43:11,680
torrent directly that doesn't
even take you to get up.
843
00:43:12,840 --> 00:43:14,960
But you should just probably
just go to bitcoincore.org.
844
00:43:16,000 --> 00:43:17,360
Sounds good.
Yep.
845
00:43:17,640 --> 00:43:20,320
All right then, thank you for
listening to Bitcoin explain.
00:00:16,490 --> 00:00:22,690
Live from this is Bitcoin
explained Hey sure Hello how
2
00:00:22,690 --> 00:00:24,810
have you been?
Not bad, it's only been three
3
00:00:24,810 --> 00:00:28,810
months.
Was our last episode also a
4
00:00:28,810 --> 00:00:30,450
Bitcoin Core release episode
perhaps?
5
00:00:30,450 --> 00:00:32,369
No, no, no.
We talked about silent payments.
6
00:00:32,490 --> 00:00:34,960
Oh, that's right.
Yes, that is right.
7
00:00:35,840 --> 00:00:38,720
Well, this time we're going to
discuss the new Bitcoin Core
8
00:00:38,720 --> 00:00:42,480
release, because there is one.
Version 28.0.
9
00:00:43,160 --> 00:00:47,200
First, here's a message from our
sponsor, Coinkite.
10
00:00:47,600 --> 00:00:50,280
Sure, she put a bunch of
presents here for me to look at.
11
00:00:50,480 --> 00:00:54,160
That's right.
This this looks like a battery.
12
00:00:54,440 --> 00:00:58,360
Yeah, this is a 9 Volt battery.
You know the the this square
13
00:00:58,360 --> 00:01:00,920
shape battery for people who
don't know what they look like
14
00:01:01,040 --> 00:01:02,120
a.
Duracell Battery.
15
00:01:02,120 --> 00:01:05,600
And then there's a little device
next to it and there's I believe
16
00:01:05,600 --> 00:01:08,760
called cold power, which you can
connect to the 9 Volt battery
17
00:01:08,760 --> 00:01:11,120
and then it can power any USB
device.
18
00:01:11,480 --> 00:01:14,920
But you know, probably the USB
device you want to power with it
19
00:01:15,920 --> 00:01:19,680
is the cold card.
I Yeah.
20
00:01:19,680 --> 00:01:23,480
So wait, so this is a coincide
products that I'm holding right
21
00:01:23,480 --> 00:01:24,240
now.
Yes.
22
00:01:25,040 --> 00:01:26,920
And oh, I see.
I can wait.
23
00:01:26,920 --> 00:01:30,480
I have to maybe So what?
OK, yes.
24
00:01:31,520 --> 00:01:34,080
It's very unfortunate in moments
like these that we don't have
25
00:01:34,080 --> 00:01:37,600
any video with our podcast.
Well, this this is.
26
00:01:38,000 --> 00:01:41,480
OK, so I'm now attaching this
little like USB advice.
27
00:01:41,560 --> 00:01:44,320
You should do it closer to the
mic and then we can play the the
28
00:01:44,320 --> 00:01:49,440
game that they do in queue music
called that hello the sound and
29
00:01:49,440 --> 00:01:50,760
then you have to guess what
sound it is.
30
00:01:50,760 --> 00:01:54,280
This is a very Dutch in joke.
OK, so now I connected the
31
00:01:54,280 --> 00:01:56,600
battery to the thingy and now
now it's charging.
32
00:01:56,880 --> 00:01:59,120
No, no, not now.
That's just AUSB port.
33
00:01:59,120 --> 00:02:01,880
Now you can connect the USB
cable to that and then the cold
34
00:02:01,880 --> 00:02:03,920
card to it.
And then you have your hardware
35
00:02:03,920 --> 00:02:06,640
wallet getting power, not so
much charging because it, I
36
00:02:06,840 --> 00:02:10,520
don't think it has a battery,
but just it has power.
37
00:02:10,520 --> 00:02:13,480
So you can turn it on and you
can move your files from the
38
00:02:13,480 --> 00:02:17,720
hardware wallet to the computer
without having this device
39
00:02:17,720 --> 00:02:21,080
connected to AUSB port of the
computer.
40
00:02:22,880 --> 00:02:27,560
I have absolutely no idea what's
going on here, but it's I also
41
00:02:27,560 --> 00:02:30,400
don't want to linger on it for
10 minutes and they're not
42
00:02:30,400 --> 00:02:33,560
paying us enough for that.
It's a very cool device though.
43
00:02:33,560 --> 00:02:37,480
It's called the cold.
But I think they primarily want
44
00:02:37,480 --> 00:02:40,320
to sell more, more cold cards,
their hardware wallets.
45
00:02:40,320 --> 00:02:43,000
OK, cold cards wait, but I got
something else as well.
46
00:02:43,000 --> 00:02:46,040
There's here is the top signer
of the what?
47
00:02:46,040 --> 00:02:49,600
What is this source?
You can tap it and then it signs
48
00:02:49,600 --> 00:02:51,600
things.
I think it's just kind of like
49
00:02:51,640 --> 00:02:53,320
it.
Just has your private key on it.
50
00:02:53,360 --> 00:02:56,160
Yeah, Would that wouldn't be
your like savings private key,
51
00:02:56,160 --> 00:02:58,400
Obviously we could be just one
of many keys.
52
00:02:59,880 --> 00:03:01,840
And this is another coin guide
product.
53
00:03:01,840 --> 00:03:03,840
Coin guides making all sorts of
stuff nowadays.
54
00:03:03,880 --> 00:03:05,360
Yours.
I remember when they were just
55
00:03:05,360 --> 00:03:07,800
making hardware wallets.
The open times.
56
00:03:09,040 --> 00:03:13,680
Yeah, I mean, they've been at it
for a long time, actually.
57
00:03:13,720 --> 00:03:18,600
Like Rodolfo was at the 2014
conference in Amsterdam.
58
00:03:19,040 --> 00:03:21,200
Oh, that's 10 years ago.
Yeah, I don't remember what he
59
00:03:21,200 --> 00:03:23,560
was like.
He was already like selling
60
00:03:23,560 --> 00:03:28,000
stuff and building thingies and,
you know, gadgets and who knows
61
00:03:28,000 --> 00:03:29,480
what.
I don't think it was hard role.
62
00:03:29,480 --> 00:03:31,160
Maybe it was actually back then,
I don't know.
63
00:03:31,360 --> 00:03:36,400
And then here we got the
calculator looking hardware
64
00:03:36,400 --> 00:03:38,640
wallet as well.
The queue, the queue.
65
00:03:39,040 --> 00:03:42,720
OK, we've we've this is way more
than they paid for.
66
00:03:42,720 --> 00:03:44,720
Let's get to actual the actual
episode here.
67
00:03:44,720 --> 00:03:46,280
Shows.
Well, there's another fun news
68
00:03:46,520 --> 00:03:51,320
which is that how do I say this?
Iron stack sets, Iron stack
69
00:03:51,320 --> 00:03:58,040
sets, Iron stack sets because we
have connected you in fountain
70
00:03:59,240 --> 00:04:03,280
so that the SAT's that are
streamed now also go to you so
71
00:04:03,280 --> 00:04:04,680
you didn't have to set up your
own node.
72
00:04:04,760 --> 00:04:07,920
I I think we need to make more
episodes for that to actually
73
00:04:08,400 --> 00:04:10,920
return some dividends.
I haven't seen anything come in
74
00:04:10,920 --> 00:04:12,680
I think.
No, because we haven't done an.
75
00:04:12,680 --> 00:04:13,960
Episode.
OK, there we go.
76
00:04:13,960 --> 00:04:16,640
And they're not a sponsor.
Apparently people aren't paying
77
00:04:16,640 --> 00:04:18,560
us for doing nothing.
The podcasting 2 point O.
78
00:04:18,560 --> 00:04:20,680
So let's get to the actual
episode there shows.
79
00:04:20,800 --> 00:04:26,120
Yes, Sir.
Bitcoin Core 28, we've mentioned
80
00:04:26,120 --> 00:04:29,640
in basically every other Bitcoin
Core, you know, new release
81
00:04:29,640 --> 00:04:32,200
episode that there is a new
Bitcoin Core release every half
82
00:04:32,200 --> 00:04:34,480
year.
People know that by now, which
83
00:04:34,480 --> 00:04:38,440
means that whatever is done at a
certain time goes in.
84
00:04:38,440 --> 00:04:40,600
If it's not done yet, then it
doesn't go in.
85
00:04:40,600 --> 00:04:42,560
You know, this is kind of
different with some other
86
00:04:42,560 --> 00:04:45,160
software products.
You will release a new version
87
00:04:45,160 --> 00:04:46,800
when some sort of new future is
done.
88
00:04:46,800 --> 00:04:49,640
Bitco Core Nope, every half year
there's just whatever is done is
89
00:04:49,640 --> 00:04:51,560
in there.
So we're going to discuss what's
90
00:04:51,560 --> 00:04:55,960
in there this time There is,
there are some at least slightly
91
00:04:55,960 --> 00:04:58,640
interesting things in there,
yes, I would say.
92
00:04:59,440 --> 00:05:01,000
I'd say it's quite a lot of
interesting things.
93
00:05:01,000 --> 00:05:02,360
Yeah, it's like an actual
upgrade.
94
00:05:02,360 --> 00:05:05,480
Sometimes it's, you know, it
seems sort of like a maintenance
95
00:05:05,480 --> 00:05:06,920
upgrade.
Now, there's some actual new
96
00:05:06,920 --> 00:05:10,800
stuff here.
We'll start off with what is, at
97
00:05:10,800 --> 00:05:14,000
least in my personal opinion,
the least interesting 1.
98
00:05:14,280 --> 00:05:15,920
I don't know why we're even
discussing this.
99
00:05:15,920 --> 00:05:17,080
I think it's one of my
favourites.
100
00:05:17,080 --> 00:05:19,120
The test net one.
Test NET 4.
101
00:05:19,440 --> 00:05:21,680
That's right.
Why are we talking about test
102
00:05:21,680 --> 00:05:23,680
net?
Short Test net is not Bitcoin
103
00:05:23,720 --> 00:05:25,280
anyway, so there's a new test
net.
104
00:05:25,280 --> 00:05:26,480
Sure.
She wants to talk about the new
105
00:05:26,480 --> 00:05:28,080
test net.
What's new with the new test
106
00:05:28,080 --> 00:05:29,520
net?
Well, there's there's two two
107
00:05:29,600 --> 00:05:34,360
things in there. 1 is there were
recently block storms, also
108
00:05:34,360 --> 00:05:38,320
known as the lop lop apocalypse.
Lop apocalypse.
109
00:05:38,320 --> 00:05:40,240
It's hard to pronounce.
Actually, it's easy to write.
110
00:05:40,240 --> 00:05:44,560
The lop lop that is harder to
pronounce than you would think.
111
00:05:45,800 --> 00:05:48,760
James and Lop was just trolling
everyone with just a single
112
00:05:48,760 --> 00:05:52,120
laptop producing hundreds of
thousands of blocks, making test
113
00:05:52,120 --> 00:05:57,000
net 3 unusable for people with
bad software, but also generally
114
00:05:57,000 --> 00:06:01,320
not not easy to use.
And it was exploiting a a well
115
00:06:01,320 --> 00:06:05,200
known a bunch of well known
vulnerabilities in in test net 3
116
00:06:05,200 --> 00:06:06,640
specifically.
The problem with test net
117
00:06:06,640 --> 00:06:10,440
fundamentally, and we'll never
be able to fix that, is that it
118
00:06:10,520 --> 00:06:13,640
cannot fully rely on proof of
work the way Bitcoin does
119
00:06:14,640 --> 00:06:16,400
because all the proof of work is
on Bitcoin.
120
00:06:16,400 --> 00:06:20,520
And if it was the same as
Bitcoin, it would be a shit coin
121
00:06:20,880 --> 00:06:23,680
and it would be attacked, you
know?
122
00:06:23,840 --> 00:06:26,680
I mean, the problem, of course,
is that, you know, performing
123
00:06:26,680 --> 00:06:30,160
proof of work actually costs,
you know, requires you to
124
00:06:30,160 --> 00:06:32,680
perform proof of work.
There's like actual energy you
125
00:06:32,680 --> 00:06:33,960
have to expend.
Yeah.
126
00:06:33,960 --> 00:06:36,440
And the reason miners do that on
Bitcoin is because they get paid
127
00:06:36,440 --> 00:06:38,040
for it in Bitcoin.
Yeah.
128
00:06:38,040 --> 00:06:41,680
While testnet, which is designed
to not be worth anything.
129
00:06:41,920 --> 00:06:45,200
And if it does get worth, you
know, if people start valuing
130
00:06:45,200 --> 00:06:48,600
it, they just, they reset it
and, you know, they being a
131
00:06:48,600 --> 00:06:50,360
developer.
So it's like designed to not
132
00:06:50,360 --> 00:06:52,560
have any value.
So therefore there's actually
133
00:06:52,560 --> 00:06:57,240
no, yeah.
And, and even if there was,
134
00:06:57,240 --> 00:07:00,840
which indeed, you know, the sort
of the rule is that if that
135
00:07:00,840 --> 00:07:05,480
happens, if people start valuing
test net coins, then it's being
136
00:07:05,480 --> 00:07:07,480
it, it gets reset.
There's just a new test net,
137
00:07:07,480 --> 00:07:09,640
which is what's happening.
And part of the reason is
138
00:07:09,640 --> 00:07:13,600
because people started selling
test net 3 coins, but it was
139
00:07:13,600 --> 00:07:16,880
also just becoming harder and
harder to use and one of the
140
00:07:16,880 --> 00:07:19,880
weaknesses in the test net 3.
So in order to deal with this
141
00:07:19,880 --> 00:07:24,520
lack of of incentives, it has a
few extra test net has a few
142
00:07:24,520 --> 00:07:28,400
extra rules that keep it
somewhat workable in the face of
143
00:07:28,520 --> 00:07:31,280
of minors messing with the
network.
144
00:07:31,760 --> 00:07:33,720
In particular.
What could have could happen
145
00:07:33,760 --> 00:07:38,200
without these rules is a minor
decides to put like a giant ASIC
146
00:07:38,200 --> 00:07:42,560
farm on test net three, increase
the difficulty to some really,
147
00:07:42,560 --> 00:07:44,480
really high difficulty and then
disappear.
148
00:07:45,080 --> 00:07:48,320
And then if you're just at home
trying to test something with
149
00:07:48,320 --> 00:07:51,040
your CPU, you just cannot mine a
block anymore.
150
00:07:51,600 --> 00:07:55,240
And so test net had a rule that
after 20 minutes, you could do
151
00:07:55,240 --> 00:07:58,440
it anyway at a very low
difficulty.
152
00:07:59,680 --> 00:08:03,000
And it was a bunch of these
rules and they were such that
153
00:08:03,000 --> 00:08:06,280
they were creating a mess
because it it was too easy to
154
00:08:06,280 --> 00:08:09,960
mine hundreds of thousands of
block very quickly and test Net
155
00:08:09,960 --> 00:08:14,040
4 fixes that at least fixes it
somewhat because fundamentally
156
00:08:14,040 --> 00:08:16,680
you can't really fix it.
Yeah.
157
00:08:16,680 --> 00:08:18,640
OK.
So how does test net for fix it?
158
00:08:19,880 --> 00:08:24,080
I don't know, I forgot it.
It basically adds a few more
159
00:08:24,080 --> 00:08:26,320
constraints to the timestamp I
think.
160
00:08:27,160 --> 00:08:29,920
I think one of the problems was
that you would.
161
00:08:30,520 --> 00:08:32,760
So after 20 minutes you were
able to mine that block a
162
00:08:32,760 --> 00:08:35,120
difficulty 1, which is the
lowest difficulty.
163
00:08:35,960 --> 00:08:38,919
And then what you would do is
the last block in the in the
164
00:08:38,919 --> 00:08:41,039
difficulty period would also be
one.
165
00:08:41,159 --> 00:08:43,039
And then you would keep doing
that.
166
00:08:43,039 --> 00:08:44,960
Then the difficulty would
permanently be 1.
167
00:08:45,240 --> 00:08:47,520
So it wouldn't be temporary for
20 minutes, it would just be
168
00:08:47,520 --> 00:08:49,760
permanent.
And so I think the new rule is
169
00:08:49,760 --> 00:08:53,000
that the the block at the edge
of the difficulty period has to
170
00:08:53,000 --> 00:08:57,680
be the normal difficulty.
So the downside is that if some
171
00:08:57,680 --> 00:09:03,120
ASIC drives up the difficulty,
you can mine blocks after 20
172
00:09:03,120 --> 00:09:05,880
minutes, but not the first block
of the difficulty period.
173
00:09:05,880 --> 00:09:09,480
So some ASIC will have to come
around once every two weeks to
174
00:09:09,480 --> 00:09:13,320
produce 1 block if this happens,
but they can't then lower the
175
00:09:13,320 --> 00:09:16,560
difficulty permanently.
OK.
176
00:09:16,680 --> 00:09:18,200
Because the problem is once the
difficulty I.
177
00:09:18,200 --> 00:09:21,880
Hope you can excuse me for kind
of not being very interested in
178
00:09:21,880 --> 00:09:24,640
all the adversarial ways that
test net can be abused.
179
00:09:24,640 --> 00:09:28,040
No, I wanted to move on to
actual Bitcoin here, Yeah.
180
00:09:28,880 --> 00:09:30,000
This is fundamental.
I mean, if you.
181
00:09:30,000 --> 00:09:32,840
Think there's something to add
for our listener that might find
182
00:09:32,840 --> 00:09:34,360
this interesting?
Go ahead.
183
00:09:34,360 --> 00:09:37,600
But I'm I'm done with the test
net stuff short well.
184
00:09:37,600 --> 00:09:38,960
Didn't you want to talk about
the time warp fix?
185
00:09:38,960 --> 00:09:40,800
Yes.
Let's go to the Oh no, that is
186
00:09:40,800 --> 00:09:42,760
still test net, Yeah.
But.
187
00:09:42,760 --> 00:09:45,000
It's OK, OK.
I thought we were already there.
188
00:09:45,160 --> 00:09:46,440
Go for it.
Well, the.
189
00:09:46,440 --> 00:09:48,840
Time Warp Fix is something we
talked about in the great
190
00:09:48,840 --> 00:09:53,080
consensus cleanup episode, yes.
So it's useful to, to try that
191
00:09:53,080 --> 00:09:56,120
on test net simply because you
know, maybe one day we want to
192
00:09:56,120 --> 00:09:58,040
use it on mainnet.
But that's not the immediate
193
00:09:58,040 --> 00:10:02,000
plan here.
And one practical reasons why
194
00:10:02,000 --> 00:10:04,760
it's being deployed on test net
is because the timeboral protect
195
00:10:04,760 --> 00:10:09,600
is another way to very quickly
mine all the coins, like mine
196
00:10:09,600 --> 00:10:12,160
the whole subsidy.
So you want to prevent that.
197
00:10:12,160 --> 00:10:14,720
We definitely want to prevent
that on main net because that's
198
00:10:14,720 --> 00:10:17,440
just bad.
But on test net, it's, it's also
199
00:10:17,440 --> 00:10:19,560
important to prevent it because
otherwise someone's going to
200
00:10:19,560 --> 00:10:23,480
mine all 21 million coins on
test net and then we have to
201
00:10:23,480 --> 00:10:29,760
make another test net.
Which is totally fine.
202
00:10:30,640 --> 00:10:33,360
For you, yeah, But it's a pain
in it's a pain in the butt to
203
00:10:33,360 --> 00:10:35,480
make a new test net.
There's actual, actual work
204
00:10:35,480 --> 00:10:38,720
involved, OK.
So there is a time work, the
205
00:10:38,720 --> 00:10:42,000
time warp fix that is part of
the great consensus cleanup
206
00:10:42,400 --> 00:10:45,880
which we discussed just two
episodes ago.
207
00:10:46,600 --> 00:10:50,560
So everyone you know, still has
that fresh in their memory of,
208
00:10:51,320 --> 00:10:54,320
you know, January 2022 or
whenever the last episode was
209
00:10:54,320 --> 00:10:55,040
two weeks.
Ago.
210
00:10:56,600 --> 00:10:58,560
But that has been rolled out on
test net.
211
00:10:58,560 --> 00:11:00,320
So in a way it's also being
tested now.
212
00:11:00,320 --> 00:11:02,640
I guess you can sort of see it
that way.
213
00:11:03,040 --> 00:11:05,960
Yeah, and it it already led to
some discussion and some people
214
00:11:05,960 --> 00:11:09,920
argued that this fix is not good
enough, not even for mainnet.
215
00:11:10,080 --> 00:11:13,400
And so it's good to have this
code out there when when code is
216
00:11:13,400 --> 00:11:15,520
actually out there, people are
more likely to look at it and
217
00:11:15,520 --> 00:11:19,160
critique it.
Good, but.
218
00:11:19,160 --> 00:11:21,280
One thing that's important to
point out, I already kind of
219
00:11:21,280 --> 00:11:24,800
said it, but often times when
there's a software proposal,
220
00:11:25,040 --> 00:11:27,080
people hash out the whole
software proposal, then they
221
00:11:27,080 --> 00:11:29,320
agree, then they deployed on
test net, then they deployed on
222
00:11:29,320 --> 00:11:30,880
mainnet.
That's not what happening here.
223
00:11:30,880 --> 00:11:34,920
This is just a test on test net.
It's not like the test that's,
224
00:11:34,920 --> 00:11:36,640
you know, we're about to do this
on mainnet.
225
00:11:37,120 --> 00:11:38,600
Yeah, this is actually
different.
226
00:11:38,600 --> 00:11:41,680
There's actually a practical
reason to use this on test net
227
00:11:41,680 --> 00:11:43,240
right now.
That's the reason it's on test
228
00:11:43,240 --> 00:11:44,840
net right now.
Not to test it from.
229
00:11:44,840 --> 00:11:47,760
Mainnet well.
It it's there to test in case we
230
00:11:47,760 --> 00:11:50,120
want it from mainnet, but it's
not like the the typical
231
00:11:50,120 --> 00:11:52,400
software test on test net is
really like, OK, we think this
232
00:11:52,400 --> 00:11:56,000
is completely ready, whereas in
this case we don't think that.
233
00:11:57,040 --> 00:12:00,240
Right.
OK, done with that net.
234
00:12:00,680 --> 00:12:03,840
Yes, Awesome.
Let's go to Bitcoin.
235
00:12:04,680 --> 00:12:06,080
Talk about the MAMPOL.
Yeah, so.
236
00:12:06,080 --> 00:12:08,520
There's a well, the Mampol.
Isn't really the blockchain
237
00:12:08,560 --> 00:12:09,600
either.
So do you care?
238
00:12:09,600 --> 00:12:10,760
Are you going to fall asleep
again?
239
00:12:12,280 --> 00:12:14,960
Mampol definitely counts.
Mampol counts as Bitcoin.
240
00:12:14,960 --> 00:12:16,440
OK.
Mampol is sort of.
241
00:12:16,960 --> 00:12:20,520
You heard it here first.
Yeah, I, I count it.
242
00:12:20,600 --> 00:12:23,800
I count it to it.
I care about the MAMPOL for
243
00:12:23,960 --> 00:12:25,600
reasons that we're going to
explain right now.
244
00:12:26,200 --> 00:12:31,920
So there has been sort of a
package of upgrades, which also
245
00:12:31,920 --> 00:12:36,760
includes a package.
It's true though.
246
00:12:37,040 --> 00:12:41,000
So the problem in a nutshell,
and the reason that this is
247
00:12:41,360 --> 00:12:47,360
needed, I think, correct me if
I'm wrong, is so in case there
248
00:12:47,360 --> 00:12:50,480
are any listeners that don't
know this, you know, every
249
00:12:50,640 --> 00:12:54,240
Bitcoin note has a memple and
the man pool collects
250
00:12:54,280 --> 00:12:56,960
transactions that are then
included in blocks.
251
00:12:57,440 --> 00:13:00,080
So they're sort of like a
waiting room for transactions
252
00:13:00,080 --> 00:13:02,080
until they're actually included
in the blockchain.
253
00:13:02,640 --> 00:13:05,960
So if you are a minor, then
you're actually mining from the
254
00:13:05,960 --> 00:13:07,880
man pool of your note?
Essentially, yeah.
255
00:13:08,160 --> 00:13:10,160
There's no one man pool.
Everybody has their own man
256
00:13:10,160 --> 00:13:14,200
pool, but all the man pools tend
to be very similar, especially
257
00:13:14,200 --> 00:13:16,920
the top of the man pool.
The the thing that's probably
258
00:13:16,920 --> 00:13:21,800
going to be my next right.
But there is a problem, namely
259
00:13:21,800 --> 00:13:26,760
that memples are also limited in
size, Like it depends per person
260
00:13:26,760 --> 00:13:28,920
or per note how big that size is
exactly.
261
00:13:28,920 --> 00:13:32,400
But ultimately a memple also is
a size, you know, in the same
262
00:13:32,400 --> 00:13:34,640
way that a Bitcoin block is a
size maximum size.
263
00:13:35,120 --> 00:13:40,960
So if your transaction doesn't
have a have enough V, then it
264
00:13:40,960 --> 00:13:43,200
will actually drop out of
people's memples.
265
00:13:43,400 --> 00:13:47,840
Yeah, now this is a real
problem, especially for second
266
00:13:47,840 --> 00:13:55,280
layer protocols like Lightning
where sometimes you need to get
267
00:13:55,280 --> 00:13:58,120
a transaction that is sort of
pre made, pre signed.
268
00:13:58,440 --> 00:14:01,960
You need to get it into a block.
But first of all, you need to
269
00:14:01,960 --> 00:14:04,680
get it into a man pool to get it
into a block.
270
00:14:05,240 --> 00:14:09,520
Now if the fee is too low to get
it into a block, but it's at
271
00:14:09,520 --> 00:14:12,600
least gets into the man pool,
you can fix that with this trick
272
00:14:12,600 --> 00:14:14,680
called child place for parent
or.
273
00:14:14,680 --> 00:14:17,960
With replace by fee depending on
the type of transaction, right?
274
00:14:18,040 --> 00:14:20,840
But in this case, we're talking
about child place for parents
275
00:14:20,840 --> 00:14:22,360
mostly, right?
For the fix we're going to
276
00:14:22,360 --> 00:14:24,440
discuss right now, yeah.
Because if you're talking about
277
00:14:24,440 --> 00:14:27,360
lightning, what often happens is
that you and your channel
278
00:14:27,360 --> 00:14:30,240
partner agree about a
transaction, you pre sign it.
279
00:14:30,400 --> 00:14:32,440
And so at the moment you sign
it, you don't know what the
280
00:14:32,440 --> 00:14:34,000
mental fees are going to be in
the future.
281
00:14:34,480 --> 00:14:37,480
And so the only way to if you
you know, if if there's some
282
00:14:37,480 --> 00:14:40,600
conflict, you only or you can't
find the other side, the only
283
00:14:40,600 --> 00:14:44,040
way to get your transaction then
included to get it in the Maple
284
00:14:44,040 --> 00:14:46,480
at all is that it must have
enough fees to make it in the
285
00:14:46,480 --> 00:14:49,200
Maple period.
And to bump it.
286
00:14:49,360 --> 00:14:53,600
You cannot replace it because
you don't have the yeah, you
287
00:14:53,600 --> 00:14:55,920
can't RBF a transaction because
the other side has to do the
288
00:14:55,920 --> 00:14:58,840
same thing.
And so child pays for parent is
289
00:14:58,840 --> 00:15:02,360
then the only way to get it
included in the next block or to
290
00:15:02,360 --> 00:15:04,000
even get it in the Maple.
Yeah, so.
291
00:15:04,000 --> 00:15:07,840
In other words, if I want to get
my money out of a Lightning
292
00:15:08,600 --> 00:15:11,160
payment channel, then I can do
that.
293
00:15:12,520 --> 00:15:16,160
And then if the transaction fee
of me doing that is not high
294
00:15:16,160 --> 00:15:19,920
enough because this was all like
pre done, then what I can do is
295
00:15:20,040 --> 00:15:23,000
OK, you know what, I'll just
spend that money that I'm
296
00:15:23,000 --> 00:15:25,280
sending to myself anyways and
I'll spend it in a new
297
00:15:25,280 --> 00:15:29,120
transaction also to myself and
I'll close up, I'll include a
298
00:15:29,120 --> 00:15:32,840
higher fee and then you know,
notes will figure out that's OK.
299
00:15:33,040 --> 00:15:35,440
If we include both of these
transaction in the block, then
300
00:15:35,440 --> 00:15:40,080
we get both of these fees.
So that usually works unless if
301
00:15:40,080 --> 00:15:43,480
the first transaction where I'm
originally getting my money out
302
00:15:43,480 --> 00:15:46,200
of this lighting payment
channel, if that transaction
303
00:15:46,200 --> 00:15:50,760
doesn't even have enough fee to
fit in people's memples, then I
304
00:15:50,760 --> 00:15:53,840
also can't claim it with this
child pays for parent trick.
305
00:15:53,880 --> 00:15:57,840
Because now this, this child
that I'm using, you know, the
306
00:15:57,840 --> 00:16:00,760
child payment that I'm using to
claim the money isn't referring
307
00:16:00,760 --> 00:16:03,520
to something that other nodes
know about because the parent
308
00:16:03,520 --> 00:16:06,400
transaction, the first
transaction already fell out of
309
00:16:06,400 --> 00:16:10,760
their memple.
So the idea to fix that is that
310
00:16:11,120 --> 00:16:14,480
I should be able to tell other
notes on the network.
311
00:16:14,840 --> 00:16:17,560
Hey, I want to pay for this
transaction as well.
312
00:16:17,560 --> 00:16:20,120
So please consider both of these
transactions.
313
00:16:20,400 --> 00:16:22,520
I know that the first
transaction doesn't have enough
314
00:16:22,520 --> 00:16:24,040
fee for your member, I know
that.
315
00:16:24,240 --> 00:16:26,080
But look, I got another
transaction.
316
00:16:26,360 --> 00:16:28,920
Please consider them both.
Yeah, and the nice.
317
00:16:28,920 --> 00:16:31,200
Thing, that's what we're trying
to accomplish here, yeah.
318
00:16:31,200 --> 00:16:34,760
And if you can do that, then one
benefit is that when you open a
319
00:16:34,760 --> 00:16:38,880
Lightning channel, you can use a
very low fee by default because,
320
00:16:38,880 --> 00:16:41,440
you know, you can just add
whatever fees are needed later
321
00:16:41,440 --> 00:16:44,000
and you don't have to think
about the absolute worst case
322
00:16:44,840 --> 00:16:47,640
inscription hype type mental
situation.
323
00:16:48,160 --> 00:16:50,600
Yeah, yeah.
Just, you know, just assume an
324
00:16:50,600 --> 00:16:52,520
easy mental.
So it'd be nice if this was
325
00:16:52,520 --> 00:16:53,960
possible, but currently it
isn't.
326
00:16:54,560 --> 00:16:56,440
Yeah, very.
I'll, I'll repeat this one more
327
00:16:56,440 --> 00:16:59,120
time to make it very simple,
hopefully in case there's still
328
00:16:59,120 --> 00:17:00,760
someone out there doesn't
understand.
329
00:17:01,040 --> 00:17:04,000
So when it comes to including
transactions into blocks,
330
00:17:04,480 --> 00:17:08,599
transactions are potentially
considered in in combinations
331
00:17:08,599 --> 00:17:11,640
like if one transaction spends
from another, then the fees are
332
00:17:11,640 --> 00:17:14,440
sort of added up and a minor
will figure, OK, if I include
333
00:17:14,440 --> 00:17:15,720
them all, then I get enough
fees.
334
00:17:15,720 --> 00:17:16,040
Yeah.
And the.
335
00:17:16,040 --> 00:17:17,800
Minor has an incentive to do
that, of course.
336
00:17:17,800 --> 00:17:20,240
Yeah.
So the the goal is to accomplish
337
00:17:20,240 --> 00:17:23,319
a similar logic for the mental.
So notes will also see, OK,
338
00:17:23,319 --> 00:17:26,319
we're going to consider each
transactions as a combination of
339
00:17:26,319 --> 00:17:28,280
transactions rather than each
individually.
340
00:17:28,800 --> 00:17:31,480
OK, Yeah, so that's that that's
what we're trying to achieve
341
00:17:31,480 --> 00:17:34,040
here.
You know, I'm saying we that's
342
00:17:34,040 --> 00:17:36,560
what Bitcoin Core developers are
trying to achieve, yeah.
343
00:17:36,640 --> 00:17:39,800
Some Bitcoin Core developers,
not me per SE, but I try to
344
00:17:39,800 --> 00:17:41,320
understand what they're doing
right.
345
00:17:41,360 --> 00:17:45,000
And now in Bitcoin Core 28,
there's been some actual good
346
00:17:45,000 --> 00:17:49,560
progress on this, this goal.
Yeah.
347
00:17:49,880 --> 00:17:53,000
We've got 4 buzzwords basically
and we'll try to explain them
348
00:17:53,040 --> 00:17:57,080
so.
The first one you wrote down is
349
00:17:57,080 --> 00:18:00,480
one parent, one child packages.
Yes.
350
00:18:01,080 --> 00:18:02,600
And so, yeah.
Go on.
351
00:18:03,360 --> 00:18:05,680
Yeah.
So the most simple example which
352
00:18:05,680 --> 00:18:10,240
is the example you gave is you
have one parent just for example
353
00:18:10,240 --> 00:18:13,920
this lightning close thing and
one child which is your fee
354
00:18:13,920 --> 00:18:17,720
bump.
And that is a special case of a
355
00:18:17,720 --> 00:18:20,280
package, the simplest possible
package and that.
356
00:18:21,320 --> 00:18:24,040
So basically support has been
added to be Concorde to handle
357
00:18:24,040 --> 00:18:30,920
that very specific case using
under the hood something called
358
00:18:30,920 --> 00:18:34,320
the orphanage as far as I
understand it so.
359
00:18:34,320 --> 00:18:39,760
There's there's actually a part
of the Bitcoin Core code that is
360
00:18:39,760 --> 00:18:42,680
called the orphanage, yes.
And remember when Roger Veer
361
00:18:42,680 --> 00:18:44,400
said that Bitcoin Core kills
babies?
362
00:18:44,600 --> 00:18:47,680
Well, it turns out Bitcoin Core
kills a lot of them because the
363
00:18:47,680 --> 00:18:50,640
orphanage doesn't really work.
It was actually true.
364
00:18:50,640 --> 00:18:52,800
OK how so?
What is the orphanage and how
365
00:18:52,800 --> 00:18:55,160
does it work?
How does it not work?
366
00:18:56,320 --> 00:18:58,720
I'm a little vague on this, so
if you really, truly, deeply
367
00:18:58,720 --> 00:19:01,800
want to understand this, you
should look at everything Gloria
368
00:19:01,800 --> 00:19:05,040
Zhao has been writing on various
mailing lists and other places.
369
00:19:05,360 --> 00:19:08,520
Give us the which explains.
In more detail, but roughly the
370
00:19:08,520 --> 00:19:14,120
idea is this you so, so you and
I are exchanging transactions.
371
00:19:14,120 --> 00:19:16,960
You want to close your channel,
you want to send me those
372
00:19:16,960 --> 00:19:20,080
transactions, right?
And so the first thing you do is
373
00:19:20,080 --> 00:19:23,800
you tell me, hey, I have some
new transactions, namely.
374
00:19:23,800 --> 00:19:25,480
And then you don't give me the
full transaction, you just give
375
00:19:25,480 --> 00:19:27,600
me some, some identifier of
them.
376
00:19:27,840 --> 00:19:30,640
So you give me a list and I look
at that list and I say, well,
377
00:19:30,640 --> 00:19:33,200
OK, send them to me.
So then you're sending me the
378
00:19:33,200 --> 00:19:38,040
full transactions.
But, and so this would be the
379
00:19:38,040 --> 00:19:40,160
lightning close transaction that
you want to send me and the
380
00:19:40,160 --> 00:19:44,080
child that you want to send me.
However, before we did any of
381
00:19:44,080 --> 00:19:46,680
that, I told you like, I'm not
interested in transactions that
382
00:19:46,680 --> 00:19:51,120
are paying a very low fee.
And so the the Lightning action
383
00:19:51,120 --> 00:19:53,720
transaction, let's say is below
that level, but your child is
384
00:19:53,720 --> 00:19:56,320
above it so.
You're for example saying I only
385
00:19:56,320 --> 00:20:00,400
want transactions that at least
pay free sets per box and.
386
00:20:00,400 --> 00:20:05,200
So you being very nice, you
don't send me the, the thing
387
00:20:05,200 --> 00:20:06,480
that you actually want to
include.
388
00:20:06,480 --> 00:20:10,600
And you just sent me the child.
And that child then goes into
389
00:20:10,600 --> 00:20:14,240
the orphanage, into my
orphanage, because I recognize
390
00:20:14,240 --> 00:20:16,600
that this transaction looks
interesting, seems to pay a lot
391
00:20:16,600 --> 00:20:19,480
of fees, but I, I don't know the
parent.
392
00:20:19,760 --> 00:20:23,560
So then a while later, probably
a fraction of a second later, I
393
00:20:23,560 --> 00:20:27,800
ask you, could you please give
me this parent?
394
00:20:28,680 --> 00:20:32,680
And you say, sure, you didn't
send it before because the fee
395
00:20:32,680 --> 00:20:35,680
rate, but now because I'm asking
you if, if I'm asking you,
396
00:20:35,680 --> 00:20:37,120
you're going to send it to me
regardless.
397
00:20:37,920 --> 00:20:40,080
And so I look at it and say,
well, this doesn't pay enough
398
00:20:40,080 --> 00:20:43,560
fees and I just throw it away.
And then later on, the child is
399
00:20:43,560 --> 00:20:44,800
also thrown out of the
orphanage.
400
00:20:45,680 --> 00:20:47,360
That's how it used to work.
That's.
401
00:20:47,360 --> 00:20:49,640
Rough, that's.
Yeah, you know, life on the
402
00:20:49,640 --> 00:20:51,960
blockchain is rough, and life in
the memple is even rougher.
403
00:20:53,000 --> 00:20:56,000
Oh my God.
So you request the parent of
404
00:20:56,000 --> 00:20:59,920
that poor child and I send you
the parents and you still throw
405
00:20:59,920 --> 00:21:01,240
them both away?
Yes.
406
00:21:02,160 --> 00:21:03,680
Do you at least throw them away
together?
407
00:21:04,200 --> 00:21:05,480
No.
I'd probably be separately.
408
00:21:06,040 --> 00:21:11,280
So so anyway, so that is, as far
as I understand the the really
409
00:21:11,280 --> 00:21:13,720
the thing that is being fixed
and you so you could say it's a
410
00:21:13,720 --> 00:21:16,360
bit of a hack.
It doesn't really scale towards
411
00:21:16,360 --> 00:21:19,080
more complicated groups of
transactions, but there's one
412
00:21:19,080 --> 00:21:22,160
child, one parent use case is
very useful already for the
413
00:21:22,160 --> 00:21:26,440
example we just discussed.
So I believe the the only the
414
00:21:26,440 --> 00:21:29,920
main thing this this release
changes is that when you're
415
00:21:29,920 --> 00:21:32,960
sending this parent this time,
it will look at it and say, oh,
416
00:21:32,960 --> 00:21:34,800
look at that.
If I combine this parent with
417
00:21:34,800 --> 00:21:37,080
this child that I have here in
the orphanage, it does pay
418
00:21:37,080 --> 00:21:38,760
enough.
Let me accept that and let me
419
00:21:38,880 --> 00:21:42,080
forward it to peers the same
way, who then repeat the same
420
00:21:42,080 --> 00:21:45,840
process if they're all upgraded.
So as long as there there is a
421
00:21:45,840 --> 00:21:49,280
bunch of upgraded nodes between
you and the minor, they will
422
00:21:49,280 --> 00:21:50,840
finally get both of them.
This is.
423
00:21:50,840 --> 00:21:53,680
A very wholesome upgrade then
yes, I'm very happy with it.
424
00:21:53,680 --> 00:21:55,360
But it is.
Also a bit of a duct tape
425
00:21:55,360 --> 00:21:57,080
solution.
Why?
426
00:21:57,560 --> 00:22:01,120
Well, the the orphans is not
really designed to handle like
427
00:22:01,120 --> 00:22:03,960
the generic case of thousands of
packages etcetera.
428
00:22:04,160 --> 00:22:07,760
And you can quite easily
overwhelm it.
429
00:22:07,760 --> 00:22:11,200
So if you send so let's say
instead of, it's a small.
430
00:22:11,200 --> 00:22:12,120
Orphanage.
It's a very.
431
00:22:12,120 --> 00:22:18,600
Small orphanage so if you're
sending 1000 children, then the
432
00:22:18,600 --> 00:22:23,680
orphanage going to throw away
like all but the last five right
433
00:22:23,720 --> 00:22:25,720
So if it's.
A hard knock life.
434
00:22:25,720 --> 00:22:28,280
It's a hard.
Life on the Maple even harder
435
00:22:28,280 --> 00:22:33,520
than on the blockchain.
So basically what you're saying
436
00:22:33,520 --> 00:22:35,760
is.
You.
437
00:22:36,040 --> 00:22:38,520
Know what I'm saying?
The adversarial, you know,
438
00:22:38,520 --> 00:22:44,320
person in the Bitcoin network
can intentionally create all
439
00:22:44,320 --> 00:22:49,960
kinds of transactions that don't
even have a parent or child.
440
00:22:49,960 --> 00:22:51,400
Well, they.
Might have it, but you just
441
00:22:51,960 --> 00:22:54,160
yeah, it's never going you're
never going to ask for it
442
00:22:54,160 --> 00:22:56,680
because it's too many too many
orphans at the same time, stuff
443
00:22:56,680 --> 00:22:59,520
like that.
So as far as I understand it,
444
00:22:59,520 --> 00:23:02,760
there needs to be a better
mechanism to really deal with
445
00:23:02,760 --> 00:23:05,840
this problem of of a one parent,
one child and and multiple
446
00:23:05,840 --> 00:23:09,960
parents, multiple children.
But this you know, hopefully is
447
00:23:09,960 --> 00:23:12,560
good enough that under most
circumstances you will get your
448
00:23:12,560 --> 00:23:14,920
lightning close transactions to
a minor but.
449
00:23:15,040 --> 00:23:20,200
There might be a better solution
tomorrow Tomorrow.
450
00:23:20,760 --> 00:23:23,800
I don't know.
I'm I'm making any references
451
00:23:23,800 --> 00:23:25,720
yours.
OK.
452
00:23:26,000 --> 00:23:28,760
Orphanage.
Nevermind.
453
00:23:28,760 --> 00:23:30,360
We're moving on to the next
point.
454
00:23:31,680 --> 00:23:35,080
There are fee free transactions,
yeah.
455
00:23:35,200 --> 00:23:37,400
And so version.
Free transaction, yeah, and so.
456
00:23:37,400 --> 00:23:40,800
That's just the field in the
transaction that says #3, where
457
00:23:40,800 --> 00:23:46,120
it currently usually says #2 so.
The the transactions are the
458
00:23:46,120 --> 00:23:48,200
same now, they just are version
free.
459
00:23:48,200 --> 00:23:49,240
OK, what is it?
Yeah, and that.
460
00:23:49,240 --> 00:23:50,400
Doesn't apply to all
transactions.
461
00:23:50,400 --> 00:23:53,080
It applies to special
transactions that care about the
462
00:23:53,080 --> 00:23:59,160
following truck.
And so truck stands for.
463
00:23:59,600 --> 00:24:03,720
Was it again topologically
constrained until confirmation,
464
00:24:03,960 --> 00:24:06,000
Topologically constrained until
confirmation.
465
00:24:06,000 --> 00:24:09,000
So in other words, there are
topologies, so how transactions
466
00:24:09,000 --> 00:24:12,480
relate to each other and there
are rules for that in the MEP
467
00:24:12,480 --> 00:24:15,760
pool, not in the blockchain.
So it's until confirmation.
468
00:24:17,760 --> 00:24:21,800
And you may wonder what rules,
well roughly it needs to be a
469
00:24:21,800 --> 00:24:25,400
one child, one parent pair,
exactly that special case that
470
00:24:25,400 --> 00:24:29,600
we just talked about.
And then the other rule I
471
00:24:29,600 --> 00:24:33,240
believe is that the child cannot
be more than 10 kilobytes or 10K
472
00:24:33,240 --> 00:24:37,880
V bytes.
And this just means that if you
473
00:24:37,880 --> 00:24:41,800
opt into this version number,
there are a lot of shenanigans
474
00:24:41,800 --> 00:24:45,080
that somebody trying to keep you
out of the MAMPOL or keep you
475
00:24:45,080 --> 00:24:47,560
from bumping the fees etcetera,
because we didn't really talk
476
00:24:47,560 --> 00:24:49,640
about that scenario can be
prevented.
477
00:24:49,800 --> 00:24:52,600
So the it's not really
interesting to the scenario you
478
00:24:52,600 --> 00:24:54,800
started with, which is you're
not in the MAMPOL, you want to
479
00:24:54,800 --> 00:24:58,760
be in the MAMPOL, but it's the
more complicated thing called
480
00:24:58,760 --> 00:25:02,000
pinning attacks that we would
need a lightning expert to
481
00:25:02,080 --> 00:25:04,880
completely explain.
But it comes down to like you
482
00:25:04,880 --> 00:25:08,280
are in the Mampol but you want
to be higher in the MAMPOL
483
00:25:08,280 --> 00:25:12,040
because if you stay at the
bottom of the memple, then
484
00:25:12,040 --> 00:25:14,840
you'll just never get confirmed.
And that's not good because
485
00:25:14,840 --> 00:25:17,600
there might be a deadline for
your lightning transaction that
486
00:25:17,600 --> 00:25:20,200
you want to close it.
Hang on.
487
00:25:20,200 --> 00:25:22,280
So OK, I'm sending a
transaction, right?
488
00:25:22,280 --> 00:25:26,040
So then I decide if that's going
to be a fee 2 or fee free or fee
489
00:25:26,040 --> 00:25:29,680
one transaction.
It can be whatever I want and
490
00:25:29,680 --> 00:25:31,240
that.
But if I make it a fee free
491
00:25:31,240 --> 00:25:35,520
transaction, then it cannot have
any grandchildren.
492
00:25:36,440 --> 00:25:39,800
You know, it cannot have any
children of children in that in
493
00:25:39,800 --> 00:25:44,160
the Maple, it can only have
grandkids when it is included in
494
00:25:44,160 --> 00:25:45,160
the blockchain.
That's right.
495
00:25:45,640 --> 00:25:48,880
And there is a benefit to this
which has something to do with
496
00:25:48,880 --> 00:25:53,280
pinning attacks and lightning,
which I I don't understand and
497
00:25:53,320 --> 00:25:56,320
you also can't quite explain,
no.
498
00:25:56,320 --> 00:25:58,040
Exactly.
But the generally in lightning
499
00:25:58,040 --> 00:26:00,080
you are coordinating
intersection together with
500
00:26:00,080 --> 00:26:04,600
somebody else.
And so that transaction you may
501
00:26:04,600 --> 00:26:07,280
want to have it in the Maple
because the situation is to your
502
00:26:07,280 --> 00:26:09,680
benefit to get it included.
Or they might want it in the
503
00:26:09,680 --> 00:26:12,520
Maple because it's in their
benefit to get it in the Maple.
504
00:26:13,000 --> 00:26:16,440
And your benefit you, you may
have a conflict there where the
505
00:26:16,440 --> 00:26:19,400
other side may want to stop you
from getting it into the Maple.
506
00:26:19,920 --> 00:26:22,520
And you can do all sorts of
shenanigans where you attach
507
00:26:22,520 --> 00:26:24,760
lots and lots of small
transactions or very large
508
00:26:24,760 --> 00:26:28,040
transactions with too low fees
to this lightning close
509
00:26:28,040 --> 00:26:31,120
transaction so that it doesn't
get into the Maple or doesn't
510
00:26:31,120 --> 00:26:33,520
get high enough into the Maple.
And you can bump it anymore
511
00:26:33,520 --> 00:26:35,280
because the RBF rules are
complicated.
512
00:26:35,920 --> 00:26:40,000
And so all that goes away with
V3 because they can only be one
513
00:26:40,000 --> 00:26:43,080
child.
And, you know, you you may still
514
00:26:43,080 --> 00:26:46,000
have to race for paying higher
fees, but it's somewhat limited.
515
00:26:47,000 --> 00:26:48,960
It's a bit, of course, one child
policy.
516
00:26:50,200 --> 00:26:55,880
Yes, the the.
Connotations here are less than
517
00:26:55,880 --> 00:27:00,080
optimal source, but I will
remind the listener it's an opt
518
00:27:00,080 --> 00:27:01,240
in thing.
You don't have to.
519
00:27:01,240 --> 00:27:03,520
You can have as many Childs as
you want, Yeah.
520
00:27:03,520 --> 00:27:05,280
Exactly.
You don't have to use those B2B
521
00:27:05,280 --> 00:27:07,400
transactions, OK.
So that's a new thing.
522
00:27:07,400 --> 00:27:08,840
I don't quite understand the
band.
523
00:27:08,840 --> 00:27:11,280
Well, I kind of, oh, let's just
move to next it.
524
00:27:11,280 --> 00:27:13,640
Removes all the stuff that we
don't understand, right?
525
00:27:13,840 --> 00:27:15,160
Got it.
So we.
526
00:27:15,160 --> 00:27:17,560
Don't have to explain how
painting works because it's less
527
00:27:17,560 --> 00:27:20,280
of a problem got.
It and then there's one OK,
528
00:27:20,520 --> 00:27:24,320
there's one more thing to the
whole MAMPOL upgrade yes last.
529
00:27:24,320 --> 00:27:25,360
Buzzword.
Yes.
530
00:27:25,360 --> 00:27:28,400
And then we'll then we're done
with the Mampol upgrades.
531
00:27:28,920 --> 00:27:32,280
So we had the one parent, one
child packages kind of with
532
00:27:32,280 --> 00:27:35,680
orphanages and then we were just
discussing the version three,
533
00:27:35,680 --> 00:27:42,240
one child only palsy and now and
and that's called the TRUC.
534
00:27:42,240 --> 00:27:46,760
What stands for?
Topologically restrained, sorry.
535
00:27:47,080 --> 00:27:50,000
Yeah, I think topologically
restricted until confirmation.
536
00:27:50,000 --> 00:27:52,440
OK, yes.
You can only have grandchilds
537
00:27:52,440 --> 00:27:55,040
while you're in the when you're
in the blockchain as a
538
00:27:55,040 --> 00:27:57,520
transaction, being a transaction
anyways.
539
00:27:57,760 --> 00:27:59,560
OK.
And then there's something
540
00:27:59,560 --> 00:28:01,960
called P2A.
Yes.
541
00:28:02,120 --> 00:28:06,280
What is P2A paid?
To anchor and so we've, we
542
00:28:06,280 --> 00:28:08,960
talked about this, this
situation where you want to make
543
00:28:08,960 --> 00:28:11,760
a child to pay for the parent.
Now the question is what does
544
00:28:11,760 --> 00:28:14,560
that child look like?
It can be anything doesn't
545
00:28:14,560 --> 00:28:17,160
really matter as far as long as
it pays a lot of fees.
546
00:28:17,520 --> 00:28:20,520
But it you want it to be small
because you don't have to pay
547
00:28:20,520 --> 00:28:22,760
just the fees for your parent.
You also have to pay your own
548
00:28:22,760 --> 00:28:24,480
fees.
So you want the child to be as
549
00:28:24,480 --> 00:28:27,640
small as possible and paid to
anchor is like a new
550
00:28:27,720 --> 00:28:31,160
standardness rule that lets you
make a very, very small
551
00:28:31,480 --> 00:28:35,680
transaction to do just that.
And The funny thing about is
552
00:28:35,680 --> 00:28:38,520
that on the blockchain it will
the address will look like
553
00:28:38,520 --> 00:28:42,040
something like one fees or BC1P
fees.
554
00:28:43,160 --> 00:28:45,760
And that's done with a special
very small script that just
555
00:28:45,760 --> 00:28:48,160
happens to represent the word
fees.
556
00:28:49,400 --> 00:28:52,080
But it's really just a way to
make it easier to make these
557
00:28:52,080 --> 00:28:55,160
children doesn't have any
special meaning otherwise.
558
00:28:55,280 --> 00:28:57,880
But the changes that these are
not standard so they will
559
00:28:57,880 --> 00:29:00,800
actually get relayed.
OK.
560
00:29:00,800 --> 00:29:04,120
So it was already possible
according to the consensus rules
561
00:29:04,120 --> 00:29:07,440
to create this, but so far
Bitcoin wouldn't relay them,
562
00:29:07,560 --> 00:29:09,280
Yeah.
And I understand correctly it
563
00:29:09,280 --> 00:29:12,240
wouldn't relay spending them.
So you could send money to that
564
00:29:12,640 --> 00:29:15,280
address, but you couldn't spend
from it.
565
00:29:17,720 --> 00:29:19,760
OK.
And this is so this is
566
00:29:20,120 --> 00:29:22,800
specifically intended to also
benefits these other things we
567
00:29:22,800 --> 00:29:25,280
just discussed with orphanage
and the one child policy.
568
00:29:25,280 --> 00:29:27,640
It's yeah, because.
That's the the the child is now
569
00:29:27,640 --> 00:29:29,280
spending from that address
essentially.
570
00:29:29,440 --> 00:29:32,560
And you can do that or anybody
else can do it too.
571
00:29:32,680 --> 00:29:35,240
So maybe you want to outsource
it to Watchtower or something
572
00:29:35,240 --> 00:29:38,120
like that long.
Story short Now we've been on
573
00:29:38,120 --> 00:29:43,960
Court 28 Manple Paul Man Manple
policy has improved to the point
574
00:29:43,960 --> 00:29:47,960
where it makes Lightning a bit
more usable, reliable.
575
00:29:47,960 --> 00:29:51,240
When they start using it and
that might be another year, who
576
00:29:51,240 --> 00:29:53,440
knows, right?
At at least Pico Core has now
577
00:29:53,440 --> 00:29:59,160
facilitated lightning to become
more usable.
578
00:29:59,160 --> 00:30:00,640
Cheaper, yeah.
Hopefully.
579
00:30:01,040 --> 00:30:03,200
That, that sort of stuff, OK,
and.
580
00:30:03,400 --> 00:30:05,600
And I mean, when we say
lightning, we mean anything that
581
00:30:05,600 --> 00:30:08,040
has the same concerns as
lightning, right?
582
00:30:08,040 --> 00:30:09,480
Yeah.
But yeah, a lot of Layer 2
583
00:30:09,480 --> 00:30:11,320
protocols actually have these
kinds of issues.
584
00:30:11,320 --> 00:30:13,280
Of course.
OK.
585
00:30:13,280 --> 00:30:18,360
We're just discussing relay
policy with the anchor stuff.
586
00:30:18,840 --> 00:30:21,840
Speaking of relay policy,
Bitcoin Core.
587
00:30:21,840 --> 00:30:25,360
So next topic, we're done with
the Maple stuff next, more Maple
588
00:30:25,360 --> 00:30:27,040
stuff.
It's more Maple stuff for you.
589
00:30:28,600 --> 00:30:31,320
Full RBF is now the default.
Yeah.
590
00:30:31,320 --> 00:30:33,680
So we've done multiple episodes
about full RBF.
591
00:30:33,680 --> 00:30:36,680
If you look for the term in our
show notes or in our history,
592
00:30:36,680 --> 00:30:38,360
you will find it replace.
By fee.
593
00:30:39,200 --> 00:30:44,120
Yes well full RBF, you know says
like it's fully replacing by
594
00:30:44,160 --> 00:30:47,760
anyway doesn't really matter it
it the only thing it does is it
595
00:30:47,760 --> 00:30:50,560
turns the flag off so over it
ignores the flag.
596
00:30:50,560 --> 00:30:53,520
So it used to be that you had
something called opt in RBF
597
00:30:53,800 --> 00:30:56,480
where you would signal that your
transaction could be replaced
598
00:30:56,680 --> 00:30:59,480
and if you didn't signal that
then nodes if they were nice
599
00:30:59,480 --> 00:31:01,840
would not replace it.
If they were not nice, they
600
00:31:01,840 --> 00:31:04,240
would replace it.
So unconfirmed transactions were
601
00:31:04,240 --> 00:31:07,760
always safe unsafe for that
reason because it's just a
602
00:31:07,760 --> 00:31:13,400
mental rule.
So but then this new setting
603
00:31:13,400 --> 00:31:17,000
came in that's that's that lets
you know, basically ignore this
604
00:31:17,000 --> 00:31:19,480
flag and say I'm going to just
anything that pays a higher fee
605
00:31:19,480 --> 00:31:22,000
and meets all these other
conditions will get relayed.
606
00:31:22,000 --> 00:31:24,040
Now you don't need to flag
anymore there.
607
00:31:24,040 --> 00:31:25,920
Was a setting in mid, Yeah, that
was.
608
00:31:25,920 --> 00:31:30,560
Off by default because it was a
new thing, but now it turns out
609
00:31:30,560 --> 00:31:33,680
that most minors appear to be
also using that.
610
00:31:34,000 --> 00:31:37,080
And so when minors are using a
certain mental policy, it is
611
00:31:37,080 --> 00:31:40,680
better for pull notes to also
use that policy so that their
612
00:31:40,680 --> 00:31:43,480
memple reflects the next block
accurately.
613
00:31:43,800 --> 00:31:47,360
And this helps with things like
compact block relay where you
614
00:31:47,360 --> 00:31:50,240
relay not the whole block to
your peers when you see it, but
615
00:31:50,240 --> 00:31:55,120
you relay a very short summary.
And that short summary relies on
616
00:31:55,320 --> 00:31:57,640
on the fact that the person
you're sending it to has the
617
00:31:57,640 --> 00:32:01,000
same ample as you do.
And so we'll we'll recognize
618
00:32:01,000 --> 00:32:03,080
doesn't need you don't need to
send all the transactions to
619
00:32:03,080 --> 00:32:04,760
your peers.
You just sent the header and a
620
00:32:04,760 --> 00:32:09,360
few other details that doesn't
work and that started to you
621
00:32:09,360 --> 00:32:11,440
could measure that it was
working less well.
622
00:32:11,440 --> 00:32:15,440
So basically block relay was
getting slower because too many
623
00:32:15,440 --> 00:32:18,120
people were using full RBF, but
to know too many people were
624
00:32:18,120 --> 00:32:20,760
not.
And now hopefully it'll speed up
625
00:32:20,760 --> 00:32:24,320
again because everybody will be
using full RBF for most people.
626
00:32:24,720 --> 00:32:27,080
Right.
Yeah.
627
00:32:27,080 --> 00:32:31,920
I mean, this is obviously been a
pretty controversial topic over
628
00:32:31,920 --> 00:32:36,400
the, you know, you know, for
over 10 years now, RBF in
629
00:32:36,400 --> 00:32:39,600
itself.
You know, some people would
630
00:32:39,600 --> 00:32:43,560
argue that it makes unconfirmed
transactions less reliable,
631
00:32:43,560 --> 00:32:46,640
whereas previously they were
still pretty reliable.
632
00:32:47,000 --> 00:32:49,920
You know, if you got a
transaction even it was, even if
633
00:32:49,920 --> 00:32:52,520
it was unconfirmed, you would
probably just receive it.
634
00:32:52,520 --> 00:32:56,440
And now that's been, you know,
that's a lot less obvious now
635
00:32:56,440 --> 00:32:59,200
that it won't get replaced by a
completely different
636
00:32:59,200 --> 00:33:00,160
transaction.
I'm not.
637
00:33:00,160 --> 00:33:02,600
Sure, if it matters that much in
practice, you'd have to ask
638
00:33:02,600 --> 00:33:05,320
merchants who still use it.
There's not that many of them.
639
00:33:05,560 --> 00:33:08,480
They probably use all sorts of
other risk scoring techniques
640
00:33:08,640 --> 00:33:11,360
that are completely unrelated to
the use of this flag.
641
00:33:11,360 --> 00:33:14,400
But this flag would make it more
difficult to perform the attack.
642
00:33:14,400 --> 00:33:17,080
Yeah, yeah.
Well, anyways, we've discussed
643
00:33:17,080 --> 00:33:20,400
RBF at length in different
episodes, so let's just, you
644
00:33:20,400 --> 00:33:24,200
know, keep it, keep it at that.
In any case, Political Core 28
645
00:33:24,200 --> 00:33:27,880
now has full RBF on by default.
Yeah, and.
646
00:33:27,880 --> 00:33:30,800
Then for later on we need to
figure out do we want to get rid
647
00:33:30,800 --> 00:33:33,920
of this flag?
Do we like deprecate BIP 125 or
648
00:33:33,920 --> 00:33:36,720
like that part of it?
Or because that that's the flag
649
00:33:36,720 --> 00:33:37,960
seems pretty.
Useless.
650
00:33:37,960 --> 00:33:38,640
Now it's.
Useless.
651
00:33:38,640 --> 00:33:40,720
Yes.
But if Bitcoin Core turns it off
652
00:33:40,920 --> 00:33:43,720
but everybody else doesn't, now
you know which wallets are using
653
00:33:43,720 --> 00:33:45,800
Bitcoin Core.
So there's still the question of
654
00:33:45,800 --> 00:33:47,880
what to do with the flag.
And maybe we should just say
655
00:33:47,880 --> 00:33:50,280
like it should just be there.
That just doesn't mean anything
656
00:33:50,280 --> 00:33:53,920
anymore.
I don't know, I say remove it,
657
00:33:54,640 --> 00:33:58,600
get rid of it.
Just a full RBF is the new
658
00:33:58,600 --> 00:34:02,840
reality.
OK, Assume UTXO is available on
659
00:34:02,840 --> 00:34:06,000
main as yes.
We talked about Assume UTXO in
660
00:34:06,000 --> 00:34:17,480
episode number 14 in 2020 and
it's ready.
661
00:34:17,639 --> 00:34:21,440
Well, you still need some
command line magic, but you can.
662
00:34:21,440 --> 00:34:23,960
Basically how you use it is you
download a torrent.
663
00:34:25,400 --> 00:34:26,560
What is it?
What is it?
664
00:34:26,560 --> 00:34:28,040
Sure.
What are we talking about?
665
00:34:28,800 --> 00:34:29,800
That's what I'm explaining.
OK.
666
00:34:29,800 --> 00:34:32,480
Reminder listener.
Oh, you are explaining it OK,
667
00:34:32,560 --> 00:34:33,320
good, good, good.
So you.
668
00:34:33,320 --> 00:34:35,639
Download a torrent about 10
gigabytes which represents the
669
00:34:35,639 --> 00:34:37,440
UTXL set during the halving
block.
670
00:34:37,440 --> 00:34:41,280
So it represents who owns what
coin, Who owned what coin, that
671
00:34:41,280 --> 00:34:45,159
block 8400?
Sorry 840,000.
672
00:34:46,520 --> 00:34:50,199
Then your note loads that
snapshot and it checks it based
673
00:34:50,199 --> 00:34:52,080
on the hash that the developers
put in.
674
00:34:52,239 --> 00:34:54,440
It doesn't trust it, it just
assumes it.
675
00:34:54,480 --> 00:34:57,080
Hence it's called.
Assume you think so, then it
676
00:34:57,080 --> 00:35:00,160
goes to the tip, which is quick
because it's only 6 months worth
677
00:35:00,160 --> 00:35:02,240
of blocks.
From now, yeah.
678
00:35:02,240 --> 00:35:03,640
And from.
That point on you can use your
679
00:35:03,640 --> 00:35:06,280
note pretty much normally.
You you can create a wallet, you
680
00:35:06,280 --> 00:35:08,480
can receive coins, you can send
coins, you have a mem pool, all
681
00:35:08,480 --> 00:35:11,200
that stuff works.
Meanwhile in the background it
682
00:35:11,200 --> 00:35:14,520
starts at genesis block, goes
all the way to block 848,000.
683
00:35:15,000 --> 00:35:20,880
Make sure that the EDXO set from
Genesis actually matches what
684
00:35:20,880 --> 00:35:26,320
you assumed and it's the moment
it confirms that it's happy and
685
00:35:26,320 --> 00:35:29,720
if not, it crashes right?
So for a limited amount of time,
686
00:35:29,720 --> 00:35:32,240
you are kind of trusting the
developers.
687
00:35:32,240 --> 00:35:37,240
Yes, You know, potentially the
developers could have yeah, I
688
00:35:37,240 --> 00:35:40,640
mean actually that coins to
themselves that weren't really
689
00:35:40,640 --> 00:35:42,920
theirs, to name an extreme
example.
690
00:35:42,920 --> 00:35:45,280
Yeah.
But your note is still you know,
691
00:35:45,280 --> 00:35:47,320
it's a temporary thing.
It's like OK, it's a stop gap
692
00:35:47,320 --> 00:35:50,240
until we've the note is really
fully synced and the.
693
00:35:50,240 --> 00:35:51,880
Other thing is you're.
Just going to any.
694
00:35:51,880 --> 00:35:53,920
Kind of fraud would be trivial
to detect, right?
695
00:35:53,920 --> 00:35:57,440
Because anybody can take their
own node, make this snapshot
696
00:35:57,440 --> 00:36:00,360
themselves, compare the hash and
look at the code and say, hey,
697
00:36:00,560 --> 00:36:03,680
the hash in the code does not
actually match what I found.
698
00:36:03,680 --> 00:36:07,320
So it's not just new people
using it that would be surprised
699
00:36:07,320 --> 00:36:08,680
by this.
Everybody would be saying, hey,
700
00:36:08,680 --> 00:36:12,000
why is Bitcoin Core putting a
invalid snapshot in the source
701
00:36:12,000 --> 00:36:15,560
code, But it does actually check
against this is something so you
702
00:36:15,560 --> 00:36:17,720
cannot why is.
My money gone there.
703
00:36:17,720 --> 00:36:20,160
Why is source so rich all of a
sudden?
704
00:36:20,640 --> 00:36:24,040
Something like that, yeah.
So it's not the case that you
705
00:36:24,040 --> 00:36:26,400
can just download a snapshot
from a random person on the
706
00:36:26,400 --> 00:36:29,560
Internet and they could pull
that thing on you because
707
00:36:29,560 --> 00:36:32,680
Bitcoin Core assume like is
expecting a specific one.
708
00:36:34,120 --> 00:36:35,760
But maybe in the future that
might change.
709
00:36:35,760 --> 00:36:38,800
It depends on what people want
and what risks you're worried
710
00:36:38,800 --> 00:36:40,160
about.
Right.
711
00:36:41,200 --> 00:36:43,440
So, but you still have to do
like you have to find the
712
00:36:43,440 --> 00:36:46,320
torrent, you have to download
it, you have to enter a command.
713
00:36:46,320 --> 00:36:49,080
So the next steps will be to
make that process easier.
714
00:36:50,680 --> 00:36:52,200
Right.
OK.
715
00:36:52,280 --> 00:36:54,760
So that's included in Bitcoin
Core 28 as well.
716
00:36:54,880 --> 00:37:01,200
Yep, Next point.
It's now easier to migrate your
717
00:37:01,200 --> 00:37:05,280
wallet from your legacy wallet
to the new descriptor wallet
718
00:37:05,280 --> 00:37:06,400
format.
Yeah.
719
00:37:06,400 --> 00:37:10,360
So basically a couple of years
ago already the Bitcoin Core
720
00:37:10,360 --> 00:37:12,400
wallet was changed in two
important ways.
721
00:37:12,760 --> 00:37:16,720
One is it uses a more modern way
to organize cool to organize
722
00:37:16,720 --> 00:37:19,480
keys using descriptors.
We probably talked about that a
723
00:37:19,480 --> 00:37:21,240
little bit along with mini
script.
724
00:37:21,920 --> 00:37:24,080
We've definitely spoken about
this in one of our episodes,
725
00:37:24,080 --> 00:37:26,160
basically.
The wallet used to be a just a
726
00:37:26,160 --> 00:37:31,160
bag of keys and some scripts and
some logic to make sure that
727
00:37:31,160 --> 00:37:34,080
it's presenting same addresses.
And this has been made much more
728
00:37:34,080 --> 00:37:36,920
elegant in a way that's also
easier to import your wallet,
729
00:37:36,920 --> 00:37:38,360
export your wallet, that sort of
stuff.
730
00:37:39,520 --> 00:37:43,120
The other thing that changed is
the database back end, which is
731
00:37:43,120 --> 00:37:46,240
a bit boring, but we used to
have wallets.
732
00:37:46,520 --> 00:37:50,360
The wallet used to use Berkeley
DB, which is a very, very old
733
00:37:50,360 --> 00:37:53,640
piece of software that we use a
10 year old version of from like
734
00:37:53,760 --> 00:37:56,960
2014 or even older, I think
maybe 2010.
735
00:37:58,120 --> 00:38:01,920
And the new modern wallet used
SQLite 3, which is a modern
736
00:38:02,440 --> 00:38:06,160
database thing.
And so those two things were
737
00:38:06,160 --> 00:38:08,880
combined.
So it's the nicer organized
738
00:38:08,880 --> 00:38:11,320
scripts and the more modern
database back end.
739
00:38:11,880 --> 00:38:14,400
And now the goal is to get rid
of that old database back end.
740
00:38:14,400 --> 00:38:16,520
But of course, you know, there's
a lot of money in these old
741
00:38:16,520 --> 00:38:18,400
wallets, so we don't want people
to lose anything.
742
00:38:19,640 --> 00:38:22,640
And so there's a migration tool
that has already been there for
743
00:38:22,640 --> 00:38:24,000
a while, but you need to come
outline.
744
00:38:24,000 --> 00:38:25,680
And I believe now you can do it
from the GUI.
745
00:38:26,280 --> 00:38:29,360
And this tool is going to get
more and more like insistent
746
00:38:29,360 --> 00:38:32,840
that you use it because the goal
is to get rid of the old
747
00:38:32,840 --> 00:38:36,480
database format.
But there is a way that we can
748
00:38:36,480 --> 00:38:39,920
still read those old wallets.
So we will get rid of the
749
00:38:39,920 --> 00:38:42,360
software dependency, but there
will still be code in Bitcoin
750
00:38:42,360 --> 00:38:45,640
Core that can read the old
wallet and then upgrade it, but
751
00:38:45,640 --> 00:38:49,320
he cannot use it anymore so.
Let's say I have a Bitcoin core
752
00:38:49,320 --> 00:38:51,320
wallet that's still legacy
wallet.
753
00:38:51,320 --> 00:38:54,000
What's the incentive for me to
upgrade?
754
00:38:54,000 --> 00:38:55,560
What's the benefit for me, if
any?
755
00:38:57,400 --> 00:38:59,800
Sanity.
But in the future, you don't
756
00:38:59,800 --> 00:39:03,160
have a choice, OK?
It will basically say like, hey,
757
00:39:03,760 --> 00:39:05,800
you need to upgrade this wallet,
otherwise you can't use it.
758
00:39:05,800 --> 00:39:07,960
We'll keep, you know, you keep a
backup of the old thing.
759
00:39:08,200 --> 00:39:10,480
So if there's if there is a
problem, please file a bug
760
00:39:10,480 --> 00:39:12,920
report, Right.
But yeah.
761
00:39:13,400 --> 00:39:17,520
OK, so that's now a bit.
Upgrading or migrating I should
762
00:39:17,520 --> 00:39:20,560
say, is now a bit easier.
Yep, you can actually see what
763
00:39:20,560 --> 00:39:22,000
you're doing if you're not a
developer.
764
00:39:22,360 --> 00:39:24,480
I think it just just press a
button.
765
00:39:24,480 --> 00:39:29,200
Yeah, yeah, I.
Like buttons final point last
766
00:39:29,200 --> 00:39:31,080
point of this episode.
Sure.
767
00:39:31,120 --> 00:39:32,800
Yeah, there's.
Plenty more in the release, but
768
00:39:32,920 --> 00:39:34,520
this is what we're going to
cover, yeah.
769
00:39:34,520 --> 00:39:36,120
We're we're.
This is the.
770
00:39:36,120 --> 00:39:38,280
Most exciting feature I think of
the release.
771
00:39:39,920 --> 00:39:44,880
Is that sarcasm?
Yes, block files are No.
772
00:39:45,840 --> 00:39:47,720
I'm not sure how to pronounce
this.
773
00:39:47,800 --> 00:39:49,840
XOR.
Yeah, block file XOR.
774
00:39:50,840 --> 00:39:54,640
What is a block block file XOR?
Well, the goal is the the
775
00:39:54,640 --> 00:39:55,440
problem here.
What's?
776
00:39:55,440 --> 00:39:57,720
New here.
Is that there are virus scanners
777
00:39:57,720 --> 00:40:01,880
out there and they historically
already they would look at your
778
00:40:01,880 --> 00:40:03,400
MAMPOL and they would look at
your blocks.
779
00:40:03,840 --> 00:40:06,200
And then if something was,
especially back then in the
780
00:40:06,200 --> 00:40:10,160
MAMPOL that looked like a virus,
like a transaction that just
781
00:40:10,160 --> 00:40:14,320
has, you know, an upper turn,
which doesn't do anything, but
782
00:40:14,320 --> 00:40:17,520
the upper turn is followed by a
well known worm or a well known
783
00:40:17,520 --> 00:40:21,200
virus, then the virus scanner
doesn't know that it's just a.
784
00:40:21,600 --> 00:40:23,400
You know an operator and it
doesn't do anything.
785
00:40:23,560 --> 00:40:25,120
It just sees the pattern of the
virus.
786
00:40:25,120 --> 00:40:27,520
It puts your whole pick on core
note into quarantine.
787
00:40:27,960 --> 00:40:31,600
Or worse, it puts some files in
quarantine but breaking the
788
00:40:31,600 --> 00:40:32,280
node.
Basically we.
789
00:40:32,280 --> 00:40:35,560
Did discuss this at some point
in some context, but I think.
790
00:40:36,080 --> 00:40:38,400
I think so too.
And and and from what I remember
791
00:40:38,400 --> 00:40:41,080
is it was first added to the mem
pool, the solution that we're
792
00:40:41,080 --> 00:40:43,560
about to discuss.
And that same solution is now
793
00:40:43,560 --> 00:40:46,720
also applied to the blockchain
files on your disk, right?
794
00:40:46,760 --> 00:40:50,040
OK, So the the problem indeed
is, so you're storing all kinds
795
00:40:50,040 --> 00:40:52,080
of data in your mem pool in your
blockchain.
796
00:40:52,320 --> 00:40:55,000
And this data can also be
generated not what is usually
797
00:40:55,000 --> 00:40:57,720
generated by other people on the
Internet.
798
00:40:58,120 --> 00:41:00,360
Yeah.
And it can be generated in such
799
00:41:00,360 --> 00:41:03,720
a way, like you said, people can
just put data in an opportunity,
800
00:41:03,720 --> 00:41:05,760
for example, that just looks a
lot like virus.
801
00:41:06,320 --> 00:41:09,280
And then your virus scanner
will, you know, say, hey, that
802
00:41:09,280 --> 00:41:11,360
doesn't look good to me.
I'm just going to lock this
803
00:41:11,360 --> 00:41:15,000
entire program over here, which
in that case is Bitcoin.
804
00:41:15,000 --> 00:41:16,320
So you can't use Bitcoin
anymore.
805
00:41:16,880 --> 00:41:20,880
So there was a solution for this
for the member already.
806
00:41:20,880 --> 00:41:22,320
I'm pretty sure we discussed
that.
807
00:41:22,320 --> 00:41:25,760
And now the same solution has
been applied to the blockchain
808
00:41:25,760 --> 00:41:26,960
itself.
So what's the solution?
809
00:41:26,960 --> 00:41:29,240
Yeah, the.
Solution is called XOR which
810
00:41:29,240 --> 00:41:33,400
basically how to easily.
It scrambles it obviously, but
811
00:41:33,400 --> 00:41:34,920
it scrambles it in a symmetrical
way.
812
00:41:34,920 --> 00:41:38,680
So you you use one key from.
The blockchain in this case,
813
00:41:38,680 --> 00:41:41,040
yeah.
On disk it uses a key, very
814
00:41:41,040 --> 00:41:43,920
simple key, and it just encrypts
everything with that key, and
815
00:41:43,920 --> 00:41:45,600
with the same key it can decrypt
it.
816
00:41:45,680 --> 00:41:50,280
And this operation is extremely
fast on most computers, so it
817
00:41:50,280 --> 00:41:52,760
can be done easily.
It's not meant to be a secure
818
00:41:52,760 --> 00:41:56,840
form of encryption.
Like any 5 year old can decrypt
819
00:41:56,840 --> 00:42:00,320
it because the encryption key is
literally stored next to it.
820
00:42:00,800 --> 00:42:03,360
So it's like here's the
encryption key like please go
821
00:42:03,360 --> 00:42:05,160
decrypt.
It's just enough to trick the
822
00:42:05,160 --> 00:42:08,640
virus scanner, right?
Just to hide it from the virus
823
00:42:08,640 --> 00:42:10,840
scanner and so.
If the virus scanner tries to be
824
00:42:10,840 --> 00:42:13,120
really smart and says, well, I
think that's the decryption key,
825
00:42:13,120 --> 00:42:15,720
let me decrypt it and then it's
game over.
826
00:42:15,720 --> 00:42:19,880
But hopefully, because viruses
of course use this trick too to
827
00:42:19,880 --> 00:42:23,400
hide some of their own code, so
they might start with some code
828
00:42:23,480 --> 00:42:26,200
that is just enough to extract
the real code.
829
00:42:26,680 --> 00:42:30,240
And so virus scanners will look
at code that you know, decrypts
830
00:42:30,320 --> 00:42:33,120
bad code, etcetera.
So hopefully this won't be a cat
831
00:42:33,120 --> 00:42:36,560
and mouse game, but there it is.
OK.
832
00:42:37,840 --> 00:42:39,600
OK.
Well, that's covers it.
833
00:42:39,600 --> 00:42:42,400
Well, as as we mentioned,
there's of course a whole bunch
834
00:42:42,400 --> 00:42:46,480
of new, you know, upgrades,
maintenance, all kinds of stuff
835
00:42:46,480 --> 00:42:48,800
happening with Bitcoin Core, but
these were some of the most
836
00:42:48,800 --> 00:42:51,960
notable changes in Bitcoin Core
28.
837
00:42:52,600 --> 00:42:54,640
That's right.
Where can people find Bitcoin
838
00:42:54,640 --> 00:42:56,600
core 28 yours Bitcoin?
Core.org.
839
00:42:57,320 --> 00:42:59,600
Great.
Or they can go on Noster and
840
00:42:59,600 --> 00:43:05,120
follow me or Vladimir from the
land who you know, the former
841
00:43:05,120 --> 00:43:08,920
elite maintainer.
And there you can actually get a
842
00:43:08,920 --> 00:43:11,680
torrent directly that doesn't
even take you to get up.
843
00:43:12,840 --> 00:43:14,960
But you should just probably
just go to bitcoincore.org.
844
00:43:16,000 --> 00:43:17,360
Sounds good.
Yep.
845
00:43:17,640 --> 00:43:20,320
All right then, thank you for
listening to Bitcoin explain.