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

00:00:18.420 --> 00:00:20.600
<v Aaron van Wirdum>Live from Utrecht, this is Bitcoin.

00:00:21.420 --> 00:00:21.860
<v Sjors Provoost>Explained.

00:00:22.120 --> 00:00:22.440
<v Aaron van Wirdum>Hey, Sjors.

00:00:23.060 --> 00:00:23.540
<v Sjors Provoost>Yo, yo.

00:00:24.340 --> 00:00:25.780
<v Aaron van Wirdum>Are you going to do the jingle again?

00:00:26.140 --> 00:00:31.460
<v Sjors Provoost>I am not, but I know now that you are the best ad reader, so please read the ad.

00:00:33.270 --> 00:00:38.070
<v Aaron van Wirdum>Dear listener, are you looking for a hardware wallet? Well, you're in luck,

00:00:38.230 --> 00:00:42.590
<v Aaron van Wirdum>because our sponsor, Coinkite, produces hardware wallets. They're called the

00:00:42.590 --> 00:00:46.350
<v Aaron van Wirdum>COLDCARD. They also have all kinds of other hardware stuff. Sjors, do you know

00:00:46.350 --> 00:00:50.690
<v Aaron van Wirdum>what else they have? They have the OPENDIME. They have the BLOCKCLOCK, I think, right?

00:00:51.150 --> 00:00:51.770
<v Sjors Provoost>SATSCARD.

00:00:52.130 --> 00:00:56.050
<v Aaron van Wirdum>SATSCARD. They got everything you need. What a coincidence. That's our sponsor,

00:00:56.170 --> 00:00:56.610
<v Aaron van Wirdum>Coinkite.

00:00:58.340 --> 00:01:02.440
<v Aaron van Wirdum>All right, Sjors. That was my read. Hey, that's an improvement compared to last

00:01:02.440 --> 00:01:03.000
<v Aaron van Wirdum>week, I think.

00:01:03.140 --> 00:01:03.560
<v Sjors Provoost>Yeah, probably.

00:01:03.860 --> 00:01:05.080
<v Aaron van Wirdum>What do you think? We're getting there.

00:01:06.880 --> 00:01:08.240
<v Sjors Provoost>So, Aaron, you wrote a book.

00:01:08.420 --> 00:01:09.580
<v Aaron van Wirdum>Yeah. Oh, yes, I did.

00:01:09.740 --> 00:01:10.060
<v Sjors Provoost>Cool.

00:01:10.740 --> 00:01:15.780
<v Aaron van Wirdum>Well, at the time of recording, it's almost published. So we're publishing it

00:01:15.780 --> 00:01:21.190
<v Aaron van Wirdum>tomorrow, January 3rd. But that's like midnight actually UTC. So it's like our,

00:01:21.350 --> 00:01:26.250
<v Aaron van Wirdum>it's one our time. So in a couple of hours, my book will be live. Yeah. So that's

00:01:26.250 --> 00:01:31.860
<v Aaron van Wirdum>kind of cool. It is called the Genesis Book, Sjors, and it tells the, the

00:01:31.950 --> 00:01:36.750
<v Aaron van Wirdum>prehistory of Bitcoin, the origin story of Bitcoin. It's the story of the people

00:01:36.750 --> 00:01:42.270
<v Aaron van Wirdum>and projects that inspired Bitcoin. So Sjors, to celebrate that,

00:01:42.490 --> 00:01:45.530
<v Aaron van Wirdum>we're going to discuss some of the topics from my book.

00:01:45.690 --> 00:01:46.210
<v Sjors Provoost>That's right.

00:01:46.390 --> 00:01:52.310
<v Aaron van Wirdum>So it's actually kind of for the first time, I think, not really an episode

00:01:52.310 --> 00:01:54.010
<v Aaron van Wirdum>about Bitcoin. Have we done something about...

00:01:54.010 --> 00:01:56.230
<v Sjors Provoost>Well, we've done an episode about DigiCash.

00:01:57.090 --> 00:02:01.690
<v Aaron van Wirdum>Well, hang on. We also did the episode about the Tornado Cash. That was actually

00:02:01.690 --> 00:02:02.810
<v Aaron van Wirdum>not about Bitcoin, kind of.

00:02:02.950 --> 00:02:03.270
<v Sjors Provoost>Exactly.

00:02:03.650 --> 00:02:03.910
<v Aaron van Wirdum>Anyways.

00:02:04.880 --> 00:02:07.540
<v Sjors Provoost>And we'll still cover things that are very relevant to Bitcoin.

00:02:07.800 --> 00:02:11.680
<v Aaron van Wirdum>Right. Well, my entire book is very relevant to Bitcoin. Everything in my book is

00:02:11.680 --> 00:02:14.720
<v Aaron van Wirdum>relevant to Bitcoin. So, of course, also what we're going to discuss.

00:02:14.960 --> 00:02:15.260
<v Sjors Provoost>Excellent.

00:02:16.530 --> 00:02:19.990
<v Aaron van Wirdum>Did I mention it's called the Genesis Book? And you can find it on the Bitcoin

00:02:19.990 --> 00:02:23.010
<v Aaron van Wirdum>magazine store and Amazon and I don't know where else.

00:02:23.430 --> 00:02:23.910
<v Sjors Provoost>Sounds good.

00:02:24.430 --> 00:02:30.710
<v Aaron van Wirdum>I think thegenesisbook.com should be live by the time you listen to this, hopefully.

00:02:31.810 --> 00:02:32.370
<v Sjors Provoost>All right.

00:02:32.730 --> 00:02:35.730
<v Aaron van Wirdum>You want to know anything more about where you can find my book, Sjors?

00:02:35.950 --> 00:02:37.730
<v Sjors Provoost>No, we will put it in the show notes.

00:02:37.850 --> 00:02:43.310
<v Aaron van Wirdum>Okay, we'll go to the episode then. So yeah, we're going to discuss. So, okay. I

00:02:43.310 --> 00:02:48.830
<v Aaron van Wirdum>discuss in my book, there are sort of five main digital cash projects that sort

00:02:48.830 --> 00:02:50.790
<v Aaron van Wirdum>of precursors to Bitcoin in a way.

00:02:52.130 --> 00:02:56.790
<v Aaron van Wirdum>There are more and there's also, there's a lot more in the book, Sjors. There's

00:02:56.790 --> 00:03:00.290
<v Aaron van Wirdum>all kinds of background and stories and colors and...

00:03:00.490 --> 00:03:03.350
<v Sjors Provoost>Yeah, from the parts I've read, you...

00:03:03.350 --> 00:03:04.950
<v Aaron van Wirdum>Adventures and...

00:03:05.270 --> 00:03:11.070
<v Sjors Provoost>Yeah, from what I've been reading, you cover Austrian economic stories and sort

00:03:11.070 --> 00:03:16.890
<v Sjors Provoost>of alternate the digital money story versus the political story.

00:03:17.070 --> 00:03:20.650
<v Aaron van Wirdum>Anyway, enough with the shilling. Let's get to the actual episode. So there's

00:03:20.650 --> 00:03:26.480
<v Aaron van Wirdum>five electronic cash projects in the book that sort of

00:03:26.480 --> 00:03:32.000
<v Aaron van Wirdum>have a bigger focus than some of the more minor ones. So the first one of that is

00:03:32.000 --> 00:03:36.480
<v Aaron van Wirdum>eCash, which was produced by DigiCash. We're not going to talk about that because

00:03:36.480 --> 00:03:41.880
<v Aaron van Wirdum>we kind of already did in episode 52, which was about, what was it about?

00:03:42.020 --> 00:03:42.520
<v Aaron van Wirdum>Fedimint, right?

00:03:43.040 --> 00:03:48.280
<v Sjors Provoost>Yeah, in episode 52 of Fedimint, we start all the way back with how David Chaum's

00:03:48.420 --> 00:03:53.600
<v Sjors Provoost>eCash works, how blinded signatures work. Definitely recommended listening. And

00:03:53.600 --> 00:03:57.300
<v Sjors Provoost>then we go all the way to how that's now applied to, well.

00:03:58.650 --> 00:04:00.190
<v Sjors Provoost>Fedimints and Cashu.

00:04:03.010 --> 00:04:07.000
<v Aaron van Wirdum>We're going to skip that one. We're not going to talk about that again. Instead,

00:04:07.140 --> 00:04:11.940
<v Aaron van Wirdum>this episode will be about Hashcash and bit gold. I think this will be sort of...

00:04:11.940 --> 00:04:15.180
<v Aaron van Wirdum>I don't know how we're going to do this format because usually I'm kind of the

00:04:15.180 --> 00:04:19.280
<v Aaron van Wirdum>one who asks questions. We just still do that. I don't know. We'll figure it out,

00:04:19.360 --> 00:04:22.240
<v Aaron van Wirdum>I think. Actually, I have no idea how to do this now.

00:04:22.700 --> 00:04:27.100
<v Sjors Provoost>Well, you should tell a little bit of the story, and then we'll get to some of

00:04:27.100 --> 00:04:28.900
<v Sjors Provoost>the technical juicy bits.

00:04:29.020 --> 00:04:29.540
<v Aaron van Wirdum>Yeah, that works.

00:04:29.680 --> 00:04:31.180
<v Sjors Provoost>Where I might have some opinions, too.

00:04:31.680 --> 00:04:37.500
<v Aaron van Wirdum>Okay, cool, yeah. So the first one is Hashcash. So the background here is...

00:04:37.600 --> 00:04:43.480
<v Aaron van Wirdum>So in the 90s, the internet was becoming more popular, and also there was the

00:04:43.480 --> 00:04:47.460
<v Aaron van Wirdum>Cypherpunks mailing list. And they had... First of all, they had their own

00:04:47.460 --> 00:04:48.920
<v Aaron van Wirdum>mailing list where they were discussing...

00:04:50.130 --> 00:04:56.090
<v Aaron van Wirdum>privacy technologies, but also more ideological types of posts or how to create

00:04:56.090 --> 00:04:59.990
<v Aaron van Wirdum>digital cash, of course, and all these kinds of discussions. And they were also,

00:05:00.150 --> 00:05:03.590
<v Aaron van Wirdum>a bunch of the cypherpunks were running remailers. So this was sort of the

00:05:03.590 --> 00:05:08.570
<v Aaron van Wirdum>precursor of Tor. So it was a way to send an email anonymously, send an email

00:05:08.570 --> 00:05:12.250
<v Aaron van Wirdum>without the recipients knowing where the email came from.

00:05:13.770 --> 00:05:18.010
<v Aaron van Wirdum>The problem was that spam was becoming popular around this time as well.

