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

00:00:05.580 --> 00:00:10.360
<v Aaron van Wirdum>Live from Utrecht, this is the Van Wirdum Sjorsnado. Hello. Hello. Hello.

00:00:10.780 --> 00:00:11.080
<v Ruben Somsen>Hello.

00:00:11.580 --> 00:00:14.220
<v Aaron van Wirdum>Hello. Hello. Ruben, welcome back.

00:00:14.560 --> 00:00:15.580
<v Ruben Somsen>Thank you. Good to be back.

00:00:15.800 --> 00:00:20.580
<v Aaron van Wirdum>We're going to discuss DriveChains today, and you are our in-house DriveChain expert.

00:00:20.820 --> 00:00:24.100
<v Ruben Somsen>Well, I'm not quite Paul Sztorc, but I'll try my best.

00:00:25.240 --> 00:00:26.260
<v Sjors Provoost>Sztorc Substitute.

00:00:26.580 --> 00:00:31.280
<v Aaron van Wirdum>Yeah, you've designed your own sidechain type of solution, so you're at least

00:00:31.280 --> 00:00:33.660
<v Aaron van Wirdum>sort of thinking about this kind of stuff on a regular basis.

00:00:33.840 --> 00:00:35.960
<v Ruben Somsen>That is true, yeah. I've done a lot of thinking about this.

00:00:36.340 --> 00:00:37.800
<v Aaron van Wirdum>So you're going to help us out today?

00:00:39.050 --> 00:00:39.110
<v Ruben Somsen>Yep.

00:00:39.210 --> 00:00:43.610
<v Aaron van Wirdum>Okay, well, so DriveChain episode. That obviously means we're going to spend most

00:00:43.610 --> 00:00:47.050
<v Aaron van Wirdum>of the episode complaining about how Bitcoin Core doesn't want to make any

00:00:47.050 --> 00:00:47.510
<v Aaron van Wirdum>changes.

00:00:47.850 --> 00:00:48.690
<v Sjors Provoost>Yep, absolutely.

00:00:50.470 --> 00:00:54.810
<v Aaron van Wirdum>That's a joke. I actually really like Paul. He's one of my favorite people to

00:00:54.810 --> 00:00:57.990
<v Aaron van Wirdum>listen to, but he does go on tangents sometimes.

00:00:59.020 --> 00:01:03.280
<v Ruben Somsen>Yeah, hopefully we'll be able to kind of give a different perspective from Paul's

00:01:03.280 --> 00:01:06.980
<v Ruben Somsen>perspective. I think it's always good to hear multiple explanations from multiple

00:01:06.980 --> 00:01:10.440
<v Ruben Somsen>people. So this hopefully helps people to understand drive chains more deeply.

00:01:10.720 --> 00:01:14.800
<v Aaron van Wirdum>Okay, so let's get into it. First of all, so drive chains are a type of side

00:01:14.800 --> 00:01:19.480
<v Aaron van Wirdum>chains. We've already discussed side chains on this podcast, I think twice now.

00:01:19.760 --> 00:01:25.500
<v Aaron van Wirdum>But nevertheless, let's very briefly mention the benefits of side chains. Do you

00:01:25.500 --> 00:01:26.520
<v Aaron van Wirdum>want to go? Yeah, Ruben.

00:01:26.680 --> 00:01:31.910
<v Ruben Somsen>Okay, yeah. Basically, this is a two-way pegged sidechain, meaning that you can

00:01:31.910 --> 00:01:36.150
<v Ruben Somsen>actually move Bitcoins in and out of this chain. Chain itself kind of runs

00:01:36.150 --> 00:01:39.890
<v Ruben Somsen>completely separately. So there's no attachment in terms of consensus or anything

00:01:39.890 --> 00:01:44.470
<v Ruben Somsen>like that. So you can either run the Bitcoin blockchain and the sidechain or just

00:01:44.470 --> 00:01:47.990
<v Ruben Somsen>the Bitcoin blockchain. But anyone who wants to run the Bitcoin blockchain does

00:01:47.990 --> 00:01:52.940
<v Ruben Somsen>not have to necessarily care about the sidechain unless they want to use it. And

00:01:52.940 --> 00:01:56.700
<v Ruben Somsen>the kind of nice thing about this is that you can have any kind of chain with any

00:01:56.700 --> 00:02:00.420
<v Ruben Somsen>kind of consensus rules. You could have an Ethereum chain, you could have a Zcash

00:02:00.420 --> 00:02:04.880
<v Ruben Somsen>chain, anything like that. And now you can move your Bitcoins to it and do

00:02:04.880 --> 00:02:06.820
<v Ruben Somsen>whatever you want with it and then move back to Bitcoin again.

00:02:07.180 --> 00:02:11.020
<v Aaron van Wirdum>Yeah, so DriveChain is more of a concept of a sidechain. It's not a specific

00:02:11.020 --> 00:02:16.920
<v Aaron van Wirdum>sidechain. It's a way to do sidechains. And they have, I think, two sort of

00:02:16.920 --> 00:02:22.470
<v Aaron van Wirdum>test net sidechains right now. One of them is like the big block. Or is it even

00:02:22.470 --> 00:02:24.130
<v Aaron van Wirdum>testnet? I think so, right? Yeah, it must be.

00:02:24.410 --> 00:02:27.350
<v Ruben Somsen>They are definitely tested there. There are no real bitcoins on there as of right now.

00:02:27.690 --> 00:02:30.970
<v Aaron van Wirdum>So one, they have a big block version and they have a Zcash version.

00:02:31.030 --> 00:02:32.270
<v Ruben Somsen>Yeah, that's what I believe.

00:02:32.510 --> 00:02:36.930
<v Sjors Provoost>I think back in 2017, I briefly experimented with the version of drive chains

00:02:36.930 --> 00:02:40.530
<v Sjors Provoost>they had then and tried to make like a gigabyte chain just to see what would

00:02:40.530 --> 00:02:45.150
<v Sjors Provoost>happen. I started messing with the consensus code and it was really difficult, as

00:02:45.150 --> 00:02:49.380
<v Sjors Provoost>you can imagine. And I actually found... Not a bug, but like a lacking thing in

00:02:49.380 --> 00:02:53.520
<v Sjors Provoost>the test suite for it that was making it really hard to debug. And I made a pull

00:02:53.520 --> 00:02:56.920
<v Sjors Provoost>request to Bitcoin Core. And that's actually how I got massively distracted into

00:02:56.920 --> 00:02:59.820
<v Sjors Provoost>contributing to Bitcoin Core and didn't pay attention to the drive chains anymore.

00:02:59.980 --> 00:03:00.580
<v Aaron van Wirdum>Oh, wow, really?

00:03:00.840 --> 00:03:01.380
<v Sjors Provoost>That's just a little backstory.

00:03:02.420 --> 00:03:02.980
<v Ruben Somsen>That's crazy.

00:03:03.080 --> 00:03:08.540
<v Aaron van Wirdum>Right. But anyways, to sum it up, so a sidechain, including drive chains, are a

00:03:08.540 --> 00:03:13.390
<v Aaron van Wirdum>way to use Bitcoin on a different blockchain with different rules. Yeah. Another

00:03:13.390 --> 00:03:17.210
<v Aaron van Wirdum>benefit I want to mention, because this is something Paul likes to mention, is

00:03:17.210 --> 00:03:22.660
<v Aaron van Wirdum>that on the sidechain users still pay fees.

00:03:23.120 --> 00:03:28.440
<v Aaron van Wirdum>And these fees would ultimately go to Bitcoin miners, which arguably helps

00:03:28.440 --> 00:03:29.760
<v Aaron van Wirdum>security of the Bitcoin network.

00:03:30.100 --> 00:03:35.260
<v Ruben Somsen>Yeah, and that's specific to the way that Paul suggests doing consensus for drive

00:03:35.260 --> 00:03:39.380
<v Ruben Somsen>chains, for these separate blockchains. And that's through blind merged mining,

00:03:39.500 --> 00:03:42.900
<v Ruben Somsen>which we also did an episode about blind merged mining in a perpetual one-way

00:03:42.900 --> 00:03:48.880
<v Ruben Somsen>peg. And so in that specific proposal, any type of merged mining really, the fees

00:03:48.880 --> 00:03:51.940
<v Ruben Somsen>would go to the Bitcoin miners. Theoretically, you could also do it as a

00:03:51.940 --> 00:03:55.560
<v Ruben Somsen>completely separate proof of work consensus mechanism. And then the fees wouldn't

00:03:55.560 --> 00:04:00.500
<v Ruben Somsen>necessarily go to the Bitcoin miners, but just the person who mines the sidechain.

00:04:00.980 --> 00:04:06.680
<v Aaron van Wirdum>Right. Yeah, I think for DriveChain, there are two main innovations, two main

00:04:06.680 --> 00:04:12.540
<v Aaron van Wirdum>proposals, which are BIPs 300 and 301. One of them is

00:04:12.540 --> 00:04:16.900
<v Aaron van Wirdum>merged mining, and the other one is the pegging in, pegging out mechanism.

00:04:17.660 --> 00:04:22.540
<v Ruben Somsen>Yeah, 301 is blind merged mining, and 300 is the pegging out mechanism mainly.

00:04:22.700 --> 00:04:23.700
<v Ruben Somsen>Yeah, and pegging in, I guess, yeah.

00:04:23.940 --> 00:04:29.840
<v Aaron van Wirdum>Right, so should we discuss the blind merged mining part? We already covered

00:04:29.840 --> 00:04:32.620
<v Aaron van Wirdum>it in previous episodes, but I think it's worth at least sort of... A little

00:04:32.620 --> 00:04:35.920
<v Aaron van Wirdum>recap. Yeah, a little recap. Who wants to give it a go?

00:04:36.860 --> 00:04:41.800
<v Sjors Provoost>Yeah, so the idea of blind merge mining, let's first say the idea of merge

00:04:41.800 --> 00:04:47.480
<v Sjors Provoost>mining, right, is that a Bitcoin miner also mines another chain and then they put

00:04:47.480 --> 00:04:50.320
<v Sjors Provoost>something in the Bitcoin chain to indicate that they've mined that other chain.

00:04:51.200 --> 00:04:56.240
<v Sjors Provoost>And this means that the Bitcoin miner has to run software for Bitcoin as well as

00:04:56.240 --> 00:05:00.880
<v Sjors Provoost>this other chain. And the problem with that is that let's say these sidechains

00:05:00.880 --> 00:05:06.520
<v Sjors Provoost>become really profitable. Then because miners are competing, then every miner has

00:05:06.520 --> 00:05:11.340
<v Sjors Provoost>to essentially run all these nodes for all these sidechains. And that means they

00:05:11.340 --> 00:05:14.480
<v Sjors Provoost>have to do a lot of validation work. And that's exactly what we want to prevent,

00:05:14.680 --> 00:05:15.440
<v Sjors Provoost>basically.

00:05:16.020 --> 00:05:16.220
<v Aaron van Wirdum>Why?

