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

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

00:00:18.520 --> 00:00:19.780
<v Sjors Provoost>Explained.

00:00:20.080 --> 00:00:20.760
<v Aaron van Wirdum>Hey, Sjors.

00:00:21.020 --> 00:00:21.780
<v Sjors Provoost>Happy New Year.

00:00:22.100 --> 00:00:26.120
<v Aaron van Wirdum>What an amazing day. A new Bitcoin Explained episode.

00:00:26.500 --> 00:00:31.920
<v Sjors Provoost>It is truly amazing. We are exponentially slowing down as we approach episode

00:00:31.920 --> 00:00:34.180
<v Sjors Provoost>number 100, The Singularity.

00:00:34.760 --> 00:00:35.380
<v Aaron van Wirdum>Exactly.

00:00:35.660 --> 00:00:36.720
<v Sjors Provoost>This is episode 96.

00:00:38.600 --> 00:00:44.420
<v Aaron van Wirdum>Yes, and episode 96, like many other episodes, is sponsored by our

00:00:44.420 --> 00:00:50.260
<v Aaron van Wirdum>friends from Coinkite, who produce the COLDCARD, and who are kind enough to pay

00:00:50.260 --> 00:00:54.960
<v Aaron van Wirdum>for Sjors's mortgage of this beautiful penthouse where we're recording.

00:00:55.220 --> 00:00:57.640
<v Sjors Provoost>Or just a frappuccino, probably. Somewhere in between.

00:00:59.440 --> 00:01:01.860
<v Aaron van Wirdum>Sjors, we have a problem.

00:01:02.570 --> 00:01:03.290
<v Sjors Provoost>We do.

00:01:04.790 --> 00:01:07.190
<v Aaron van Wirdum>Bitcoin mining is becoming too centralized.

00:01:07.630 --> 00:01:08.830
<v Sjors Provoost>Becoming too centralized?

00:01:10.460 --> 00:01:12.180
<v Sjors Provoost>I think it already is too centralized.

00:01:13.340 --> 00:01:19.260
<v Aaron van Wirdum>Yes. It's been trending in the wrong direction since mining was

00:01:19.260 --> 00:01:23.040
<v Aaron van Wirdum>invented. Well, that's not strictly speaking true, of course, because Satoshi at

00:01:23.040 --> 00:01:24.100
<v Aaron van Wirdum>first was the only miner.

00:01:24.420 --> 00:01:24.780
<v Sjors Provoost>Exactly.

00:01:24.960 --> 00:01:26.240
<v Aaron van Wirdum>So for a little while...

00:01:26.240 --> 00:01:29.580
<v Sjors Provoost>We had a centralization phase, then we had a decentralization phase, and now we

00:01:29.580 --> 00:01:31.000
<v Sjors Provoost>are heading towards a centralization phase.

00:01:31.000 --> 00:01:32.700
<v Aaron van Wirdum>We're trending in the wrong direction again.

00:01:33.220 --> 00:01:37.500
<v Sjors Provoost>Yep. And I think we should nuance that because I think...

00:01:37.480 --> 00:01:43.000
<v Sjors Provoost>pools are heavily decentralized—heavily centralized. I think the physical mining

00:01:43.000 --> 00:01:47.360
<v Sjors Provoost>equipment is actually quite well distributed over the planet and in weird remote

00:01:47.360 --> 00:01:47.860
<v Sjors Provoost>places.

00:01:49.190 --> 00:01:52.610
<v Sjors Provoost>But it's these pools that seem like potential choking points.

00:01:53.260 --> 00:01:57.140
<v Aaron van Wirdum>Yeah, there are different layers of mining

00:01:57.140 --> 00:02:03.060
<v Aaron van Wirdum>centralization, right? So there's indeed... where is the

00:02:03.060 --> 00:02:08.560
<v Aaron van Wirdum>hardware located? But a lot of this is getting centralized in big data centers as

00:02:08.560 --> 00:02:12.980
<v Aaron van Wirdum>well. So there's centralization pressure there. And then there is where are the

00:02:12.980 --> 00:02:18.640
<v Aaron van Wirdum>mining pools operated from? Or rather, maybe how many mining pools are there?

00:02:18.980 --> 00:02:22.920
<v Aaron van Wirdum>Both, I guess. Where are they operated from and how many are there? So mining

00:02:22.920 --> 00:02:27.840
<v Aaron van Wirdum>pool, the pool level of centralization. And there's the chip production.

00:02:29.190 --> 00:02:34.230
<v Aaron van Wirdum>centralization uh before we get so in this episode we're gonna tackle a couple of

00:02:34.230 --> 00:02:39.570
<v Aaron van Wirdum>solutions that are in development of have recently launched or like some

00:02:39.570 --> 00:02:45.010
<v Aaron van Wirdum>ideas to help counter this trend i'll also real quickly

00:02:45.010 --> 00:02:50.230
<v Aaron van Wirdum>mention that the upcoming Bitcoin Magazine print edition that i'm the editor-in

00:02:50.230 --> 00:02:54.170
<v Aaron van Wirdum>-chief of is gonna be focused on this topic as well We're going to have a whole

00:02:54.170 --> 00:02:58.310
<v Aaron van Wirdum>special around mining centralization and different solutions.

00:02:58.530 --> 00:02:59.150
<v Sjors Provoost>Sounds good.

00:02:59.770 --> 00:03:05.580
<v Aaron van Wirdum>And a couple of them we're going to explore in this episode. Specifically, just

00:03:05.580 --> 00:03:11.440
<v Aaron van Wirdum>to spoil that for everyone, spoil that for all our dear listeners, all 17

00:03:11.440 --> 00:03:17.300
<v Aaron van Wirdum>that are still left. There's the Stratum V2. We're not really going to discuss

00:03:17.300 --> 00:03:23.200
<v Aaron van Wirdum>that, I guess, because we did a whole episode on that. But Stratum V2, DATUM. the

00:03:23.200 --> 00:03:25.320
<v Aaron van Wirdum>Bitaxe and P2Pool.

00:03:26.320 --> 00:03:27.660
<v Sjors Provoost>P2Pool and its friends.

00:03:27.880 --> 00:03:32.760
<v Aaron van Wirdum>Right, yeah, P2Pool and its friends. So we'll cover all of these to some extent.

00:03:32.940 --> 00:03:37.200
<v Aaron van Wirdum>So different ways that mining is hopefully becoming more decentralized again.

00:03:37.680 --> 00:03:42.140
<v Sjors Provoost>Yeah, and so some of these focus on making pools more decentralized and others on

00:03:42.140 --> 00:03:47.560
<v Sjors Provoost>the physical equipment. Although none of them fix the making of the chips.

00:03:49.820 --> 00:03:55.560
<v Aaron van Wirdum>No, but there are some interesting developments there as well, as you can read in

00:03:55.560 --> 00:03:57.380
<v Aaron van Wirdum>the upcoming Bitcoin Magazine print edition.

00:03:57.780 --> 00:03:59.100
<v Sjors Provoost>All right. This sounds like an ad.

00:03:59.740 --> 00:04:05.510
<v Aaron van Wirdum>Speaking of ads, did you know that the Genesis book is now also available in

00:04:05.510 --> 00:04:06.210
<v Aaron van Wirdum>Dutch, Sjors?

00:04:06.570 --> 00:04:07.510
<v Sjors Provoost>I saw that.

00:04:07.650 --> 00:04:09.310
<v Aaron van Wirdum>You can finally read the Genesis book.

00:04:09.470 --> 00:04:10.810
<v Sjors Provoost>I think I read the English version.

00:04:11.500 --> 00:04:16.440
<v Aaron van Wirdum>Yeah, it's interesting because I had it translated to Dutch. It was translated to

00:04:16.440 --> 00:04:17.640
<v Aaron van Wirdum>Dutch, but not by me.

00:04:18.450 --> 00:04:23.130
<v Sjors Provoost>But did you give any feedback on the translations to the original intent of the author?

00:04:23.990 --> 00:04:29.750
<v Aaron van Wirdum>No, because I did want to do that.

00:04:31.270 --> 00:04:37.220
<v Aaron van Wirdum>But it was weird to read my own text

00:04:37.220 --> 00:04:39.480
<v Aaron van Wirdum>in my own language, but not written by me.

00:04:41.630 --> 00:04:47.410
<v Sjors Provoost>This is how Alexey Pertsev feels in court because he wrote statements in Russian

00:04:47.410 --> 00:04:50.670
<v Sjors Provoost>and then they got translated to Dutch and then the judge would read them out in

00:04:50.670 --> 00:04:54.550
<v Sjors Provoost>Dutch and then the translator would turn it back into English and he would not

00:04:54.550 --> 00:04:56.990
<v Sjors Provoost>have any idea what it's about even though it's his own words.

00:04:57.360 --> 00:05:03.160
<v Aaron van Wirdum>Yeah, it was weird. I'm not sure how to explain it. It's like my

00:05:03.160 --> 00:05:06.840
<v Aaron van Wirdum>text, but not my text or something. It's like if I had written it in Dutch

00:05:06.840 --> 00:05:11.180
<v Aaron van Wirdum>originally, I would have said, you know, I've written things differently, but I

00:05:11.180 --> 00:05:15.360
<v Aaron van Wirdum>would have written many things differently, actually. There's just a difference,

00:05:15.540 --> 00:05:19.700
<v Aaron van Wirdum>I guess, in how I think in English and Dutch. You know, it just comes out

00:05:19.700 --> 00:05:20.140
<v Aaron van Wirdum>differently.

00:05:20.940 --> 00:05:22.780
<v Sjors Provoost>Yeah, that's what I would expect as well.

00:05:26.250 --> 00:05:30.670
<v Aaron van Wirdum>It was like, well, if I'm going to start giving feedback here on how I would

00:05:30.670 --> 00:05:34.150
<v Aaron van Wirdum>write it, then I'm just going to rewrite the whole thing, pretty much.

00:05:34.450 --> 00:05:37.210
<v Sjors Provoost>Yeah, and if you do that, then the question is, would you improve things? So

00:05:37.210 --> 00:05:39.070
<v Sjors Provoost>would you write entire new chapters into it?

00:05:40.550 --> 00:05:45.170
<v Aaron van Wirdum>So I decided in the end, I'm just going to treat this like any other translated

00:05:45.170 --> 00:05:50.610
<v Aaron van Wirdum>version of a book that I can't read.

00:05:51.190 --> 00:05:55.530
<v Aaron van Wirdum>The translator just does it and whoever wants to read it in that language can do

00:05:55.530 --> 00:06:01.430
<v Aaron van Wirdum>it. So no, I did not actually do that. I just sort of trusted the translator with

00:06:01.430 --> 00:06:02.970
<v Aaron van Wirdum>it. I haven't even read the whole thing even.

00:06:03.250 --> 00:06:05.150
<v Sjors Provoost>Are you going to do a Dutch audiobook?

00:06:07.300 --> 00:06:13.180
<v Aaron van Wirdum>Well, so then I would have to, well, would I do it myself? So I did

00:06:13.180 --> 00:06:17.400
<v Aaron van Wirdum>consider that. And in that case, I would probably just take the Dutch

