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

00:00:07.090 --> 00:00:09.910
<v Aaron van Wirdum>Live from Utrecht, this is the Van Wirdum Sjorsnado.

00:00:10.050 --> 00:00:10.270
<v Sjors Provoost>Hello.

00:00:10.990 --> 00:00:11.770
<v Aaron van Wirdum>Sjors, welcome.

00:00:12.110 --> 00:00:15.550
<v Sjors Provoost>Thank you. It's good to be back. Well, I never left, but...

00:00:15.550 --> 00:00:19.770
<v Aaron van Wirdum>Yeah, we're at your home now, so you never left, I think. You probably literally

00:00:19.770 --> 00:00:21.270
<v Aaron van Wirdum>never left because of corona.

00:00:21.650 --> 00:00:23.730
<v Sjors Provoost>Exactly. We're at my secret location.

00:00:24.700 --> 00:00:26.420
<v Aaron van Wirdum>How are you enjoying the second wave?

00:00:26.720 --> 00:00:27.400
<v Sjors Provoost>It's amazing.

00:00:27.820 --> 00:00:29.460
<v Aaron van Wirdum>It is happening, isn't it?

00:00:29.720 --> 00:00:34.420
<v Sjors Provoost>Yeah, it's clearly happening. We've crossed every threshold value there is, I think.

00:00:34.560 --> 00:00:36.460
<v Aaron van Wirdum>Now it's just waiting for things to get worse.

00:00:36.910 --> 00:00:41.390
<v Sjors Provoost>Yeah, I mean, the amazing measure after three weeks of warnings that was taken

00:00:41.390 --> 00:00:45.630
<v Sjors Provoost>was to close bars like one hour earlier. That's not going to do it.

00:00:46.190 --> 00:00:51.110
<v Aaron van Wirdum>Yeah, it was like the R value was way too high. So now they made the very strict

00:00:51.110 --> 00:00:53.250
<v Aaron van Wirdum>measure of closing bars one hour early.

00:00:53.430 --> 00:00:54.530
<v Sjors Provoost>Yeah, which I'm sure will reduce.

00:00:54.530 --> 00:00:55.790
<v Aaron van Wirdum>Nothing's going to change, obviously.

00:00:56.230 --> 00:01:00.070
<v Sjors Provoost>Well, yeah, but the number still keeps going up. So eventually there's probably

00:01:00.070 --> 00:01:04.510
<v Sjors Provoost>going to be some sort of lockdown. Because the difference between now and the

00:01:04.510 --> 00:01:08.010
<v Sjors Provoost>last time is the last time the numbers were bad and everybody was worried. And

00:01:08.010 --> 00:01:09.910
<v Sjors Provoost>now the numbers are bad and nobody's worried.

00:01:10.750 --> 00:01:14.890
<v Aaron van Wirdum>Yeah. Are you expecting a real full-blown lockdown this time in the Netherlands?

00:01:15.090 --> 00:01:18.430
<v Sjors Provoost>Well, we never had one. I don't know. I think it will be more strict than last

00:01:18.430 --> 00:01:21.350
<v Sjors Provoost>time. But I don't think it will be Australian style.

00:01:21.870 --> 00:01:25.510
<v Aaron van Wirdum>Right. Yeah, so anyways, this episode is not about Corona.

00:01:25.810 --> 00:01:26.050
<v Sjors Provoost>Nope.

00:01:26.390 --> 00:01:28.450
<v Aaron van Wirdum>This episode is about Signet.

00:01:28.690 --> 00:01:29.710
<v Sjors Provoost>Indeed, Signet.

00:01:29.890 --> 00:01:33.950
<v Aaron van Wirdum>So Signet. So this is a new version of Testnet. So let's start with Testnet.

00:01:34.230 --> 00:01:35.550
<v Sjors Provoost>Yeah, or start with Mainnet.

00:01:36.090 --> 00:01:39.610
<v Aaron van Wirdum>Are you going to explain everything about Mainnet now first?

00:01:39.830 --> 00:01:43.710
<v Sjors Provoost>No, just to point out that in the early days, Bitcoin was practically worthless.

00:01:43.710 --> 00:01:45.970
<v Sjors Provoost>So you could just test everything on production.

