WEBVTT - Automatic transcript; recognition may contain errors. Reviewed for technical wording and speaker labels. Times match the published episode.

00:00:20.560 --> 00:00:22.840
<v Aaron van Wirdum>Live from Utrecht this is Bitcoin,

00:00:22.840 --> 00:00:23.980
<v Sjors Provoost>Explained.

00:00:23.980 --> 00:00:25.220
<v Aaron van Wirdum>Hey Sjors.

00:00:25.220 --> 00:00:26.000
<v Sjors Provoost>What's up?

00:00:26.320 --> 00:00:32.100
<v Aaron van Wirdum>So a couple weeks ago we did an episode on the Alexey Petrov trial

00:00:32.100 --> 00:00:35.920
<v Aaron van Wirdum>and before we get into the main episode in the main topic of this episode which

00:00:35.920 --> 00:00:41.240
<v Aaron van Wirdum>is going to be vaults I want to ask you though so you went to the second pro

00:00:41.240 --> 00:00:45.680
<v Aaron van Wirdum>forma this week I was there for a little bit but I had to go halfway you were

00:00:45.680 --> 00:00:49.100
<v Aaron van Wirdum>there for the whole thing I think is there any news for our listeners that I

00:00:49.100 --> 00:00:54.350
<v Aaron van Wirdum>should… Did anything change about the trial Sjors?

00:00:54.690 --> 00:00:58.890
<v Sjors Provoost>Not much changed. He still has to wait for another couple months. I think they

00:00:58.890 --> 00:01:04.880
<v Sjors Provoost>opened his laptop a few days before that hearing. So they're going to

00:01:04.880 --> 00:01:06.500
<v Sjors Provoost>need some time to look into that, I guess.

00:01:06.700 --> 00:01:10.660
<v Aaron van Wirdum>Yeah, I think the only new thing that I heard while I was still there was so the

00:01:10.660 --> 00:01:14.960
<v Aaron van Wirdum>prosecutors now suspect that he was himself running a relayer.

00:01:15.360 --> 00:01:19.670
<v Sjors Provoost>Yeah, they suspect that and they're denying that. The defense is denying that.

00:01:19.670 --> 00:01:20.730
<v Aaron van Wirdum>Oh, Alexei is denying that?

00:01:20.970 --> 00:01:21.250
<v Sjors Provoost>Yeah.

00:01:21.550 --> 00:01:24.110
<v Aaron van Wirdum>Okay. All right. So that probably happened after I was gone.

00:01:25.840 --> 00:01:26.380
<v Sjors Provoost>Probably, yeah.

00:01:26.380 --> 00:01:29.500
<v Aaron van Wirdum>Also, it probably doesn't really matter in the scheme of things, right? That's

00:01:29.500 --> 00:01:32.080
<v Aaron van Wirdum>not really why they were after him in the first place.

00:01:34.480 --> 00:01:37.820
<v Sjors Provoost>I don't know. I don't know what was in the dossier when they arrested him.

00:01:38.940 --> 00:01:43.840
<v Aaron van Wirdum>All right. Well, thanks, Sjors, for that. Final update, you want us to read some

00:01:43.840 --> 00:01:46.840
<v Aaron van Wirdum>boosts as well before we get to the actual topic du jour?

00:01:46.840 --> 00:01:52.520
<v Sjors Provoost>Right, let's focus on happy thoughts. Yes, we got one boost from at MRMR

00:01:52.520 --> 00:01:58.360
<v Sjors Provoost>or Mr. Mr., I guess. Thumbs up, exclamation mark. And then we got another

00:01:58.360 --> 00:02:04.040
<v Sjors Provoost>boost from Mr. At MRMR for also 8,421

00:02:04.040 --> 00:02:09.610
<v Sjors Provoost>sats with the words thumbs up, dot. So one with an exclamation mark and one with

00:02:09.610 --> 00:02:10.310
<v Sjors Provoost>a dot.

00:02:10.810 --> 00:02:15.490
<v Aaron van Wirdum>Sure. Reading out boosts is not my favorite part of the show. Do we need to keep

00:02:15.490 --> 00:02:17.430
<v Aaron van Wirdum>doing this? Is this paying us enough?

00:02:17.610 --> 00:02:20.050
<v Sjors Provoost>Exactly. This is what pays our bills.

00:02:20.690 --> 00:02:23.980
<v Aaron van Wirdum>Not mine. When is my paycheck coming, Sjors?

00:02:24.200 --> 00:02:27.520
<v Sjors Provoost>I'm sending you the split every couple months because it's too much work. You

00:02:27.520 --> 00:02:28.360
<v Sjors Provoost>should just run your own node.

00:02:29.360 --> 00:02:31.720
<v Aaron van Wirdum>So you want to keep reading the boosts going forward?

00:02:31.920 --> 00:02:33.420
<v Sjors Provoost>Definitely until you run your own node.

00:02:34.280 --> 00:02:39.200
<v Aaron van Wirdum>Okay, so that's going to be forever if it has to be a Lightning node. Yeah,

00:02:39.340 --> 00:02:44.600
<v Aaron van Wirdum>that's just false. Let's just get to the topic of the day. Actually, I'm not sure

00:02:44.600 --> 00:02:49.680
<v Aaron van Wirdum>if we're going to discuss vaults in general, or are we going to focus more on

00:02:49.680 --> 00:02:50.260
<v Aaron van Wirdum>OP_VAULT?

00:02:50.500 --> 00:02:54.760
<v Sjors Provoost>Yeah, we're going to focus on OP_VAULT, which I think we accidentally spelled in

00:02:54.760 --> 00:02:59.540
<v Sjors Provoost>the French way, so hopefully that'll get fixed. And we may cover some vaults in

00:02:59.540 --> 00:03:02.260
<v Sjors Provoost>general, but OP_VAULT is a specific proposal by James O’Beirne.

00:03:03.600 --> 00:03:05.580
<v Aaron van Wirdum>Wait, so how do you spell vaults, Sjors?

00:03:06.080 --> 00:03:07.660
<v Sjors Provoost>Oh, no, actually you spelled it correctly.

00:03:07.900 --> 00:03:13.240
<v Aaron van Wirdum>Yeah, I think I did. All right. So yeah, there's a proposal by James O’Beirne,

00:03:13.750 --> 00:03:19.750
<v Aaron van Wirdum>which is a specific type of vault. And I guess, what is a

00:03:19.750 --> 00:03:22.310
<v Aaron van Wirdum>vault in very general terms? Can you explain?

00:03:22.530 --> 00:03:27.870
<v Sjors Provoost>I like to describe it as a method to give you a undo button, at least

00:03:27.870 --> 00:03:30.190
<v Sjors Provoost>temporarily. For a Bitcoin transaction.

00:03:30.510 --> 00:03:31.670
<v Aaron van Wirdum>So it's like RBF.

00:03:31.950 --> 00:03:37.750
<v Sjors Provoost>Well, RBF is a very, very short-term undo button. That's true, yes. But with RBF,

00:03:38.030 --> 00:03:41.950
<v Sjors Provoost>you can undo, if somebody hacks your keys and you still have your own keys, then

00:03:41.950 --> 00:03:47.530
<v Sjors Provoost>they'll make a transaction stealing your coins. You then make another transaction

00:03:47.530 --> 00:03:51.730
<v Sjors Provoost>that pays a higher fee with or without the RBF flag, and you keep racing each

00:03:51.730 --> 00:03:56.170
<v Sjors Provoost>other that way. But with vaults, in general, the idea is that you'll have more

00:03:56.170 --> 00:04:01.850
<v Sjors Provoost>time to do that. And generally also it's less easy for the thief to just

00:04:01.850 --> 00:04:03.190
<v Sjors Provoost>keep bidding up the fees.

00:04:04.010 --> 00:04:08.670
<v Aaron van Wirdum>Yeah, I will say I think undo is a little bit confusing because that's not really

00:04:08.670 --> 00:04:10.690
<v Aaron van Wirdum>what you're doing with most vault designs.

00:04:11.010 --> 00:04:15.050
<v Sjors Provoost>No, I guess with RBF you're really undoing it, but you're effectively undoing the

00:04:15.050 --> 00:04:18.790
<v Sjors Provoost>damage. So the way that's done, we'll explain that of course, but the general

00:04:18.790 --> 00:04:22.630
<v Sjors Provoost>purpose is that you see a transaction happening, you even see it on the

00:04:22.630 --> 00:04:26.530
<v Sjors Provoost>blockchain, but you still have and you didn't want that transaction to happen.

00:04:26.940 --> 00:04:30.800
<v Sjors Provoost>But you still have a way to get that money back until a certain time window

00:04:30.800 --> 00:04:31.280
<v Sjors Provoost>expires.

00:04:31.680 --> 00:04:35.540
<v Aaron van Wirdum>Yeah, well, I think this is a good time to get a little bit more specific. So I

00:04:35.540 --> 00:04:40.820
<v Aaron van Wirdum>think most vault designs, if not all vault designs, I think work in a specific

00:04:40.820 --> 00:04:45.780
<v Aaron van Wirdum>way where you put your coins essentially in what you would call a vault.

00:04:46.440 --> 00:04:52.100
<v Aaron van Wirdum>And then the only way to withdraw it, like withdrawing is a process. And during

00:04:52.100 --> 00:04:57.070
<v Aaron van Wirdum>that process, you have an option to send... These coins that are being

00:04:57.070 --> 00:05:01.110
<v Aaron van Wirdum>potentially so if you see they're being stolen you can send them to another vault

00:05:01.110 --> 00:05:01.530
<v Aaron van Wirdum>that…

00:05:01.530 --> 00:05:06.010
<v Sjors Provoost>Or back to the same vault. Yeah exactly. So so the way that would… yeah.