00:05:20.320 --> 00:05:24.180
<v Aaron van Wirdum>the Cypherpunk mailing list itself was being spammed. Anyone else who had an

00:05:24.180 --> 00:05:28.720
<v Aaron van Wirdum>email address was being spammed. And especially also these remails or remailers

00:05:28.720 --> 00:05:34.640
<v Aaron van Wirdum>were starting to be spammed to the extent that it was becoming burdensome to run

00:05:34.640 --> 00:05:37.900
<v Aaron van Wirdum>one. So it was potentially an attack on these remailers.

00:05:39.430 --> 00:05:43.370
<v Aaron van Wirdum>Either it was a spam attack that remailers were being abused for, or maybe it was

00:05:43.370 --> 00:05:47.590
<v Aaron van Wirdum>just an attack on the remailers themselves as sort of a denial of service type of

00:05:47.590 --> 00:05:53.590
<v Aaron van Wirdum>situation. So people wanted to create, Cypherpunks specifically wanted to create

00:05:53.590 --> 00:05:54.310
<v Aaron van Wirdum>digital cash.

00:05:54.590 --> 00:05:59.170
<v Sjors Provoost>And I think, well, one step back, I think they also, they wanted to fix the spam

00:05:59.170 --> 00:06:02.330
<v Sjors Provoost>problem, right? With digital cash maybe in the back of their mind.

00:06:02.490 --> 00:06:06.590
<v Aaron van Wirdum>Sorry, I said digital cash. I meant digital postage. And that's what you're getting.

00:06:06.730 --> 00:06:10.250
<v Sjors Provoost>Yes, digital postage stamps. But it might be interesting, something you also

00:06:10.250 --> 00:06:15.390
<v Sjors Provoost>mentioned in the book. is that there was a worry that if the cypherpunks didn't

00:06:15.390 --> 00:06:19.050
<v Sjors Provoost>fix this problem, then governments would step in and they would start dealing

00:06:19.050 --> 00:06:23.710
<v Sjors Provoost>with spam. And this would be a problem because then you would get...

00:06:23.810 --> 00:06:28.470
<v Sjors Provoost>If governments have to fight spam, then the way they would probably do that is by

00:06:28.470 --> 00:06:34.430
<v Sjors Provoost>de-anonymizing everyone and basically KYC-ing email to the extent of where

00:06:34.430 --> 00:06:35.950
<v Sjors Provoost>if there's a spammer, they know who they are.

00:06:36.370 --> 00:06:40.470
<v Aaron van Wirdum>Yeah, plus the government would then have to make a judgment call about what is

00:06:40.470 --> 00:06:43.650
<v Aaron van Wirdum>spam and what kind of relevant to Bitcoin these days, actually, with the whole

00:06:43.650 --> 00:06:47.930
<v Aaron van Wirdum>ordinal thing. But yeah, then governments have to make a judgment call about what

00:06:47.930 --> 00:06:52.170
<v Aaron van Wirdum>is spam. So what actually is legal. And then by the time they can find a spammer,

00:06:52.250 --> 00:06:54.310
<v Aaron van Wirdum>yeah, there would have to be some sort of identification.

00:06:54.610 --> 00:06:58.110
<v Sjors Provoost>And they would have to ban anonymous email, which is, you know, the kind of thing

00:06:58.110 --> 00:06:58.750
<v Sjors Provoost>they were trying to do.

00:06:59.810 --> 00:07:04.770
<v Aaron van Wirdum>Right. So the cypherpunks didn't like this. And specifically, Adam Back didn't

00:07:04.770 --> 00:07:08.430
<v Aaron van Wirdum>like this. Adam Back was, of course, one of these cypherpunks. I don't think he

00:07:08.430 --> 00:07:13.920
<v Aaron van Wirdum>needs an introduction to anyone who listens to this podcast. So Adam Back wanted

00:07:13.920 --> 00:07:19.040
<v Aaron van Wirdum>to come up with digital postage. Maybe should I...

00:07:19.320 --> 00:07:23.660
<v Sjors Provoost>First, I think we should go back in time, right? Because everybody talks about

00:07:23.660 --> 00:07:27.660
<v Sjors Provoost>Hashcash and how Adam Back invented that, and he did. But it was not the first

00:07:27.660 --> 00:07:30.020
<v Sjors Provoost>time it was invented, as often happens in history.

00:07:30.260 --> 00:07:34.020
<v Aaron van Wirdum>Yeah, I was also considering if I should talk about the other ways they were

00:07:34.020 --> 00:07:39.120
<v Aaron van Wirdum>thinking about digital postage. But I think we should skip that, right? That's

00:07:39.120 --> 00:07:40.200
<v Aaron van Wirdum>what you can find in the book.

00:07:40.600 --> 00:07:41.040
<v Sjors Provoost>Exactly.

00:07:41.360 --> 00:07:45.960
<v Aaron van Wirdum>Okay, so yeah. Okay, so shall I hand it to you here? Because yes. So actually,

00:07:46.200 --> 00:07:51.180
<v Aaron van Wirdum>Adam Back was not the first person to invent digital postage.

00:07:51.980 --> 00:07:56.260
<v Aaron van Wirdum>He did think he was, like he was not aware of the previous proposal, but there

00:07:56.260 --> 00:08:01.240
<v Aaron van Wirdum>was actually another proposal that's a bit older and quite similar to Adam Back's

00:08:01.240 --> 00:08:06.200
<v Aaron van Wirdum>proposal, which was the names from the top of my head.

00:08:06.640 --> 00:08:07.540
<v Sjors Provoost>Dwork and Naor.

00:08:07.900 --> 00:08:10.240
<v Aaron van Wirdum>Yeah, I was thinking of the first name, but yeah, their last names were

00:08:10.240 --> 00:08:14.450
<v Aaron van Wirdum>definitely Dwork and Naor. Moni Naor and Cynthia Dwork I think

00:08:14.450 --> 00:08:19.710
<v Sjors Provoost>yeah and they did not come from it from a cypherpunk background they came from it

00:08:19.710 --> 00:08:25.390
<v Sjors Provoost>with a just hey we are people using email and we don't like spam background right

00:08:25.390 --> 00:08:26.330
<v Sjors Provoost>and so

00:08:26.360 --> 00:08:29.280
<v Aaron van Wirdum>well they were for IBM right they were

00:08:31.120 --> 00:08:36.060
<v Sjors Provoost>Yeah, they weren't random people, but they were not saying, how can we prevent

00:08:36.060 --> 00:08:40.180
<v Sjors Provoost>the government coming into this email world? It's just like, how do we get rid of spam?

00:08:41.420 --> 00:08:46.370
<v Sjors Provoost>And so they invented, essentially they came up with the idea of introducing proof

00:08:46.370 --> 00:08:52.000
<v Sjors Provoost>of work for email, and they came up with three different... work algorithms yeah

00:08:52.000 --> 00:08:55.580
<v Aaron van Wirdum>and to be clear the term proof of work didn't exist yet at this time

00:08:55.580 --> 00:09:00.220
<v Sjors Provoost>I don't know exactly what they call it but something along the lines of like a

00:09:00.220 --> 00:09:06.080
<v Sjors Provoost>challenge or but basically they picked three algorithms and I

00:09:06.080 --> 00:09:12.070
<v Sjors Provoost>think one of them boiled down to finding If you take a number and you want to

00:09:12.070 --> 00:09:16.270
<v Sjors Provoost>figure out which two primes are necessary, can be multiplied to get to the

00:09:16.270 --> 00:09:20.490
<v Sjors Provoost>number. So let's say you pick the number 100 and you say, tell me which two prime

00:09:20.490 --> 00:09:25.690
<v Sjors Provoost>numbers multiply to 100. And you would say, I don't know, because it's 10 times

00:09:25.690 --> 00:09:28.370
<v Sjors Provoost>10. So that's not, those are not prime.

00:09:28.670 --> 00:09:29.570
<v Aaron van Wirdum>Kind of a bad example.

00:09:29.870 --> 00:09:33.090
<v Sjors Provoost>No, it's a fine example, but it shows that as soon as you give me the right

00:09:33.090 --> 00:09:37.710
<v Sjors Provoost>answer, I can very quickly verify that yes, these two numbers multiply. to this

00:09:37.710 --> 00:09:41.290
<v Sjors Provoost>total. Actually, I think you didn't have to find prime numbers. It's just modulo

00:09:41.290 --> 00:09:41.850
<v Sjors Provoost>prime number.

00:09:43.210 --> 00:09:47.930
<v Aaron van Wirdum>I think the way it works is you have two very big prime numbers. These are

00:09:47.930 --> 00:09:53.270
<v Aaron van Wirdum>factored into another big number. And then the big number is,

00:09:53.410 --> 00:09:56.670
<v Aaron van Wirdum>it can only be produced by two specific prime numbers then, right?

00:09:56.810 --> 00:09:58.570
<v Sjors Provoost>I think that's what, that's RSA.

00:09:58.930 --> 00:09:59.410
<v Aaron van Wirdum>Yes.

00:09:59.530 --> 00:10:05.170
<v Sjors Provoost>But not what this concept. I think this was much simpler. This was something

00:10:05.170 --> 00:10:10.230
<v Sjors Provoost>called modulo prime number. So if you take a much smaller number, we know the

00:10:10.230 --> 00:10:15.810
<v Sjors Provoost>number 13 is prime, right? And so you would say, okay, here's the number 10.

00:10:17.410 --> 00:10:22.930
<v Sjors Provoost>Find me two numbers that you can multiply to get the number 10, but you can

00:10:22.930 --> 00:10:28.640
<v Sjors Provoost>multiply and then you do modulo 13. So you can say, this is

00:10:28.640 --> 00:10:33.420
<v Sjors Provoost>not very good in math, but if you do 3 times 4, that's 12, so that's not enough.

00:10:33.600 --> 00:10:38.960
<v Sjors Provoost>If you do 3 times 5, that's 15, modulo 13 is 2, right? So you can do etc. etc.

00:10:39.080 --> 00:10:42.380
<v Sjors Provoost>You keep looking for this number that if you go around in circles around this

00:10:42.380 --> 00:10:44.220
<v Sjors Provoost>prime number gets you the correct result.

00:10:45.280 --> 00:10:49.220
<v Aaron van Wirdum>Okay, we're getting very into the weeds now. Let's get back to the main road. So

00:10:49.220 --> 00:10:50.280
<v Aaron van Wirdum>they had three ideas.

00:10:50.620 --> 00:10:54.500
<v Sjors Provoost>Exactly. So this is one of them. And the key part is that it takes a while to