00:01:46.530 --> 00:01:47.010
<v Aaron van Wirdum>Okay.

00:01:47.590 --> 00:01:51.610
<v Sjors Provoost>And now that Bitcoin is not worthless. You know, you don't want to test things on

00:01:51.610 --> 00:01:55.370
<v Sjors Provoost>production. In general, you do not want to test things on production. So there's

00:01:55.370 --> 00:01:59.850
<v Sjors Provoost>this additional network that is identical to Bitcoin, and that's called Testnet.

00:02:00.370 --> 00:02:06.250
<v Aaron van Wirdum>Yeah, it's basically a clone of Mainnet, which was created, I think, by, I think

00:02:06.250 --> 00:02:11.610
<v Aaron van Wirdum>Gavin Andresen created this back in, what would have been, 2011, 12, 13? Could

00:02:11.610 --> 00:02:12.890
<v Aaron van Wirdum>be. Probably before, I don't know.

00:02:13.090 --> 00:02:16.810
<v Sjors Provoost>But it was designed to be worthless, but of course, some people are idiots, so

00:02:16.810 --> 00:02:20.390
<v Sjors Provoost>they started trading it. Because, you know, it's probably better than any

00:02:20.390 --> 00:02:20.830
<v Sjors Provoost>altcoin.

00:02:21.430 --> 00:02:23.290
<v Aaron van Wirdum>Right, because it's just Bitcoin.

00:02:23.990 --> 00:02:28.550
<v Sjors Provoost>Well, Bitcoin with a few gotchas. I think the main gotcha is that if nobody mines

00:02:28.550 --> 00:02:33.350
<v Sjors Provoost>a block, the difficulty goes back down so that anyone can mine a block again.

00:02:33.810 --> 00:02:36.130
<v Aaron van Wirdum>Oh, the difficulty adjusts faster on testnet?

00:02:36.310 --> 00:02:40.350
<v Sjors Provoost>Yeah, there's basically after 20 minutes in what we would now call emergency

00:02:40.350 --> 00:02:44.290
<v Sjors Provoost>difficulty adjustment, which just basically sets the difficulty right back to

00:02:44.290 --> 00:02:46.270
<v Sjors Provoost>zero or whatever the lowest number is.

00:02:46.510 --> 00:02:47.090
<v Aaron van Wirdum>Right, right, right.

00:02:47.170 --> 00:02:53.110
<v Sjors Provoost>So what you see is usually 20 minutes, nothing. And then all of a sudden... One

00:02:53.110 --> 00:02:54.950
<v Sjors Provoost>block comes in or a whole series of blocks comes in.

00:02:55.150 --> 00:02:57.050
<v Aaron van Wirdum>And that just resets difficulty to one?

00:02:57.330 --> 00:03:03.010
<v Sjors Provoost>Yeah, exactly. And the problem is that some joker with a big ASIC miner

00:03:03.010 --> 00:03:07.570
<v Sjors Provoost>mines a bunch of blocks on testnet and creates really high difficulty because the

00:03:07.570 --> 00:03:12.500
<v Sjors Provoost>difficulty keeps adjusting up and then they just go away. And nobody can mine a

00:03:12.500 --> 00:03:14.800
<v Sjors Provoost>block anymore. But in 20 minutes it goes back.

00:03:14.940 --> 00:03:17.920
<v Aaron van Wirdum>So first of all, I think what you were going to say, but I'm not sure, is that

00:03:17.920 --> 00:03:21.790
<v Aaron van Wirdum>the thing about testnet is that it's not supposed to have any value. And then if

00:03:21.790 --> 00:03:25.870
<v Aaron van Wirdum>for some reason it does get value, like some people start trading it and hoarding

00:03:25.870 --> 00:03:31.410
<v Aaron van Wirdum>it and holding it, then actually the whole testnet is just reset because people

00:03:31.410 --> 00:03:34.650
<v Aaron van Wirdum>really... Well, punished in a way for giving it value.

00:03:34.930 --> 00:03:38.630
<v Sjors Provoost>Yeah, I think that happened once or twice. The current testnet is called testnet 3.