00:05:06.010 --> 00:05:09.910
<v Aaron van Wirdum>You say back to the same vault well that would get you in a problem if the thief

00:05:09.910 --> 00:05:14.110
<v Aaron van Wirdum>just does it again right? That's never useful. Right like why would you ever want

00:05:14.110 --> 00:05:17.590
<v Aaron van Wirdum>that? You would always want to send it to a new vault essentially right?

00:05:18.380 --> 00:05:21.880
<v Sjors Provoost>Probably. Maybe there's some in-between case where that's okay to send it back.

00:05:22.040 --> 00:05:27.540
<v Sjors Provoost>But the general idea how you might do that is first you just send money to an

00:05:27.540 --> 00:05:31.640
<v Sjors Provoost>address. You make a private key. You send the money to that address with the

00:05:31.640 --> 00:05:37.480
<v Sjors Provoost>private key. And then you create a transaction that sends that money away again

00:05:37.480 --> 00:05:42.120
<v Sjors Provoost>from that private key to wherever you want to go. But you're sending that to a

00:05:42.120 --> 00:05:47.480
<v Sjors Provoost>special script. And that special script... I guess would have two conditions. One

00:05:47.480 --> 00:05:51.320
<v Sjors Provoost>is you can spend it after three months in whatever way you want using your own

00:05:51.320 --> 00:05:56.700
<v Sjors Provoost>keys. Or before those three months, there is another script that will send it

00:05:56.700 --> 00:06:02.110
<v Sjors Provoost>back. Something like that. Send it to your next vault, I guess. But then how

00:06:02.110 --> 00:06:02.830
<v Sjors Provoost>would that be secured?

00:06:03.170 --> 00:06:06.550
<v Aaron van Wirdum>Well, I think that's an important concept. Before we get into the details.

00:06:07.290 --> 00:06:10.650
<v Sjors Provoost>But then you burn the original private key. That's kind of where the magic

00:06:10.650 --> 00:06:14.330
<v Sjors Provoost>happens. You have to burn the original private key so that that private key, the

00:06:14.330 --> 00:06:16.970
<v Sjors Provoost>money is now in a place that you cannot spend it from because you don't have the

00:06:16.970 --> 00:06:21.070
<v Sjors Provoost>private key. All you have is a pre-signed transaction that then make sure that

00:06:21.070 --> 00:06:22.250
<v Sjors Provoost>some other things happen in the future.

00:06:22.250 --> 00:06:27.810
<v Aaron van Wirdum>Yeah I just want to establish moving forward we're gonna let's agree on some

00:06:27.810 --> 00:06:30.990
<v Aaron van Wirdum>terms. Because that will make it clear when we're trying to explain things.

00:06:30.990 --> 00:06:31.710
<v Sjors Provoost>That sounds boring.

00:06:31.710 --> 00:06:33.850
<v Aaron van Wirdum>No this is important, Sjors, this is vital.

00:06:33.850 --> 00:06:34.350
<v Sjors Provoost>Okay.

00:06:34.350 --> 00:06:39.170
<v Aaron van Wirdum>Okay. So let's say you know a vault a vault is the first thing where you put the

00:06:39.170 --> 00:06:44.750
<v Aaron van Wirdum>money and it's supposed to be kind of safe but then we also have the super vault

00:06:45.400 --> 00:06:48.400
<v Aaron van Wirdum>That's like the backup vault. So the super vaults...

00:06:48.400 --> 00:06:53.180
<v Sjors Provoost>I think that's terrible terminology because probably your backup plan, like if

00:06:53.180 --> 00:06:58.610
<v Sjors Provoost>everything else fails, is not a vault. It is probably more simple but very secure

00:06:58.610 --> 00:06:59.470
<v Sjors Provoost>multisig address.

00:07:01.590 --> 00:07:03.830
<v Aaron van Wirdum>Well, that is a super vault then, right?

00:07:04.190 --> 00:07:07.110
<v Sjors Provoost>No, because we're using the word vault here to refer to a very specific

00:07:07.110 --> 00:07:07.550
<v Sjors Provoost>mechanism.

00:07:07.770 --> 00:07:13.370
<v Aaron van Wirdum>No one is using steel boxes here. The multisig thing is super vault, right?

00:07:13.280 --> 00:07:16.400
<v Aaron van Wirdum>Am I, like, why… What do you want to call it?

00:07:16.690 --> 00:07:21.110
<v Sjors Provoost>Because we're using the word vault here, not in the sense of the physical box,

00:07:21.170 --> 00:07:27.050
<v Sjors Provoost>but in the sense of a mechanism where you can undo the damage. But when you do

00:07:27.050 --> 00:07:31.520
<v Sjors Provoost>that, when you invoke this undo function... The money has to go somewhere. And

00:07:31.520 --> 00:07:35.440
<v Sjors Provoost>that does not have to be a vault in the same sense that we just defined a vault.

00:07:35.540 --> 00:07:40.140
<v Sjors Provoost>It can be any kind of secure setup. But generally the trade-off there is that

00:07:40.140 --> 00:07:45.220
<v Sjors Provoost>there is a place where you keep coins that is extremely secure but extremely hard

00:07:45.220 --> 00:07:48.800
<v Sjors Provoost>to access. And that's not practical. And you have another place that's a little

00:07:48.800 --> 00:07:53.440
<v Sjors Provoost>bit less cold. And that's where your vault is. So your vault is sort of an

00:07:53.440 --> 00:07:57.040
<v Sjors Provoost>in-between phase between really a hot wallet and a super cold wallet.

00:07:58.430 --> 00:08:02.290
<v Aaron van Wirdum>Right. Well, that's exactly what I want to establish. So we just got to agree on

00:08:02.290 --> 00:08:04.450
<v Aaron van Wirdum>terms, which seems is the hard part at this point.

00:08:04.670 --> 00:08:07.430
<v Sjors Provoost>Yeah. You can keep the keys, let's say, in a safe, but not a vault.

00:08:08.500 --> 00:08:12.080
<v Aaron van Wirdum>The vault is where you put the money at first. Yeah. And that's kind of the smart

00:08:12.080 --> 00:08:13.720
<v Aaron van Wirdum>contract thing in which we're going to explain.

00:08:14.060 --> 00:08:14.200
<v Sjors Provoost>Yeah.

00:08:14.320 --> 00:08:17.560
<v Aaron van Wirdum>But then we need to have the super secure backup, which we're calling the super

00:08:17.560 --> 00:08:18.460
<v Aaron van Wirdum>secure backup then.

00:08:18.600 --> 00:08:19.720
<v Sjors Provoost>Let's call it the super secure backup.

00:08:20.240 --> 00:08:24.220
<v Aaron van Wirdum>Okay. So the idea behind the super secure backup is that it's super secure.

00:08:24.240 --> 00:08:29.760
<v Aaron van Wirdum>And it’s, and it’s, but… The problem, though, is that it's so secure

00:08:29.760 --> 00:08:34.360
<v Aaron van Wirdum>that it's actually kind of hard to use. So, for example, you have a multisig setup.

00:08:35.930 --> 00:08:41.490
<v Aaron van Wirdum>You have several cold keys that are stored in different actual vaults in

00:08:41.490 --> 00:08:44.970
<v Aaron van Wirdum>different countries. So it's super secure, but you can't actually use it day-to

00:08:44.970 --> 00:08:47.010
<v Aaron van Wirdum>-day. So that's why it's a super secure backup.

00:08:47.230 --> 00:08:51.330
<v Sjors Provoost>And I think the context that most of the James O’Beirne paper was written for was

00:08:51.330 --> 00:08:56.300
<v Sjors Provoost>if you're an exchange. Because an exchange tends to have a hot wallet, which they

00:08:56.300 --> 00:09:00.420
<v Sjors Provoost>need to use to pay customers quite quickly, but there's a lot of money in it. So

00:09:00.420 --> 00:09:02.740
<v Sjors Provoost>they really have this issue where they want to be able to pay their customers

00:09:02.740 --> 00:09:05.540
<v Sjors Provoost>quickly, but they're also sitting on a lot of money that they don't want to get

00:09:05.540 --> 00:09:09.460
<v Sjors Provoost>stolen, and maybe they only realize it's stolen when it's too late, and they want

00:09:09.460 --> 00:09:14.200
<v Sjors Provoost>some sort of undo button. But they may also have access to a bunch of safes in

00:09:14.200 --> 00:09:17.810
<v Sjors Provoost>the Arctic. It's just that if they ever have to send the money there... Their hot

00:09:17.810 --> 00:09:21.270
<v Sjors Provoost>wallet is going to be empty and they have to wait three months to send some guy

00:09:21.270 --> 00:09:24.350
<v Sjors Provoost>on a private jet. So they don't want to use the option, but they want to have the

00:09:24.350 --> 00:09:25.810
<v Sjors Provoost>option because it's better than losing the money.

00:09:26.480 --> 00:09:31.140
<v Aaron van Wirdum>Yeah I think your point there is if you are an individual that's just stacking

00:09:31.140 --> 00:09:36.140
<v Aaron van Wirdum>sats and doesn't really use Bitcoin you know other for other than storing your

00:09:36.140 --> 00:09:40.380
<v Aaron van Wirdum>wealth You kind of only need the super secure backup you didn't you don't really

00:09:40.380 --> 00:09:41.340
<v Aaron van Wirdum>need to vault because you're not…

00:09:41.340 --> 00:09:45.160
<v Sjors Provoost>Maybe it depends on your lifestyle maybe you have a super secure backup where you

00:09:45.160 --> 00:09:49.740
<v Sjors Provoost>keep like billions of dollars and then you have a vault that you use just if you

00:09:49.740 --> 00:09:53.040
<v Sjors Provoost>need to buy a Lambo or something like that, like the casual but still pretty high