00:06:17.400 --> 00:06:22.380
<v Aaron van Wirdum>translation. But now I have to read it out loud in my own voice, my own text,

00:06:22.600 --> 00:06:25.880
<v Aaron van Wirdum>which is not my own. I don't know. It gets too weird. So I think not.

00:06:26.280 --> 00:06:28.480
<v Sjors Provoost>So you'd have an AI voice that sounds like you.

00:06:29.830 --> 00:06:32.190
<v Sjors Provoost>Trained on this podcast when you're speaking English.

00:06:32.370 --> 00:06:32.590
<v Aaron van Wirdum>Right.

00:06:33.560 --> 00:06:33.940
<v Sjors Provoost>Anyway.

00:06:35.880 --> 00:06:39.320
<v Aaron van Wirdum>Anyways, what were we talking about again? What are we doing here?

00:06:39.580 --> 00:06:41.360
<v Sjors Provoost>Well, the problem is mining centralization.

00:06:41.600 --> 00:06:45.660
<v Aaron van Wirdum>We're making a podcast. Bitcoin Explained on mining centralization and potential

00:06:45.660 --> 00:06:46.740
<v Aaron van Wirdum>solutions. That's right.

00:06:48.840 --> 00:06:54.530
<v Aaron van Wirdum>So the first solution, do we, again, I think the 17 listeners that are left

00:06:54.530 --> 00:06:58.250
<v Aaron van Wirdum>listening to this podcast probably all know why mining centralization is a

00:06:58.250 --> 00:07:01.010
<v Aaron van Wirdum>problem. But should we explain that real quick?

00:07:01.150 --> 00:07:03.610
<v Sjors Provoost>We should. Yeah, it may be useful to spell out a few things.

00:07:05.260 --> 00:07:09.920
<v Sjors Provoost>In principle, centralization doesn't have to be a problem because the way it

00:07:09.920 --> 00:07:14.860
<v Sjors Provoost>works is you as a user create a Bitcoin transaction and some miner doesn't like

00:07:14.860 --> 00:07:20.500
<v Sjors Provoost>you or they are asked by some man with a gun to not like you and they block your

00:07:20.500 --> 00:07:24.320
<v Sjors Provoost>transaction. They don't put it in a block. But then as long as somebody puts it

00:07:24.320 --> 00:07:28.790
<v Sjors Provoost>in a block, you'll eventually get in there. And, you know, we're not that worried

00:07:28.790 --> 00:07:32.890
<v Sjors Provoost>about super fast confirmations anymore because we have the Lightning network. So

00:07:32.890 --> 00:07:35.930
<v Sjors Provoost>really, you know, as long as a few percent of miners let your blocks in, you're

00:07:35.930 --> 00:07:40.140
<v Sjors Provoost>fine. But it's still not great. That's one objection.

00:07:41.940 --> 00:07:45.800
<v Sjors Provoost>So we'd like, you know, we wouldn't want a situation where 90 percent of miners

00:07:45.800 --> 00:07:48.860
<v Sjors Provoost>suddenly decide to not like you. And then you kind of have to hope that 10

00:07:48.860 --> 00:07:49.280
<v Sjors Provoost>percent.

00:07:50.220 --> 00:07:56.030
<v Aaron van Wirdum>Yeah, I mean, I guess the short version of it is. We want Bitcoin to be

00:07:56.030 --> 00:08:00.330
<v Aaron van Wirdum>censorship-resistant. That's kind of one of the design goals. I think that's fair

00:08:00.330 --> 00:08:06.270
<v Aaron van Wirdum>to say. And for it to be censorship-resistant, it needs to be impossible to

00:08:06.270 --> 00:08:10.810
<v Aaron van Wirdum>regulate mining, basically. Because what regulators tend to do is they tend to

00:08:10.810 --> 00:08:16.790
<v Aaron van Wirdum>blacklist certain people or institutions or companies or countries.

00:08:19.040 --> 00:08:22.660
<v Aaron van Wirdum>So if we want to stop that from happening, then basically regulators need to not

00:08:22.660 --> 00:08:28.440
<v Aaron van Wirdum>be able to regulate Bitcoin and specifically in this case on the mining level. If

00:08:28.440 --> 00:08:34.240
<v Aaron van Wirdum>mining centralizes too much, so if mining happens by too few

00:08:34.240 --> 00:08:39.360
<v Aaron van Wirdum>people or all in the same location or something like that, then regulators have a

00:08:39.360 --> 00:08:43.800
<v Aaron van Wirdum>place to go and they can start to impose the censorship on Bitcoin through these

00:08:43.800 --> 00:08:47.060
<v Aaron van Wirdum>miners. If you keep it decentralized, this is much harder to do.

00:08:47.390 --> 00:08:52.770
<v Sjors Provoost>Yeah, and another thing to consider is defense in depth. So usually you don't

00:08:52.770 --> 00:08:56.410
<v Sjors Provoost>want to have only one line of defense. Like you could say, well, even if 90% of

00:08:56.410 --> 00:09:00.750
<v Sjors Provoost>the miners censor me, it doesn't matter because this 10% is still left. But it's

00:09:00.750 --> 00:09:05.310
<v Sjors Provoost>better to be safer and make sure that that 90% is not even going to censor you.

00:09:07.740 --> 00:09:12.640
<v Sjors Provoost>So you want to defend yourself in multiple places, not just have one last thing

00:09:12.640 --> 00:09:17.190
<v Sjors Provoost>that you think will protect you and then some surprise happens. Turns out you're

00:09:17.190 --> 00:09:17.690
<v Sjors Provoost>not protected.

00:09:17.890 --> 00:09:17.990
<v Aaron van Wirdum>Yeah.

00:09:18.570 --> 00:09:23.530
<v Sjors Provoost>One such surprise could be the government ordering the compliant miners to reorg

00:09:23.530 --> 00:09:25.370
<v Sjors Provoost>out the evil miners.

00:09:27.080 --> 00:09:30.360
<v Sjors Provoost>Because then that 10%, you won't get through it.

00:09:30.720 --> 00:09:35.500
<v Aaron van Wirdum>Right. So one of the ways, you know, I explained one of the levels of

00:09:35.500 --> 00:09:40.620
<v Aaron van Wirdum>centralization is pool centralization, right? So a mining pool is, you know, some

00:09:40.620 --> 00:09:46.120
<v Aaron van Wirdum>entity that allows other people to bundle their hash power through you.

00:09:46.220 --> 00:09:50.160
<v Aaron van Wirdum>But at that point, you are also the entity that's doing the transaction

00:09:50.160 --> 00:09:51.260
<v Aaron van Wirdum>selection, typically.

00:09:52.200 --> 00:09:52.320
<v Sjors Provoost>Yeah.

00:09:52.680 --> 00:09:58.570
<v Aaron van Wirdum>So you are then, you know, even if there's like, 10,000 people with ASIC machines

00:09:58.570 --> 00:10:02.470
<v Aaron van Wirdum>mining all across the world, if there's only one person doing actual transaction

00:10:02.470 --> 00:10:06.250
<v Aaron van Wirdum>selection, the operator of the mining pool, then again, the regulator just needs

00:10:06.250 --> 00:10:10.570
<v Aaron van Wirdum>to find this one person in order to impose censorship. Today, we live in a world

00:10:10.570 --> 00:10:16.470
<v Aaron van Wirdum>where two or three mining pools have more than 50% of the total

00:10:16.470 --> 00:10:17.430
<v Aaron van Wirdum>hash power on Bitcoin.

00:10:18.920 --> 00:10:23.960
<v Aaron van Wirdum>you know it now i'm sort of leaving out the part where hash power can move to

00:10:23.960 --> 00:10:27.420
<v Aaron van Wirdum>different pools if this starts to happen but at least sort of superficially at

00:10:27.420 --> 00:10:32.260
<v Aaron van Wirdum>face value that means right now you only have to contact you know a regulator

00:10:32.260 --> 00:10:34.560
<v Aaron van Wirdum>only have to contact two or three mining pools and

00:10:35.080 --> 00:10:38.800
<v Sjors Provoost>Yeah, and I guess this goes into the fact that mining pools are doing multiple

00:10:38.800 --> 00:10:43.680
<v Sjors Provoost>things. And so even if you can't make the pool smaller, at least you can maybe

00:10:43.680 --> 00:10:46.780
<v Sjors Provoost>make mining pools do fewer of those things.

00:10:47.160 --> 00:10:47.400
<v Aaron van Wirdum>Right.

00:10:47.600 --> 00:10:52.880
<v Sjors Provoost>So mining pools combine funds. That's a way to reduce your risk as an individual

00:10:52.880 --> 00:10:57.000
<v Sjors Provoost>miner. So you always get the same payout instead of maybe once a year or less.

00:10:57.860 --> 00:11:02.160
<v Sjors Provoost>But another thing a mining pool does is it decides what goes in the block. And so

00:11:02.160 --> 00:11:05.970
<v Sjors Provoost>there are several proposals that... remove that role from the mining pool even

00:11:05.970 --> 00:11:09.670
<v Sjors Provoost>though the pool might still be big they don't get to decide what's in a block or

00:11:09.670 --> 00:11:10.490
<v Sjors Provoost>to some extent

00:11:10.680 --> 00:11:16.540
<v Aaron van Wirdum>yes so that's first the first project that realized this was Stratum

00:11:16.540 --> 00:11:22.100
<v Aaron van Wirdum>v2 right that's what you're talking about yes so indeed you have a mining pool a

00:11:22.100 --> 00:11:26.940
<v Aaron van Wirdum>mining pool operator that usually selects which transactions go in a block the

00:11:26.940 --> 00:11:30.900
<v Aaron van Wirdum>idea was let's decentralize that so in the same way that the hash power is

00:11:30.900 --> 00:11:35.920
<v Aaron van Wirdum>decentralized there's all these ASIC machines, these thousand people having ASIC

00:11:35.920 --> 00:11:39.900
<v Aaron van Wirdum>machines all across the world, as I just mentioned. The idea was let's design a

00:11:39.900 --> 00:11:44.320
<v Aaron van Wirdum>mining pool so that these thousand people, they are actually deciding themselves

00:11:44.320 --> 00:11:47.480
<v Aaron van Wirdum>which transactions they're including in the blocks they're mining. And then

00:11:47.480 --> 00:11:51.690
<v Aaron van Wirdum>they're still sharing the reward. So that's Stratum v2. We did an episode on

00:11:51.690 --> 00:11:53.030
<v Aaron van Wirdum>Stratum v2, episode 80.

00:11:53.350 --> 00:11:57.110
<v Sjors Provoost>Yeah, it's not the only thing Stratum v2 does. It also adds encryption. It tries

00:11:57.110 --> 00:12:02.710
<v Sjors Provoost>a lot of things. Indeed, we did an episode about it. I guess one thing we can say

00:12:02.710 --> 00:12:06.270
<v Sjors Provoost>about it that's relevant for the next topic, I think, is that it's somewhat

00:12:06.270 --> 00:12:11.470
<v Sjors Provoost>complicated. So Stratum v2 really tries to be the first actual spec because the