00:05:16.400 --> 00:05:21.320
<v Sjors Provoost>Well, because we want miners to be able to... be in very bad circumstances, say,

00:05:21.460 --> 00:05:25.700
<v Sjors Provoost>behind a Tor node in the middle of nowhere on the moon, and still be able to

00:05:25.700 --> 00:05:28.700
<v Sjors Provoost>produce blocks without getting orphaned and without having to download terabytes

00:05:28.700 --> 00:05:34.160
<v Sjors Provoost>of data from Earth. Right. So what Blind Merge Mining tries to solve this problem

00:05:34.160 --> 00:05:39.260
<v Sjors Provoost>by saying, well, dear miner, just put this hash in the blockchain, and it could

00:05:39.260 --> 00:05:43.740
<v Sjors Provoost>either be in the coinbase or some other way. And if you do that, you don't have

00:05:43.740 --> 00:05:46.640
<v Sjors Provoost>to care what that hash means. Just put it in there and we'll give you some money

00:05:46.640 --> 00:05:50.920
<v Sjors Provoost>to do that. That's the essence of blind merge mining. So that means the miners in

00:05:50.920 --> 00:05:54.660
<v Sjors Provoost>theory do not have to check anything on these other chains. And so it would not

00:05:54.660 --> 00:05:56.600
<v Sjors Provoost>drive up the cost for miners.

00:05:57.800 --> 00:06:01.460
<v Ruben Somsen>Yeah, I have nothing to add to that. I think that's exactly right. So specific to

00:06:01.460 --> 00:06:06.620
<v Ruben Somsen>drive chains, it's via the Coinbase. So it's kind of a specialized soft fork in

00:06:06.620 --> 00:06:12.060
<v Ruben Somsen>order to implement this blind merge mining mechanism. It's not necessary to use

00:06:12.060 --> 00:06:16.130
<v Ruben Somsen>it for drive chains. You could also use it for other types of chains. And it's

00:06:16.130 --> 00:06:21.150
<v Ruben Somsen>very similar to my blind merge mining proposal, which is, in a sense, it's a

00:06:21.150 --> 00:06:25.250
<v Ruben Somsen>derivative of what Paul Sztorc's work. But the difference is there that you don't

00:06:25.250 --> 00:06:27.090
<v Ruben Somsen>really need a specialized soft fork, so that's nice.

00:06:27.270 --> 00:06:30.610
<v Aaron van Wirdum>So why does Paul's version require a soft fork?

00:06:30.790 --> 00:06:36.210
<v Ruben Somsen>Well, technically, it no longer does, because he could utilize my work.

00:06:36.450 --> 00:06:39.990
<v Sjors Provoost>Without making it more complicated, let's assume he cannot utilize your work,

00:06:40.050 --> 00:06:41.330
<v Sjors Provoost>which also requires a soft fork.

00:06:41.570 --> 00:06:46.670
<v Ruben Somsen>yeah well yeah it requires a yeah non-specialized soft fork so at least you don't

00:06:46.670 --> 00:06:50.670
<v Ruben Somsen>you don't need to change anything about Bitcoin consensus specifically for

00:06:50.670 --> 00:06:52.030
<v Ruben Somsen>enabling blind merged mining

00:06:52.460 --> 00:06:56.660
<v Sjors Provoost>Yeah, what I liked about the current version of that BIP proposal is that it

00:06:56.660 --> 00:07:02.100
<v Sjors Provoost>allows sidechains to propose blocks to Bitcoin miners. So essentially you have

00:07:02.100 --> 00:07:05.220
<v Sjors Provoost>people on the sidechain who want to see a new block in the sidechain and they

00:07:05.220 --> 00:07:09.660
<v Sjors Provoost>give a hash to the Bitcoin miners. But they can offer multiple, I think multiple

00:07:09.660 --> 00:07:14.200
<v Sjors Provoost>sidechain miners can offer blocks to various Bitcoin miners in a sort of an

00:07:14.200 --> 00:07:19.360
<v Sjors Provoost>auction process. And without like going into too much of the game theory. One

00:07:19.360 --> 00:07:22.540
<v Sjors Provoost>interesting aspect of that is that you could use Lightning or a slightly modified

00:07:22.540 --> 00:07:26.000
<v Sjors Provoost>version of Lightning to do this. Because the nice thing about Lightning is that

00:07:26.000 --> 00:07:30.460
<v Sjors Provoost>you can do atomic trades. Essentially, you can say, okay, if you mine this block,

00:07:30.620 --> 00:07:35.580
<v Sjors Provoost>for if you mine this hash for me, then I'm going to give you money. And the way

00:07:35.580 --> 00:07:40.720
<v Sjors Provoost>they do that here is, I think they're saying that if this sidechain block appears

00:07:40.720 --> 00:07:45.250
<v Sjors Provoost>in the Bitcoin blockchain, then I'm going to give you money. And so that does

00:07:45.250 --> 00:07:48.290
<v Sjors Provoost>require a soft fork because normally what you do with Lightning is you're saying,

00:07:48.410 --> 00:07:52.410
<v Sjors Provoost>if you reveal the secret to me, I'm going to give you the money. Or if you reveal

00:07:52.410 --> 00:07:57.150
<v Sjors Provoost>the secret to the blockchain, the money is mine, essentially. But the problem

00:07:57.150 --> 00:08:01.570
<v Sjors Provoost>with revealing a secret is, well, somebody could mine a block and then the secret

00:08:01.570 --> 00:08:05.230
<v Sjors Provoost>is revealed because the block exists and it has a secret in it. But now the block

00:08:05.230 --> 00:08:09.680
<v Sjors Provoost>gets re-orged. So if you want to incentivize miners to make sure that block does

00:08:09.680 --> 00:08:13.720
<v Sjors Provoost>not get reorg'd, then it's not enough to just reveal a secret because the secret

00:08:13.720 --> 00:08:17.840
<v Sjors Provoost>can't be disappeared again when there's a reorg. The secret is just known. So the

00:08:17.840 --> 00:08:22.120
<v Sjors Provoost>soft fork would consist of something like saying, does this thing exist in the

00:08:22.120 --> 00:08:22.600
<v Sjors Provoost>coinbase?

00:08:24.140 --> 00:08:28.480
<v Sjors Provoost>So it has to be some sort of check to see some sort of state in the Coinbase.

00:08:28.860 --> 00:08:34.200
<v Aaron van Wirdum>Yeah. So does this also mean... that on the drive chain, side chain, there would

00:08:34.200 --> 00:08:38.320
<v Aaron van Wirdum>only be one block for each Bitcoin block? One block every 10 minutes, basically?

00:08:38.560 --> 00:08:43.160
<v Ruben Somsen>Yeah, so there could be multiple drive chains, right? So there could be multiple

00:08:43.160 --> 00:08:46.640
<v Ruben Somsen>blocks for every drive chain, but for every drive chain, there can only be one

00:08:46.640 --> 00:08:48.780
<v Ruben Somsen>block per Bitcoin block. I see. Yeah.

00:08:49.130 --> 00:08:52.490
<v Sjors Provoost>Yeah, I mean, you could probably have blocks in between, but they just wouldn't

00:08:52.490 --> 00:08:56.490
<v Sjors Provoost>be enforced by Bitcoin consensus. So they probably wouldn't be very valuable.

00:08:57.170 --> 00:09:01.190
<v Ruben Somsen>Yeah, you'd have to have some. I mean, theoretically, there are ways probably to

00:09:01.190 --> 00:09:04.030
<v Ruben Somsen>get that to happen. Well, that's what RSK

00:09:04.030 --> 00:09:08.820
<v Aaron van Wirdum>does. RSK sort of uses the same strategy as Bitcoin mining pool where there are

00:09:08.820 --> 00:09:10.700
<v Aaron van Wirdum>sort of almost blocks that count.

00:09:10.820 --> 00:09:13.560
<v Sjors Provoost>But to really have it enforced, the sidechain would probably need proof of work

00:09:13.560 --> 00:09:18.100
<v Sjors Provoost>itself to have at least some security on those intermediate blocks. But then the

00:09:18.100 --> 00:09:22.780
<v Sjors Provoost>reason why Bitcoin has 10-minute blocks is because otherwise the orphan rate gets

00:09:22.780 --> 00:09:26.480
<v Sjors Provoost>too high. So I don't think there's much utility in having faster blocks.

00:09:26.720 --> 00:09:32.610
<v Ruben Somsen>So specific to RSK, they use a federation, right? the federation can sign

00:09:32.610 --> 00:09:37.090
<v Ruben Somsen>blocks faster and then every 10 minutes you kind of checkpoint in whatever the

00:09:37.090 --> 00:09:39.850
<v Ruben Somsen>federation signed in the past 10 minutes into the Bitcoin blockchain and then it

00:09:39.850 --> 00:09:43.910
<v Ruben Somsen>becomes irreversible so it's sort of it's sort of like a level of security that

00:09:43.910 --> 00:09:47.430
<v Ruben Somsen>you have right where it first the federation signs and then you assume eventually

00:09:47.430 --> 00:09:51.070
<v Ruben Somsen>it appears in the Bitcoin blockchain and yeah you can take that as already having

00:09:51.070 --> 00:09:53.210
<v Ruben Somsen>consensus as soon as the federation signs essentially

00:09:53.790 --> 00:09:57.110
<v Sjors Provoost>Yeah, but if we don't want federations, which I think in the Drivechain concept,

00:09:57.230 --> 00:10:02.070
<v Sjors Provoost>we don't. You need something. But to be clear, the BIP 301 about blind merge

00:10:02.070 --> 00:10:06.630
<v Sjors Provoost>mining suggests one approach that uses Lightning that... I think clearly requires

00:10:06.630 --> 00:10:10.030
<v Sjors Provoost>a soft fork, and I think Paul also agreed on that. Yeah. But they describe other

00:10:10.030 --> 00:10:13.890
<v Sjors Provoost>mechanisms to do this type of auctioning, where basically the game is, if you

00:10:13.890 --> 00:10:18.330
<v Sjors Provoost>create a block for me, then here's some money. And I guess there's various ways

00:10:18.330 --> 00:10:21.150
<v Sjors Provoost>of doing it, but you probably need some way to prove that something exists in a

00:10:21.150 --> 00:10:26.890
<v Sjors Provoost>block. So either a way to verify a Merkle proof or something else. But

00:10:26.890 --> 00:10:30.330
<v Sjors Provoost>that itself would be a generic soft fork, right? Being able to verify a Merkle

00:10:30.330 --> 00:10:35.340
<v Sjors Provoost>proof. Yeah. So the BIP is a bit short on details. I'm just going to... say that.

00:10:35.560 --> 00:10:39.660
<v Aaron van Wirdum>Yeah, fair enough. It's also a bit of an implementation detail though, isn't it?

00:10:39.820 --> 00:10:41.280
<v Aaron van Wirdum>Like this is a solvable thing?

00:10:41.500 --> 00:10:45.860
<v Sjors Provoost>No, it's not. Because the problem with a lot of these concepts, we have this

