Aaron van Wirdum Live from Utrecht, this is Bitcoin.
Transcript
Sjors Provoost Explained.
Aaron van Wirdum Sjors, we're going to lean into some Twitter controversy today.
Sjors Provoost Exactly. We have to jump on the bandwagon and make sure that we talk about what other people talk about.
Aaron van Wirdum Love it. Yeah, actually, I got this request from a colleague of mine, Brendan Green. And since I am his humble servant, I had no other choice but to make an episode about this topic, which is inscriptions and maybe also ordinals to some extent. But yeah, as you mentioned, everyone's talking about it now, which kind of I think for both of us was more of a demotivating factor because everything that can be said about it has been said by now, maybe. But we're going to try to at least explain what it is, I guess, Sjors.
Sjors Provoost Yeah, and this may be nice for our listeners who have not caught up on it.
Aaron van Wirdum Okay, but first, first of all, Sjors, you want to read some boosts.
Sjors Provoost Some boostograms. And if you don't know what that is, Google it. First one is nice and short. From @Vake. 2,500 sats. Second best podcast ever behind the Van Wirdum Sjorsnado.
Aaron van Wirdum Love the Van Wirdum Sjorsnado.
Sjors Provoost Excellent. And the other one from Mr. Mister. 5,674 sats. Excellent topic and explanations. As for topics for the future show, I need some technical explanation. Perhaps you could be of assistance because I thought I knew how my Lightning channel closed, but my node died and BlueWallet sees the on-chain stuff. Yay. And I contacted the other node operator and they closed the channel out. Yay. But my share of closing Lightning balance didn't go on chain. Thanks.
Aaron van Wirdum Is this a question? Did you just...
Sjors Provoost Well, I think his question is to please explain how Lightning works to the point that I can fix, I get my money back. But basically, this reminds me of something that happened to me a few years ago, which is I had an LND node and a C-Lightning node, and I had a channel between them, and then I nuked my LND node. And I lost the money that was in the channel. But after only two days of puzzling and going to hackathons and talking to Christian Decker and roasbeef and writing some custom tools, I was able to get my 100 euros back. But the exact way to do that is quite hard and depends on which pieces of software you're using. In this case, I wouldn't know.
Aaron van Wirdum Sorry for your loss, Mr. Mister.
Sjors Provoost In general, our Lightning expertise is not that. There are some episodes where we struggle to explain certain aspects of Lightning. I think we did publish them.
Aaron van Wirdum I mean, we've also had Lightning guests on, right?
Sjors Provoost True.
Aaron van Wirdum I think that's sort of what we like to do. If we do a Lightning episode, we'll get someone on board that actually knows more about Lightning than we do.
Sjors Provoost Yeah, but there's basically, as a general rule, if you have a Lightning wallet, then your funds are already on-chain. Those funds should be fine if you have to recover from a backup. But anything that's in a channel requires some sophistication to correctly backup. And maybe hard or impossible to recover.
Aaron van Wirdum Okay. Sjors, Back to inscriptions. The topic du jour. The new war on Bitcoin.
Sjors Provoost Yes.
Aaron van Wirdum The controversy is brewing and we're going to lean into it with everything we have. Sjors, Inscriptions. Okay. First, before we actually get to inscriptions, I do want to mention a lot of this ties in with OP_RETURN and we made an episode episode on OP_RETURN on the OP_RETURN wars as it was referred to which was episode 61 and we'll recap some of that here but maybe not all of it so if you really don't know and I'm addressing you my dear listener our dear listener if you don't know what OP_RETURN is then you might want to go back to episode 61 first to sort of get an idea of what the history there is. That said, we will recap it real quick. Yeah, Sjors, I'll just leave this to you. OP_RETURN, what do we need to know before we get to inscriptions?
Sjors Provoost Yeah, so OP_RETURN was a solution to a problem. And the problem was that, well, the problem wasn't so much that people were putting stuff on the blockchain that wasn't money. They were putting pictures, et cetera, on the blockchain. That wasn't necessarily the problem, but the problem was in how they were doing it. They were using weird mechanisms.
Aaron van Wirdum I'll stop you right there. That's debatable, right? Like some people will say that's in itself a problem.
Sjors Provoost Yeah, some people would, but there was a bigger problem. And that was in the way that we're doing it. And the way that we're doing it was causing the so-called UTXO set to grow a lot. And the UTXO set is basically the set of coins that exist in the world. And that could be spent by somebody at any time. Like, you don't know when it's going to be spent. So you tend to keep it in RAM so that whenever a new block comes in, you can very quickly check whether the new block is spending coins that actually exist or not. And the problem with the way they were putting data on the blockchain is they were basically making it look like there were real coins out there that could be spent with public keys and all, but they could never be spent because there was no private key because of the way the images were encoded. And so OP_RETURN was a sort of a mitigation of that by saying, okay, please use this mechanism called OP_RETURN and we'll explain how that works so that we don't have this problem with RAM.
Aaron van Wirdum I don't think we will. People will have to go back to episode 61, sure.
Sjors Provoost All right, fine. We won't explain it. Or we might get back to it. Anyway, so people could use OP_RETURN. They could put up to 80 bytes on the blockchain this way in a way that doesn't waste people's RAM. Still takes space in the blockchain, but it doesn't waste people's RAM and RAM is much more precious.
Aaron van Wirdum Yeah, so the even shorter version is people were using Bitcoin for other reasons than transacting money. They were uploading images on the blockchain or whatever. And then developers said, all right, look, if you're going to do that anyways, then please do it in this way because that reduces the cost for everyone else. That's sort of the super short version, right? But then developers also said... Please don't do too much data at once. So they set a limit of 80 kilobytes, essentially, right?
Sjors Provoost 80 bytes.
Aaron van Wirdum 80 bytes.
Sjors Provoost Per transaction, which means in practice, you know, in order to do a lot of data, you need not just to have this 80 bytes, but you need to make a whole transaction which has a bunch of overhead for every 80 bytes that you're trying to publish.
Aaron van Wirdum Right. So developers said, if you're going to upload data on the blockchain, please use this. But then they did put a limit on the amount of data that you could upload.
Sjors Provoost Yeah. And if I remember correctly, that limit was basically such that it was slightly more attractive to use OP_RETURN than to use the bad methods that we used before, but not unnecessarily attractive.
Aaron van Wirdum Right. Okay, I think that's sort of the context that you need for the rest of this episode to get into inscriptions. I think, right?
Sjors Provoost Yeah, I think so.
Aaron van Wirdum Okay, so inscriptions then... I guess my one sentence summary would be inscriptions are a way to do the same thing, to do kind of what OP_RETURN does, but without the limit. Is that a fair one sentence summary?
Sjors Provoost Well, it has a 400 kilobyte limit.
Aaron van Wirdum Someone found a way around the limit. That someone is Casey Rodarmor.
Sjors Provoost Yeah, so instead of an 80 byte limit, he found a way to have a 400 kilobyte limit and to get a 4x discount on fees. And in fact, probably a bigger discount in fees because the overhead of the transaction itself would be lower if you're doing very large pieces of text or image.
Aaron van Wirdum Okay. So then the one sentence summary is someone found a way to do something very similar to OP_RETURN, but with a much bigger limit and with that cheaper at least cheaper per byte fee wise, yeah that's a very ugly sentence but I still think that counts as one sentence, whatever okay so that's what it does and… And then there was this other thing. I forgot what it was called. We're not going to talk about it too much in this episode.
Sjors Provoost The ordinals.
Aaron van Wirdum Yeah, right. So ordinals.
Sjors Provoost It's part of the ordinals system, which is something completely different, kind of a way to do NFTs on the Bitcoin blockchain, I guess. And part of that could be that you want to upload the picture of your NFT right onto the Bitcoin blockchain. That's one use case. But this mechanism well…
Aaron van Wirdum That's still inscriptions right like the uploading the actual picture? Exactly that would be the inscription. And then the ordinal that would be kind of like a colored coin essentially that refers to the inscription so then you can quote unquote own the inscription in the same way that you can quote unquote own an NFT?
Sjors Provoost Yeah pretty much but it doesn't really matter because the way that you put data on the chain is the same like could be used for other things.
Aaron van Wirdum Yeah right so so that's what the inscriptions are. Inscriptions are uploading data into the Bitcoin blockchain and that's probably it seems like that's sort of what most of the controversy like the Twitter shitstorm is about and that's also what we're gonna address mostly in this episode I don't think we're gonna get into ordinals too much although we met well we've already mentioned it. So Sjors, what are… How does it work? What, what, how did Casey get around this limit, this OP_RETURN limit? Well, what’s the…
Sjors Provoost Yeah, so basically the way OP_RETURN works is you're creating an output, basically. And when you create an output, you basically have to tell the nodes or the blockchain what way this output can be spent. That's fine you you basically say OP_RETURN and then followed by a bunch of gibberish doesn't matter what it is because as soon as the blockchain is reading OP_RETURN it stops it says okay it's valid and in fact I'm going to forget it because it is unspendable. That's why it's a nice mechanism. And because it's an output, you're not getting any SegWit discount. You're paying the normal price if you want to get into weight units, four weight units per byte of data. But don't worry about weight units, I guess.
Aaron van Wirdum And maybe you're also sort of skipping ahead, which makes it more confusing. Anyways, I guess just carry on. So you just explained how OP_RETURN works, which is also explained in depth in episode 61.
Sjors Provoost Exactly.
Aaron van Wirdum So my question is about inscriptions.
Sjors Provoost Exactly. And these are not using outputs, they're using inputs. And an input, basically, the goal of an input is to say, okay, here's an output. You just point to a transaction hash and an index in the transaction. And here is the piece of script, the witness, that you need to spend that output. Now this witness gets a 4x discount. And so what this new scheme does is it basically puts all the OP_RETURN-like data in the witness instead of in the output. And now we can get into the way it puts it into the witness. It doesn't really matter. But the idea is you need to eventually, when you're spending your own coins, you need to provide a signature. But you don't have to do that right away. You can do a bunch of nonsense and then provide a signature. Or you can provide a signature. And then continue the script, do a bunch of nonsense, and then return. And that's basically what you're doing. So either before or after you provide your signature, you write on the blockchain OP_FALSE. And what that does is it, we talked about Bitcoin scripts all the way, I think in episode two, but it basically puts something on the stack called false. Now stack is like a pile of plates. So you have a pile of plates, which is exactly one high. The word false is on that plate. And then there's the next code is called OP_IF. And this OP_IF statement looks at what's the top plate. Well, false. And then it says, okay, I'm going to skip until either I see an else or I see an ENDIF. And so there is an ENDIF in this particular script. And it turns out that between this if statement and the ENDIF statement is where you have all this data that you're trying to upload into the blockchain. And as we just described, the OP_IF statement means that we're not executing all that data, we're just skipping past it. So you're able to do whatever you want because it's not evaluated.
Aaron van Wirdum Okay. That was a very technical explanation and I'm going to try to dumb it down a bit. And then if I dumb it down so much that it becomes inaccurate, you should stop me. So I think I would sort of explain it in that, you know, a transaction includes different kinds of data. So most notably, it includes data that says coins are being spent from here. And then other piece of data says it's being spent too here. But then to prove that the rightful owner is spending it, a signature needs to be added. And the signature is included in yet another part of the transaction, which we call the witness.
Sjors Provoost Yes.
Aaron van Wirdum And this witness part of the transaction can also include other data. And that's where we're putting this data. So we're putting this data, these images or whatever it is we're uploading, we're putting it in the witness in a way that it's kind of irrelevant for the transaction, but it's still there, right? That's kind of the summary, right?
Sjors Provoost Yeah. The witness is providing the signature and it's doing a bunch of blah, blah, blah that is completely ignored.
Aaron van Wirdum Right. So if my... Bitcoin node sees one of these transactions as it has by now because these transactions now exist they just see basically a valid transaction and then they see a bunch my node sees a bunch of data in the witness but it just figures that data is completely irrelevant.
Sjors Provoost Yeah, because it's between an if and an ENDIF statement.
Aaron van Wirdum And I'm not even going to remember it because my node is a pruned node. So it forgets blocks older than a couple of days. And it's also not in my UTXO set. So my node after a couple of days, it doesn't even remember that it was there.
Sjors Provoost So if you have a full archival node, so one that keeps all the history, you will remember all this stuff and you have to download it once. But if you have a pruned node, yeah, you're going to toss it. As you would with OP_RETURN, by the way. There's no difference there. And it's not using up any of your RAM. Because RAM is only consumed when you create an output. And in this case, you're not creating an output. You're spending an output. So the second the output is spent, you can forget that output ever existed. And the witness never has to be in RAM anyway. Well, except the moment you're checking it.
Aaron van Wirdum Right. So for my node specifically, I think the only cost really was that I had to download it once and then maybe upload it to other.
Sjors Provoost Yeah, exactly.
Aaron van Wirdum That's sort of the cost for me, but that's sort of it, I think.
Sjors Provoost Exactly.
Aaron van Wirdum Okay. But then if you run like a special Bitcoin node, like a inscriptions.
Sjors Provoost Yeah, it's not even a node. You just run a piece of software that talks to your node and that is able to get the inscriptions out of the blockchain.
Aaron van Wirdum Yeah, so that software will see the same data, but it will say, hey, I know what that means. That means...
Sjors Provoost Yeah, so that software is looking...
Aaron van Wirdum This is an image or this is whatever and then… Then it is able to subtract an image from the blockchain.
Sjors Provoost Yeah, so that script will basically ask, probably ask for every transaction in the blockchain, one by one, and then it will inspect the transaction and look for a certain pattern. And I guess in this case would be looking for an opcode called push, followed by the data ord or something like that. And then it processes whatever comes after that as a file.
Aaron van Wirdum Right. Okay, so...
Sjors Provoost Which, you know, these kind of tools have existed before for image upload using OP_RETURN and using all these other mechanisms. There were also scripts that would basically work in the same way. In fact, in my book, now that I'm shilling that, there's an appendix. I think it's appendix C, which contains the Bitcoin white paper, but it also contains instructions of how you can get the Bitcoin white paper PDF out of the Bitcoin blockchain with just one very complicated command.
Aaron van Wirdum Right. Okay, so I think we've now explained... So OP_RETURN had this limit of how much data you can upload. So I think we've now explained how Casey essentially got around this limit to otherwise accomplish something very similar.
Sjors Provoost Yeah, though you might wonder why there's no such limit in The Witness, right? That could have been.
Aaron van Wirdum Sure, yeah.
Sjors Provoost But there isn't. And in fact, with SegWit, there were some limits.
Aaron van Wirdum Right.
Sjors Provoost And with Taproot to the witness size, so it was still much bigger than what you could do with OP_RETURN. But with Taproot, these limits were lifted even more. And the main reason for that is to make it simpler to interpret a script Things like Miniscript that we've talked about in earlier episodes, when you see a script you want to reason about it. Like what kind of properties does it have? Can I spend it? Like you might be part of a very complicated multisig and you want to make sure that yes, I can provide one signature. And if somebody else also provides a signature, it can be spent and the coins are not lost. And this type of analysis is easier when there are fewer limits in place. So there were good reasons to remove all these limits, but it does mean that you can make a 400 kilobyte image this way.
Aaron van Wirdum So that's the new limit, 400 kilobytes?
Sjors Provoost In practice, yes. And this has to do with standardness. So standardness means that this is what nodes will relay by default. But you can take your node and you can edit the software and change that particular limit so that you'll gossip even transactions with a megabyte. Or four megabytes, actually.
Aaron van Wirdum Four, right? Yeah.
Sjors Provoost Yeah. So the real limit is what can be mined. If you contact a miner directly or you go Peter Todd style, create an alternative client that does not care about this limit and promote this alternative client and then hope that miners will actually just look for it with a big enough bounty, then you can actually produce a full block, 400 megabyte block. With just a giant movie or whatever it is inside of it and I wonder who will be the first person to do that I guess burak
Aaron van Wirdum You could yeah so you could have you could have a block that consists of one I guess almost four megabytes transaction that is actually, like you said.
Sjors Provoost Yeah, you have to leave a little bit of space because the block has to have a header and has to have the coinbase transaction for the miner. And your transaction itself has to have a bunch of overhead. It has to probably send the money somewhere. So don't make it exactly four megabytes, four million bytes, a little bit less. But yeah, you can make it pretty big. But you can do the same with OP_RETURN, but then you can only make it one megabyte. So in that sense, it's four times cheaper. So with OP_RETURN, if you provided it directly to a miner, there's no limit. You can make, as far as I know, a one megabyte or slightly less OP_RETURN transaction. But for the same cost, you can make a four megabyte inscription.
Aaron van Wirdum Yeah, well, that was going to be my next question or the next point I was going to bring up. So we've explained how to get around the OP_RETURN limit, so to say. And then the other thing is that how inscriptions make use of this SegWit discount. So we may have explained this in a previous episode. We probably have or maybe not. I'm not sure, but what does this actually mean? Can you explain what the SegWit discount is or why people call it that or what is actually, what are we talking about?
Sjors Provoost So blocks, as far as old nodes are concerned, pre-SegWit nodes are concerned, are one megabyte. And then the question was, how can we, well, two things were achieved with SegWit. One was to allow all these new features that SegWit allows, and we did an episode about that. But the other was also a block size increase. And the way to increase the block size is to put all this witness data in a special place that old nodes don't see. And so there's three megabytes worth of data in places that old nodes don't see. It's called the witness, or up to three megabytes that old nodes don't see. That's the witness data.
Aaron van Wirdum No, it can be up to four, right?
Sjors Provoost The entire block can be up to four. Yeah, I guess you're right. The witness data can be up to four, but then the main data has to be less because the total has to be less than four. The witness plus the non-witness data.
Aaron van Wirdum Yeah. Well, I mean, in this case, that's plausible, right? That's what we talked about, the one transaction.
Sjors Provoost Yeah, so that's where these weight units come in. If you're creating a transaction, a block has to be a maximum of four million weight units. And if you're using the non-witness part of a transaction, so the outputs, whatever, each unit counts as, I believe, four weight units. Yeah. So basically, if you don't use any witness data, your block size is 1 million times 4. So you're back to one megabyte block for the old nodes. And if you use lots of witness data, then you can have a four megabyte block, which is what you would do here.
Aaron van Wirdum Yeah. It was basically introduced as a way to get around the block size limit without requiring a hard fork. So to increase blocks without requiring a hard fork.
Sjors Provoost Exactly. And also as an incentive to use SegWit because SegWit is solving some other problems that are very expensive in terms of resources for the computer. So I guess it's a nice way to say, just use SegWit rather than not SegWit.
Aaron van Wirdum Is that also directly UTXO set related? Isn't that the sort of main thing? Because whatever gets into the... Witness will not end up in the UTXO set. Am I saying that's right?
Sjors Provoost No, it does. The UTXO set contains, well, no, the UTXO set doesn't contain any witness data.
Aaron van Wirdum Exactly.
Sjors Provoost That's true. But I don't think that's the reason. It has to do with like, if transactions get very large, you have certain things that get quadratically more expensive to evaluate. And I think SegWit removed those limitations or like made it more efficient so that certain transactions when you use SegWit will be less bad on your CPU or for example, or
Aaron van Wirdum Right. I definitely remember that it was at least one of the arguments where it was claimed that the discount also better aligned incentives. I guess I'm just a bit rusty.
Sjors Provoost I think what you mean there is that it becomes cheaper to spend coins than to create coins. I think it used to be the case that it was cheaper for you to... Create lots and lots of change and never really spend your original coins unless you were desperate, never combine your coins. And with SegWit, because it's much cheaper now to spend coins, you have some extra incentive to spend your coins. And by spending your coins, you're reducing the UTXO set size, which means you're reducing the amount of RAM used by other people. So in that sense, yes, it creates an incentive to start spending coins.
Aaron van Wirdum Right.
Sjors Provoost To start combining coins.
Aaron van Wirdum Okay. Well, in any case, I think the point is that through the witness, blocks can be bigger so there's a bit more block space and then if a fee market develops so if not all transactions fit into blocks then transactions will have to outbid each other and if you're using more of the part of the block that's less scarce then miners are more inclined to include it because they can include more of them right that's how the incentives work and that's why there's a quote-unquote discount on using witness data so that's why using inscriptions is basically cheaper per byte than using OP_RETURN yeah right am I saying it right I think I'm saying it right okay so then I I think we've now kind of explained what inscriptions are and how they work and maybe we should get a little bit into why it is controversial or why are some people angry about this and or so
Sjors Provoost Yeah well I'm not a psychologist but you could you could argue that bitcoin's primary purpose is to make money basically is a censorship resistant system for money transfer and if you start doing other things with it that other use case might at some point push out the money use case now hopefully the fee structure that exists in Bitcoin is enough to make sure that the money use case is always going to be basically able to pay for itself and always out-compete any other system because it is hopefully in the long term insanely expensive to store data on the blockchain. And you have to compete, you know, if you want to put your JPEG on the blockchain, that's fine, but you're competing with Michael Saylor that wants to spend a billion dollars and is probably able to pay a much higher fee on that. So that's the hope. But because this mechanism gives you a 4x discount compared to using OP_RETURN, the dynamics just change by a factor of four, essentially. The same dynamics where you have a competing use case is now four times cheaper.
Aaron van Wirdum Yeah, well, I think the first thing that may be worth mentioning, and you mentioned it yourself in the OP_RETURN episode, is that nodes don't get paid, right? If you're running a node. And so the idea is, or you know this is one of the arguments this is why it's controversial at least in some parts of the Bitcoin world is that if you're running a note you're kind of agreeing to process transactions also the transactions of other people like that's kind of the you know the social contract or whatever you want to call it I think that term is very overused but you know that's sort of what you're agreeing to do. But you didn't agree to also process or transmit or you know store rare Pepes like you did… so so then if people start doing that that's kind of abusing the system in a way that's kind of the argument.
Sjors Provoost It's at least abusing the the altruism of the nodes in the network that we're not interested in relaying rare Pepes now you could say well you could just configure your note so it doesn't relay rare Pepes unfortunately that It gets you into a cat and mouse. Well, it's two problems. It gets you into a cat and mouse game of how do you even detect what a rare Pepe is. That might be more work than just relaying it, probably.
Aaron van Wirdum Well, you also can't do that. I don't know why you say that. You still have to accept the block, right?
Sjors Provoost Yeah, the blocks, yes.
Aaron van Wirdum It's still going to be in the block.
Sjors Provoost But most of the bandwidth is for relaying transactions.
Aaron van Wirdum Okay, that's fair. But in the end, you still have to process it one way or the other.
Sjors Provoost Yeah, that's true.
Aaron van Wirdum What was your second point going to be?
Sjors Provoost So you end up with this cat and mouse game. You don't know what is what. The second point is, and that comes to relaying transactions. If you decide to not relay certain transactions, your mempool is not going to be accurate. Which means that when a new block comes in, you won't have all the transactions in that block. You didn't have to download all these rare Pepes in order to check the block, which means you are not propagating blocks very fast, which can create network splits if too many people do that.
Aaron van Wirdum Right, yeah. Okay, so that's sort of the main argument against this. But as you mentioned, or as you alluded to at least, You can't really do anything about it, right?
Sjors Provoost No, from my cursory look at the mailing list. There's a reply by Andrew Poelstra, the cryptographer and long-time Bitcoiner.
Aaron van Wirdum I like that you're pronouncing his name in a very Dutch way.
Sjors Provoost Yeah, in the correct way. Basically, he says, as far as I know, there's no sane way of distinguishing one thing from the other. And if you add any complexity, you end up with a cat and mouse game. And also, it makes it more difficult to do complicated transactions that are legitimate because... The reason to remove all these limits in Taproot was to make it easier to reason about transaction and then you add a bunch of complicated anti-Rare Pepe rules you just throw away all these benefits yeah.
Aaron van Wirdum Okay so the other side of the equation the argument in favor of stuff like inscriptions is that Bitcoin long term will need to survive somehow which means miners need to be be mining they need an incentive to mine and because the subsidy the block subsidy is going to disappear we need actual fee pressure so it's good if people want to pay to use Bitcoin even if it's for other reasons than sending money just for the viability or the health of the system that's sort of the other side of the argument which I personally think I find more compelling I also want people to use Bitcoin yeah whatever and let's just bring… have the market figure it out. I'm leaning in that direction I don't know where you are standing on this.
Sjors Provoost I mean on the one hand that I would agree with that argument on the other hand whenever you use Bitcoin for things that it's not primarily designed for the incentives change and it's hard to reason what the game theory would be like under extreme circumstances like okay is there a different incentive for a 51% attack now if 99% of the volume is NFTs but you know if we go into a low subsidy regime that's uncharted territory anyway with or without NFTs so I don't I don't really know.
Aaron van Wirdum Yeah I think the important thing to mention maybe, as a sort of addendum to to my point is that so… The way I think about it right now is what's protecting nodes from having to upload and store too much data is the block size limit. Like that's why the block size limit is there and why it should be there.
Sjors Provoost And blocks are already two megabytes right now. And so even if this new thing becomes super popular, blocks might grow to four megabytes. So the the problem only gets two times worse, and by only I mean it's not exponentially worse. Yeah two times worse is bad but it's it's it's linear right? It doesn't get exponentially worse it's not like a million times bad it's just two times bad. So that's also why I'm not worried about it because any problem that is a problem now like if if it gets twice as bad… It shouldn't be fatal unless we were already at a very fragile point where a 2x increase of some problem is, which is hopefully not the case. So I'm not super worried about it because it's quite limited in that sense.
Aaron van Wirdum Yeah. And then it's sort of an extension of that is if a fee market develops what we want and what we sometimes have it kind of, you know, kind of comes and goes, it seems like, but there's some fee market-ish dynamics going on. Anyways if that continues to develop, I just can't imagine that uploading Rare Pepes is going to be the most valuable thing. I don't think that's going to win.
Sjors Provoost You can't predict the future.
Aaron van Wirdum That's right. But I can sort of speculate, right? And I just can't imagine that this is going to be the thing that people will use such a valuable system for.
Sjors Provoost It's the most inefficient way possible to upload a file. And it doesn't give you much more long-term protection than torrents. So there's another downside that I'm a little bit worried about which is more political than technical, which is that if people start using this to upload bad things, let's just say, bad things have already been uploaded to the blockchain in the past, but it was very incidental. So you can very easily argue like, well, that's just some weird guy doing something weird and it's not a real problem. But if it starts happening with gigabytes and gigabytes and gigabytes and the FBI gets really annoyed and it starts lobbying Congress, then this could be a stick that's used against having a full node. Yet another argument like, oh, well, you can use Bitcoin, but you have to use an exchange because if you use a full node, you have all these bad things on your computer and we can't tell if you're just using Bitcoin or you're doing these bad things. And so it could be another little political push away from self-custody. Or even a FUD campaign away from self-custody.
Aaron van Wirdum Right. Interesting. Yeah, that's... I haven't thought about these arguments, so I'm not going to…
Sjors Provoost But that argument is only four times as bad as it was before because you can already do these things with OP_RETURN. Now you can do them four times cheaper. I don't think that's a game-changing fee difference. So it's only about whether this thing even becomes a hype because it might be that nobody cares about this possibility and nobody uses it.
Aaron van Wirdum Right. Okay. So we've explained what inscriptions are. I think, I mean, I'm sure there's, you know, more nuance to dive into if you're really interested in that. But I think we've covered the main sort of reason why there's a controversy in the argument for and against. Should we really quickly, before we end this episode, mention the ordinal part of it or how that works? No. No okay yes well I I think I'll give you like a one sentence explanation right so I think the idea is when you upload an inscription so when you're uploading the data then I think one of the satoshis in that transaction… is like the… I mean it's so dumb NFTs are so dumb Sjors, I can't I have so much trouble… have you okay I should first explain the thing. I I just don't understand why people still take this seriously. Okay let me ask you another question how much longer how after what time… should I seriously like you what's your opinion on NFTs? Maybe first of all like is this because I think it's absurd.
Sjors Provoost Yeah I think NFTs might make sense but they don't need a blockchain.
Aaron van Wirdum Well that that's why they're absurd. Like what are people what are they doing?
Sjors Provoost I mean I I could imagine making it say you are an artist you can run a little website that you know sells tokens representing your art and you can keep track of who owns which token. You don't really need a [unclear]…
Aaron van Wirdum But even then you don't own the art, right? What do you own?
Sjors Provoost Well, you can do that. If you are the artist, you can make this website and you can put a contract on that website that promises maybe through some sort of trust construction. That the blockchain really is what legally happens so you can say that…
Aaron van Wirdum Okay yeah fair you can do that but you don't need a blockchain for that right?
Sjors Provoost You don't need a blockchain for that. So you can say whatever the database said is true and the nice thing about that is that a judge couldn't you know reverse transactions because with the blockchain you might end up with a situation where the you know you let's say you have a trust that says okay whoever has this this NFT really is the legal owner of this of the IP of the artwork. And then some guy in North Korea steals the Bitcoin transaction or whatever transaction it is. And then a judge says, you know what? This trust may say that, but actually, legally speaking, the US government is now the owner of this particular NFT. And so that means that now you need to look at the blockchain and all the court records to decide who owns which NFT. And you have a mess. Whereas if you have a normal database and the judge says something, then you just change the database. So yeah I I think NFTs are rather pointless with the blockchain
Aaron van Wirdum I mean yeah let's take this concrete example before we get into the weeds of all kinds of weird stuff so now you know you're uploading you know, a Pepe image into the Bitcoin blockchain. And then by doing that, there's now Satoshi that says you own the Pepe image. And then if I send the Satoshi to you, then you own the Pepe image. But the Pepe image is literally on the blockchain. Like that's the point. Anyone can download it. So what are we even...
Sjors Provoost Well, if you're talking about ownership again...
Aaron van Wirdum Am I taking crazy pills? The rare Pepe is on the blockchain. How do you own it if you own it? What does it have to do with that?
Sjors Provoost Ownership and possession are not the same thing, right? So I can possess your bicycle and you can go to the police and say, hey, this is my bicycle. I own this bicycle. And then the police will change the possession of the bicycle.
Aaron van Wirdum Right.
Sjors Provoost So the same goes for NFTs. If somebody draws a rare Pepe, then while they are the artist, they own the copyright. And they can make a contract with you.
Aaron van Wirdum Oh no I mean I get copyright. So but then in that case you would have to actually…
Sjors Provoost The fact that the image is this…
Aaron van Wirdum Kind of stuff with copyright laws… yes right. But then we're back to why do you need blockchain for that? You don't agree right? Okay anyways I think we're not going to get into ordinals anymore the the idea of ordinals is you have a colored coin that actually refers to the inscription and you can have fun with that if you're into that kind of stuff exactly. All right.
Sjors Provoost I think we've covered everything. If there's any other thing you may want to Google, Google MAX_STANDARD_TX_WEIGHT with underscores, because that's the real limit that applies here. And I'm looking forward to see the first four megabyte Bitcoin transaction with a picture of, I don't care, somebody. And thank you for listening to Bitcoin,
Aaron van Wirdum Explained.