HOW TO BUILD A CAT

Recorded: Jan. 23, 2024 Duration: 1:23:52

Player

Snippets

Jimmy ow, I love this song. I
Sometimes I sing this in the shower. I don't know if I should be telling you this
No, I wanted to know that well, you know, we're all about the truth not not just the easy truth, but
Sometimes the hard truth to
Pleasure to have everyone here
We've got
We've got the rainbow wizard Eric wall
I never know if we I never know if you ever will unmute themselves and say nothing you something
You never know with this guy. We've got the one and only Casey order more
A lot of accomplishments for Casey. I think he has a Bitcoin meetup or something really nice guy
from on chain monkey
Rindell another Bitcoiner Dan held other Bitcoiner. Everyone here is an unaccomplished Bitcoiner on this space
We're gonna talk about how we're gonna attack Bitcoin
You know, we heard about Bitcoin two minutes ago. All of us meant this is actually I'm looking at this stage right now
Everyone on stage right now is a Bitcoin boomer
Who's who's been dealing with Bitcoin way too many years way too many way more than would be healthy or recommended and
Yeah, we're here to attack Bitcoin. I think there's a bunch of like cool
I'm like here is for entertainment basically the other people on stage are smart
So I'm gonna try to like shut up soon
we're gonna talk about I
Think there are two cool things that I want to talk about one is like, you know evolving inscriptions and presizing transactions to to to make
Inscriptions change over time
Which is something we leverage with quantum cats, but also Danny
did with some of the OCM collections and and
And and and also maybe we can compare that to stuff like
The sad endpoint which is different and maybe we can talk about the difference there
But also I want to talk about op cat and how it's an attack on Bitcoin. Maybe
Maybe we'll start there Casey. I don't know if you remember I think we first met in
late last year and
And I don't know we were at the time we didn't tell you we were already scheming
About breaking Bitcoin with op cat and I think we asked you about op cat briefly and and and I don't remember what you said
I don't do you remember that occurrence? I
Do I do I remember I was you know standing across the room and I noticed, you know, very very handsome Bitcoin developer
So I wanted to talk to him and then you were standing next to him. So that's that's how we met
That sounds very accurate
Yeah, I'm I'm I'm definitely not here to be either the developer or the handsome person. So yeah
But yeah, no, I totally remember did we talk about op cat at the time
Very briefly I the reason I asked you was because I don't remember what I said and I don't remember what you said
So no, it's a blur. It's a blur to me too, but you guys have been scheming for a while
I'm always impressed. You guys managed to like keep the lid on things and then
really cool stuff
Thank you, sir. Thank you, sir. No, it means a lot
so, okay, we'll be back to attacking Bitcoin with op cat soon, but Randall, do you want to like maybe
Hit us off with a bit about like what?
Evolving descriptions are and what other ways there are to do this stuff and let's go from there
Yeah, sure, so
And you know, I know that Danny and I have talked about this on other spaces before
I don't think I've talked publicly about it with Casey, but I think we traded some DMS at some point. So
What what we decided to do for the quantum cats collection. We had this idea a couple months ago
it's funny the
That the original prototype for this was just like a giant pile of shell scripts
But but what we decided to do was we thought it'd be really cool if
you know so inscriptions have this recursion feature where if you have like an HTML or a
Like an SVG inscription
You can refer to the contents of another inscription by using the slash content endpoint on the
unlike the word server and
You know people have been using this for a little while to do things like you
Inscribe all the traits for some
Inscription at one time and then you inscribe a whole bunch of inscriptions that like stitch them together
So you might have you know a hat a head and a body in different inscriptions and then you you stitch them together
using recursion and the idea that we had was you know
What if you had like a PFP that referred to inscriptions that weren't actually on chain yet?
And when you go to view them, it would you know 404, but you could quietly handle that in the background and then
You know at some point you reveal those pre signs but unbroadcasted
inscriptions and then you know the request
can complete successfully and the trait just sort of appears and like the the user experience of this is like and
Like the the very first prototype of this that I showed to Udi
I had a very crappily drawn like stick figure and then I mine a block and all of a sudden
He has a wizard hat and then I mine another block and now he's holding like a potion and then I mine another block
And he's wearing like a wizard robe and we thought that it would be a cool way to have
Inscriptions sort of evolve over time
And as we started kind of gaming out
Like all of the concepts behind quantum cats
The other things that we really liked about that were that you know in in a covenant system
whether it's cat or CTV
generally how that's gonna work is
You have to ahead of time like pre-compute the future states of your Bitcoin smart contract
And commit to those transaction hashes in your script
And then as time goes on and you're like playing forward this this like smart contract
Whether it's a vault or a coin pool or something else
You're sort of like revealing these transactions on chain that you pre-computed and we really liked that
You know the method that we would have for revealing more traits of these cats over time
Had like this very
Similar mechanism to how you would actually use something like op cat to build more interesting smart contracts on top of Bitcoin
so we had this like nice sort of artistic symmetry between the technical implementation and
Like the the the concept for the collection
And you know like there's there's other ways that you could build sort of evolving inscriptions
like we paid a lot of attention to the Saturn point decided for
Sort of technical and artistic reasons that that we wanted to do with pre-signed transactions
Which you know led to a whole bunch of?
Implementation challenges that we had to deal with that like super happy to talk about on this space
But yeah, that's that's what we ended up doing
Can you talk about the trade-offs of using pre-signed transactions versus the SAT endpoint I'm super curious about that
Yeah, absolutely. So
You know with pre-signed transactions and to
I know Danny and I have talked about the details here. I don't know if other people looked into it
so the way that that the quantum cats work is
Each cat is a really teeny tiny inscription. It's 109 bytes
And so each cat is basically just a script tag that recursively pulls in a single piece of JavaScript
Internally, we call it the dispatcher. That's like what it's called in the code and
the dispatcher is this this blob of JavaScript that
Fills in like a whole HTML page with some style sheets and a whole bunch of JavaScript that then
tries to recursively fetch a bunch of other
Inscriptions each each one of those we call a layer connector and that's a
Little blob of JSON that maps a unique cat ID to a
Piece of art that's been inscribed
So if you look at the cats right now, you'll see that like each one of them has a background image
So there's like a layer connector that says okay cat number 17 should pull in this particular background image
Those images are also encrypted
And so the layer connector bit of JSON also has a decryption key in it. So, you know the kind of
Trace of the recursion here is a cat is basically just a script tag with an ID
That pulls in this thing called the dispatcher the dispatcher pulls in
this thing called a layer connector, which is just like a look up table and a decryption key and then the dispatcher
Pulls in the actual artwork decrypts it using just like browser crypto APIs and renders it to a canvas
So that's that's kind of the flow
So if you if you think of that of like we have these four
Resource types where you have like the cats the dispatcher the layer connectors and the artwork
Everything except for the actual cats had to be pre signed
So, you know all of the artwork we sort of pre signed all of the layer connectors are pre signed
Dispatcher is pre signed and then the cats were able to just sort of like inscribe normally and
Like one of the the bits of sort of operational complexity there is
We had to be really really careful around coin control because you know, if we
like let's say that we have a blue background and a black background if we
pre sign the
The the inscription transactions to you know
Either create or reveal both of those backgrounds using the same UT XO
then only one of them is possible to reveal on chain like ever and
you know the cats have a
Inscription ID baked into them for the dispatcher the dispatcher has
Inscription IDs baked into it for all the layer connectors and the layer connectors have inscription IDs baked into them for all of the artwork
so if we ever screw up and
Like use this like assign the same UT XO to multiple
pre signed inscriptions then
You know, we can't ever fix that again
Or if we screw up and like sweep a wallet and spend all those UT XOs then those pre signed transactions are never actually
Revealable and we can't fix that ever again. So that's like the
The the big like downside and challenge operationally with the pre signed transactions
if you have the recursive satin point you have sort of
Like that part is a lot easier because you know you say all right for the background
I'm gonna have all the cats point their background at this sat and then when we decide to reveal a trait
we're just going to use like
Inscription to re-inscribe that set and then the rendering code will look at whatever the last
Inscription on that set is and that's what it'll render
right, so so you you can kind of have like a late binding choice of what the artwork is going to be or
You know, it gives you more flexibility in the future. You're not like locked into it from the start. Does that make sense? I
Think I don't understand the flexibility part because can't you
assign like an arbitrary inscription to a sat so you can in the future you can change the
You can change the
You can like change you can decide differently what you want to sign to the sat whereas with the pre signed transaction
You're sort of like locked into the content. Yeah. No that that's exactly right. So with with the pre signed transaction
We are locked in from the start
sat and point I
Think I know is cutting offers. It's just me. Hey, can you guys hear me? No, I yeah. Yeah you wrote
Yeah, but just like okay. Yeah, so you're exactly right. So with the pre signed transaction
everything has to be completely done before we inscribed any of the cats if we were using the sat-in point then we could sort of
be baking off the artwork as we go and we have more flexibility about sort of what the arts going to be in the future like if
Six months from now, you know
Some new meme is really hot and we say we want to put this meme on quantum cats
We'd be able to do that with the sat-in point. We would not be able to do that with freesign transactions
So you have a lot more future flexibility
We we decided that you know the way some of these cats are going to evolve
we think that they're like we think the evolutions are cool and gonna be surprising and fun and whimsical and
we kind of liked the aesthetics of
when these
Evolutions happen people having to be sure that this was all planned from the start
Like we like that that was something that that we we wanted to really aim for
There might be ways that you could do that with like a commit and reveal scheme with the sat-in point, but we thought it would be
Just sort of like fun and obvious if people can go on mempool that space and see
You know particular out points that were committed two months ago all of a sudden be spent and reveal some trait
That's like really surprising or fun or you know, whatever
Yeah, I think it's I think it's a really nice aesthetic choice. Oh wait, I was gonna ask something. Oh, yeah
How do you deal with?
fees do you have like anchor outputs or like anyone can pay outputs to
Boost the fees of your pre signed transactions because you can't predict the fee environment in the future. Yes
You know, I thought about adding an anchor output
Late in the process
But that was after I'd gone and built a whole bunch of tooling to do batch parallel CPFP because like
We still like when we reveal a particular trait connector in the future
We're gonna own that inscription. Like we're not like we're not, you know, air dropping it to somebody or something, right?
like we we own it and so
we built some tooling that
You know, we you like the the primitive here is we've got a little function that you
Give it an out point that you want to bump to a particular fee level and it goes and does all the CPFP math and says
All right. Here's how many SATs I need and it constructs a transaction to
you know, make sure that the inscription ends up in the first output and that
you know, the the second input sort of goes all to fees and
Built some automation that can build a whole tree of those transactions. So you you get like a single
Deposit address and an amount to pay and it'll split that deposit into a bunch of smaller UTXOs that are all
Right sized to CPFP a bunch of reveal transactions
to whatever fee level you want and so we actually
Got to use this the day that we revealed all the cats
So, you know, like when we first inscribed these what everybody saw was an image that just said Tapper Wizards presents
And then a few days later that you know
Transformed into the blue and red cat and it said Tapper Wizards presents quantum cats
When we actually revealed the current generation of the cats
You know classic Murphy's law like right before I hit the button to broadcast those transactions
Like this huge
atomicals mint popped off and
Spiked the fees and all of our reveal transactions were pre-signed at a particular fee rate and ended up just
Tumbling around and kind of the back of the mempool
And so we got to exercise this CPFP code and fee bump all these reveal transactions up to I think it was like 150
sats per v-byte
I'm really interested in anchor outputs for transactions. Like generally it's something that I'd love to work on
For this collection. We don't need them anymore because we have sort of general-purpose CPFP tooling
But I think anchor outputs would be great for inscriptions. I
See some other hands on stage Danny you've had your hand up for a while then maybe I don't know devil off
I'm sure I'm sure yours were burning when I was talking about anchor outputs. I
Think this how a quantum cast how you guys used
Unsigned or pre-signed transaction is like it's performance art and it's you know
You had the choice of using this out on point or unsigned and you know it you use something
That's a lot harder to do right to show that you know
this is kind of the artistic way we want to do it and it fits in with quantum cats art very well because
Your art is about the op cat right op cat is about having you know predetermined
You know outcomes that you have to already, you know sign ahead of time, right?
So it actually fits I think for a Bitcoin people who already dig into this this type of Bitcoin art
It makes a lot of sense to to talk about you know
It's like quantum cats is not just this, you know cat image that people are excited by it
But it's actually the fact that you use, you know
Basically, it's about op cat and it's about you know, pre-signed transactions and and pointing out that you know
You can do it this way like and I think it goes back to also, you know
I think of or knows itself dorms program, right? That's part on Bitcoin. Also, there's a big performance art
It's whole last year, right? It's been that way
Like this idea of recursive inscriptions, right, you know Casey talked about that in 2022, right in 2022
When it came out, you know for us when we used the pre-signed transactions
We actually inscribed art collection. This is the dimensions those same dimensions that we did in February
So it's only almost a year now and that was basically
Before recursion was a thing, right? It was an idea, but it wasn't a thing yet
and so we inscribed it that basically that the 3js code that
Needed and also we can strike F late a decompression code that needed to actually
uncompressed to compress libraries because we've had to keep it small and so when recursion was available
I that was when we could then send the pre-signed transactions and that's so back in this was June
I think last year when we did the pre-signed front end as right as you were saying, right?
It's very stressful to hand these pre-signed transactions and and know if it'll work or not, right?
So for our case here, we didn't have a choice of the satin point because there wasn't available yet
So it was the only thing we could actually do
In terms of you know, we didn't have the trail but one of the benefits of pre-signed transaction
This it's a Bitcoin thing, right? So you have one less degree of
Uncertainty and in the or no protocol, right? You don't have to go into an or no
No to figure out that this is a satin point, right?
Like the Bitcoin though it knows about the transaction already. So so that's also a kind of a way of
People might choose to use pre-signed transactions because it is one less I guess degree above above Bitcoin as or no
It's kind of like closer to the metal right like I think maybe life of FIFO or maybe you said something like that
like it's it feels a little bit closer to the metal than
Then the satin point
Yeah, and also use a little more data
So I guess the satin point is just a few bytes smaller
So if you really want to optimize, you know for your inscription size, the satin point is actually better there
So so yeah, there are different trade-offs
Yeah, and I mean to what you're saying about performance art that I'm gonna keep like Eric Wall said this thing
internally when we were
working on some kind of other
Fun little stuff inside quantum cats
he said like this is skateboard tricks on Bitcoin and I think that really kind of
encapsulates like one of the things that I love so much about ordinals and inscriptions like I feel like
people figuring out
Cool ways of you know using Bitcoin and ordinals features together to do stuff
That's like brand new it feels like you're doing skateboard tricks on Bitcoin and like that's just a lot of fun
The other trick that you guys did I was really cool was adding the encryption to the pre-sign
So you actually combined so I don't you'll realize that so they did pre-sign and added
Encryption or their your decryption when it was revealed. So that's actually a really cool dynamic
You know what we did was we did the pre-sign adding decompression. So we had things compressed and then the when it's you know
revealed it's also
It decompresses the compressed data, but you know people can actually see the compressed data
But now we don't encrypt it. You can't even see it. So it's actually it's a cooler reveal
Yeah, that was actually really interesting. So that that was actually a
Decision and feature like in the project. So what happened there the original plan was
You know, we've got this like kind of
So so originally how it worked
So the way that I described this right is each cat points at this dispatcher layer and then a dispatcher points at this like trait
Connector layer and then the trait connector points at the artwork
Originally that that layer of indirection with the connector actually wasn't there
So originally how it worked was each cat actually referred directly to the artwork that was going to be inscribed
That was pre-signed and so we were going to inscribe all the cats and each cat would recursively pull in, you know
It's background its body its eyes like whatever whatever it has and we would you know?
Reveal the artwork as the cats would evolve and somebody on the team pointed out like even if you don't know
What the actual artwork is you can look at?
What are the inscription IDs that the cats are pulling in and start clustering them and saying alright for layer X like this?
inscription is pulled in by
More of the collection than that one
so this one's gonna be more rare and
you know people are gonna start like trading and speculating on these things before we've revealed the artwork and what we
Actually wanted to do is we we wanted people to be surprised as the cats evolved and we we didn't want people
Like like we didn't want to have information leaking about you know
What what cats were gonna be before they evolved into that so we added this layer of indirection where?
you know if you look at the cat all of the
Like every cat pulls in the same inscriptions directly
But then they also have a unique ID and so when they pull in this like layer connector
They use their unique ID to D reference like what's the actual piece of art?
So until we reveal this this sort of lookup map in the middle
You don't know if your cat is more or less rare than another cat for like a particular layer
So we went and built that out tested that a couple hundred times did a couple mainnet tests of that
We're really happy with it
and then we got into this like crazy period where fees were you know between like 200 and 500 stats per v-byte for a
couple weeks and
It was like okay. Well if fees
are gonna be high like this over the course of
the time period when we want to do evolutions like these are gonna be really expensive and
You know the way that the pre-signed inscriptions work is we have to commit to the fee rate at the time that we sort of bake the
Whole collection, and then we can CPFP them later on
But what we'd really love to be able to do is if there's a dip in fee rates
We'd love to be able to just put all the art on chain if we can
because you know if you look at the footprint of the artwork versus these lookup layers versus the JavaScript versus the HTML like the
The actual artwork was like 90% of the of the size right of the total size and so
You know we decided to add this
Encryption mechanism so that you know when fees got low we could
opportunistically
Publish all of the artwork nobody would be able to see it and then you know when we need to actually
Reveal an evolution the only thing that we're broadcasting is this sort of lookup table
Which is just a blob of JSON and a decryption key and so our sort of like per
Evolution on chain footprint like at the time that we have to evolve them is is minimized that way
So it's funny like a lot of people are really
Happy about the the encryption method like I've heard from other projects. They're like that's cool. We want to do that
But it's it's funny. It was actually like a fee management technique that we that we thought of
Yeah, that's what we do with karma to that we're gonna release soon we encrypt to some of the images so that
And fees are low now, so everyone else who was you know, thinking of it ascribing now is a good time to ascribe your stuff and encrypt it
Yeah, um it dev alofta came up on stage, and you've had your hand up for a little while. What's up?
Hey, how's it going? So great to hear from you. I I had a technical question
Yeah, so specifically regarding the CPFP mechanism
You described a mechanism that is very similar to what I do, which is if you have a bunch of revelation transactions
And you want to boost them, you know, whether or not you use anchor outputs. I do a very similar thing where I calculate
Total fees you will need in order to spend from all of those revelation transactions such that the resulting fee of the package will exactly
boost everything to your
Boost everything to your to your desired fee rate
but one question that I had and something that i've been thinking about for a while is
Because you first calculate that and that seems very similar to my technique and you then fund that boost
If you wanted to then rbf that CPFP transaction later
There are a bunch of eviction rules that are a little tricky. So obviously the easy and obvious ones are
The total fee rate and the total fee has to be higher
And then you also have to have an incremental fee. That is the replacing or the evicting transaction
However, there's also this additional requirement saying that you cannot add new unspent utxos
So you have to use transaction outputs that have previously been spent but are not currently confirmed
If you are spending an output that already exists it likely will not
Facultate the necessary fee rate that you want to bump your CPFP package fee rate, too
so I was thinking about
Creating calculating the new input size that I need having users send money there
spend from there with a fairly low fee rate
and just send everything or most of the money to a
temporary output just to make sure that that utxo is no longer utxo but is spent and
And so doing enable it to then be immediately included in the actual CPFP
transaction replacement, but it seems like a bit of an awkward technique and might also
possibly not work with
Relay properly if you replace it too quickly and maybe some of the other bitcoin nodes in the network only see the replacing transaction
They might possibly reject it. So i've been thinking about either delaying or possibly
Waiting until we have proper package relay in place
And I also have been thinking about whether you want to just keep replacing and then refunding the user the original and now
unused utxo if you just want to keep adding more utxos on and on to the CPFP transaction, so
Just curious if you are doing anything like that and what your thoughts have been for rbfing CPFP boosts
Yeah, no, it's it's something. Um, I I don't have a super satisfying answer for uh, I was going down the path of
more or less not not not doing the sort of like, uh
I don't know poor man's ephemeral anchor is is maybe like the the the back of the napkin way that I would describe the technique
that you described but like, you know something like that where where we
um, sort of do like an inverse pin of of the of the
Point that we want to use to to do the rbf
um, I I was describing
a technique kind of like that to greg sanders who's you know doing a lot of work on like package relay and
like he's he's my sherpa for for kind of like ephemeral anchor stuff and um,
It got really complicated really really fast
um, so the
Current solution that we have which you know ended up kind of being a
Uh, so so this this whole uh encrypted traits thing ended up being a blessing in more ways than one
so one of them is
You know another relay policy that folks might not be aware of if you haven't uh had to fight with this
Is the total size of an unconfirmed package can't be more than 101 kilobytes
And so if you're trying to like repeatedly cpfp
artwork like large assets
Then um something that we ran into in testing was like yeah, I can do that, you know once or twice
But then I start running into like package relay limits
The fact that now all of our artwork is already on chain and the thing that we need to bump
Are json files that are sized on the order of like, you know, a couple tens of kilobytes
Um means that we we have a little bit more runway to just do
um, uh, like
two or three successive cpfp's
Um our strategy for the one time that we've had to do this in prod so far was you know, um
I'm gonna make up the numbers a little bit but like at the time
the going fee rate for the next block was like
110 sets per v-byte and we just went ahead and boosted up to 150
Right and we were like, you know, if we if we have to cpfp this again, like we we can but
Like realistically, it'll be okay. Like it'll it'll probably be fine. Um, you know, one of the things that
Like i'm really interested in working out
Is reliable rbf for that cpfp
Both for future projects and also like I would love to take some of this tooling that we've built and try to spin it out into
You know other tools or services or whatever for like the community use because I think um, just generally
Uh, like fee bumping of inscriptions has tended to be a foot gun
Like i've seen several inscriptions go to valhalla because people I think we lost them again
Going to sparrow and oh, can you guys hear me?
Am I here I I can't hear irondell, okay deviloft. Can you not hear him?
Can you hear me I can hear you deviloft and I can also hear irondell
Can you hear irondell? I I can hear myself. I can't hear deviloft
Um, I don't know casey or danny. Can you guys give me like a thumbs up if you can hear me?
Yeah, danny dan can deviloft can casey cool. I think deviloft maybe if you
Uh drop down and then request to speak again. It'll let you let you back in that should fix it
Yeah, well, we'll definitely bring you back up. I think like two of the things one of the things that was definitely working in our favor
here is that um
We own for the things that we need to fee bump we own the eventual inscriptions
So like if we were trying to inscribe something to
somebody's wallet
right, then
Then we have different options for fee bumping. But because we're both the sender and receiver for these things
We're able to use cpfp really effectively
Um casey another thing that I thought you might be interested in I need to finish getting a pr together for ord
um a feature that I I hacked in and it was sort of like
Uh violently untested for a little while but now has been very well tested
when you uh
Presign or sign an inscription
I had the ord and scribe commands spit out
The um sat point that was used to do the inscription
And so then what we ended up doing was keeping track of
you know, so
When we were pre-signing everything we would use like the sat point flag to say this is the
Uh the the utxo basically that I want you to use for this inscription
And then we would verify
That the command was like using the same one like from the command output and then we would actually
deserialize the um commit transaction and make sure that it only was spending its assigned utxo
All that goes into a database and then sort of at every step in the process before
Any keys get touched before anything gets inscribed
There's a whole series of sanity checks that runs that goes through like every pre-signed commit transaction
Make sure that it's only spending it's assigned utxo
Make sure that no transactions spend the same utxo
deserializes all the revealed transactions and make sure that what they're spending is actually the
Uh commit transaction output like just going through and doing all that sanity checking like every step along the way
Was actually um a decent amount of all the code that we wrote just to make sure that you know
When we go to do some future evolution, we don't all of a sudden just you know discover that we can't
Oh, and we lost casey
He was things happened he was like this is so boring i'm gonna get off the stage i'm just kidding
Yeah, maybe maybe uh eric was eric was so oh, I think he's back i'm back
I don't know. I i'm not sure I under I totally make sense to save the sad point or the yeah
The sad point output is the is the is the pr just to add the sad point output to the inscribed command
So, um, there's there's a few things and I need
To break them up into like multiple prs so that you know, uh
Raph and and anybody else who wants to review them can decide if you know
All of them want to go in or if none of them want to go in or if they want to go in piecemeal
But the stuff that I that I needed to add so one of them was exactly that like adding
the sad point output to
The the you know output struct that comes out of the inscribed command another one was um
I added a pre-signed flag to inscribe so that it would you know generate and sign the
commit and reveal transactions but not actually broadcast them and
Spit those out within, you know new fields and the output and then the third one. Um,
in order to like the the workflow for this
So we've got all this art that like needs to go on chain and all it has to be pre-signed
So I added a little uh estimate flag
And what the estimate flag is is you say, you know wallet inscribe dash dash estimate
You give a fee rate and you point it at a file
and it'll um go through and tell you
What the total fees will be to inscribe that it's it's like the same
Code path that that spits out the fees when you do a normal inscribe. It just doesn't actually inscribe anything
and um in order to make that work because like the way org normally works
Is you know, it it goes and like finds a utxo in your wallet and inscribes it
So I punch like a fake utxo into the wallet that has 21 million bitcoin in it
And then it basically does like a dry run of of uh inscribe and so
You know, we've got all this artwork
So we go through and say estimate on all of the artwork and get the total cost
for uh inscribing everything at a particular fee rate and then we build up a tree of
utxo splitting transactions
So what we end up with is like
Put this many bitcoin into this address and then the automation will split it
Into one utxo that's perfectly sized for each piece of artwork
So our wallet has, you know as many utxos at the correct value sizes for all the artwork that we need to presign
And then we just go through and we just line up like this utxo goes to this piece of artwork
We're going to presign it and we're going to mark that as used in our database and kind of like move on
So, you know estimating, uh cost, um spitting out the sap point and then um
Uh, uh pre-signing were the big things that
That we needed to add that'll end up getting upstream. Yeah, those all
Those those all sound like awesome additions. Those all sound great
Eric was telling me before
And i'm feeling the same way is it for at least for me as a cold victorian maxi cold survivor
I feel like i'm learning more about bitcoin
Into space than probably in the last 10 years
Eric is this uh, are you experiencing the same?
Yeah, I was uh, I was just casually listening in and I don't think that i've ever
Uh been in any bitcoin spaces that are as deeply technical as the ordinal
Uh bitcoin space is where you talk about
Transactions in in this delicate way and like really understand like a deep technical understanding for how bitcoin works is required
There's so much at stake at stake as it can be for people that are issuing ordinals
so I think that uh
Like it's it's really adding to the body of knowledge of bitcoin
And I don't think that bitcoin has been like stress tested not only in like the fee mechanism
like the the fee stress testing, but
The tools that are available. I see randal occurring like running into
Speed bumps with bitcoin core all the time because he's using it in a way that the
Nobody's probably has ever used it in before
uh, so I think that you know for all the
bitcoin maxim lists that are like think that they are
Uh, like so expert on bitcoin
I'd be surprised if if they knew like
Two percent of what someone like danny has learned about bitcoin in the last year
Yeah, it turns out when you learn use bitcoin in super crazy ways you have to know a lot of super crazy things
Casey one of the things I ran into i'm sure danny's run into this too. I wouldn't be surprised if if you
had not run into this also is um
You know bitcoin core
when you add
A couple thousand utxos to the wallet it takes a while to rescan and so if you have automation around core
That's either doing lots of uh, like just lots of sends and receives or is for example doing batch inscribing
It causes the bitcoin core rpc interface to just hang so like there's there's like code
In our software to say like, all right. I just broadcast this uh, this transaction
Um, if I get any of these errors back from the rpc interface
Then like it's fine because it's just bitcoin core crapping out and we're gonna
You know back off and retry after a little bit if we get these other error codes
Then it actually means that we screwed something up. Um, and and it's it's been really funny because it's like
Um, you know i've i've done a decent amount of bitcoin development
With sort of more traditional use cases and it's always sort of like yeah, you know, you've got some automation to
Send and receive, you know a number of transactions that you can count on one hand and um
doing something where you all of a sudden have like
Thousands of new utxos and your wallet wants to go back and like rescan the last you know 120 blocks or something
In order to like look for new stuff is is not
The normal case for uh for core, which is really funny
Yeah, i've i've never run into that because i don't make any descriptions
In 2013 because I started a bitcoin exchange back then so we had
My core wallet issues. So we basically, you know distributed that back then
That's really funny, um
Yeah, maybe you nerds like found out cool things about bitcoin and stuff, but
Myself as a former member of the bitcoin laser eye
maximalist cult
Uh have very thorough knowledge about picking studio mics and recording equipment
And I know how to sign up for a youtube account for a new podcast and those are things that you guys cannot do
So well case you can i don't know if you've seen uh the whole money podcast
It's my favorite bitcoin podcast and uh, they've got great av equipment also
Bro, thanks for the thanks for the plug. Aaron was actually in my dns being like you must chill the podcast. But uh, yeah
Thanks for oh
I'll chill okay. We're gonna do a quick hell money spot here
So, uh hell money podcast is the best bitcoin podcast because it's not actually a bitcoin podcast
It's actually an astrology podcast
But erin fucked up and invited casey every time and somehow he ends up talking about ordinals the entire time
and uh, erin, you know just wants to talk about astrology, but the result of that is that it's like
a fun accessible
Podcast that you know happens to talk about bitcoin a whole lot but is also like
Um, you know with with people that are like fun and entertaining and have like interesting perspectives
And every once in a while casey will go on a rant about like how bitcoin, you know will help to
Dematerialize the state if only we get people to use it and dgens love uh jpeg
So here we are with inscriptions
And so it's it's simultaneously like the most accessible podcasts and also the most based one in bitcoin
So go subscribe to hell money podcast give them five stars on itunes
Yeah, it really it really lurches and veers between uh between two extremes and sometimes we wear costumes
I think we've done like three costume episodes
Highlight was probably me dressing up as trump and erin dressing up as as aoc
Yeah, that one was pretty good. I also liked the one where
You were the liver king and she was that weird dude who's trying to live forever. Whatever that guy's name is
Uh, that one was pretty good, too
But yeah, everybody's going brian johnson and brian johnson. They're brian johnson. They're brian johnson. Yeah serious
What is it like aries whatever energy? I don't actually know anything about astrology. I just larp so that erin doesn't unfollow me
That's a good strategy eric go ahead
No, oh, I think we lost eric. Um, so we've been talking about like here. Oh, you're here
Yeah, I think I accidentally just muted myself
I was going to say that the recent episode with germany ruben
I see germany popping into these various spaces and people are trying to squeeze him on like tell us about your
Experience of trying to activate ctv
So but he's been a little bit elusive on twitter space
People keep like asking him for this story, but he does go through the entirety of well
Maybe not the entirety
But he goes through a thorough account of what it was like from his perspective trying to get ctv activated
And the different curve balls that was thrown at them through that process
So if anyone is like interested in that particular story, I think that maybe the hell money podcast episode with germany
Is maybe the best uh account of that story and one of the one of the most interesting stories in in in bitcoin
Well that that that's like a perfect segue. I was going to see if we want to talk about cat and covenants since we've been talking about
Quantum cat inscription stuff for a little bit. Um, I don't know if you guys want to talk about
The thing that quantum cats is actually about right which is
uh, you know bitcoin development process and covenants and how do we get like more
Expressive script construction so that we can scale bitcoin for more use cases in like non-custodial ways
So, um, you know for folks who uh might not know if your timeline isn't blowing up with op cat stuff
You're following the wrong people. Um, you know, the idea here is uh,
A lot of folks in bitcoin including, uh the taproot wizards team
We we really think that there's some new capabilities for bitcoin. That would be really helpful for people for
You know scaling functionality privacy and um, there's a bunch of options that people have proposed
They're all variants of uh, a general class of capabilities called a covenant
Which is sort of like how do you put restrictions on?
The ways that coins can be spent and that doesn't sound super useful
But what it lets you do is it lets you build?
You know protocols or um other bitcoin smart contracts that let more people
Interact with with bitcoin
Uh in a way where they can control sort of their part of a utxo
But they can't steal other people's money and that's really useful for like multi-party protocols
It's useful for some like interesting privacy designs scaling lightning, etc
Um, jeremy, uh, jeremy ruben came up with a really great idea several years ago called check template verify or ctv
and it's um, it's this like very clean very elegant way of uh constraining the ways that
Some coins can be spent but there's been some other
Proposals that have come up through the years and one of them is there's an old bitcoin opcode called op cat
That got deactivated by satoshi before he or she left and um, you know something that
People have said over the years. Um, sometimes in response to ctv
Sometimes on their own is like we don't need these other designs. You can do everything that you want to with cat
And um, you know, there's lots of people talking about ctv and very interested in ctv. I think we're all fans of ctv
But this conversation just hasn't really been able to to move forward for a bunch of reasons and um
You know, even though it's not moving forward people
These alternative covenant designs as reasons to not move the conversation forward like if if we don't know
Enough about all these different designs then we shouldn't talk about anything is is kind of like the way that this ends up going
So one of the things that we really wanted to do
With quantum cats was we wanted to see if we could
Use the the kind of like energy mobilization that nft
Collections are really really good at producing and see if we could get um, you know
More and different bitcoiners to engage in the conversation about covenants generally
Maybe through the lens of looking at op cat, but we we really want to to help people explore the whole design space and so
You know, we we've had our community through a quest
Be doing a whole lot of research on op cat what it's good for what it's bad for
Um reasons to activate it reasons not to activate it. I've been doing some dev work on
Actually using cat with snore signatures to do covenants in bitcoin
And uh, you know, we're trying to see if we can just move
The whole conversation forward a little bit like, you know, maybe maybe not all the way
But maybe we can we can help get it a little bit on stock
Um, and who made that uh, do you want to talk about a little bit more general background like, you know,
Danny I suspect you can hear kasey
I think because kasey was speaking too and I think you didn't notice
So is that okay so so danny if you can um drop down from the stage for a minute and you will bring you
Back up that should fix it
I was gonna say who made that website that like a bitcoin bip journey website
That's one of the best like bitcoin educational
Like documents that i've i've ever seen
So, uh, we just brought tyler up on stage tyler is on the tapper wizards team and he
Was responsible for bipland. Um, you know tyler
Did so much research to produce bipland. It's insane
I think my my first or second week at the company
I was on the phone with tyler for like six hours just like giving him
My brain dump on like, uh some of this stuff
Uh, like, you know, my I I think like my my only two contributions to the whole thing were uh,
The covenants bike shed and the moving goal posts
Um, I don't know if anybody else came up with those but i'm gonna claim them because I love them but tyler talked to
Just like a huge array of people across the whole bitcoin dev ecosystem and got
So much feedback and synthesized all of it and like I don't know casey. I don't know if you've seen this but on the bipland
Like map each of the stops are actually links to like mailing lists posts or articles or other things
So it's it really is like this this, you know map to to guide you to the primary sources for some of these stops
But it's been amazing because we we put that out and it's you know
It's a very like tongue-in-cheek, but sort of also like tough love
Look at you know, what is objectively a convoluted process?
and the it's really funny because um, like the unanimous feedback that we've got is
Like even people that we thought would hate it like all love it like the day we put that out
I just got all these dms from, you know, dev friends of mine being like
This is incredible. Like all the in-jokes are hilarious. I'm sending this to everybody that I know it's uh, it's it's been really great to see
Randall there's just one one thing that i'd like to adjust with what you just said. Um
We didn't
To my uh memory we didn't
We didn't uh assign the responsibility of bipland to tyler tyler just produced it
I think in the yeah, it was his idea
Yeah, it was absolutely his idea. Here's bit. Here's bipland
Uh just came out of I don't know tyler, but did it like come out of your own?
Quest of trying to understand the process of like how
Because from to my memory just came out of like one day there was bit planned
In the middle of all this and we're like all of us were like, holy shit
This should this is going to be like the best part of this of the whole
Collection. Yeah, I think it really came from
a couple things
As I started talking to everyone
It literally was inspired from candy land because no matter who I talked to
They're all like you hit this point and then your bip gets killed and you're basically sent back to start and you you
you're done, you know, whether it was
Jeremy or whoever it was like there are every every step along this process. There are so many traps and pitfalls
That you can fall into and and you just get
shuttered and and sent back to the start and so
That just made me think of candy land as a kid
And I think candy land also is like it's a magical fun fairy tale place and I think it really
Resonated with the taproot wizards brand where I was just like yeah candy land is very magical. It's very whimsical
It's it's very on brand
for the wizards and then yeah, the second thing is
At one point I started doing a write-up on this and it it got so long where I was like this is going to be another
dissertation for me to explain the issues that the organization around bitcoin has and so
This is not the most effective medium to communicate this to people and I think we need to do it in
You know a light-hearted fun way that you don't have to read about, you know
the institutions that have been built up and
The history of bitcoin and the scars that are in the organization to understand what's going on
You know, we can just give you a fun little map to follow
And hopefully each one of those steps prompts a little rabbit hole that you fall down into
And you know through those bits and pieces you can eventually
Learn a bit about how bitcoin as an organization has functioned in the past
Um, so that yeah, that was really where it came from is just uh, that plus udi had bought me an ipad and we were starting
Uh starting to do technically bitcoin with yon and I was like, well
I might as well get some use out of this thing and and do some drawings
So a little bit of serendipity, but that's kind of the backstory as to where it came from
Yeah, all that work, I mean paid off like so big I was so impressed by it and it also is
Like not only is it a good educational resource, but it's a good educational resource for something. That's
So mysterious, you know, like when you're
Thinking about like, okay
Like how do changes in bitcoin happen like generally the conversation happens in so many different places in so many different ways and
The the venues and what you're there for is so confusing you're like I want to change bitcoin like what do I do?
Do I open an issue on?
Like bitcoin cores github do I like open a pr just making the change?
Do I you know go to?
Like the dev mailing list like people don't even know that the dev mailing list exists
Like how do I even post the dev mailing list? So it's all this like super confusing
like tacit information
Uh, so it's it's amazing that it that it works so well and like yeah, it's just I mean like i'm just gushing now
It's a it's a great resource. I really appreciate it
It's kind of funny, right because like, you know the the aesthetics of it
It's this thing where it's like, you know, uh, these these squiggly hand-drawn things
That you know, like it looks messy and raw and like, you know, tyler scribbled it out on his ipad the first week
He ever owned an ipad, right and um, you know people
people who aren't familiar with
bitcoin history
I've heard this feedback a couple times. They're like, yeah, I looked at this and I thought this is a big joke
Like there's no way that the process is anything like this
And then they go and talk to like other devs or other people who've been around bitcoin
They're like, no, this is actually really funny because this is the most accurate representation. We've ever seen like it's it's
hilarious
Ooh, do you do you remember that moment when we were in Palo Alto during the uh,
the stanford, uh
conference and we had like uh
A meeting with a lot of zk developers. We've had like a
A bunch of different academics and companies wanted to get together and discuss like how do we get zero knowledge proofs into bitcoin?
And I remember ellie ben
Sasson from stark where was there and ellie has been around he's the ceo of stark when he's been around
Uh bitcoin since ages since like he has been having presentations about it
since 2013 so it's not like a rookie in the bitcoin world by any means and
uh, like the starkware team has
is of the opinion that obviously the
The ser knowledge proof execution environment that's suitable for bitcoin is the chiral
Uh language that and the chiral vm that they have that they're using on starknet and they were like
So who do we go to now to like what is the who are the entities and who are the people that we're supposed to go?
And make this proposal like where where is where is it and a bunch of people were sitting around that table like around the room
some of them were more senior and
veteran people of the bitcoin consensus process and
there's sort of like
It's kind of difficult to explain like so if you don't know it's going to take a very long time to explain
where you go to convince people of
like where you go to make the the
Proposal for the specific bitcoin improvement proposal. So people just like looking at each other and sort of laughing
Well, that's actually a difficult question to ask
Like how do you even answer that question?
And I think that bit plan is like that's the link that i'm gonna send to elie l.i
Elie now that now he has a resource that he can can look at
Uh, maybe maybe that's like the best explanation that he can get
Yeah, I had a really similar experience I was working on a um
Uh non-custodial or what I would say like a assisted custodial bitcoin wallet
before I I started full-time at taproot wizards and and like I was talking to somebody who was new to bitcoin and
We were talking about like a proposed opcode that would be
Really useful for for certain classes of recovery and they were like, oh cool
So so like when's that going to get turned on and I just laughed and they're like
Oh, no, is it going to be like in a year and I like laughed more and it took them a while to to understand
Why I was laughing at them
Yeah, yeah, I think in some ways I got lucky in that. I
I'm I didn't know anything about bitcoin this time last year
Like my knowledge of bitcoin was I was reading a white paper about a zk rollup being built on bitcoin
and that was the extent of my knowledge and so I think
I I think i'd benefited a lot coming into bitcoin with a fresh perspective
And just being like well i'm new here
Let's figure this out
Surely surely there's something that exists and bipland was just kind of the the emergent thing that came out of
Let's go do research and talk to talk to as many does as we can about how this process really unfolds
Yeah, so that was that was like one part of it was bipland and then the other part of it to go with it is
We we launched this quest
for people who are interested in the quantum cats collection and
There's you know multiple parts of the quest but one of them was we asked people to go out
and learn about and and here we we made it a little bit choose your own adventure, but
You know, the the prompt was something the effect of like, um
You know go learn about like op cat learn about the history of it the use cases
Um, you know like what you can do with it why people would find it interesting, but also, you know
if if you find reasons why
We shouldn't activate it or if there's alternatives that you think are better
Then, you know find some way of of explaining those two and like use your creativity. So it could be
A twitter thread it could be a video
Uh, like whatever you want. And so over the last couple days, we've had all this content just blowing up all of our timelines
Where people have been recording
One person made this like really cool interactive website where it looks like an old like windows 95 installer
And it shows you what op cat does and then actually shows you
How without the stack size limits that were introduced in taproot how like op cat can just like
Exhaust memory by doing duping cat over and over again
Um, we had another team of people
Um start playing with uh, like putting together a little bitcoin script that used op cat to uh, to like
Smush two halves of the signature together and do check sig which was kind of fun to see
Um, we've had a few people, you know, write up stuff about like ctv and like why it might be more space efficient for certain applications
So, um, so, you know, we we've got this
Uh group of people that are are digging into op cat and you know
like there's there's a lot of variance amongst uh, like the quality
of some of the submissions but
You know like the the goal here is like you get a lot of people excited
A subset of them are going to do like casual research a subset of them are going to do serious research
And sort of at the bottom of the funnel you're going to have um,
You know some people making like really high quality content
That is about either cat or covenants more generally
And that just becomes like community resources and and you know when somebody else wants to learn about these
These different options then there's like more content that's available for them
And and you know, like i've taken the time that quest four has been going to go and uh, there's this old
Andrew polstra blog post about how you could um
Use cat along with a specially crafted snore signature to do a basic covenant
Uh sort of like check sig from stack, but but not quite all the way there
And uh, andrew polstra wrote about this years ago and for the last couple years
Um, you know anytime somebody says, you know, we don't need ctv and apo. We can just use cat
Like they point to something that points to something that points to something and it always like bottoms out at this blog post
Um, I did some research and as far as I can tell nobody actually ever implemented what was in that blog post
So I I like went and did it and so, you know, i'm currently working on um
A whole bunch of little covenant applications using op cat
I've got like a basic output constraining covenant
um, I think i'm working towards a vault but uh, like, you know, it's it's going to be sort of like, uh,
The the tapper wizard's like first party contribution to the it's like hat conversation is going to be some
You know working code that people can run and play with that actually uses cat for covenants
And then we can put that next to other proposals like l enhance or ctv
Or op vault and we can have like a better apples to apples comparison
Of you know, which of these covenant proposals achieves?
What we want out of bitcoin and and maybe we can you know move a little bit past the bike shedding a little bit sooner
I wanted to make sort of like a
Meta point or or like a meta comment, which I think is really interesting. So
It kind of feels to me like um bitcoin script
Is just on the edge of being incredibly expressive?
And that there are these op codes
That they sort of have their specialty they're sort of designed for like one thing, you know, like op cat
Well, I mean op cat is like a weird beast. It does a lot of things but there's also apo which was you know
sort of designed to
Make a better version of the lightning network. There's op ctv, which is designed for
um, you know making these like pre created trees and transactions, but
have a lot of
overlap in the things that they enable and it's a really common part of the discussion where
Somebody's talking about apo and like what they want to do with apo and somebody else is like
Oh, yeah, you can do that with op cat or ctv
And the other thing
Like the other way around also happens where you're like, oh talking about apo and you're like, oh you can kind of do that
With ctv or you can do that with op cat and it kind of reminds me of the situation
Of Turing completeness in a programming language, right? This is sort of the
concept that all programming languages above a certain amount of expressivity
are equally
Capable of sort of computing all the same things now. There might be efficiency trade-offs between programming languages
but generally they can
All calculate the same things or run the same programs
And there's this interesting thing when you have a programming language where or even a non-programming language where very often it
It accidentally becomes Turing complete because of some you know thing you added to it
So I think the two components that you need for Turing completeness is you need
conditional
Branches you need to be able to take two forks in the road
And you need to be able to jump backwards
So you can do like essentially like iteration or something like recursion
And like once those two things are added
Then you get this explosion in the amount of expressivity of the language and and these things
Will not make bitcoin Turing complete, but it feels like bitcoin is just on the cusp of
a new layer of
Expressivity and these sort of like these these op codes
Let you let you do that and they all have their specialties
And yeah, that overlap isn't perfect
But a lot of them kind of get you to the same place in terms of expressivity. I don't know reindahl. Have you sort of
Note notice that or thought about that
yeah, well and like
Like absolutely, and I think that that's good and also bad at the same time, right?
Because I think one of the things that's really challenging
About the whole covenants discussion is that there is this sort of like reducibility of covenants, right?
So it's like one of the reason why some people like cat is because in theory
A bunch of other covenants proposals sort of like reduced down to cat or like a constrained form of cat, right?
So like you can use cat plus snorzing jurors to emulate ctv. So
You know like the things that you can do with cat are a strict superset of like what you can do with ctv
So sometimes when people say like oh we should do ctv because it's like really constrained, you know
It's not gonna unleash drive chains on the world or whatever
Um, some people will say oh, well, you know, you can emulate ctv with cat
So why don't we just do cat and then we get sort of ctv plus other stuff and the trade-off there, right is like, um
In order to emulate ctv with cat it takes, uh much larger scripts
Um, and like i'm happy to get into what the construction is
But the short version is like you have to build up a snore signature on the stack
And then you call check sig and that like validates it that that ends up being
More code and more data than just having a 32 byte hash and calling, uh, you know op ctv
Um, so it's sort of like you you can um, you can kind of like
It's almost like a risk versus cisc thing, right? Like you you have a more primitive operation
But you can do it more like like a higher number of times in order to emulate the more complicated operation
Um, the thing that I think is missing from a lot of those discussions though
Is like what's the actual feasibility or practicality of that?
um, like i'll give you an example like one of the
Things that a lot of people are excited about i'm excited about I think it's cool
Is this like bitvm idea that's been talked about lately and like bitvm is really cool because in theory
It would let us do sort of like Turing complete
Smart contracts that can resolve or that can be verified on chain like much more cheaply
So you're not doing the contract execution on chain. You're doing verification of a fraud proof on chain
and um, that's like a really exciting primitive but
Economically and in terms of the size of the transaction graph
Is that actually going to be practical to use?
Right because like with with Turing completion, right like or Turing completeness, right?
Like there's you know, you can build a Turing complete computer out of pebbles on the beach
But you're not gonna you know
Like do a lot with that, you know, just because something is is theoretically possible doesn't mean that it's actually practical
and I feel like a lot of these covenant proposals fall into that trap a little bit where um,
You know if if something is going to be used a lot
By the network all the time then we probably do want to have an op code that specializes in it
but if we if we you know don't think that something's going to be used all the time or if we
You know aren't sure then maybe you could make an argument that we want sort of a lower level primitive
That then people can compose into the higher level functionality
And so, you know one of the things I think so so that distinction of like do we want
The more specialized but more limited instruction or do we want the less specialized but more verbose instruction?
I think that that
argument is is one of the things that kind of stops progress on this discussion
because um, you can't really
You know figure out what the obvious right thing is to do when you're sort of arguing it from first principles
And so one of the things that I think we're hoping to produce out of this effort is
You know can
Us and the broader because right it'll become up with like others too or just me
I think I think maybe just you I can hear him. Okay
Yeah, so like one of the things that that we're we're hoping comes out of this whole quest and this whole effort
Is maybe we can have some more concrete examples of like here's what ctv looks like with a dedicated instruction
Here's what ctv looks like with cat emulation
Let's put them next to each other and see like does this actually make sense and maybe it doesn't maybe it doesn't actually move
The conversation forward, but it's it's something that we can do that's more concrete than just uh, sort of arguing about it
I think these concrete samples are actually really important. Yeah
There's so many ways that the discussion like gets gets bogged down. Um, which is really unfortunate
If you sort of look at op cat and its implementation, it's so so so so or not up not up cat
Not up cat. Well, op cat is marginally more complicated. But if you look at op ctv in particular, it's so simple
And it's like, okay, we add this one op code
I mean, I think it's like a hundred or two hundred lines of code maybe even less
That actually implements the opcode in bitcoin core not not counting tests
But it just kind of gets bogged down in this, you know, like bike shedding hell
Where everybody is like talking about like oh like maybe it should include different fields or like oh, here's this like alternative proposal
But that nobody's worked out or maybe we could do this with a with a with a different thing. Um, and I think it's really
Unfortunate for op ctv like I mean, I think op ctv is one of those things like if you don't like it don't use it
It's like no, no skin off your back
And it's so simple and it's it's
I don't as far as uh covenant or uh, yeah covenant proposals go. I don't think anybody's proposed a simpler
Covenant so it has this really appealing property that like, okay, maybe it's not exactly the absolute most optimal thing
But it's certainly the simplest thing and it opens up
Experimentation and so yeah, we should probably just probably just do it op cat is not super complicated
But op cat is is more complicated, you know, you have to think about like bitcoin
Script size or bitcoin script like stack size limits and stuff like that
But it's it's it's it's only like marginally more complicated. But yeah op ctv
And so and so it's it's it's funny like one of the things that i'm so uh, you know
One of the things i'm discovering as i'm actually working with cat
um, so two things one is like
I I really was worried about the stack size limits
And what i'm finding is that in practice i'm actually not running into them yet
And maybe when I get a little bit closer to having a vault done I will but um, you know, I
Like what the the data that you actually need to manipulate on the stack in order to build this like special snore
Snore signature ended up actually being more compact than I was expecting because um
I I naively thought that I would need like a like a fully serialized transaction on the stack
and then I would hash it and then that's what I would use because like the the
The thing that everybody sort of knows or that I I thought I knew was you know
The way that you use cat to do a covenant is you build a serialized transaction on the stack?
You hash it and then you use some kind of magic
In order to assert that that hash matches the current transaction that you're inside of because like
If you if if I told you that you could emulate checksig from stack
Like that's that's what you would or that's what I would assume would happen
It turns out what you actually do is you build up like the um
Like the sig hash which doesn't have the fully serialized transaction. It has
Like commitments to all the inputs it has commitments the output, but those commitments are like you
concatenate
Like consensus serialization of all the outputs and then you hash them and you include that
In the uh in like the message that then you hash and becomes into the sig hash, right?
And so, you know, you you have a bunch of pieces that you're moving around
But what you end up with is like you have a bunch of hashes that are all attached to each other and those are all fixed size
right, so
Um, i'm running into the the stack element size limit way more than I thought I would
And then the other thing that i've discovered is uh, I don't think you actually can do full-blown checksig from stack
discovering that cat is simultaneously like
Uh simpler to use but also more limited than maybe the the hype
Um, and and I think it's because like nobody's nobody's actually like gone and done it yet
So i'm really looking forward to having like a fully
Worked out example of something real that people can play with and and maybe we can have some better
reasoning around
What this thing can and can't do and whether this is better or worse than something like
You know ctv plus checksig from stack or ctv plus op vault or whatever. It's gonna be
I switched to uh to another account
I have two phones here and uh, sorry about uh, oh my god, udi. I didn't know that you were the quantum cats account
I'm the quantum cat i'm both dead and udi
Is the way it works? Yeah
Yeah, yeah, that's that's my that's my big quantum cat joke for today
Are we are we decided though? If like if like op cat is is good or bad for bitcoin
It's like if it's an attack for bitcoin or if like we part
Did we figure that out?
Well, you know, I I don't think we figured it out yet
And you know what i've what i've learned from uh, my twitter mentions is that trying to figure it out is an attack on bitcoin
So, you know, like I don't I don't know if if cat is good or bad. Uh, I don't know if
ctv plus vault is good or bad, but I know that uh trying to figure it out, um in public with like research and
Implementation is is an attack on bitcoin
And if you have fun while doing that rindall then then like I may god have mercy on your soul
Yeah, that's definitely an attack on bitcoin
Well sounds like we have this resolved
I'm really glad that we figured it out
That's really cool. Um, yeah, I look I don't know about you guys. I learned a lot
You probably didn't because you just said things that you already know
But I learned a lot
So it was great for me. I hope it was great for everyone else. Um, I hope you enjoyed bitcoin in general because
We're breaking it. So it's over but
But it was a fun time it was a fun 15 years
Yeah, I hope that before we break it. There's something else fun to do
No, but seriously though, I at least like i'm a troll, but I think for everyone else on stage
It should be obvious that this whole thing is really like it's like it's a love letter to bitcoin
It's people really care about bitcoin a lot and it's just a way I think that's how I see it. So I had to express like
We are so obsessed with it, you know
And it's just just a tool to express it. So I hope some people can see that maybe
Anyways, thank you everyone
For uh sharing this space with us. This was great
Uh, if you're in the audience go ahead and follow everyone on stage. These are all visionaries
You don't have to follow me but everyone else and um
And yeah, thank you for joining us
Uh, thank you for everyone who participated in the quest by the way for quantum cats. It was we just
Wrapped it up a couple hours ago. Um, we're gonna have the results
Uh very soon ready for you all but really thank you for the participation. It was all amazing
I mean I especially today there's so many submissions today
And they're really good. So thanks for that. Uh, thanks for being with us and uh, yeah jim. Yeah. Have a great day