00:10:45.860 --> 00:10:49.340
<v Sjors Provoost>issue with, and this is not really comparable, but I just want to illustrate a

00:10:49.340 --> 00:10:52.280
<v Sjors Provoost>point. You had Vitalik pitching quantum computer simulators.

00:10:53.620 --> 00:10:54.720
<v Aaron van Wirdum>That sounds brilliant.

00:10:55.000 --> 00:10:59.640
<v Sjors Provoost>Yes. But the details really, really matter because you can give yourself the

00:10:59.640 --> 00:11:02.820
<v Sjors Provoost>illusion that you've solved the problem, but actually you have shoved the problem

00:11:03.200 --> 00:11:07.140
<v Sjors Provoost>somewhere in a corner that you call implementation detail. But then if you go

00:11:07.140 --> 00:11:11.400
<v Sjors Provoost>into that little corner implementation detail, you get confronted with the

00:11:11.400 --> 00:11:15.920
<v Sjors Provoost>original problem again. Same with the Oracle problem that a lot of other chains

00:11:15.920 --> 00:11:19.920
<v Sjors Provoost>have. They think, oh, we solved the Oracle problem. But there are still some

00:11:19.920 --> 00:11:23.980
<v Sjors Provoost>implementation details left. And it's like, oh, crap. Actually, we have not

00:11:23.980 --> 00:11:27.100
<v Sjors Provoost>solved the Oracle problem. So, no, I would not say that the lacking details

00:11:27.100 --> 00:11:30.460
<v Sjors Provoost>matter. But they have implemented some of this stuff, I think. Just not the

00:11:30.460 --> 00:11:31.040
<v Sjors Provoost>lightning variant.

00:11:31.220 --> 00:11:36.080
<v Ruben Somsen>I think it depends on the situation, right? And at least my feeling here is that

00:11:36.080 --> 00:11:39.940
<v Ruben Somsen>the implementation details are not going to get in the way of whether or not this

00:11:39.940 --> 00:11:41.560
<v Ruben Somsen>works. But, yeah, maybe I'm wrong.

00:11:41.920 --> 00:11:45.520
<v Sjors Provoost>You may be right, especially because there are multiple proposals for blind merge

00:11:45.520 --> 00:11:47.380
<v Sjors Provoost>mining that could all be fit into this puzzle.

00:11:47.740 --> 00:11:53.160
<v Aaron van Wirdum>Yeah, I think that's what I was getting at. Personally, I think the other part of

00:11:53.160 --> 00:11:56.620
<v Aaron van Wirdum>the drive chain proposal is actually the more interesting one. So the important

00:11:56.620 --> 00:12:00.920
<v Aaron van Wirdum>thing is, for listeners that don't know this, the coins on the drive chain, on

00:12:00.920 --> 00:12:04.420
<v Aaron van Wirdum>the side chain, are supposed to have the same value as Bitcoin. And for that,

00:12:04.560 --> 00:12:08.680
<v Aaron van Wirdum>it's necessary that you can move the coins to the side chain as well as back.

00:12:08.860 --> 00:12:09.300
<v Sjors Provoost>Exactly.

00:12:09.460 --> 00:12:11.280
<v Aaron van Wirdum>And that's sort of the trick of drive chain.

00:12:11.440 --> 00:12:15.660
<v Sjors Provoost>Yes, because the last time we talked about blind merge mining and side chain, we

00:12:15.660 --> 00:12:20.810
<v Sjors Provoost>had this... perpetual one-way peg, which, you know, proof of pain or other terms

00:12:20.810 --> 00:12:24.710
<v Sjors Provoost>of use for it, the money would basically go into the sidechain, but it would

00:12:24.710 --> 00:12:28.950
<v Sjors Provoost>never come back. And that, you know, we talked about that in some length there. I

00:12:28.950 --> 00:12:32.330
<v Sjors Provoost>see that as problematic. Other people see maybe it's possible. At the very least,

00:12:32.450 --> 00:12:35.810
<v Ruben Somsen>I mean, at the very least, it's very limiting, right? Like the drive chain's

00:12:35.810 --> 00:12:41.280
<v Ruben Somsen>concept is just superior in terms of functionality. So definitely. If you have a

00:12:41.280 --> 00:12:44.760
<v Ruben Somsen>secure way of moving your Bitcoins back to the Bitcoin blockchain, that's really,

00:12:44.780 --> 00:12:45.780
<v Ruben Somsen>yeah, the best thing.

00:12:46.240 --> 00:12:50.620
<v Sjors Provoost>Yeah. So I guess maybe we want to quickly do a high level view again, because now

00:12:50.620 --> 00:12:54.260
<v Sjors Provoost>I think I get it. There's two things you want to do with a good side chain. One

00:12:54.260 --> 00:12:57.260
<v Sjors Provoost>is you want to be able to produce blocks and like recognize which blocks are

00:12:57.260 --> 00:13:01.940
<v Sjors Provoost>official. That's what blind merge mining does. And the other is move coins in and

00:13:01.940 --> 00:13:07.860
<v Sjors Provoost>out of that specific side chain. And that is what this other BIP that we're

00:13:07.860 --> 00:13:12.070
<v Sjors Provoost>going to talk about, the hash rate escrow. does those two separate things

00:13:12.070 --> 00:13:13.510
<v Aaron van Wirdum>yes and

00:13:13.510 --> 00:13:17.570
<v Ruben Somsen>yeah that's definitely kind of the the key part of sidechains moving your coins

00:13:17.570 --> 00:13:22.610
<v Ruben Somsen>into a sidechain is easy it's just freezing your coins or or like my proposal

00:13:22.610 --> 00:13:23.470
<v Ruben Somsen>burning your coins

00:13:23.470 --> 00:13:26.050
<v Aaron van Wirdum>essentially just sending it to a Bitcoin address

00:13:26.050 --> 00:13:31.130
<v Ruben Somsen>sending it to a Bitcoin address yeah that is the question then is when are these

00:13:31.130 --> 00:13:33.830
<v Ruben Somsen>bitcoins going to be spendable again and that's the peg out

00:13:34.520 --> 00:13:37.800
<v Aaron van Wirdum>Yes, you mean when are they going to be spendable on the Bitcoin blockchain again?

00:13:38.000 --> 00:13:38.240
<v Ruben Somsen>Yes.

00:13:38.420 --> 00:13:42.940
<v Aaron van Wirdum>So you send them to an address. At that point, everyone knows, okay, now these

00:13:42.940 --> 00:13:45.960
<v Aaron van Wirdum>coins are really on the sidechain, so they cannot move on the Bitcoin blockchain.

00:13:46.400 --> 00:13:50.880
<v Aaron van Wirdum>And then at some point, when you're done on the sidechain, you should be able to

00:13:50.880 --> 00:13:54.080
<v Aaron van Wirdum>lock them on the sidechain or burn them there or whatever. And then they should

00:13:54.080 --> 00:13:56.280
<v Aaron van Wirdum>be movable on the Bitcoin blockchain again.

00:13:56.440 --> 00:14:00.870
<v Ruben Somsen>Yeah, and that's really the key, right? How does the Bitcoin blockchain know? Who

00:14:00.870 --> 00:14:06.070
<v Ruben Somsen>owns the coins on the sidechain, on the drivechain? And are these coins that

00:14:06.070 --> 00:14:09.910
<v Ruben Somsen>are... Somebody's suggesting, hey, I'm going to spend these Bitcoins that were on

00:14:09.910 --> 00:14:12.210
<v Ruben Somsen>the sidechain and they're unfrozen again.

00:14:12.390 --> 00:14:15.950
<v Aaron van Wirdum>Yeah, now I'm going to send them to my own cold storage. Yeah. And then how

00:14:15.950 --> 00:14:19.970
<v Aaron van Wirdum>does... Bitcoin blockchain know that this is a valid transaction, that this is allowed.

00:14:20.290 --> 00:14:23.350
<v Ruben Somsen>And there is a naive way of doing it, which is, I think, good to point out, which

00:14:23.350 --> 00:14:27.790
<v Ruben Somsen>is that everybody who runs Bitcoin also runs the sidechain. But if you do that,

00:14:27.970 --> 00:14:30.690
<v Ruben Somsen>it's not really a sidechain. The whole point of the sidechain is that you can

00:14:30.690 --> 00:14:34.730
<v Ruben Somsen>separate the two and you don't have to run both. So then we're violating really

00:14:34.730 --> 00:14:38.450
<v Ruben Somsen>the core principle and it becomes more like a block size increase. So we want to

00:14:38.450 --> 00:14:38.970
<v Ruben Somsen>avoid that.

00:14:39.110 --> 00:14:41.470
<v Sjors Provoost>Well, worse than a block size increase, because we've just said we can have

00:14:41.470 --> 00:14:45.470
<v Sjors Provoost>arbitrary rules on that sidechain. So we have a block size increase and a rule

00:14:45.470 --> 00:14:46.450
<v Sjors Provoost>complexity increase.

00:14:46.670 --> 00:14:50.370
<v Ruben Somsen>Yeah, I mean, generally, I guess people call that an extension block, right?

00:14:50.390 --> 00:14:54.770
<v Ruben Somsen>That's roughly the same proposal where you have a separate space inside of the

00:14:54.770 --> 00:14:56.790
<v Ruben Somsen>Bitcoin blockchain that can have different rules.

00:14:57.190 --> 00:14:59.970
<v Sjors Provoost>Yeah, you have multiple, I guess, ways of looking at it. But if you consider

00:14:59.970 --> 00:15:02.110
<v Sjors Provoost>SegWit an extension block, I guess in that direction.

00:15:02.330 --> 00:15:03.350
<v Aaron van Wirdum>Yeah, I don't, but yeah.

00:15:03.530 --> 00:15:06.670
<v Sjors Provoost>Okay, but then SegWit has to really...

00:15:06.670 --> 00:15:07.510
<v Aaron van Wirdum>We're getting off the rails.

00:15:08.290 --> 00:15:08.650
<v Sjors Provoost>Sorry.

00:15:09.250 --> 00:15:13.570
<v Aaron van Wirdum>Back to the rails. Yes. yeah so the idea of a sidechain is that the people who

00:15:13.570 --> 00:15:17.030
<v Aaron van Wirdum>want to use the sidechain can use the sidechain and the people that don't want to

00:15:17.030 --> 00:15:21.470
<v Aaron van Wirdum>use the sidechain don't need to care about the sidechain still somehow the coins

00:15:21.470 --> 00:15:25.810
<v Aaron van Wirdum>must only move on the Bitcoin blockchain when the legitimate owner of the

00:15:25.810 --> 00:15:30.350
<v Aaron van Wirdum>sidechain says they should move yeah and not everyone on the Bitcoin blockchain

00:15:30.350 --> 00:15:34.370
<v Aaron van Wirdum>knows who's the legitimate owner or any of these details okay so ruben how is

00:15:34.370 --> 00:15:34.850
<v Aaron van Wirdum>this solved

00:15:34.850 --> 00:15:40.550
<v Ruben Somsen>hash rate escrow so that's the way paul calls it in BIP 300 essentially