00:10:54.500 --> 00:10:58.960
<v Sjors Provoost>find these numbers, but it's very quick to check. You just multiply modulo and

00:10:58.960 --> 00:11:04.300
<v Sjors Provoost>you're done. And they had two other algorithms that I don't want to go into also

00:11:04.300 --> 00:11:08.260
<v Sjors Provoost>because I don't know them, but they had an interesting property from them is that

00:11:08.260 --> 00:11:13.460
<v Sjors Provoost>you could build an exception into it. So basically saying, well, if you're the

00:11:13.460 --> 00:11:17.720
<v Sjors Provoost>mailing list operator, then you can use this special key and you can bypass the

00:11:17.720 --> 00:11:22.700
<v Sjors Provoost>work. I don't know whether that would be practical or not, but that's sort of

00:11:22.700 --> 00:11:23.300
<v Sjors Provoost>what they came up with.

00:11:23.780 --> 00:11:24.760
<v Aaron van Wirdum>Right, the backdoor function.

00:11:25.480 --> 00:11:25.600
<v Sjors Provoost>Yeah.

00:11:27.320 --> 00:11:33.020
<v Aaron van Wirdum>The points being here, though, so was Naor and Dwork also, the

00:11:33.020 --> 00:11:37.820
<v Aaron van Wirdum>idea they came up with is that whatever calculation you have to make, you have to

00:11:37.820 --> 00:11:41.100
<v Aaron van Wirdum>make it in combination with some data from the email itself.

00:11:41.560 --> 00:11:45.240
<v Sjors Provoost>Yes, because you can prove that you did a bunch of work, but if that's unrelated

00:11:45.240 --> 00:11:48.580
<v Sjors Provoost>to your email, you would just reuse the same work. So you have to make sure that

00:11:48.580 --> 00:11:54.360
<v Sjors Provoost>the work is always a function of the email itself. And ironically, they

00:11:54.360 --> 00:11:58.120
<v Sjors Provoost>discovered the use of hash functions for that, or they knew that you needed hash

00:11:58.120 --> 00:12:02.280
<v Sjors Provoost>functions for that part. So you take the hash of the email, and then you use the

00:12:02.280 --> 00:12:04.840
<v Sjors Provoost>hash as the starting point of your challenge.

00:12:05.260 --> 00:12:07.500
<v Aaron van Wirdum>Oh, they did use the hash for that part?

00:12:07.680 --> 00:12:07.820
<v Sjors Provoost>Yeah.

00:12:07.940 --> 00:12:09.700
<v Aaron van Wirdum>Oh, I didn't know that. That's interesting.

00:12:11.490 --> 00:12:17.390
<v Aaron van Wirdum>Because we should maybe spell this out for those who haven't realized this. So

00:12:17.390 --> 00:12:22.170
<v Aaron van Wirdum>Naor and Dwork were not using hashes for the proof of work. They were using,

00:12:22.370 --> 00:12:25.090
<v Aaron van Wirdum>what's it called? Is there a better term for what they were?

00:12:25.090 --> 00:12:26.250
<v Sjors Provoost>They were just using math problems.

00:12:26.990 --> 00:12:32.840
<v Aaron van Wirdum>Right. Now the idea was still very similar to, I mean,

00:12:33.000 --> 00:12:35.640
<v Aaron van Wirdum>I think most people that listen sort of know where proof of work came from.

00:12:35.780 --> 00:12:39.180
<v Aaron van Wirdum>That's why we're sort of skipping some parts maybe, but we should actually spell

00:12:39.180 --> 00:12:44.910
<v Aaron van Wirdum>it out. So the idea was, If you attach a little bit of proof of work to an email,

00:12:45.270 --> 00:12:50.390
<v Aaron van Wirdum>then most people that want to send an email, that's not really a problem. That's

00:12:50.390 --> 00:12:55.010
<v Aaron van Wirdum>like a couple of seconds of computing time. However, if you're a spammer that

00:12:55.010 --> 00:12:59.150
<v Aaron van Wirdum>wants to send tens of thousands or maybe even millions of emails, which you

00:12:59.150 --> 00:13:03.150
<v Aaron van Wirdum>usually have to do to be a profitable spammer, then it becomes so expensive that

00:13:03.150 --> 00:13:06.810
<v Aaron van Wirdum>it's not worth it anymore. So that's how it's posted. So it's different in

00:13:06.810 --> 00:13:11.270
<v Aaron van Wirdum>postage in the sense that... You're not buying it from anyone. And also whoever

00:13:11.270 --> 00:13:15.130
<v Aaron van Wirdum>you're sending the email to is not getting the money or anything like that. It's

00:13:15.130 --> 00:13:20.470
<v Aaron van Wirdum>just you're proving that you spend some resources, some energy, and that way it's

00:13:20.470 --> 00:13:23.230
<v Aaron van Wirdum>too expensive for a spammer to be a spammer.

00:13:23.410 --> 00:13:24.090
<v Sjors Provoost>Yes, exactly.

00:13:24.830 --> 00:13:29.490
<v Aaron van Wirdum>Okay, so that's what Naor and Dwork essentially came up with.

00:13:30.770 --> 00:13:32.030
<v Aaron van Wirdum>This was in 1992.

00:13:33.230 --> 00:13:38.250
<v Aaron van Wirdum>But then independently, basically, it was sort of a parallel invention. Not

00:13:38.250 --> 00:13:41.430
<v Aaron van Wirdum>exactly parallel, though. You know, some time difference. But Adam Back was not

00:13:41.430 --> 00:13:45.930
<v Aaron van Wirdum>aware of this solution. So when they were discussing this problem on the

00:13:45.930 --> 00:13:51.190
<v Aaron van Wirdum>Cypherpunks list, they didn't know it was actually kind of a solved problem. But

00:13:51.190 --> 00:13:54.330
<v Aaron van Wirdum>then he reinvented something very similar.

00:13:54.570 --> 00:13:58.970
<v Sjors Provoost>Yes, but then using a hash function. SHA-1 in this case, but that doesn't really matter.

00:14:00.260 --> 00:14:06.150
<v Sjors Provoost>And that's... The thing is, it's not actually better or worse than

00:14:06.150 --> 00:14:08.330
<v Sjors Provoost>the design that was made before.

00:14:08.590 --> 00:14:09.610
<v Aaron van Wirdum>Can you explain how it works?

00:14:10.010 --> 00:14:15.690
<v Sjors Provoost>Okay. So you basically take some aspects of the email, as we said before, and

00:14:15.690 --> 00:14:20.230
<v Sjors Provoost>then you add a nonce to it. A nonce is a number that you pick randomly. It

00:14:20.230 --> 00:14:24.030
<v Sjors Provoost>doesn't matter what it is. But you have to pick it such that the resulting hash

00:14:24.030 --> 00:14:25.970
<v Sjors Provoost>starts with a certain number of zeros.

00:14:26.570 --> 00:14:27.090
<v Aaron van Wirdum>Right.

00:14:27.390 --> 00:14:31.200
<v Sjors Provoost>Notice that in Bitcoin Core, the hash... does not only start with a number,

00:14:31.440 --> 00:14:34.940
<v Sjors Provoost>certain numbers of zeros, but actually has a specific value that it has to stay

00:14:34.940 --> 00:14:36.980
<v Sjors Provoost>under. But it's roughly the same idea.

00:14:37.380 --> 00:14:42.970
<v Aaron van Wirdum>Right. So then, yeah, you would send the email. You include this hash, and then

00:14:42.970 --> 00:14:48.070
<v Aaron van Wirdum>the recipient would check if there's actually a valid hash in it. If not, the

00:14:48.070 --> 00:14:48.910
<v Aaron van Wirdum>email would just bounce.

00:14:49.410 --> 00:14:49.650
<v Sjors Provoost>Exactly.

00:14:49.990 --> 00:14:55.790
<v Aaron van Wirdum>I guess that was the same with Naor and Dwork's system. I didn't spell that out,

00:14:55.970 --> 00:14:56.910
<v Aaron van Wirdum>but same idea, basically.

00:14:57.230 --> 00:15:00.210
<v Sjors Provoost>Yep, they both had the concept of difficulty, essentially, where you can make the

00:15:00.210 --> 00:15:04.690
<v Sjors Provoost>hash more or less difficult, depending on what your perceived spam problem is.

00:15:04.910 --> 00:15:09.080
<v Aaron van Wirdum>Yeah. So anyways, the recipient would then say, or in the... case of the

00:15:09.080 --> 00:15:13.420
<v Aaron van Wirdum>remailers, right, which I mentioned earlier, the remailer would check, does this

00:15:13.420 --> 00:15:18.120
<v Aaron van Wirdum>have a valid hash? If not, just reject it. And if so, it's forwarded to whoever

00:15:18.120 --> 00:15:23.540
<v Aaron van Wirdum>it needs to be forwarded to. So that's basically the idea of Hashcash, right?

00:15:23.800 --> 00:15:28.320
<v Aaron van Wirdum>That we forget about anything? Yeah, so that's Hashcash.

00:15:29.760 --> 00:15:35.640
<v Aaron van Wirdum>I think that you, well, I can tell you that it, in

00:15:35.640 --> 00:15:41.640
<v Aaron van Wirdum>the early days, there was some adoption of it. So, Apache used...

00:15:41.640 --> 00:15:42.880
<v Aaron van Wirdum>Is that how I pronounce it, actually?

00:15:43.020 --> 00:15:44.860
<v Sjors Provoost>I think Apache SpamAssassin.

00:15:45.100 --> 00:15:50.240
<v Aaron van Wirdum>Yeah, they used it in SpamAssassin. And Microsoft recreated something very

00:15:50.240 --> 00:15:53.600
<v Aaron van Wirdum>similar. Like, it was incompatible with, you know, different standards, but

00:15:53.600 --> 00:15:54.860
<v Aaron van Wirdum>basically the same idea again.

00:15:56.160 --> 00:15:58.600
<v Aaron van Wirdum>And then more recently...

00:15:58.600 --> 00:16:02.880
<v Sjors Provoost>And those two are completely unused right now because [unclear] removed it again

00:16:02.880 --> 00:16:07.920
<v Sjors Provoost>and the Microsoft thing doesn't exist anymore. More recently, as you were getting

00:16:07.920 --> 00:16:12.960
<v Sjors Provoost>to, Tor has been using proof of work. So again, it's a completely different

00:16:12.960 --> 00:16:18.180
<v Sjors Provoost>algorithm. But it is an example of proof-of-work being used outside of a

00:16:18.180 --> 00:16:22.660
<v Sjors Provoost>cryptocurrency. So where it's not used to produce value, it's simply to prevent

