Aaron van Wirdum Live from Utrecht, this is the Van Wirdum Sjorsnado. Hello. Hello. Hello.
Transcript
Ruben Somsen Hello.
Aaron van Wirdum Hello. Hello. Ruben, welcome back.
Ruben Somsen Thank you. Good to be back.
Aaron van Wirdum We're going to discuss DriveChains today, and you are our in-house DriveChain expert.
Ruben Somsen Well, I'm not quite Paul Sztorc, but I'll try my best.
Sjors Provoost Sztorc Substitute.
Aaron van Wirdum Yeah, you've designed your own sidechain type of solution, so you're at least sort of thinking about this kind of stuff on a regular basis.
Ruben Somsen That is true, yeah. I've done a lot of thinking about this.
Aaron van Wirdum So you're going to help us out today?
Ruben Somsen Yep.
Aaron van Wirdum Okay, well, so DriveChain episode. That obviously means we're going to spend most of the episode complaining about how Bitcoin Core doesn't want to make any changes.
Sjors Provoost Yep, absolutely.
Aaron van Wirdum That's a joke. I actually really like Paul. He's one of my favorite people to listen to, but he does go on tangents sometimes.
Ruben Somsen Yeah, hopefully we'll be able to kind of give a different perspective from Paul's perspective. I think it's always good to hear multiple explanations from multiple people. So this hopefully helps people to understand drive chains more deeply.
Aaron van Wirdum Okay, so let's get into it. First of all, so drive chains are a type of side chains. We've already discussed side chains on this podcast, I think twice now. But nevertheless, let's very briefly mention the benefits of side chains. Do you want to go? Yeah, Ruben.
Ruben Somsen Okay, yeah. Basically, this is a two-way pegged sidechain, meaning that you can actually move Bitcoins in and out of this chain. Chain itself kind of runs completely separately. So there's no attachment in terms of consensus or anything like that. So you can either run the Bitcoin blockchain and the sidechain or just the Bitcoin blockchain. But anyone who wants to run the Bitcoin blockchain does not have to necessarily care about the sidechain unless they want to use it. And the kind of nice thing about this is that you can have any kind of chain with any kind of consensus rules. You could have an Ethereum chain, you could have a Zcash chain, anything like that. And now you can move your Bitcoins to it and do whatever you want with it and then move back to Bitcoin again.
Aaron van Wirdum Yeah, so DriveChain is more of a concept of a sidechain. It's not a specific sidechain. It's a way to do sidechains. And they have, I think, two sort of test net sidechains right now. One of them is like the big block. Or is it even testnet? I think so, right? Yeah, it must be.
Ruben Somsen They are definitely tested there. There are no real bitcoins on there as of right now.
Aaron van Wirdum So one, they have a big block version and they have a Zcash version.
Ruben Somsen Yeah, that's what I believe.
Sjors Provoost I think back in 2017, I briefly experimented with the version of drive chains they had then and tried to make like a gigabyte chain just to see what would happen. I started messing with the consensus code and it was really difficult, as you can imagine. And I actually found... Not a bug, but like a lacking thing in the test suite for it that was making it really hard to debug. And I made a pull request to Bitcoin Core. And that's actually how I got massively distracted into contributing to Bitcoin Core and didn't pay attention to the drive chains anymore.
Aaron van Wirdum Oh, wow, really?
Sjors Provoost That's just a little backstory.
Ruben Somsen That's crazy.
Aaron van Wirdum Right. But anyways, to sum it up, so a sidechain, including drive chains, are a way to use Bitcoin on a different blockchain with different rules. Yeah. Another benefit I want to mention, because this is something Paul likes to mention, is that on the sidechain users still pay fees. And these fees would ultimately go to Bitcoin miners, which arguably helps security of the Bitcoin network.
Ruben Somsen Yeah, and that's specific to the way that Paul suggests doing consensus for drive chains, for these separate blockchains. And that's through blind merged mining, which we also did an episode about blind merged mining in a perpetual one-way peg. And so in that specific proposal, any type of merged mining really, the fees would go to the Bitcoin miners. Theoretically, you could also do it as a completely separate proof of work consensus mechanism. And then the fees wouldn't necessarily go to the Bitcoin miners, but just the person who mines the sidechain.
Aaron van Wirdum Right. Yeah, I think for DriveChain, there are two main innovations, two main proposals, which are BIPs 300 and 301. One of them is merged mining, and the other one is the pegging in, pegging out mechanism.
Ruben Somsen Yeah, 301 is blind merged mining, and 300 is the pegging out mechanism mainly. Yeah, and pegging in, I guess, yeah.
Aaron van Wirdum Right, so should we discuss the blind merged mining part? We already covered it in previous episodes, but I think it's worth at least sort of... A little recap. Yeah, a little recap. Who wants to give it a go?
Sjors Provoost Yeah, so the idea of blind merge mining, let's first say the idea of merge mining, right, is that a Bitcoin miner also mines another chain and then they put something in the Bitcoin chain to indicate that they've mined that other chain. And this means that the Bitcoin miner has to run software for Bitcoin as well as this other chain. And the problem with that is that let's say these sidechains become really profitable. Then because miners are competing, then every miner has to essentially run all these nodes for all these sidechains. And that means they have to do a lot of validation work. And that's exactly what we want to prevent, basically.
Aaron van Wirdum Why?
Sjors Provoost Well, because we want miners to be able to... be in very bad circumstances, say, behind a Tor node in the middle of nowhere on the moon, and still be able to produce blocks without getting orphaned and without having to download terabytes of data from Earth. Right. So what Blind Merge Mining tries to solve this problem by saying, well, dear miner, just put this hash in the blockchain, and it could either be in the coinbase or some other way. And if you do that, you don't have to care what that hash means. Just put it in there and we'll give you some money to do that. That's the essence of blind merge mining. So that means the miners in theory do not have to check anything on these other chains. And so it would not drive up the cost for miners.
Ruben Somsen Yeah, I have nothing to add to that. I think that's exactly right. So specific to drive chains, it's via the Coinbase. So it's kind of a specialized soft fork in order to implement this blind merge mining mechanism. It's not necessary to use it for drive chains. You could also use it for other types of chains. And it's very similar to my blind merge mining proposal, which is, in a sense, it's a derivative of what Paul Sztorc's work. But the difference is there that you don't really need a specialized soft fork, so that's nice.
Aaron van Wirdum So why does Paul's version require a soft fork?
Ruben Somsen Well, technically, it no longer does, because he could utilize my work.
Sjors Provoost Without making it more complicated, let's assume he cannot utilize your work, which also requires a soft fork.
Ruben Somsen yeah well yeah it requires a yeah non-specialized soft fork so at least you don't you don't need to change anything about Bitcoin consensus specifically for enabling blind merged mining
Sjors Provoost Yeah, what I liked about the current version of that BIP proposal is that it allows sidechains to propose blocks to Bitcoin miners. So essentially you have people on the sidechain who want to see a new block in the sidechain and they give a hash to the Bitcoin miners. But they can offer multiple, I think multiple sidechain miners can offer blocks to various Bitcoin miners in a sort of an auction process. And without like going into too much of the game theory. One interesting aspect of that is that you could use Lightning or a slightly modified version of Lightning to do this. Because the nice thing about Lightning is that you can do atomic trades. Essentially, you can say, okay, if you mine this block, for if you mine this hash for me, then I'm going to give you money. And the way they do that here is, I think they're saying that if this sidechain block appears in the Bitcoin blockchain, then I'm going to give you money. And so that does require a soft fork because normally what you do with Lightning is you're saying, if you reveal the secret to me, I'm going to give you the money. Or if you reveal the secret to the blockchain, the money is mine, essentially. But the problem with revealing a secret is, well, somebody could mine a block and then the secret is revealed because the block exists and it has a secret in it. But now the block gets re-orged. So if you want to incentivize miners to make sure that block does not get reorg'd, then it's not enough to just reveal a secret because the secret can't be disappeared again when there's a reorg. The secret is just known. So the soft fork would consist of something like saying, does this thing exist in the coinbase? So it has to be some sort of check to see some sort of state in the Coinbase.
Aaron van Wirdum Yeah. So does this also mean... that on the drive chain, side chain, there would only be one block for each Bitcoin block? One block every 10 minutes, basically?
Ruben Somsen Yeah, so there could be multiple drive chains, right? So there could be multiple blocks for every drive chain, but for every drive chain, there can only be one block per Bitcoin block. I see. Yeah.
Sjors Provoost Yeah, I mean, you could probably have blocks in between, but they just wouldn't be enforced by Bitcoin consensus. So they probably wouldn't be very valuable.
Ruben Somsen Yeah, you'd have to have some. I mean, theoretically, there are ways probably to get that to happen. Well, that's what RSK
Aaron van Wirdum does. RSK sort of uses the same strategy as Bitcoin mining pool where there are sort of almost blocks that count.
Sjors Provoost But to really have it enforced, the sidechain would probably need proof of work itself to have at least some security on those intermediate blocks. But then the reason why Bitcoin has 10-minute blocks is because otherwise the orphan rate gets too high. So I don't think there's much utility in having faster blocks.
Ruben Somsen So specific to RSK, they use a federation, right? the federation can sign blocks faster and then every 10 minutes you kind of checkpoint in whatever the federation signed in the past 10 minutes into the Bitcoin blockchain and then it becomes irreversible so it's sort of it's sort of like a level of security that you have right where it first the federation signs and then you assume eventually it appears in the Bitcoin blockchain and yeah you can take that as already having consensus as soon as the federation signs essentially
Sjors Provoost Yeah, but if we don't want federations, which I think in the Drivechain concept, we don't. You need something. But to be clear, the BIP 301 about blind merge mining suggests one approach that uses Lightning that... I think clearly requires a soft fork, and I think Paul also agreed on that. Yeah. But they describe other mechanisms to do this type of auctioning, where basically the game is, if you create a block for me, then here's some money. And I guess there's various ways of doing it, but you probably need some way to prove that something exists in a block. So either a way to verify a Merkle proof or something else. But that itself would be a generic soft fork, right? Being able to verify a Merkle proof. Yeah. So the BIP is a bit short on details. I'm just going to... say that.
Aaron van Wirdum Yeah, fair enough. It's also a bit of an implementation detail though, isn't it? Like this is a solvable thing?
Sjors Provoost No, it's not. Because the problem with a lot of these concepts, we have this issue with, and this is not really comparable, but I just want to illustrate a point. You had Vitalik pitching quantum computer simulators.
Aaron van Wirdum That sounds brilliant.
Sjors Provoost Yes. But the details really, really matter because you can give yourself the illusion that you've solved the problem, but actually you have shoved the problem somewhere in a corner that you call implementation detail. But then if you go into that little corner implementation detail, you get confronted with the original problem again. Same with the Oracle problem that a lot of other chains have. They think, oh, we solved the Oracle problem. But there are still some implementation details left. And it's like, oh, crap. Actually, we have not solved the Oracle problem. So, no, I would not say that the lacking details matter. But they have implemented some of this stuff, I think. Just not the lightning variant.
Ruben Somsen I think it depends on the situation, right? And at least my feeling here is that the implementation details are not going to get in the way of whether or not this works. But, yeah, maybe I'm wrong.
Sjors Provoost You may be right, especially because there are multiple proposals for blind merge mining that could all be fit into this puzzle.
Aaron van Wirdum Yeah, I think that's what I was getting at. Personally, I think the other part of the drive chain proposal is actually the more interesting one. So the important thing is, for listeners that don't know this, the coins on the drive chain, on the side chain, are supposed to have the same value as Bitcoin. And for that, it's necessary that you can move the coins to the side chain as well as back.
Sjors Provoost Exactly.
Aaron van Wirdum And that's sort of the trick of drive chain.
Sjors Provoost Yes, because the last time we talked about blind merge mining and side chain, we had this... perpetual one-way peg, which, you know, proof of pain or other terms of use for it, the money would basically go into the sidechain, but it would never come back. And that, you know, we talked about that in some length there. I see that as problematic. Other people see maybe it's possible. At the very least,
Ruben Somsen I mean, at the very least, it's very limiting, right? Like the drive chain's concept is just superior in terms of functionality. So definitely. If you have a secure way of moving your Bitcoins back to the Bitcoin blockchain, that's really, yeah, the best thing.
Sjors Provoost Yeah. So I guess maybe we want to quickly do a high level view again, because now I think I get it. There's two things you want to do with a good side chain. One is you want to be able to produce blocks and like recognize which blocks are official. That's what blind merge mining does. And the other is move coins in and out of that specific side chain. And that is what this other BIP that we're going to talk about, the hash rate escrow. does those two separate things
Aaron van Wirdum yes and
Ruben Somsen yeah that's definitely kind of the the key part of sidechains moving your coins into a sidechain is easy it's just freezing your coins or or like my proposal burning your coins
Aaron van Wirdum essentially just sending it to a Bitcoin address
Ruben Somsen sending it to a Bitcoin address yeah that is the question then is when are these bitcoins going to be spendable again and that's the peg out
Aaron van Wirdum Yes, you mean when are they going to be spendable on the Bitcoin blockchain again?
Ruben Somsen Yes.
Aaron van Wirdum So you send them to an address. At that point, everyone knows, okay, now these coins are really on the sidechain, so they cannot move on the Bitcoin blockchain. And then at some point, when you're done on the sidechain, you should be able to lock them on the sidechain or burn them there or whatever. And then they should be movable on the Bitcoin blockchain again.
Ruben Somsen Yeah, and that's really the key, right? How does the Bitcoin blockchain know? Who owns the coins on the sidechain, on the drivechain? And are these coins that are... Somebody's suggesting, hey, I'm going to spend these Bitcoins that were on the sidechain and they're unfrozen again.
Aaron van Wirdum Yeah, now I'm going to send them to my own cold storage. Yeah. And then how does... Bitcoin blockchain know that this is a valid transaction, that this is allowed.
Ruben Somsen And there is a naive way of doing it, which is, I think, good to point out, which is that everybody who runs Bitcoin also runs the sidechain. But if you do that, it's not really a sidechain. The whole point of the sidechain is that you can separate the two and you don't have to run both. So then we're violating really the core principle and it becomes more like a block size increase. So we want to avoid that.
Sjors Provoost Well, worse than a block size increase, because we've just said we can have arbitrary rules on that sidechain. So we have a block size increase and a rule complexity increase.
Ruben Somsen Yeah, I mean, generally, I guess people call that an extension block, right? That's roughly the same proposal where you have a separate space inside of the Bitcoin blockchain that can have different rules.
Sjors Provoost Yeah, you have multiple, I guess, ways of looking at it. But if you consider SegWit an extension block, I guess in that direction.
Aaron van Wirdum Yeah, I don't, but yeah.
Sjors Provoost Okay, but then SegWit has to really...
Aaron van Wirdum We're getting off the rails.
Sjors Provoost Sorry.
Aaron van Wirdum Back to the rails. Yes. yeah so the idea of a sidechain is that the people who want to use the sidechain can use the sidechain and the people that don't want to use the sidechain don't need to care about the sidechain still somehow the coins must only move on the Bitcoin blockchain when the legitimate owner of the sidechain says they should move yeah and not everyone on the Bitcoin blockchain knows who's the legitimate owner or any of these details okay so ruben how is this solved
Ruben Somsen hash rate escrow so that's the way paul calls it in BIP 300 essentially there is a very simple rule that says you give your money to the miners and the miners can spend it but very slowly over the course of three to six months the Bitcoin miners are going to vote on whether or not they want to allow one of these transactions to be spent. So let's say I come out of a sidechain and I send a transaction to the Bitcoin blockchain. I say, hey, I want to spend this UTXO that came from a specific drive chain. then the miners can say like, okay, well, we're going to vote on it. And every time a miner creates a block, it says, okay, sure, yeah, this is a valid pegout. And after three months or six months, if half, roughly half of the miners have said, yes, this is a valid pegout, then I get my coins.
Aaron van Wirdum Well, I think, so miners can do three things. Miners can vote in favor of the transaction.
Ruben Somsen Yeah.
Aaron van Wirdum They can ignore it. Or they can vote against it.
Ruben Somsen Yeah.
Aaron van Wirdum So if it's like half-half, it's going to take forever.
Ruben Somsen Yeah, theoretically it can be worse, right? Because if you have like... You have to have 50% yes votes, but every no vote... brings you back again so yeah so definitely you need like yeah there
Sjors Provoost can be multiple competing peg out transactions right so what happens is the sidechain miner or whoever proposes says hey i'd like to move these coins back to the Bitcoin blockchain and another one does another proposal and then miners start voting on those and presumably they would take whatever is most favorable for them but they also want to make sure it's not violating the rules of the sidechain
Aaron van Wirdum yeah i don't want to immediately dive into the catch-22 here but yeah let's go into this process a little bit more. First of all, let's say 100% of miners agree with the transaction. How long is it going to take in that case?
Ruben Somsen In that case, it only takes three months. If everybody votes, yes.
Aaron van Wirdum And then if it's like half of the miners and the other half doesn't care, then it takes about six months. And if it's like half of the miners vote in favor and half against, then it's going to take forever.
Ruben Somsen Anything worse than that, the peg-out just becomes invalidated. After six months, you're done.
Aaron van Wirdum Right.
Sjors Provoost So what percentage of miners can block this? It's always a majority, right? That can make this happen.
Ruben Somsen Yeah, because there's always the possibility of re-orging the Bitcoin blockchain. So no votes can be re-orged out by 51% of the miners. In any case, 51% of the miners can always make a pegout go through, regardless of this mechanism. But if you assume there's not going to be any Bitcoin reorgs, then you need, it depends on how many no votes there are, right? For every no vote, you need a yes vote, and you need 50% yes votes.
Sjors Provoost Okay, my math is not that amazing. Hopefully I'm right. Another thing that was in the BIP that maybe we should mention is that how do you even make these drive chains? Or do we want to go somewhere else first?
Aaron van Wirdum Yeah, let's go somewhere else first. Okay, first question, Ruben. Why wouldn't miners just steal the coins for themselves? I think that's the main question, right?
Ruben Somsen That's the question we've been kind of ignoring up until now, which is definitely the big question here. So the main reason why drive chains would work really all depend on this argument, which is that... Miners should want the sidechain to exist because they get fees from it and because the value of Bitcoin itself goes up in value if there are all these sidechains out there that people can use. We need miners to want the chain to exist and to want to basically give people their pegouts when they ask for it. Other than that, there is no reason. So it's really a question of incentives. And if the incentives are aligned, the sidechain gets to exist. If the incentives are not aligned, the sidechain just dies.
Sjors Provoost And I guess this also creates two things. This creates a collective action problem, I think. Because you might have one miner that says, I don't care about this sidechain and I don't care about the future, so I'm going to take the most money, even if that's an illegal transaction. Yeah, no, that's, I think, the collective action problem, right? So if a majority of miners do feel that these sidechains are worth keeping around for the long term, they're not going to take the short-term profit of theft. And they're going to punish other miners who do try to do that. Or not punish, but at least they're going to actively vote against that type of behavior. Because you might have a situation where in the beginning, say only 1% of the miners care. In the beginning, there's not enough money at all. So maybe no miner does anything with the sidechain stuff. Then there's enough fees out there that some miners will start flagging this thing because they would like to have that other revenue. Then other miners might just passively copy whatever those first miners are doing because they would like the extra free revenue. Why not? Then at some point, somebody starts cheating. And then one miner starts cheating or starts cooperating with the cheat, either deliberately or accidentally because he's not checking. So then the game develops from there.
Ruben Somsen Yeah. The question then kind of becomes, how do these Bitcoin miners make sure that the peg-outs that they're choosing are correct or not? And this is kind of a mechanism that is not really explicitly laid out, but essentially the idea is that... The Bitcoin miners want to do the right thing. They want the chain to exist. That's our assumption. And if there is some kind of pegout, they're being lazy and they're moving a pegout forward that's not supposed to be moved forward, then presumably somebody will talk to the miner and say like, hey, what you're doing is incorrect. Please go and check. And the first check that they can do is an SPV check. So they can take the drive chain and they can just download the headers. And inside of the header is also contained the pegout transaction. So you get an SPV proof of whether the pegout is valid or not. So this is not a guarantee, but it means that 51% of the miners off the drive chain, they think that the pegout is valid. And then if that's not good enough, they would have to go and basically run the full drive chain and check.
Aaron van Wirdum But this would require on someone telling the miner that something's up. So it's not... purely blockchain based in that case someone has to contact them through irc or whatever it is
Ruben Somsen yeah it's kind of a assumption of good behavior so you're assuming that nothing is going wrong and if something is going wrong you're assuming that somebody will out there will kind of give you a nudge and be like hey do some extra work here because it's not going right
Sjors Provoost right but then then the question is what becomes the equilibrium yeah one equilibrium could be okay, now all miners have to check all SPV proofs all the time because otherwise people will constantly be cheating them because there is no cost to cheating. True. Anybody can suggest, I think everybody in the world can suggest a transaction that takes all the money out of every single drive chain and sends it to them personally. Yeah. And the only cost for that is zero, I think. They just broadcast a transaction. Yeah, yeah. Maybe it has to confirm.
Ruben Somsen There has to be a, I mean, that action, yeah, the action needs to be in the Bitcoin blockchain. So they need to roughly send one transaction to the Bitcoin blockchain. So there's
Sjors Provoost probably, you know, at least going to be somebody who does that out of, as a matter of principle.
Ruben Somsen Yeah. Well, the question is, do they get the votes, right? Are the miners going to vote on that peg out?
Sjors Provoost No, but they're going to, the problem is that the miners, because somebody is doing that, they have to do the SPV checking unless they know who this bully is and they systematically ignore this, this bully.
Ruben Somsen Yeah. If you assume all miners are lazy and they do nothing except for maybe one miner out there and that miner is voting on the right thing. and all the other miners are just like, oh, let's just follow that guy, then the equilibrium actually works out. Okay,
Sjors Provoost yeah. If you have one non-lazy miner who actually checks the original chain at some level, and the other miners lazily follow, yeah, that could work.
Ruben Somsen But yeah, I mean, it's definitely, like, the worst case is that every Bitcoin miner is also a DriveChain full node user, and then you get back to the problem that you described earlier about the merge mining.
Sjors Provoost Yeah, that's what I... Yesterday, I think in the preparation, I called it the catch-22. If you get to a situation where every miner has to verify every drive chain in detail, not just SPV, we just lost the entire benefit of blind merge mining. But it's not guaranteed that that's going to happen, but that is a big concern.
Aaron van Wirdum What happened to the UASF solution? Because I do remember Paul talking about this at some point, where if miners tried to steal the coins, then drive chain users could deploy a UASF to stop. the coins from moving on the Bitcoin blockchain.
Ruben Somsen Yeah, so that is a theoretical possibility, which is good to kind of go through, I guess. So it's theoretically possible that miners try to steal all the coins from a sidechain that is quite popular. And then all the sidechain users, which are also Bitcoin users, they say like, hey, look, miner, if you let this transaction go through, we're just going to reject that block that will spend this transaction. So don't do that because we're going to basically threaten to fork off of Bitcoin. And if you want to keep these users here with the Bitcoin blockchain, you got to do what we say. And it's presumably a UASF because. Like what we're assuming is kind of similar to the Segwit situation where we don't really know whether there's like a majority who's going to enforce this. If the majority of the Bitcoin users threatened that, then it would work out. But the assumption is that with sidechains, you don't have a majority of users. You have all these niches, right? You have all these smaller amounts of users. So maybe optimistically you have like 20%.
Sjors Provoost And not an intransigent minority either because it's not a sort of randomly distributed subset. across all Bitcoin users like you might have with the original UASF movement where you don't really know who's going to be resisting it but here you know well only the people who actually care about this side chain are going to be the ones protesting but the rest of the network doesn't care yeah and does not want to pay the very high price of a of a like large reorgs that you would have to suffer because in order to do a UASF you have to be willing to actually come through with reorging blocks and quite a lot with these drive chains.
Ruben Somsen I mean, I guess there could be like an optimal, there could be like the best situation possible, which again, like I don't think this works at all, but theoretically you could say like, okay, well, everybody who is a Bitcoiner wants the drive chain to exist because even though they don't use it themselves, they're happy that the Bitcoin price is higher than it would have been if this drive chain didn't exist. So they are happily kind of going along with this UASF, something like that.
Sjors Provoost But the cost is really high, right? Because a UASF means you have, if it goes wrong, you have multiple exchanges listing different coins. You have history disappearing from under your wallet where you thought you got a coin and then it got replayed on the other side. This is not a cheap thing. So you better be really dedicated to whatever that sidechain represents. It only represents like a clone of Ethereum. I don't know if I'd be willing to die on that hill.
Aaron van Wirdum Well, the idea behind an intolerant minority is that the majority shouldn't really care either way. They shouldn't really care which chain wins.
Sjors Provoost But the cost has to be low to that majority. So in the case of the kosher food, for example, it's a very low cost to drink kosher soft drinks. But it's not a low cost to no longer eat meat.
Aaron van Wirdum Sure. But the non-UASF chain can reorg into nothing while the UASF chain cannot. So it's not like staying on the original chain is not going to come at a cost or anything.
Ruben Somsen And I mean, the argument here would be that it's a UASF or any soft fork is safe as long as the majority of users or the economic majority enforces it. So if everybody is really in line and doing the soft fork, then theoretically it would be safe. But I mean, we're talking about all this, but in practice, and this is also something that Paul Sztorc said, eventually he was like, well, I don't really think that this is the security of a drive chain. It's not that we expect users to fork away from Bitcoin in order to enforce miners doing something. No, the answer is really if miners try to take the money. then that is just game over for that specific drive chain.
Aaron van Wirdum Well, not just for that specific drive chain, but potentially for all drive chains because it would undermine trust in drive chains altogether.
Sjors Provoost So maybe that's a good moment to go to where I was trying to sidetrack the conversation before. In this latest proposal from two years ago, I think, everybody can propose a new drive chain. Now there's 256 slots, so one 8-bit. basically thing for it everybody can propose a new one and the rule is that if my by broadcasting some sort of transaction or thing and the rule is that if enough miners say okay we we like this proposal it'll get activated so it's kind of like soft forks but in this case miners are really i think really voting whereas they're not signaling readiness but they're kind of really having an opinion about it because it's their potential revenue So they can do an initial assessment of how viable is this sidechain concept. And if these slots all get filled... then I believe there is a six-month window in which you can simply override an existing slot and disappear that entire drive chain from existence. There may be some caveats there. But that means you can have some sort of auction of viability. So initially, you might have 256 completely useless drive chains because the miners are like, yeah, whatever, it's free revenue, we'll give it a shot. And then they start dying and dying and dying, but a couple of them don't die, and so eventually the slots get taken up by very viable. drive chains yeah so you have some evolutionary pressure there to make it work to find a way to make it work
Ruben Somsen yeah there's a limited number of slots for for these chains
Sjors Provoost yeah that's all
Aaron van Wirdum i i want to i want to mention one other thing because we haven't mentioned that so you can move into the side chain by sending coins to an address you move out of the side chain by having miners do this voting thing which takes like six months but i want to clarify that If you want to use the sidechain or if you want to leave the sidechain, it doesn't necessarily mean you have to send your own coins to that address or wait six months. You can just exchange your Bitcoin with someone who's already on the sidechain or through an exchange or through an HTLC or immediate trustless transfers. Yeah,
Sjors Provoost and we already see some of that in action for Liquid, for example. There are ways to directly swap in and out of Liquid.
Ruben Somsen Yeah. And I guess it's specifically good to point out that with drive chains in particular, the peg out mechanism is kind of expensive and slow, right? It takes months. So your coins are going to be stuck during that period. Presumably that means, you know, you can't do anything else with those coins. So that's a loss to you. And it's made in such a way that only one peg out happens per chain per period. Because of that, you kind of have to have one person making big peg -ins and big peg-outs. Well, peg-outs mainly. And then everything else, everyone else, just has to do atomic swaps. And that's faster as well, and presumably cheaper, although I guess that will also have some kind of price premium. But yeah, that's the main mechanism through which you would be moving in and out of these chains as a user.
Sjors Provoost I noticed a small detail there that was kind of nice. I think they have a rule where... If you want to withdraw or deposit, you deposit to one address, quote unquote, on the Bitcoin blockchain, and you have to spend everything from that address when you do it. So you're basically spending the existing UTXO and creating a new one in its place. So there's always one UTXO that represents that entire chain. So you're not loading the UTXO space, which is nice. And in terms of the implementation, like how do you spend money that's not yours? Well, the private key for the drive chain is just public. So that's why it's really a soft fork. You have a private key that everybody knows and everybody's spending from that private key. But the new soft fork rules make sure that you don't just get to spend money from a private key. From that specific, very special private key.
Aaron van Wirdum So to voice Paul's frustration for a second, why isn't this a thing yet? Why isn't everyone working on this? Why don't we have drive chains already?
Sjors Provoost I think there's a whole bunch of reasons for that. Is it going to happen? I mean, the universe is going to be around for another 100 billion years. So I think just from a thermodynamics argument, it will happen. Or maybe a Litecoin. My point is, well, I think there's a couple of things. There were different proposals that, you know, this proposal has been around since 2007-ish. And right, 17, sorry. Right then you had SegWit was already in development and that was the main focus. both in terms of development and in terms of just mental energy, because people were just going completely nuts over all sorts of things. And SegWit made way for Lightning, which was a very strong, I think it was more clearly developed, even though it wasn't finished in terms of operating, so he couldn't really know that it would work. But it conceptually worked out very well in a lot of detail. So I think that just got priority back then. And then now we have a focus on Taproot. And even though Bitcoin is decentralized... There are just a very small number of developers who can actually do this, who have the time for this, who have the time to review it, who have the time to do all sorts of things around it. So even very simple soft forks.
Aaron van Wirdum Yeah, they seem like fairly minimal soft forks, no?
Sjors Provoost Well, SegWit was a very complicated soft fork. Yeah,
Aaron van Wirdum I mean the drive chain BIPs.
Sjors Provoost If I were to rank them, I would say SegWit is more complicated than drive chains. Taproot is more complicated than drive chains. Although... in a very different place. So I don't know if you can compare complexity in one place versus complexity in another place. There's just different trade-offs, right? Some places are more robust where you can make more mistakes than in others. And then you have something that's much simpler than drive chains, which is no SIGHASH, NOINPUT, or whatever the latest politically correct name is. That is a, I don't know, 20-line soft fork. Much, much, much simpler than drive chains and also... I think, game theoretically, much simpler. There's less things going on with new chains coming out of nowhere.
Aaron van Wirdum So is this the main bottleneck? Just not enough developer mindshare?
Sjors Provoost I think it is in a place in terms of complexity from code, where it would need mindshare a little bit. From code complexity, it would need probably similar mindshare than Taproot does, even though it's a bit simpler, but there's other nooks and crannies that it's touching. And then... But from an implication standpoint, from what is the game theory here, it's very uncertain. We just had a long discussion about all these things. And once it's uncertain, you have to think about it until you start procrastinating. So it's going to go down the list if the alternative that you can work on is something that's very concrete and already thought out a little bit further. Fewer uncertainties in it. And the other thing I think is also practical because of that. I don't think it's cause and effect here, but the proposals that we just looked at are not very detailed at all. Like I had lots of questions about it just by reading it once.
Aaron van Wirdum Do you mean the BIPs?
Sjors Provoost Yeah. They're just not fleshed out enough. But of course, the reason they're not fleshed out enough is because not enough people are working on it. You can't have Paul Sztorc do all that by himself. And he has to give these really long presentations complaining about Bitcoin, which is very time consuming. Yeah, that's just what it is.
Aaron van Wirdum Ruben, what do you think? Do you agree? Why is not everyone working on DriveChain and why is it not a thing already?
Ruben Somsen Yeah, I think Sjors hit the nail on the head here with, I think that really that one assumption, whether the miners are going to steal or not. Like for me personally, I kind of feel like it's good to give it a shot. Let's try it and see how it goes. But then from an implementation perspective, it's like... well, are we going to take all these soft fork risks for something that might work and maybe won't work? And then I can see how it's demotivating to actually go and work on that and implement it.
Sjors Provoost Keep in mind what happens if a soft fork is screwed up, right? If there's a really bad bug in it, it probably means you need a hard fork to fix that bug. But if you ever have a hard fork for any reason... oh man, that's annoying because why don't we just fix the coin supply?
Aaron van Wirdum So you keep discussing this in the terms of we and why don't we do the soft fork and we, and I think you also mean Bitcoin core developers.
Sjors Provoost I mean, we is in the world, right?
Aaron van Wirdum Yeah. Okay, well, but then my question is, wouldn't it be the type of soft fork that could just be hash power enforced? Because it's already depending on miners. So can't you just launch an alt client? for miners and have them do this soft fork thing and then people can use it if they want to so it's not a Bitcoin core thing it's just
Sjors Provoost still creates the same technical risk because if the miners enforce something and they have a bug in their consensus code the rest of the network has a problem which could plummet the price which hurts the miners so i don't think it matters whether the miners do something without i mean it makes sense for me if miners say this sounds lucrative let's hire a bunch of developers and really flesh out these proponents and launch it on Signet and like have like a million tests for it and run all these scenarios and simulators, you know, and really show that this thing is robust and game theoretically correct. That makes sense to me. But if ultimately that would just make that new team, would just make that team Bitcoin Core or whatever you want to call it, because there's still developers working on the consensus code. So it doesn't, it just expands we and then it's the same as still we.
Ruben Somsen Yeah, very specific to the question. The answer is actually no, it's not possible for just miners to activate it. So this is something I was also discussing with Paul Sztorc prior to the show. So the thing that you can't have be miner activated is the slow peg out, right? You need this peg out mechanism where it takes three to six months before the money can be spent. And if that mechanism is not user enforced, if that's not a regular soft fork that our users are running, then what miners can do is they can just, somebody pegs in, miners like, oh, free money, takes the money.
Sjors Provoost right so miners can just agree to not allow that to happen because they just run custom software software that just doesn't allow that
Ruben Somsen yeah they could they could yes but but the difference is that 51 of the miners could take the money right away so so with the with the slow peg-out mechanism they can do that but they can do that slowly And that's because that part is user enforced. So if you take away the user enforcement part of that, then 51% of miners can immediately steal as opposed to after six months or three months.
Sjors Provoost Right, because right now, if 51% of miners decide to cheat on any rule, they'll have the majority hash power, but nobody's going to follow it. Because the rule is everywhere. It's in exchanges, it's in users' full nodes at home. It's enforced everywhere. Whereas a miner-enforced soft fork... is a soft fork that only exists among the miners themselves. And users have no incentive to care. They'll just follow the biggest hash power that follows their rules, not the miners' rules.
Aaron van Wirdum Yeah, that makes sense. Okay, so Ruben, you sounded... mildly positive let's try it
Ruben Somsen well i mean as an experiment i'm all for it but is it worth the consensus risks in that part i'm i'm less optimistic so so that's kind of why i'm like half half about it and i definitely like i'm not optimistic in the sense that i i don't think it's guaranteed that it would work right but i would like to see it basically
Sjors Provoost if i can add another worry i'm worried about more politics when you have more side chains more politics in general that spill over the Bitcoin Right now, you know, on certain altcoins, there is drama all the time. Not on every altcoin all the time, but I mean, there's always some drama on some altcoin. But that drama is contained to that altcoin. So if, I don't know, the SEC goes after Ripple... that's very unpleasant for Ripple. But there's not a subset of Ripplers that suddenly start lobbying Bitcoin Core developers to issue a soft fork to do something about whatever the SEC is doing to them, to unfreeze some coins, to overwrite some miner decision, because they have this consensus problem, or not a consensus problem, but a legal problem that might be fixable through some consensus change. They're going to start lobbying. And even if they fail, they are going to start lobbying.
Aaron van Wirdum Well, Paul Sztorc's argument is the exact opposite. The sidechains work as sort of an escape valve for all the drama. Like if you want to have bigger blocks, then you don't have to lobby Bitcoin Core developers to increase the blocks. You just create a sidechain with bigger blocks and have fun on your sidechain over there.
Sjors Provoost The problem is that the escape valve already exists, which is called an ICO. Or just like launching a new coin. An altcoin.
Aaron van Wirdum Yeah, but Paul doesn't like that. He likes the 21 million limits, as do I. I agree with him on that.
Sjors Provoost But the problem is the escape valve already exists in the world. So there are already altcoins and they have drama. So by having drive change, you might actually draw those people towards Bitcoin because they're already away from Bitcoin. Now you're going to draw these people towards Bitcoin because you're making it more attractive for them to use Bitcoin.
Aaron van Wirdum Altcoins are dumb, though, Sjors. We want to give people a better option on altcoins. We want to have them at least use Bitcoin, even though they want big blocks or Ethereum smart contracting solutions.
Sjors Provoost But what I'm saying is that by having altcoins exist and be a reasonable option, the drama goes to those altcoins. By having Bitcoin be supportive of other things... the drama goes to Bitcoin because like there's only a fixed if there's only a fixed amount of drama in the world and right now it's all in the altcoins you know if we if we add more if we get more of the market cap and more of the functionality from those altcoins we migrate that drama towards Bitcoin
Aaron van Wirdum i think we're talking about different types of drama as well because you're talking about like regulatory drama
Sjors Provoost no just consensus bug drama i mean let's say ethereum was a hard was a drive chain of Bitcoin And they had this DAO bug. And they were somehow not able to fix that just on their end. They really needed something on the Bitcoin side to happen. Well, then they would have lobbied Bitcoin core developers.
Aaron van Wirdum Okay, well, it takes away another type of drama, at least. Or at least that's Paul's argument. I'm not even sure if I agree with that fully. I think it's overselling it a bit. Because I know big blockers that do want bigger blocks, but don't want a sidechain. They want bigger blocks on the main chain, so it wouldn't take away that drama.
Ruben Somsen Well, I mean, that seems like kind of an irrational argument, because the big blocker argument, and I think that's a good point on Paul Sztorc's part, where... For big blockers, their argument really is you can trust the miners and don't worry about validation and stuff. The miners will take care of you. You run SPV, it's fine. And if that's your argument, then you should also consider drive chains to be secure because it's the same exact idea, basically.
Aaron van Wirdum Yeah, they should, but they don't.
Ruben Somsen Yeah, so I agree that they're irrational people with irrational arguments, but I can't help those people. That's their problem.
Aaron van Wirdum Right, well, that's kind of the point. It's a drama, I guess, yeah.
Sjors Provoost Well, one day we'll be able to move around with our little mobile podcast equipment, you know, when the apocalypse is over. And we'll be able
Aaron van Wirdum to ask Mr. Sztorc himself. We can actually ask him so he doesn't have to be annoyed listening to our podcast, [unclear] his proposal.
Sjors Provoost So far we've always been doing these podcasts in person and we're a little reluctant to start doing them via video calls. So we'll wait.
Aaron van Wirdum Yeah. All right. I think that's our podcast then for now.
Sjors Provoost Cool. Anything to close off, Ruben?
Ruben Somsen Well, I guess. Just a little shout-out to SoftChains. I've announced something that is kind of a variant of DriveChains, so to speak. It's called SoftChains, and maybe we can dedicate another episode to that some other time. But that's a whole other can of worms, so I'm not going to go into it now. But if anyone wants a sneak preview, they can look it up on the internet.
Aaron van Wirdum Okay.
Sjors Provoost Well, in that case, thank you for listening to the Van Wirdum Sjorsnado.
Aaron van Wirdum There you go.
Sjors Provoost There you go.