00:09:53.040 --> 00:09:56.380
<v Sjors Provoost>expenses, and then you also have a Lightning hot wallet that you use for ice

00:09:56.380 --> 00:09:58.100
<v Sjors Provoost>cream. I mean, it just depends.

00:09:58.280 --> 00:10:00.280
<v Aaron van Wirdum>Okay, we're getting super lost in the terminology.

00:10:00.600 --> 00:10:03.820
<v Sjors Provoost>But what I would want to say is that vaults are not useful for daily

00:10:03.820 --> 00:10:07.880
<v Sjors Provoost>transactions, I think. They're too tedious, even the ones that we're going to

00:10:07.880 --> 00:10:08.440
<v Sjors Provoost>explain.

00:10:09.280 --> 00:10:13.820
<v Aaron van Wirdum>Sure, I'm still trying to establish, but I think there are three important parts

00:10:13.820 --> 00:10:17.340
<v Aaron van Wirdum>of the terminology we need to establish. I think vaults we've established. That's

00:10:17.340 --> 00:10:20.640
<v Aaron van Wirdum>a smart contract thing we're going to explain. Then we've got a super secure

00:10:20.640 --> 00:10:26.520
<v Aaron van Wirdum>backup, and then you've got the actual hot wallet. Well, I guess these

00:10:26.520 --> 00:10:28.960
<v Aaron van Wirdum>aren't used in the James O’Beirne version.

00:10:29.240 --> 00:10:31.900
<v Sjors Provoost>No, that last ingredient does not exist. So it's interesting to say that normally

00:10:31.900 --> 00:10:35.600
<v Sjors Provoost>it does, or at least in the other concepts. So there's indeed, like you said, a

00:10:35.600 --> 00:10:40.150
<v Sjors Provoost>hot wallet that... What you would do is you take money out of the vault and then

00:10:40.150 --> 00:10:43.270
<v Sjors Provoost>instead of sending it wherever you want to send it you first have to put it in a

00:10:43.270 --> 00:10:43.730
<v Sjors Provoost>hot wallet.

00:10:43.730 --> 00:10:44.990
<v Aaron van Wirdum>Your own hot wallet. Yeah.

00:10:44.990 --> 00:10:48.910
<v Sjors Provoost>Yeah. And that hot wallet or I guess doesn't… well let's just assume it's a hot

00:10:48.910 --> 00:10:53.470
<v Sjors Provoost>wallet. You have to… with previous designs you have to decide in advance what

00:10:53.470 --> 00:10:55.990
<v Sjors Provoost>that hot wallet is and that's what you can send it to

00:10:55.990 --> 00:11:00.010
<v Aaron van Wirdum>And then you mean the address, most obviously right? Yeah yeah.

00:11:00.010 --> 00:11:04.500
<v Sjors Provoost>And what's what's the problem with that? It's not very flexible. And it means you

00:11:04.500 --> 00:11:08.400
<v Sjors Provoost>have an extra step. It also means that if that hot wallet is compromised, then

00:11:08.400 --> 00:11:10.120
<v Sjors Provoost>you can't send it to that hot wallet.

00:11:11.840 --> 00:11:16.400
<v Aaron van Wirdum>Yeah, which is especially tricky because you might not know if it is compromised, right?

00:11:17.020 --> 00:11:21.040
<v Sjors Provoost>Yeah. Though, of course, the same kind of problem exists with the new proposal.

00:11:21.160 --> 00:11:25.060
<v Sjors Provoost>So maybe it's not the most relevant argument. But it's good to point out. The

00:11:25.060 --> 00:11:28.180
<v Sjors Provoost>biggest problem with these old vault proposals is that it's just very tedious.

00:11:28.660 --> 00:11:30.300
<v Sjors Provoost>But maybe we want to get into that.

00:11:30.660 --> 00:11:35.920
<v Aaron van Wirdum>We're getting into your... Sjors, you're getting into weeds and you're skipping

00:11:35.920 --> 00:11:37.680
<v Aaron van Wirdum>ahead of all kinds of explanations.

00:11:38.200 --> 00:11:38.300
<v Sjors Provoost>Cool.

00:11:39.710 --> 00:11:43.950
<v Aaron van Wirdum>First, I just wanted to establish the terms we're going to use.

00:11:44.010 --> 00:11:44.550
<v Sjors Provoost>I think we've done that.

00:11:44.550 --> 00:11:47.390
<v Aaron van Wirdum>And I think we've done that. So we've got the vaults, we've got the super sugar

00:11:47.390 --> 00:11:50.610
<v Aaron van Wirdum>backups, and we've got the hot wallets. Even though hot wallets aren't really

00:11:50.610 --> 00:11:55.150
<v Aaron van Wirdum>used in O’Beirne’s thing, but we still want to use the term to explain that it

00:11:55.150 --> 00:11:56.030
<v Aaron van Wirdum>doesn't use the thing.

00:11:56.620 --> 00:11:57.180
<v Sjors Provoost>Sounds good.

00:11:57.240 --> 00:12:02.900
<v Aaron van Wirdum>Right? Okay. Now you've sort of explained how vaults worked so far.

00:12:04.970 --> 00:12:10.410
<v Aaron van Wirdum>Do you think that was clear enough to move to the next step? I'm still a little

00:12:10.410 --> 00:12:11.790
<v Aaron van Wirdum>bit unsure. So do you want to...

00:12:11.790 --> 00:12:12.770
<v Sjors Provoost>Do you want to re-explain it?

00:12:13.130 --> 00:12:13.390
<v Aaron van Wirdum>Yeah.

00:12:13.470 --> 00:12:15.190
<v Sjors Provoost>We were talking about pre-signed transactions, right?

00:12:15.190 --> 00:12:19.430
<v Aaron van Wirdum>Exactly. I can re-explain it real quick and that should hopefully do the trick.

00:12:19.550 --> 00:12:25.150
<v Aaron van Wirdum>So yeah, what previous vault tricks used was you

00:12:25.150 --> 00:12:30.430
<v Aaron van Wirdum>create a transaction that sends money that can be spent in one of two ways.

00:12:30.950 --> 00:12:36.830
<v Aaron van Wirdum>So once this transaction is broadcast, it can either be sent the

00:12:36.830 --> 00:12:42.000
<v Aaron van Wirdum>money can either be sent to the super super secure backup right away or there's a

00:12:42.000 --> 00:12:47.520
<v Aaron van Wirdum>time lock on it and after a while it can be spent to the hot wallet or by the hot wallet.

00:12:47.520 --> 00:12:47.840
<v Sjors Provoost>Yeah.

00:12:47.840 --> 00:12:53.810
<v Aaron van Wirdum>Right, and like you said the key here pun not intended but the key

00:12:53.810 --> 00:12:59.190
<v Aaron van Wirdum>here is that you delete the key so you create this pre-signed transaction and

00:12:59.190 --> 00:13:04.460
<v Aaron van Wirdum>then you delete the key so from that point on The only way to possibly spend

00:13:04.460 --> 00:13:10.280
<v Aaron van Wirdum>these funds is to broadcast this unbroadcasted transaction. Now you broadcast

00:13:10.280 --> 00:13:15.840
<v Aaron van Wirdum>it and now it can only be spent in two ways. So now if you do that,

00:13:16.060 --> 00:13:22.040
<v Aaron van Wirdum>if you're using the vault, then now you can keep an eye on the blockchain. And

00:13:22.040 --> 00:13:26.880
<v Aaron van Wirdum>if you're just keeping the unsigned transaction for yourself, hopefully kind of

00:13:26.880 --> 00:13:30.820
<v Aaron van Wirdum>secure on your laptop or whatever, whatever you consider secure. But then if your

00:13:30.820 --> 00:13:35.630
<v Aaron van Wirdum>laptop is hacked and the hacker finds this transaction and he broadcasts it. Now

00:13:35.630 --> 00:13:39.210
<v Aaron van Wirdum>you see that it's being broadcast. You see that it ends up on the blockchain, but

00:13:39.210 --> 00:13:42.630
<v Aaron van Wirdum>now you still have like three months to send it to your super secure backup

00:13:42.630 --> 00:13:45.290
<v Aaron van Wirdum>before the hacker can actually take the funds.

00:13:45.490 --> 00:13:48.510
<v Sjors Provoost>Exactly. And then I'm assuming that they also compromised your hot wallet, right?

00:13:48.510 --> 00:13:52.670
<v Sjors Provoost>If they only find this transaction to get it out of the vault, but not your hot

00:13:52.670 --> 00:13:55.910
<v Sjors Provoost>wallet, then I guess your money just goes to your hot wallet and then you move it

00:13:55.910 --> 00:13:59.430
<v Sjors Provoost>away. But there is this other condition where you can send it to your super

00:13:59.430 --> 00:14:02.510
<v Sjors Provoost>secure setup and you have to get on your private jet and stuff.

00:14:02.690 --> 00:14:08.560
<v Aaron van Wirdum>Right. Okay the problem there's a couple of problems with this design but

00:14:08.560 --> 00:14:14.440
<v Aaron van Wirdum>I think they all boil down to more or less the same problem which is

00:14:14.440 --> 00:14:15.940
<v Aaron van Wirdum>you need to pre

00:14:17.240 --> 00:14:18.440
<v Aaron van Wirdum>compute it and pre-sign it.

00:14:18.440 --> 00:14:22.560
<v Sjors Provoost>So you need to pre-sign it. You need to make absolutely sure that the the private

00:14:22.560 --> 00:14:26.480
<v Sjors Provoost>keys are gone. Because otherwise if somebody does find the private key they can

00:14:26.480 --> 00:14:29.880
<v Sjors Provoost>just make another transaction and it does not obey any of the smart contract

