Transcript 0:00 [upbeat music] Uh, I'm here with Mihail from sCrypt. 0:31 Yes. Which is a company that does what? Well, our main s- flagship product is a compiler that compiles high-level TypeScript code into Bitcoin Script code. 0:42 And especially now with, uh, you know, uh, w-we were initially starting off on chain which, uh, which has all of the opcodes, uh, enabled in Bitcoin scripts, specifically such as OP_CAT and OP_MUL. 0:55 Um, but we found out that, uh, all we need is basically one, uh, one little opcode in BTC, uh, uh, OP_CAT, and it e- it enables us to do much more than, uh, than Bitcoin currently does. 1:07 So Bitcoin essentially goes from, uh, a digital gold, uh, transaction, simple transaction machine to a full computational machine. And but these scripts, these covenants can get quite complex. 1:19 They have many thousands of opcodes in them, and it's really, uh, cumbersome to write it all out in the assembly, and that's where sCrypt comes in. 1:27 You, you write out, uh, smart contracts or covenants, as they're called also, uh, in a high-level language. You compile it down to, uh, script, Bitcoin Script, construct transaction, and broadcast it. 1:37 That's basically what sCrypt does. 1:39 And you guys have been doing this on other Bitcoin, like Bitcoin fork, uh, forks with Bitcoin, uh, for quite a while now, and you've been implementing this most recently on Fractal, which is kind of top tip-tip of everybody's tongues right now. 1:54 Yes. And it's interesting because there's been this narrative, uh, shout out to the Taproot Wizards of like, "Let's bring some of these opcodes back," specifically OP_CAT. And here, then here comes Fractal. 2:05 And you guys, uh, well, Fractal's got CAT enabled. You guys, uh, immediately launch a token standard, and it generates a ton of activity on chain. 2:17 Let's just jump right to specifically, what is this CAT 20 token and how does it actually work? Okay. Yeah. So, uh, CAT 20, uh, token is a, is a layer one enforced, uh, token standard. 2:31 What that means is, uh, y-you got this, uh, each Bitcoin transaction has a script, uh, in it, right? And it's a, it's a covenant script, and this script in CAT 20 does the whole validation of the token itself. 2:42 It doesn't need any external services like Ordinal does. Ordinal needs an indexer. 2:47 For example, I can create a, a valid Bitcoin transaction that's an invalid Ordinals transaction, and the indexer will re-reject it, but, uh, still the core network will accept such a transaction. 2:58 But with CAT 20, everything is done by the miners. Everything is done by the layer one network. So for example, if I construct a invalid, uh, CAT 20 transactions, it, it will get rejected by the miners. 3:08 So that's the major, uh, difference. It's much more powerful in that sense than Ordinals is. 3:15 Yeah, and because, like, Bitcoin itself does not, uh, or just, yeah, Bitcoin itself does not nat-natively enforce, uh, this type of logic to enable tokens. Those tokens have to be... 3:27 And we've seen this with, like, ancient token standards like Omni, um, to kind of like crowbar in tokens onto the Bitcoin network. 3:39 But you've, you guys have demonstrated that you can enforce token state on a layer one blockchain- Yes... with CAT. 3:50 Now, I've said that, like, tokens are not really what I enjoy talking about, but CAT is a really dynamic opcode, and you can do a lot of things like this. You brought up- Yes... covenants and therefore vaults. 4:02 Tell me in your own words, what are covenants and vaults? Uh, yeah, sure. Yeah. Uh, as you said, yeah, OP-OP_CAT is a really simple, uh, elegant opcode that enables many things such as covenants. So what are covenants? 4:15 Uh, a covenant is, uh, just a, a Bitcoin transaction that has a, a specific covenant script, uh, in the output or the witness script. And what it does, it enforces the structure of the next transaction. 4:28 For example, uh, yeah, I can, I can make a payment to you, but I can restrict the next recipient, for example. That's what a covenant is. 4:36 And you can do, uh, things such as recursive covenants that do this indefinitely, right? 4:41 And with this mechanism, you can also, uh, uh, because you can introspect a, a transaction, you can also bring in the ancestors, uh, of this, of a particularly executing transaction. 4:52 And that way, you can also validate the whole history of, uh, a token. 4:56 And that means is, uh, you can, you can do an inductive proof, for example, that, uh, CAT 20 actually utilizes of, uh, of just including, uh, the genesis, uh, transaction ID and the output index in an operator combined with the, uh, recursive covenant script. 5:13 You, you don't have to track the whole history of the token, uh, to verify that it's from the valid genesis, that it's not some fake, uh, Sybil coin, uh, without actually checking the history. 5:24 You just verify the last transaction, and that is it. You know the whole history of it. And that's, that's things such as this become possible just by re-re-enabling like one simple opcode, which is OP_CAT, you know? 5:35 Yeah. And you would call that, say, uh, indefinite recursive, not recursive, just indefinite, like a reproducing transaction. Yeah. You might call that a smart contract to interact with. Yeah. Yeah, yeah. 5:47 It, it becomes essentially a smart contract. Yes, exactly. Yes. But it's a bit different than- Yeah... in the Ethereum world because in the Ethereum world, a smart contract is its own separate entity. 5:58 But in a UTXO world, such as Bitcoin, the smart contract lives in a UTXO. So each update to the smart contract is a new transaction that unlocks the previous UTXO. Which is pretty cool. Um, it's... 6:11 I almost, I feel that, like, we need probably better language to distinguish a smart contract on the blockchains from, like, this almost, like, little machine that is- Yeah... this UTXO state machine- Yes, yes... 6:22 in a way. Yeah, yeah. Um, do you have any thoughts about this? 6:25 Like, I, I, I, uh, I'm often kind of on the fence about, like, whether even to, to use the term smart contract or- It's, smart contract, uh, the term itself is pretty stupid because- Yeah... 6:35 it's neither really smart, it doesn't do any intelligence, and it's not really a contract in, in the law definition, right? [laughs] Yeah. So yeah, the smart contract itself, but it's what people are stuck with. 6:45 Yeah, but, uh, I agree that in the, in a Bitcoin world, it's, it's a bit, you know... Because you usually think about Ethereum when you hear smart contract. 6:53 So covenant is a, is a, I think it's a better word for it, yeah, because covenant, you, you see, oh yeah, it's this thing that, uh, enforces the next state. Yeah, and it just, it becomes sort of a smart contract. 7:06 But yeah, covenant. Co- covenant is a good starter word, in my opinion, to not get the two things confused. It's, you know what you're talking about, yeah. Yeah. It's funny- Yeah... 7:16 'cause I, I think about, like, how Casey introduced ideas of ordinals and inscriptions, but everybody calls inscriptions ordinals. Yeah, yeah, yeah. And it's, I feel like you get to introduce one new word at a time. 7:27 Yeah. [laughs] So, you know, maybe covenant's that word, and so people- Yeah... just reframe how they- Yeah... think about it. Um, what are other interesting things that you can do with covenants? 7:37 This is a really broad design space. Yes. Um, what's... I'll just, I'll throw it back to you. What's the most interesting thing to you that ac- that you can do? Well, you can do many things. 7:47 You can do AMMs, you can do DEXes, you can do atomic swaps. You can, you can do, uh, for example, cross-chain, uh, uh, of, uh, Bitcoin-based, uh, chains. 7:58 You can do cross-chain operations because you can verify, uh, Merkle proof or an SPV proof from another chain, uh, on a different chain, and that opens up a whole lot of possibilities. 8:08 You can do games, you can do Tic-Tac-Toe with a covenant, uh, on-chain enforce, uh, which is a really simple example, but it works. And you can also do, like, uh, message boards and stuff like that. 8:20 Yeah, I mean, really, imagination is the limit. I, I don't know what's possible, you know? You know, I... 8:25 There was this, there's this line from, uh, Pete Rizzo, who's a well-known, like, Bitcoin, Bitcoin historian, and he talks about we may be entering into an era where there are the Bitcoin monetary maximalists, and then there is this new movement of Bitcoin as a platform. 8:43 Yes. You sound like a person who thinks of Bitcoin more, that you, you wish Bitcoin could be more like a platform. Yes. 8:49 I think, uh, Bitcoin has the potential to be, you know, it was the first blockchain, it could be the last. 8:55 Uh, but basically, we're in a phase of rediscovering that this thing can do pretty much everything that each other chain w- w- which is supposed to fix Bitcoin's shortcomings, uh, it can be done on Bitcoin, basically, again. 9:10 And yeah, that's, that's, in my opinion, is a really, uh, great thing because w- 9:17 I- I, uh, my personal opinion is, like, a, a multi-chain world, yeah, it's fine, but it's gonna aggregate towards one chain because it just makes life simpler, right? You don't wanna, you know... 9:27 How, how do you do real life, uh, stuff with, like, a thousand different blockchains? It, it will all converge into one, and I think Bitcoin has a shot of being that one. Bitcoin Season Two is brought to you by BotaniX. 9:41 BotaniX Labs is pioneering a new direction for DeFi with the first EVM L2 running on Bitcoin that's built to be forward secure, decentralized, and share gas fees generated by the network with users. 9:54 See the future of DeFi at BotaniX, botanixlabs.xyz. 9:59 Um, one of the, I think it's not as, um, I don't think this is, like, popular of a narrative, but something like Cat or Covenants could really improve the privacy of Bitcoin transactions. 10:12 Are you familiar with some of these, uh, ideas or schemes to use Covenants to improve, like, base layer privacy? Yes, you could. You could use, uh, yeah, you could use, you could build a mixer. 10:24 I mean, I'm, I'm not sure about the legalities of such a thing, but it, it's possible. We're, uh, I, I like talking about these- Yeah... 'cause the past year's been bad for Bitcoin privacy tech. Yeah. Yeah. 10:32 And I, and I look and I'm like, if you're a privacy advocate, um, then, like- Yeah... like, you're, you've got to be a pro-Covenants on Bitcoin. And so. Yeah, yeah, yeah. 10:43 It enables a lot of, uh, these aspects, like privacy aspects as well. Yeah. 10:47 It, it, it can even, like, Opcat lets you do, uh, uh, zk-SNARKs, uh, or zero-knowledge proofs, uh, for that matter, on, uh, natively on Bitcoin it- itself. 10:59 And that, that opens up, that's a different thing that opens up a whole new world itself, right? So zero knowledge technology and... Yeah, that could be also used for many such use cases. Yes. 11:11 Um, and I had tried to ask you this a bit earlier, but we got cut off, but I wanted to go back to this idea of vaults improving, uh, self-custody of the Bitcoin. Like, this is a huge pain point for a lot of users. 11:24 I think Udi talks about this all the time, is like, um, just like the public, private key system and, like, securing your private key and securing your mnemonic seed, like, it's very clunky. 11:35 It just, like, it just doesn't, uh, like mo- it doesn't, doesn't work very well for most people. Yeah. Even for technical people. Yeah. Like, I can't tell you how the lot of my, like, super techie friends- Yeah... 11:46 screwed up self-custody- Yes... because it's just hard. And now imagine your grandma doing it and something like this. [laughs] Exactly. 11:52 And everybody tries to solve this with, like, "We're gonna improve the UI," or, "We're going to- Yeah... try to do some kind of like Layer 2 thing." 11:58 But, like, even those seem to be, like, not really working that well, but I've heard some very compelling arguments for vaults to improve custody. Yes. Um, as like- Like, clawback mechanisms or- Yeah... 12:13 um, like failover for like different, like, keys to sign for transactions. Mm-hmm. Can you explain how it, one or any of those work? Yeah, for example, vaults, uh, that's... 12:25 There are many different types of vault implementations, but o- one that you could do, for example, with OP_CAT and no covenants is, uh, you pretty much lock it into a vault covenant and, uh, if you wanna withdraw from it, you got a certain time period. 12:40 You broadcast a transaction, but that Bitcoin will be on a, in a limbo state, right? 12:45 Uh, this covenant will be in a limbo state, and you'll get notification that, yeah, somebody tried to withdraw this, but you, you'll have a certain, uh, period of time to cancel this and return, uh, to the covenant to the initial state. 12:58 Or if it's you, probably no one will cancel it and once, uh, you know, using unlock time, for example, you can enforce that after like a day or two you can complete the withdrawal, for example. 13:09 Yeah, that's, that's like a good, uh, uh, vault implementation that's possible, made possible by OP_CAT. Yeah, I keep going back to this. I kind of almost wanna re, like, say this back to you because I... 13:20 This is a pretty... This would radically change the self-custody game. Mm. Like, if you have, um, what's like basically a hot wallet with a lot of Bitcoin in it- Mm... um, 13:32 you and someone is able to steal that 'cause it's just very active on the internet. Mm. And someone's able to send it, you could set it up so that they can send it, but for 30 days- Yeah... 13:43 you are able to, uh, like claw that back. Yeah. Yeah. It, which changes the game, and I think it changes the, the wallet design landscape pretty significantly. Yeah. It, it does, yeah. 13:55 And as, again, like it's, it's a whole computational machine. You can implement many different examples. 14:01 You can, you can create better multisig, uh, vaults, because for now if you have a, if you lock some funds in a multisig, you need to construct this transaction o- off-chain, and you need to, I need to sign it, hand it over to you, and, uh, then you sign it and hand it over to someone else. 14:18 You've got to run wallet descriptors- Yeah... and you've got to, like... Sorry. No worry. 14:23 You've got to pass around wallet descriptors, and you've got to hand, like, partially this, uh, partially signed transactions to each other. Yeah. Yeah, yeah, exactly. 14:30 But w- with the covenant, everything is, uh, on-chain. And for example, uh, we might have a group or a multisig, uh, group, and one guy goes rogue, and he starts, yeah, he starts signing. 14:43 But each of us will get a notification like on-chain like, "What is this guy doing?" And we can quickly coordinate like, "Yeah, he's trying to go rogue, you know. Like, don't, uh, don't trust anything he says. 14:53 We're not gonna sign." And it, it makes the whole process, uh, a whole easier to manage because you don't have this off-chain stuff going on. Everything is going on in public, could be going on. 15:05 But, but again, you could also use privacy features as well, which are enforced by covenants. Yes. 15:11 You know, when I started out in Bitcoin, I had this id- I had this idea and this view that it was this super powered programmable money. Yeah. This was a major narrative like 10 years ago. And right now, 15:27 frankly, it does not feel like magic programmable money. But what you're describing to me sounds a little bit like that original, that original narrative. What are your thoughts on this? Yeah, yeah, because 15:42 right now with the current state, without, uh, OP_CAT, it's, it's really, there's only so many things you can do. You can... There are a few use, different use cases, but it boils down to a couple of them. 15:54 It's not really like magic programmable. It's like, uh, money with five features. Yeah. [laughs] But, [laughs] but with OP_CAT it, it becomes. 16:02 Like, uh, it, you go from five features to basically infinite, with just one simple OP code. So let's imagine that we get OP_CAT on Bitcoin L1. Yeah. Um, do you think that opens up, uh... 16:16 Like, do you think that opens things up to have, uh, future soft forks for additional OP codes? Well, I mean, once you g- uh, have OP_CAT, you don't really necessarily need a lot more. 16:30 I mean, you could, you could re-enable, uh, uh, parts of, uh, like OP codes that were enabled in the past, such as OP_MUL, which multiplies two numbers on stack together, and that wouldn't really hurt. 16:42 But once you got OP_MUL and OP_CAT, it becomes really programmable. You don't need, uh, more, right? Because you go from... You make a huge leap basically with just one. 16:53 You, you don't really need, like, another, like OP VERIFY Zero-Knowledge Proof or whatever. Like, each new things comes around, uh, two years we got another soft fork for some features. 17:04 It's like no, you, you just make the script itself, uh, scripting language itself as powerful, uh, as it can be to avoid future soft forks. So like OP_CAT I would say is like anti soft fork, uh, technology. 17:17 [laughs] That is an interesting perspective. Yeah. [laughs] I've not... Keep going. I, okay, keep talking me through this. Yeah, I, yeah, that's, that's pretty much it. 17:23 Once you, once you, once you have this, uh, level of power, I mean, it's just like imagine you have a computer at home- Yeah... but it, it does only things that, uh, that its creators came up with. 17:34 Yeah, it can do a calculator. Okay, next year we're gonna do, uh, like a text processor. Yeah, next year, next year maybe we're gonna do like a web browser. Uh, no, you, you make a, a CPU. 17:45 It has a set of instructions that make it powerful enough that, uh, you could build on it anything you would like, and we don't have to think about it as CPU makers, right? 17:55 And I think that same idea should apply to Bitcoin itself. This is really interesting. Um, uh, tell me about what you are currently working on. I know you guys have Cat... You put out Cat 20- Yeah... but, like, 18:10 what are you- Yeah, just like what are you currently working on? Oh- What's in development right now? Yeah, we have lots of different projects. 18:16 So one, uh, one big one that I can name is, uh, we're also helping a, a company called, uh, StarkWare build a Bitcoin bridge for their layer- You guys got a, a grant from them, right? Uh, yeah. 18:28 Uh, uh, we signed a contract, yeah, to build out a proof of concept bridge, uh, using Covenants. 18:33 Yeah, it's the same stuff that we talk about, but they- they'll use it to, uh, make a bridge on, for Bitcoin that will, uh, that their layer two, uh, network StarkNet that, uh, that they call it, uh, will use, uh, and verify, uh, itself on, yeah. 18:48 On the topic of bridges, how does this particular bridge work? Are you allowed to talk much about it or- Uh, yeah, I think it's, it's, the code is public so- Maybe give a high, maybe give that some highlight. Yeah. 18:57 We're, we're currently in a proof of concept phase, and it basically, the way it works is, uh, m- users, uh, or yeah, users basically create, uh, uh, transactions that are either withdrawal request or deposit requests on chain. 19:13 These are all transactions on the chain. And then an operator aggregates those and, but, uh, all of the logic is enforced by Covenants. So he, he only proceeds the Covenants, uh, without, uh, necessarily... 19:25 He, he cannot cheat. It ensures that the operator cannot cheat. And they aggregate all into like, um, a Merkle tree, and then you add them to a main Covenant that keeps track of the overall state. 19:36 And you can do the vice versa. 19:38 For example, if you have, uh, um, 10 withdrawal requests, you can do, uh, you can then expand, uh, uh, the stock that was withdraw from the m- main contract into, uh, individual transactions that pay the user back for the withdrawals. 19:52 This is the unilateral withdrawal- Yeah... uh, the, the fabled unilateral withdrawal that I hear about a lot. Yeah, yeah. Pretty much, yes. 20:01 Um, what do you think of, just what are your candid thoughts of the current state of Bitcoin bridges without OP_CAT? 20:08 Yeah, they usually rely on some, you know, like, basically threshold signatures or something along those lines. You got a big set of... For example, Liquid is, uh, works like that. Like a federated model. 20:19 Federated, yeah. Federation. And this, I mean, that's pretty much it really for, for most networks. Uh, you got some interesting things such as, uh, merge mining and stuff like that, but yeah, 20:32 using Covenants you can do a lot more and than th- these things, and it's more secure as well. On the topic of, uh, this Bitcoin Script and engineers who are familiar and competent with Bitcoin Script, um, 20:51 on the topic of like just Bitcoin Script in general- Okay... um, 20:55 I guess I used to think that there were a lot of engineers out there, e- Bitcoin and just the broader Bitcoin forks of Bitcoin ecosystem, and that there are tons of people who are pretty proficient with this, but it doesn't, I... 21:08 But there's not. No. I feel like, I feel like you kind of, you probably know everybody already- Yeah... that's good at this. 21:14 I mean, he, he was, uh, just, uh, showing me some conversation that they had on Telegram, and I was like, "Yeah, I know this guy. Yeah, I know him too, yeah." 21:21 And we're like, you know, like a couple, a handful of people that really are proficient in this. 21:25 And yeah, that's surprised us as well, is like you got this thing that's so powerful, but none, the, the, the know- knowledge really isn't there. 21:34 So yeah, our aim, like with this, uh, the, the presentation that I had and stuff like this is bring awareness to it, maybe get, uh, like, uh, competent developers interested in this, uh, and start picking, picking it up because it has a lot of potential. 21:49 Yeah. And it's, it would be a shame that no one really explores this potential. What do you think the main barrier to, uh, future developer onboarding is? Why do you think there's not more developers 22:02 currently who are proficient? 'Cause there's a lot of smart people in the world, just why are they not working on Bitcoin? I mean, 22:09 I think part of it is the narrative of Bitcoin being this stupid digital gold that doesn't do anything else. And people just don't know about... They never heard Bitcoin can do smart contracts. What? 22:21 Like, I, [laughs] I thought Bitcoin ju- only do, like, simple transactions. And yeah, that's, the, the narrative is part of it. So the goal is to change the, this narrative itself. Yeah. 22:32 Um, I guess I'll try to wrap it up with a final question. What, um, what is most exciting to you right now? Uh, well, OP_CAT, yeah, Covenants. 22:44 [laughs] Well, the possibilities, that it opens up, uh, so many oppo- possibilities of Bitcoin and that we finally got something, uh, that, that can do all without being some, you know, new chain and new thing all, uh, all of itself. 23:01 And, and the beauty of it, and sort of not irony, the more the beauty of it is, is the original Bit- uh, B- blockchain. [laughs] It goes all, it goes back, uh, to Bitcoin. We spent, we spent- Yeah... 23:13 many years wandering the deserts. Yeah. Everybody goes off to other chains. Yeah, yeah. They go to Ethereum. Yes. They go to Solana. Those are fun. Yeah. You can make a lot of money, but Bitcoin's here and never left. 23:24 Yeah. It survived. Yeah. And it originally had OP_CAT. Yeah. It originally had- The funny thing is Ethereum probably wouldn't exist if, 23:33 uh, if, you know, if it weren't for the bug in the implementation that we got di- disabled in the first place. That is a spicy opinion. I like that. Yeah. [laughs] Um, do you have final thoughts? Oh, yeah. 23:45 Uh, follow us on Tw- Twitter and, uh, yeah, learn, uh... 23:50 Just, you know, try, try it out and see what you can build and yeah, because that's the only way to go because, you know, we, we're a team of seven guys right now, so we can't do it all. So, yeah. 24:03 There's way more than things for just seven people to build. Yeah, there's way more. There's like pretty much, it's infinite and it's, it really becomes infinite. It becomes the whole computational machine. Yes. 24:13 And yeah, the possibilities are really endless, so it would be a shame to go, such an opportunity to go to waste. Well, thank you so much for sitting down with me. 24:21 Again, this is kind of an off-the-cuff conversation that we had here in Amsterdam. We didn't plan this. I really appreciate you. I'm glad that you helped us, uh, get this, uh, lined up. 24:33 So yeah, I will see you on the internet. Yeah, thanks for having me. 24:37 [upbeat music]