00:03:39.070 --> 00:03:42.830
<v Aaron van Wirdum>Right, so just to make sure that it has no value, that's the whole point of

00:03:42.830 --> 00:03:47.730
<v Aaron van Wirdum>having this network. It should have no value, so people can use it to test stuff on.

00:03:48.050 --> 00:03:48.630
<v Sjors Provoost>That's right.

00:03:48.910 --> 00:03:51.710
<v Aaron van Wirdum>Okay, so then the problem is, and that was the other thing you were explaining,

00:03:52.230 --> 00:03:57.230
<v Aaron van Wirdum>is that... this network, this test network, because it has no value, there's no—

00:03:57.230 --> 00:04:03.230
<v Aaron van Wirdum>there's no sort of real incentive and mining economy around hash power

00:04:03.230 --> 00:04:09.050
<v Aaron van Wirdum>or— and therefore it's instable. So sometimes blocks are like you

00:04:09.050 --> 00:04:13.170
<v Aaron van Wirdum>mentioned, mined very fast and all of a sudden, you have, you have a whole bunch

00:04:13.170 --> 00:04:18.290
<v Aaron van Wirdum>of blocks, and then this ASIC clown leaves and then there's no blocks for

00:04:19.010 --> 00:04:24.830
<v Aaron van Wirdum>a while, and it's unstable, and this does not make for an ideal test environment.

00:04:25.070 --> 00:04:29.590
<v Sjors Provoost>And there's other problems, like you might have a reorg of 15,000 blocks, which

00:04:29.590 --> 00:04:35.170
<v Sjors Provoost>is not realistic, or I think in the beginning, SegWit blocks didn't get mined. I

00:04:35.170 --> 00:04:39.610
<v Sjors Provoost>don't even think it was censorship, it was just nobody was bothering. So all

00:04:39.610 --> 00:04:43.830
<v Sjors Provoost>these kind of problems, yeah, it's time to get rid of it. Well, not to get rid of

00:04:43.830 --> 00:04:45.470
<v Sjors Provoost>it, but time to have something else as well.

00:04:45.650 --> 00:04:50.660
<v Aaron van Wirdum>Yeah, so you have a proof-of-work chain. without all the benefits of proof of work.

00:04:51.330 --> 00:04:54.610
<v Sjors Provoost>Yeah, it's basically the worst of all worlds. It's all the downsides of proof of

00:04:54.610 --> 00:04:58.790
<v Sjors Provoost>work because you do need to have it, but you don't have the incentives that go

00:04:58.790 --> 00:05:00.030
<v Sjors Provoost>with it. So it's just a mess.

00:05:00.210 --> 00:05:05.930
<v Aaron van Wirdum>It's a messy test environment. There is another sort of... So what's RecNet? Is

00:05:05.930 --> 00:05:07.210
<v Aaron van Wirdum>that what it's called? regtest.

00:05:07.350 --> 00:05:12.250
<v Sjors Provoost>Yeah, regtest. So basically regression testing. There is another version that you

00:05:12.250 --> 00:05:14.390
<v Sjors Provoost>can spin up. That's called regtest.

00:05:14.530 --> 00:05:16.110
<v Aaron van Wirdum>That's a version of Testnet.

00:05:16.730 --> 00:05:19.110
<v Sjors Provoost>It's Testnet-ish, but it's a different kind of network.

00:05:19.410 --> 00:05:19.530
<v Aaron van Wirdum>Okay.

00:05:19.690 --> 00:05:23.610
<v Sjors Provoost>So Bitcoin Core defines three types of networks, Mainnet, Testnet, and regtest.

00:05:23.890 --> 00:05:25.090
<v Sjors Provoost>And the last one...

00:05:25.090 --> 00:05:29.800
<v Aaron van Wirdum>Just to be clear about this, because this... It's maybe slightly interesting for

00:05:29.800 --> 00:05:33.760
<v Aaron van Wirdum>someone who... I wasn't even sure about this. So Bitcoin Core actually embeds

00:05:33.760 --> 00:05:38.860
<v Aaron van Wirdum>this stuff. Bitcoin Core embeds Testnet. There's like an option in Bitcoin Core

00:05:38.860 --> 00:05:39.680
<v Aaron van Wirdum>to use Testnet.