00:14:29.880 --> 00:14:33.480
<v Sjors Provoost>rules you just thought about and it's very unflexible right you can you can take

00:14:33.480 --> 00:14:37.800
<v Sjors Provoost>everything out or not or if you did want to split it you'd have to think about in

00:14:37.800 --> 00:14:41.300
<v Sjors Provoost>advance how you would want to split it and make all the pre-signed transactions

00:14:41.300 --> 00:14:45.260
<v Sjors Provoost>to do the splitting also in advance so you cannot just say I want to buy this

00:14:45.260 --> 00:14:49.500
<v Sjors Provoost>this thing I'm going to send some coins out of my hot or out of the vault but

00:14:49.500 --> 00:14:50.500
<v Sjors Provoost>leave some of it in it.

00:14:50.500 --> 00:14:55.940
<v Aaron van Wirdum>Yeah I think that's the key word inflexible. You just have to decide beforehand

00:14:55.940 --> 00:15:01.260
<v Aaron van Wirdum>basically everything. Basically all the conditions and the amounts and where it's

00:15:01.260 --> 00:15:06.930
<v Aaron van Wirdum>going which hot water, which hot wallet, everything has to be decided up front

00:15:06.930 --> 00:15:10.090
<v Aaron van Wirdum>but there is a benefit. What's the benefit?

00:15:10.090 --> 00:15:11.290
<v Sjors Provoost>It doesn't need a soft fork.

00:15:11.710 --> 00:15:17.580
<v Aaron van Wirdum>Yeah right, that's that's a pretty big benefit. Because so…

00:15:18.220 --> 00:15:23.220
<v Aaron van Wirdum>There is a James O’Beirne recently made a proposal called OP_VAULT so that's a

00:15:23.220 --> 00:15:29.060
<v Aaron van Wirdum>soft fork yes and that has the downside arguably at least that it's a soft

00:15:29.060 --> 00:15:33.800
<v Aaron van Wirdum>fork as you mentioned but then it's a lot more flexible that's the main benefit

00:15:33.800 --> 00:15:38.800
<v Aaron van Wirdum>right you can Treat it much more like an actual vault. You can just put anything

00:15:38.800 --> 00:15:43.100
<v Aaron van Wirdum>in it anytime you want, get anything out of it anytime you want. But other than

00:15:43.100 --> 00:15:48.580
<v Aaron van Wirdum>that, the core principle is still the same. If someone tries to steal something

00:15:48.580 --> 00:15:53.300
<v Aaron van Wirdum>from your vault, you'll see it on the blockchain and you'll have time to send it

00:15:53.300 --> 00:15:54.460
<v Aaron van Wirdum>to your super secure backup.

00:15:54.940 --> 00:15:59.490
<v Sjors Provoost>Yeah. Do we want to explain this or do we want to explain the other proposals?

00:15:59.770 --> 00:16:04.750
<v Aaron van Wirdum>Which other proposals? I was well on my way of explaining this. What other

00:16:04.750 --> 00:16:05.830
<v Aaron van Wirdum>proposals are you thinking of?

00:16:05.970 --> 00:16:08.010
<v Sjors Provoost>Well, using OP_CSV or general covenants.

00:16:08.150 --> 00:16:08.410
<v Aaron van Wirdum>Oh, yeah.

00:16:08.410 --> 00:16:11.510
<v Sjors Provoost>It might be better to explain it after because then we can contrast it.

00:16:12.590 --> 00:16:17.750
<v Aaron van Wirdum>Okay, sure. So we're going to go OP_VAULT now. Yeah, let's just...

00:16:18.590 --> 00:16:20.490
<v Aaron van Wirdum>Steamroll ahead with OP_VAULTs at this point.

00:16:20.750 --> 00:16:23.690
<v Sjors Provoost>Yeah, so we'll just take, basically, because OP_VAULT is really the simplest

00:16:23.690 --> 00:16:27.810
<v Sjors Provoost>proposal, I would say, for a vault, but it is a soft fork, but it is a relatively

00:16:27.810 --> 00:16:32.650
<v Sjors Provoost>simple soft fork. And we can get then later to the discussion of why maybe you

00:16:32.650 --> 00:16:35.830
<v Sjors Provoost>want a more complicated soft fork, a more general soft fork, rather than this

00:16:35.830 --> 00:16:36.570
<v Sjors Provoost>very specific one.

00:16:36.670 --> 00:16:42.290
<v Aaron van Wirdum>There are other types of soft forks, especially OP_CTV that could also

00:16:42.290 --> 00:16:45.870
<v Aaron van Wirdum>enable vaults, yeah. Okay, we're going to go to OP_VAULT.

00:16:48.810 --> 00:16:51.210
<v Aaron van Wirdum>Sjors, what's in the OP_VAULT output?

00:16:53.730 --> 00:16:58.290
<v Aaron van Wirdum>We're introducing a new opcode, which is OP_VAULT. What does it mean? What does

00:16:58.290 --> 00:16:58.790
<v Aaron van Wirdum>it require?

00:16:59.070 --> 00:17:02.990
<v Sjors Provoost>It is not an output itself, right? So you put it in a script as you would

00:17:02.990 --> 00:17:07.050
<v Sjors Provoost>anytime. So when you're creating a Bitcoin address, you're creating a script. And

00:17:07.050 --> 00:17:12.900
<v Sjors Provoost>usually what you put on the blockchain is a hash of the script, right? But

00:17:12.900 --> 00:17:13.720
<v Sjors Provoost>what the script...

00:17:14.900 --> 00:17:19.710
<v Aaron van Wirdum>So when you're putting money in the vault… you're sending money to…

00:17:19.710 --> 00:17:22.470
<v Sjors Provoost>You're sending well you're sending money to a Taproot address.

00:17:22.470 --> 00:17:23.550
<v Aaron van Wirdum>Yes exactly.

00:17:23.550 --> 00:17:28.030
<v Sjors Provoost>So and that Taproot address is a tree and in that tree is a one of the leaves in

00:17:28.030 --> 00:17:32.370
<v Sjors Provoost>the tree is a script. Yes and that script has part of that script is the new

00:17:32.370 --> 00:17:34.310
<v Sjors Provoost>OP_VAULT opcode right?

00:17:34.310 --> 00:17:35.470
<v Aaron van Wirdum>And what else is in there?

00:17:35.470 --> 00:17:39.950
<v Sjors Provoost>Yeah exactly so this thing takes two other things or three other things it takes

00:17:39.950 --> 00:17:44.690
<v Sjors Provoost>a recovery thing we'll talk about recovery later it takes a time delay argument

00:17:44.690 --> 00:17:47.450
<v Sjors Provoost>so it needs to know how many blocks the delay is supposed to be

00:17:48.050 --> 00:17:49.870
<v Aaron van Wirdum>Probably blocks or actual time, right?

00:17:50.250 --> 00:17:56.210
<v Sjors Provoost>Yeah. Yes, exactly. And it takes the hash of whatever regular script you need to

00:17:56.210 --> 00:18:01.530
<v Sjors Provoost>spend from your vault. So presumably you want to, when you use your vault, you

00:18:01.530 --> 00:18:04.810
<v Sjors Provoost>also want to use a multisig or a single-sig or whatever you want to do for the

00:18:04.810 --> 00:18:07.590
<v Sjors Provoost>normal condition. So you provide a hash of that too.

00:18:09.250 --> 00:18:13.230
<v Sjors Provoost>And so then the question is, how do you spend this OP_VAULT thing? That's where

00:18:13.230 --> 00:18:14.750
<v Sjors Provoost>OP_UNVAULT comes in.

00:18:17.130 --> 00:18:21.050
<v Sjors Provoost>So now you want to take money out of your vault, basically. You create a

00:18:21.050 --> 00:18:26.810
<v Sjors Provoost>transaction that says, okay, here is OP_UNVAULT. Then first you're going to...

00:18:26.810 --> 00:18:31.030
<v Aaron van Wirdum>So let's say you're spending money to me, okay? You got your money in the vault

00:18:31.030 --> 00:18:33.350
<v Aaron van Wirdum>and I want money from your vault.

00:18:33.670 --> 00:18:34.070
<v Sjors Provoost>Yeah.

00:18:34.330 --> 00:18:37.550
<v Aaron van Wirdum>And I'm not trying to steal it. You're actually trying to send it to me in this case.

00:18:37.610 --> 00:18:38.330
<v Sjors Provoost>Exactly. I'm trying to send it to you.

00:18:38.410 --> 00:18:40.570
<v Aaron van Wirdum>So I give you my address, right?

00:18:41.540 --> 00:18:43.540
<v Sjors Provoost>Yeah, exactly. Yeah, exactly.

00:18:43.800 --> 00:18:44.040
<v Aaron van Wirdum>Okay.

00:18:44.280 --> 00:18:47.720
<v Sjors Provoost>But in the first step, I'm not actually using your address, not directly anyway.

00:18:48.460 --> 00:18:54.280
<v Sjors Provoost>First, I'm saying OP_UNVAULT, the magic word basically. Then I will satisfy the

00:18:54.280 --> 00:18:57.720
<v Sjors Provoost>script that I created earlier. So I have to provide a signature or multiple

00:18:57.720 --> 00:19:00.120
<v Sjors Provoost>signatures or whatever script I provided the hash from.

00:19:01.950 --> 00:19:08.010
<v Sjors Provoost>And then I have to repeat basically the delay. So that's interesting.

00:19:08.210 --> 00:19:10.290
<v Aaron van Wirdum>You just got to repeat how many blocks of delays?

00:19:12.220 --> 00:19:13.040
<v Sjors Provoost>Yeah, exactly.

00:19:13.300 --> 00:19:16.840
<v Aaron van Wirdum>So if the delay was 100 blocks, you just got to include 100 again?