00:12:11.470 --> 00:12:15.310
<v Sjors Provoost>first version of Stratum did not have a spec. It was just code. So there's an

00:12:15.310 --> 00:12:19.180
<v Sjors Provoost>actual specification. There are different... components, different roles, as

00:12:19.180 --> 00:12:23.540
<v Sjors Provoost>they're called, that communicate with each other and that also need to be

00:12:23.540 --> 00:12:27.640
<v Sjors Provoost>implemented. And so one of the downsides is that it's, you know, it's not that

00:12:27.640 --> 00:12:32.440
<v Sjors Provoost>easy to get started with Stratum V2. And so, you know, other people have tried

00:12:32.440 --> 00:12:33.640
<v Sjors Provoost>other methods that are easier.

00:12:34.290 --> 00:12:40.230
<v Aaron van Wirdum>Right, okay. Yeah, and currently there are two Stratum V2 projects, basically, right?

00:12:40.590 --> 00:12:45.690
<v Sjors Provoost>Yeah, so there is a firmware implementation by Braiins on their Braiins OS, which

00:12:45.690 --> 00:12:48.170
<v Sjors Provoost>is a custom piece of firmware that you put on your ASIC.

00:12:48.350 --> 00:12:49.490
<v Aaron van Wirdum>Yeah, Braiins is a mining pool.

00:12:49.670 --> 00:12:53.310
<v Sjors Provoost>Yeah, the only downside with that is that it's actually behind on the current

00:12:53.310 --> 00:12:58.450
<v Sjors Provoost>spec. So they're working on it, but it could take a while. You don't need to have

00:12:58.450 --> 00:13:03.380
<v Sjors Provoost>Stratum V2 support on the firmware itself. You can run a translator. converts the

00:13:03.380 --> 00:13:08.860
<v Sjors Provoost>modern Stratum v2 to the old-fashioned Stratum but now you're dealing with a

00:13:08.860 --> 00:13:12.240
<v Sjors Provoost>separate piece of software and this is where the complexity comes right back at

00:13:12.240 --> 00:13:18.120
<v Sjors Provoost>you and there is the Stratum reference implementation SRI which is a Rust

00:13:18.120 --> 00:13:22.740
<v Sjors Provoost>project that implements basically all of the components in Stratum v2 so you can

00:13:22.740 --> 00:13:26.240
<v Sjors Provoost>run your own pool or you can run some software as a user

00:13:26.240 --> 00:13:32.110
<v Aaron van Wirdum>yeah And SRI is actually implemented by DEMAND pool right now. So that is

00:13:32.110 --> 00:13:32.890
<v Aaron van Wirdum>in use.

00:13:33.190 --> 00:13:34.310
<v Sjors Provoost>They're using it, yes.

00:13:36.190 --> 00:13:40.450
<v Sjors Provoost>You don't have to use it, right? You can implement Stratum V2 yourself. It's a

00:13:40.450 --> 00:13:43.670
<v Sjors Provoost>reference, so you can use that code to see how you would want to do it. But in

00:13:43.670 --> 00:13:46.870
<v Sjors Provoost>this case, they use the actual code, probably with some changes for themselves.

00:13:48.370 --> 00:13:48.570
<v Aaron van Wirdum>Yeah.

00:13:50.550 --> 00:13:54.330
<v Aaron van Wirdum>Okay, so that's Stratum V2, I think, right? So we're not really going into

00:13:54.330 --> 00:14:00.320
<v Aaron van Wirdum>detail. Beyond this, I'm sure it's been a while. It's been like two

00:14:00.320 --> 00:14:04.760
<v Aaron van Wirdum>years, but I'm sure there was plentiful more detail in the actual episode.

00:14:04.840 --> 00:14:05.300
<v Aaron van Wirdum>Episode 80.

00:14:05.600 --> 00:14:06.460
<v Sjors Provoost>Yeah, and also some history.

00:14:06.840 --> 00:14:07.320
<v Aaron van Wirdum>Okay.

00:14:09.460 --> 00:14:15.320
<v Aaron van Wirdum>I don't remember that at all, but maybe I'll relisten to it

00:14:15.320 --> 00:14:17.460
<v Aaron van Wirdum>myself someday. Could be a good idea.

00:14:18.840 --> 00:14:22.180
<v Aaron van Wirdum>There is a new similar-ish project as well.

00:14:22.930 --> 00:14:23.410
<v Sjors Provoost>Yes.

00:14:23.630 --> 00:14:29.600
<v Aaron van Wirdum>DATUM. So DATUM is implemented by OCEAN. OCEAN Pool. Are they just called OCEAN

00:14:29.600 --> 00:14:33.560
<v Aaron van Wirdum>or OCEAN Pool? I'm actually not sure. Anyways, I think it's just OCEAN.

00:14:33.880 --> 00:14:38.720
<v Sjors Provoost>So we have an episode explaining how OCEAN's TIDES system works. It's their way

00:14:38.720 --> 00:14:43.760
<v Sjors Provoost>of share accounting. This would be completely separate from that in a way.

00:14:44.960 --> 00:14:50.780
<v Sjors Provoost>They released basically a piece of software that you run and it communicates to

00:14:50.780 --> 00:14:54.530
<v Sjors Provoost>their pool and it makes sure that you can make your own templates. How it does

00:14:54.530 --> 00:14:55.610
<v Sjors Provoost>that? Magic.

00:14:57.240 --> 00:14:59.200
<v Aaron van Wirdum>Because the specification is not out there.

00:14:59.440 --> 00:15:03.060
<v Sjors Provoost>There's no specification yet, but my impression is it's somewhat similar to

00:15:03.060 --> 00:15:08.650
<v Sjors Provoost>Stratum V2, but it does have some different trade-offs. But

00:15:08.650 --> 00:15:10.950
<v Sjors Provoost>we can do an episode when there is a spec.

00:15:11.210 --> 00:15:12.570
<v Aaron van Wirdum>Do you know what the trade-offs are?

00:15:14.780 --> 00:15:20.750
<v Sjors Provoost>No, I think we can go back to Stratum V2 a little bit. So there are... Three

00:15:20.750 --> 00:15:25.530
<v Sjors Provoost>ways in which you can do templates in Stratum v2. One is you can just use the

00:15:25.530 --> 00:15:29.370
<v Sjors Provoost>template that the pool tells you to use. That's the old Stratum v1 model,

00:15:29.530 --> 00:15:34.790
<v Sjors Provoost>essentially. The other is where you, and this is the model we talked about in the

00:15:34.790 --> 00:15:40.150
<v Sjors Provoost>last episode, two years ago, where you announce to the pool, I want to make this

00:15:40.150 --> 00:15:44.750
<v Sjors Provoost>template. So you've made your template. You have to tell the pool about it. And

00:15:44.750 --> 00:15:50.370
<v Sjors Provoost>then the pool could reject it. And they can also see it. But there's a third way,

00:15:50.550 --> 00:15:56.450
<v Sjors Provoost>which I think DATUM uses and Stratum v2 is sort of changing the spec to also do

00:15:56.450 --> 00:16:00.470
<v Sjors Provoost>this. And I don't know which one came first or whatever. But the idea is that you

00:16:00.470 --> 00:16:03.790
<v Sjors Provoost>don't actually tell the pool what you're going to mine. You just give it a bunch

00:16:03.790 --> 00:16:09.780
<v Sjors Provoost>of Merkle hashes. I think we covered Merkle trees before. And then

00:16:09.780 --> 00:16:14.500
<v Sjors Provoost>they know that the block, you know, they know how much fees they're being paid,

00:16:14.620 --> 00:16:17.980
<v Sjors Provoost>but they have no idea what's in the block until you publish it to the blockchain.

00:16:18.540 --> 00:16:22.300
<v Sjors Provoost>So you as the miner, if you find the winning block, you put it on the blockchain,

00:16:22.300 --> 00:16:25.760
<v Sjors Provoost>and that's only when the pool learns what was actually in it. That makes

00:16:25.760 --> 00:16:30.740
<v Sjors Provoost>censorship impossible, right? Or at least other than self-censorship.

00:16:32.780 --> 00:16:38.700
<v Aaron van Wirdum>Well, also, the other thing I wanted to bring up is I do think there is

00:16:38.700 --> 00:16:42.800
<v Aaron van Wirdum>a legitimate sort of critique on this approach.

00:16:44.070 --> 00:16:45.150
<v Sjors Provoost>The third one you mean?

00:16:46.900 --> 00:16:52.640
<v Aaron van Wirdum>either of them really like i just did this this concept in itself uh like i

00:16:52.640 --> 00:16:57.930
<v Aaron van Wirdum>like fundamentally if

00:16:58.120 --> 00:17:04.080
<v Aaron van Wirdum>regulators would go out and take the step of censoring uh you know

00:17:04.080 --> 00:17:10.000
<v Aaron van Wirdum>imposing censorship through pools uh they can't do it with these kinds of pools

00:17:10.000 --> 00:17:13.220
<v Aaron van Wirdum>indeed because these pools aren't doing the transaction selection

00:17:14.960 --> 00:17:19.860
<v Aaron van Wirdum>However, if a regulator wants to get serious about it, they can, of course, still

00:17:19.860 --> 00:17:25.300
<v Aaron van Wirdum>say, well, you have to, so you just can't do this type of mining then if you

00:17:25.300 --> 00:17:26.580
<v Aaron van Wirdum>can't do it with this type of mining.

00:17:26.880 --> 00:17:30.880
<v Sjors Provoost>Yeah, so in Stratum v2, in that sense, the design is more flexible, which you

00:17:30.880 --> 00:17:34.940
<v Sjors Provoost>could see as a good thing or as a bad thing. One thing a pool could do if they

00:17:34.940 --> 00:17:39.770
<v Sjors Provoost>wanted to is they can get the templates from a compliant company. So they

00:17:39.770 --> 00:17:43.610
<v Sjors Provoost>wouldn't let the users make their own templates, but they would basically, as a

00:17:43.610 --> 00:17:47.830
<v Sjors Provoost>pool, have another company that they get the template from. So it's not their

00:17:47.830 --> 00:17:51.270
<v Sjors Provoost>responsibility to make the templates. Somebody else is doing it. I don't think

00:17:51.270 --> 00:17:52.910
<v Sjors Provoost>that would help decentralization much, though.

00:17:53.390 --> 00:17:55.490
<v Aaron van Wirdum>Well, it wouldn't help censorship resistance much.

00:17:56.010 --> 00:17:57.070
<v Sjors Provoost>Yeah, exactly.

00:17:57.630 --> 00:18:03.570
<v Aaron van Wirdum>Yeah. I think a more practical... By the way, I don't want to discourage

00:18:03.570 --> 00:18:06.590
<v Aaron van Wirdum>this type of development. I do think it's at least thinking in the right

00:18:06.590 --> 00:18:12.270
<v Aaron van Wirdum>direction, and there's probably potential in that direction. I just do

00:18:12.270 --> 00:18:17.870
<v Aaron van Wirdum>think it's not as if this is now a magic bullet and it's now actually completely