00:05:39.840 --> 00:05:41.780
<v Sjors Provoost>Yeah, you launch Bitcoin Core with -testnet.

00:05:42.000 --> 00:05:47.280
<v Aaron van Wirdum>Right, so you download the Bitcoin Core software and then you can choose Mainnet

00:05:47.280 --> 00:05:47.840
<v Aaron van Wirdum>or Testnet.

00:05:48.060 --> 00:05:48.800
<v Sjors Provoost>Or regtest.

00:05:48.840 --> 00:05:50.740
<v Aaron van Wirdum>Or regtest, which you're going to explain now.

00:05:50.840 --> 00:05:54.540
<v Sjors Provoost>And so I think the biggest difference with regtest is that it has no difficulty adjustment.

00:05:55.110 --> 00:05:55.550
<v Aaron van Wirdum>Okay.

00:05:55.750 --> 00:06:00.070
<v Sjors Provoost>Or something like that. Basically, the use case for that is you run a test on

00:06:00.070 --> 00:06:02.930
<v Sjors Provoost>your own computer. So Bitcoin Core has a whole bunch of tests.

00:06:03.150 --> 00:06:03.410
<v Aaron van Wirdum>Right.

00:06:03.590 --> 00:06:09.010
<v Sjors Provoost>And those tests actually spin up a node that really produces blocks and reorgs

00:06:09.010 --> 00:06:12.570
<v Sjors Provoost>and makes transactions and rejects transactions and all these things. But you

00:06:12.570 --> 00:06:16.850
<v Sjors Provoost>don't want to have this huge CPU waste when you're running your tests to have

00:06:16.850 --> 00:06:19.550
<v Sjors Provoost>this difficulty. So I think they're all just trivially easy.

00:06:19.730 --> 00:06:24.230
<v Aaron van Wirdum>But it's only on your own computer. This one. You're not sharing it with other people.

00:06:24.490 --> 00:06:27.670
<v Sjors Provoost>Yeah, not necessarily, but in practice, that's how you use it. You spin up a

00:06:27.670 --> 00:06:31.190
<v Sjors Provoost>bunch of nodes on your own computer. Now, in principle, they're nodes, so they

00:06:31.190 --> 00:06:35.130
<v Sjors Provoost>can run all over the network. But the problem then is because anybody can create

00:06:35.130 --> 00:06:38.950
<v Sjors Provoost>blocks. You can just wipe out each other's chains, and it wouldn't be very

00:06:38.950 --> 00:06:44.090
<v Sjors Provoost>suitable to use between different people on different networks. It's not ideal for that.

00:06:44.630 --> 00:06:46.190
<v Aaron van Wirdum>It's even worse than Testnet for that.

00:06:46.850 --> 00:06:47.250
<v Sjors Provoost>Yeah.

00:06:47.750 --> 00:06:51.930
<v Aaron van Wirdum>Right. Okay, so we have testnet that's unstable. We have regtest that's even more

00:06:51.930 --> 00:06:55.910
<v Aaron van Wirdum>unstable, especially if you use it with other people. A bit better, probably, if

00:06:55.910 --> 00:06:58.570
<v Aaron van Wirdum>you use it on your own. But we're looking for something better.

00:06:59.190 --> 00:06:59.590
<v Sjors Provoost>Yes.

00:06:59.850 --> 00:07:01.370
<v Aaron van Wirdum>We want something better or not, Sjors?

00:07:01.950 --> 00:07:03.110
<v Sjors Provoost>I would like something better.

00:07:03.250 --> 00:07:07.170
<v Aaron van Wirdum>That's what I thought. I don't really care either way. I'm not a developer, but

00:07:07.170 --> 00:07:09.790
<v Aaron van Wirdum>for you... You want something better, for sure.

00:07:10.230 --> 00:07:13.550
<v Sjors Provoost>Yes. It's nice to be able to develop on something and try it with other people.

00:07:13.750 --> 00:07:17.150
<v Sjors Provoost>So when you're working with other people, it's nice to have perhaps an explorer

00:07:17.150 --> 00:07:22.950
<v Sjors Provoost>somewhere that you can point to, a faucet somewhere, maybe somebody takes care