00:19:17.400 --> 00:19:18.720
<v Sjors Provoost>Yeah, but here's the separation.

00:19:18.720 --> 00:19:19.820
<v Aaron van Wirdum>It just has to match.

00:19:20.000 --> 00:19:22.520
<v Sjors Provoost>Yeah, I think here's where the separation between the input and the output comes

00:19:22.520 --> 00:19:26.920
<v Sjors Provoost>in and why it's a magical covenant. So I think on the input, I'm guessing I just

00:19:26.920 --> 00:19:29.920
<v Sjors Provoost>have to satisfy the script. I'm not entirely sure, but that's going to be my

00:19:29.920 --> 00:19:34.200
<v Sjors Provoost>guess. But on the output, I have to put the unvault opcode.

00:19:36.270 --> 00:19:40.430
<v Sjors Provoost>And then I have to repeat the spend delay, as we said. And then I have to say

00:19:40.430 --> 00:19:44.400
<v Sjors Provoost>where it's supposed to go. And that is not your address, but the hash of your

00:19:44.400 --> 00:19:46.100
<v Sjors Provoost>address in this case that you gave me.

00:19:48.790 --> 00:19:52.430
<v Sjors Provoost>So this is really where the magic is starting to happen. Because normally you

00:19:52.430 --> 00:19:57.870
<v Sjors Provoost>think if you have an OP_VAULT opcode somewhere, then you can spend that and then

00:19:57.870 --> 00:20:01.450
<v Sjors Provoost>it's done. You can do whatever you want. But that's not true. The OP_VAULT code

00:20:01.450 --> 00:20:06.520
<v Sjors Provoost>says that you can only spend it if the output of your transaction... Has

00:20:06.520 --> 00:20:09.720
<v Sjors Provoost>OP_UNVAULT in it right unless it's the recovery thing.

00:20:09.720 --> 00:20:14.260
<v Aaron van Wirdum>So how do I get the money Sjors, because now there's only a hash of my address on

00:20:14.260 --> 00:20:14.760
<v Aaron van Wirdum>the blockchain?

00:20:14.760 --> 00:20:18.880
<v Sjors Provoost>Exactly now there's only a hash of your address on the blockchain and there's

00:20:18.880 --> 00:20:23.600
<v Sjors Provoost>this mysterious OP_UNVAULT code which probably is also hidden in a [unclear] but

00:20:23.600 --> 00:20:28.000
<v Sjors Provoost>that doesn't really matter well the way you spend it the way I spend it is I have

00:20:28.000 --> 00:20:33.730
<v Sjors Provoost>to wait for n blocks and then I can create a transaction with no signature Just,

00:20:33.730 --> 00:20:37.910
<v Sjors Provoost>I can just take the money. Anybody can take that money, in fact. But there's a,

00:20:38.110 --> 00:20:40.910
<v Sjors Provoost>and again, the covenant is putting a restriction on the output side of the

00:20:40.910 --> 00:20:44.830
<v Sjors Provoost>transaction saying this can only go to wherever that hash refers to.

00:20:45.570 --> 00:20:45.930
<v Aaron van Wirdum>Right.

00:20:46.030 --> 00:20:49.310
<v Sjors Provoost>So if I fill in your address, it matches the hash and it goes through. But

00:20:49.310 --> 00:20:51.110
<v Sjors Provoost>interestingly, you could have made that transaction too.

00:20:51.490 --> 00:20:55.030
<v Aaron van Wirdum>Yeah. So, well, in that case, you would have had to give me the transaction, I

00:20:55.030 --> 00:20:58.540
<v Aaron van Wirdum>guess, right? Would I know what the transaction looks like?

00:20:59.200 --> 00:21:02.400
<v Sjors Provoost>You probably would not have been able to guess because you don't know all the

00:21:02.400 --> 00:21:06.280
<v Sjors Provoost>details to make the Taproot transaction. In principle, anybody can make it. Once

00:21:06.280 --> 00:21:09.300
<v Sjors Provoost>it's on the blockchain, I guess you could copy it and change it.

00:21:11.040 --> 00:21:16.960
<v Aaron van Wirdum>Well, just to be clear, I think we need to be clear about the different type

00:21:16.960 --> 00:21:22.500
<v Aaron van Wirdum>of transactions that are involved here. So the first transaction is putting

00:21:22.500 --> 00:21:28.210
<v Aaron van Wirdum>the coins in the vault, right? And then there's a second transaction

00:21:28.210 --> 00:21:34.430
<v Aaron van Wirdum>that's getting the money out of the vault, but it's not yet sent to me.

00:21:34.650 --> 00:21:34.910
<v Sjors Provoost>Exactly.

00:21:35.050 --> 00:21:40.550
<v Aaron van Wirdum>There's an intermediate transaction. This is recorded on the blockchain as

00:21:40.550 --> 00:21:46.370
<v Aaron van Wirdum>explicitly an intermediate transaction. And then after some time has passed,

00:21:46.610 --> 00:21:50.190
<v Aaron van Wirdum>now there's a third transaction, and that's the transaction that's actually

00:21:50.190 --> 00:21:51.590
<v Aaron van Wirdum>sending money to me.

00:21:51.940 --> 00:21:52.420
<v Sjors Provoost>Yes.

00:21:52.560 --> 00:21:56.260
<v Aaron van Wirdum>And this third transaction doesn't need to be signed or anything. The only thing

00:21:56.260 --> 00:22:01.360
<v Aaron van Wirdum>that needs to happen is that the amount of time that was defined by the

00:22:01.360 --> 00:22:05.860
<v Aaron van Wirdum>intermediate transaction and the original transaction, by the way, that needs to

00:22:05.860 --> 00:22:07.820
<v Aaron van Wirdum>have passed. That's all that really needs to happen.

00:22:08.000 --> 00:22:12.060
<v Sjors Provoost>Exactly. Well, and it needs to go to the destination that was committed to in the

00:22:12.060 --> 00:22:13.600
<v Sjors Provoost>second transaction.

00:22:15.200 --> 00:22:16.940
<v Aaron van Wirdum>Sure, it needs to go to my address.

00:22:17.200 --> 00:22:17.500
<v Sjors Provoost>Exactly.

00:22:17.780 --> 00:22:19.140
<v Aaron van Wirdum>Yeah, otherwise it wouldn't be valid, right?

00:22:19.280 --> 00:22:22.600
<v Sjors Provoost>So it's completely, essentially it's predetermined, but you have to wait a while

00:22:22.600 --> 00:22:24.020
<v Sjors Provoost>before you can send it on the internet.

00:22:24.280 --> 00:22:24.440
<v Aaron van Wirdum>Yeah.

00:22:24.720 --> 00:22:29.640
<v Sjors Provoost>And this is kind of like the hot wallet that you see in these other vault

00:22:29.640 --> 00:22:33.330
<v Sjors Provoost>designs, except it's not really a wallet. It's some sort of limbo place. Where

00:22:33.330 --> 00:22:35.350
<v Sjors Provoost>your transaction briefly rests and then continues.

00:22:35.350 --> 00:22:39.330
<v Aaron van Wirdum>Yeah it's really a new kind of thing like this is probably the main new kind of

00:22:39.330 --> 00:22:42.930
<v Aaron van Wirdum>thing. Well this is the main new kind of thing in this proposal. That there's

00:22:42.930 --> 00:22:48.250
<v Aaron van Wirdum>this intermediate limbo transaction that can just be spent after some time and

00:22:48.250 --> 00:22:52.690
<v Aaron van Wirdum>doesn't require any of the [unclear] signatures after that yeah okay so that's

00:22:52.690 --> 00:22:58.130
<v Aaron van Wirdum>these are sort of the three main transactions at least In the happy place?

00:22:58.290 --> 00:23:02.610
<v Sjors Provoost>Yeah, and in the unhappy place, there is a recovery transaction. And this

00:23:02.610 --> 00:23:06.250
<v Sjors Provoost>essentially just, because you've committed to the recovery script in advance,

00:23:06.450 --> 00:23:11.000
<v Sjors Provoost>you've basically told that you can simply spend it with the recovery script. And

00:23:11.000 --> 00:23:12.860
<v Sjors Provoost>then send it wherever you want immediately.

00:23:13.160 --> 00:23:16.380
<v Aaron van Wirdum>I'm not sure what that means. I'm not sure what you're saying now.

00:23:17.140 --> 00:23:21.140
<v Sjors Provoost>So you can spend it by sending it to the recovery destination. I think that's it.

00:23:21.340 --> 00:23:25.020
<v Sjors Provoost>So you can always make a transaction that takes the money out of the vault and

00:23:25.020 --> 00:23:28.680
<v Sjors Provoost>sends it to your recovery destination. And you've decided what that recovery

00:23:28.680 --> 00:23:31.420
<v Sjors Provoost>destination is when you created the vault.

00:23:32.670 --> 00:23:34.430
<v Sjors Provoost>Because the first transaction...

00:23:34.430 --> 00:23:38.750
<v Aaron van Wirdum>You probably still need a signature for that transaction, right? Or is that

00:23:38.750 --> 00:23:39.470
<v Aaron van Wirdum>always possible?

00:23:39.630 --> 00:23:45.150
<v Sjors Provoost>No, I think not. I think it's optional. But I think in principle, if somebody

00:23:45.150 --> 00:23:49.130
<v Sjors Provoost>else knows how your vault works, they can trigger it. But if you just keep that a

00:23:49.130 --> 00:23:49.870
<v Sjors Provoost>secret, they can't.

00:23:51.680 --> 00:23:56.900
<v Aaron van Wirdum>I see. So anyone should be able to send... Well, at least you should be able to