00:18:17.870 --> 00:18:18.310
<v Aaron van Wirdum>solved.

00:18:18.670 --> 00:18:24.030
<v Sjors Provoost>No, and I guess a similar analogous discussion is happening more... in practice

00:18:24.030 --> 00:18:29.270
<v Sjors Provoost>around Lightning right now. So in Europe, we have these new, you know, even

00:18:29.270 --> 00:18:34.570
<v Sjors Provoost>stricter KYC rules that were tagged along with MiCAR and other laws.

00:18:35.690 --> 00:18:40.810
<v Sjors Provoost>And... They basically require exchanges to do all these on-chain surveillance

00:18:40.810 --> 00:18:45.570
<v Sjors Provoost>things. So this is basically spying on their users on the blockchain. And as soon

00:18:45.570 --> 00:18:49.850
<v Sjors Provoost>as people use Lightning, that such spying becomes more difficult. So I would

00:18:49.850 --> 00:18:54.790
<v Sjors Provoost>expect on a much shorter term for regulators to be annoyed by that in some way.

00:18:54.990 --> 00:18:56.730
<v Sjors Provoost>We haven't seen any evidence of it yet.

00:18:56.910 --> 00:19:00.330
<v Aaron van Wirdum>Right, and there might be the potential that they will just say, well, you can't

00:19:00.330 --> 00:19:00.990
<v Aaron van Wirdum>use Lightning then.

00:19:01.340 --> 00:19:06.180
<v Sjors Provoost>Yeah, but then the regulators have to say, no, your customers must use a privacy

00:19:06.180 --> 00:19:09.520
<v Sjors Provoost>unfriendly way. They must jeopardize their own privacy in order for us to be able

00:19:09.520 --> 00:19:13.860
<v Sjors Provoost>to spy on them. There could be a whole legal battle around that if people want to

00:19:13.860 --> 00:19:16.900
<v Sjors Provoost>actually pick the battle. But it's a similar discussion as what you brought up.

00:19:17.280 --> 00:19:21.360
<v Sjors Provoost>You can force a pool. You can tell pools you cannot allow decentralization

00:19:21.360 --> 00:19:26.380
<v Sjors Provoost>because we cannot control it. That's definitely possible. And so then the idea

00:19:26.380 --> 00:19:30.150
<v Sjors Provoost>would be, so the pool still has power.

00:19:31.800 --> 00:19:37.400
<v Sjors Provoost>it still has a benefit of being big. I guess there's two things. So even though

00:19:37.400 --> 00:19:42.500
<v Sjors Provoost>it's not doing the transaction selection, it is doing the payouts. And so as a

00:19:42.500 --> 00:19:47.700
<v Sjors Provoost>user, you want to be able to get paid and that gives the pool some power. Even

00:19:47.700 --> 00:19:50.520
<v Sjors Provoost>though they might not control what's in the block, they are the one who are

00:19:50.520 --> 00:19:54.660
<v Sjors Provoost>organizing the payment and by being that person, they can, yeah, there's still a

00:19:54.660 --> 00:19:59.250
<v Sjors Provoost>choke point in it. So I think one question that's interesting to answer is why

00:19:59.250 --> 00:20:00.290
<v Sjors Provoost>are these pools so big?

00:20:02.670 --> 00:20:06.250
<v Sjors Provoost>related to that. Because being big is also what makes them an attractive target

00:20:06.250 --> 00:20:11.120
<v Sjors Provoost>in the first place. If there was just a million tiny pools... then although in

00:20:11.120 --> 00:20:14.180
<v Sjors Provoost>theory you could enforce it on all the million of them, you can't really.

00:20:14.400 --> 00:20:17.460
<v Aaron van Wirdum>You want to explain why mining is centralized?

00:20:17.920 --> 00:20:22.980
<v Sjors Provoost>Yeah, so one of the problems is that a lot of miners want to be paid a constant

00:20:22.980 --> 00:20:23.600
<v Sjors Provoost>amount of money.

00:20:23.700 --> 00:20:25.000
<v Aaron van Wirdum>Yeah, you already explained that, Sjors.

00:20:25.220 --> 00:20:30.420
<v Sjors Provoost>Well, not entirely. What I explained is the reason you use a pool in the first

00:20:30.420 --> 00:20:34.400
<v Sjors Provoost>place is to get a relatively constant payout. But there's still some luck

00:20:34.400 --> 00:20:38.080
<v Sjors Provoost>involved. A pool might find a block or a pool might not find a block. And some

00:20:38.080 --> 00:20:41.740
<v Sjors Provoost>people want even more certainty than that. They just want to say, if I provide

00:20:41.740 --> 00:20:47.740
<v Sjors Provoost>hash power, I want to get paid. And this game theory is tricky. But basically, it

00:20:47.740 --> 00:20:50.940
<v Sjors Provoost>means that a pool has to take some financial risk to do this. They have to have

00:20:50.940 --> 00:20:55.050
<v Sjors Provoost>capital. in order to pay you, even though they're not finding a block. And they

00:20:55.050 --> 00:20:57.930
<v Sjors Provoost>might not find a block for a very long time, and they could go bankrupt over that.

00:20:58.130 --> 00:21:01.830
<v Aaron van Wirdum>Right, right, right. This is a good point to bring up, actually. So rather,

00:21:02.230 --> 00:21:06.030
<v Aaron van Wirdum>actually, like the explanation I gave earlier is actually not strictly correct.

00:21:06.510 --> 00:21:12.290
<v Aaron van Wirdum>It's not the case that, well, no, it sort of is. But the point

00:21:12.290 --> 00:21:16.510
<v Aaron van Wirdum>here is that a lot of miners are basically just selling their hash power and then

00:21:16.510 --> 00:21:19.770
<v Aaron van Wirdum>getting a fixed payment for their hash power.

00:21:19.930 --> 00:21:23.770
<v Sjors Provoost>The idea of pools started out with just the idea like, okay, if I just mine on my

00:21:23.770 --> 00:21:27.810
<v Sjors Provoost>own, it will take me 5 million years to find a block. That's not good. But as

00:21:27.810 --> 00:21:32.330
<v Sjors Provoost>soon as you can find a block every day or so, you should be fine. But that's not

00:21:32.330 --> 00:21:36.850
<v Sjors Provoost>enough for some people. And so they want to be paid constantly. And now in order

00:21:36.850 --> 00:21:40.130
<v Sjors Provoost>to do that, you need to take financial risk. And it turns out that this financial

00:21:40.130 --> 00:21:45.490
<v Sjors Provoost>risk-taking works better at scale. So this is a massive incentive towards just

00:21:45.490 --> 00:21:50.030
<v Sjors Provoost>there being one pool. And then they're financed by Goldman Sachs. And that's it.

00:21:52.830 --> 00:21:58.780
<v Sjors Provoost>And the solution to that... We kind of might get back to it tangentially,

00:21:59.000 --> 00:22:02.580
<v Sjors Provoost>but kind of really none of the four things we're mentioning really solves this problem.

00:22:05.600 --> 00:22:11.500
<v Sjors Provoost>So the OCEAN pool, for example, does not solve this problem. They just pay you

00:22:11.500 --> 00:22:16.000
<v Sjors Provoost>whenever they find a block. So that means that the people who can use them are

00:22:16.000 --> 00:22:20.470
<v Sjors Provoost>people who are okay with that. Now, the benefit that they offer is transparency,

00:22:20.470 --> 00:22:25.850
<v Sjors Provoost>which we explained in the TIDES episode. So although you might get paid

00:22:25.850 --> 00:22:29.970
<v Sjors Provoost>unpredictably, you know exactly that the pay you got was fair, which is very

00:22:29.970 --> 00:22:33.510
<v Sjors Provoost>difficult to do with these other schemes where it's very untransparent. So you

00:22:33.510 --> 00:22:36.970
<v Sjors Provoost>think you're paying a 2% fee, but are you really paying a 2% fee? You have no idea.

00:22:37.130 --> 00:22:39.510
<v Aaron van Wirdum>Yes, exactly, yeah. Yes.

00:22:41.750 --> 00:22:47.450
<v Sjors Provoost>And in order to fix this, basically... This constant flow of money problem that

00:22:47.450 --> 00:22:50.110
<v Sjors Provoost>would require really fancy derivatives, products,

00:22:51.430 --> 00:22:54.970
<v Sjors Provoost>you know, Discreet Log Contracts. There's all sorts of fancy ideas around it, but

00:22:54.970 --> 00:22:57.750
<v Sjors Provoost>it gets pretty abstract very quickly.

00:22:58.760 --> 00:23:03.760
<v Aaron van Wirdum>Okay, let's move to the next topic. This one is interesting and probably a little shorter.

00:23:03.960 --> 00:23:07.160
<v Sjors Provoost>I just wanted to say one more thing about DATUM. So because it's so simple, it's

00:23:07.160 --> 00:23:11.700
<v Sjors Provoost>like just install one piece of software. There's already an Umbrel app for it. So

00:23:11.700 --> 00:23:15.240
<v Sjors Provoost>it's just very easy, especially for hobby miners, to just try it out and play

00:23:15.240 --> 00:23:19.060
<v Sjors Provoost>with it. I'd like for Stratum v2 to be able to do that as well. I think it's

00:23:19.060 --> 00:23:23.450
<v Sjors Provoost>technically very possible. It's just a matter of having enough people doing these things.

00:23:24.770 --> 00:23:25.190
<v Sjors Provoost>Anyway.

00:23:26.030 --> 00:23:30.560
<v Aaron van Wirdum>Okay, so the next topic is an interesting one. The Bitaxe.

00:23:30.640 --> 00:23:31.480
<v Sjors Provoost>The Bitaxe.

00:23:31.700 --> 00:23:33.480
<v Aaron van Wirdum>What is the Bitaxe, Sjors?

00:23:33.860 --> 00:23:34.700
<v Sjors Provoost>It's an axe.

00:23:35.630 --> 00:23:36.250
<v Aaron van Wirdum>Is it though?

00:23:36.650 --> 00:23:41.250
<v Sjors Provoost>No, it's not. It's basically what they did. Well, what it looks like is a very

00:23:41.250 --> 00:23:45.970
<v Sjors Provoost>small device, about the size of, well, half the size of a teacup, or a quarter of

00:23:45.970 --> 00:23:47.590
<v Sjors Provoost>the size of a teacup, if you have a big teacup.

00:23:49.520 --> 00:23:51.480
<v Sjors Provoost>It basically...

00:23:51.480 --> 00:23:55.240
<v Aaron van Wirdum>Since when are we measuring mining hardware in teacups?

00:23:55.300 --> 00:23:59.920
<v Sjors Provoost>Well, we have Americans listening, and they use all these weird non-metric units,

00:24:00.080 --> 00:24:01.520
<v Sjors Provoost>so we should indulge them a bit.

00:24:01.520 --> 00:24:02.040
<v Aaron van Wirdum>We'll adopt our own.

00:24:02.160 --> 00:24:03.020
<v Sjors Provoost>Quarter teacup.

00:24:06.500 --> 00:24:11.080
<v Sjors Provoost>Sorry. Anyway, it's a very small device that's kind of a fun way to hobby mine.