00:15:40.550 --> 00:15:46.100
<v Ruben Somsen>there is a very simple rule that says you give your money to the miners and the

00:15:46.100 --> 00:15:51.960
<v Ruben Somsen>miners can spend it but very slowly over the course of three to six months

00:15:51.960 --> 00:15:56.950
<v Ruben Somsen>the Bitcoin miners are going to vote on whether or not they want to allow

00:15:56.950 --> 00:16:02.750
<v Ruben Somsen>one of these transactions to be spent. So let's say I come out of a sidechain

00:16:02.750 --> 00:16:06.470
<v Ruben Somsen>and I send a transaction to the Bitcoin blockchain. I say, hey, I want to spend

00:16:06.470 --> 00:16:10.660
<v Ruben Somsen>this UTXO that came from a specific drive chain. then the miners can say like,

00:16:10.760 --> 00:16:14.440
<v Ruben Somsen>okay, well, we're going to vote on it. And every time a miner creates a block, it

00:16:14.440 --> 00:16:19.240
<v Ruben Somsen>says, okay, sure, yeah, this is a valid pegout. And after three months or six

00:16:19.240 --> 00:16:23.560
<v Ruben Somsen>months, if half, roughly half of the miners have said, yes, this is a valid

00:16:23.560 --> 00:16:25.800
<v Ruben Somsen>pegout, then I get my coins.

00:16:26.280 --> 00:16:32.020
<v Aaron van Wirdum>Well, I think, so miners can do three things. Miners can vote in favor

00:16:32.020 --> 00:16:33.100
<v Aaron van Wirdum>of the transaction.

00:16:33.400 --> 00:16:33.580
<v Ruben Somsen>Yeah.

00:16:34.040 --> 00:16:38.080
<v Aaron van Wirdum>They can ignore it. Or they can vote against it.

00:16:38.320 --> 00:16:38.460
<v Ruben Somsen>Yeah.

00:16:38.640 --> 00:16:40.960
<v Aaron van Wirdum>So if it's like half-half, it's going to take forever.

00:16:41.460 --> 00:16:46.020
<v Ruben Somsen>Yeah, theoretically it can be worse, right? Because if you have like... You have

00:16:46.020 --> 00:16:51.240
<v Ruben Somsen>to have 50% yes votes, but every no vote... brings you back again so yeah so

00:16:51.240 --> 00:16:53.060
<v Ruben Somsen>definitely you need like yeah there

00:16:53.060 --> 00:16:56.140
<v Sjors Provoost>can be multiple competing peg out transactions right so what happens is the

00:16:56.140 --> 00:17:01.340
<v Sjors Provoost>sidechain miner or whoever proposes says hey i'd like to move these coins back to

00:17:01.340 --> 00:17:05.220
<v Sjors Provoost>the Bitcoin blockchain and another one does another proposal and then miners

00:17:05.220 --> 00:17:09.380
<v Sjors Provoost>start voting on those and presumably they would take whatever is most favorable

00:17:09.380 --> 00:17:13.780
<v Sjors Provoost>for them but they also want to make sure it's not violating the rules of the

00:17:13.780 --> 00:17:14.280
<v Sjors Provoost>sidechain

00:17:14.280 --> 00:17:17.900
<v Aaron van Wirdum>yeah i don't want to immediately dive into the catch-22 here but yeah let's go

00:17:17.900 --> 00:17:23.670
<v Aaron van Wirdum>into this process a little bit more. First of all, let's say 100% of miners agree

00:17:23.670 --> 00:17:26.430
<v Aaron van Wirdum>with the transaction. How long is it going to take in that case?

00:17:26.510 --> 00:17:29.930
<v Ruben Somsen>In that case, it only takes three months. If everybody votes, yes.

00:17:30.510 --> 00:17:34.550
<v Aaron van Wirdum>And then if it's like half of the miners and the other half doesn't care, then it

00:17:34.550 --> 00:17:38.670
<v Aaron van Wirdum>takes about six months. And if it's like half of the miners vote in favor and

00:17:38.670 --> 00:17:40.250
<v Aaron van Wirdum>half against, then it's going to take forever.

00:17:40.590 --> 00:17:44.870
<v Ruben Somsen>Anything worse than that, the peg-out just becomes invalidated. After six months,

00:17:45.150 --> 00:17:46.010
<v Ruben Somsen>you're done.

00:17:46.370 --> 00:17:46.650
<v Aaron van Wirdum>Right.

00:17:46.910 --> 00:17:52.290
<v Sjors Provoost>So what percentage of miners can block this? It's always a majority, right? That

00:17:52.290 --> 00:17:52.990
<v Sjors Provoost>can make this happen.

00:17:53.170 --> 00:17:57.670
<v Ruben Somsen>Yeah, because there's always the possibility of re-orging the Bitcoin blockchain.

00:17:57.890 --> 00:18:00.630
<v Ruben Somsen>So no votes can be re-orged out by 51% of the miners.

00:18:02.030 --> 00:18:06.890
<v Ruben Somsen>In any case, 51% of the miners can always make a pegout go through, regardless of

00:18:06.890 --> 00:18:10.970
<v Ruben Somsen>this mechanism. But if you assume there's not going to be any Bitcoin reorgs,

00:18:11.410 --> 00:18:14.670
<v Ruben Somsen>then you need, it depends on how many no votes there are, right? For every no

00:18:14.670 --> 00:18:17.690
<v Ruben Somsen>vote, you need a yes vote, and you need 50% yes votes.

00:18:18.150 --> 00:18:19.850
<v Sjors Provoost>Okay, my math is not that amazing.

00:18:21.130 --> 00:18:21.870
<v Sjors Provoost>Hopefully I'm right.

00:18:23.590 --> 00:18:27.070
<v Sjors Provoost>Another thing that was in the BIP that maybe we should mention is that how do you

00:18:27.070 --> 00:18:30.810
<v Sjors Provoost>even make these drive chains? Or do we want to go somewhere else first?

00:18:31.690 --> 00:18:36.630
<v Aaron van Wirdum>Yeah, let's go somewhere else first. Okay, first question, Ruben. Why wouldn't

00:18:36.630 --> 00:18:42.550
<v Aaron van Wirdum>miners just steal the coins for themselves? I think that's the main question, right?

00:18:42.550 --> 00:18:46.470
<v Ruben Somsen>That's the question we've been kind of ignoring up until now, which is definitely

00:18:46.470 --> 00:18:51.830
<v Ruben Somsen>the big question here. So the main reason why drive chains would work really all

00:18:51.830 --> 00:18:57.410
<v Ruben Somsen>depend on this argument, which is that... Miners should want the

00:18:57.410 --> 00:19:02.350
<v Ruben Somsen>sidechain to exist because they get fees from it and because the value of Bitcoin

00:19:02.350 --> 00:19:05.530
<v Ruben Somsen>itself goes up in value if there are all these sidechains out there that people

00:19:05.530 --> 00:19:06.090
<v Ruben Somsen>can use.

00:19:07.530 --> 00:19:13.110
<v Ruben Somsen>We need miners to want the chain to exist and to want to basically give people

00:19:13.110 --> 00:19:17.190
<v Ruben Somsen>their pegouts when they ask for it. Other than that, there is no reason. So it's

00:19:17.190 --> 00:19:21.310
<v Ruben Somsen>really a question of incentives. And if the incentives are aligned, the sidechain

00:19:21.310 --> 00:19:24.690
<v Ruben Somsen>gets to exist. If the incentives are not aligned, the sidechain just dies.

00:19:24.910 --> 00:19:28.490
<v Sjors Provoost>And I guess this also creates two things. This creates a collective action

00:19:28.490 --> 00:19:32.580
<v Sjors Provoost>problem, I think. Because you might have one miner that says, I don't care about

00:19:32.580 --> 00:19:35.780
<v Sjors Provoost>this sidechain and I don't care about the future, so I'm going to take the most

00:19:35.780 --> 00:19:40.100
<v Sjors Provoost>money, even if that's an illegal transaction. Yeah, no, that's, I think, the

00:19:40.100 --> 00:19:45.900
<v Sjors Provoost>collective action problem, right? So if a majority of miners do feel that these

00:19:45.900 --> 00:19:48.840
<v Sjors Provoost>sidechains are worth keeping around for the long term, they're not going to take

00:19:48.840 --> 00:19:52.460
<v Sjors Provoost>the short-term profit of theft. And they're going to punish other miners who do

00:19:52.460 --> 00:19:55.820
<v Sjors Provoost>try to do that. Or not punish, but at least they're going to actively vote

00:19:55.820 --> 00:19:59.320
<v Sjors Provoost>against that type of behavior. Because you might have a situation where in the

00:19:59.320 --> 00:20:04.220
<v Sjors Provoost>beginning, say only 1% of the miners care. In the beginning, there's not enough

00:20:04.220 --> 00:20:07.460
<v Sjors Provoost>money at all. So maybe no miner does anything with the sidechain stuff. Then

00:20:07.460 --> 00:20:11.240
<v Sjors Provoost>there's enough fees out there that some miners will start flagging this thing

00:20:11.240 --> 00:20:14.500
<v Sjors Provoost>because they would like to have that other revenue. Then other miners might just

00:20:14.500 --> 00:20:18.160
<v Sjors Provoost>passively copy whatever those first miners are doing because they would like the

00:20:18.160 --> 00:20:23.680
<v Sjors Provoost>extra free revenue. Why not? Then at some point, somebody starts cheating. And

00:20:23.680 --> 00:20:28.120
<v Sjors Provoost>then one miner starts cheating or starts cooperating with the cheat, either

00:20:28.120 --> 00:20:32.540
<v Sjors Provoost>deliberately or accidentally because he's not checking. So then the game develops

00:20:32.540 --> 00:20:33.000
<v Sjors Provoost>from there.

00:20:33.200 --> 00:20:38.200
<v Ruben Somsen>Yeah. The question then kind of becomes, how do these Bitcoin miners make sure

00:20:38.200 --> 00:20:42.480
<v Ruben Somsen>that the peg-outs that they're choosing are correct or not? And this is kind of a

00:20:42.480 --> 00:20:48.060
<v Ruben Somsen>mechanism that is not really explicitly laid out, but essentially the idea is

00:20:48.060 --> 00:20:53.040
<v Ruben Somsen>that... The Bitcoin miners want to do the right thing. They want the chain to

00:20:53.040 --> 00:20:56.580
<v Ruben Somsen>exist. That's our assumption. And if there is some kind of pegout, they're being

00:20:56.580 --> 00:21:00.300
<v Ruben Somsen>lazy and they're moving a pegout forward that's not supposed to be moved forward,

00:21:00.620 --> 00:21:04.800
<v Ruben Somsen>then presumably somebody will talk to the miner and say like, hey, what you're

00:21:04.800 --> 00:21:08.340
<v Ruben Somsen>doing is incorrect. Please go and check. And the first check that they can do is

00:21:08.340 --> 00:21:12.240
<v Ruben Somsen>an SPV check. So they can take the drive chain and they can just download the