00:23:56.900 --> 00:24:01.560
<v Aaron van Wirdum>send... The money from your vault to your super secure backup anytime you want.

00:24:01.560 --> 00:24:06.760
<v Aaron van Wirdum>Yeah, and also and this is the important part, I think you can also send the

00:24:06.760 --> 00:24:11.560
<v Aaron van Wirdum>money to the super secure setup from the intermediate transaction.

00:24:11.560 --> 00:24:16.360
<v Sjors Provoost>Exactly so you can either do it because you lost whatever ability you had to use

00:24:16.360 --> 00:24:20.740
<v Sjors Provoost>the vault normally right but you can also take it from the intermediate

00:24:20.740 --> 00:24:23.700
<v Sjors Provoost>transaction if you see that somebody is taking money out of your vault and you

00:24:23.700 --> 00:24:27.900
<v Sjors Provoost>were not expecting it then you have X amount of days or hours or whatever it is

00:24:27.900 --> 00:24:31.220
<v Sjors Provoost>to send your money to your backup destination.

00:24:31.560 --> 00:24:32.680
<v Aaron van Wirdum>So in that case,

00:24:33.890 --> 00:24:38.650
<v Aaron van Wirdum>that also requires nothing in particular? That requires no signature or nothing?

00:24:39.130 --> 00:24:41.890
<v Sjors Provoost>No, as far as I know, it doesn't. And there was some discussion on the mailing

00:24:41.890 --> 00:24:46.870
<v Sjors Provoost>list about whether that's good or not, because if you have multiple coins in the

00:24:46.870 --> 00:24:51.030
<v Sjors Provoost>same vault, then if you decide to pull one back to the backup location, somebody

00:24:51.030 --> 00:24:54.070
<v Sjors Provoost>else can go ahead and send all the other ones back. But that's probably what you

00:24:54.070 --> 00:24:57.510
<v Sjors Provoost>want. But I think there is some option if you don't want that for some reason to

00:24:57.510 --> 00:24:58.890
<v Sjors Provoost>opt out of it.

00:24:59.310 --> 00:24:59.670
<v Aaron van Wirdum>Okay.

00:24:59.810 --> 00:25:02.410
<v Sjors Provoost>Because it all looks the same. So somebody, yeah, there's no permission needed.

00:25:02.650 --> 00:25:07.570
<v Sjors Provoost>If you know what the magic revocation transaction is, you can apply it.

00:25:07.850 --> 00:25:12.010
<v Aaron van Wirdum>Okay. I'm almost clear on all of this, I think.

00:25:12.250 --> 00:25:12.510
<v Sjors Provoost>Okay.

00:25:12.630 --> 00:25:17.060
<v Aaron van Wirdum>If we got it right at least, then I'm almost clear. But let me... Sort of recap

00:25:17.060 --> 00:25:20.680
<v Aaron van Wirdum>and walk through it one more time just to make sure that I actually understand it

00:25:20.680 --> 00:25:25.960
<v Aaron van Wirdum>and might help our listeners as well so when you're first locking up the coins in

00:25:25.960 --> 00:25:31.840
<v Aaron van Wirdum>the vault there's three things you need to specify right one of them is the time

00:25:31.840 --> 00:25:37.050
<v Aaron van Wirdum>delay that's that's easy everyone will understand that and then

00:25:37.050 --> 00:25:39.110
<v Aaron van Wirdum>the second thing is

00:25:40.600 --> 00:25:42.780
<v Aaron van Wirdum>how to get it to the super secure backup?

00:25:42.780 --> 00:25:43.640
<v Sjors Provoost>Yep.

00:25:43.640 --> 00:25:46.100
<v Aaron van Wirdum>So what's actually I think what's actually in there?

00:25:46.100 --> 00:25:49.980
<v Sjors Provoost>I think you're just putting the address or script of the super secure backup

00:25:49.980 --> 00:25:53.540
<v Sjors Provoost>there. I almost as if you're sending it there right?

00:25:53.540 --> 00:25:56.020
<v Aaron van Wirdum>Well you're probably putting the hash of it there or not?

00:25:56.020 --> 00:25:57.620
<v Sjors Provoost>Yeah but probably yes. So

00:25:57.620 --> 00:26:01.140
<v Aaron van Wirdum>You're probably okay. So you're putting the hash of the address.

00:26:01.140 --> 00:26:03.920
<v Sjors Provoost>I mean that's an implementation detail either it's the hash or the address

00:26:03.920 --> 00:26:08.580
<v Sjors Provoost>itself. Well probably the hash. Well if you know the address is already a hash so

00:26:08.580 --> 00:26:12.680
<v Sjors Provoost>I think it's the same thing An address is already the hash of either a public key

00:26:12.680 --> 00:26:18.540
<v Sjors Provoost>or a script. So my guess is that the thing you're putting in there is just the address.

00:26:18.760 --> 00:26:23.380
<v Aaron van Wirdum>Well, if you put the address there, then it's super easy for everyone to just

00:26:23.380 --> 00:26:27.100
<v Aaron van Wirdum>troll you and send your money to the vault. Well, if you put the hash there...

00:26:27.520 --> 00:26:28.360
<v Aaron van Wirdum>It's not, right?

00:26:28.780 --> 00:26:29.140
<v Sjors Provoost>Well...

00:26:29.140 --> 00:26:32.040
<v Aaron van Wirdum>If you put a hash there, then you would actually need to know the address.

00:26:32.240 --> 00:26:35.080
<v Sjors Provoost>Yeah, that's probably true. Because I guess when you're creating the vault,

00:26:35.180 --> 00:26:38.380
<v Sjors Provoost>nobody can see it. Because it's just hidden inside the Taproot tree. But as soon

00:26:38.380 --> 00:26:42.120
<v Sjors Provoost>as you use the vault, people would be able to see it. So I guess it's not the

00:26:42.120 --> 00:26:47.010
<v Sjors Provoost>exact hash. Because that would indeed be a problem. But you'd have to read the picture.

00:26:47.010 --> 00:26:48.430
<v Aaron van Wirdum>Not the exact address is what you mean.

00:26:48.530 --> 00:26:51.690
<v Sjors Provoost>Yeah, not the exact address. Because that would be a problem. Maybe.

00:26:53.370 --> 00:26:57.190
<v Sjors Provoost>Not necessarily. But yeah, I guess then somebody else could take it out. So you

00:26:57.190 --> 00:26:57.630
<v Sjors Provoost>don't want that.

00:26:58.150 --> 00:27:02.470
<v Aaron van Wirdum>Okay, well, my quick recap is turning more into a brainstorm.

00:27:03.030 --> 00:27:06.670
<v Sjors Provoost>Exactly. So the main point is you put something in there that tells you how it

00:27:06.670 --> 00:27:10.230
<v Sjors Provoost>goes to the super secure backup thing. But we don't know exactly what you put in

00:27:10.230 --> 00:27:10.690
<v Sjors Provoost>it. Right.

00:27:10.870 --> 00:27:15.770
<v Aaron van Wirdum>So you put the delay in there that's required. You put it… That's kind of a

00:27:15.770 --> 00:27:18.530
<v Aaron van Wirdum>cop-out [unclear]. Shouldn't we know what you put in there?

00:27:19.410 --> 00:27:20.750
<v Sjors Provoost>Do you want to read the BIP again?

00:27:23.610 --> 00:27:28.030
<v Aaron van Wirdum>You put some magic in there so you put the delay in there you put some magic in

00:27:28.030 --> 00:27:31.790
<v Aaron van Wirdum>there that shows you how to get it to the backup the super secure backup and then

00:27:31.790 --> 00:27:34.270
<v Aaron van Wirdum>the third one was

00:27:35.140 --> 00:27:40.040
<v Sjors Provoost>Whatever condition you have to spend it normally so because you don't your vault

00:27:40.040 --> 00:27:43.860
<v Sjors Provoost>shouldn't be in anyone can spend address obviously your vault should be just I

00:27:43.860 --> 00:27:46.260
<v Sjors Provoost>don't know it should take a signature or multiple signatures whatever you usually

00:27:46.260 --> 00:27:49.560
<v Sjors Provoost>do for your wallet is you have to tell the vault that right?

00:27:49.560 --> 00:27:53.160
<v Aaron van Wirdum>Got it. So that can be a regular signature. That in most cases that will probably

00:27:53.160 --> 00:27:54.080
<v Aaron van Wirdum>be a regular signature.

00:27:54.560 --> 00:27:54.940
<v Sjors Provoost>Yeah.

00:27:55.400 --> 00:28:00.640
<v Aaron van Wirdum>Okay, got it. So that's the three things. A delay, instructions of how to get it

00:28:00.640 --> 00:28:05.640
<v Aaron van Wirdum>or a hash or magic of how to get it to the super secure backup. And then the

00:28:05.640 --> 00:28:09.200
<v Aaron van Wirdum>third thing is whatever you would usually do to be able to spend the money.

00:28:09.440 --> 00:28:10.500
<v Sjors Provoost>Yeah, followed by a vault.

00:28:10.640 --> 00:28:15.180
<v Aaron van Wirdum>That's how you get it into the vault, getting it out of the vault once again.

00:28:16.270 --> 00:28:17.930
<v Aaron van Wirdum>Use the OP_UNVAULT.

00:28:18.230 --> 00:28:22.110
<v Sjors Provoost>Yeah, but the OP_UNVAULT is on the spending side of that transaction. So to get

00:28:22.110 --> 00:28:25.250
<v Sjors Provoost>it out, you have to do something on the input side. And we're a little vague on

00:28:25.250 --> 00:28:28.710
<v Sjors Provoost>that, but I think the only thing you need to do on the input side is just satisfy

00:28:28.710 --> 00:28:33.630
<v Sjors Provoost>the script as you would normally satisfy a script, basically, the happy case