00:07:22.950 --> 00:07:27.390
<v Sjors Provoost>of occasional reorgs, so you can write software that you know every day or every

00:07:27.390 --> 00:07:30.270
<v Sjors Provoost>hour. It's going to be a three-block reorg, and you can just make sure your

00:07:30.270 --> 00:07:34.870
<v Sjors Provoost>software actually handles that. All these kind of things you can do. So Testnet

00:07:34.870 --> 00:07:37.690
<v Sjors Provoost>is... Sorry, Signet...

00:07:37.690 --> 00:07:39.970
<v Aaron van Wirdum>Yeah, so Signet is the new testnet.

00:07:40.370 --> 00:07:43.770
<v Sjors Provoost>It's not the new testnet. It's another form.

00:07:43.990 --> 00:07:48.570
<v Aaron van Wirdum>It's a new testnet. Okay, so the new Bitcoin, if you download Bitcoin Core...

00:07:50.220 --> 00:07:54.660
<v Aaron van Wirdum>Once there's a Bitcoin Core software release that has this implemented, then you

00:07:54.660 --> 00:07:58.920
<v Aaron van Wirdum>have four options. So you have Bitcoin Mainnet, you have Bitcoin Testnet, you

00:07:58.920 --> 00:08:03.040
<v Aaron van Wirdum>have Bitcoin regtest, and now you have another option, which is Bitcoin Signet.

00:08:03.180 --> 00:08:03.620
<v Sjors Provoost>That's right.

00:08:03.840 --> 00:08:04.040
<v Aaron van Wirdum>Cool.

00:08:04.400 --> 00:08:04.720
<v Sjors Provoost>Yeah.

00:08:04.860 --> 00:08:05.480
<v Aaron van Wirdum>What is Signet?

00:08:05.720 --> 00:08:09.940
<v Sjors Provoost>So Signet is signed, essentially. So what happens is, and it's completely

00:08:09.940 --> 00:08:12.180
<v Sjors Provoost>centralized, every block is signed.

00:08:13.790 --> 00:08:16.350
<v Aaron van Wirdum>Every block must be signed for it to be valid.

00:08:16.590 --> 00:08:21.730
<v Sjors Provoost>Correct. So when you receive a new block, you check the proof of work, but that

00:08:21.730 --> 00:08:22.710
<v Sjors Provoost>can be trivially low.

00:08:23.710 --> 00:08:25.530
<v Aaron van Wirdum>Right, it still has proof of work as well.

00:08:25.650 --> 00:08:26.370
<v Sjors Provoost>It does, yes.

00:08:26.390 --> 00:08:30.850
<v Aaron van Wirdum>And then you need a valid signature on top of the proof of work for the block to

00:08:30.850 --> 00:08:31.270
<v Aaron van Wirdum>be valid.

00:08:31.410 --> 00:08:31.690
<v Sjors Provoost>Correct.

00:08:31.870 --> 00:08:35.630
<v Aaron van Wirdum>Plus, of course, the rest of the block needs to be valid, like always, all the

00:08:35.630 --> 00:08:37.490
<v Aaron van Wirdum>transactions. Okay, so...

00:08:37.490 --> 00:08:39.890
<v Sjors Provoost>The signature is included in one of the coinbase

00:08:41.420 --> 00:08:44.100
<v Sjors Provoost>transactions or in the coinbase transaction as one of the outputs.

00:08:44.420 --> 00:08:44.680
<v Aaron van Wirdum>I see.

00:08:44.960 --> 00:08:50.200
<v Sjors Provoost>Basically what you do is you create a block and then you add the signature to it

00:08:50.200 --> 00:08:52.840
<v Sjors Provoost>and then you start grinding to find a proof of work.

00:08:53.300 --> 00:08:53.460
<v Aaron van Wirdum>Right.

00:08:53.620 --> 00:08:57.230
<v Sjors Provoost>And there's a couple of fields you cannot change when you do that. But in

00:08:57.230 --> 00:09:01.750
<v Sjors Provoost>principle, you can try a couple of nonces and then you sign again and you try

00:09:01.750 --> 00:09:05.330
<v Sjors Provoost>some other nonces. Right. And eventually you mine a block. So that's all the same.