00:21:12.240 --> 00:21:17.300
<v Ruben Somsen>headers. And inside of the header is also contained the pegout transaction. So

00:21:17.300 --> 00:21:22.660
<v Ruben Somsen>you get an SPV proof of whether the pegout is valid or not. So this is not a

00:21:22.660 --> 00:21:28.300
<v Ruben Somsen>guarantee, but it means that 51% of the miners off the drive chain, they think

00:21:28.300 --> 00:21:32.500
<v Ruben Somsen>that the pegout is valid. And then if that's not good enough, they would have to

00:21:32.500 --> 00:21:35.820
<v Ruben Somsen>go and basically run the full drive chain and check.

00:21:36.020 --> 00:21:41.860
<v Aaron van Wirdum>But this would require on someone telling the miner that something's up. So it's

00:21:41.860 --> 00:21:45.530
<v Aaron van Wirdum>not... purely blockchain based in that case someone has to contact them through

00:21:45.530 --> 00:21:47.210
<v Aaron van Wirdum>irc or whatever it is

00:21:47.210 --> 00:21:51.890
<v Ruben Somsen>yeah it's kind of a assumption of good behavior so you're assuming that nothing

00:21:51.890 --> 00:21:55.430
<v Ruben Somsen>is going wrong and if something is going wrong you're assuming that somebody will

00:21:55.430 --> 00:21:59.730
<v Ruben Somsen>out there will kind of give you a nudge and be like hey do some extra work here

00:21:59.730 --> 00:22:01.610
<v Ruben Somsen>because it's not going right

00:22:01.610 --> 00:22:05.130
<v Sjors Provoost>right but then then the question is what becomes the equilibrium yeah one

00:22:05.130 --> 00:22:09.300
<v Sjors Provoost>equilibrium could be okay, now all miners have to check all SPV proofs all the

00:22:09.300 --> 00:22:12.860
<v Sjors Provoost>time because otherwise people will constantly be cheating them because there is

00:22:12.860 --> 00:22:17.780
<v Sjors Provoost>no cost to cheating. True. Anybody can suggest, I think everybody in the world

00:22:17.780 --> 00:22:22.860
<v Sjors Provoost>can suggest a transaction that takes all the money out of every single drive

00:22:22.860 --> 00:22:27.300
<v Sjors Provoost>chain and sends it to them personally. Yeah. And the only cost for that is zero,

00:22:27.320 --> 00:22:30.120
<v Sjors Provoost>I think. They just broadcast a transaction. Yeah, yeah. Maybe it has to confirm.

00:22:30.840 --> 00:22:35.860
<v Ruben Somsen>There has to be a, I mean, that action, yeah, the action needs to be in the

00:22:35.860 --> 00:22:38.660
<v Ruben Somsen>Bitcoin blockchain. So they need to roughly send one transaction to the Bitcoin

00:22:38.660 --> 00:22:39.700
<v Ruben Somsen>blockchain. So there's

00:22:39.700 --> 00:22:42.660
<v Sjors Provoost>probably, you know, at least going to be somebody who does that out of, as a

00:22:42.660 --> 00:22:43.260
<v Sjors Provoost>matter of principle.

00:22:43.640 --> 00:22:46.260
<v Ruben Somsen>Yeah. Well, the question is, do they get the votes, right? Are the miners going

00:22:46.260 --> 00:22:47.180
<v Ruben Somsen>to vote on that peg out?

00:22:47.360 --> 00:22:51.460
<v Sjors Provoost>No, but they're going to, the problem is that the miners, because somebody is

00:22:51.460 --> 00:22:55.200
<v Sjors Provoost>doing that, they have to do the SPV checking unless they know who this bully is

00:22:55.200 --> 00:22:57.300
<v Sjors Provoost>and they systematically ignore this, this bully.

00:22:57.620 --> 00:23:02.360
<v Ruben Somsen>Yeah. If you assume all miners are lazy and they do nothing except for maybe one

00:23:02.360 --> 00:23:06.210
<v Ruben Somsen>miner out there and that miner is voting on the right thing. and all the other

00:23:06.210 --> 00:23:09.050
<v Ruben Somsen>miners are just like, oh, let's just follow that guy, then the equilibrium

00:23:09.050 --> 00:23:10.330
<v Ruben Somsen>actually works out. Okay,

00:23:10.510 --> 00:23:15.530
<v Sjors Provoost>yeah. If you have one non-lazy miner who actually checks the original chain at

00:23:15.530 --> 00:23:18.630
<v Sjors Provoost>some level, and the other miners lazily follow, yeah, that could work.

00:23:18.910 --> 00:23:24.090
<v Ruben Somsen>But yeah, I mean, it's definitely, like, the worst case is that every Bitcoin

00:23:24.090 --> 00:23:28.890
<v Ruben Somsen>miner is also a DriveChain full node user, and then you get back to the problem

00:23:28.890 --> 00:23:30.910
<v Ruben Somsen>that you described earlier about the merge mining.

00:23:31.130 --> 00:23:33.950
<v Sjors Provoost>Yeah, that's what I... Yesterday, I think in the preparation, I called it the

00:23:33.950 --> 00:23:38.210
<v Sjors Provoost>catch-22. If you get to a situation where every miner has to verify every drive

00:23:38.210 --> 00:23:43.170
<v Sjors Provoost>chain in detail, not just SPV, we just lost the entire benefit of blind merge

00:23:43.170 --> 00:23:47.090
<v Sjors Provoost>mining. But it's not guaranteed that that's going to happen, but that is a big concern.

00:23:47.310 --> 00:23:52.530
<v Aaron van Wirdum>What happened to the UASF solution? Because I do remember Paul talking about this

00:23:52.530 --> 00:23:58.410
<v Aaron van Wirdum>at some point, where if miners tried to steal the coins, then drive chain users

00:23:58.410 --> 00:24:03.660
<v Aaron van Wirdum>could deploy a UASF to stop. the coins from moving on the Bitcoin blockchain.

00:24:03.980 --> 00:24:08.160
<v Ruben Somsen>Yeah, so that is a theoretical possibility, which is good to kind of go through,

00:24:08.320 --> 00:24:12.260
<v Ruben Somsen>I guess. So it's theoretically possible that miners try to steal all the coins

00:24:12.260 --> 00:24:17.260
<v Ruben Somsen>from a sidechain that is quite popular. And then all the sidechain users, which

00:24:17.260 --> 00:24:21.660
<v Ruben Somsen>are also Bitcoin users, they say like, hey, look, miner, if you let this

00:24:21.660 --> 00:24:25.980
<v Ruben Somsen>transaction go through, we're just going to reject that block that will spend

00:24:25.980 --> 00:24:31.200
<v Ruben Somsen>this transaction. So don't do that because we're going to basically threaten to

00:24:31.200 --> 00:24:36.200
<v Ruben Somsen>fork off of Bitcoin. And if you want to keep these users here with the Bitcoin

00:24:36.200 --> 00:24:41.460
<v Ruben Somsen>blockchain, you got to do what we say. And it's presumably a UASF because.

00:24:41.900 --> 00:24:45.960
<v Ruben Somsen>Like what we're assuming is kind of similar to the Segwit situation where we

00:24:45.960 --> 00:24:49.300
<v Ruben Somsen>don't really know whether there's like a majority who's going to enforce this. If

00:24:49.300 --> 00:24:53.420
<v Ruben Somsen>the majority of the Bitcoin users threatened that, then it would work out. But

00:24:53.420 --> 00:24:57.200
<v Ruben Somsen>the assumption is that with sidechains, you don't have a majority of users. You

00:24:57.200 --> 00:25:01.040
<v Ruben Somsen>have all these niches, right? You have all these smaller amounts of users. So

00:25:01.040 --> 00:25:03.320
<v Ruben Somsen>maybe optimistically you have like 20%.

00:25:03.320 --> 00:25:08.260
<v Sjors Provoost>And not an intransigent minority either because it's not a sort of randomly

00:25:08.260 --> 00:25:12.700
<v Sjors Provoost>distributed subset. across all Bitcoin users like you might have with the

00:25:12.700 --> 00:25:18.000
<v Sjors Provoost>original UASF movement where you don't really know who's going to be resisting it

00:25:18.000 --> 00:25:21.300
<v Sjors Provoost>but here you know well only the people who actually care about this side chain

00:25:21.300 --> 00:25:24.700
<v Sjors Provoost>are going to be the ones protesting but the rest of the network doesn't care yeah

00:25:24.700 --> 00:25:29.720
<v Sjors Provoost>and does not want to pay the very high price of a of a like large reorgs that you

00:25:29.720 --> 00:25:33.340
<v Sjors Provoost>would have to suffer because in order to do a UASF you have to be willing to

00:25:33.340 --> 00:25:34.040
<v Sjors Provoost>actually come through

00:25:35.820 --> 00:25:38.840
<v Sjors Provoost>with reorging blocks and quite a lot with these drive chains.

00:25:39.380 --> 00:25:43.860
<v Ruben Somsen>I mean, I guess there could be like an optimal, there could be like the best

00:25:43.860 --> 00:25:47.240
<v Ruben Somsen>situation possible, which again, like I don't think this works at all, but

00:25:47.240 --> 00:25:52.360
<v Ruben Somsen>theoretically you could say like, okay, well, everybody who is a Bitcoiner wants

00:25:52.360 --> 00:25:55.060
<v Ruben Somsen>the drive chain to exist because even though they don't use it themselves,

00:25:55.380 --> 00:25:59.020
<v Ruben Somsen>they're happy that the Bitcoin price is higher than it would have been if this

00:25:59.020 --> 00:26:03.000
<v Ruben Somsen>drive chain didn't exist. So they are happily kind of going along with this UASF,

00:26:03.100 --> 00:26:03.560
<v Ruben Somsen>something like that.

00:26:03.950 --> 00:26:08.690
<v Sjors Provoost>But the cost is really high, right? Because a UASF means you have, if it goes

00:26:08.690 --> 00:26:12.630
<v Sjors Provoost>wrong, you have multiple exchanges listing different coins. You have history

00:26:12.630 --> 00:26:16.050
<v Sjors Provoost>disappearing from under your wallet where you thought you got a coin and then it

00:26:16.050 --> 00:26:20.050
<v Sjors Provoost>got replayed on the other side. This is not a cheap thing. So you better be

00:26:20.050 --> 00:26:24.650
<v Sjors Provoost>really dedicated to whatever that sidechain represents. It only represents like a

00:26:24.650 --> 00:26:28.860
<v Sjors Provoost>clone of Ethereum. I don't know if I'd be willing to die on that hill.

00:26:28.940 --> 00:26:32.600
<v Aaron van Wirdum>Well, the idea behind an intolerant minority is that the majority shouldn't

00:26:32.600 --> 00:26:36.260
<v Aaron van Wirdum>really care either way. They shouldn't really care which chain wins.

00:26:36.440 --> 00:26:40.080
<v Sjors Provoost>But the cost has to be low to that majority. So in the case of the kosher food,

00:26:40.140 --> 00:26:44.280
<v Sjors Provoost>for example, it's a very low cost to drink kosher soft drinks. But it's not a low