00:16:22.660 --> 00:16:26.260
<v Sjors Provoost>spam. So this concept is still alive and well.

00:16:27.070 --> 00:16:27.630
<v Aaron van Wirdum>Right.

00:16:27.810 --> 00:16:32.170
<v Sjors Provoost>Now, one interesting aspect I wanted to talk about...

00:16:32.200 --> 00:16:38.020
<v Aaron van Wirdum>This is why we're talking about it in a Bitcoin podcast. Why we're focusing on

00:16:38.020 --> 00:16:42.070
<v Aaron van Wirdum>Hashcash more than the Naor-Dwork concept, right? Is that where you're getting at?

00:16:42.470 --> 00:16:45.930
<v Sjors Provoost>Yeah, well, there's an interesting kind of a historical coincidence, I would

00:16:45.930 --> 00:16:51.150
<v Sjors Provoost>almost say, and this is something you pointed out earlier that I think Adam Back

00:16:51.150 --> 00:16:56.910
<v Sjors Provoost>was aware of, and he pointed it out, which is to say that there are two

00:16:56.910 --> 00:17:01.430
<v Sjors Provoost>kinds of, although multiple kinds of works, proof of work, but in particular, two

00:17:01.430 --> 00:17:05.230
<v Sjors Provoost>different kinds are stochastic and non-stochastic proof of work. And that's a

00:17:05.230 --> 00:17:10.840
<v Sjors Provoost>distinction I hadn't really thought about. But the idea here is that with

00:17:10.840 --> 00:17:16.500
<v Sjors Provoost>a hash function, you may or may not get the right result, and statistically it

00:17:16.500 --> 00:17:20.300
<v Sjors Provoost>will take a certain amount of time before you find a solution, but it's random.

00:17:20.560 --> 00:17:24.460
<v Sjors Provoost>So sometimes you find the right solution instantly, other times it takes a very

00:17:24.460 --> 00:17:28.940
<v Sjors Provoost>long time. Whereas with these earlier algorithms...

00:17:31.580 --> 00:17:36.460
<v Sjors Provoost>there's sort of a guaranteed time of how long it takes to find the square root,

00:17:36.600 --> 00:17:40.320
<v Sjors Provoost>for example, of two numbers. So I suppose you could maybe make it random, but

00:17:40.390 --> 00:17:44.390
<v Sjors Provoost>assuming you use a standard algorithm, it'll take a fixed amount of time to find

00:17:44.390 --> 00:17:46.470
<v Sjors Provoost>a solution. And you might think...

00:17:46.470 --> 00:17:49.670
<v Aaron van Wirdum>Yeah, let me give an analogy that I've used, not in the book, actually, I think,

00:17:49.770 --> 00:17:53.770
<v Aaron van Wirdum>but in an article I wrote earlier. It's kind of the difference between, let's say

00:17:53.770 --> 00:17:59.690
<v Aaron van Wirdum>there's 100 lottery tickets. And one person buys 40 tickets and

00:17:59.690 --> 00:18:05.370
<v Aaron van Wirdum>another buys 60. So now the person that has 60 has more chance to win, 60%. But

00:18:05.370 --> 00:18:11.270
<v Aaron van Wirdum>the person that bought 40 still has 40% to win as well. While if you take

00:18:11.270 --> 00:18:17.110
<v Aaron van Wirdum>two cyclists and one of them can ride his bike 60 miles

00:18:17.110 --> 00:18:22.410
<v Aaron van Wirdum>an hour and the other 40 miles. then anytime they do a race, the one that can

00:18:22.410 --> 00:18:24.950
<v Aaron van Wirdum>cycle 60 miles an hour will just win, like every time.

00:18:25.270 --> 00:18:25.510
<v Sjors Provoost>Exactly.

00:18:27.340 --> 00:18:32.680
<v Aaron van Wirdum>Every time the same cyclist will win, there's no 40% chance that a 40 mile per

00:18:32.680 --> 00:18:34.840
<v Aaron van Wirdum>hour cyclist will ever win. It's just not going to happen.

00:18:35.100 --> 00:18:38.620
<v Sjors Provoost>And so if you translate that to the context of Bitcoin mining as it is today,

00:18:38.820 --> 00:18:41.560
<v Sjors Provoost>let's say we had picked a non-stochastic form of proof of work.

00:18:43.160 --> 00:18:47.060
<v Sjors Provoost>based on that original paper. So basically, if Adam Back had known about the

00:18:47.060 --> 00:18:50.040
<v Sjors Provoost>original paper and had not bothered to implement something based on a hash

00:18:50.040 --> 00:18:55.140
<v Sjors Provoost>function, because, you know, there's already a solution out there, then you would

00:18:55.140 --> 00:18:59.680
<v Sjors Provoost>have the biggest miner, whoever that is, will just always find the next block

00:18:59.680 --> 00:19:02.500
<v Sjors Provoost>first, because they would always find that big prime number or whatever the

00:19:02.500 --> 00:19:04.340
<v Sjors Provoost>challenge is. They would always find it first.

00:19:04.560 --> 00:19:08.720
<v Aaron van Wirdum>Right. It will be like that 60 mile cyclist rather than like currently Bitcoin

00:19:08.720 --> 00:19:13.160
<v Aaron van Wirdum>mining kind of works like this lottery. But if the biggest miner just always

00:19:13.160 --> 00:19:16.220
<v Aaron van Wirdum>wins, then you can't have Bitcoin like we have it today.

00:19:16.380 --> 00:19:19.220
<v Sjors Provoost>And of course, we still have some centralization problems in that sense, but this

00:19:19.220 --> 00:19:23.720
<v Sjors Provoost>would be centralization on steroids if we did not have hash-based proof of work.

00:19:23.820 --> 00:19:27.200
<v Aaron van Wirdum>Yeah, basically Bitcoin wouldn't work, like not as it's designed today.

00:19:27.460 --> 00:19:30.640
<v Sjors Provoost>Yeah, or maybe we would have figured it out and then changed it, but definitely

00:19:30.640 --> 00:19:31.900
<v Sjors Provoost>would have been not optimal.

00:19:32.360 --> 00:19:37.720
<v Aaron van Wirdum>Yeah, so essentially what you alluded to, like we may have been quite lucky in

00:19:37.720 --> 00:19:42.500
<v Aaron van Wirdum>that sense that Adam Back... wasn't aware of the prior proposal, so he invented

00:19:42.500 --> 00:19:44.840
<v Aaron van Wirdum>it in a way that's actually useful for Bitcoin.

00:19:45.180 --> 00:19:48.880
<v Sjors Provoost>Exactly, but it's not something he was aware of at the time. Or at least, he

00:19:48.880 --> 00:19:49.700
<v Sjors Provoost>didn't put it in the paper.

00:19:50.790 --> 00:19:55.470
<v Aaron van Wirdum>As far as I know, and I've discussed it with him, so either my memory is failing

00:19:55.470 --> 00:20:00.490
<v Aaron van Wirdum>me, but I'm pretty sure he only realized that after Bitcoin himself. He only

00:20:00.490 --> 00:20:03.970
<v Aaron van Wirdum>figured that out, so that actually Hashcash specifically only works for Bitcoin.

00:20:04.390 --> 00:20:09.580
<v Aaron van Wirdum>Yeah, no, that was not some sort of pre-planned thing for... Mr. Back.

00:20:09.880 --> 00:20:15.140
<v Sjors Provoost>Yeah. Now, before we get to the next topic, which is bit gold, we should talk

00:20:15.140 --> 00:20:20.640
<v Sjors Provoost>about something that the author of bit gold observed about proof of work. That's

00:20:20.640 --> 00:20:23.260
<v Sjors Provoost>kind of the direction, kind of the bridge I wanted to make.

00:20:23.440 --> 00:20:25.980
<v Aaron van Wirdum>Yeah, well, that is also the bridge I make in my book Sjors.

00:20:26.580 --> 00:20:26.980
<v Sjors Provoost>Excellent.

00:20:27.240 --> 00:20:27.520
<v Aaron van Wirdum>Yes.

00:20:28.090 --> 00:20:29.370
<v Sjors Provoost>It's almost like I read it.

00:20:29.510 --> 00:20:33.510
<v Aaron van Wirdum>I mean, I think, at least if we're thinking about the same thing. So yeah, you

00:20:33.510 --> 00:20:38.110
<v Aaron van Wirdum>mean, so Hashcash or proof of work essentially for the first time brought

00:20:38.110 --> 00:20:43.400
<v Aaron van Wirdum>something akin to digital scarcity, created something. introduce something akin

00:20:43.400 --> 00:20:49.020
<v Aaron van Wirdum>to digital scarcity because there is an actual cost a physical cost

00:20:49.020 --> 00:20:54.800
<v Aaron van Wirdum>energy in the real world required to produce it yeah so rather than just

00:20:54.800 --> 00:20:59.920
<v Aaron van Wirdum>copying numbers you have to actually invest something real resources and that

00:20:59.920 --> 00:21:04.650
<v Aaron van Wirdum>sort of creates something that you could see as digital scarcity, right? That's

00:21:04.650 --> 00:21:05.270
<v Aaron van Wirdum>what you're getting at.

00:21:05.350 --> 00:21:09.250
<v Sjors Provoost>That's not where I was getting it, though it is true. What I'm getting at is that

00:21:09.250 --> 00:21:14.790
<v Sjors Provoost>the question is how do you define proof of work or how do you measure it? How is

00:21:14.790 --> 00:21:16.570
<v Sjors Provoost>it different from other cryptography?

00:21:17.870 --> 00:21:22.710
<v Aaron van Wirdum>This is not a bridge I make in my book, Sjors. Unless I'm completely confused

00:21:22.710 --> 00:21:23.170
<v Aaron van Wirdum>where you're going.

00:21:23.230 --> 00:21:28.730
<v Sjors Provoost>It is a new bridge, but basically Nick Szabo wrote an article about something he

00:21:28.730 --> 00:21:31.070
<v Sjors Provoost>calls, now I lost a term, that's not smart,

00:21:33.450 --> 00:21:35.510
<v Aaron van Wirdum>Oh, you mean secure benchmark functions?

00:21:35.730 --> 00:21:41.130
<v Sjors Provoost>Yes, secure benchmark functions. So here's the thing. We know that

00:21:41.130 --> 00:21:45.230
<v Sjors Provoost>with normal public key cryptography, for example, and with hash functions like

00:21:45.230 --> 00:21:50.850
<v Sjors Provoost>SHA-256, we know that it's easy to verify and easy is then defined as like just

00:21:50.850 --> 00:21:56.160
<v Sjors Provoost>takes like a very short time on a typical computer. And impossible or like, you