00:24:11.220 --> 00:24:15.260
<v Sjors Provoost>So it's not a way to make a lot of money, but it doesn't use a lot of power

00:24:15.260 --> 00:24:18.900
<v Sjors Provoost>either. It might use 15 watts or something, so it's like a couple of LED lights.

00:24:19.080 --> 00:24:21.700
<v Sjors Provoost>It's the kind of thing that you can have in your living room and brag about it.

00:24:22.370 --> 00:24:27.220
<v Sjors Provoost>However, inside of it is a single ASIC chip.

00:24:28.360 --> 00:24:32.920
<v Sjors Provoost>Where does that ASIC chip come from? It comes from a bigger miner. So what

00:24:32.920 --> 00:24:36.860
<v Sjors Provoost>basically happens, if you take a... A big miner, those have hundreds.

00:24:37.080 --> 00:24:37.860
<v Aaron van Wirdum>How many teacups?

00:24:38.140 --> 00:24:40.720
<v Sjors Provoost>They are the size of two shoeboxes.

00:24:41.620 --> 00:24:43.040
<v Aaron van Wirdum>It's getting very complicated now.

00:24:43.080 --> 00:24:47.420
<v Sjors Provoost>Originally, the S9 was one shoebox, and then the newer miners are two shoeboxes.

00:24:47.580 --> 00:24:49.680
<v Aaron van Wirdum>How many teacups in a shoebox?

00:24:49.800 --> 00:24:55.460
<v Sjors Provoost>I don't know. Anyway, so what happens is somebody takes those big miners and...

00:24:55.290 --> 00:25:00.310
<v Sjors Provoost>carefully takes out the individual chips. Or they can order the individual chips

00:25:00.310 --> 00:25:05.490
<v Sjors Provoost>on Alibaba, those kind of sites, depending on the supply chain.

00:25:06.470 --> 00:25:10.610
<v Sjors Provoost>And then you take one of those chips and you put them on a minicomputer. They're

00:25:10.610 --> 00:25:16.370
<v Sjors Provoost>very simple ESP32 minicomputers. And then there's an open-source operating system

00:25:16.370 --> 00:25:20.560
<v Sjors Provoost>that is able to control the individual mining chip. And so you end up with,

00:25:20.660 --> 00:25:26.320
<v Sjors Provoost>perhaps, with the modern ones, I think it's about one terahash. compared to maybe

00:25:26.320 --> 00:25:31.980
<v Sjors Provoost>200 terahash in a proper miner machine. So 200 of Bitaxes is the equivalent of

00:25:31.980 --> 00:25:37.020
<v Sjors Provoost>one double shoebox professional miner. And imagine there's hundreds of thousands

00:25:37.020 --> 00:25:41.580
<v Sjors Provoost>of normal mining machines in a big data center, and you get a sense of the scale

00:25:41.580 --> 00:25:42.900
<v Sjors Provoost>of this mining.

00:25:43.160 --> 00:25:43.540
<v Aaron van Wirdum>Right.

00:25:45.200 --> 00:25:50.290
<v Aaron van Wirdum>I guess the advantage would be, well, I mean...

00:25:50.780 --> 00:25:56.540
<v Aaron van Wirdum>having an actual ASIC miner hardware thing that's gonna be loud

00:25:56.540 --> 00:26:00.860
<v Aaron van Wirdum>and produces heat and all that kind of stuff right like that's not really something

00:26:00.860 --> 00:26:05.020
<v Sjors Provoost>yeah this thing is very quiet it does need a fan but it's a very small one

00:26:05.610 --> 00:26:11.390
<v Aaron van Wirdum>Right, so like you said, is it just for people that actually want to make

00:26:11.390 --> 00:26:13.270
<v Aaron van Wirdum>money or is it more like for fun?

00:26:13.490 --> 00:26:16.550
<v Sjors Provoost>No, because for one thing, you're probably going to run this thing at home and at

00:26:16.550 --> 00:26:20.490
<v Sjors Provoost>home your electricity prices are going to be too high, even with a professional

00:26:20.490 --> 00:26:21.210
<v Sjors Provoost>mining machine.

00:26:24.780 --> 00:26:29.800
<v Sjors Provoost>But it is, I think, a way for people to become familiar with mining at all

00:26:29.800 --> 00:26:33.180
<v Sjors Provoost>because mining is so far away now from the end user because it's such an

00:26:33.180 --> 00:26:38.090
<v Sjors Provoost>industrial project. It's a very nice entry-level device. You can actually connect

00:26:38.090 --> 00:26:42.930
<v Sjors Provoost>it to a pool and basically see all the moving parts. There's some open-source

00:26:42.930 --> 00:26:46.730
<v Sjors Provoost>software involved that you can start playing with. So hopefully it's a way to get

00:26:46.730 --> 00:26:50.510
<v Sjors Provoost>more people interested in mining. You could also see it as a lottery system.

00:26:51.070 --> 00:26:55.170
<v Sjors Provoost>because your chances of winning are absolutely tiny. But generally, people will

00:26:55.170 --> 00:27:00.090
<v Sjors Provoost>use this in a solo mode where if the device finds a block, which might happen

00:27:00.090 --> 00:27:04.470
<v Sjors Provoost>once every million years. But that's every million.

00:27:04.650 --> 00:27:05.170
<v Aaron van Wirdum>It's like a lottery.

00:27:06.080 --> 00:27:10.540
<v Sjors Provoost>Yeah, it's like one in a million every year per person, right? So somebody will find it.

00:27:10.680 --> 00:27:11.960
<v Aaron van Wirdum>Exactly. It's like a lottery.

00:27:12.120 --> 00:27:18.020
<v Sjors Provoost>Yeah, it's like a lottery. And then you get the full whatever 3.25 BTC, which

00:27:18.020 --> 00:27:18.460
<v Sjors Provoost>is nice.

00:27:19.160 --> 00:27:19.440
<v Aaron van Wirdum>Yeah.

00:27:22.140 --> 00:27:27.560
<v Sjors Provoost>And I'm kind of hoping to see a bottom-up development here, because

00:27:27.560 --> 00:27:33.140
<v Sjors Provoost>mining, the making of these machines has been very proprietary, very

00:27:33.140 --> 00:27:39.100
<v Sjors Provoost>far away, very closed source. And maybe somebody can figure out how to make these

00:27:39.100 --> 00:27:44.820
<v Sjors Provoost>Bitaxes bigger. So you start with a small device, which is uneconomical, but

00:27:44.820 --> 00:27:48.640
<v Sjors Provoost>there's already designs where you put six of these ASIC chips in a single one,

00:27:48.760 --> 00:27:52.720
<v Sjors Provoost>and that's already a little bit better. in terms of overhead. And you could

00:27:52.720 --> 00:27:57.680
<v Sjors Provoost>imagine eventually building a professional machine that's built on all these open

00:27:57.680 --> 00:28:03.400
<v Sjors Provoost>source standards. And then maybe those would be used by industry eventually. The

00:28:03.400 --> 00:28:07.200
<v Sjors Provoost>other reason why I personally find them interesting is because it's plausible

00:28:07.200 --> 00:28:11.880
<v Sjors Provoost>that we can have Stratum v2 on one of those devices. and then start testing

00:28:11.880 --> 00:28:15.400
<v Sjors Provoost>Stratum v2 with it because Stratum v2 has a bit of a chicken egg problem where

00:28:15.400 --> 00:28:19.840
<v Sjors Provoost>it's complicated so it's hard to test but you want people to test it otherwise

00:28:19.840 --> 00:28:24.260
<v Sjors Provoost>the big boys are not going to use it and so getting a group of hobbyists to use

00:28:24.260 --> 00:28:27.000
<v Sjors Provoost>Stratum v2 would be a very nice way to bootstrap this stuff

00:28:28.540 --> 00:28:29.640
<v Aaron van Wirdum>okay

00:28:32.460 --> 00:28:38.160
<v Aaron van Wirdum>So, yeah, the reason why you mentioned it here, I guess, you know,

00:28:38.300 --> 00:28:43.720
<v Aaron van Wirdum>hopefully in a sort of ideal world, this is something that catches on. And

00:28:43.720 --> 00:28:47.000
<v Aaron van Wirdum>actually, because there's like, you know, at some point there's like millions of

00:28:47.000 --> 00:28:51.440
<v Aaron van Wirdum>people having one of these things in their home and then mining hardware, you

00:28:51.440 --> 00:28:53.580
<v Aaron van Wirdum>know, mining becomes very decentralized in that way.

00:28:54.020 --> 00:28:59.820
<v Sjors Provoost>Well, that's another angle. So we have the DIY hobby interest thing that

00:28:59.820 --> 00:29:04.000
<v Sjors Provoost>could pay off in the long run, more of an R&D strategy, I guess.

00:29:05.800 --> 00:29:10.180
<v Sjors Provoost>Then there is, as you said, the lottery is solo mining. And then there's also, if

00:29:10.180 --> 00:29:14.440
<v Sjors Provoost>there's enough, it might actually make a difference. Let's say all the big miners

00:29:14.440 --> 00:29:19.040
<v Sjors Provoost>are being censored. Now there's millions of these tiny miners. And as long as

00:29:19.040 --> 00:29:22.960
<v Sjors Provoost>they can find one block, you know, every couple of weeks, at least you can still

00:29:22.960 --> 00:29:26.500
<v Sjors Provoost>get your transactions through. Sort of as a last bastion and very hard to shut

00:29:26.500 --> 00:29:30.520
<v Sjors Provoost>down because these things would be literally everywhere. So, you know, you'd have

00:29:30.520 --> 00:29:33.600
<v Sjors Provoost>to search people's houses for them and they would be tiny and in quarters and

00:29:33.600 --> 00:29:34.240
<v Sjors Provoost>that sort of stuff.

00:29:34.500 --> 00:29:35.100
<v Aaron van Wirdum>Yeah, yeah.

00:29:35.260 --> 00:29:37.800
<v Sjors Provoost>They're probably too small for that, but it's...

00:29:37.800 --> 00:29:42.340
<v Aaron van Wirdum>That's assuming that these blocks then wouldn't be reorged and blah, blah, blah.

00:29:42.440 --> 00:29:42.700
<v Sjors Provoost>Exactly.

00:29:42.920 --> 00:29:47.120
<v Aaron van Wirdum>Going deep into the, you know, adversarial game theory here. But at least it's

00:29:47.120 --> 00:29:49.380
<v Aaron van Wirdum>another, it's a nice extra line of defense.

00:29:49.660 --> 00:29:52.480
<v Sjors Provoost>Yeah, and because they're a hundred times smaller than a normal miner and they're

00:29:52.480 --> 00:29:55.780
<v Sjors Provoost>typically only one in one place, you know, they can be spread out very well.

00:29:57.230 --> 00:29:59.230
<v Aaron van Wirdum>Yeah. Cool. Do you have one?

00:29:59.660 --> 00:30:00.580
<v Sjors Provoost>I do, yes.

00:30:01.810 --> 00:30:03.310
<v Sjors Provoost>I'll show it to you if you remind me.