00:26:44.280 --> 00:26:45.760
<v Sjors Provoost>cost to no longer eat meat.

00:26:46.880 --> 00:26:52.620
<v Aaron van Wirdum>Sure. But the non-UASF chain can reorg into

00:26:52.620 --> 00:26:57.520
<v Aaron van Wirdum>nothing while the UASF chain cannot. So it's not like staying on the original

00:26:57.520 --> 00:26:59.640
<v Aaron van Wirdum>chain is not going to come at a cost or anything.

00:27:00.580 --> 00:27:06.380
<v Ruben Somsen>And I mean, the argument here would be that it's a UASF or any soft fork is safe

00:27:06.380 --> 00:27:11.440
<v Ruben Somsen>as long as the majority of users or the economic majority enforces it. So if

00:27:11.440 --> 00:27:16.060
<v Ruben Somsen>everybody is really in line and doing the soft fork, then theoretically it would

00:27:16.060 --> 00:27:19.900
<v Ruben Somsen>be safe. But I mean, we're talking about all this, but in practice, and this is

00:27:19.900 --> 00:27:23.480
<v Ruben Somsen>also something that Paul Sztorc said, eventually he was like, well, I don't

00:27:23.480 --> 00:27:27.700
<v Ruben Somsen>really think that this is the security of a drive chain. It's not that we expect

00:27:27.700 --> 00:27:32.300
<v Ruben Somsen>users to fork away from Bitcoin in order to enforce miners doing something. No,

00:27:32.680 --> 00:27:38.150
<v Ruben Somsen>the answer is really if miners try to take the money. then that is just game over

00:27:38.150 --> 00:27:39.730
<v Ruben Somsen>for that specific drive chain.

00:27:39.930 --> 00:27:43.930
<v Aaron van Wirdum>Well, not just for that specific drive chain, but potentially for all drive

00:27:43.930 --> 00:27:47.830
<v Aaron van Wirdum>chains because it would undermine trust in drive chains altogether.

00:27:48.110 --> 00:27:52.230
<v Sjors Provoost>So maybe that's a good moment to go to where I was trying to sidetrack the

00:27:52.230 --> 00:27:56.210
<v Sjors Provoost>conversation before. In this latest proposal from two years ago, I think,

00:27:56.490 --> 00:28:00.790
<v Sjors Provoost>everybody can propose a new drive chain. Now there's 256

00:28:00.790 --> 00:28:06.700
<v Sjors Provoost>slots, so one 8-bit. basically thing for

00:28:06.700 --> 00:28:12.380
<v Sjors Provoost>it everybody can propose a new one and the rule is that if my by broadcasting

00:28:12.380 --> 00:28:17.500
<v Sjors Provoost>some sort of transaction or thing and the rule is that if enough miners say okay

00:28:17.500 --> 00:28:23.060
<v Sjors Provoost>we we like this proposal it'll get activated so it's kind of like soft forks but

00:28:23.060 --> 00:28:27.000
<v Sjors Provoost>in this case miners are really i think really voting whereas they're not

00:28:27.000 --> 00:28:30.140
<v Sjors Provoost>signaling readiness but they're kind of really having an opinion about it because

00:28:30.140 --> 00:28:34.070
<v Sjors Provoost>it's their potential revenue So they can do an initial assessment of how viable

00:28:34.070 --> 00:28:39.860
<v Sjors Provoost>is this sidechain concept. And if these slots all get filled... then

00:28:39.860 --> 00:28:44.680
<v Sjors Provoost>I believe there is a six-month window in which you can simply override an

00:28:44.680 --> 00:28:50.200
<v Sjors Provoost>existing slot and disappear that entire drive chain from existence.

00:28:50.640 --> 00:28:54.540
<v Sjors Provoost>There may be some caveats there. But that means you can have some sort of auction

00:28:54.540 --> 00:28:59.480
<v Sjors Provoost>of viability. So initially, you might have 256 completely useless drive chains

00:28:59.480 --> 00:29:02.240
<v Sjors Provoost>because the miners are like, yeah, whatever, it's free revenue, we'll give it a

00:29:02.240 --> 00:29:05.680
<v Sjors Provoost>shot. And then they start dying and dying and dying, but a couple of them don't

00:29:05.680 --> 00:29:09.620
<v Sjors Provoost>die, and so eventually the slots get taken up by very viable. drive chains yeah

00:29:09.620 --> 00:29:13.540
<v Sjors Provoost>so you have some evolutionary pressure there to make it work to find a way to

00:29:13.540 --> 00:29:13.980
<v Sjors Provoost>make it work

00:29:13.980 --> 00:29:16.400
<v Ruben Somsen>yeah there's a limited number of slots for for these chains

00:29:16.400 --> 00:29:17.240
<v Sjors Provoost>yeah that's all

00:29:17.240 --> 00:29:20.700
<v Aaron van Wirdum>i i want to i want to mention one other thing because we haven't mentioned that

00:29:20.700 --> 00:29:26.680
<v Aaron van Wirdum>so you can move into the side chain by sending coins to an address you move out

00:29:26.680 --> 00:29:31.680
<v Aaron van Wirdum>of the side chain by having miners do this voting thing which takes like six

00:29:31.680 --> 00:29:37.610
<v Aaron van Wirdum>months but i want to clarify that If you want to use the sidechain or if you

00:29:37.610 --> 00:29:41.250
<v Aaron van Wirdum>want to leave the sidechain, it doesn't necessarily mean you have to send your

00:29:41.250 --> 00:29:46.190
<v Aaron van Wirdum>own coins to that address or wait six months. You can just exchange your Bitcoin

00:29:46.190 --> 00:29:50.170
<v Aaron van Wirdum>with someone who's already on the sidechain or through an exchange or through an

00:29:50.170 --> 00:29:54.430
<v Aaron van Wirdum>HTLC or immediate trustless transfers. Yeah,

00:29:54.670 --> 00:29:58.430
<v Sjors Provoost>and we already see some of that in action for Liquid, for example. There are ways

00:29:58.430 --> 00:30:00.090
<v Sjors Provoost>to directly swap in and out of Liquid.

00:30:00.490 --> 00:30:04.550
<v Ruben Somsen>Yeah. And I guess it's specifically good to point out that with drive chains in

00:30:04.550 --> 00:30:10.530
<v Ruben Somsen>particular, the peg out mechanism is kind of expensive and slow, right? It takes

00:30:10.530 --> 00:30:14.730
<v Ruben Somsen>months. So your coins are going to be stuck during that period. Presumably that

00:30:14.730 --> 00:30:17.550
<v Ruben Somsen>means, you know, you can't do anything else with those coins. So that's a loss to

00:30:17.550 --> 00:30:23.470
<v Ruben Somsen>you. And it's made in such a way that only one peg out happens per chain per

00:30:23.470 --> 00:30:29.430
<v Ruben Somsen>period. Because of that, you kind of have to have one person making big peg

00:30:29.430 --> 00:30:35.170
<v Ruben Somsen>-ins and big peg-outs. Well, peg-outs mainly. And then everything else,

00:30:35.270 --> 00:30:39.150
<v Ruben Somsen>everyone else, just has to do atomic swaps. And that's faster as well, and

00:30:39.150 --> 00:30:43.790
<v Ruben Somsen>presumably cheaper, although I guess that will also have some kind of price

00:30:43.790 --> 00:30:47.290
<v Ruben Somsen>premium. But yeah, that's the main mechanism through which you would be moving in

00:30:47.290 --> 00:30:48.630
<v Ruben Somsen>and out of these chains as a user.

00:30:48.670 --> 00:30:52.190
<v Sjors Provoost>I noticed a small detail there that was kind of nice. I think they have a rule

00:30:52.190 --> 00:30:57.460
<v Sjors Provoost>where... If you want to withdraw or deposit, you deposit to one

00:30:57.460 --> 00:31:00.640
<v Sjors Provoost>address, quote unquote, on the Bitcoin blockchain, and you have to spend

00:31:00.640 --> 00:31:04.460
<v Sjors Provoost>everything from that address when you do it. So you're basically spending the

00:31:04.460 --> 00:31:09.140
<v Sjors Provoost>existing UTXO and creating a new one in its place. So there's always one UTXO

00:31:09.140 --> 00:31:13.620
<v Sjors Provoost>that represents that entire chain. So you're not loading the UTXO space, which is

00:31:13.620 --> 00:31:17.620
<v Sjors Provoost>nice. And in terms of the implementation, like how do you spend money that's not

00:31:17.620 --> 00:31:23.000
<v Sjors Provoost>yours? Well, the private key for the drive chain is just public. So that's why

00:31:23.000 --> 00:31:26.040
<v Sjors Provoost>it's really a soft fork. You have a private key that everybody knows and

00:31:26.040 --> 00:31:31.120
<v Sjors Provoost>everybody's spending from that private key. But the new soft fork rules make sure

00:31:31.120 --> 00:31:35.300
<v Sjors Provoost>that you don't just get to spend money from a private key. From that specific,

00:31:35.340 --> 00:31:36.360
<v Sjors Provoost>very special private key.

00:31:36.560 --> 00:31:41.740
<v Aaron van Wirdum>So to voice Paul's frustration for a second, why isn't this a thing yet? Why

00:31:41.740 --> 00:31:45.360
<v Aaron van Wirdum>isn't everyone working on this? Why don't we have drive chains already?

00:31:45.580 --> 00:31:50.070
<v Sjors Provoost>I think there's a whole bunch of reasons for that. Is it going to happen? I mean,

00:31:50.330 --> 00:31:54.530
<v Sjors Provoost>the universe is going to be around for another 100 billion years. So I think just

00:31:54.530 --> 00:32:00.310
<v Sjors Provoost>from a thermodynamics argument, it will happen. Or maybe a Litecoin. My point

00:32:00.310 --> 00:32:04.570
<v Sjors Provoost>is, well, I think there's a couple of things. There were different proposals

00:32:04.570 --> 00:32:10.230
<v Sjors Provoost>that, you know, this proposal has been around since 2007-ish. And right, 17,

00:32:10.510 --> 00:32:14.770
<v Sjors Provoost>sorry. Right then you had SegWit was already in development and that was the main

00:32:14.770 --> 00:32:18.490
<v Sjors Provoost>focus. both in terms of development and in terms of just mental energy, because

00:32:18.490 --> 00:32:23.600
<v Sjors Provoost>people were just going completely nuts over all sorts of things. And SegWit made

00:32:23.600 --> 00:32:28.700
<v Sjors Provoost>way for Lightning, which was a very strong, I think it was more clearly

00:32:28.700 --> 00:32:32.340
<v Sjors Provoost>developed, even though it wasn't finished in terms of operating, so he couldn't

00:32:32.340 --> 00:32:36.200
<v Sjors Provoost>really know that it would work. But it conceptually worked out very well in a lot

00:32:36.200 --> 00:32:42.050
<v Sjors Provoost>of detail. So I think that just got priority back then. And then now we have a