00:28:33.630 --> 00:28:38.850
<v Sjors Provoost>script. And then the OP_VAULT code that you had before demands that the output of

00:28:38.850 --> 00:28:43.910
<v Sjors Provoost>this intermediate transaction has certain qualities. The output has to contain an

00:28:43.910 --> 00:28:49.800
<v Sjors Provoost>OP_UNVAULT code. And that unvault code then has to contain, again, the recovery

00:28:49.800 --> 00:28:55.450
<v Sjors Provoost>stuff that we talked about. It has to have the delay again. And it has to have,

00:28:55.550 --> 00:28:59.950
<v Sjors Provoost>and that's new, the hash of the outputs that you're going to send it to. So the

00:28:59.950 --> 00:29:01.350
<v Sjors Provoost>hash of the final destination.

00:29:01.630 --> 00:29:04.330
<v Aaron van Wirdum>Yeah, so that was the hash of my address in the example we gave.

00:29:04.470 --> 00:29:08.030
<v Sjors Provoost>Exactly. Now, in your case, you know your address, so you know what the hash is,

00:29:08.130 --> 00:29:11.190
<v Sjors Provoost>but there might be multiple destinations, right? It might be paying to you and a

00:29:11.190 --> 00:29:11.690
<v Sjors Provoost>few other people.

00:29:13.080 --> 00:29:18.700
<v Sjors Provoost>So, and that is followed by OP_UNVAULT. And so that means that this

00:29:18.700 --> 00:29:23.540
<v Sjors Provoost>transaction, when you then have the third transaction, it has to wait for a

00:29:23.540 --> 00:29:27.140
<v Sjors Provoost>number of blocks. Because that's what the OP_UNVAULT part ensures, basically.

00:29:28.540 --> 00:29:32.560
<v Sjors Provoost>And when you withdraw the transaction, again, you don't have to put in anything

00:29:32.560 --> 00:29:36.140
<v Sjors Provoost>on the signature side. It's just a transaction that says, okay, you can take it

00:29:36.140 --> 00:29:42.100
<v Sjors Provoost>now. But because it's a covenant, it demands that the outputs go to you.

00:29:44.090 --> 00:29:48.090
<v Aaron van Wirdum>Okay, we've been over this twice now, and I think it's...

00:29:48.410 --> 00:29:50.730
<v Sjors Provoost>It's super clear everybody understands this.

00:29:51.130 --> 00:29:52.550
<v Aaron van Wirdum>Yes, that's what I think, Sjors.

00:29:54.790 --> 00:29:56.510
<v Aaron van Wirdum>Why is this better than what we have?

00:29:56.650 --> 00:30:00.970
<v Sjors Provoost>Oh, and one more thing. The amount I'm sending to you doesn't have to be the full

00:30:00.970 --> 00:30:04.330
<v Sjors Provoost>amount of the vault. It can have changed, and that change can go back to the same

00:30:04.330 --> 00:30:08.660
<v Sjors Provoost>vault, trivially, without doing anything complicated. That would be address

00:30:08.660 --> 00:30:10.760
<v Sjors Provoost>reuse, but at least it would be nice.

00:30:11.220 --> 00:30:15.560
<v Aaron van Wirdum>Yeah, well, that's, I think, one of the main benefits, right? Because when we

00:30:15.560 --> 00:30:16.620
<v Aaron van Wirdum>started...

00:30:16.720 --> 00:30:20.520
<v Sjors Provoost>You can also do it without address reuse. You can just create a new vault, but

00:30:20.520 --> 00:30:24.500
<v Sjors Provoost>then sending the change to that new vault would also have to go through that

00:30:24.500 --> 00:30:28.760
<v Sjors Provoost>30-day or whatever delay it is. So there is normal change that you make in a

00:30:28.760 --> 00:30:32.000
<v Sjors Provoost>transaction, but then you're taking everything out of the vault. And if you

00:30:32.000 --> 00:30:35.740
<v Sjors Provoost>really don't want to have any address reuse... I would send some to you and then

00:30:35.740 --> 00:30:39.300
<v Sjors Provoost>the change would go back to me, but that's just another transaction, so it has to

00:30:39.300 --> 00:30:43.280
<v Sjors Provoost>go through the delay. But there's a special exception that if you send it back to

00:30:43.280 --> 00:30:46.960
<v Sjors Provoost>the same vault, the exact same address, it doesn't have to wait. The change can

00:30:46.960 --> 00:30:50.200
<v Sjors Provoost>go back immediately and the money that I'm sending to you will be in limbo.

00:30:52.520 --> 00:30:56.580
<v Aaron van Wirdum>You say address reuse. Is it literally address reuse?

00:30:56.700 --> 00:30:58.060
<v Sjors Provoost>Yeah, because the vault is just an address.

00:30:59.560 --> 00:31:03.910
<v Sjors Provoost>You can make as many vaults as you want, but one vault is one address. So if you

00:31:03.910 --> 00:31:07.890
<v Sjors Provoost>want to spend part of a vault part of an address then the change in order to do

00:31:07.890 --> 00:31:10.710
<v Sjors Provoost>it quickly has to go back to the same address is

00:31:11.250 --> 00:31:15.430
<v Aaron van Wirdum>there a way of putting it in the same vault under a different address

00:31:16.010 --> 00:31:21.270
<v Sjors Provoost>not as far as the blockchain is concerned but if you have a wallet then it can be

00:31:21.270 --> 00:31:26.050
<v Sjors Provoost>smart it can just like you put in an xpub and it could create multiple vaults and

00:31:26.050 --> 00:31:30.130
<v Sjors Provoost>then it would just send money changed from one vault to the second vault.

00:31:30.130 --> 00:31:33.470
<v Aaron van Wirdum>And they do… would they use the same super secure backup?

00:31:34.340 --> 00:31:40.340
<v Sjors Provoost>Well, assuming your super secure backup is also an xpub, essentially, let's say

00:31:40.340 --> 00:31:44.680
<v Sjors Provoost>you would just use address number two of the xpub as address number three of your

00:31:44.680 --> 00:31:49.680
<v Sjors Provoost>super secure backup. So your super secure backup can be a hierarchical wallet as

00:31:49.680 --> 00:31:55.570
<v Sjors Provoost>well. So one address in your vault wallet corresponds to one

00:31:55.570 --> 00:31:56.830
<v Sjors Provoost>address in your super secure backup.

00:31:58.240 --> 00:32:01.220
<v Sjors Provoost>But it just depends on how you want to do it. You can also have one address as a

00:32:01.220 --> 00:32:04.540
<v Sjors Provoost>super secure backup. It just means that if you ever use it, you're kind of doxing

00:32:04.540 --> 00:32:08.570
<v Sjors Provoost>all your coins because they all go to the same place.

00:32:10.440 --> 00:32:13.200
<v Sjors Provoost>It's pretty flexible. The proposal itself doesn't care.

00:32:14.670 --> 00:32:19.730
<v Aaron van Wirdum>Well, what I'm kind of trying to get at is that I think one of the benefits

00:32:19.730 --> 00:32:24.300
<v Aaron van Wirdum>of this proposal is indeed the flexibility.

00:32:25.900 --> 00:32:30.560
<v Aaron van Wirdum>I definitely read something along the lines of being able to use the super secure backup.

00:32:31.820 --> 00:32:36.120
<v Aaron van Wirdum>And that was a benefit there. There was some sort of aggregation going on. You

00:32:36.120 --> 00:32:39.890
<v Aaron van Wirdum>would need fewer transactions, something like that.

00:32:40.190 --> 00:32:44.250
<v Sjors Provoost>If you're willing to reuse addresses, then it gets easier. Because I think there

00:32:44.250 --> 00:32:48.250
<v Sjors Provoost>might be multiple things you can do, if I read it correctly. One is that you can

00:32:48.250 --> 00:32:51.910
<v Sjors Provoost>just send change immediately back to the vault without having to wait 30 days,

00:32:52.010 --> 00:32:55.510
<v Sjors Provoost>which means that if you want to pay multiple people... In order. You don't have

00:32:55.510 --> 00:32:59.070
<v Sjors Provoost>to wait for each of those two for the vault to finish. But I think the other one

00:32:59.070 --> 00:33:03.330
<v Sjors Provoost>is that you can create a single transaction that combines stuff from multiple

00:33:03.330 --> 00:33:07.930
<v Sjors Provoost>coins in your vault. So let's say you have your vault address and 10 different

00:33:07.930 --> 00:33:13.690
<v Sjors Provoost>people sent money to it. Then I think you can combine all 10 of them and then

00:33:13.690 --> 00:33:18.480
<v Sjors Provoost>withdraw them in like with just one intermediate transaction rather than 10. I

00:33:18.480 --> 00:33:21.080
<v Sjors Provoost>think stuff like that is possible, but I don't know. You'd have to read the BIP

00:33:21.080 --> 00:33:22.200
<v Sjors Provoost>and improve the BIP.

00:33:22.320 --> 00:33:26.540
<v Aaron van Wirdum>I'm definitely reaching the point where I feel like this would have benefited

00:33:26.540 --> 00:33:29.740
<v Aaron van Wirdum>from having James on the podcast or something.

00:33:29.960 --> 00:33:30.480
<v Sjors Provoost>Certainly, yes.

00:33:31.020 --> 00:33:34.620
<v Aaron van Wirdum>There's definitely a lot of stuff we don't really understand, or at least that I

00:33:34.620 --> 00:33:38.140
<v Aaron van Wirdum>don't understand, and that you also seem a bit iffy on still.

00:33:38.460 --> 00:33:39.400
<v Sjors Provoost>Oh, for sure, yeah.

00:33:39.660 --> 00:33:39.960
<v Aaron van Wirdum>Okay,