00:30:03.310 --> 00:30:06.990
<v Aaron van Wirdum>I think everyone, all our 17 listeners knew you had one because I think you

00:30:06.990 --> 00:30:08.850
<v Aaron van Wirdum>mentioned it in the previous episode.

00:30:08.890 --> 00:30:12.510
<v Sjors Provoost>I know in the Netherlands there's quite a few because Satoshi Radio, the podcast,

00:30:12.810 --> 00:30:19.130
<v Sjors Provoost>sold 200 of them and then had to assemble them. Because that's the part we didn't mention yet.

00:30:19.130 --> 00:30:21.530
<v Aaron van Wirdum>They also have their mining pool now, basically, right?

00:30:21.830 --> 00:30:27.230
<v Sjors Provoost>Yeah, they run one of the lowest latency mining pools in Europe, or solo pools.

00:30:27.920 --> 00:30:28.600
<v Aaron van Wirdum>Right, yeah.

00:30:30.520 --> 00:30:35.060
<v Sjors Provoost>Yeah, you can buy them. There's different shops that sell them. You can also

00:30:35.060 --> 00:30:36.860
<v Sjors Provoost>completely make it from scratch from components.

00:30:38.930 --> 00:30:39.950
<v Aaron van Wirdum>Viva la revolution!

00:30:41.190 --> 00:30:41.710
<v Sjors Provoost>Whatever.

00:30:42.390 --> 00:30:44.050
<v Aaron van Wirdum>Bottom-up mining. Let's go.

00:30:45.160 --> 00:30:45.320
<v Sjors Provoost>Okay.

00:30:46.440 --> 00:30:47.600
<v Aaron van Wirdum>Then finally,

00:30:50.280 --> 00:30:55.860
<v Aaron van Wirdum>there have been some developments in the P2Pool

00:30:55.860 --> 00:30:56.880
<v Aaron van Wirdum>domain.

00:30:57.160 --> 00:30:57.920
<v Sjors Provoost>And friends.

00:30:58.520 --> 00:31:04.140
<v Aaron van Wirdum>Yeah, this is something I have not... You know,

00:31:04.220 --> 00:31:08.880
<v Aaron van Wirdum>the Obi-Wan Kenobi meme. That's a name I've not heard for a long time.

00:31:09.540 --> 00:31:09.720
<v Sjors Provoost>Yes.

00:31:09.960 --> 00:31:14.640
<v Aaron van Wirdum>This was like a thing, I think even when I got into Bitcoin, which was early

00:31:14.640 --> 00:31:19.060
<v Aaron van Wirdum>2013, I think even then that was sort of already becoming kind of outdated.

00:31:19.460 --> 00:31:22.880
<v Sjors Provoost>Yeah, so P2Pool has existed for a long time.

00:31:22.980 --> 00:31:23.120
<v Aaron van Wirdum>Yeah.

00:31:23.460 --> 00:31:29.100
<v Sjors Provoost>And it might be coming back. But more generally, if you Google Braidpool or

00:31:29.100 --> 00:31:34.020
<v Sjors Provoost>Radpool, you will find similar concepts that have all been, in the last two years

00:31:34.020 --> 00:31:38.520
<v Sjors Provoost>or so, been resurfacing. So people are revisiting this concept. So we should

00:31:38.520 --> 00:31:39.140
<v Sjors Provoost>explain what it is.

00:31:39.220 --> 00:31:39.960
<v Aaron van Wirdum>What is the concept?

00:31:40.620 --> 00:31:46.060
<v Sjors Provoost>Roughly, the concept is that there is no pool in a very Matrix-style way.

00:31:47.480 --> 00:31:52.120
<v Sjors Provoost>Instead, you collaborate with people to

00:31:52.340 --> 00:31:58.080
<v Sjors Provoost>basically remove the pool from existence. So basically not need a pool at all. So

00:31:58.080 --> 00:31:59.600
<v Sjors Provoost>we have to kind of explain how that works.

00:31:59.600 --> 00:32:00.280
<v Aaron van Wirdum>Decentralize the pool.

00:32:00.850 --> 00:32:01.270
<v Sjors Provoost>Yes.

00:32:02.290 --> 00:32:05.930
<v Aaron van Wirdum>There's no pool operator, let's put it that way. That's the right way to put it,

00:32:06.030 --> 00:32:08.910
<v Aaron van Wirdum>right? There's no central operator, so it's a decentralized pool.

00:32:09.150 --> 00:32:14.850
<v Sjors Provoost>Yeah, and the way you do that is by creating a mini-blockchain, in a way. The

00:32:14.850 --> 00:32:17.690
<v Sjors Provoost>terms that are used are shares or weak blocks.

00:32:18.750 --> 00:32:23.770
<v Aaron van Wirdum>Yeah, that's how P2Pool always worked. That was the original design, right?

00:32:24.030 --> 00:32:27.870
<v Sjors Provoost>Yeah, there's variations on that design. P2Pool indeed already worked that way.

00:32:28.050 --> 00:32:33.510
<v Sjors Provoost>So everybody, I think, because I never actually studied the P2Pool original that

00:32:33.510 --> 00:32:39.210
<v Sjors Provoost>well, my understanding is that you would have between real blocks,

00:32:39.210 --> 00:32:44.890
<v Sjors Provoost>you would have a chain of basically weak blocks. And a weak block is just a block

00:32:44.890 --> 00:32:46.010
<v Sjors Provoost>with a lower proof of work.

00:32:48.770 --> 00:32:51.430
<v Aaron van Wirdum>I mean, that's how mining pool always works, basically.

00:32:51.570 --> 00:32:54.750
<v Sjors Provoost>Well, that's how shares work, yeah, exactly. In a mining pool, you submit a share

00:32:54.750 --> 00:32:56.230
<v Sjors Provoost>to the pool to prove that you're working.

00:32:56.350 --> 00:32:56.650
<v Aaron van Wirdum>Yes.

00:32:57.650 --> 00:33:02.470
<v Sjors Provoost>But these shares are independent. So one share does not point to another share.

00:33:02.750 --> 00:33:08.330
<v Aaron van Wirdum>Yeah. So to put it simply sort of normally, you know,

00:33:08.450 --> 00:33:13.430
<v Aaron van Wirdum>when you're mining Bitcoin, it has to be, you have to hit a certain difficulty

00:33:13.430 --> 00:33:17.290
<v Aaron van Wirdum>target, right? Which means that the hash of the block has to be, or the hash of

00:33:17.290 --> 00:33:21.950
<v Aaron van Wirdum>the block header has to start with some number of zeros and then higher

00:33:21.950 --> 00:33:24.950
<v Aaron van Wirdum>difficulty means more zeros. And then these weak blocks.

00:33:26.970 --> 00:33:32.010
<v Aaron van Wirdum>require fewer zeros. So it's easier to find them and then they're not a valid

00:33:32.010 --> 00:33:37.270
<v Aaron van Wirdum>block for the Bitcoin blockchain, but they were still kind of hard to find. So it

00:33:37.270 --> 00:33:40.310
<v Aaron van Wirdum>still proves to the mining pool that you are at least trying.

00:33:40.650 --> 00:33:44.440
<v Sjors Provoost>Yeah, exactly. So you're using proof of work. That's already how pools work,

00:33:44.520 --> 00:33:48.420
<v Sjors Provoost>right? That's what shares are. You make one of these weaker blocks and that

00:33:48.420 --> 00:33:51.040
<v Sjors Provoost>proves to the pool that you've done an amount of work and they will take that

00:33:51.040 --> 00:33:55.020
<v Sjors Provoost>into account. Now in P2Pool, it's not the pool that takes it into account. It's

00:33:55.020 --> 00:33:57.480
<v Sjors Provoost>the other miners in your pool that take it into account.

00:33:57.700 --> 00:34:02.080
<v Aaron van Wirdum>Well, and specifically, correct me if I'm wrong, so the idea is basically that

00:34:02.080 --> 00:34:07.220
<v Aaron van Wirdum>you are, these pools, no, sorry, these miners,

00:34:08.010 --> 00:34:12.710
<v Aaron van Wirdum>They are trying to find a Bitcoin block, a valid Bitcoin block, but they're also

00:34:12.710 --> 00:34:18.850
<v Aaron van Wirdum>doing that by hashing on top of the previous weak block from another miner in the pool.

00:34:18.930 --> 00:34:22.690
<v Sjors Provoost>So that's the difference. Whereas in a normal pool, shares are independent

00:34:22.690 --> 00:34:27.650
<v Sjors Provoost>things. You just submit it and it's validated based on itself. What you do in

00:34:27.650 --> 00:34:32.090
<v Sjors Provoost>this P2Pool type design is you have a chain of weak blocks. So every weak block

00:34:32.090 --> 00:34:35.700
<v Sjors Provoost>points to a previous weak block. and you would have a much higher block

00:34:35.700 --> 00:34:40.180
<v Sjors Provoost>frequency. So the weak block frequency might be once every 10 seconds. So you'd

00:34:40.180 --> 00:34:45.840
<v Sjors Provoost>have about 60 weak blocks in the time that you have a normal block. Now,

00:34:46.120 --> 00:34:51.720
<v Sjors Provoost>the way you do this is by actually adding a blockchain on top of a blockchain.

00:34:51.940 --> 00:34:57.080
<v Aaron van Wirdum>Yeah, the mining pool itself has an internal blockchain in between each actual

00:34:57.080 --> 00:34:57.640
<v Aaron van Wirdum>Bitcoin block.

00:34:57.940 --> 00:35:02.780
<v Sjors Provoost>So the internal blockchain is basically a weak block plus a reference to the

00:35:02.780 --> 00:35:08.760
<v Sjors Provoost>previous thing in that chain. And then you as a miner are supposed to

00:35:08.760 --> 00:35:13.420
<v Sjors Provoost>always build on top of the last weak block. You're not supposed to ignore the

00:35:13.420 --> 00:35:14.000
<v Sjors Provoost>last weak block.

00:35:14.140 --> 00:35:19.000
<v Aaron van Wirdum>So I think the problem with this, at the time at least, as I remember it, and

00:35:19.000 --> 00:35:24.540
<v Aaron van Wirdum>which also just sounds right, is that you now get extra

00:35:24.540 --> 00:35:30.420
<v Aaron van Wirdum>costs by mining on a P2Pool.

00:35:30.540 --> 00:35:36.080
<v Aaron van Wirdum>namely you have reorg risks so sometimes you will mine a block that won't make it

00:35:36.080 --> 00:35:41.150
<v Aaron van Wirdum>into the internal blockchain plus there's extra latency Well, no, that's still real.

00:35:41.080 --> 00:35:44.500
<v Sjors Provoost>You have [unclear] stale risk… so, yeah, or orphan risk.

00:35:44.480 --> 00:35:49.370
<v Aaron van Wirdum>Stale risk, orphan risk. Yeah, that's what I mean, actually. So I guess that was

00:35:49.370 --> 00:35:50.610
<v Aaron van Wirdum>sort of the main problem.

00:35:50.930 --> 00:35:55.050
<v Sjors Provoost>I think there were at least several problems. One is what you just described.