00:32:42.050 --> 00:32:47.700
<v Sjors Provoost>focus on Taproot. And even though Bitcoin is decentralized... There are just a

00:32:47.700 --> 00:32:51.380
<v Sjors Provoost>very small number of developers who can actually do this, who have the time for

00:32:51.380 --> 00:32:54.920
<v Sjors Provoost>this, who have the time to review it, who have the time to do all sorts of things

00:32:54.920 --> 00:32:58.420
<v Sjors Provoost>around it. So even very simple soft forks.

00:32:58.620 --> 00:33:02.020
<v Aaron van Wirdum>Yeah, they seem like fairly minimal soft forks, no?

00:33:02.140 --> 00:33:04.840
<v Sjors Provoost>Well, SegWit was a very complicated soft fork. Yeah,

00:33:04.920 --> 00:33:07.760
<v Aaron van Wirdum>I mean the drive chain BIPs.

00:33:07.820 --> 00:33:12.100
<v Sjors Provoost>If I were to rank them, I would say SegWit is more complicated than drive chains.

00:33:12.500 --> 00:33:16.640
<v Sjors Provoost>Taproot is more complicated than drive chains. Although... in a very different

00:33:16.640 --> 00:33:19.660
<v Sjors Provoost>place. So I don't know if you can compare complexity in one place versus

00:33:19.660 --> 00:33:23.680
<v Sjors Provoost>complexity in another place. There's just different trade-offs, right? Some

00:33:23.680 --> 00:33:28.240
<v Sjors Provoost>places are more robust where you can make more mistakes than in others. And then

00:33:28.240 --> 00:33:33.040
<v Sjors Provoost>you have something that's much simpler than drive chains, which is no SIGHASH,

00:33:33.120 --> 00:33:39.100
<v Sjors Provoost>NOINPUT, or whatever the latest politically correct name is. That is a, I

00:33:39.100 --> 00:33:43.260
<v Sjors Provoost>don't know, 20-line soft fork. Much, much, much simpler than drive chains and

00:33:43.260 --> 00:33:48.230
<v Sjors Provoost>also... I think, game theoretically, much simpler. There's less things going on

00:33:48.230 --> 00:33:49.570
<v Sjors Provoost>with new chains coming out of nowhere.

00:33:50.370 --> 00:33:54.710
<v Aaron van Wirdum>So is this the main bottleneck? Just not enough developer mindshare?

00:33:54.710 --> 00:33:59.270
<v Sjors Provoost>I think it is in a place in terms of complexity from code, where it would need

00:33:59.270 --> 00:34:03.570
<v Sjors Provoost>mindshare a little bit. From code complexity, it would need probably similar

00:34:03.570 --> 00:34:07.550
<v Sjors Provoost>mindshare than Taproot does, even though it's a bit simpler, but there's other

00:34:07.550 --> 00:34:12.850
<v Sjors Provoost>nooks and crannies that it's touching. And then... But from an implication

00:34:12.850 --> 00:34:17.850
<v Sjors Provoost>standpoint, from what is the game theory here, it's very uncertain. We just had a

00:34:17.850 --> 00:34:22.670
<v Sjors Provoost>long discussion about all these things. And once it's uncertain, you have to

00:34:22.670 --> 00:34:27.110
<v Sjors Provoost>think about it until you start procrastinating. So it's going to go down the list

00:34:27.110 --> 00:34:29.930
<v Sjors Provoost>if the alternative that you can work on is something that's very concrete and

00:34:29.930 --> 00:34:34.810
<v Sjors Provoost>already thought out a little bit further. Fewer uncertainties in it. And the

00:34:34.810 --> 00:34:39.930
<v Sjors Provoost>other thing I think is also practical because of that. I don't think it's cause

00:34:39.930 --> 00:34:43.530
<v Sjors Provoost>and effect here, but the proposals that we just looked at are not very detailed

00:34:43.530 --> 00:34:47.110
<v Sjors Provoost>at all. Like I had lots of questions about it just by reading it once.

00:34:47.450 --> 00:34:48.670
<v Aaron van Wirdum>Do you mean the BIPs?

00:34:48.850 --> 00:34:52.970
<v Sjors Provoost>Yeah. They're just not fleshed out enough. But of course, the reason they're not

00:34:52.970 --> 00:34:56.490
<v Sjors Provoost>fleshed out enough is because not enough people are working on it. You can't have

00:34:56.490 --> 00:34:59.630
<v Sjors Provoost>Paul Sztorc do all that by himself. And he has to give these really long

00:34:59.630 --> 00:35:03.630
<v Sjors Provoost>presentations complaining about Bitcoin, which is very time consuming.

00:35:05.650 --> 00:35:07.090
<v Sjors Provoost>Yeah, that's just what it is.

00:35:07.250 --> 00:35:10.950
<v Aaron van Wirdum>Ruben, what do you think? Do you agree? Why is not everyone working on DriveChain

00:35:10.950 --> 00:35:12.070
<v Aaron van Wirdum>and why is it not a thing already?

00:35:12.290 --> 00:35:16.670
<v Ruben Somsen>Yeah, I think Sjors hit the nail on the head here with, I think that really that

00:35:16.670 --> 00:35:20.370
<v Ruben Somsen>one assumption, whether the miners are going to steal or not. Like for me

00:35:20.370 --> 00:35:24.790
<v Ruben Somsen>personally, I kind of feel like it's good to give it a shot. Let's try it and see

00:35:24.790 --> 00:35:29.580
<v Ruben Somsen>how it goes. But then from an implementation perspective, it's like... well, are

00:35:29.580 --> 00:35:33.120
<v Ruben Somsen>we going to take all these soft fork risks for something that might work and

00:35:33.120 --> 00:35:38.000
<v Ruben Somsen>maybe won't work? And then I can see how it's demotivating to actually go and

00:35:38.000 --> 00:35:39.080
<v Ruben Somsen>work on that and implement it.

00:35:39.080 --> 00:35:43.300
<v Sjors Provoost>Keep in mind what happens if a soft fork is screwed up, right? If there's a

00:35:43.300 --> 00:35:47.420
<v Sjors Provoost>really bad bug in it, it probably means you need a hard fork to fix that bug. But

00:35:47.420 --> 00:35:52.500
<v Sjors Provoost>if you ever have a hard fork for any reason... oh man, that's annoying because

00:35:52.500 --> 00:35:54.200
<v Sjors Provoost>why don't we just fix the coin supply?

00:35:54.420 --> 00:36:00.280
<v Aaron van Wirdum>So you keep discussing this in the terms of we and why don't we do the

00:36:00.280 --> 00:36:03.700
<v Aaron van Wirdum>soft fork and we, and I think you also mean Bitcoin core developers.

00:36:03.900 --> 00:36:05.080
<v Sjors Provoost>I mean, we is in the world, right?

00:36:05.320 --> 00:36:08.960
<v Aaron van Wirdum>Yeah. Okay, well, but then my question is, wouldn't it be the type of soft fork

00:36:08.960 --> 00:36:14.220
<v Aaron van Wirdum>that could just be hash power enforced? Because it's already depending on miners.

00:36:14.360 --> 00:36:20.270
<v Aaron van Wirdum>So can't you just launch an alt client? for miners and have them do this soft

00:36:20.270 --> 00:36:23.350
<v Aaron van Wirdum>fork thing and then people can use it if they want to so it's not a Bitcoin core

00:36:23.350 --> 00:36:24.010
<v Aaron van Wirdum>thing it's just

00:36:24.010 --> 00:36:27.950
<v Sjors Provoost>still creates the same technical risk because if the miners enforce something and

00:36:27.950 --> 00:36:31.030
<v Sjors Provoost>they have a bug in their consensus code the rest of the network has a problem

00:36:31.030 --> 00:36:34.830
<v Sjors Provoost>which could plummet the price which hurts the miners so i don't think it matters

00:36:34.830 --> 00:36:39.190
<v Sjors Provoost>whether the miners do something without i mean it makes sense for me if miners

00:36:39.190 --> 00:36:43.130
<v Sjors Provoost>say this sounds lucrative let's hire a bunch of developers and really flesh out

00:36:43.130 --> 00:36:47.930
<v Sjors Provoost>these proponents and launch it on Signet and like have like a million tests for

00:36:47.930 --> 00:36:51.350
<v Sjors Provoost>it and run all these scenarios and simulators, you know, and really show that

00:36:51.350 --> 00:36:55.610
<v Sjors Provoost>this thing is robust and game theoretically correct. That makes sense to me. But

00:36:55.610 --> 00:36:59.070
<v Sjors Provoost>if ultimately that would just make that new team, would just make that team

00:36:59.070 --> 00:37:02.390
<v Sjors Provoost>Bitcoin Core or whatever you want to call it, because there's still developers

00:37:02.390 --> 00:37:07.240
<v Sjors Provoost>working on the consensus code. So it doesn't, it just expands we and then it's

00:37:07.240 --> 00:37:07.980
<v Sjors Provoost>the same as still we.

00:37:08.820 --> 00:37:12.220
<v Ruben Somsen>Yeah, very specific to the question. The answer is actually no, it's not possible

00:37:12.220 --> 00:37:15.240
<v Ruben Somsen>for just miners to activate it. So this is something I was also discussing with

00:37:15.240 --> 00:37:20.940
<v Ruben Somsen>Paul Sztorc prior to the show. So the thing that you can't have

00:37:20.940 --> 00:37:25.800
<v Ruben Somsen>be miner activated is the slow peg out, right? You need this peg out mechanism

00:37:25.800 --> 00:37:30.980
<v Ruben Somsen>where it takes three to six months before the money can be spent. And if that

00:37:30.980 --> 00:37:35.040
<v Ruben Somsen>mechanism is not user enforced, if that's not a regular soft fork that our users

00:37:35.040 --> 00:37:39.620
<v Ruben Somsen>are running, then what miners can do is they can just, somebody pegs in, miners

00:37:39.620 --> 00:37:41.320
<v Ruben Somsen>like, oh, free money, takes the money.

00:37:41.550 --> 00:37:45.730
<v Sjors Provoost>right so miners can just agree to not allow that to happen because they just run

00:37:45.730 --> 00:37:48.450
<v Sjors Provoost>custom software software that just doesn't allow that

00:37:48.450 --> 00:37:53.790
<v Ruben Somsen>yeah they could they could yes but but the difference is that 51 of the miners

00:37:53.790 --> 00:37:59.550
<v Ruben Somsen>could take the money right away so so with the with the slow peg-out mechanism

00:37:59.550 --> 00:38:04.560
<v Ruben Somsen>they can do that but they can do that slowly And that's because that part is user

00:38:04.560 --> 00:38:10.360
<v Ruben Somsen>enforced. So if you take away the user enforcement part of that, then 51% of

00:38:10.360 --> 00:38:13.720
<v Ruben Somsen>miners can immediately steal as opposed to after six months or three months.

00:38:13.720 --> 00:38:17.780
<v Sjors Provoost>Right, because right now, if 51% of miners decide to cheat on any rule, they'll