00:33:40.160 --> 00:33:44.240
<v Sjors Provoost>Well, at least we've established that. There's a white paper that James wrote.

00:33:44.860 --> 00:33:50.720
<v Sjors Provoost>Like, I think if you Google O’Beirne vaults PDF, you'll find it. And then

00:33:50.720 --> 00:33:55.520
<v Sjors Provoost>there is a BIP that he wrote, which sort of specifies it precisely how it works,

00:33:55.560 --> 00:33:56.920
<v Sjors Provoost>which also has some nice pictures in it.

00:33:58.260 --> 00:33:58.700
<v Sjors Provoost>And...

00:34:00.740 --> 00:34:02.320
<v Sjors Provoost>You just broke your headphones.

00:34:02.560 --> 00:34:02.900
<v Aaron van Wirdum>That's fine.

00:34:03.260 --> 00:34:08.420
<v Sjors Provoost>Okay. And there is a implementation, like a draft example of how to put it in

00:34:08.420 --> 00:34:12.360
<v Sjors Provoost>Bitcoin Core that you can play with. Now, generally what happens is this PDF

00:34:12.360 --> 00:34:16.180
<v Sjors Provoost>white paper will be out of date because it was written a month ago and then the

00:34:16.180 --> 00:34:19.280
<v Sjors Provoost>proposal keeps changing. So you probably want to read either the BIP or the

00:34:19.280 --> 00:34:22.540
<v Sjors Provoost>implementation or the mailing list to figure out precisely what it can do or not.

00:34:23.870 --> 00:34:28.690
<v Aaron van Wirdum>Can we just... Structure our episodes like this moving forward that's much easier

00:34:28.690 --> 00:34:33.270
<v Aaron van Wirdum>we just say hey there's a new proposal you can read it yourself read the mailing

00:34:33.270 --> 00:34:39.340
<v Aaron van Wirdum>list yeah Read the BIP have fun see you in two weeks.

00:34:39.340 --> 00:34:44.180
<v Sjors Provoost>Exactly. Now do we quickly want to get into how this contrasts to some other

00:34:44.180 --> 00:34:44.780
<v Sjors Provoost>proposals?

00:34:44.780 --> 00:34:49.640
<v Aaron van Wirdum>Oh my god. I almost forgot about that yeah do you think you still have to do you

00:34:49.640 --> 00:34:54.080
<v Aaron van Wirdum>think you got the Power left the oomph to do that, the energy left.

00:34:54.320 --> 00:34:56.500
<v Sjors Provoost>Not to do it for very long, but very briefly.

00:34:56.820 --> 00:34:58.740
<v Aaron van Wirdum>Not to mention the knowledge is Sjors.

00:34:59.120 --> 00:35:03.940
<v Sjors Provoost>Very briefly, there is a, there's two ideas roughly how to do covenants. I guess

00:35:03.940 --> 00:35:09.800
<v Sjors Provoost>there's multiple. One is the OP_CSV proposal by Jeremy Rubin and very

00:35:09.800 --> 00:35:14.920
<v Sjors Provoost>TL;DR: This still requires you to pre-sign transactions. But it's a little bit

00:35:14.920 --> 00:35:17.540
<v Sjors Provoost>more flexible than how you would do here.

00:35:17.680 --> 00:35:22.780
<v Aaron van Wirdum>Well, also a little bit more blockchain-y, right? You don't have the unsigned

00:35:22.780 --> 00:35:26.000
<v Aaron van Wirdum>transactions that you need to store somewhere. Like the stuff is still actually

00:35:26.000 --> 00:35:26.660
<v Aaron van Wirdum>on the blockchain.

00:35:26.880 --> 00:35:29.600
<v Sjors Provoost>I think you still need to store unsigned transactions just that you don't have to

00:35:29.600 --> 00:35:34.160
<v Sjors Provoost>delete the private key. Because I think what you're doing is you're creating a

00:35:34.160 --> 00:35:38.760
<v Sjors Provoost>transaction that commits to a hash and that hash represents the next transaction

00:35:38.760 --> 00:35:43.760
<v Sjors Provoost>in the series. Or like a tree of transactions. So you broadcast one transaction

00:35:43.760 --> 00:35:47.220
<v Sjors Provoost>on chain, but this really represents future transactions that can be broadcast on

00:35:47.220 --> 00:35:51.200
<v Sjors Provoost>chain later. But you still need to hold on to what those future transactions are,

00:35:51.300 --> 00:35:53.600
<v Sjors Provoost>of course, otherwise the blockchain doesn't know.

00:35:55.290 --> 00:35:59.110
<v Sjors Provoost>And so that you can implement a vault structure as we discussed in the beginning.

00:35:59.680 --> 00:36:03.280
<v Sjors Provoost>In that way too but it still requires signing a bunch of transactions in advance

00:36:03.280 --> 00:36:07.660
<v Sjors Provoost>it's not it's not flexible but it doesn't require you to have some toxic material

00:36:07.660 --> 00:36:12.000
<v Sjors Provoost>basically the idea of having a private key that if you forgot to delete it or if

00:36:12.000 --> 00:36:15.800
<v Sjors Provoost>it was already compromised you'd be screwed yeah so it's a little bit better and

00:36:15.800 --> 00:36:20.760
<v Sjors Provoost>the other thing you can do is create a more generic covenant So now we've

00:36:20.760 --> 00:36:24.560
<v Sjors Provoost>described this covenant can, has some, this opcode has very specific requirements

00:36:24.560 --> 00:36:28.320
<v Sjors Provoost>on what the, on what the outputs do of a new transaction. But you can make this

00:36:28.320 --> 00:36:31.680
<v Sjors Provoost>very generic saying like, okay, the only, this transaction can only be spent by

00:36:31.680 --> 00:36:36.470
<v Sjors Provoost>this specific kind of other transaction. And you can make that very abstract. And

00:36:36.470 --> 00:36:41.190
<v Sjors Provoost>then using that very abstract system, you can then implement a vault. And there's

00:36:41.190 --> 00:36:47.100
<v Sjors Provoost>two problems with that. One is that there is no such proposal, I believe. And at

00:36:47.100 --> 00:36:49.720
<v Sjors Provoost>least it's not going to happen anytime soon because covenants are a little bit

00:36:49.720 --> 00:36:53.640
<v Sjors Provoost>scary, especially with ideas like, oh my God, you can put some condition in it

00:36:53.640 --> 00:36:58.640
<v Sjors Provoost>that will sort of poison those coins for eternity because wherever you spend

00:36:58.640 --> 00:37:02.180
<v Sjors Provoost>them, they also have to meet the covenant. And the second thing, at least what

00:37:02.180 --> 00:37:07.400
<v Sjors Provoost>James O’Beirne points out in his PDF, is that even if you do have a system like

00:37:07.400 --> 00:37:10.560
<v Sjors Provoost>that, it's going to be complicated to build a vault. So the vault would not be a

00:37:10.560 --> 00:37:15.080
<v Sjors Provoost>simple two-upcode thing. It would be a much more complicated construction. And

00:37:15.080 --> 00:37:19.180
<v Sjors Provoost>more complicated construction also means it uses more fees. So that's the

00:37:19.180 --> 00:37:23.400
<v Sjors Provoost>argument for basically saying, let's do a very simple soft fork.

00:37:26.180 --> 00:37:26.560
<v Aaron van Wirdum>Yeah,

00:37:28.570 --> 00:37:30.990
<v Aaron van Wirdum>which is OP_VAULT. That's the idea.

00:37:31.510 --> 00:37:31.690
<v Sjors Provoost>Yeah.

00:37:31.930 --> 00:37:37.050
<v Aaron van Wirdum>There's also, there's a lot more we could get into, which I don't think we're gonna.

00:37:37.990 --> 00:37:41.830
<v Sjors Provoost>No, I mean, we could explain how to do inscriptions and ordinals with this.

00:37:42.220 --> 00:37:43.340
<v Aaron van Wirdum>No, I'm just kidding.

00:37:43.460 --> 00:37:44.040
<v Sjors Provoost>You cannot.

00:37:44.260 --> 00:37:48.560
<v Aaron van Wirdum>I was referring to the whole fee situation, which James has been writing a lot about.

00:37:48.880 --> 00:37:53.580
<v Sjors Provoost>Yeah, this whole combining transactions, you know, in series, there are some

00:37:53.580 --> 00:37:58.230
<v Sjors Provoost>subtle things about fees there that we're not going to explain. In part because

00:37:58.230 --> 00:38:00.470
<v Sjors Provoost>we don't know and in part because we've been doing this long enough now.

00:38:01.310 --> 00:38:05.330
<v Aaron van Wirdum>We've been doing the sort of guessing our way through the OP_VAULT proposal long enough.

00:38:05.530 --> 00:38:05.710
<v Sjors Provoost>Yeah.

00:38:06.010 --> 00:38:11.740
<v Aaron van Wirdum>Okay, let's call it an episode then, Sjors. I think at least it was

00:38:11.740 --> 00:38:17.360
<v Aaron van Wirdum>somewhat clear in part. It may have given some people a

00:38:17.360 --> 00:38:22.950
<v Aaron van Wirdum>slightly bigger clue of what a vault is. And then hopefully

00:38:22.950 --> 00:38:27.350
<v Aaron van Wirdum>specifically what a OP_VAULT is. And if you want to read more about the details,

00:38:27.510 --> 00:38:31.990
<v Aaron van Wirdum>then Sjors knows where you can find it. Can you repeat for our dear listener?

00:38:32.210 --> 00:38:35.190
<v Sjors Provoost>Yes, you can see it in the show notes. Thank you for listening to Bitcoin,

00:38:35.190 --> 00:38:36.370
<v Aaron van Wirdum>Explained.