00:35:55.130 --> 00:35:59.110
<v Sjors Provoost>Because this frequency of blocks is higher, you're more likely to produce a block

00:35:59.110 --> 00:36:01.350
<v Sjors Provoost>that just doesn't make it to your peers on time.

00:36:01.450 --> 00:36:05.980
<v Aaron van Wirdum>Well, and in a normal mining pool, it's... It doesn't have to make it to your

00:36:05.980 --> 00:36:06.780
<v Aaron van Wirdum>peers on time.

00:36:06.940 --> 00:36:08.700
<v Sjors Provoost>No, because it only goes to the centralized pool operator.

00:36:08.860 --> 00:36:11.020
<v Aaron van Wirdum>So there are no orphans in that sense.

00:36:11.180 --> 00:36:11.460
<v Sjors Provoost>Exactly.

00:36:11.700 --> 00:36:16.300
<v Aaron van Wirdum>So that's an extra problem introduced by P2Pool, which makes it maybe

00:36:16.300 --> 00:36:17.980
<v Aaron van Wirdum>economically inefficient.

00:36:18.040 --> 00:36:22.640
<v Sjors Provoost>Another thing has to do with the Coinbase payout. I think we'll cover that later.

00:36:23.180 --> 00:36:24.240
<v Aaron van Wirdum>Go for it now.

00:36:25.460 --> 00:36:29.260
<v Aaron van Wirdum>We're here now. Recording now might as well explain it now.

00:36:29.440 --> 00:36:32.320
<v Sjors Provoost>Yeah, so normally a pool would simply, you would have an account with the pool,

00:36:32.420 --> 00:36:37.410
<v Sjors Provoost>and they would occasionally pay you out. on-chain, but not every time. And the

00:36:37.410 --> 00:36:41.730
<v Sjors Provoost>problem with this design is that everybody, because it's decentralized, everybody

00:36:41.730 --> 00:36:44.730
<v Sjors Provoost>wants to make sure they're getting paid, and so your Coinbase transaction might

00:36:44.730 --> 00:36:50.650
<v Sjors Provoost>have a lot of outputs, which uses space that cannot be used to

00:36:50.650 --> 00:36:55.410
<v Sjors Provoost>mine actually profitable transactions. So especially in a world with high fees,

00:36:55.650 --> 00:36:59.310
<v Sjors Provoost>there's an opportunity cost there. Now, it's not necessarily too bad, especially

00:36:59.310 --> 00:37:03.210
<v Sjors Provoost>with Taproot, because Taproot outputs are pretty small. So you can fit a couple

00:37:03.210 --> 00:37:05.750
<v Sjors Provoost>of hundreds in there without too much sacrifice.

00:37:07.340 --> 00:37:13.160
<v Sjors Provoost>But there was a bit of a snatch that the AntMiner firmware at the

00:37:13.160 --> 00:37:16.780
<v Sjors Provoost>time that ran on the ASICs could not handle more than 19 outputs.

00:37:18.120 --> 00:37:21.700
<v Sjors Provoost>And OCEAN pool has run into the same problem. I think we've mentioned that in the

00:37:21.700 --> 00:37:22.280
<v Sjors Provoost>earlier podcast.

00:37:23.700 --> 00:37:28.660
<v Sjors Provoost>But that can be solved by running sane firmware on the device like Braiins OS or

00:37:28.660 --> 00:37:33.220
<v Sjors Provoost>some other custom firmware. So that problem has kind of been solved. But by the

00:37:33.220 --> 00:37:37.780
<v Sjors Provoost>time the problem was solved, P2Pool was already dead. The problem about stale

00:37:37.780 --> 00:37:43.620
<v Sjors Provoost>blocks, in the meantime, we have seen networks like Ethereum introduce uncle

00:37:43.620 --> 00:37:48.440
<v Sjors Provoost>blocks and ways of accounting for these stale blocks. So you would basically...

00:37:48.780 --> 00:37:53.260
<v Sjors Provoost>If you're nice enough to point to one of these blocks that was abandoned, you get

00:37:53.260 --> 00:37:58.300
<v Sjors Provoost>20% of it and the original guy gets 80% of it. So it's a way to incentivize you

00:37:58.300 --> 00:38:02.060
<v Sjors Provoost>in pointing to other blocks. And there's been a lot of academic research around

00:38:02.060 --> 00:38:06.340
<v Sjors Provoost>it that suggests that at least for the purpose of running a mining pool, it might

00:38:06.340 --> 00:38:10.000
<v Sjors Provoost>be quite useful, right? You won't want to do it on Bitcoin itself, but for a

00:38:10.000 --> 00:38:13.280
<v Sjors Provoost>pool, it might be fine. Another thing that has improved…

00:38:11.860 --> 00:38:15.780
<v Aaron van Wirdum>Interesting. Something good coming out of Ethereum that Bitcoin could use.

00:38:16.040 --> 00:38:20.760
<v Sjors Provoost>Yeah, and another place what's interesting to look at is Monero still has P2Pool.

00:38:21.000 --> 00:38:24.300
<v Sjors Provoost>Basically, they copied the idea, and they're still running it, and it's being

00:38:24.300 --> 00:38:28.320
<v Sjors Provoost>actively used. I believe they also have 10-second block times. As far as I know,

00:38:28.420 --> 00:38:33.540
<v Sjors Provoost>Monero always runs behind Tor, and they barely have any of these orphans, uncles,

00:38:33.680 --> 00:38:38.270
<v Sjors Provoost>what you want to call it, which suggests that the latency problem is very

00:38:38.270 --> 00:38:42.700
<v Sjors Provoost>solvable. maybe just by a slightly better technology that we have now.

00:38:43.980 --> 00:38:48.440
<v Sjors Provoost>In Bitcoin, we also have compact blocks now, which are a way, I think we've

00:38:48.440 --> 00:38:51.340
<v Sjors Provoost>covered that in an earlier episode, like a way to very efficiently broadcast a

00:38:51.340 --> 00:38:54.980
<v Sjors Provoost>block without sending the whole four megabytes, using the fact that everybody has

00:38:54.980 --> 00:39:00.920
<v Sjors Provoost>the same mempool. Perhaps that can be used as well. So in other words, I think

00:39:00.920 --> 00:39:05.180
<v Sjors Provoost>it's worth looking at these concepts again, using some of the more modern tooling

00:39:05.180 --> 00:39:09.310
<v Sjors Provoost>that we have and see if we can revive them. Because it does take the, you know,

00:39:09.430 --> 00:39:11.990
<v Sjors Provoost>it removes the centralized pool. So that's a very good feature.

00:39:13.230 --> 00:39:14.270
<v Sjors Provoost>Another problem,

00:39:16.390 --> 00:39:17.150
<v Sjors Provoost>let's see.

00:39:18.550 --> 00:39:23.650
<v Sjors Provoost>Well, about this number of outputs that go into Coinbase, because every

00:39:23.650 --> 00:39:27.810
<v Sjors Provoost>participant wants its own output. There are ideas floating around that to fix

00:39:27.810 --> 00:39:33.270
<v Sjors Provoost>that through Lightning or through atomic swaps. But basically, we've already got

00:39:33.270 --> 00:39:34.670
<v Sjors Provoost>this blockchain on top of a blockchain.

00:39:35.990 --> 00:39:39.750
<v Sjors Provoost>And in P2Pool, this blockchain was just pointing to the previous one, wasn't

00:39:39.750 --> 00:39:43.410
<v Sjors Provoost>anything else. But you could make this blockchain a bit more fancy by having

00:39:43.410 --> 00:39:47.630
<v Sjors Provoost>actual transactions in it, a very small number. And those transactions would be

00:39:47.630 --> 00:39:51.930
<v Sjors Provoost>one miner saying to the other miner, okay, here's an atomic swap, would you like

00:39:51.930 --> 00:39:56.670
<v Sjors Provoost>to take my reward? So as a small miner, you would get paid on Lightning by a big

00:39:56.670 --> 00:40:01.010
<v Sjors Provoost>miner, and in exchange for that, inside this fake blockchain, you give up your

00:40:01.010 --> 00:40:04.930
<v Sjors Provoost>coin, and the bigger miner can increase their coin.

00:40:08.000 --> 00:40:12.580
<v Aaron van Wirdum>Here you've really lost me. Wait. You're making transactions on the internal...

00:40:12.670 --> 00:40:13.950
<v Sjors Provoost>On the fake blockchain.

00:40:14.130 --> 00:40:19.990
<v Aaron van Wirdum>On the fake... How does anyone get... If it's a fake blockchain, how does anyone

00:40:19.990 --> 00:40:22.890
<v Aaron van Wirdum>get that? I just lost you.

00:40:23.350 --> 00:40:27.610
<v Sjors Provoost>Yeah, so ultimately the actual money happens in the Coinbase transaction, right?

00:40:27.790 --> 00:40:31.310
<v Sjors Provoost>And you're making weak blocks with this Coinbase transaction that has hundreds of

00:40:31.310 --> 00:40:34.890
<v Sjors Provoost>outputs. And every time a weak block is found, nothing happens in the real

00:40:34.890 --> 00:40:35.290
<v Sjors Provoost>blockchain.

00:40:35.510 --> 00:40:35.770
<v Aaron van Wirdum>Yes.

00:40:35.950 --> 00:40:39.210
<v Sjors Provoost>But you can shuffle around how that weak block is organized.

00:40:39.490 --> 00:40:39.650
<v Aaron van Wirdum>Yes.

00:40:40.190 --> 00:40:44.290
<v Sjors Provoost>And so you can, while weak blocks are being found, you can do a Lightning atomic

00:40:44.290 --> 00:40:48.610
<v Sjors Provoost>swap with somebody to say, okay, I will remove my output from the next weak

00:40:48.610 --> 00:40:52.670
<v Sjors Provoost>block. And in exchange for that, you get to have your output in the next weak

00:40:52.670 --> 00:40:58.660
<v Sjors Provoost>block. So in other words, the big miner has one Bitcoin. in the output and now

00:40:58.660 --> 00:41:02.780
<v Sjors Provoost>they have 1.1 bitcoin and you give up your 0.1 bitcoin and they pay you on

00:41:02.780 --> 00:41:05.700
<v Sjors Provoost>Lightning with real bitcoin now there has to be some discount because they're

00:41:05.700 --> 00:41:09.520
<v Sjors Provoost>taking a risk but you can imagine figuring out the correct price for these kind

00:41:09.520 --> 00:41:15.350
<v Sjors Provoost>of things so you're basically trading being on chain right now versus having

00:41:15.350 --> 00:41:18.810
<v Sjors Provoost>Lightning liquidity right now or being on chain maybe one day in the future

00:41:18.970 --> 00:41:22.290
<v Sjors Provoost>versus having Lightning money right now

00:41:23.350 --> 00:41:24.390
<v Aaron van Wirdum>okay

00:41:24.850 --> 00:41:26.570
<v Sjors Provoost>Those kind of techniques could be used.

00:41:26.730 --> 00:41:30.890
<v Aaron van Wirdum>I'm not going to ask you to explain that again. I am going to listen back to this