00:21:56.160 --> 00:22:01.840
<v Sjors Provoost>know, would take forever effectively to hack it, to coincidentally

00:22:01.840 --> 00:22:05.800
<v Sjors Provoost>go back from the hash to the original, from the public key to the private key,

00:22:06.060 --> 00:22:10.870
<v Sjors Provoost>which is then called hard. But with proof of work, you're doing something that's

00:22:10.870 --> 00:22:16.850
<v Sjors Provoost>a little bit in between. It is definitely not easy to go back to find a certain

00:22:16.850 --> 00:22:21.350
<v Sjors Provoost>number of zeros, for example, in the proof of work, in the hash. But it's also

00:22:21.350 --> 00:22:24.830
<v Sjors Provoost>not hard in the sense that it will not take forever. In fact, you don't want it

00:22:24.830 --> 00:22:28.530
<v Sjors Provoost>to take forever because then you cannot, you know, make the proof of work on your

00:22:28.530 --> 00:22:31.940
<v Sjors Provoost>email if it would take forever to make the proof of work. So then the question

00:22:31.940 --> 00:22:37.620
<v Sjors Provoost>is, how do you sort of define that? How hard is hard enough, right?

00:22:37.980 --> 00:22:41.320
<v Sjors Provoost>It should not be too easy, it should not be too hard. And Nick Szabo wrote this

00:22:41.320 --> 00:22:46.400
<v Sjors Provoost>paper, well, this article about it, basically, the coining a term secure

00:22:46.400 --> 00:22:52.070
<v Sjors Provoost>benchmark function. Now, if you look at the 1992 paper about proof-of-work, they

00:22:52.070 --> 00:22:56.490
<v Sjors Provoost>were also informally defining it as something that's not too easy, not too hard,

00:22:57.090 --> 00:23:00.950
<v Sjors Provoost>somewhere in between. So Szabo put it in slightly more mathy terms.

00:23:02.330 --> 00:23:08.130
<v Sjors Provoost>And the analogy we could get into, I guess, is the one-way function, or what it's

00:23:08.130 --> 00:23:12.070
<v Sjors Provoost>comparing it with. So we talked about one-way functions in an earlier episode,

00:23:12.070 --> 00:23:15.990
<v Sjors Provoost>where you actually were correct, and I was wrong. So.

00:23:16.210 --> 00:23:17.170
<v Aaron van Wirdum>I remember that.

00:23:17.430 --> 00:23:20.190
<v Sjors Provoost>Good. Keep enjoying that feeling.

00:23:20.370 --> 00:23:23.990
<v Aaron van Wirdum>Yes. I think everyone heard that, right? Can you repeat it one more time?

00:23:25.320 --> 00:23:29.660
<v Sjors Provoost>So let's just try and explain it correctly because I don't even remember exactly

00:23:29.660 --> 00:23:30.240
<v Sjors Provoost>what I was saying.

00:23:30.420 --> 00:23:30.740
<v Aaron van Wirdum>Go on.

00:23:31.480 --> 00:23:36.990
<v Sjors Provoost>A one-way function is a function that is

00:23:37.400 --> 00:23:43.220
<v Sjors Provoost>very easy to go in one way. Like checking that a

00:23:43.220 --> 00:23:48.200
<v Sjors Provoost>hash is correct. but very hard to go the other way. which is like trying to

00:23:48.200 --> 00:23:52.060
<v Sjors Provoost>produce a fake hash, a fake original, basically.

00:23:53.540 --> 00:23:59.520
<v Sjors Provoost>And there are a bunch of one-way functions out there. One is

00:23:59.520 --> 00:24:04.310
<v Sjors Provoost>finding the factors in a big number, or these prime factors, as you mentioned,

00:24:04.390 --> 00:24:08.580
<v Sjors Provoost>with RSA. Another is a discrete logarithm problem, or that's sort of a more

00:24:08.580 --> 00:24:13.670
<v Sjors Provoost>generic one, but that is used for public and private key cryptography, like the

00:24:13.670 --> 00:24:18.780
<v Sjors Provoost>elliptic curve. And then there's cryptographic hash functions, like SHA-256,

00:24:18.920 --> 00:24:24.300
<v Sjors Provoost>which so far has not been broken. The problem is there is no mathematical proof

00:24:24.300 --> 00:24:29.700
<v Sjors Provoost>that this actually exists. So we think these functions are one way, and

00:24:29.700 --> 00:24:34.740
<v Sjors Provoost>they better be one way, but it may turn out that some mathematician somewhere

00:24:34.740 --> 00:24:39.310
<v Sjors Provoost>proves that they're not. And then you get into the whole P is NP stuff that we're

00:24:39.310 --> 00:24:39.990
<v Sjors Provoost>not going to get into.

00:24:41.410 --> 00:24:45.730
<v Sjors Provoost>Now, there is a special kind of one-way function called the trapdoor one-way

00:24:45.730 --> 00:24:51.310
<v Sjors Provoost>function. That is public key, private key cryptography, where it is very hard to

00:24:51.310 --> 00:24:56.470
<v Sjors Provoost>go back. It is very hard to go from a public key to a private key. In fact, take

00:24:56.470 --> 00:25:02.070
<v Sjors Provoost>the age of the universe, unless you know the private key. Then it's trivial.

00:25:02.830 --> 00:25:03.290
<v Aaron van Wirdum>Yes.

00:25:04.340 --> 00:25:08.000
<v Sjors Provoost>I think I said it wrong. It's very hard to fake a signature, for example, but if

00:25:08.000 --> 00:25:11.040
<v Sjors Provoost>you know the private key, then it's trivial to make the signature. And that is

00:25:11.040 --> 00:25:14.600
<v Sjors Provoost>the trapdoor, the secret passageway through which you can do things. So that was

00:25:14.600 --> 00:25:16.620
<v Sjors Provoost>the distinction we wanted to make back then.

00:25:17.770 --> 00:25:21.450
<v Aaron van Wirdum>There actually is. There's a chapter about this in my book as well.

00:25:21.910 --> 00:25:27.440
<v Sjors Provoost>Yeah, so then the secure benchmark function has to be less

00:25:27.440 --> 00:25:31.930
<v Sjors Provoost>strenuous. It can't be a one-way function, because then... you'll never go back.

00:25:32.310 --> 00:25:36.470
<v Sjors Provoost>So if you go to the Wikipedia article about one-way functions, it defines this

00:25:36.470 --> 00:25:41.930
<v Sjors Provoost>little thing like, okay, for any blah-blah-blah function that you try

00:25:41.930 --> 00:25:43.610
<v Sjors Provoost>100,000 times or whatever,

00:25:44.910 --> 00:25:48.010
<v Sjors Provoost>statistically you should almost never find the correct answer. That's sort of how

00:25:48.010 --> 00:25:52.870
<v Sjors Provoost>they defined it. And then Szabo basically writes a similar formula, but then

00:25:52.870 --> 00:25:57.130
<v Sjors Provoost>explaining what this secure benchmark function should look like.

00:25:59.380 --> 00:26:01.920
<v Aaron van Wirdum>Sure, so are we still just making a bridge?

00:26:02.200 --> 00:26:02.880
<v Sjors Provoost>Yes, we are.

00:26:02.940 --> 00:26:04.700
<v Aaron van Wirdum>This is a big bridge you're building here.

00:26:04.900 --> 00:26:09.580
<v Sjors Provoost>I'm almost done with the bridge. One thing that is interesting there is that when

00:26:09.580 --> 00:26:12.500
<v Sjors Provoost>it comes to these one-way functions, it doesn't matter what hardware you have.

00:26:12.600 --> 00:26:15.520
<v Sjors Provoost>They just seem like you can have the whole universe and you still cannot crack

00:26:15.520 --> 00:26:19.460
<v Sjors Provoost>it. You can have a Dyson [unclear] and you can't crack it. But in the secure

00:26:19.460 --> 00:26:23.120
<v Sjors Provoost>benchmark function, the device that you use, the machine that you do things on,

00:26:23.260 --> 00:26:26.940
<v Sjors Provoost>actually matters in the math. You cannot just... abstract away the machine you

00:26:26.940 --> 00:26:31.000
<v Sjors Provoost>have to say okay what is a realistic computer because and then you get back to

00:26:31.000 --> 00:26:36.160
<v Sjors Provoost>the spam problem if a spammer has an ASIC a modern day ASIC and let's say the

00:26:36.160 --> 00:26:41.520
<v Sjors Provoost>algorithm was SHA-256 instead of SHA-1 well then you as a consumer trying to send

00:26:41.520 --> 00:26:45.840
<v Sjors Provoost>an email would have to burn your phone to the ground in order to just send an

00:26:45.840 --> 00:26:51.000
<v Sjors Provoost>email but that guy with the ASIC can just spam a million people because per watt

00:26:51.000 --> 00:26:54.910
<v Sjors Provoost>of electricity that you're putting into that ASIC You can just produce enormous

00:26:54.910 --> 00:26:58.750
<v Sjors Provoost>amounts of spam, whereas your phone is less efficient, so it would just get too

00:26:58.750 --> 00:27:03.050
<v Sjors Provoost>hot. And so that's why it's very hard to find functions that are hard enough,

00:27:03.310 --> 00:27:07.070
<v Sjors Provoost>like that are easy enough for a phone, hard enough for an ASIC. And he kind of

00:27:07.070 --> 00:27:10.050
<v Sjors Provoost>anticipated that problem in that very short paper.

00:27:11.840 --> 00:27:17.400
<v Aaron van Wirdum>That was Sjors building the Brooklyn Bridge over here. Beautiful in its own right.

00:27:17.620 --> 00:27:22.940
<v Sjors Provoost>Exactly. And that's why he needed, for his bit gold proposal, he says like, yeah,

00:27:23.200 --> 00:27:26.400
<v Sjors Provoost>make sure you, you know, whatever you do, because he didn't actually build the

00:27:26.400 --> 00:27:31.680
<v Sjors Provoost>project, make sure it's one of those secure benchmark functions.

00:27:32.060 --> 00:27:33.680
<v Aaron van Wirdum>Yes. Okay.

00:27:35.020 --> 00:27:40.350
<v Aaron van Wirdum>Yeah. In my book, I sort of muffle this way in a footnote and I just call it

00:27:40.350 --> 00:27:46.210
<v Aaron van Wirdum>hashes because kind of what we're talking about anyways right? okay okay

00:27:47.070 --> 00:27:52.150
<v Aaron van Wirdum>let's sure let's talk about bit gold um you want me to I

00:27:53.400 --> 00:27:58.340
<v Aaron van Wirdum>don't know if there's much uh specifically to introduce unless I you know I can