00:09:05.490 --> 00:09:06.830
<v Aaron van Wirdum>So who's creating the signature?

00:09:07.370 --> 00:09:11.270
<v Sjors Provoost>So the idea is that there can be more than one Signet, so we'll get into that.

00:09:11.430 --> 00:09:15.470
<v Sjors Provoost>But in this case, the main Signet, the default Signet is probably a better way to

00:09:15.470 --> 00:09:21.270
<v Sjors Provoost>say it, is checked by a one of two multi-sig. So a Signet can have any

00:09:21.270 --> 00:09:24.770
<v Sjors Provoost>arbitrary rules for what the block should be signed with. And the rule that's

00:09:24.770 --> 00:09:28.950
<v Sjors Provoost>picked for the main one is a one out of two multi-sig. So there are two public

00:09:28.950 --> 00:09:34.890
<v Sjors Provoost>keys out there. And I think, yeah, it's disclosed on the list. So it's Kalle

00:09:34.890 --> 00:09:40.790
<v Sjors Provoost>Alm and AJ Towns. they have either of the keys. So if one of their computers

00:09:40.790 --> 00:09:46.430
<v Sjors Provoost>disappears, Signet will go on. But it's very clearly very centralized in this

00:09:46.430 --> 00:09:50.590
<v Sjors Provoost>sense. So they sign the block, and then it's fine. And they sign one every 10 minutes.

00:09:51.510 --> 00:09:53.590
<v Aaron van Wirdum>One of them signs one every 10 minutes.

00:09:53.950 --> 00:09:54.410
<v Sjors Provoost>Exactly.

00:09:54.690 --> 00:09:59.890
<v Aaron van Wirdum>And the other one just stands by. Just in case. So you know for sure there's

00:09:59.890 --> 00:10:02.850
<v Aaron van Wirdum>going to be one block every 10 minutes, so that makes it stable.

00:10:03.620 --> 00:10:09.060
<v Sjors Provoost>That's the idea. And because they can both agree not to annoy each other with

00:10:09.060 --> 00:10:14.210
<v Sjors Provoost>increasing the difficulty, you won't have that kind of problems. Right. Now, it's

00:10:14.210 --> 00:10:18.370
<v Sjors Provoost>just a Signet. It's a default that Bitcoin Core will ship with, but you have a

00:10:18.370 --> 00:10:22.930
<v Sjors Provoost>simple parameter that you can start Bitcoin Core with to find any other Signet.

00:10:23.190 --> 00:10:27.870
<v Sjors Provoost>So anybody can create their own super centralized Signet. That's kind of the trade-off.

00:10:28.170 --> 00:10:28.410
<v Aaron van Wirdum>Right.

00:10:28.960 --> 00:10:32.200
<v Sjors Provoost>And they can have arbitrary conditions. So you could have, especially with

00:10:32.200 --> 00:10:38.040
<v Sjors Provoost>Taproot, a 1,000 out of 300,000 multi-sig weird construction. That could be

00:10:38.040 --> 00:10:41.600
<v Sjors Provoost>valid too for a Signet. There's probably no reason to do it. It's probably enough

00:10:41.600 --> 00:10:43.960
<v Sjors Provoost>to just have a one of two or one of three.

00:10:44.240 --> 00:10:49.200
<v Aaron van Wirdum>Right. You can use it to test your new software or whatever you're testing. I

00:10:49.200 --> 00:10:55.110
<v Aaron van Wirdum>would imagine that because of this structure, wouldn't it also... make

00:10:55.110 --> 00:11:00.470
<v Aaron van Wirdum>it unsuited to test certain stuff like i'm just thinking out loud there but if

00:11:00.470 --> 00:11:04.750
<v Aaron van Wirdum>you want to test something proof of work related or something. Like I can imagine

00:11:04.750 --> 00:11:07.810
<v Aaron van Wirdum>that it's actually getting in the way as well sometimes or not.

00:11:08.010 --> 00:11:11.770
<v Sjors Provoost>I would say you can test whatever you want because it still has proof of work. So

00:11:11.770 --> 00:11:17.290
<v Sjors Provoost>you could have a one of two signature and one of the two could increase the work,