00:38:17.780 --> 00:38:20.880
<v Sjors Provoost>have the majority hash power, but nobody's going to follow it. Because the rule

00:38:20.880 --> 00:38:25.620
<v Sjors Provoost>is everywhere. It's in exchanges, it's in users' full nodes at home. It's

00:38:25.620 --> 00:38:29.680
<v Sjors Provoost>enforced everywhere. Whereas a miner-enforced soft fork... is a soft fork that

00:38:29.680 --> 00:38:34.280
<v Sjors Provoost>only exists among the miners themselves. And users have no incentive to care.

00:38:34.400 --> 00:38:38.100
<v Sjors Provoost>They'll just follow the biggest hash power that follows their rules, not the

00:38:38.100 --> 00:38:38.540
<v Sjors Provoost>miners' rules.

00:38:38.680 --> 00:38:43.980
<v Aaron van Wirdum>Yeah, that makes sense. Okay, so Ruben, you sounded... mildly positive let's try it

00:38:43.980 --> 00:38:49.820
<v Ruben Somsen>well i mean as an experiment i'm all for it but is it worth the consensus risks

00:38:49.820 --> 00:38:55.100
<v Ruben Somsen>in that part i'm i'm less optimistic so so that's kind of why i'm like half half

00:38:55.100 --> 00:38:58.700
<v Ruben Somsen>about it and i definitely like i'm not optimistic in the sense that i i don't

00:38:58.700 --> 00:39:01.920
<v Ruben Somsen>think it's guaranteed that it would work right but i would like to see it basically

00:39:01.920 --> 00:39:05.520
<v Sjors Provoost>if i can add another worry i'm worried about more politics when you have more

00:39:05.520 --> 00:39:09.890
<v Sjors Provoost>side chains more politics in general that spill over the Bitcoin Right now, you

00:39:09.890 --> 00:39:14.630
<v Sjors Provoost>know, on certain altcoins, there is drama all the time. Not on every altcoin all

00:39:14.630 --> 00:39:18.270
<v Sjors Provoost>the time, but I mean, there's always some drama on some altcoin. But that drama

00:39:18.270 --> 00:39:22.710
<v Sjors Provoost>is contained to that altcoin. So if, I don't know, the SEC goes after Ripple...

00:39:22.890 --> 00:39:28.350
<v Sjors Provoost>that's very unpleasant for Ripple. But there's not a subset of Ripplers that

00:39:28.350 --> 00:39:31.730
<v Sjors Provoost>suddenly start lobbying Bitcoin Core developers to issue a soft fork to do

00:39:31.730 --> 00:39:35.090
<v Sjors Provoost>something about whatever the SEC is doing to them, to unfreeze some coins, to

00:39:35.090 --> 00:39:40.830
<v Sjors Provoost>overwrite some miner decision, because they have this consensus problem, or not a

00:39:40.830 --> 00:39:44.070
<v Sjors Provoost>consensus problem, but a legal problem that might be fixable through some

00:39:44.070 --> 00:39:47.890
<v Sjors Provoost>consensus change. They're going to start lobbying. And even if they fail, they

00:39:47.890 --> 00:39:48.790
<v Sjors Provoost>are going to start lobbying.

00:39:49.570 --> 00:39:55.450
<v Aaron van Wirdum>Well, Paul Sztorc's argument is the exact opposite. The sidechains work as sort

00:39:55.450 --> 00:40:00.310
<v Aaron van Wirdum>of an escape valve for all the drama. Like if you want to have bigger blocks,

00:40:00.490 --> 00:40:04.330
<v Aaron van Wirdum>then you don't have to lobby Bitcoin Core developers to increase the blocks. You

00:40:04.330 --> 00:40:09.050
<v Aaron van Wirdum>just create a sidechain with bigger blocks and have fun on your sidechain over there.

00:40:09.270 --> 00:40:14.230
<v Sjors Provoost>The problem is that the escape valve already exists, which is called an ICO. Or

00:40:14.230 --> 00:40:16.450
<v Sjors Provoost>just like launching a new coin. An altcoin.

00:40:16.550 --> 00:40:20.610
<v Aaron van Wirdum>Yeah, but Paul doesn't like that. He likes the 21 million limits, as do I. I

00:40:20.610 --> 00:40:21.510
<v Aaron van Wirdum>agree with him on that.

00:40:21.650 --> 00:40:26.110
<v Sjors Provoost>But the problem is the escape valve already exists in the world. So there are

00:40:26.110 --> 00:40:30.070
<v Sjors Provoost>already altcoins and they have drama. So by having drive change, you might

00:40:30.070 --> 00:40:34.010
<v Sjors Provoost>actually draw those people towards Bitcoin because they're already away from

00:40:34.010 --> 00:40:36.450
<v Sjors Provoost>Bitcoin. Now you're going to draw these people towards Bitcoin because you're

00:40:36.450 --> 00:40:38.810
<v Sjors Provoost>making it more attractive for them to use Bitcoin.

00:40:41.290 --> 00:40:46.040
<v Aaron van Wirdum>Altcoins are dumb, though, Sjors. We want to give people a better option on

00:40:46.040 --> 00:40:49.560
<v Aaron van Wirdum>altcoins. We want to have them at least use Bitcoin, even though they want big

00:40:49.560 --> 00:40:51.980
<v Aaron van Wirdum>blocks or Ethereum smart contracting solutions.

00:40:52.200 --> 00:40:56.520
<v Sjors Provoost>But what I'm saying is that by having altcoins exist and be a reasonable option,

00:40:56.740 --> 00:41:02.060
<v Sjors Provoost>the drama goes to those altcoins. By having Bitcoin be supportive of other

00:41:02.060 --> 00:41:06.700
<v Sjors Provoost>things... the drama goes to Bitcoin because like there's only a fixed if there's

00:41:06.700 --> 00:41:09.980
<v Sjors Provoost>only a fixed amount of drama in the world and right now it's all in the altcoins

00:41:09.980 --> 00:41:14.300
<v Sjors Provoost>you know if we if we add more if we get more of the market cap and more of the

00:41:14.300 --> 00:41:18.700
<v Sjors Provoost>functionality from those altcoins we migrate that drama towards Bitcoin

00:41:18.700 --> 00:41:23.120
<v Aaron van Wirdum>i think we're talking about different types of drama as well because you're

00:41:23.120 --> 00:41:24.900
<v Aaron van Wirdum>talking about like regulatory drama

00:41:24.900 --> 00:41:30.500
<v Sjors Provoost>no just consensus bug drama i mean let's say ethereum was a hard was a drive

00:41:30.500 --> 00:41:36.400
<v Sjors Provoost>chain of Bitcoin And they had this DAO bug. And they were somehow not able

00:41:36.400 --> 00:41:39.440
<v Sjors Provoost>to fix that just on their end. They really needed something on the Bitcoin side

00:41:39.440 --> 00:41:42.420
<v Sjors Provoost>to happen. Well, then they would have lobbied Bitcoin core developers.

00:41:43.080 --> 00:41:46.720
<v Aaron van Wirdum>Okay, well, it takes away another type of drama, at least. Or at least that's

00:41:46.720 --> 00:41:50.540
<v Aaron van Wirdum>Paul's argument. I'm not even sure if I agree with that fully. I think it's

00:41:50.540 --> 00:41:56.060
<v Aaron van Wirdum>overselling it a bit. Because I know big blockers that do want bigger blocks, but

00:41:56.060 --> 00:41:59.400
<v Aaron van Wirdum>don't want a sidechain. They want bigger blocks on the main chain, so it wouldn't

00:41:59.400 --> 00:42:00.260
<v Aaron van Wirdum>take away that drama.

00:42:00.600 --> 00:42:04.480
<v Ruben Somsen>Well, I mean, that seems like kind of an irrational argument, because the big

00:42:04.480 --> 00:42:09.820
<v Ruben Somsen>blocker argument, and I think that's a good point on Paul Sztorc's part, where...

00:42:09.740 --> 00:42:13.980
<v Ruben Somsen>For big blockers, their argument really is you can trust the miners and don't

00:42:13.980 --> 00:42:18.360
<v Ruben Somsen>worry about validation and stuff. The miners will take care of you. You run SPV,

00:42:18.500 --> 00:42:23.460
<v Ruben Somsen>it's fine. And if that's your argument, then you should also consider drive

00:42:23.460 --> 00:42:26.820
<v Ruben Somsen>chains to be secure because it's the same exact idea, basically.

00:42:27.140 --> 00:42:28.660
<v Aaron van Wirdum>Yeah, they should, but they don't.

00:42:28.820 --> 00:42:33.300
<v Ruben Somsen>Yeah, so I agree that they're irrational people with irrational arguments, but I

00:42:33.300 --> 00:42:35.500
<v Ruben Somsen>can't help those people. That's their problem.

00:42:35.660 --> 00:42:38.920
<v Aaron van Wirdum>Right, well, that's kind of the point. It's a drama, I guess, yeah.

00:42:39.160 --> 00:42:42.860
<v Sjors Provoost>Well, one day we'll be able to move around with our little mobile podcast

00:42:42.860 --> 00:42:46.780
<v Sjors Provoost>equipment, you know, when the apocalypse is over. And we'll be able

00:42:46.780 --> 00:42:50.900
<v Aaron van Wirdum>to ask Mr. Sztorc himself. We can actually ask him so he doesn't have to be

00:42:50.900 --> 00:42:54.180
<v Aaron van Wirdum>annoyed listening to our podcast, [unclear] his proposal.

00:42:54.560 --> 00:42:57.880
<v Sjors Provoost>So far we've always been doing these podcasts in person and we're a little

00:42:57.880 --> 00:43:01.040
<v Sjors Provoost>reluctant to start doing them via video calls. So we'll wait.

00:43:01.640 --> 00:43:03.900
<v Aaron van Wirdum>Yeah. All right. I think that's our podcast then for now.

00:43:04.240 --> 00:43:06.080
<v Sjors Provoost>Cool. Anything to close off, Ruben?

00:43:06.280 --> 00:43:11.140
<v Ruben Somsen>Well, I guess. Just a little shout-out to SoftChains. I've announced something

00:43:11.140 --> 00:43:15.820
<v Ruben Somsen>that is kind of a variant of DriveChains, so to speak. It's called SoftChains,

00:43:15.820 --> 00:43:20.080
<v Ruben Somsen>and maybe we can dedicate another episode to that some other time. But that's a

00:43:20.080 --> 00:43:22.920
<v Ruben Somsen>whole other can of worms, so I'm not going to go into it now. But if anyone wants

00:43:22.920 --> 00:43:24.620
<v Ruben Somsen>a sneak preview, they can look it up on the internet.

00:43:25.060 --> 00:43:25.280
<v Aaron van Wirdum>Okay.

00:43:25.560 --> 00:43:28.400
<v Sjors Provoost>Well, in that case, thank you for listening to the Van Wirdum Sjorsnado.

00:43:29.000 --> 00:43:29.680
<v Aaron van Wirdum>There you go.

00:43:29.980 --> 00:43:30.360
<v Sjors Provoost>There you go.