00:27:58.340 --> 00:28:01.420
<v Aaron van Wirdum>tell the whole story about how the cypherpunks want to create digital cash and

00:28:01.420 --> 00:28:04.180
<v Aaron van Wirdum>Nick Szabo was one of them but let's at some point

00:28:04.180 --> 00:28:07.000
<v Sjors Provoost>We know that? I think it might be interesting to mention the I think it was like

00:28:07.000 --> 00:28:12.300
<v Sjors Provoost>seven points that he describes that this system should do

00:28:12.300 --> 00:28:13.600
<v Aaron van Wirdum>Well, that was Adam Back.

00:28:14.730 --> 00:28:19.910
<v Sjors Provoost>Oh, I thought the bit gold paper also lists like seven properties of the system, basically.

00:28:20.230 --> 00:28:21.870
<v Aaron van Wirdum>Oh, in the bit gold paper?

00:28:22.110 --> 00:28:23.130
<v Sjors Provoost>Yeah, or at least...

00:28:23.130 --> 00:28:24.570
<v Aaron van Wirdum>Well, it's been a while since I read that.

00:28:24.570 --> 00:28:27.050
<v Sjors Provoost>Well, maybe you just describe it in general terms.

00:28:27.970 --> 00:28:31.230
<v Aaron van Wirdum>bit gold itself? Mm-hmm. Okay, so we're getting more to the technical side then.

00:28:32.040 --> 00:28:35.060
<v Sjors Provoost>Yes, what the architecture of the system is and how it should work.

00:28:35.220 --> 00:28:39.220
<v Aaron van Wirdum>Okay, yeah, I can do that. Okay, so basically Nick Szabo wanted to create digital

00:28:39.220 --> 00:28:44.020
<v Aaron van Wirdum>cash, right? Hashcash was introduced, so now there was something akin to digital

00:28:44.020 --> 00:28:49.560
<v Aaron van Wirdum>scarcity. Now, it wasn't real digital scarcity, obviously, or at least um it was

00:28:49.560 --> 00:28:54.070
<v Aaron van Wirdum>at least not limited because over time it becomes easier and easier to create

00:28:54.070 --> 00:28:58.970
<v Aaron van Wirdum>valid hashes. So there were a number of problems with Hashcash why you couldn't

00:28:58.970 --> 00:29:02.850
<v Aaron van Wirdum>use it as money. Also, of course, you can't pay someone with Hashcash. It's like

00:29:02.850 --> 00:29:03.630
<v Aaron van Wirdum>a one-time use.

00:29:03.830 --> 00:29:06.390
<v Sjors Provoost>Yeah, so what you're describing is the inflation problem, right?

00:29:06.610 --> 00:29:10.550
<v Aaron van Wirdum>Well, that's the one problem and also you can't transfer it to anyone. Like you

00:29:10.550 --> 00:29:11.710
<v Aaron van Wirdum>can't re-spend Hashcash.

00:29:11.990 --> 00:29:12.250
<v Sjors Provoost>Yeah.

00:29:12.610 --> 00:29:17.310
<v Aaron van Wirdum>Right? So it wasn't really digital money yet. It was digital postage,

00:29:17.490 --> 00:29:22.820
<v Aaron van Wirdum>essentially. But it did introduce something akin to the digital scarcity. And

00:29:22.820 --> 00:29:27.940
<v Aaron van Wirdum>this idea inspired, for example, Nick Szabo to propose their own

00:29:28.160 --> 00:29:33.940
<v Aaron van Wirdum>digital currency schemes. Now, bit gold was never implemented. It was only ever a

00:29:33.940 --> 00:29:39.820
<v Aaron van Wirdum>proposal. But it's still interesting. So the way it works is you start with

00:29:39.820 --> 00:29:45.040
<v Aaron van Wirdum>a candidate string. The candidate string can be anything, I guess.

00:29:45.540 --> 00:29:50.990
<v Aaron van Wirdum>It doesn't really matter. But let's just say a random string of numbers. And

00:29:51.690 --> 00:29:55.530
<v Aaron van Wirdum>then you with the proof of work or a secure benchmark function as you just

00:29:55.530 --> 00:29:59.610
<v Aaron van Wirdum>explained, that's how Nick Szabo called it in his paper I believe.

00:30:01.490 --> 00:30:04.010
<v Aaron van Wirdum>at least in one of his posts, he very specifically called it.

00:30:04.010 --> 00:30:07.590
<v Sjors Provoost>Yeah, I think in the posts I read, he just used all of the terms, but then made

00:30:07.590 --> 00:30:10.590
<v Sjors Provoost>this benchmark like a more specific definition.

00:30:10.790 --> 00:30:11.990
<v Aaron van Wirdum>Right, exactly.

00:30:12.230 --> 00:30:14.170
<v Sjors Provoost>But we can just call it proof of work because that's what it is.

00:30:14.310 --> 00:30:18.770
<v Aaron van Wirdum>Yeah, let's call it proof of work. So you use proof of work. So there's a

00:30:18.770 --> 00:30:23.530
<v Aaron van Wirdum>candidate string. Anyone can use proof of work to create a new

00:30:23.530 --> 00:30:28.890
<v Aaron van Wirdum>valid hash, essentially. Now, the person who creates this valid hash

00:30:28.890 --> 00:30:30.890
<v Aaron van Wirdum>becomes the owner of this hash.

00:30:31.780 --> 00:30:33.600
<v Sjors Provoost>So whoever creates it first, then?

00:30:33.960 --> 00:30:37.820
<v Aaron van Wirdum>Whoever creates it first, yeah. I don't think it was specifically defined or

00:30:37.820 --> 00:30:43.280
<v Aaron van Wirdum>specified how this initial ownership would work. But the obvious solution is you

00:30:43.280 --> 00:30:46.960
<v Aaron van Wirdum>hash your public key with it. And that would just be an easy way to do it, right?

00:30:47.820 --> 00:30:52.420
<v Aaron van Wirdum>Anyway, so whoever creates a valid hash using proof of work on the candidate

00:30:52.420 --> 00:30:58.350
<v Aaron van Wirdum>string gets to own that string. And then the valid hash becomes the new candidate

00:30:58.350 --> 00:31:02.090
<v Aaron van Wirdum>string. So now everyone can start hashing that to find the next candidate string,

00:31:02.330 --> 00:31:07.070
<v Aaron van Wirdum>which then, to find the next valid hash, which then becomes the next candidate

00:31:07.070 --> 00:31:12.810
<v Aaron van Wirdum>string. Okay, so that's how you own these strings, essentially. Transferring

00:31:12.810 --> 00:31:18.790
<v Aaron van Wirdum>strings is much like Bitcoin. You sign a message saying, this string now

00:31:18.790 --> 00:31:23.130
<v Aaron van Wirdum>belongs to this public key. And if that message is cryptographically signed with

00:31:23.130 --> 00:31:28.270
<v Aaron van Wirdum>the corresponding private key of whoever was owning it, whatever public key was

00:31:28.270 --> 00:31:29.930
<v Aaron van Wirdum>owning it, then the transfer is valid.

00:31:31.500 --> 00:31:37.290
<v Aaron van Wirdum>The challenge was who gets to keep track

00:31:37.290 --> 00:31:42.850
<v Aaron van Wirdum>of who owns what. Or perhaps more specifically, how do you prevent double

00:31:42.850 --> 00:31:48.740
<v Aaron van Wirdum>spending? Right? One person could sign one transaction or several

00:31:48.740 --> 00:31:50.240
<v Aaron van Wirdum>transactions go to several people.

00:31:50.440 --> 00:31:54.920
<v Sjors Provoost>And how can you prevent afterwards multiple people saying that they found it

00:31:54.920 --> 00:31:57.640
<v Sjors Provoost>first? Right, if the new thing was discovered.

00:31:58.680 --> 00:32:03.740
<v Aaron van Wirdum>Yes, right. Yes, that's true. So there needs to be, you know, consensus on who

00:32:03.740 --> 00:32:08.680
<v Aaron van Wirdum>owns what. Also smaller, well, other problems are, for example, censorship.

00:32:09.360 --> 00:32:13.880
<v Aaron van Wirdum>Anyways, so double spending, let's just say, is the main problem. And Nick Szabo

00:32:13.880 --> 00:32:19.000
<v Aaron van Wirdum>envisioned like an ownership registry. So there would be a bunch of internet

00:32:19.000 --> 00:32:24.990
<v Aaron van Wirdum>servers and they would essentially vote on... whether or

00:32:24.990 --> 00:32:28.710
<v Aaron van Wirdum>not the transaction is valid or which transaction out of conflicting transaction

00:32:28.710 --> 00:32:29.370
<v Aaron van Wirdum>is valid.

00:32:31.160 --> 00:32:35.300
<v Sjors Provoost>Yeah, so the key part there is at least it's not a central party that's doing it.

00:32:35.420 --> 00:32:35.540
<v Aaron van Wirdum>Right.

00:32:35.820 --> 00:32:39.640
<v Sjors Provoost>But it's somehow decentralized. Multiple people are tracking it. Everybody can

00:32:39.640 --> 00:32:44.540
<v Sjors Provoost>sort of check that it's at least, you know, maybe a bit honest. I mean, there's

00:32:44.540 --> 00:32:47.000
<v Sjors Provoost>certain things you can check because signatures are signatures. You can't forge

00:32:47.000 --> 00:32:52.250
<v Sjors Provoost>them. But if all these public parties keeping records either disagree, it's hard

00:32:52.250 --> 00:32:55.410
<v Sjors Provoost>to decide which is right. You can't just count them, for example.

00:32:56.600 --> 00:33:00.600
<v Aaron van Wirdum>Yeah, well, the first thing you mentioned is kind of interesting about the

00:33:00.600 --> 00:33:06.510
<v Aaron van Wirdum>signatures. So if... Okay, wait. So the problem is essentially that

00:33:06.510 --> 00:33:12.430
<v Aaron van Wirdum>this registry, these servers, they can be corrupted in different ways.

00:33:12.570 --> 00:33:17.050
<v Aaron van Wirdum>So, for example, it wasn't Sybil-resistant, or at least Nick Szabo hadn't come up

00:33:17.050 --> 00:33:22.350
<v Aaron van Wirdum>with a robust way to make it Sybil-resistant. In other words, one guy could

00:33:22.350 --> 00:33:26.970
<v Aaron van Wirdum>join with 10,000 different servers and just outvote everyone else and

00:33:26.970 --> 00:33:30.890
<v Aaron van Wirdum>double-spend everyone. Like, there was no robust way of stopping that.