00:11:17.390 --> 00:11:21.570
<v Sjors Provoost>could just start mining with more work. And so triggering reorgs that way.

00:11:21.810 --> 00:11:25.890
<v Aaron van Wirdum>Are there any trade-offs or downsides then to Signet or do you think it's just

00:11:25.890 --> 00:11:27.370
<v Aaron van Wirdum>strictly better than Testnet?

00:11:27.590 --> 00:11:32.140
<v Sjors Provoost>Well, it's extremely centralized. the default Signet, but because everybody can

00:11:32.140 --> 00:11:34.500
<v Sjors Provoost>make their own Signet, that's kind of not an issue either.

00:11:35.360 --> 00:11:38.740
<v Aaron van Wirdum>Yeah, plus it's just for testing anyways, and it's valueless anyways.

00:11:39.120 --> 00:11:44.860
<v Sjors Provoost>Exactly. So I don't see any downside. I also don't see no reason to get rid of

00:11:44.860 --> 00:11:50.360
<v Sjors Provoost>Testnet, but this is just an option you have. And yeah, so Kalle says hello. I

00:11:50.360 --> 00:11:52.340
<v Sjors Provoost>talked to him earlier today.

00:11:52.520 --> 00:11:52.960
<v Aaron van Wirdum>Hello.

00:11:53.440 --> 00:11:58.120
<v Sjors Provoost>And one of the things he pointed out is that you can test soft forks with this.

00:11:58.530 --> 00:12:04.240
<v Sjors Provoost>pretty easily by just shipping a new version of the

00:12:04.240 --> 00:12:09.380
<v Sjors Provoost>Signet code, or like running your own branch of the Signet code,

00:12:09.840 --> 00:12:14.800
<v Sjors Provoost>your own Bitcoin Core branch, which happens to check that soft fork, whereas

00:12:14.800 --> 00:12:17.160
<v Sjors Provoost>others can simply ignore the soft fork.

00:12:17.600 --> 00:12:18.200
<v Aaron van Wirdum>Right.

00:12:18.300 --> 00:12:23.240
<v Sjors Provoost>So let's say they do an update that has taproot in it, and they say, well, as of

00:12:23.240 --> 00:12:29.220
<v Sjors Provoost>Signet block 1000, taproot is now activated. And so if you run the

00:12:29.220 --> 00:12:33.920
<v Sjors Provoost>old version of Signet code, the one that's in Bitcoin Core now, you'll just

00:12:33.920 --> 00:12:35.160
<v Sjors Provoost>ignore it because this is a soft fork.

00:12:35.660 --> 00:12:39.600
<v Aaron van Wirdum>Yeah, well, you'll still follow the chain. You'll still be fine with it. You're

00:12:39.600 --> 00:12:40.960
<v Aaron van Wirdum>just not enforcing.

00:12:41.140 --> 00:12:42.260
<v Sjors Provoost>You're not checking any of the taproot rules.

00:12:42.260 --> 00:12:42.820
<v Aaron van Wirdum>Yes, exactly.

00:12:43.120 --> 00:12:47.620
<v Sjors Provoost>But if you have that version, you will check the taproot rules. And now what if

00:12:47.620 --> 00:12:51.360
<v Sjors Provoost>taproot rules are changed? Because it's still work in progress, so the consensus

00:12:51.360 --> 00:12:54.920
<v Sjors Provoost>rules around taproot might change, right? Or there could be a bug in the first

00:12:54.920 --> 00:13:00.460
<v Sjors Provoost>implementation. Well, it's very simple. You ship a new version of this taproot

00:13:00.460 --> 00:13:06.410
<v Sjors Provoost>Signet code and you activate it later. So you basically say, well,

00:13:06.470 --> 00:13:10.790
<v Sjors Provoost>now we activate taproot at block 2000 and anything before that is ignored. So

00:13:10.790 --> 00:13:16.510
<v Sjors Provoost>that means you can have a single Signet chain that everybody can point to that

00:13:16.540 --> 00:13:20.770
<v Sjors Provoost>can have all sorts of soft forks going on at the same time. and it's not really

00:13:20.770 --> 00:13:25.170
<v Sjors Provoost>bothering anybody else. So it's kind of nice, because with Testnet, you really...