00:41:30.890 --> 00:41:35.750
<v Aaron van Wirdum>episode again later and see if I understand it. Because this sounds... I don't

00:41:35.750 --> 00:41:37.510
<v Aaron van Wirdum>know. I just don't get it yet. But that's fine.

00:41:37.630 --> 00:41:40.710
<v Sjors Provoost>But you can already... We know how to swap between altcoins and Bitcoin.

00:41:41.010 --> 00:41:41.430
<v Aaron van Wirdum>Yes.

00:41:41.590 --> 00:41:45.550
<v Sjors Provoost>And this is essentially... This chain inside the pool is an altcoin. It's just

00:41:45.550 --> 00:41:50.930
<v Sjors Provoost>the altcoin will eventually materialize into Bitcoin as real blocks are found.

00:41:51.670 --> 00:41:52.090
<v Aaron van Wirdum>Okay.

00:41:52.570 --> 00:41:52.710
<v Sjors Provoost>Right?

00:41:53.430 --> 00:41:57.330
<v Aaron van Wirdum>Oh, yeah, okay. I think I get it now. Oh, yeah. I sort of...

00:41:57.550 --> 00:42:00.610
<v Sjors Provoost>But the question then is, how complicated do you want to make this fake blockchain?

00:42:00.850 --> 00:42:02.790
<v Aaron van Wirdum>Yes, yes, yes. Okay, I think...

00:42:05.260 --> 00:42:10.400
<v Aaron van Wirdum>Well, they say you only really understand it, and I tend to believe that once you

00:42:10.400 --> 00:42:15.100
<v Aaron van Wirdum>can explain it yourself, and I don't think I can do that right now, but I think I

00:42:15.100 --> 00:42:20.380
<v Aaron van Wirdum>at least sort of intuitively now get this idea. You're editing the Coinbase.

00:42:20.980 --> 00:42:25.800
<v Sjors Provoost>You're editing the future Coinbase. And sort of in that same vein, there is a

00:42:25.800 --> 00:42:31.490
<v Sjors Provoost>proposal to use ecash, so the Cashu-style ecash, to... When you're submitting

00:42:31.490 --> 00:42:36.170
<v Sjors Provoost>mining shares or these weak blocks, I think this one is not related to P2Pool.

00:42:36.310 --> 00:42:41.290
<v Sjors Provoost>It's actually for a normal pool again. But there, instead of just shares that are

00:42:41.290 --> 00:42:45.210
<v Sjors Provoost>just a thing that the pool registers for you, you actually make ecash tokens that

00:42:45.210 --> 00:42:49.170
<v Sjors Provoost>are tradable. And then you can do all sorts of fancy things that you can because

00:42:49.170 --> 00:42:54.110
<v Sjors Provoost>you can now monetize your fee revenue or your mining revenue before a real block

00:42:54.110 --> 00:42:57.810
<v Sjors Provoost>is found and you are no longer depending on the pool to do that for you. So these

00:42:57.810 --> 00:43:03.220
<v Sjors Provoost>are all ways to kind of take like as we covered in the episode, you can take the

00:43:03.220 --> 00:43:06.920
<v Sjors Provoost>transaction selection from the pool, but you can also take some of the payout

00:43:06.920 --> 00:43:10.640
<v Sjors Provoost>distribution work from the pool. And so you give, these pools might be big, but

00:43:10.640 --> 00:43:14.840
<v Sjors Provoost>they would have less and less actual functions to the point where there's not an

00:43:14.840 --> 00:43:15.720
<v Sjors Provoost>interesting target anymore.

00:43:17.060 --> 00:43:20.060
<v Sjors Provoost>A lot of this is moon math and fancy future stuff.

00:43:20.220 --> 00:43:23.820
<v Aaron van Wirdum>Yeah, this is still very theoretical for the most part, right?

00:43:24.760 --> 00:43:28.840
<v Sjors Provoost>Yeah, these are proposals floating around mailing lists. Some prototypes have

00:43:28.840 --> 00:43:32.700
<v Sjors Provoost>been written, but I think it's a promising direction that needs more attention

00:43:32.700 --> 00:43:34.100
<v Sjors Provoost>than strategic Bitcoin reserves.

00:43:36.300 --> 00:43:41.180
<v Aaron van Wirdum>Amen to that, yeah. This would be really important if

00:43:41.180 --> 00:43:46.730
<v Aaron van Wirdum>something like P2Pool can... be realized again or revived or

00:43:46.730 --> 00:43:51.250
<v Aaron van Wirdum>yeah, that would be one of the best improvements to Bitcoin that I can think of.

00:43:52.110 --> 00:43:56.490
<v Aaron van Wirdum>For sure. But so right now, this is still in the theoretical phase for the most

00:43:56.490 --> 00:44:00.170
<v Aaron van Wirdum>part. I mean, I guess P2Pool might still be out there, sort of, kind of.

00:44:00.370 --> 00:44:04.070
<v Sjors Provoost>No, I think the last release was in 2017, right after SegWit. And since then,

00:44:04.130 --> 00:44:05.330
<v Sjors Provoost>there's been no code development.

00:44:05.830 --> 00:44:09.750
<v Aaron van Wirdum>Okay. And what about these "and friends"? Like none of them are like live and

00:44:09.750 --> 00:44:10.190
<v Aaron van Wirdum>mining blocks.

00:44:10.190 --> 00:44:15.350
<v Sjors Provoost>Well, the things we've just been describing are sort of a mix between these three

00:44:15.350 --> 00:44:19.650
<v Sjors Provoost>proposals that I'm confusing and that also are copying from each other.

00:44:21.360 --> 00:44:26.980
<v Sjors Provoost>The P2Pool revival might actually have things from Braidpool in it, etc. So it's

00:44:26.980 --> 00:44:29.960
<v Sjors Provoost>a bit of a... We'll see what the eventual name of this thing will be.

00:44:31.250 --> 00:44:36.890
<v Sjors Provoost>But I'm seeing things brewing there. The combination of the hardware,

00:44:37.170 --> 00:44:40.330
<v Sjors Provoost>the new pools that are trying different models, and then these decentralized pool

00:44:40.330 --> 00:44:40.730
<v Sjors Provoost>ideas.

00:44:42.210 --> 00:44:45.550
<v Sjors Provoost>I think there's a chance that we'll make it.

00:44:47.260 --> 00:44:49.940
<v Sjors Provoost>We just don't know how much time there is, right? We don't know if we can keep

00:44:49.940 --> 00:44:53.660
<v Sjors Provoost>experimenting with this stuff for another 20 years or whether in two months the

00:44:53.660 --> 00:44:57.580
<v Sjors Provoost>whole thing comes to an end. And if it's in two months, then we were too late. Yeah,

00:45:01.500 --> 00:45:06.640
<v Aaron van Wirdum>well, I mean, arguably, even if censorship would start to happen...

00:45:08.050 --> 00:45:12.690
<v Aaron van Wirdum>It doesn't mean that immediately Bitcoin is killed, right? Like you can

00:45:12.690 --> 00:45:14.990
<v Aaron van Wirdum>technically still keep working on these solutions.

00:45:15.290 --> 00:45:20.430
<v Sjors Provoost>Yeah, I mean, one thing about censorship is that it is an active attack. So the

00:45:20.430 --> 00:45:23.670
<v Sjors Provoost>censorship needs to keep happening. As soon as it stops happening, it's like a

00:45:23.670 --> 00:45:28.170
<v Sjors Provoost>floodgate that opens. So in that sense, it's sort of reversible damage.

00:45:30.070 --> 00:45:32.990
<v Aaron van Wirdum>Yeah. But it still... It would be really bad.

00:45:33.190 --> 00:45:34.670
<v Sjors Provoost>It would put us in a very different world.

00:45:34.850 --> 00:45:38.870
<v Aaron van Wirdum>I would say it's, you know... Well, like you said, we don't know. We don't know

00:45:38.870 --> 00:45:40.610
<v Aaron van Wirdum>if this is going to happen in two months or 20 years.

00:45:40.910 --> 00:45:44.510
<v Sjors Provoost>No. On an optimistic note, there are lots of other cryptocurrencies out there

00:45:44.510 --> 00:45:48.590
<v Sjors Provoost>that are much easier to censor. Like, I'm not even going to name names. Much

00:45:48.590 --> 00:45:50.890
<v Sjors Provoost>easier to censor, and yet they are not being censored.

00:45:52.170 --> 00:45:55.250
<v Sjors Provoost>So there's, you know, there's the possibility of being censored and there is a

00:45:55.250 --> 00:45:59.300
<v Sjors Provoost>willingness to do the censoring. And I think the latter... isn't there at the

00:45:59.300 --> 00:46:03.080
<v Sjors Provoost>moment because exchanges are just a much easier place to say hey why don't you

00:46:03.080 --> 00:46:03.720
<v Sjors Provoost>freeze those coins

00:46:03.720 --> 00:46:09.430
<v Aaron van Wirdum>yeah but also there's kind of no point in censoring some smaller coin

00:46:09.430 --> 00:46:12.950
<v Aaron van Wirdum>if people can just keep using the bigger coin right like you either do the

00:46:12.950 --> 00:46:13.870
<v Aaron van Wirdum>censorship right or

00:46:13.870 --> 00:46:18.940
<v Sjors Provoost>yeah but by some smaller coin you mean Tether? Oh, i wasn't gonna name names but

00:46:18.940 --> 00:46:20.340
<v Sjors Provoost>that's one of those things

00:46:20.340 --> 00:46:24.360
<v Aaron van Wirdum>yeah it's it's a Tether has been uh surprisingly uh

00:46:26.150 --> 00:46:27.890
<v Aaron van Wirdum>alive and well over the years.

00:46:27.890 --> 00:46:31.570
<v Sjors Provoost>I mean, it does freeze coins, so in a sense there is some censorship happening,

00:46:31.690 --> 00:46:36.130
<v Sjors Provoost>but not at the kind of scale that would happen on an exchange, for example, where

00:46:36.130 --> 00:46:39.050
<v Sjors Provoost>you really have to KYC every transaction before you can even make it.

00:46:39.730 --> 00:46:39.890
<v Aaron van Wirdum>Yeah.

00:46:41.110 --> 00:46:43.030
<v Aaron van Wirdum>Okay. Was that it?

00:46:43.650 --> 00:46:46.810
<v Sjors Provoost>I think we've covered most of the things that were on the list, and we've covered a lot.

00:46:47.660 --> 00:46:53.380
<v Aaron van Wirdum>Great. So the future of mining is still kind of hopeful, potentially,

00:46:53.880 --> 00:46:55.820
<v Aaron van Wirdum>I think. Sure, that's what we're going with.

00:46:56.820 --> 00:46:58.040
<v Sjors Provoost>We're not dead yet.

00:46:58.200 --> 00:46:59.120
<v Aaron van Wirdum>We're not dead yet.

00:46:59.140 --> 00:47:00.820
<v Sjors Provoost>And thank you for listening to Bitcoin.

00:47:01.140 --> 00:47:01.700
<v Aaron van Wirdum>Explained.