00:33:31.070 --> 00:33:32.910
<v Sjors Provoost>Yeah, it's basically all the proof-of-stake problems.

00:33:35.050 --> 00:33:39.250
<v Aaron van Wirdum>It's similar. Yeah, it didn't use proof of stake itself, but yeah, there was

00:33:39.250 --> 00:33:41.570
<v Aaron van Wirdum>nothing at stake in that sense. That's for sure.

00:33:43.830 --> 00:33:49.830
<v Aaron van Wirdum>Now, Nick Szabo at that time thought a potential sort of mitigation

00:33:49.830 --> 00:33:55.750
<v Aaron van Wirdum>against this is that users themselves can sort of keep an eye of what's

00:33:55.750 --> 00:34:01.300
<v Aaron van Wirdum>going on. And then if there's, let's say there's, let's say the Sybil attack

00:34:01.300 --> 00:34:04.990
<v Aaron van Wirdum>happens. And then the honest servers, the honest

00:34:05.250 --> 00:34:11.130
<v Aaron van Wirdum>nodes in this registry system, they can split off. They can

00:34:11.130 --> 00:34:14.510
<v Aaron van Wirdum>say, no, that's actually someone's trying to cheat. We're just going to start our

00:34:14.510 --> 00:34:20.150
<v Aaron van Wirdum>own registry. And then users who are paying attention can sort of see, yep, this

00:34:20.150 --> 00:34:25.310
<v Aaron van Wirdum>registry is honest and this registry is not. And that was supposed to sort of

00:34:25.310 --> 00:34:30.470
<v Aaron van Wirdum>solve that problem, but it doesn't really. Like, for example, if you're offline

00:34:30.470 --> 00:34:34.810
<v Aaron van Wirdum>and you come online, You weren't paying attention, so to say. You're a new user

00:34:34.810 --> 00:34:38.710
<v Aaron van Wirdum>or something like that. You were just offline. You were on holiday. Who knows?

00:34:39.090 --> 00:34:43.090
<v Aaron van Wirdum>And all of a sudden, there's two registries. There's no way to know which one was

00:34:43.090 --> 00:34:44.210
<v Aaron van Wirdum>cheating and which one was not.

00:34:44.430 --> 00:34:47.110
<v Sjors Provoost>Exactly. Sounds like you need to be online all the time and you need to download

00:34:47.110 --> 00:34:51.610
<v Sjors Provoost>all the transactions. And then you can sort of... It's like running your own

00:34:51.610 --> 00:34:55.830
<v Sjors Provoost>Bitcoin node, although there wasn't an actual blockchain at the time. Well, there

00:34:55.830 --> 00:34:56.930
<v Sjors Provoost>may have been, sort of.

00:35:00.910 --> 00:35:05.590
<v Aaron van Wirdum>Yeah, wait. The way you're phrasing it now sounds like it would have been a

00:35:05.590 --> 00:35:06.230
<v Aaron van Wirdum>solved problem.

00:35:06.330 --> 00:35:10.050
<v Sjors Provoost>No, you would. If you were to implement this system, then it sounds like

00:35:10.050 --> 00:35:14.030
<v Sjors Provoost>everybody should just be verifying everything so that there is no third party.

00:35:14.430 --> 00:35:19.690
<v Aaron van Wirdum>Well, so that's what we're getting later. But bit gold did not have this idea yet

00:35:19.690 --> 00:35:20.510
<v Aaron van Wirdum>in any case.

00:35:20.830 --> 00:35:24.390
<v Sjors Provoost>No, no. The idea would be that there would be multiple servers doing this job,

00:35:24.610 --> 00:35:29.410
<v Sjors Provoost>basically. But in order to check the servers, the only logical conclusion to me

00:35:29.410 --> 00:35:31.290
<v Sjors Provoost>would be that everybody has to check everything.

00:35:32.780 --> 00:35:33.980
<v Aaron van Wirdum>But you're very smart.

00:35:34.240 --> 00:35:36.280
<v Sjors Provoost>Well, and I have the benefit of hindsight.

00:35:36.700 --> 00:35:41.950
<v Aaron van Wirdum>Maybe mostly that. Or both. Well, actually, so there is

00:35:41.950 --> 00:35:47.250
<v Aaron van Wirdum>a fairly recent sort of analogy we could draw from this sort of

00:35:47.250 --> 00:35:52.590
<v Aaron van Wirdum>non-solution, you could say, which would, for example, be Ethereum Classic

00:35:52.590 --> 00:35:58.440
<v Aaron van Wirdum>and Ethereum, right? At some point, a... valid

00:35:58.440 --> 00:36:04.180
<v Aaron van Wirdum>transfer happened on Ethereum and then that money was stolen back and then the

00:36:04.180 --> 00:36:09.180
<v Aaron van Wirdum>people that stole it back said now we're the real Ethereum and at that point

00:36:09.180 --> 00:36:13.180
<v Aaron van Wirdum>there were two Ethereums and the actual Ethereum was forced to change its name

00:36:13.340 --> 00:36:18.320
<v Aaron van Wirdum>while the Ethereum where the theft happened went on and that's what people today

00:36:18.320 --> 00:36:18.980
<v Aaron van Wirdum>call Ethereum.

00:36:20.010 --> 00:36:25.090
<v Sjors Provoost>I mean that's one perspective and the other is that the people who call things

00:36:25.090 --> 00:36:26.110
<v Sjors Provoost>Ethereum apparently

00:36:27.770 --> 00:36:30.610
<v Sjors Provoost>you know, do not primarily follow what the software says.

00:36:30.750 --> 00:36:33.770
<v Aaron van Wirdum>That's kind of the point. So you can debate about this and there's no clear

00:36:33.770 --> 00:36:38.030
<v Aaron van Wirdum>solution. I mean, I still think what I said is correct. Like, I really mean that.

00:36:38.450 --> 00:36:44.040
<v Aaron van Wirdum>But that's sort of, besides the point, the point is you're now expecting users

00:36:44.040 --> 00:36:47.020
<v Aaron van Wirdum>to keep an eye on everything. So it wasn't really a good solution.

00:36:48.460 --> 00:36:53.680
<v Aaron van Wirdum>However, it was, of course, very innovative. It had a very innovative idea of how

00:36:53.680 --> 00:36:57.160
<v Aaron van Wirdum>you could sort of, you know, it was a big step into thinking about creating

00:36:57.160 --> 00:36:57.800
<v Aaron van Wirdum>digital cash,

00:36:59.100 --> 00:37:02.900
<v Aaron van Wirdum>specifically digital cash based on Hashcash that wasn't backed by anything else.

00:37:03.120 --> 00:37:07.720
<v Sjors Provoost>Yeah, I think one innovation there compared to DigiCash, because we talked about

00:37:07.720 --> 00:37:13.610
<v Sjors Provoost>that earlier, or eCash, in eCash you have... a mint, that's the entity that

00:37:13.610 --> 00:37:17.970
<v Sjors Provoost>creates coins, and they are also the entity that is essentially the central bank

00:37:17.970 --> 00:37:23.690
<v Sjors Provoost>that clears all transactions. So there is a single point, the entity that

00:37:23.690 --> 00:37:28.010
<v Sjors Provoost>issues the coins, that checks all the transactions, that kind of has a monopoly

00:37:28.010 --> 00:37:33.880
<v Sjors Provoost>on the transaction log, or maybe not. Whereas at least the issuance now is

00:37:33.880 --> 00:37:37.670
<v Sjors Provoost>completely decentralized because everybody can deliver their proof of work. I

00:37:37.670 --> 00:37:41.910
<v Sjors Provoost>think that ingredient is there. And the verification, although still a bit

00:37:41.910 --> 00:37:46.670
<v Sjors Provoost>hand-wavy, at least the idea is that it shouldn't be one entity. And I think he

00:37:46.670 --> 00:37:52.590
<v Sjors Provoost>also was mentioning RPOW already, but that's something to discuss another time.

00:37:54.280 --> 00:37:58.340
<v Aaron van Wirdum>He was not mentioning RPOW because RPOW came years later.

00:37:58.800 --> 00:38:00.700
<v Sjors Provoost>Okay, then maybe I read a newer paper.

00:38:01.120 --> 00:38:03.120
<v Aaron van Wirdum>Yeah, yeah, yeah. Well, that's probably it then.

00:38:08.400 --> 00:38:14.000
<v Aaron van Wirdum>where were we okay yeah so we saw okay let's for the sake of convenience now

00:38:14.000 --> 00:38:18.480
<v Aaron van Wirdum>imagine that this system would have worked so now you can create these strings

00:38:18.480 --> 00:38:22.280
<v Aaron van Wirdum>and you can send them to other people and there's this registry that keeps track

00:38:22.280 --> 00:38:26.720
<v Aaron van Wirdum>of which public key owns which string now we're getting close to something that

00:38:26.720 --> 00:38:30.740
<v Aaron van Wirdum>looks like money but there is a second big problem that bit gold was facing with

00:38:30.740 --> 00:38:35.450
<v Aaron van Wirdum>or that it's sort of solved So the second big problem is that it, over time,

00:38:35.690 --> 00:38:41.470
<v Aaron van Wirdum>becomes cheaper to produce valid hashes, right? So at first, because

00:38:41.470 --> 00:38:44.790
<v Aaron van Wirdum>computers just get better and better, it gets faster and faster, so it's easier

00:38:44.790 --> 00:38:48.430
<v Aaron van Wirdum>and easier, cheaper and cheaper to create valid hashes.

00:38:48.610 --> 00:38:51.910
<v Sjors Provoost>And there's more of them. Well, that's actually not important that there's more

00:38:51.910 --> 00:38:57.270
<v Sjors Provoost>of them, but it is cheaper, yes. It costs fewer kilowatts of energy to do it.

00:38:57.430 --> 00:39:02.840
<v Aaron van Wirdum>Right. So the problem then is that the money isn't. fungible necessarily. It

00:39:02.840 --> 00:39:08.300
<v Aaron van Wirdum>should be that each currency unit is worth the same or each currency unit of the

00:39:08.300 --> 00:39:10.140
<v Aaron van Wirdum>same denomination should be worth the same.

00:39:10.280 --> 00:39:14.220
<v Sjors Provoost>Either it's fungible but in that case all the money you created in the past is

00:39:14.220 --> 00:39:19.920
<v Sjors Provoost>now worthless so it's fungible but highly inflationary or it's not

00:39:19.920 --> 00:39:24.140
<v Sjors Provoost>fungible where you and that's I think the solution that he proposed is where you

00:39:24.140 --> 00:39:29.090
<v Sjors Provoost>value all the work more. So you say, because this work was generated 10 years ago