00:13:25.170 --> 00:13:28.230
<v Sjors Provoost>I guess you can do the same on Testnet, but yeah.

00:13:29.020 --> 00:13:33.500
<v Aaron van Wirdum>All right. Any other benefits? What else do our listeners need to know about Signet?

00:13:33.560 --> 00:13:37.640
<v Sjors Provoost>I think the main benefit is that you can run your own if you have some sort of...

00:13:37.870 --> 00:13:42.070
<v Sjors Provoost>you know, a large operation and you want to test all sorts of scenarios. If you

00:13:42.070 --> 00:13:47.050
<v Sjors Provoost>want to test reorgs, then you can either ask, you know, some of the current

00:13:47.050 --> 00:13:51.270
<v Sjors Provoost>Signet operators to do reorgs for you, or you can run your own Signet and have

00:13:51.270 --> 00:13:55.650
<v Sjors Provoost>reorgs on it. And if you want to be cool and you want to do 10,000 block reorgs,

00:13:55.770 --> 00:14:00.110
<v Sjors Provoost>then you can do that, you know, and you can have other people join in. You can

00:14:00.110 --> 00:14:04.980
<v Sjors Provoost>spin up an explorer and people can point to it. I think it's pretty cool. But

00:14:04.980 --> 00:14:07.340
<v Sjors Provoost>it's not life-changing or anything.

00:14:07.560 --> 00:14:09.300
<v Aaron van Wirdum>It's been in development for a while, right?

00:14:09.660 --> 00:14:15.540
<v Sjors Provoost>Correct. And it's already used in C-Lightning. So you can use an older

00:14:15.540 --> 00:14:19.980
<v Sjors Provoost>version of Signet inside of C-Lightning. But they changed the Genesis block again

00:14:19.980 --> 00:14:20.560
<v Sjors Provoost>a couple times.

00:14:21.940 --> 00:14:26.400
<v Sjors Provoost>C-Lightning will be updated, I think, to have the new version of it. Right. And

00:14:26.400 --> 00:14:30.400
<v Sjors Provoost>so that's nice. You can test lightning stuff on a Signet, which is interesting

00:14:30.400 --> 00:14:34.900
<v Sjors Provoost>because you want to have multiple nodes, weird latency all over the world. And

00:14:34.900 --> 00:14:38.780
<v Sjors Provoost>Signet is a nice thing for that. Testnet is absolutely horrible for lightning

00:14:38.780 --> 00:14:42.420
<v Sjors Provoost>because if you get a 15,000 block reorg, your channels just blow up.

00:14:42.640 --> 00:14:48.340
<v Aaron van Wirdum>Yeah. Okay, so and this was merged into Bitcoin Core last week or something like that?

00:14:48.600 --> 00:14:49.260
<v Sjors Provoost>Yeah, a few days ago.

00:14:49.460 --> 00:14:52.900
<v Aaron van Wirdum>And that means it will be included in the next Bitcoin Core release.

00:14:53.100 --> 00:14:53.280
<v Sjors Provoost>Yep.

00:14:53.480 --> 00:14:55.660
<v Aaron van Wirdum>Which is scheduled for a couple months from now?

00:14:56.000 --> 00:14:56.640
<v Sjors Provoost>This fall.

00:14:56.920 --> 00:15:02.770
<v Aaron van Wirdum>This fall. All right. Sjors, anything else we need to discuss about Signet? Or is that it?

00:15:03.870 --> 00:15:05.710
<v Sjors Provoost>No, I think it's a pretty brief one.

00:15:06.130 --> 00:15:06.310
<v Aaron van Wirdum>Yeah.

00:15:07.510 --> 00:15:07.950
<v Aaron van Wirdum>Great.

00:15:08.290 --> 00:15:08.490
<v Sjors Provoost>Yeah.

00:15:08.890 --> 00:15:10.090
<v Aaron van Wirdum>All right. I like brief ones.

00:15:10.310 --> 00:15:13.090
<v Sjors Provoost>All right. So thank you for listening to the Van Wirdum Sjorsnado.

00:15:13.390 --> 00:15:13.850
<v Aaron van Wirdum>There you go.

