Ruben Somsen (twitter.com/SomsenRuben)
Muneeb Ali (twitter.com/muneeb)
Richard Yan (twitter.com/gentso09)
Today’s motion is “Trustless smart contracts for bitcoin are impossible without forks.”
A few projects have been known to try to bring smart contracts to bitcoin. But are they doing this in a way as you understand it? This episode explores this question. We pitted a bitcoin developer against the founder of Stacks, and you can draw your own conclusions after listening.
* How Stacks differentiates itself from other projects that also operate at the intersection of bitcoin and smart contracts.
* Whether there is a trustless way to fully utilize bitcoin on the STX chain.
* The robustness of the reward mechanism for staking STX (or “stacking”) in return for rewards in BTC.
* We also went off course a bit and spent a significant amount of time discussing adoption of Stacks in the bitcoin community, since Stacks introduced yet another altcoin, generally not something welcomed by the bitcoiners.
If you would like to debate or want to nominate someone, please DM me at @blockdebate on Twitter.
Please note that nothing in our podcast should be construed as financial advice.
Source of select items discussed in the debate (and supplemental material):
Ruben Somsen is a self-proclaimed Bitcoin Sorcerer. He does protocol design in order to enhance Bitcoin. He has previously proposed softchains, statechains and spacechains for Bitcoin. He also helps maintain the bitcoin-dev mailing list, and is co-host of the Unhashed Podcast. Lastly, he is organizer/founder of the Seoul Bitcoin Meetup.
Dr. Muneeb Ali is the founder of Stacks, a decentralized network that brings apps and smart contracts to Bitcoin. He serves as the CEO of Hiro a company that builds developer tools for the Stacks blockchain. He has raised $75 million USD in funding from investors like Union Square Ventures, Y Combinator, Lux Capital, Winklevoss Capital, and others.
Smart Contracts for Bitcoin - Ruben Somsen vs Muneeb Ali
Richard: [00:00:00] Welcome to another episode of The Blockchain Debate Podcast, where consensus is optional, but proof of thought is required. I'm
[00:00:22]So a few projects have been known to try to bring smart contracts to Bitcoin. But are they doing this in a way as you understand it? This episode explores this question. We pitted a Bitcoin developer against the founder of Stacks. And you can draw your own conclusions after listening. We talked about how Stacks differentiates itself from other projects that also operate at the intersection of Bitcoin smart contracts. We discussed whether there's a trustless way to fully utilize Bitcoin on the Stacks chain. We also had a debate around the robustness of the reward mechanism for staking stacks in return for rewards in BTC. During the debate, we also went off course quite a bit and spent a significant amount of time discussing adoption of Stacks in the Bitcoin community, since Stacks introduced yet another altcoin, generally not something welcomed by the Bitcoiners. These two individuals have had many previous conversations on this topic on Twitter. And their debate today gets a bit heated at times.
[00:01:20]If you're into Crypto and like to hear two sides of the story, be sure to also check out our previous episodes. We feature some of the best known thinkers in the Crypto space. If you would like to debate or want to nominate someone, please DM me @BlockDebate on Twitter. Please note that nothing in our podcasts should be construed as financial advice. I hope you enjoy listening to this debate. Let's dive right in.
[00:01:39] Welcome to the debate! Consensus is optional proof of thought required. I'm your host, Richard Yan. Today's motion: Trustless smart contracts for bitcoin are impossible without forks. To my metaphorical left is Ruben Somsen arguing for the motion. He agrees that trustless smart contracts for BTC are impossible without forks. To my mataphorical right is Muneeb Ali arguing against the motion. He disagrees that Trustless smart contracts for bitcoin are impossible without forks.
[00:02:08] Let's quickly go through the bios of our guests.
[00:02:10] Ruben Somsen is a self-proclaimed Bitcoin Sorcerer. He does protocol design in order to enhance Bitcoin. He has previously proposed softchains, statechains and spacechains for Bitcoin. He also helps maintain the Bitcoin-dev mailing list, and is co-host of the Unhashed Podcast. Lastly, he is organized the founder of the Seoul Bitcoin Meetup.
[00:02:30]Dr. Muneeb Ali is the founder of Stacks, a decentralized network that brings apps and smart contracts to Bitcoin. He serves as the CEO of Hiro, a company that builds developer tools for the Stacks blockchain. He has raised 75 million USD in funding from investors like Union Square Ventures, Y Combinator, Lux Capital, Winklevoss Capital, and others.
[00:02:50]So welcome to the show Muneeb and Ruben!
[00:02:52] Muneeb: [00:02:54] Thanks. Thanks for having me.
[00:02:56] Richard: [00:02:56] Great. So we normally have three rounds. Opening statements, host questions, and audience questions. We will have two polls. One poll pre-debate. One poll post-debate. Whoever changes the most minds will be the winner of this debate. Okay. Why don't we get started with the opening statement. Ruben, please go ahead and explain to us why you think smart contracts for Bitcoin are impossible without forking.
[00:03:21]Ruben: [00:03:21] Well, there are a couple of things I want to say. Even prior to that, I just want to explain, how even Muneeb and I butted heads on Twitter in the first place. I've been working on something called spacechains, which is very similar to, the Stacks design. And for that reason, when I saw Muneeb tweeting about it, there were some disagreements that I had with him over basically what he was claiming it was capable of doing. And, we got into a bit of a heated debate back and forth. And the thing that I really appreciate from Muneeb in particular is that even though things got a little muddy, he was gracious enough to, be kind about it. And I think we escalated and then we were able to deescalate again. And I think that's very important when you have conversations like this, right? These go wrong on Twitter. Surprise, surprise. So I just want to say Muneeb that was a great that you were able to do that with me and we were able to get back on a, a friendly conversation. And now we are here today to also hopefully in a friendly manner discuss what we disagree about. And equally, I want to say that some of the guys that work for you, Jude Nelson and Hank Stover, similarly, well with Jude I actually butted heads actually. That was... I think he's a bit more of a hothead if I, if I'm honest. but again to his credit, he apologized afterwards that he took it a little too far and he kinda thought I was a troll. And then he got back and, and changed his opinion. So that was great as well. And Hank just overall, I think he's pretty good at taking criticism and recognizing what is true about it. So again, that was yeah, very good.
[00:04:49]So I would say, the question here... I want to define it slightly better than just the statement we have. So trustless smart contracts for Bitcoin. Well, I would say it's, we're talking about advanced smart contracts because Bitcoin can already do smart contracts. It's just the advanced stuff like maybe stuff that Ethereum is doing. So that I think is impossible without forking. And then saying it's impossible, it's not that it's impossible to do a smart contract, but it's impossible to use BTC the asset in a trustless fashion inside of some kind of advanced smart contract that may or may not exist on our chain. Or at least that's what we're going to be talking about here. So we're not talking about doing a fork. We're not talking about adding simplicity to Bitcoin because yes, then you could do all kinds of advanced smart contracts. And yet on specific to the kind of Stacks and the spacechain difference I would say, it's it really is largely the same. And again like that's what I find interesting about also talking to Jude Hankin and Muneeb that we are looking at the same design space, but I would say the kind of the key differences are, I guess am more conservative with the claims in terms of what it's capable of doing. There is no altcoin, token or however you want to call it something that is sold to market and people can speculate on that's not present in spacechains where it, whereas it is in the Stacks ecosystem, the SDX token. And then the mining components, how blocks are created is different. And I have some criticisms about that, that I'm sure we'll get into. But I think the way spacechains are doing it, it's more secure. But that's I would say relatively a small difference. But for the most part they are very similar. They do very similar things.
[00:06:33] Richard: [00:06:33] Okay, go ahead Muneeb.
[00:06:34] Muneeb: [00:06:34] All right. Thanks. Thanks for that background. I think, yeah, so one thing, I hate about Twitter is that Twitter is good for broadcasting simple messages, but it's actually a pretty horrible medium for any back and forth and having a discussion because of just how it's designed. So I actually tend to not have discussions on Twitter. And I remember that when we were having these discussion on Twitter, I was trying to basically get it off of Twitter and " Hey, let's talk on the forum or some other place". I'm glad that , we're having this discussion over a podcast.
[00:07:07]I think it's a much better place. In general, first of all, I'm a bitcoiner. I got into Bitcoin in 2013 and I'm a big supporter of innovation around Bitcoin. All sorts of different designs that are being explored. I basically think that in the industry, right now there is a lot more experimentation and design exploration happening outside of Bitcoin than within the broader Bitcoin ecosystem. So that is something that I hope to change, and that's why I'm working on Stacks and so on. But in general, taking that lens, I'm very supportive of exploring designs. Like, Like, spacechains, R RSK or Liquid and so on. So I think, I'll just put that out there. And I think it's important to try and understand differences between these different designs, and I'm happy to dive deeper into these things. And I would basically say that, during this conversation I would try to identify what are the key areas where we are disagreeing. But my goal here is to connect everything back to the bigger picture, so that people have a better sense of the reality as well. Because I think some of these debates, they tend to become very technical and a lot of the audience, they might take away the wrong messages as well. So I think it's very important to then connect everything back to reality, in terms of, how these things actually impact real applications, real usage, what's actually happening in the industry versus some obscure point that two computer scientists can argue about. But in the grand scheme of things it is not going to have an impact.
[00:08:54] Richard: [00:08:54] Okay. Great. So why don't we get started. Muneeb, why don't you explain what you mean by having smart contracts work for Bitcoin? I remember offline when we were preparing for this debate, you specifically mentioned that you didn't want to phrase it as having smart contracts on Bitcoin, but for Bitcoin. So maybe talk a little bit about exactly how you were going about designing those for Stacks and why the differentiation between 'for' and 'on'.
[00:09:20] Muneeb: [00:09:20] Yes. I think, the interesting thing here is that if you look at the early generation of the work that has been done in terms of adding a functionality on top of Bitcoin... I think, two big examples would be Counterparty, that launched around 2014 or so. And then, the early work that we did on top of Bitcoin. Where were, let's call it Stacks 1.0, that was actually literally built on top of Bitcoin and was adding some sort of functionality using Bitcoin OP RETURN. Right. And in that model, because Bitcoin is immutable, Bitcoin doesn't change, Bitcoin is durable. You're effectively using very small space like an "OP RETURN", to try and build some intelligence on top of Bitcoin. And you were actually storing all of your data in Bitcoins.
[00:10:13] So we built a decentralized domain system using that. And, in hindsight, the scalability of that system was tied with the scalability of Bitcoin. And, it's more clear now that Bitcoin is a settlement layer and you don't want to store a lot of data directly on Bitcoin. And you want to scale outside of the Bitcoin main chain. Like think of lightning, like lightning channels are outside of Bitcoin and then they come and they settle on Bitcoin. So we were in situations where to register a $2 domain name, people are paying $50 or a hundred dollars in fees. And that's not a scalable system. So very quickly we started shifting our focus to the current version of the Stacks blockchain, which basically uses Bitcoin as a settlement layer. So then you can do thousands of transactions on the Stack side, and they automatically settle on Bitcoin because the source of truth is actually Bitcoin, right? You would have to go and reorg Bitcoin to be able to change the history of the Stacks gene.
[00:11:14] And similarly, when thinking about smart contracts... My definition of smart contracts is very broad. I think we will get into this debate a little bit because I don't think our definition is exactly the same here. Smart contracts in my view, like decentralized domain, they're smart contracts. NFTs can be implemented as smart contracts. There can be so many different things that can be smart contracts and one specific thing that Ruben brought up earlier is the use of Bitcoin, the asset. That can you actually in a completely trustless way move Bitcoin into another chain and then bring it back. And I think that's where some of the disagreements are and we are happy to dive into it. But broadly speaking, let's say that there are several different types of smart contracts that are possible. And, you can do all of that with what we have built because stacks has full visibility into Bitcoin. And you can define assets, you can actually move them around using pure Bitcoin transactions as well. For example, if you want to just experience the power of the system, let's say you would register a domain name on the Stack's side that settles into Bitcoin. So the ownership of the domain name is defined by a Bitcoin state. And because Bitcoin is the source of truth. And interestingly, you can actually move these assets around just by pure Bitcoin transactions, if you want to. Obviously it's going to cost you a lot more, but transactions on Stacks are cheaper. But you can do that with Bitcoin. So I think at that point, if someone tries to say that this is not smart contracts with Bitcoin, I would scratch my head a little bit. Here's an asset that you can register. It's registered by the security of the Bitcoin blockchain, you can actually move around that asset, like an NFT or a domain by doing pure Bitcoin transactions. So how has this not smart contracts with Bitcoin?
[00:13:00] Ruben: [00:13:00] Okay. Shall I just respond to that or?
[00:13:02] Richard: [00:13:02] Yes, yes. Go ahead.
[00:13:03] Ruben: [00:13:03] Yeah. Okay. Okay. You were stating that the reorg can only happen if Bitcoin, the Bitcoin blockchain reorgs. But I don't think that's accurate. There must be, granted, I don't know exactly sufficient about the Stacks blockchain to know all the details. But just generally speaking, I know if you create a system like that, you have to have some kind of internal reorg system where if, if somebody creates a block and the block itself is invalid, you have to be able to ignore it and build around it without reorging the Bitcoin blockchain. So surely it can't be accurate that you can only reorg the Stacks blockchain by reorging the Bitcoin blockchain.
[00:13:37] Muneeb: [00:13:37] So those are short-lived forks. And what I'm talking about is finality. Stacks actually follows Bitcoin Bitcoin's finality.
[00:13:45] Ruben: [00:13:45] So it is, or is it not possible to reorg a block within the Stacks ecosystem without reordering bitcoin?
[00:13:52] Muneeb: [00:13:52] So again, you would divide that into short-term forks or long-term forks. Once finality has happened on Bitcoin. So let's, let's put it this way. We actually select an anchor block, right. And there might be short-term multiple forks. We call them chain tips, that exists in the Stacks chain and Stacks has its own consensus mechanism for defining which one is valid. But once enough Bitcoin blocks have passed, I'm talking about deep reorgs. Once you have let's say, finality on Bitcoin, offer that changing Stacks state requires you to also reorg Bitcoin
[00:14:31] Ruben: [00:14:31] I see. So, I mean, I don't think we should go into too much technical details here, but that's a very risky thing to do, I believe. Because we have seen this in Bitcoin cash where they said, okay, well, after 10 blocks they will not allow a reorg anymore. But then you get into very sticky situations where you have two chains that are both 10 blocks and now half the network they called one side of the fork final, and the other half of the network calls the other side of the four final. So this type of finale is generally frowned upon for good reason, it's to avoid it in these types of systems. So I would say that's a weakness, not a strength, but, okay. That's a design decision.
[00:15:06] Muneeb: [00:15:06] I would push back on that. What do you want to say? That, that thing is a weakness, because if at some point the Bitcoin blockchain has a probabilistic finality what we're saying is we are deriving, we are building up on Bitcoin's finality and using that as the source of truth. So are you trying to say that that's a bad design decision using Bitcoin?
[00:15:27]Ruben: [00:15:27] I am saying it's a bad design decision to at some point disallow large reorgs within the system that you've created. So if you say that's okay, after a 10 Bitcoin blocks, the kind of internal of reorg so you can no longer reorg Stacks blocks that have reached a certain height. So in Bitcoin, it's you're saying it's probabilistic, right? So, it's very unlikely that you're going to do a 20 block reorg, but it's, it's, possible, right? It's possible on Bitcoin.
[00:15:53] Muneeb: [00:15:53] Yeah, so just to clarify, it's also possible. What you need to do is you have to go and reorg Bitcoin.
[00:15:58] Ruben: [00:15:58] Yeah. So, within the Stack system that means there's finality within the Bitcoin system there is, there's not finality, right?
[00:16:03]Muneeb: [00:16:03] They're the same thing. I think you're just confusing it. It's the same thing, right? You can't say that Stacks can not be reorg, but Bitcoin can be reorg. Can we agree on that? Because if Bitcoin can be reorg, then stacks can also be reorg.
[00:16:18] Ruben: [00:16:18] Yeah. So you can never not reorg stacks because you can reorg Bitcoin. I agree. Yeah.
[00:16:22] Muneeb: [00:16:22] Exactly. So, are we clear that the previous point that you were trying to mention and portray it as a potential weakness of stacks is incorrect.
[00:16:30]Ruben: [00:16:30] No, because I still think you are saying that at some point you can no longer reorg Stacks without reorging Bitcoin.
[00:16:39] Muneeb: [00:16:39] Exactly. And that is a very, very nice property to have because it's very hard to reorg Bitcoin and that is a strength.
[00:16:47]Ruben: [00:16:47] Well, if it works, it's a strength but I'm saying I'm very skeptical that that works. But I'm willing to leave it at that and like you're saying, it's a very technical point and it's difficult to go through...
[00:16:57]Muneeb: [00:16:57] I think that's the purpose of having conversations like these, because otherwise the casual observers or readers could take away the wrong meaning. Like you made a point that was technically not valid. You had a concern about the consensus mechanism, which is again, not valid. And you're a Bitcoin believer, right? So you believe in the fact that deep reorgs are extremely hard on Bitcoin, and that is a very nice property to have. So similarly deep reorgs are extremely hard on Stacks and that is a very nice property to have.
[00:17:29]Ruben: [00:17:29] It would be a nice property if it was without problems.
[00:17:31] Muneeb: [00:17:31] What, what are the problems let's be specific? What are the problems?
[00:17:34] Ruben: [00:17:34] Yes. Okay. So this is a very difficult point to get through, I think, but let's try it. So I guess the first question you would need to answer for me to go through it is, is it possible for there to be two blocks at the same height, so to speak?
[00:17:49] Muneeb: [00:17:49] Again, I'm talking about deep reorgs here. So let's stick to that topic.
[00:17:53] Ruben: [00:17:53] Yes. So the issue is that if you, so specific... I think it's easier for me to explain that the issue in Bitcoin cash and that, and then you can tell me why it doesn't apply to Stacks.
[00:18:06]Muneeb: [00:18:06] We're not talking about Bitcoin cash. We're talking about a very different system from Bitcoin cash.
[00:18:10] Ruben: [00:18:10] Yes. But I don't know the intricacies of your system specifically, just like you don't know the exact intricacies of spacechains.
[00:18:17] Muneeb: [00:18:17] Right. So then I think the thing to say would be, "Hey, I don't know enough about Stacks and I made a statement about it without knowing enough of those facts".
[00:18:25] Ruben: [00:18:25] No, I don't think that's accurate. I know how consensus generally works and I know that you can't do things like just put finale on somewhere and then just say okay, well now you can't reorg anymore. I think that's a dangerous thing to do generally.
[00:18:39] Muneeb: [00:18:39] I never said that. I never said right. So let's take your sentence. You're saying that I'm saying you cannot reorg anymore. I'm not saying that. What I'm saying is, to reorg stacks you also have to reorg Bitcoin. What is the problem with that?
[00:18:57] Ruben: [00:18:57] I'd say you have finality inside of the Stack system. So you don't have finality within Bitcoin, but you do have finality within Stacks. And anytime you introduce finality, that is going to cause problems.
[00:19:08]Muneeb: [00:19:08] That is absolutely incorrect because we are only following Bitcoin's finality. Whatever is the definition of Bitcoin's finality in your mind, we're following the same thing in Stacks. So your statement is absolutely incorrect.
[00:19:19] Ruben: [00:19:19] So if it's fine to just follow Bitcoin's finality, why do you even allow small reorgs? Why are small reorgs necessary, but big reorgs not?
[00:19:29]Muneeb: [00:19:29] That's a different topic. I can get into it, but I would like to clarify it in the point here.
[00:19:33] Ruben: [00:19:33] Well, I think that comes down to the crux of the debate here, right? You are saying that, "Oh, small reorgs, they are necessary for network to function. But once you reach a certain height, you no longer need reorgs because for some reason, and now it's secure". Right? So I think the same problem you have with small reorgs, you're just pushing it back into the past. Right. And there, you don't get rid of the problem, you just, you just delay it?
[00:19:56]Muneeb: [00:19:56] You're completely lost me at this point. Right? So are you now trying to say that small reorgs are the same thing as long?
[00:20:01] Ruben: [00:20:01] No, I'm saying that the fact that you're allowing small reorgs points to the fact that you need reorgs too.
[00:20:07]Muneeb: [00:20:07] Yes. Bitcoin allows small reorgs.
[00:20:09] Ruben: [00:20:09] And big reorgs.
[00:20:10] Muneeb: [00:20:10] Yes, exactly. So we are doing the same thing. What's the problem?
[00:20:14]Ruben: [00:20:14] I'm talking about Stacks reorgs, right? Within the Stacks reorg at some point you don't allow those reorgs anymore. Yes, if you reorg bitcoin, it's a puzzle.
[00:20:24] Muneeb: [00:20:24] I, again, I never said that this is the third time I'm correcting you. I never said that.
[00:20:28] Ruben: [00:20:28] No. But you are saying that you can still reorg stacks by reorging bitcoin, but you can't reorg Stacks without reorging bitcoin. That's what you're saying. Right?
[00:20:35] Muneeb: [00:20:35] All right. How do you guys moderate here? Like I might need some help in the moderation of the discussion...
[00:20:40] Ruben: [00:20:40] I I mean, for me, I think the smart thing to do is just move on and let the audience decide which side of these two they think is right. Because these are very difficult complex things and I don't think we're gonna...
[00:20:50] Muneeb: [00:20:50] Yeah, but you're trying to hide in the complexity. I'm trying to make it very clear to the audience that the security model here is extremely simple. The security model here is Bitcoin has short-term forks. Stacks has short-term frocks. Bitcoin has a mechanism of deciding between the short-term forks, and then it has a probability of how things become final and how deep orgs are extremely, extremely hard. The exact same model applies on Stacks. Where it has short-term forks. It has a mechanism of deciding how to select between the short-term forks and exactly like Bitcoin, the long-term forks are extremely hard. This is a exactly the same thing. And for somehow in your mind when it happens on Bitcoin, it's perfectly fine, but when it's happening in Stacks, somehow you're trying to poke holes, but are unable to point to anything specific.
[00:21:50] Ruben: [00:21:50] Uh, well... I think that's a very unfair way of portraying my opinion.
[00:21:55] Richard: [00:21:55] Okay.
[00:21:55]Ruben: [00:21:55] But all right.
[00:21:56] Richard: [00:21:56] Yeah, maybe we need a followup discussion on this and maybe in written form or something, if Ruben you think this is going to be a difficult topic to discuss right now. But maybe let's move on to the next question. What do you say?
[00:22:08]Ruben: [00:22:08] So let me at least summarize my view and then we'll leave it there. Is that all right?
[00:22:12] Richard: [00:22:12] Go ahead.
[00:22:13] Ruben: [00:22:13] So in my opinion, you have to see the Bitcoin consensus and the Stacks consensus as separate. Within the stacks consensus, you can have small reorgs, and then within the Bitcoin consensus, you can have small and big reorgs basically. And I think it's a problem that if you're taking out the big reorg parts within Stacks consensus, that is a fundamental design change from how Bitcoin does it. Bitcoin within Bitcoin systems.
[00:22:40] Muneeb: [00:22:40] Sorry. How do I explain to you that I'm not taking out the big reorgs? That is not what is happening?
[00:22:47] Ruben: [00:22:47] Yeah, but you're saying that in order to do a big reorg, you have to reorg Bitcoin. That's what you were saying, right? Yes. And I'm saying that's not sufficient. You need to allow for big reorgs within the Stacks system because stacks is its own separate system that has to exist. You just have to assume that Bitcoin does what Bitcoin does. And then on top of that, separately, you have stacks consensus. And if within the stacks system, you don't allow big reorg. So again, I understand you can reorg Bitcoin, but you can't reorg Stacks in the same way you reorg small blocks. That is inherently a problem. In my opinion.
[00:23:23] Muneeb: [00:23:23] That is precisely the advantage of reusing Bitcoin's hash power and security. You can go and you can build off a separate small insecure system that has nothing to do with Bitcoin. And you're trying to say that that is better than using the power of Bitcoin and tying yourself with the long reorgs of Bitcoin and basically making it harder for the audience. If you make it harder to have deep reorgs, that is a good thing. So you're agreeing with it and you're saying that that's a problem.
[00:24:00] Ruben: [00:24:00] Yes. I'm saying you cause another issue by adding that kind of finality. So I think ultimately, you can't do that without a cost. You can't add finality to blockchain. This is a very common thing, right? People who talk about finality blockchains, it always causes problems. If you look at any of the... This is like in proof of stake, it's very similar problem. Where they defend against a long reorgs by adding in finality. And then you checkpoint it somehow, but that checkpoint in itself is something that can only be accurately measured by the active participants in the system. But then when a new person comes in, they can't really decide which fork to choose. And then you have to have somebody to point out, okay... Which one is the actual consensus, and that in itself is a problem because you don't have consensus over dots. But again, I'm happy to move on and we just disagree. That's fine.
[00:24:47] Muneeb: [00:24:47] That's a great description of a problem that you have defined in proof of stake. And we do not have that problem because you can independently verify just by looking at the state of Bitcoin and the state of Stacks, that what is the correct version that you should be on? Again, we designed it specifically this way so that we can benefit from the security of Bitcoin, and not have these problems.
[00:25:08] Ruben: [00:25:08] Yeah, I think that's a very common claim that also is made by a lot of merge mining chains. And generally speaking, I think it's an overstatement to say that you inherit the full security of Bitcoin's proof of work. I do not think these systems inherit the full security. Uh, yes, if you add like the finality points. I disagree that you do when you add finality. It does mean, okay, now you have received that security but you're doing so at a cost of making consensus. You're weakening consensus basically because now you have these potential consensus issues that people can abuse.
[00:25:42] Richard: [00:25:42] Can you elaborate on what you mean by adding these additional consensus issues that people can abuse? What are some examples? Ruben?
[00:25:50] Ruben: [00:25:50] So the example would be, if somebody reorgs past that points at a later date, then all the existing nodes will not accept that. Right. So, okay. So you have finality and now you're no longer allowed to reorg back into the future to, uh... Let's say there are 10 Bitcoin blocks and now the state in stacks or whichever protocol is, is called final. And everybody who witnessed that at that time is going to be fine. But now let's say somebody goes 11 blocks back. And starts building a longer chain within Stacks and then a new person enters the Stacks ecosystem and they run a full node and they start verifying, well, they're not going to be able to know which of these blocks is final because they didn't witness this, this kind of 10, 10 block uh threshold. And so now you have a problem with consensus, right? You don't know which of these chains is valid. And I think this problem must be present in stacks and quite literally it's present in anything that tries to have finality.
[00:26:48] Muneeb: [00:26:48] What Ruben just described has nothing to do with Stacks, and this is not how Stacks works. This is for the audience. I know Ruben is not going to agree here, but what he described has absolutely has nothing to do with Stacks.
[00:27:02] Ruben: [00:27:02] Yeah. I mean, I think that's okay. We can agree to disagree and just move on. I mean, obviously we're not going to fully agree on everything.
[00:27:08] Richard: [00:27:08] Yeah, maybe we can talk a little bit more about Stacks. So, Muneeb, my next question is, talk about some other approaches that exist and how Stacks differentiates itself. So some audience members have brought up sovereign BTC RSK and â‚¿adger DAO. Are you able to pinpoint the difference between Stacks and those platforms?
[00:27:29] Muneeb: [00:27:29] Yeah. I'm happy to. So I think the way to think about this is that, stepping back a little bit... So, first of all, I think I should give the audience a little bit about my background as well. So I've done a PhD in Computer Science, more specifically in Distributed Systems at Princeton University. I've been designing peer-to-peer systems, Cloud Computing, for over a decade before entering Crypto. So consensus algorithms, distributed systems is like the bread and butter of my research work, and also of some of the colleagues that we have at Stacks as well. Ruben earlier mentioned Jude Nelson. Jude Nelson also did a PhD at Princeton University. He was involved with designing Planet Labs, that was the precursor to a lot of cloud computing testbeds in the world. There are two professors at Princeton who have been involved with this work as well. Professor J. P. Singh and Professor Mike Freedman. It's safe to say that a lot of the consensus work and the distributed systems work that we're doing here, we know what we're doing. Right.
[00:28:33] And I would also like to point out some differences here where I think I after the first interaction that you have seen on the podcast I've had with Ruben, my hunch here is that we're going to get into a lot of these debates where you might hear a lot of complex words or concepts and might think that, "Oh, I don't know which side is right or not". I want to set the record straight here: a big difference between Stacks and spacechains. So Stacks is a working system. We've been working on it for more than three years. We have actually programmed the system. We have gotten peer reviews of the work. The code works is deployed, right? So they say that in theory there's no difference between theory and practice, but in practice there is. The system actually went live. All the game theory, all of the different quirks of consensus, liveness, safety... Everything is actually working in real life and people are building applications and people are building smart contracts on top of the system right now.
[00:29:35] Spacechains, a lot of the people might not be familiar with this is effectively paper designs, right? Correct me if I'm wrong, but I don't think there's any code that has been written for spacechains. And I don't think that there has beenformal analysis of the safety or liveness guarantees of these ideas. Earlier I think Ruben made a remark that spacechains and stacks are very similar. I absolutely disagree with that. I don't think that they're similar at all. Right. They're very, very, very different systems. And the big difference over here is that on one side you have a team of experts, distributed system scientists, who have done years of work to build a real systems. Systems that are working in real life, and on the other hand, you basically have paper designs where even some of the definitions of how to think about these areas are quite complex and quite obscure, frankly. And so I want the audience to have that background in mind that I will disagree with a lot of the things here, just like we saw with the consensus or deep org discussion that we saw. And you might get confused, but, I'm happy to point you to resources about, how these things work or what are some of the fundamental differences there?
[00:30:50] Richard: [00:30:50] Okay. So that's helpful, Muneeb. In addition to discussing the credential of the researchers and also the fact that SpaceChain might be more of a initial exploration phase versus Stacks being now in the wild. Can we talk very specifically about the differentiation between Stacks and some of these other platforms that have been mentioned? What is the primary innovation and the differentiating factor here?
[00:31:20] Ruben: [00:31:20] So can I just interject here and just say that, I do agree with Muneeb that it is great that they were able to build the platform out in its entirety. And that is something that he definitely gets credit for. The SpaceChain's design it's theoretically worked out, but it has not been built unfortunately because there's no token involved, there's also no funding there. But props to you Muneeb to actually doing the work at least and building out the concepts that you think are useful. And I think, this debate has gotten a little adversarial a little quickly, and, and I think that's unfortunate, but I do think that a lot of the stuff that Muneeb is doing with the Stacks design is interesting. They're really only a couple of these s ide things well, such as one that we just randomly stumbled into, that I do strongly disagree with in terms of, that's not the right design decision in my opinion. But, for a large part, I do think it's an interesting design and they built it out so, so that's definitely something they can be proud of.
[00:32:16] Richard: [00:32:16] Okay, well, thanks for that. And Muneeb, yes, let's get into the answer you were originally going to provide.
[00:32:23] Muneeb: [00:32:23] Yes. So I think coming back to consensus algorithms... So first of all, consensus algorithms have been around for a very, very long time going all the way back to Paxos. There have been like newer iterations of Paxos-like algorithms as well, like Raft and so on. And the key difference between, Nakamoto style consensus, and earlier more traditional consensus algorithms is basically open membership, right? And there are other differences, but the one that I care about the most, or I think is the most fundamental difference is open membership. Meaning that, anyone can come in and be a miner. Anyone can participate in the system and then so on. And I think, that's why Bitcoin is interesting. Like open membership also means decentralization. Meaning that anyone could come in and be a miner on the network and participate that way. Right. So when we look at some of the other works, so you can go and build other blockchains sure there's, oh, I don't want to get into proof of stake versus proof of work type arguments. But in general, people are looking at Bitcoin and the open membership consensus layer that is already there. And they're thinking about how can we benefit from it. Right. How can we add other features to it? So one of the things about Bitcoin is that because it's so decentralized and it's so durable and immutable that you can't change it, which I think is a really, really nice property that Bitcoin has. So if you want to add new features to something that you cannot change. That's almost like a paradox, right? How do you add new features to it? And that's where people have done different things. Like we know about Lightning, where it's a completely separate peer-to-peer type of a system that any peer can establish channels with each other. And then, when they're done with the channel, they can just go and settle on Bitcoin using existing Bitcoin functionality. Or you have things like Liquid, which is a federated chain. So on Liquid you are depending on a federation of nodes. And again, federary networks are a well studied concept in Computer Science. Federations have been around for a very, very long time. And in the Liquid's case, there's a federation of nodes, so not anyone can be a miner there. And you can have additional functionality, like the simplicity smart contract language on the Liquid chain that you can use, but you're depending on the Federation. It's not an open system.
[00:34:47] Right. And then we have things like RSK where they're looking at merged mining. So merge mining is strictly defined as: you are a subset off Bitcoin miners would be responsible for the consensus on the merge mine chain, right? And effectively the hashes that they're calculating for mining Bitcoin, they can reuse those hashes to mining the merge mine chain as well. And I think RSK actually deserves a lot of credit, because one of the disadvantages of merge mine chains is that's hard to get a lot of Bitcoin miners to also mind on the merge mind chain. Like Namecoin comes to mind, right? Like Namecoin have that problem where, you know, a single miner or a few miners would have more than 51% of the hash power on Namecoin because not every Bitcoin miner was willing to mine on Namecoin. But RSK has actually convinced a lot of Bitcoin miners, I believe it's like that percent is now 60, 60 percentile or something of the hash power where those people are mining, on our scale.
[00:35:46] So that's one approach. So you have to be a subset of a Bitcoin miner to go and operate in the merge mine chain. Well, we have done with Stacks is actually quite, quite different and unique in the sense that, it is a separate system that is adding additional functionality and it's actually doing settlements on Bitcoin. And that's the kind of debate we got into earlier because it's a very unique design. Usually when you have a separate chain, you're actually not really doing settlements on Bitcoin, right? It's a little bit like what we are designed is consensus between two chains between Bitcoin and Stacks. And we use Bitcoin as the source of truth.. And I think that's very different from a merge mine chain because merge mining is sharing the hash power. It has nothing to do with the history of Bitcoin, right? So over here we are dependent on literally the actual history of Bitcoin, because the consensus is actually between Bitcoin and Stacks.
[00:36:40] And secondly, a very nice property here is that mining is decentralized and open and permissionless, right? It's not a Federation. Anyone can come in and anyone can actually mine. You don't have to be a Bitcoin miner to mine. And anyone can mine here, which I think is a value that is inline with a decentralized, permissionless systems like Bitcoin, that mining should be open and permissionless to, to anyone who wants to do it. So I think those are some of the differences. And by the way, it's great that people are exploring all these different design trade-offs because as a developer, you then have the options that if you're, for example, for your application, if you're completely fine with a federary chain, you can go and build on Liquid. Or if you're looking for some other property, you can go to RSK and RSK has one other difference as well, that they've been for the EVM model, the Ethereum Virtual Machines. So they support uh, solidity as the programming language. Liquid has simplicity as the programming language, which is different.
[00:37:40]It's more like low level. And then we actually invented a new programming language called Clarity. And clarity really focuses on security of the contracts, because clarity is a decidable language. So you can think of decidable language as a subset of your incomplete languages. And it avoids certain problems that come that come with incomplete languages, because with a decidable language, you actually know precisely what a contract can and cannot do even before you execute it. And while it remains very expressive. So you can actually write most type of programs in a decidable language like Clarity as well. So those are some of the differences.
[00:38:18] Richard: [00:38:18] So yeah. Allow me to quickly interject. You talked about Clarity. If I'm writing a smart contract on Clarity, I assume that I would have access to the state of Bitcoin. Right? How do I manipulate the state of Bitcoin with a contract in Stacks?
[00:38:32] Muneeb: [00:38:32] Yep. So those are the two big things, right? One is that you have Bitcoin state can trigger changes in Clarity because Clarity has visibility. And then the second path is that can Clarity code directly trigger changes into Bitcoin. That's theoretically possible, but it's not implemented yet. So there are several ways that we're looking into implementing that critical feature. And I can get into the details.
[00:38:58] Richard: [00:38:58] Okay. So if I'm writing smart contracts in Clarity, and I'm unable to change the state in Bitcoin as of this moment, what can I do with Clarity?
[00:39:09] Muneeb: [00:39:09] Yeah. Let me give you an example. So, let's say that you want to build a Bitcoin lending application. So what you can do with Clarity is that you can write a smart contract that can take a collateral. Collateral could be anything. It could be a stable coin, like a digital dollar type coin. Could be Stacks. Any asset that's available on the Stacks chain could be a collateral for it. That's for simplicity, just call it like USDC. It's a well known stable dollar...
[00:39:40] Richard: [00:39:40] USDC, is that issued on stacks as well?
[00:39:42]Muneeb: [00:39:42] It's not currently issued, but there's something called X-USD that is in the pipeline.
[00:39:46] Richard: [00:39:46] Okay.
[00:39:47] Muneeb: [00:39:47] So my point is that any, any types of stable coins can be issued, on the chain. X-USD is likely the first one that will come online and then others can follow as well. So your Clarity contract can have a 200% collateralized setup, where someone who wants to lend Bitcoin can actually just lend the Bitcoin by doing a simple Bitcoin transaction, right? Let's say we want to do that transaction. And I basically want to give you Bitcoin and earn interest on it, right? So the Clarity contract would know who are the parties that want to borrow. Let's say that you're a hedge fund and you don't want to hold Bitcoin but you have USD that you can put up as collateral and you're doing lending. I can transfer to you my Bitcoin transaction, my pure Bitcoin transaction would automatically trigger the clarity contract that this Bitcoin got transferred. Uh, time will start ticking. Time is measured in blocks. Bitcoin blocks. Again, Clarity has visibility into Bitcoin blocks. Let's say it was a loan for 300 Bitcoin blocks or something. So if the Bitcoin does not come back to the specified address that I gave by 300 blocks. The contract will automatically release the collateral to me. Meaning that you never returned my Bitcoin and now I get the collateral. But in the happy case, if the Bitcoin comes back, then the original party takes their collateral back. So I got my Bitcoin back on the main Bitcoin chain and I earned some interest on it. So these types of applications are already possible without any need to fight to Bitcoin from Clarity.
[00:41:35] Ruben: [00:41:35] So one thing I'm curious about is these are things that are currently possible on Ethereum as well. And I would like to hear from you Muneeb, what are the key differentiators between something like Stacks and something like Ethereum? Because I think that's ultimately what it comes down to, right. When we're talking about whether or not the stacks blockchain is doing things for Bitcoin, as opposed to something like Ethereum which is doing things for Ether, you would say. And there are two things that I see here, right? So one is you have this mining mechanism that is inside of Bitcoin but, maybe you would argue that that is good for Bitcoin somehow, or maybe it's neutral. I think it's neutral in my opinion, but I be curious to hear your opinion on that. And the second thing that you mentioned here is the native awareness of Bitcoin consensus, right? So you can do things inside of the Stacks chain, depending on what happens on Bitcoin. And in Ethereum, they have this very similar system but they use SPV proofs, right?
[00:42:32] Where you send over an SPV proof of something that happened on the Bitcoin blockchain. So it very much works in a similar fashion. And then there is the SDX token which you could compare to the ETH token. So from my perspective, I think the comparison between something like Ethereum and something like Stacks, it's thin. And I would assume that you disagree with that and I'd be curious to hear why you think that is not the case.
[00:42:57] Muneeb: [00:42:57] Yeah. So I think, there are a couple of differences here. The first one is that, Ethereum has its own proof of work network. Right. And in many ways, the core thing about our consensus mechanism is to reuse Bitcoins power. Basically Bitcoin security. So you don't benefit from that. We all of us know that Bitcoin's hash rate and the amount of compute power required to have a deep reorg on Bitcoin is very different from doing that on Ethereum or some other projects.
[00:43:27]Ruben: [00:43:27] But Just to steer you a little bit, I'm asking why would a Bitcoiner care about that, right. Okay. So maybe that's good for Sachs. Maybe it's nice, but as a Bitcoiner, why should I care that you're using Bitcoin for consensus?
[00:43:39] Muneeb: [00:43:39] Right. So first, the example that I just defined, right? Let's now try to do that on a theorem. So to do that on Materium, what you're doing is first, do you want to issue a Bitcoin like asset on a Ethereum, like a wrapped Bitcoin? So you're going through a custodial service, or you're basically somehow trying to issue a Bitcoin like asset on a Ethereum. The example that I described for a Bitcoin miner, their experience interacting with the app as I send a Bitcoin transaction. And that was my transaction to, the person who is borrowing Bitcoin from me. And then I got my Bitcoin back as a Bitcoin transaction, and I earned some interest. I didn't have to go through a rapt acid, which is a taxable event. And frankly, I did not need to trust a separate stack. Like Ethereum, because the only thing I ever did was send a Bitcoin reduction. I think that's a, huge difference.
[00:44:40] Ruben: [00:44:40] Okay. So just to summarize what you're saying, you're saying, people trust the consensus more because it's, Bitcoin's consensus. And well, obviously, what I said earlier, we disagree on that, but okay. That's your view. And then the second, point would be, I'm not sure if I agree with the second point because you can do this without something wrapped, right? Something like TBTC, for instance, on Ethereum, I don't know how familiar you are with that, but it just basically works as SPV proofs. So it very much does the exact same thing. It's what you're describing, but instead of just straight up reading the Bitcoin blockchain, you have to send an SPV proof of an event that occurred. And then that SPV proof will be interpreted and, trigger whatever it is that needs to be triggered.
[00:45:19] Muneeb: [00:45:19] yeah. So you can, try to implement SBB proves on the Ethereum side is generally, think of that as these SPV proofs are natively baked into stacks, and to be a tax miner. You actually have to know the state of Bitcoin, right? Stacks cannot survive without Bitcoin. So all the stacks, no, it's all the stacks miners that have full visibility into Bitcoin and your SP foods are natively baked into all clarity contracts. So clarity contracts, whereas on Ethereum, the TBDC team, there's a podcast with me, with the TBDC founder. And he talks about the difficulty that they had to go through in terms of implementing SBB proves in solidity on top of Ethereum.
[00:46:01]Ruben: [00:46:01] It's definitely easier if you just have native access to everything that Bitcoin does. And I think there are even a few things that are not SPV provable. so to your point, I do think it's more powerful and equally, this is something that is possible for spacechains. So obviously this interests me as well. So then the second point I would say is I think the main thing that people dislike about Ethereum, it's not so much, the fact that its not using Bitcoin's proof of work, or the fact that it's not natively aware of Bitcoin consensus, but it has to use SPV proofs, right? The thing that Bitcoiners dislike and the reason they don't want to use it is because of ETH, the asset. Right. It's an altcoin. And in your case, you have SDX, I believe it's the abbreviation, but it's equally an altcoin. So from my perspective, Namecoin is an altcoin and Stacks is an altcoin. For that reason. I see it as a competitor to Bitcoin, right. Because it has its own token and the own token wants to have value. So how would you respond to that?
[00:46:56] Muneeb: [00:46:56] My response to that would be that, gas for smart contracts is a class of Crypto assets. First of all, if you are on the extreme end of the spectrum where you're like, "Hey, Bitcoin is the only Crypto asset that should exist and no other Crypto asset should exist". I think that's a very hard place given how many Crypto assets exist and how many Crypto assets would continue to exist. And I think that also is I find that puzzling because I view Bitcoiners as really people who stand for freedom. So if you stand for freedom, then you should also stand for the freedom of other people to issue Crypto assets that they want to, right. Let's say if I'm running a business, right. And I want to put my cap table as a Crypto asset on a blockchain uh, do Bitcoiners have a problem with that?
[00:47:46]Ruben: [00:47:46] So specifically that point, I hear it very often and I think it's a misrepresentation of the kind of freedom arguments. So let me just say how I see it at least. So, even if you are for freedom, there's still ways in which you can use that freedom that are morally objectionable or morally acceptable. If you go and use your freedom to lie to people and then trick them into them giving their money to you, you could say, okay, well it's freedom and we like freedom. So therefore we should like that people trick other people, right? But at the same time you can say, well, I'm happy we have the freedom to lie to people, but I morally object to what they're doing. And I think equally, that will be at least the steel man argument of saying okay, well, we like the fact that there's freedom that everybody can create all these tokens, but every single token seems to be a pump and dump scam. And therefore we're going to morally condemn it. Uh, I think that's a perfectly viable way of looking at things.
[00:48:40] Muneeb: [00:48:40] Right. So do you have a moral arguments for the startups that start in Silicon valley, that they should not start those startups?
[00:48:47] Ruben: [00:48:47] I think it depends, I guess, on what they're doing. I can see, maybe if the startups trying to do something that is morally objectionable or if they're lying in order to get funding, even though the thing that they're working on it clearly can't work. I think dose would be a morally objectionable. But if that's not the case, then it's okay. I definitely think there's a gray. It's not very easy to put the line anywhere, but, I do think certain things are more objectionable than others.
[00:49:12] Richard: [00:49:12] But Ruben...
[00:49:13] Ruben: [00:49:13] the context.
[00:49:14] Richard: [00:49:14] Yeah. It seems like you're implying though that. A lot of the alternatives to Bitcoin, or maybe not even the alternatives, there are just other coins out there that might have a different purpose or a different use case. And you seem to be implying that the fact that many of them were launched as a result of morally objectionable...
[00:49:36] Ruben: [00:49:36] Yep.
[00:49:37] Richard: [00:49:37] origins.
[00:49:38]Muneeb: [00:49:38] Yeah, it's a very strong statement.
[00:49:40] Richard: [00:49:40] And I think that's true for a lot of projects, but that's not true for all of them. And then the other point you made was that these other coins seem to be competitors to Bitcoin. So that seems to imply that, essentially regardless of the moral objectionability of these other coins, they seem to maybe threatened the viability of Bitcoin in the long run. Which is a separate issue. So first of all, I think the first argument might not necessarily apply to ETH or stacks. Right. And the second...
[00:50:11] Ruben: [00:50:11] differ on that, right? Like I'm not saying I have the, uh... It's very difficult because you have to read minds to know. Right. So you're making assumptions about what people are doing and why they're doing it. And some of that may or may not be true. So it is definitely a difficult thing to do, but the more easily defendable position is that there are definitely coins out there that are just trying to tell people nice stories to get value from your token that way. And they're never going to deliver on it. And that's the clear line where hopefully we can all agree that that's not okay.
[00:50:42] Muneeb: [00:50:42] Yeah. So I think all of us can agree with that. Right? All of us can agree with that, that there are always bad actors. And they're always criminals. And all of us can agree that criminals and bad actors are a bad thing. That's completely fine. I think taking that argument to an extreme, without fully realizing it, what you just said was that the hardworking team of Princeton computer scientists that I am representing is doing something morally wrong and is lying to people. You're effectively are lumping us in that category. And I think that's just not a thing that any human being should really do that without knowing the circumstances of the other party... You weren't not in a single conversation, but the investors that we've had over a period of very long time. These are sophisticated investors. These are people who have literally funded the likes of Google, Amazon over the years. And without knowing anything about me or my team or the people involved, you're basically sitting on an intellectual high horse and are trying to imply that all of these projects are effectively lying to investors and are some sort of schemes. And it's, just unacceptable to have such extreme viewpoints.
[00:51:59]Ruben: [00:51:59] Muneeb, I got to say, you've really got a knack for taking offense and things that I say. I mean, I do definitely think that there are differences and certain projects do it more and certain projects do it less. And I even think, there is not really a perfect line where everything you're doing is morally perfect. Right. So I definitely acknowledge that. And I actually in fact, have not literally called out Stacks here. I talked in a general way about altcoins in general. And I do think that if you participate in the altcoin ecosystem and you're the problem is that you can look at that entire ecosystem and I think most people would agree that okay, whatever the percentage is you want to put on it, but let's say 80% of it, is just complete nonsense. Right. And I personally, I think it's a lot higher than that. But if you go and you participate in an ecosystem where 80% is nonsense and then somebody looks at your project and assumes that it's just like the other 80%, that is the thing that you'll have to deal with and the burden of evidence is on you to show that you're not like all the others. I think that's the ecosystem that you're in, right? That's not like me saying that you have to do it like that. But otherwise people are going to look at you and they say, okay, here's another altcoin. Okay. It's another scam. Just the reality of things.
[00:53:15]Richard: [00:53:15] Yeah. So, Ruben, maybe to do a reorg of the chain of conversation here, right. I think there was a point where there was basically some sort of resolution to the discussion. Essentially, I think you were saying that yes, a big part of the altcoins ecosystem consists of morally objectionable actions. And I think Mudeeb agrees with that. Right. But that says nothing about Stacks in particular. And I think Muneeb's response of, well, just because they're a lot of bad actors out there, doesn't make this particular project in that particular category, is perfectly fine. I think the discussion that subsequently happened is just general caution for another player in the industry. And I think that's fine.
[00:53:59] Muneeb: [00:53:59] Yeah, yeah. I think the reason why I made that point was when you take things to the extreme, you actually, like that's a very extreme point of view, and I gave Stacks example just to highlight that you cannot take things to the extreme and assume. I don't think the burden is on us because there are startups now. This industry is maturing. You know, whatever the initial burns that happened where there were a lot of these scams or whatever... I don't think it's going to stay the same way like years from now. Like the industry is already maturing. Startups are like that. Investing in startups is like that. Like investors have to do their diligence and that's why there are laws and regulations in the US around, around investing. And we, by the way, have followed all of those laws and regulations. We have actually done a SEC qualified offering that took years and years of work to do that. So I think, if you're following the law, if you're following the trajectory of normal startups like this is like saying that, "Hey, a lot of startups fail and they're morally questionable and therefore nobody should have a startup". I think that's a very, very extreme point of view, but let's moving on from there.
[00:55:05] And I think the second argument that, why do you need these other assets? Well, these assets do very different things. Bitcoin is a store of value. There is a separate type of activity that is called gas for smart contracts, that has very different properties from store of value. And there are going to be a lot of assets that are gas for smart contracts, because that is what you were paying, as an incentive for somebody to run a smart contract for you, right? That's not Bitcoin. Bitcoin is a store of value and the...
[00:55:37] Ruben: [00:55:37] So Muneeb, can you clarify things? I mean, I'm going to let you talk, but, how would you classify STX, as a gas and a store value? Is that, correct?
[00:55:45] Muneeb: [00:55:45] Yeah, it's not a sort of value. And with STX, it is actually much easier to argue that it's not a store of value because STX is literally dependent on Bitcoin. STX, if Bitcoin goes away STX goes away with it. Right? So...
[00:56:01] Ruben: [00:56:01] fork away from it, but bearing a fork? I guess that's accurate. Yep.
[00:56:05] Muneeb: [00:56:05] And one of the key properties of Stacks is people can earn Bitcoin with it. So part of the value that they see in Stacks is actually again interlinked with Bitcoin. That here's a gas token that you can either use it in smart contracts or if you want to hold it, then the only reason to really hold it, other than some people who might want to speculate, is that you're actually earning Bitcoin by holding it.
[00:56:29] Ruben: [00:56:29] So specific to the arguments that stacks is, it's not a store of value. The problem I have with that argument is that, may be in a larger scheme of things, it's never going to take Bitcoin to zero, right? And even that I think is questionable because you can fork, but, okay. Let's, grant that. There's still room for it to grow, I dunno to 30% of of Bitcoin's market cap. And with Ethereum, we very much saw the exact same arguments in the beginning, right. Where the exact argument was, "Oh, uh, Ethereum is gas. It's meant for smart contracts. It's deliberately not a store of value. Don't worry, Bitcoins go and invest in this". That was literally what they said. And then, and now here we are where now you're talking about ultra hard money or whatever it is, right. And the narratives have changed. So. Even though, like that might be the intention that you are holding for this chain. I don't think the intention is something that literally may or may not pan out.
[00:57:23] And the alternative answer that I have to that in spacechains and which is literally a solution to this problem, is to make it a perpetual one way peg, where instead of issuing a token, you allow anyone to destroy a Bitcoin and in turn create a token on this alternative chain. And in doing so, you literally tied that token asset to Bitcoin. It's inferior to holding a Bitcoin. You can't speculate on its value, basically. Because it will never be worth more than one Bitcoin. And this, quite literally, solves that issue. And I think is a large reason why, people, the general public, or the general Bitcoiners, I should say, will prefer a spacechains, which granted right now is a paper design. And I agree with you on that, that it's unfortunate compared to what you have, as opposed to this, this token that is maybe currently not a store of value. It has no intention to do that, but there's nothing inherently stopping token from evolving into something like that.
[00:58:23] Muneeb: [00:58:23] Yeah, so I'll make two points here. Right? So the first point is that the reason in my view that Ethereum has actually started gunning for the store of value market is I would say, precisely because a lot of Bitcoiners have been pushing away developers and innovation. Right? I think it is at this point, it is just clearly a fact that there are more developers on Ethereum than on Bitcoin. There is a report by Electric capital. It puts the number of active developers on a tier monthly active developers on Ethereum to something like 3000. And I think all the other ecosystems like Stacks and, these newer chains, there's somewhere around a hundred active developers. So what has happened is because of like some of these more strict views in the Bitcoin community, you have actually pushed away a lot of innovation into another ecosystem and that ecosystem is thriving, right? Yes. There are problems like I'm a Bitcoiner and I see through some of the problems that are there, but no one can deny that the developer ecosystem on Ethereum is actually thriving. They are building interesting new Lego blocks, interesting new smart contracts and interesting new NFTs and so on and so forth.
[00:59:45] And the point where the Ethereum community was basically like, look, we are doing everything else already, might as well started gunning for the store of value, use case of Bitcoin, because why would you need Bitcoin if Ethereum can actually play that role. And quite frankly, they've been quite successful at that. If you look at before the market crash, there was a real market rotation happening from Bitcoin to Ethereum. You can collect the data from a more sophisticated investors and funds were actually seeing that rotation happen. So I would actually argue that they have been successful because Bitcoin has been more stagnant and pushing away developers and pushing away innovation. Right. If Bitcoin was able to hold on to store of value and have gas assets like Stacks and actually have smart contracts and developer innovation over here, it would be very hard for someone to attack the store of value, basically market share that Bitcoin has actually gathered.
[01:00:43]Ruben: [01:00:43] So a couple of things about that. So the first is I disagree with that the view that Bitcoin has pushed away these developers, like I see that differently. And I think it's more of a consequence of the fact that Bitcoin is money first as opposed to anyone pushing anyone deliberately way. But putting that aside, it doesn't really matter for, for the main argument here. What you are saying is that a lot of developers flock to Ethereum and nowaday became a store of value, but nothing in that makes, puts me at ease that not the exact same thing is going to happen for Stacks, right. And exactly, spacechains do you have a solution to that with the perpetual one way peg where the token literally cannot compete with Bitcoin, whereas here that is not the case. So the success case for Ethereum, it is a success case for Stacks going up in value and therefore competing with Bitcoin's value. And you could say it's a lesser evil, because it's a little bit more closely tied to Bitcoin as opposed to Ethereum. And I think you could say that, but I think that's pretty minor considering overall it is just it's own completely separate platform. And then mainly I would say if people want that they are better off using space chains because of the perpetual one-way peg.
[01:01:54] Muneeb: [01:01:54] All right, so let me get get into this. I think this is the heart of the argument. So over here, what I would say is that the situation where stacks becomes a store of value, let's play that out. Right? So if Stacks is the store of value, then Stacks is a sovereign chain. And for us to do that, we would have to cut all of our ties to Bitcoin, right. Realistically. And so we'll cut all of our ties to Bitcoin. And then what would we do because Stacks is dependent on Bitcoin. To mine Stacks, you have to use Bitcoin to mine Stacks. And the source of truth is the Bitcoin chain. Stacks is not the source of truth, right? So we are literally tied to Bitcoin as a gas asset. We are just bringing the smart contract functionality to Bitcoin. And if we want to now overtake Bitcoin as the store of value, then why would we need Bitcoin? We would literally need to be independent to be a store of value.
[01:03:01] Ruben: [01:03:01] Well, you could become independent at that point. And I don't know what your stances on hard forking Stacks and I'd be curious to hear that.
[01:03:08] Muneeb: [01:03:08] So I'm trying to play that too. Right. So to do that, what would we need to do? We would need to change our consensus algorithm. We would need to boot up a mining infrastructure around the world that is willing to participate in that new proof of work or whatever mining mechanisms that we, that we have that is at that point effectively like starting a new blockchain. Right? So if you are saying that there's a threat that Stacks at some point would start a new blockchain that doesn't exist yet, there are many things in the world to worry about versus the system that exists today that is literally tied to Bitcoin where... Also think of this way, one of the biggest value adds of Stacks, like people are holding stacks, if you talked to our community, they're excited about it because they're earning 10% in Bitcoin, right? As soon as you cut off your tie with Bitcoin. Those rewards go away, right? You're no longer earning Bitcoin. Because now you're another independent chain. So I do think there are fundamental ties to Bitcoin in the case of Stacks that are not present in Ethereum. And there is, I think, there have been a couple of points about, "Hey, spacechains are amazing, this and that". And since the start of this podcast I've been trying to defend Stacks and, and Ruben has been pointing out potential shortcomings here and there. Let's walk through spacechains, right? Not only that they're paper design, let's walk through the safety and liveliness guarantees of spacechains. Yes. So what are the incentives for people to keep the data alive, on spacechains?
[01:04:36]Ruben: [01:04:36] So can I first respond to, to one of your points before we go into this? So just, I think you're making the Stacks overtaking Bitcoin arguments, but I think even at 30%, let's say if, if Stacks hits 30% of Bitcoin's market cap that in itself is already a threat even though they still exist within Bitcoin. And I also think hard forking in general is possible. So I don't think we need to even think about a scenario where Stacks completely overtakes Bitcoin. And I also think that's completely unrealistic for any altcoin to do really. I think it's already a threat, even if it's like sub 50% and I also asked you a question about whether Stacks does regular hard forks or not. Is there something scheduled there or do you not do you in principle not hard fork?
[01:05:21]Muneeb: [01:05:21] So, we pretty much follow Bitcoins way of, if there are any changes you need 80% of the miner threshold to to accept those changes. There are no regularly scheduled hard forks on Stacks.
[01:05:32]Richard: [01:05:32] By the way, I just want to make an orthogonal point. Just even if Bitcoin's market cap were to no longer be number one in the crypto space that actually does not necessarily imply its loss of reserve currency in crypto status. Just think about the market cap of oil versus coal. Like for example, gold has a smaller market, captain oil. I was just looking at up, I think there's 1.65 trillion barrels of proven oil reserves. And if you just take the oil price of $60 per barrel, I know there's different types of oil and so on, but if you just slap that on that's six times the market cap of coal, but I don't see people necessarily going about buying up oil reserves, at least the consensus isn't that oil reserve is necessarily the thing to do when in economic anxiety or to combat inflation, right? You still stack gold. At least that's what most of the trad fi thinks. So that's just the orthogonal point I wanted to make. So maybe that's another reason why BTC Maxis shouldn't be that worried about this type of threat. Ultimately it almost feels like everything else is manmade, but Bitcoin is organic. And the man-made stuff can exceed in market cap, but that doesn't change the fact that in this particular parts of the world Bitcoin still remains the king. Anyway...
[01:06:48]Muneeb: [01:06:48] Yes. So I would love to understand what are the concerns
[01:06:51] Ruben: [01:06:51] Yup.
[01:06:51] Muneeb: [01:06:51] happen if Stacks reaches 30, 30% of the market cap?
[01:06:55] Ruben: [01:06:55] Well, I think the general issue here is Stacks for Bitcoin or is Stacks another token that can gain value. And the problem with that is that you will get people... Like if you go to a Bitcoiner right, and you say, "Hey, use the Stacks blockchain". Then very quickly what you will get is, "Hey, you should buy some of the stacks token". And, "Hey. Oh, it's going to go up in value. Use Stacks, not Bitcoin. Sell your Bitcoin buy Stacks." Right? Like you get that whole scenario where you're competing. Right? Like I think that is always what happens with every altcoin. Stacks is not unique in that. Right? Like every altcoin out there, and therefore you see the Bitcoin ecosystem as a whole, just say no altcoins. Get away from me. Stop pedaling your token to me. Right. And even if that's not the intention of what you want to happen with the chain, I think inevitably that's the behavior you're going to see that people are going to start investing in Stacks and want to see it go up in value, relative to Bitcoin. And they start trying to shill if quite frankly, to token to Bitcoiners if that's how it's marketed. And that whole behavior, I think it's very unfortunate and makes it so that Bitcoiners will start being defensive and start pushing back against it. So I think it gets in the way of Stacks becoming a blockchain for Bitcoin. And I think it very much cannot succeed for that very reason.
[01:08:16]Muneeb: [01:08:16] Yeah. So I would like strongly push back on that. So the way to think about this is there already so many different assets out there that people are marketing all the time. And I don't think that a one other asset makes any difference there. Right? And for people who are actually taking a look at the asset, let's forget that Stacks was the gas for contracts. Just the fact that it functions as a Bitcoin bond, that you can actually have a future earning in Bitcoin by using an asset I've personally talked to Bitcoiners who are interested in that. They're like, "Oh, interesting. This is a Bitcoin bond". Also, I think the, your, the, your image in your mind is like very much tied to, I would say, early days of altcoins who were marketed to to Bitcoiners. The world has changed a lot, right? Like I think what people need to realize is that 99% of Bitcoin right now sits passively, meaning that it's not getting used. It's not getting deployed. It's not getting actively used in lending or other types of use cases. The 1% of Bitcoin that is actually getting used is mostly on Ethereum smart contracts. Which both of us would agree that is a far superior way of doing it than trying to do that natively on top of Bitcoin. That's why you're working on spacechains, Like you want to enable these use so, okay.
[01:09:43] Ruben: [01:09:43] all these, like the more use cases we have for Bitcoin to better, right. Like totally.
[01:09:48]Muneeb: [01:09:48] Yes. So I would focus on the use cases that Stacks is bringing to Bitcoin versus looking like I would encourage you to look beyond the asset. What is the asset actually enabling. What's it's enabling is, is enabling use cases for Bitcoin. For example, now, if you want to buy digital art, you can do that with Bitcoin. You can do a auction with Bitcoin. You... If you want to buy de-centralized domains, you can do that with Bitcoin, right? There is a dark BTC domain name. And by the way, Satoshi himself was working on such ideas. Satoshi himself was proposing improvements to bitDNS or early days of Namecoin and so on. Satoshi himself, like there are quotes where Satoshi is like, it'd be great to have these use cases around Bitcoin and so on. So I would focus on, so in the short span of time, like four months that the Stacks blockchain has been live, we have actually seen over a billion dollars locked up in a smart contract. For people are literally earning Bitcoin.
[01:10:50] How can a Bitcoiner argue that giving people a yield in Bitcoin is actually a bad thing because they're being introduced to Bitcoin. They're using their Bitcoin wallets they're... And also every single Stacks node, if you want to be a miner on Stacks or if you want to run a full node for Stacks, you have to run a Bitcoin node. We are literally adding network capacity to Bitcoin, buy running full nodes. And then let's look at app applications, right? There are more than 25 startups now that are building interesting things and are excited by the fact that they can actually not build in the broader Bitcoin ecosystem versus how many other ecosystems are out there.
[01:11:27] There's Ethereum. There's Polkadot. There's Avalanche. There's Solana. The list goes on and on. If there aren't realistic options in the Bitcoin ecosystem, these developers will go to other ecosystems, right? So I would push back strongly against this notion that all of this is just a altcoin and this and that. The benefits here are limitless. And I think we just need to open our eyes to what's possible there.
[01:11:53] Ruben: [01:11:53] Yeah, well. Let me just agree for a large part with this, right. Because yes, that's all those things are what spacechains are about, but without the token. Right. And that's the whole thing where I think if Stacks didn't have the Stacks free floating altcoin token in it, I think there would be very little for me to object about. There are these small design decisions stats I disagree with what we talked about earlier with the finality. And, one thing that you bring up now that we will have to get into eventually, but I'll hold off for now, where you're saying that Bitcoiners can earn some kind of interest by using the stacks blockchain, right? And I think you know, where I'm going to go with that. But yeah, mainly, of course the use cases themselves are useful. But doing it via a token and doing it in a way that I think is very similar to any other altcoin out there, I think that is ultimately not the way to achieve it. And that's the point where we disagree.
[01:12:46] Muneeb: [01:12:46] So I think let's dig into that, right? Let's dig into why aren't people doing it with these tokens. And I think they will find very interesting challenges, the challenges that I was alluding to earlier that what are the incentives for these miners on a spacechain to actually keep data alive? Right. What's the game theory? How would you actually do it? Because to me, the analogy is like, when you fixate on just a token and not the actual practicality of like, how would these applications actually work, it's a little bit like trying to design a bike that doesn't have wheels. Well...
[01:13:20] Ruben: [01:13:20] It does have a token, right? It's just not a speculative token.
[01:13:24] Muneeb: [01:13:24] Sure. So why would miners keep the data alive?
[01:13:27] Ruben: [01:13:27] So, well, it's not miners that keep the data alive. It's users, right? Everybody, every full node user of the network keeps the data alive, just like in Bitcoin. All the full nodes have the history and when a new full node joins, they dial up the history from other full node users. Spacechains is no different in that. What I'm guessing you're maybe more referring to is what incentivizes spacechain miners to mine the Spacechain block. Or am I mistaken here?
[01:13:50]Muneeb: [01:13:50] My question is that a normal full node user can delete their node and walk away and nobody cares. But a miner has the incentive to keep a full copy because they are incentivized by Bitcoin mining. And that's why they're keeping the data alive and and what...
[01:14:10] Ruben: [01:14:10] No, I don't necessarily agree, but okay.
[01:14:12]Muneeb: [01:14:12] So, please describe to me that if the spacechain miners have no incentive, because they're only like what's their incentive to keep the data alive? People would just do it out of the goodness of their hearts?
[01:14:23] Ruben: [01:14:23] No, they... So, keeping the data alive, like I think very literally the Bitcoin it's in everybody's interest, right? Because let's say I have some Bitcoins and there's a new person that comes in and they're not a Bitcoiner, and they're interested and I'm saying like, "Hey, let me send to you some of my Bitcoins". They'll start a full node and they starts, they have to download the full history and verify it. And only if they can download it, verify the full history, can I send them my coins because otherwise they're not going to trust it. Now, if nobody has a copy, then I can't send my tokens. I can't send my Bitcoins to this person. Right? So literally everybody who has Bitcoins is incentivized to keep the full history of the Bitcoin network, whether they're a miner or whether they are a regular user. So that's the first thing. And in spacechains, it's exactly the same thing. If you are using the spacechains and you have tokens on there, or you are actively involved in any way, if there was an active user base, they are going to be running full nodes and those full nodes are going to have a copy of the history. And if that's not the case, right, if the history somehow disappears very similar to Bitcoin, if the history ever disappears, the entire network just ceases to function or you have to hard fork in a checkpoint or something silly like that.
[01:15:35] Muneeb: [01:15:35] Yeah. So my point is that it comes down to incentives. What you described is that some people have incentives to keep this data alive in Bitcoin, which by the way, you don't need a full node. You can receive Bitcoins on, on SPV wallets or other ways as well. So it's about incentives. Ruben, what you need to think about is a lot of Internet users are not like you, right? They are... Not everyone runs a Bitcoin full node. So what we are talking about is, what are the strong incentives? What are the parties who have a really strong incentive and in any blockchain system. This is a well identified problem in consensus systems that you have to think about the liveness properties, that why would people continue to participate in the system and continue to mine blocks. And I think that there are potentially at least missing information in spacechains that why would people do that.
[01:16:34] Ruben: [01:16:34] For mining blocks. It's the same as any other blockchain. I don't see what you're...
[01:16:39] Muneeb: [01:16:39] So then you have a bootstrapping problem because initially those fees are pennies. They're nothing,
[01:16:44] Ruben: [01:16:44] Yup. Yup. Yup. So there needs to be... At, in the beginning blocks are also cheap enough for literally a user. If I want to create a transaction, I can just create a block because creating a block is literally just making a Bitcoin transaction. So, that's the bootstrapping basically. If you want to create a transaction and there's literally nobody, then you just mine your own block and now you've created a transaction. There you go. Bootstrapping done.
[01:17:09] Muneeb: [01:17:09] Sorry. Why? You're, you're saying that people would just run? People would be miners?
[01:17:14] Ruben: [01:17:14] Yeah, because being a miner in a system is literally the same as being a user. So all that you're doing is...
[01:17:20] Muneeb: [01:17:20] So how do you deal with conflicts, then?
[01:17:22]Ruben: [01:17:22] You mean, uh, reorgs or what are you talking about?
[01:17:25]Muneeb: [01:17:25] Let's say that I have a conflict with... I have a different view of the chain than somebody else. Who decides that what's that right view?
[01:17:33]Ruben: [01:17:33] So in spacechains, it's very literally the case that there can be only be one spacechain block per Bitcoin block. And that means that it's very clear which one is the longest chain. It's just the one that has the most blocks that are all available. Right. If they're not available then you ignore the chain. So that is, that is how you, resolve the conflict. You just look at the longest chain. Yeah. I mean, it's, difficult to get it to you. Okay.
[01:17:56] Richard: [01:17:56] Okay guys. So we are way over time and I have one last question for Ruben and this is still related to Stacks. And then we'll just go to closing statement. Does that sound good?
[01:18:07]Ruben: [01:18:07] I hope it's gonna be about the consensus mechanism. That's the one point we haven't really talked about where I disagree how Stacks' consensus works, but yeah.
[01:18:15] Richard: [01:18:15] Oh, let me just read you the question and maybe it's related to what you're trying to get to. So I understand your view to be that there's no trustless way to fully utilize actual Bitcoins on the STX chain and the mechanism in which you can get rewarded for staking STX, AKA stacking
[01:18:30] Ruben: [01:18:30] Right.
[01:18:30] Richard: [01:18:30] is not robust in your view and can be taken over by BTC miners. Can you elaborate on this point?
[01:18:36]Ruben: [01:18:36] Okay. Yeah. So this is like two points, right? So the first, I think is probably important one because we glossed over the actual debate's argument here. Right. Which is... So, to Muneeb's point, right? I think it is really cool that you can use chains like Stacks, like spacechains to do all these kinds of Bitcoin adjacent things. And there are even some cool things where you have like collateral on the alternative chain and then based on whether somebody makes a Bitcoin payments, you do one thing or another thing with that collateral, and you can have a lending and things like that. It's really, really cool. But the one thing that it ultimately cannot do, which is why I disagree with, with our debate's statement is that you cannot use Bitcoin in a trustless fashion inside of this alternative chain. So if you have some kind of, let's say, you want to do something like Uniswap or something right. Where you want to take Bitcoin and you want to swap it for some other token, well, maybe it's not the best example because you can just do atomic swaps of course between the chains. Maybe some advanced lottery or something. The point is that you cannot literally put a trustless Bitcoin inside of...
[01:19:42] Richard: [01:19:42] protocol example that Muneeb mentioned at the beginning.
[01:19:45]Ruben: [01:19:45] Well, because in the lending protocol function, everything occurs on the... So really the problem that it comes down to is that the alternative chain cannot change the state of the Bitcoin chain. So you cannot have a condition where based on what happens on the alternative chain something else happens on the Bitcoin blockchain. Right. Let's say on the Bitcoin blockchain, the money either goes to Alice or Bob, depending on what happens on the alternative chain. You can't do that. And ultimately, because you can't do that, and like Muneeb earlier painted that, there might be some ways that they're looking into that it might be possible. Well, I guess we don't have enough time to go into those, but yeah, that will be an interesting discussion to have at the very least. But as of what is possible right now, that seems to be impossible. And that is why I say advanced smart contracts using Bitcoin trustlessly, they can't work.
[01:20:35] Richard: [01:20:35] Right. And then the second point is about the BTC miner problem.
[01:20:39] Muneeb: [01:20:39] Yeah, so I would, basically say that this is literally what PoX does. The definition of PoX is that there are things happening on the Stacks chain because of proof of transfer. Right? So there are things happening on the Stacks chain. And because of those things happening on the Stacks chain, state changes on Bitcoin are happening. Because these people are willing to participate in consensus and make those transactions. There are people on the Stacks' side that say, "Here's my Bitcoin address". And it's interesting that I think Ruben mentioned that some sort of advanced lottery. You can actually view the current implementation of PoX as some sort of an advanced lottery, right? And people are literally participating in that advance lottery and close to 500 Bitcoin has actually exchanged hands participating in that advance lottery.
[01:21:29]So PoX is a solution for that exact problem. And the solutions that I was talking about, one of them is to generalize PoX so that there could be a more general type of a smart contract where someone who wants a certain action to happen on Bitcoin can actually define what that action can be can define the payouts and people can come and claim that by performing the action on Bitcoin.
[01:21:54] Ruben: [01:21:54] So can I try and summarize and then you can tell me if I get it right. So I think what you're saying is that within the Stacks blockchain, there is a mechanism that allows you to basically receive the fees that are being paid on the Stacks chain, you can receive them in Bitcoin. And using that mechanism, you can then basically use however high those fees are that amount, up to that amount, you can use that, to conditionally pay out someone. Would that be accurate or am I not summarizing correctly?
[01:22:29] Muneeb: [01:22:29] So, they're not fees. So there aren't limits on it. Right? So you can define any amount in a smart contract. Right now, these are not fees they're basically right now the upper limit is the number of new stacks that are
[01:22:41] Ruben: [01:22:41] Right.
[01:22:42] Muneeb: [01:22:42] being minted in that block. So that number...
[01:22:44] Ruben: [01:22:44] So the reward, I should say. So both the new stacks being minted plus the fees, is that right? So I think there are two issues I have with that, right? The first is that currently you're assigning those coins to people who are stacking, right. Who are taking the STX token and they're basically like locking it up for a certain period of time, and they're receiving Bitcoin in return for doing that. Right. Personally am not a big fan of the whole staking mechanism inside of most chains, but I'll put that aside and not, not go into that. So you would be diverting an asset that is currently being used to reward people who are staking or however you want to call it, and you would have to divert that away from the current reward. So that would be the first weakness. And I'll get into the second one which is more complex after that, but maybe you can respond to this one.
[01:23:31] Muneeb: [01:23:31] Yeah, so I'm actually not trying to say that you change the mechanism. What I'm trying to say is that there already exists a mechanism in which... So the two-way peg problem is a hard problem. The hard side of the peg is how do you make changes on Bitcoin based on state on another chain? What I'm saying here is that this is already working on Stacks. There are changes that only stacks is aware of, Bitcoin is not aware of that. And based on those changes, actions are being taken on the Bitcoin side. And what I'm saying is you can generalize this further, which is the R&D that we are doing, that this thing is already working. How do we generalize that so that we can give people a programmable mechanism so that you can generalize this feature of 'changes on Stacks can actually trigger changes on Bitcoin'.
[01:24:28]Ruben: [01:24:28] Yeah. So, I've looked into very similar mechanisms and I think, there are some interesting things you can do there. The hurdles I've come across with examining things like this, is that the first thing that I was just saying, it is limited to whatever the fees plus the block reward are. Right. So that's the extent to which you can send Bitcoins out on the Bitcoin blockchain. So the main argument is really that I think the Stacks consensus mechanism will devolve into merge mining. And we talked about this on Twitter. So let me try and rephrase what the argument is, and then you can respond to that. And I don't know, maybe you don't think it's fair for me to say, but I had the feeling on Twitter that we agreed that it's possible, but you just think it's not plausible. But the explanation goes as follows. So currently people can basically expend certain resources to create blocks on the Stacks blockchain, and the way they do that is by locking up their Stacks tokens. They lock it up, that is like expending a resource, right. They're now currently, they're not able to use those tokens and in return, whenever somebody creates a block, now they have to send Bitcoins to the people who have been staking their Stacks. So what you end up with is with proof of work, what you would have is you would destroy electricity or you'd destroy energy, and you create a proof of work block here. What you're doing is you are giving somebody Bitcoins, and you're giving them to the Stacks the people are staking. So the problem I have with this is that's none of these rewards go to Bitcoin miners. And because none of these rewards go to Bitcoin miners, there's very little incentive for a Bitcoin miner to actually allow somebody to send Bitcoins to the Stacks stakers. What they can do instead is they can censor all the people that are trying to create Stacks blocks and in doing so they can basically allow Bitcoin miners stake and can take all the Bitcoins that are supposed to go to the Stacks stakers. Instead all the Bitcoin miners will get those rewards. And this involves disallowing certain transactions in order to manipulate the mechanism. But my argument would be that they're incentivized to do so because out of band they can profit from doing this. So even though on the Bitcoin side they would not be receiving as many fees because they're censoring certain transactions, but presumably these would be low like minimum fee transactions, they will be getting an alternative reward by participating in Stacks consensus.
[01:27:06] Muneeb: [01:27:06] Yeah. So the miners, Bitcoin miners cannot get the Bitcoin. Because to get the Bitcoin, they would need to actually own Stacks and participate on the stacking side. The concern, let me rephrase the concern here. So that's not a concern because that's not how things work. No one who is not a Stacks holder can actually get the Bitcoin. Only the people who are Stacks holders can get Bitcoin. The concern over here is that, let's actually simplify that. Let's just say that Bitcoin was just getting destroyed. Forget about the Stacks holders, right? The Bitcoin is just being destroyed. That's a version of proof of PoX that you can have. And even in that case effectively, what's happening is that there are people who are using the Bitcoin chain to mine a different chain. And the concern here is that what if the Bitcoin miners start censoring that because they see the mining activity as valuable and they want to mine instead, that's the concern, right? So what happens with that concern is that as long... So a single Bitcoin miner can't do anything about it because as long as any miner is willing to accept transactions, and these are transfer transactions, these are normal Bitcoin trans transfer transactions, other people can participate in the system. So this corner case is when all of the Bitcoin miners have colluded with each other to censor a certain type of transaction. And I agree that if all of the Bitcoin miners do collude with each other to basically say, we are going to start censoring everybody else and we are the only miners on Stacks now. I would like to remind people that that is a state that systems like RSK would be more than happy about. They're at 60% value right now, they would want to reach a hundred percent of the Bitcoin miners are miners of RSK. That's an ideal scenario for them. So this weird corner case is actually an ideal scenario for a merge mine chain where every single Bitcoin miner has to be a Stacks miner. Right. So I can live with that corner case because that, then at that point your network is as secure as Bitcoin mining, which I'm fine with.
[01:29:19] Ruben: [01:29:19] Yeah. So just to make it really clear, if miners were to do so, would receive basically all the rewards that are in the Stacks blockchain. Is that correct?
[01:29:28]Muneeb: [01:29:28] They will basically receive the mining rewards. There are two different types of rewards that we are talking about. That's why I simplified it. Because they're receiving mining rewards because they are doing the work of mining. It's not like they're stealing that money. The only thing that has happened is that instead of people like anyone that can be a miner, now you would have to be a Bitcoin miner to be able to mine Stacks and a hundred percent of Bitcoin miners are mining Stacks. Again, from a security point of view, that's actually pretty, pretty, great position to be in
[01:29:57] Ruben: [01:29:57] Yeah. I agree that it's a good position to be in from a security point of view. I think it will end up being pretty likely that this is going to happen if Stacks is going to be popular. Because literally what we're saying here is that if miners, if all the miners act in a certain way, they will increase their profits. And they will have to compete for those profits. And proof of work will go up. So, it increases the pie for the existing Bitcoin miners. But what it also means is that ultimately, when your system, if this were to happen, which I'm sure you disagree on the likelihood, but let's say if this were to happen, then the entire system that we just talked about, about, Bitcoiners receiving or Bitcoin pay payments being received, and that being good for Bitcoin and people earning an interest into their Bitcoins that way, or using those payouts in order to do some type of smart contracting on the Bitcoin blockchain or somehow manipulate some payouts rights, all that stuff that we talked about, goes into water. And the entire staking mechanism that currently is happening on Stacks where people are staking their, their Stacks tokens, that will fall into the water. Right? So all of that will disappear in this scenario. And that is, that was a large part of your argument as to like why Stacks was able to influence what happens on the Bitcoin blockchain.
[01:31:18] Muneeb: [01:31:18] So I think this is for the audience, that what Ruben just said would sound very alarming and you shouldn't be alarmed because this is app...
[01:31:27] Ruben: [01:31:27] you should be alarmed on.
[01:31:29] Muneeb: [01:31:29] Because it's absolutely incorrect, right? Again...
[01:31:32] Ruben: [01:31:32] It's incorrect? Okay.
[01:31:34] Muneeb: [01:31:34] Because the stacking part is separate. What the miners are getting are STX. They're getting the mining rewards. The stacking rewards are completely separate from mining rewards and the system would function a hundred percent just as described, even if all the Bitcoin miners are mining these rewards. So all of the features I talked about, they will continue to live and there's absolutely no scenario where all of that goes into the water.
[01:32:07]Ruben: [01:32:07] I think I maybe misunderstood one part that you can explain to me. So what I was trying to say is that people who stack stacks, they receive part of the Bitcoins. Whenever a block is, a whenever a Stacks block is created, Bitcoins have to be sent to people who are staking stacks. Is that not correct?
[01:32:29] Muneeb: [01:32:29] That's correct. And in the scenario where only the Bitcoin miners are the miners on the Stacks chain, then the Bitcoin miners are sending those Bitcoin to be able to mine. And the receivers don't care where the Bitcoin is coming from.
[01:32:42]Ruben: [01:32:42] Sorry. Can you rephrase that? I don't think I fully understand. So...
[01:32:45] Muneeb: [01:32:45] Okay. So
[01:32:45] Ruben: [01:32:45] Are there bitcoins that are going to Stacks stakers, in the normal scenario and in the alternative scenario?
[01:32:52] Muneeb: [01:32:52] So in both scenarios, it's Bitcoin that is going to the Stacks holders and in the normal scenario, anyone can mine. Right? So anyone can mine meaning that they can send their Bitcoin to the Stacks holder and mine. In this scenario, only the Bitcoin miners can mine, but the only way they can mine is actually by sending the Bitcoin to the Stacks holders. There is no other way to mine. If they don't do that, they will not get the money rewards.
[01:33:16]Ruben: [01:33:16] So, well, I think I disagree on that. So let's dive into that. So what determines how many Bitcoins are being sent?
[01:33:24] Muneeb: [01:33:24] That's the consensus definitions on the Stacks chain.
[01:33:28]Ruben: [01:33:28] But it can change. There's a difficulty algorithm, right? That determines more or less Stacks are being sent to these people. Yes...
[01:33:35] Muneeb: [01:33:35] Right. Yes. So I see where you're going. Right? So then the competition is between Bitcoin miners. You have only closed the set of miners that you cannot enter the competition unless you are a Bitcoin miner, but Bitcoin miners are competitive with each other. They compete on hashes to mine on Bitcoin. They will compete to mine on Stacks.
[01:33:58] Ruben: [01:33:58] I see what you mean. Okay. So my assumption is that the one scenario that I had in mind, right, is that, they will just, all the Bitcoin miners will let it go to zero. Right. And they stop paying out all the Stacks holders. They stop paying them out any Bitcoins and they just take the Stacks rewards for themselves. What you are saying is that no, even in that scenario, they are still going to compete with each other and send Bitcoins to Stacks stakers in order to get these rewards. I would have to think about whether I think that that's plausible or not, but that is a point I have not considered yet.
[01:34:36] Muneeb: [01:34:36] Yes. I would actually add another layer to this. Even if for some reason the Stacks holders stop earning Bitcoin, that does nothing to the security of... I'm not saying that they will. Firmly stand by the yes. Bitcoin miners will keep doing that. It does nothing to the Stacks consensus because even if all of the Bitcoin was literally being destroyed, the consensus still works. And now Bitcoin miners are destroying Bitcoin. Sure. It doesn't matter because the only difference here is that 10% yield that people are getting, they're not getting that. It's not...
[01:35:08] Ruben: [01:35:08] Yeah.
[01:35:08] Muneeb: [01:35:08] consensus critical anyway, that your chain is still secure.
[01:35:11] Ruben: [01:35:11] Yeah. And I was not claiming that. I think, under this scenario, Stacks blocks will continue to be created. It's literally just the Bitcoin payouts mechanism, that's the part where I was skeptical. And, now at least like I'm a little bit more on the fence because there's an argument here, or there's a point here that I had not fully considered. Feeling-wise, I still feel like it's likely that it will just devolve into proof of work. And these Stacks holders will not be paid on a Bitcoin. But I'll have to think about that more.
[01:35:39] Richard: [01:35:39] Okay, great. So we are way over time. But this has been a fascinating debate. I'd like to move to closing statements, unless there's anything else that you guys want to say prior to closing statements. In fact, that's what the closing statements for. Yeah, let's do that. So let's see. So Ruben, you opened, and so let's have Muneeb with his closing statement first.
[01:36:01]Muneeb: [01:36:01] My closing statement here is that, if people who are looking at these discussions on Twitter or are listening to do this Podcast... I would basically encouraged them to think about the fact that what you're comparing here is a working system that is deployed and got a billion dollars locked up on it. And we have multiple startups that are being built, developers who are getting excited about building on Bitcoin, all these applications, and so on. And on the other side, you are seeing like paper designs that might have their own problems, right? They haven't really been scrutinized at the level that these things happen. And the takeaway should not be that, "Oh, it's entirely possible to do this without a token". We have actually deeply thought about these things and we are well aware of what are the design trade-offs that you need to make, what are the benefits that you get, if you have incentive mechanisms, you actually increase de-centralization. Anyone can enter anyone, anyone can mine, and so on. Your smart contract language actually becomes more elegant and more generic and so on. And so I would encourage people that instead of, if you don't understand the technical arguments, instead of looking at it and thinking that, "Hey. There might be some serious concerns with this approach, that's absolutely not the case. Like some of the serious concerns me and Ruben have disagreed on points, they might, right.
[01:37:40] Ruben: [01:37:40] Yeah, smaller things. Go ahead. Sorry.
[01:37:42] Muneeb: [01:37:42] Like I think the reason why I accepted to come here and debate is that the image that I get is that a normal Bitcoin person would point to something like spacechains or arguments by Ruben to say two things. A, "Oh, they're serious concerns with Stacks". Or B, "You can just do this without a token". And I think the reality is that, A serious concerns as you just heard, like there aren't there. B, doing it without a token is not an easy thing. Right? You have to actually build that out. You have to actually scrutinize those systems and study the liveliness and safety properties of those systems. And then figure out that is the system actually going to work in the real life, which is the real test when the rubber meets the road.
[01:38:25]Richard: [01:38:25] Okay, Ruben. Go ahead with your closing.
[01:38:32]Ruben: [01:38:32] I think part of this debate went all right. Part of this debate didn't go so well. I think it's unfortunate that Muneeb took some offense to certain things I was saying. The first point in particular got quite aggressive. I think that's unfortunate. Generally I think, these are just interesting things to talk about. And, yeah, it's difficult I think, because to Muneeb's credits right? He's putting in his blood, sweat, and tears into his project. And, I come in and I, have criticisms and I think that is difficult to take. So I do understand that. I think it's not great to talk about things like, having PhDs and having done a lot of research and things like that as a way appealing to authority. I don't think those are great arguments. I guess that's one way of looking at it. Spacechains not having been built. Yes. That is a very difficult thing to do without funding. And if you don't have an ICO, it is difficult to get the funding to make things like this. I can say though that the things I've been working on, like I have three kind of side chain proposals and the earliest one that I thought of which is called state chains is actively being built. And now on Testnet, and made by a company called a CommerceBlock. So at the very least they show that the ideas, that one of the ideas I had at least, has been viable to actually put into production. And whether or not that means the spacechains are viable too. That's obviously not a given, but I very much think it is.
[01:39:53]And I hope at least by talking about the perpetual one way peg, I have at least pointed out that it is actually entirely possible to do something like Stacks without a free floating altcoin token. And I think, you could literally take the kind of the Stacks design and hard fork it and take out the token and replaced certain aspects, mainly the token and then secondly, the mining mechanism basically. And you would end up with, I think, something that is more likable for Bitcoiners, something Bitcoiners are going to prefer. But yeah, that is a, that's how I see it. And I guess lastly, I would say to anyone who's curious, look into spacechains. Look into my Spacechain's video that I have. If you just search Ruben Somsen and in spacechains, you'll find it. And you'll see like the design considerations that I've put into it. And I personally think it's quite a robust protocol that just works. But haven't really talked a lot about it here, so hopefully people can look at that and see what they think.
[01:40:50] Richard: [01:40:50] That's great. But Ruben, just to interject very quickly... So the original motion is "Trustless smart contracts for Bitcoin is impossible without forking".
[01:40:58] Ruben: [01:40:58] Yeah,
[01:40:58] Richard: [01:40:58] But now you seem to be conceding that a tokenless stack design seems to be able to do the trick. Are you, is that what you're basically saying?
[01:41:10] Ruben: [01:41:10] No, sorry. No. I think both designs are not able to do that. I just think Stacks without a free-floating altcoin is a superior design. And to be specific, because I think this gets mixed in, right? Like I think if you'd taken the token out of Stacks, I think I have a lot of admiration for what's there. Right? So the core of my disagreement is not that the Stacks ecosystem completely doesn't work. The problems I have is there's a token, which I think inherently really messes with incentives. It makes it very hard for Bitcoiners to accept it. And the second thing is that I think Muneeb made statements on Twitter that personally, I think, were overselling the project and those sort of things, I think we've at least tried to address here today.
[01:41:54]Muneeb: [01:41:54] Yeah. So I think, very, very quickly two things here. One is that, all the work in Stacks is open source. All the hard work and blood, sweat, and tears that we've poured into it, everything is available open source. And I would just go back to, in theory, there is no difference between theory and practice, but in practice there is. So I would welcome anyone to come in, please fork the Stacks chain. Please take out the token if you don't like it. Try to run a mining mechanism. And then try to see if it works. And this will just go back to the problems I was pointing out. In Spacechains, people will not have the incentive to run these nodes. People will have bootstrapping problems, nobody would care. So these things, there's a reason why these things remain paper designs. Things remain paper designs when people don't care. Nobody is bothered enough to come in and actually build it. No one is bothered enough to actually run the node, actually have get a billion dollars of capital locked up on it. And there's a reason for that. So open invitation to everybody. I would love to see that happen. Please fork the network. Please try to take out a token and then discover firsthand what are the problems like. Why have these people chosen these design decisions and what are the problems that you run into with a system like that?
[01:43:14] Secondly, same thing about the trustless smart contracts. I think the answer is going to be when these applications are actively being used, when people are literally using that. Because we can sit here and have, on our intellectual high chairs and have these discussions all the time, but the real test is going to be, are these applications built? Are people actually using it? Is the ecosystem thriving or not? And that's where my bet is that Stacks is the project that is way ahead of anybody else in terms of real applications, real use cases, and actually building it there. So we will see the trustless smart contracts when people are literally using it.
[01:43:52] Richard: [01:43:52] Great. Well, thanks for joining the debate today, Muneeb and Ruben. In general, I'm a fan of having longer form conversations and thank you both for graciously accepting this. And because this is a topic near and dear to both of your hearts, inevitably there will be some clashes. But, uh, hope there are no hard feelings. And to be sure, I'm sure there will be continual debate on Twitter and maybe other podcasts between the two of you later on. So now how can our listeners find both of you starting with Muneeb?
[01:44:21] Muneeb: [01:44:21] Yep. So I'm on Twitter @muneeb that's M U N E E B. And you can find all the information about Stacks on stacks.co, and then there are links to all the different entities, all the different smart contracts, builders, and applications, and accelerators and funding available for anyone who wants to come in and actually build in the ecosystem.
[01:44:47]Ruben: [01:44:47] Yeah. So you can find me on Twitter as well @SomsenRuben. There's a website called tiny.cc/somsen, which is a reference to a GitHub page where I have links to all of my projects. There's also a telecom chat room t.me/spacechains. So if you want to talk about spacechains and things like that in there are a bunch of links there also. And finally, I also am co-host of The Unhashed Podcast. So if you enjoyed me talk, it's a little bit more of a casual podcast, but we have technical conversations on there as well. So if you find it interesting, go check that out.
[01:45:20] Richard: [01:45:20] Fantastic. So today's motion was “Trustless smart contracts for BTC are impossible without forks.” Thank you for listening in. We'd love to hear from you and to have you join the debate via Twitter. Definitely vote in the post debate poll. Also feel free to join the conversation with your comments on Twitter. We look forward to seeing you in future episodes of The Blockchain Debate Podcast, consensus optional, proof of thought required.
[01:45:40] Thanks again to Ruben and Muneeb for coming on the show. This was not the easiest debate to moderate, but I did learn a lot. The conversation went off course many times, but I think the original topic did get sufficient airtime. I wonder if I should do a better job of making sure that debators stay on topic or let them freely make points about the adjacent areas. If I do the former people might just argue about semantics and in some cases, the debate can end quickly. Whereas if I allow more flexibility, I think we all generally learn a bit more since there's just a lot of ancillary knowledge that 'll be useful to know. If you have a strong view about what I should do in the future. Do let me know.
[01:46:16]What was your takeaway from the debate? Don't forget to vote in our post debate Twitter poll. This will be live for a few days after the release of this episode and feel free to say hi or post feedback for our show on Twitter. If you like the show, don't hesitate to give us five stars on iTunes or wherever you listen to this and be sure to check out our previous episodes with a variety of debate topics, Bitcoinâ€™s store of value status, the legitimacy of smart contracts, DeFi, POW vs POS, and so on. By the way, we're planning episodes on CBDC centralized lending versus decentralized lending, whether Bitcoin is good for America and whether Bitcoin is good for the environment. Thanks for joining us on the debate today. I'm your host Richard Yan and my Twitter is @gentso09. Our show's Twitter is @blockdebate. See you at our next debate.