00:39:29.090 --> 00:39:34.390
<v Sjors Provoost>on a slower computer, we know that more energy was put into it, therefore

00:39:34.390 --> 00:39:39.850
<v Sjors Provoost>we can correct for that. And then the hope is that the market actually

00:39:39.850 --> 00:39:40.830
<v Sjors Provoost>does that.

00:39:41.070 --> 00:39:44.550
<v Aaron van Wirdum>No, no, the market doesn't have to. If the market doesn't do that, that's even better.

00:39:45.010 --> 00:39:46.090
<v Sjors Provoost>Then it's highly inflationary.

00:39:47.980 --> 00:39:53.380
<v Sjors Provoost>So you mine your coins in 1999, you have 100 of these coins, and now

00:39:53.380 --> 00:39:58.420
<v Sjors Provoost>100 units of work. And now 10 years later, somebody makes 100 units of work in a

00:39:58.420 --> 00:40:02.300
<v Sjors Provoost>fraction of a second. So either your 100 units of work are worth nothing in the

00:40:02.300 --> 00:40:07.200
<v Sjors Provoost>future, or they are valued because they are old. Whether the market will pick one

00:40:07.200 --> 00:40:10.140
<v Sjors Provoost>of these two, I don't think there's any guarantee. He does argue that there are

00:40:10.140 --> 00:40:14.080
<v Sjors Provoost>some precedent, like that older collector items are worth more. A bit like

00:40:14.080 --> 00:40:18.580
<v Sjors Provoost>ordinals, I guess. but that's not the part of ordinals that's taking off the most.

00:40:18.820 --> 00:40:23.760
<v Aaron van Wirdum>Yeah, or like I think misprints of certain postage stamps or something were worth

00:40:23.760 --> 00:40:29.570
<v Aaron van Wirdum>more. Yeah. Anyways, yeah, so indeed, he does argue that. So the

00:40:29.570 --> 00:40:35.150
<v Aaron van Wirdum>idea that he proposed was we'll create a market for these strings, for these

00:40:35.150 --> 00:40:40.450
<v Aaron van Wirdum>hashes, and on these markets, people can trade them against each other. So that's

00:40:40.450 --> 00:40:46.330
<v Aaron van Wirdum>how the markets can figure out how much is a 2005 hash worth

00:40:46.330 --> 00:40:49.010
<v Aaron van Wirdum>in relation to a 2015 hash?

00:40:49.290 --> 00:40:49.450
<v Sjors Provoost>Yeah.

00:40:49.670 --> 00:40:55.550
<v Aaron van Wirdum>So maybe one 2005 hash is worth 10 2015 hashes. I should note

00:40:55.550 --> 00:40:59.410
<v Aaron van Wirdum>all these hashes are also timestamped. Like, first of all, they're, of course,

00:41:00.530 --> 00:41:01.590
<v Aaron van Wirdum>made in order.

00:41:01.910 --> 00:41:03.850
<v Sjors Provoost>You can prove that they are a certain age.

00:41:04.050 --> 00:41:04.210
<v Aaron van Wirdum>Yeah.

00:41:07.060 --> 00:41:11.500
<v Aaron van Wirdum>Which is also... Another chapter in my book, Sjors, where I talk about the

00:41:11.500 --> 00:41:12.560
<v Aaron van Wirdum>invention of timestamping.

00:41:12.720 --> 00:41:13.100
<v Sjors Provoost>Great.

00:41:13.200 --> 00:41:19.130
<v Aaron van Wirdum>But I won't get on that detour. So bit gold, yeah, so there's this market

00:41:19.130 --> 00:41:22.430
<v Aaron van Wirdum>for strings and you can figure out how much these strings are worth in relation

00:41:22.430 --> 00:41:28.010
<v Aaron van Wirdum>to each other. Then Nick Szabo's vision was there will be sort of banks, like in

00:41:28.010 --> 00:41:33.250
<v Aaron van Wirdum>a free banking type of environment, where these banks will collect the different

00:41:33.250 --> 00:41:39.430
<v Aaron van Wirdum>strings and sort of bundle them together into buckets of strings of the same value.

00:41:39.610 --> 00:41:44.330
<v Sjors Provoost>This was written before the derivatives markets implosion in 2007, right?

00:41:47.590 --> 00:41:49.870
<v Aaron van Wirdum>Yes, we're in 1998. So yes.

00:41:49.990 --> 00:41:53.950
<v Sjors Provoost>Yeah, when all these triple A rated buckets and I'm thinking about what happened there.

00:41:54.230 --> 00:41:57.930
<v Aaron van Wirdum>Right, right, right. Yeah, has nothing to do with this, Sjors, but

00:41:57.930 --> 00:42:00.070
<v Sjors Provoost>thanks for that color.

00:42:00.910 --> 00:42:06.550
<v Aaron van Wirdum>So yeah, so in my example earlier where one 2005 hash is worth 10...

00:42:06.880 --> 00:42:12.780
<v Aaron van Wirdum>2015 hashes one bucket could consist of one 2005 hash and another

00:42:12.780 --> 00:42:17.840
<v Aaron van Wirdum>bucket could consist of 10 2015 hashes so now you have back buckets of the same

00:42:17.840 --> 00:42:23.080
<v Aaron van Wirdum>value and these banks would then use these buckets or these bundles whatever you

00:42:23.080 --> 00:42:28.970
<v Aaron van Wirdum>want to call them to issue coins on top of digital coins still so for example

00:42:28.970 --> 00:42:34.930
<v Aaron van Wirdum>every bucket is worth 10,000 coins and these 10,000 coins are issued to people's

00:42:34.930 --> 00:42:40.690
<v Aaron van Wirdum>account So now you have sort of a digital form of cash that people can pay each other with.

00:42:41.010 --> 00:42:44.870
<v Sjors Provoost>And then the idea would be that that is actually DigiCash, right? That layer on top.

00:42:44.950 --> 00:42:48.750
<v Aaron van Wirdum>Yeah, you could use eCash for that. I mean, it doesn't have to. It's free

00:42:48.750 --> 00:42:52.590
<v Aaron van Wirdum>banking. You're free to do whatever you want Sjors. But yeah, you could use eCash

00:42:52.590 --> 00:42:56.590
<v Aaron van Wirdum>for that if you want to offer privacy to your customers and get customers that

00:42:56.590 --> 00:43:02.130
<v Aaron van Wirdum>way. But yeah, this was the idea. So once you have 10,000 coins, in my example,

00:43:02.540 --> 00:43:05.880
<v Aaron van Wirdum>you can exchange them for an actual bucket of strings, and then you have the

00:43:05.880 --> 00:43:10.120
<v Aaron van Wirdum>actual bucket, and you can maybe bring them to another bank. And also, because

00:43:10.120 --> 00:43:15.820
<v Aaron van Wirdum>this is all these strings, it's cryptographically provable who owns them.

00:43:15.920 --> 00:43:20.280
<v Aaron van Wirdum>You can also have the proof of reserve type of stuff, like Nick Szabo was already

00:43:20.280 --> 00:43:26.530
<v Aaron van Wirdum>thinking about that kind of stuff, to address your 2008 concern, by the way.

00:43:27.840 --> 00:43:29.460
<v Sjors Provoost>Yeah, yeah, it's a free banking system.

00:43:30.830 --> 00:43:35.330
<v Aaron van Wirdum>So this is how, yeah, this was basically the idea of bit gold. Did I miss anything?

00:43:36.910 --> 00:43:41.170
<v Sjors Provoost>Yeah, so we talked about inflation and I guess this sort of, these buckets also

00:43:41.170 --> 00:43:46.730
<v Sjors Provoost>address the change problem, right? Because another issue is that when you had the

00:43:46.730 --> 00:43:52.450
<v Sjors Provoost>original... e-cash system you could go to a shop and

00:43:52.450 --> 00:43:56.650
<v Sjors Provoost>you would come with your 10 euros worth of this stuff and they would immediately

00:43:56.650 --> 00:44:01.270
<v Sjors Provoost>go to the bank essentially redeem it and give you your change back essentially so

00:44:01.270 --> 00:44:04.590
<v Sjors Provoost>change wasn't a problem in the original system change is also not a problem in

00:44:04.590 --> 00:44:09.330
<v Sjors Provoost>Bitcoin because it you know the the transaction itself creates a change but in

00:44:09.330 --> 00:44:13.600
<v Sjors Provoost>this system these strings don't have change so what you could do is somebody

00:44:13.600 --> 00:44:17.780
<v Sjors Provoost>could make lots of small little pieces of work and distribute those just like you

00:44:17.780 --> 00:44:21.000
<v Sjors Provoost>would distribute small change and then you go to a shop and you get these little

00:44:21.000 --> 00:44:26.980
<v Sjors Provoost>strings back for your change but it it may be easier to do all this on a second

00:44:26.980 --> 00:44:31.400
<v Sjors Provoost>layer just have big buckets somewhere that don't need to be changed all the time

00:44:31.400 --> 00:44:34.600
<v Sjors Provoost>because also it would mean having to track all the movement of all these mini

00:44:34.600 --> 00:44:38.260
<v Sjors Provoost>strings like tracking the movement of every penny on the planet essentially

00:44:38.780 --> 00:44:43.760
<v Aaron van Wirdum>Right. Yeah, exactly. It's interesting you mentioned that. Nick Szabo was already

00:44:43.760 --> 00:44:49.240
<v Aaron van Wirdum>thinking about second layer solutions, you know, as are being developed and exist

00:44:49.240 --> 00:44:53.660
<v Aaron van Wirdum>on Bitcoin today. This was also sort of an original Nick Szabo vision to have

00:44:53.660 --> 00:44:59.320
<v Aaron van Wirdum>different layers for different types of transactions. Yes. So that's that's

00:44:59.320 --> 00:45:01.100
<v Aaron van Wirdum>bit gold in a nutshell I think, Sjors.

00:45:01.190 --> 00:45:04.070
<v Sjors Provoost>All right. Well, then I guess I can conclude Bitcoin fixes this.

00:45:04.980 --> 00:45:09.120
<v Aaron van Wirdum>Yeah, well, we're going to make one more Genesis Book shill episode, right?

00:45:09.380 --> 00:45:10.040
<v Sjors Provoost>I think so, yeah.

00:45:10.200 --> 00:45:15.540
<v Aaron van Wirdum>Maybe next week or the week after, we'll make one on B-Money and RPOW.

00:45:16.140 --> 00:45:19.580
<v Sjors Provoost>Cool. All right, then. In that case, thank you for listening to Bitcoin,

00:45:19.580 --> 00:45:20.580
<v Aaron van Wirdum>Explained.

