Aaron van Wirdum Live from Utrecht, this is Bitcoin.
Transcript
Sjors Provoost Explained.
Aaron van Wirdum It's Sjors.
Sjors Provoost Hello.
Aaron van Wirdum You want to shill one of your new projects. Is that right?
Sjors Provoost Yes, I do. If you are in Amsterdam for the Coin Conference in October, then two days before that, I am giving an in-person course, which will be interesting for you if you are interested in learning how to contribute to Bitcoin Core. And if you want to find out more, go to learnbitcoincore.com.
Aaron van Wirdum What's the date?
Sjors Provoost October 10th.
Aaron van Wirdum What's the price?
Sjors Provoost Well, it depends
Aaron van Wirdum Depends on what?
Sjors Provoost On when you read this, when you listen to this.
Aaron van Wirdum Oh, are you gonna do the thing where it gets more expensive as we get closer to the date?
Sjors Provoost Maybe, but I know that people listen to these podcasts months later so…
Aaron van Wirdum You might just decide to change the price when you feel like it.
Sjors Provoost Exactly.
Aaron van Wirdum Okay. All right. What was the website?
Sjors Provoost Learnbitcoincore.com
Aaron van Wirdum Do we have any… did you stack any sats Sjors?
Sjors Provoost If you insist, I can read it.
Aaron van Wirdum I'm not insisting at all, but if you want to, I'll do the jingle.
Sjors Provoost All right.
Aaron van Wirdum Oh, God. Sjors stacks sats. Sjors stacks sats. Sjors stacks sats.
Sjors Provoost So, in general, there was some discussion about whether or not we should read the sats, and some people vehemently said we should read the sats. So, we cannot, you know, disappoint the audience, of course. You could have skipped it. So I'll read one from Loki. 10,000 sats. The sats shall get stacked. Thanks for the technical information and musical wonders.
Aaron van Wirdum You're welcome.
Sjors Provoost And then the reply to that is, duh.
Aaron van Wirdum Sjors stacks sats. Sjors. Today we're going to discuss. It's a little bit of a different episode as usual. Because we're [unclear] really going to discuss one particular technical topic. We're more describing an outline of a vision for Bitcoin. And to be precise, it's going to be Anthony Towns' sort of scaling vision. Right?
Sjors Provoost That's right. Anthony Towns had a vision.
Aaron van Wirdum Who's Anthony Towns?
Sjors Provoost He's a Bitcoin developer.
Aaron van Wirdum Yeah, he's one of the most prolific Bitcoin Core developers. So Anthony Towns wrote a blog post called Putting the B in BTC. That's B for billions of people he writes in his blog post. So the plan is we want to scale Bitcoin to billions of people. And now he wrote a blog post on how we can do this. So to start what we're going to do is we're going to kind of just run through this blog post and you're going to comment on it, and maybe I'll comment on it as well a little bit, but we're kind of just for people that are too too lazy to read it we're going to just sort of explain what the idea is. So how are we going to scale Bitcoin to billions of people? All right so essentially Anthony writes there are three kind of main ideas of doing that. There are sort of three roads to get there if you will, one is Just make the tech super efficient. Then the second one is don't have everyone validate every transaction. And the third one is have most people transact off blockchain. I guess first of all, these three strategies. Is there a fourth one? Do you agree with these three?
Sjors Provoost I think it's reasonable to say. So the premise of how you use Bitcoin is that you run a full node and you validate all the blocks. But that gets harder and harder as blocks get bigger. And since every transaction that people make, you know, takes up space, if you scale to a billion people, then naively, you know, you end up with very large blocks in the easiest case. So you could say, well, maybe we can make the validation of these large blocks simpler. Or you can say, well, I guess it's not possible for everyone to validate. Then we just say, you know, fewer people will do it. Or you can say, okay, there should be fewer transactions so that everybody can still validate the blockchain. I think that's a reasonable triangle. You could probably draw another one, but it's fine.
Aaron van Wirdum Yeah. So we've had the block size wars a couple of years ago, of course, and this was sort of the central, you know, it's kind of a continuation of that debate we had back then. And there were indeed different ideas.
Sjors Provoost Yeah. And back in the days, people were especially doing number one in practice, making the tech more efficient. You know, I've done an experiment in 2017 where I would take identical computers and try to sync the blockchain of that date using older and older versions of Bitcoin Core. And what you can see is that for the same blockchain and the same computer, Bitcoin Core was getting objectively faster every year. But that has slowed down a bit. But you could continue that process.
Aaron van Wirdum Anthony shared some thoughts on each of these approaches. So let's just kind of walk through them. So improving the tech. He gives some examples of projects that are in development right now that would accomplish this. So one of them is Utreexo, which I think we did a whole episode on, right?
Sjors Provoost Yes, we did.
Aaron van Wirdum Well, what is Utreexo? Do you want to summarize this in…?
Sjors Provoost Yeah, Utreexo helps with one of the many bottlenecks in Bitcoin. I would say memory usage. So basically what happens is... One second. So basically what happens is that you have this thing called the UTXO set, which is the list of who owns which coin. And your node keeps track of the list who owns which coin. And if billions of people own a coin, then that list gets extremely long. And so Utreexo fixes that by putting the entire ownership list in a Merkle tree. And then rather than everybody having the full list, when you want to spend a coin you need to prove that that coin exists in the first place. So I don't have to… as a node operator I don't have to remember who owns which coin. If you think you own a coin you have to prove it to me and send me some data.
Aaron van Wirdum Yeah, so as we mentioned there are I mean there are essentially several bottlenecks when you want to scale Bitcoin up. If everyone wants to check every transaction, then one of the things they need to do is keep these UTXO set. So they need to keep a record of who owns what, essentially. And Utreexo is a way to decrease the size of that record, right? Okay, so that's one bottleneck. And then another one he mentioned is ZeroSync. I don't know. Do we...
Sjors Provoost We have not covered that in any episode. I mean, there's more to it, I guess. But one of the objectives is to make it easier to catch up if you start from scratch. So the first time you download the blockchain, maybe you can use zero-knowledge proofs, which is fancy math, to say, okay, I'm just going to assume that... or no, I'm—I know that everything that happened so far is correct, so just give me the latest UTXO set. So instead of giving me all the blocks... from the you know from the past to the present give me the current set of who owns what, and a proof that this set was constructed using the official validation rules. And ZeroSync tries to achieve that. And they I think they've done some of that work like showing that enough proof of work is actually in the blockchain but by far not all of it. And that would help at least new users, which is part of the reasons why it's hard to run a node because you have to catch up.
Aaron van Wirdum Right. So that's another one of the bottlenecks that it could potentially help resolve. So if one of the bottlenecks is the size of UTXO set, then another bottleneck is the time it takes to sync the entire blockchain.
Sjors Provoost Yeah, and AssumeUTXO is another approach to do that, where... Instead of delivering any proofs, or maybe you can combine these things, right? You just say, okay, this is the UTXO set as of so many years ago. And then you're just kind of trusting that the past is real. But maybe you can combine that.
Aaron van Wirdum Right. Another example that Anthony mentioned is silent payments, which I think we also did an episode on with Ruben, right?
Sjors Provoost Yeah. So that's not an example of a scaling technology, but that is an example of saying why it is important to be able to check every single transaction in every single block. Because in order to use silent payments, which we have done an episode about, you as the recipient, as the sender it doesn't matter, but as the recipient, you have to scan every block and every transaction in a block to see if there is a payment to you. And so if blocks become massive, then that scanning effort becomes a problem. It isn't right now. It seems pretty lightweight. But it could be if we make blocks 100 times bigger.
Aaron van Wirdum Right, okay well, so in any case this is… these are some examples that fit in bucket one is improving the technology. However I think Anthony's point is essentially that while there is room to grow here, this alone it doesn't look like it's going to get us to a billion users.
Sjors Provoost No, and he mentions another thing with regard to the silent payments, if I see it correctly. We mentioned the ZeroSync idea of catching up from start, but you could also imagine using something like ZeroSync to make jumps. So instead of validating every block as it comes in, you could say, well, I'm just going to wait a month and then check whatever happened, get a compressed summary of the last month. That could also be a way to keep track of a much bigger blockchain. But you can't do that with something like silent payments because then you'd have to wait a month to know that you got paid.
Aaron van Wirdum Right. Okay. So that's bucket one, improving the tech, which will help us grow a bit, but it's not going to be able to get us to a billion, right? So then we move to category two solutions, which is don't validate. So here we really get into what the block size wars were about for a big part, I think. Is that some people and they still exist on other blockchains they have this vision that it's actually not necessary for every user to validate every transaction.
Sjors Provoost Yeah, which can go in two directions right? You can say only some users validate everything. Or you can say well most users validate some things, but not all users validate all the things.
Aaron van Wirdum Wait, can you elaborate on that?
Sjors Provoost Well, so the latter would be let's say everybody runs an SPV wallet which is just checking the headers. It's still checking that there's proof of work, that headers are building on top of each other, that there's no funny things with timestamps, but it is not checking any of the transactions and the signatures in the block. So that's a scenario where not everybody checks all the things.
Aaron van Wirdum No, that's a scenario where everybody checks not all the things.
Sjors Provoost Yeah, that's the same thing.
Aaron van Wirdum No, no, that's a difference, right?
Sjors Provoost Not everybody checks all the things. So there will still be people who run a full node and check all the things.
Aaron van Wirdum I guess that's also true.
Sjors Provoost But some people will only check some things. Now, there's other blockchains, I think, like probably things like Solana, where really there is just a small number of people who check all the things. Maybe. But most people check nothing, basically. So it's very black and white.
Aaron van Wirdum Yeah, so basically some people check everything and then everyone else asks these people, hey, what's going on, right? That's essentially what it comes down to. I mean, it's automated, obviously. People are using APIs and that kind of stuff, but that's what it comes down to.
Sjors Provoost Yeah, and if you push that too far, you have a centralized point of failure, which they could either lie or they could exclude you from the system. You know you basically go back to PayPal worst case.
Aaron van Wirdum Yes. The people that are checking everything they could either collude to change the rules, make more than 21 million Bitcoin, or they can be regulated and introduce censorship or they can do all kinds of things that we don't really want.
Sjors Provoost Yeah, and just add my own thoughts here, I think you could probably think about something in the middle where some people validate something, some people validate other things but it's… It's hard to reason whether or not that's going to be safe. We know the current approach works. It's like everybody checks everything. And how much of that you can, you know, how far you can go on the grayscale towards one person checking everything. There's some point in which it goes horribly wrong. So it's better to be on the safe side, I think.
Aaron van Wirdum Yeah, well, essentially, so this option... it's included in the blog sort of more as an example of what not to do, right?
Sjors Provoost Yeah, and he also says that even this pushes to the limits of even those few people that validate. If they really want to process every transaction of every person on the planet, it still becomes a problem or it's a fragile system that's easy to mess with.
Aaron van Wirdum Right, okay so then we get to the third option which is kind of I would say the heart of the article, like this is kind of the vision really, which is get off the blockchain.
Sjors Provoost Get off the blockchain.
Aaron van Wirdum So not all transactions need to happen on the Bitcoin blockchain. So what does that look like?
Sjors Provoost Well, I mean the most obvious example of that is Lightning, where instead of every time you want to send a satoshi, you create a Bitcoin transaction, now you create a Bitcoin transaction to open a channel. You use the Lightning Network for a while to make a bunch of payments, and then after a while you close the channel, either because you want to or because you're forced to. Unfortunately, if you run the numbers on that, which has been done, like, by Tadge Dryja seven years ago, I think, you still end up with, like, it's not going to fit the whole population, just a few tens of millions.
Aaron van Wirdum Yeah, the problem with that is that even if you use Lightning, you still need some transactions on the blockchain, right?
Sjors Provoost Yeah, so if you do the math on like every person opens one channel per year or closes one channel per year, then that still doesn't fit the whole world population onto the Bitcoin blockchain. So you still have to answer the question that we asked before. Like, okay, does that mean some people don't use the blockchain? Or do we make blocks bigger and then do we not validate them, etc.? So it doesn't solve it all the way.
Aaron van Wirdum So Lightning doesn't solve the problem completely. But there is another idea, Sjors. There is another idea called sidechains.
Sjors Provoost Yes.
Aaron van Wirdum What's your opinion on sidechains? We've done an episode or two or we've...
Sjors Provoost Well, we've talked about some examples of sidechain-ish systems.
Aaron van Wirdum I mean, basically...
Sjors Provoost Drivechains and other things.
Aaron van Wirdum Yeah, basically every time Ruben was here, it was something sidechain-ish, right?
Sjors Provoost That's right. So just look for the episodes with Ruben and you can learn all you want about that topic. Problem is, so far, it hasn't been proven out. So, critically, it is very easy to move your Bitcoin assets onto some sort of other chain, but moving them back always requires some unpleasant trade-offs.
Aaron van Wirdum Well, yes, but it also kind of depends.
Sjors Provoost Either like a custodian, like in the Liquid case, where you're essentially just using a custodian with some benefits. Or in the case of drivechains where you have a very long withdrawal window in which you have to do some fighting and stuff. So there's no clean mechanism. The ideal of a sidechain is there's this other chain with completely different rules, doesn't matter what it is, could be small blocks, could be big blocks, could be smart contracts or not, and you can move one Bitcoin onto it, and as long as that other chain doesn't implode, you can take that Bitcoin off of it. But the problem is that other chain tends to be much less secure from a censorship resistant point of view as the Bitcoin blockchain. So in the worst case, you're depending on the custodian actually giving your money back and slightly better cases is still not as strong as getting your money out of, say, a Lightning channel.
Aaron van Wirdum Yeah, well, in the case of... Liquid, it's not necessarily one custodian, right? It's allegedly at least a federation of custodians. We don't know who's in the federation, but it's supposedly a group of companies that all hold sort of keys to a multisig.
Sjors Provoost Yeah, and they've built in a lot of automation, et cetera, et cetera. You can swap with other people. So it's not horrible, but it's still not as secure as Bitcoin itself.
Aaron van Wirdum Right, yes, there's a trade-off there. So that's an idea. Another idea, which is newer, is something like Fedimint, right? Have we done an episode of Fedimint?
Sjors Provoost Yes, we have. We've done an episode about federated e-cash in general. Where we explained the whole history from David Chaum onto the latest. I mean, it has evolved a little bit, but we have explained it.
Aaron van Wirdum Yes, we did.
Sjors Provoost With Ruben.
Aaron van Wirdum I remember now. Yes, that's right. So that's another idea, which is also a federated custodian.
Sjors Provoost I would just say that's a custodian, but it's a custodian with benefits.
Aaron van Wirdum Well, Fedimint has also a federated custodian model, right?
Sjors Provoost Sure, in theory.
Aaron van Wirdum Again, yes, you still have to sort of trust them.
Sjors Provoost I mean, a federation could also just be one company that has three different staff members in different parts of the world.
Aaron van Wirdum Sure.
Sjors Provoost But in any case, it at least makes, you know, you can make custodians suck less. I think that might be one way to frame it. So Liquid makes custodians suck less because the custodians are spread out over different companies and they use a bunch of automation and they can't necessarily see what you're doing. Fedimint, similarly, you have a lot of privacy against your own custodian, so they can rug you. But other than that, they can't really see what you're doing. So that's good. And then, you know, I think it's the article says there are just regular old custodians.
Aaron van Wirdum Yeah, exchanges, for example, hosted wallets, that kind of stuff. So what's the idea here? Do you just want to get to the point of the article, I guess, at this point?
Sjors Provoost I'm not sure if it's making a very explicit point here. I think it's saying you could have a number of custodians in the thousands or tens of thousands. If you have that many different custodians, then at least there's lots of choice in the market and people can move between them. And then it would fit with the current transaction counts.
Aaron van Wirdum I think if you do some back of a napkin math, the idea sort of is that if you have a lot of custodians that suck a little bit less and they are connected through Lightning, then you can actually get to the point where Bitcoin could support billions of users. So anyone can sort of choose the custodian and the trade-offs that they want so that can be a sidechain, it can be a Fedimint kind of thing, it can be like you said an actual custodian of an exchange. And these custodians in general would talk with each other over Lightning. So then you can sort of do the math of how many on-chain transactions that would require per custodian and how many custodians we need. And that would sort of get us to billions of users, right? I think that's kind of the summary of the article. That's sort of considering the trade-offs that we're dealing with. That's maybe the most... viable vision right now.
Sjors Provoost Yeah, though my concern with custodians is that, generally in economics you get this power law distribution of one or two massive custodians and then you know 10 000 very small ones, and my issue is not with those 10 000 very small ones but with those very big ones that could have some pretty undue influence over the whole protocol, and of course…
Aaron van Wirdum Can you explain what you mean by that? Well so what's your what's your concern?
Sjors Provoost I mean, I don't know, if somebody owns and controls, you know, 50% of all the Bitcoin, and they can do all sorts of shenanigans, right? If there's a fork, they can...
Aaron van Wirdum What kind of shenanigans?
Sjors Provoost I don't know, like, SegWit2x.
Aaron van Wirdum Can they, though? So spell it out. Spell it out. I want to hear the concern.
Sjors Provoost Well, so in this case, we remember from the 2017 situation where there was a bunch of companies that got together and said, hey, we're going to double the block size and we're just going to tell our customers, at least that was the initial plan, we're going to tell our customers that Bitcoin didn't change. We just upgraded it, even though they actually just put you on something that would be considered a hard fork. At the time, there were not that many people running nodes. But if you look at probably the ratio of people running nodes versus people using these custodians, that's probably going to get worse in this far future. Where even more people are using—
Aaron van Wirdum Yes, exactly, yes.
Sjors Provoost And presumably, they're also going to be more competent because I think one of the reasons SegWit2x didn't work out is because they just couldn't get the software working. Now, that might change if the whole world is using Bitcoin. Hopefully, there'll be far more competent people. Well, hopefully in the sense that it'll be good for Bitcoin, but not hopefully in the sense that these very competent people will be working for those companies. Because they're paying the money. So, yeah, I'm basically worried about...
Aaron van Wirdum The point here, though, is...
Sjors Provoost If you're not validating the rules, then it seems much, much easier. If 99% of users are not holding their own UTXOs and are not validating blocks, then, yeah, 1% is going to notice the hard fork. Then all you have left is hopefully that this minority rule thing works, that that 1% is often enough to stop the fork.
Aaron van Wirdum Well, no, not exactly. So I think the better way of understanding this vision, so to say, is we are keeping the block size limited explicitly so that people can still validate the rules.
Sjors Provoost Yeah, even if I guess you could say it's true that you could use a custodian, but still run a full node right? It's just that your coins are not on it. All you know is where your coins are maybe within the custodian
Aaron van Wirdum Right, so you still know that there are only 21 million coins. Now I guess the the more realistic risk which is or the risk that I would be more concerned about which is also mentioned in the article is more like fractional reserve kind of problems. So there's still only 21 million Bitcoin that can change that. You're still validating that. However, you're not sure that the custodian that you are trusting is really holding the coins that it says it's holding and it's not issuing more. Now that can maybe be because you can choose your custodian, that can maybe be sort of tackled with proof of reserves or that kind of stuff which is not perfect but it's at least better than nothing. And that's how you can sort of keep them in check. And again because you can switch custodians whatever you want. So that's that's sort of I guess my opinion about this is this seems to me like the most viable and best vision we have so far. And then hopefully over time people can figure things out that are even better. But so far this seems like this this can work with the technology that we have today, with our knowledge of Bitcoin that we have today, this seems like probably the best vision considering all the trade-offs
Sjors Provoost Yeah, I mean there's there's one other option which is that you just don't get billions of users. You only get a few tens of millions of users, in which case you know Bitcoin would not be the global reserve currency but it might be the global international trade currency or something like that. In that case you know we don't need too many massive technological breakthroughs because it'll work right.
Aaron van Wirdum So in that so in that vision, Bitcoin is kind of the currency you use when the other things don't work. You would usually just use PayPal, except if you want to buy drugs then… yeah
Sjors Provoost Or maybe slightly better than that. Maybe it is the preferred currency if you're doing international trade say outside you know from Europe to America something like that but… I don't know if that's even likely. I mean, that is an option. Nobody says that billions of people want to use Bitcoin, maybe. It doesn't need that many users. Though I would prefer, if we do have a way to support the entire world population. But so far, I don't really see a way to do that other than, yeah, I guess what's described here, but that's not a very satisfactory solution.
Aaron van Wirdum I mean, it's not perfect, but it's good to have at least an idea of how you can scale if we need to, right?
Sjors Provoost Yeah.
Aaron van Wirdum That's what I think anyways.
Sjors Provoost So I'm just hoping for a big breakthrough and maybe that's not unreasonable. Maybe in the next couple of decades, somebody comes up with a way to say, okay, we can add two more zeros to the number of users and now we're good.
Aaron van Wirdum Finally, before we end this episode, Anthony Towns lays out how to get from here to there. I don't think there's anything particularly shocking there. It's kind of what you would expect.
Sjors Provoost Yeah, I think what he's describing here is a phenomena that developers only fix problems when they become actual problems. So we all know the theoretical things that can go wrong with Lightning. But until they actually start happening, until Burak, you know, hits the button and blows up a bunch of nodes, bugs don't get fixed. So I think what he's saying here is that at some point, more and more people start using Lightning, then we start running into the bottlenecks, the known ones, but also maybe some surprises. And as those gets fixed, well, at some point, we'll also hit the hard limits of what these systems can do, you know, as we work through the bottlenecks. And then people will jump to the next best alternative. So maybe if Lightning becomes too expensive, they'll use Liquid or something like that.
Aaron van Wirdum Yes. I mean, that's sort of what the plan sounds like. Let's run into the bottlenecks and then people will find alternatives, right?
Sjors Provoost Yeah, exactly. So fee pressure could go up. That can force people to go to alternatives or other usabilities could cause that too. So that's just a guess of how it could… How the network might scale in practice. So not smoothly but more in I guess in bumps and…
Aaron van Wirdum Innovations. I think that's that sort of covers it Sjors, what do you think?
Sjors Provoost I think so too.
Aaron van Wirdum So nothing too shocking in this episode, but we still want to give you an episode before we take a break, because you're going traveling on holiday Sjors, is that right?
Sjors Provoost Probably, yes.
Aaron van Wirdum And then we'll see you when?
Sjors Provoost We'll keep you posted. Thank you for listening to Bitcoin
Aaron van Wirdum Explained.