09 February 2022
CD54: pruned nodes, utreexo, and validation with @seardsalmon, @mario_gibney, @kcalvinalvinn, @SomsenRuben, and @sanket1729
EPISODE: 54
BLOCK: 722401
PRICE: 2269 sats per dollar
TOPICS: pruned nodes, utreexo, validation, full nodes, tradeoffs, liquid, soft forks, utxo set
@mario_gibney: https://twitter.com/mario_gibney
@kcalvinalvinn: https://twitter.com/kcalvinalvinn
@sanket1729: https://twitter.com/sanket1729
@seardsalmon: https://twitter.com/seardsalmon
@SomsenRuben: https://twitter.com/somsenruben
streamed live every tuesday:
https://citadeldispatch.com
twitch: https://twitch.tv/citadeldispatch
bitcointv: https://bitcointv.com/video-channels/citadeldispatch/videos
podcast: https://www.podpage.com/citadeldispatch
telegram: https://t.me/citadeldispatch
support the show: https://citadeldispatch.com/contribute
stream sats to the show: https://www.fountain.fm/
join the chat: https://matrix.to/#/#citadel:bitcoin.kyoto
Already more than $5,000,000 for the truckers. How long till they try to shut that down too? Some Canadians are clearly worried about that. They're turning to cryptocurrency. Tally coin, for example, is a small crowdfunding service that uses Bitcoin. It's not controlled by banks. That's the point. They're hosting a fundraiser for the truckers. Now why is this appealing? No one can steal the money. No government can pressure anyone to turn the money over because governments don't control crypto. Bitcoin goes from person a to person b, and all the intermediary does, the company, is connect the 2. It's pretty appealing. And you can imagine the long term consequences here. If the people in charge in this country and in Canada wanna make the US dollar irrelevant, they'll keep acting like this and soon that it will be.
[00:01:20] Unknown:
Happy Bitcoin Tuesday, freaks. It's your boy, Odell, here for Citadel dispatch 54. Citadel dispatch is an interactive live show about Bitcoin distributed systems privacy and open source software. Dispatch is a 100% audience funded without ads or sponsors, and that's thanks to you, Freaks. So I truly do appreciate all the support you guys have been providing the show. It's not possible without you guys, and it allows us to stay purely focused on actual Bitcoin discussion. The easiest way to support the show is through podcasting 2 point o apps. My two favorites are Fountain Podcasts and Breeze Wallet.
They work just like a regular podcast app does. You search it on dispatch. You press subscribe. You load it up with sats, and you can stream sats directly to my node. You choose basically how many sats per minute, you think dispatch is worth. You can also support the show by going to sidlodispatch.com and using our integrated BTC pay server, where you can contribute either via lightning or on chain. And I have a Pay NIM, easy to remember. It's Odell. If you want to support through SAMURAI or Sparrow, the 2 wallets that support Pay NIMs. Dispatch is broadcast via Twitch, Twitter, YouTube, and bitcoin tv.com with all archives posted to bitcoin tv.com afterwards.
It is also available in all of your favorite podcast apps. Recently, I've been putting I mean, you really shouldn't use Spotify, but the videos are also on Spotify because I have access to that. So, if you insist on using Spotify, you can watch the videos there too or obviously listen to the audio. With all that said, we have a bit of a of a tight time window here, so I'm gonna get the party rolling. Oh, once I forgot, but our live chat is, through Matrix now. So if you wanna join the live chat, go to cildispatch.com, click that Citadel chat button, and follow the steps, follow the steps to install Element, and sign up to the matrix room.
My dog only barks as soon as the show rolls, so I'm gonna try and get into introductions really quickly. Serial dispatch 54 is about pruned nodes, UTXO, and validation. We're gonna be going all over the place. We have an all star lineup here. First first off, we have, Vivek here, return guest. How's it going, Vivek?
[00:03:54] Unknown:
It's going good, Matt. Thanks for having me on. It's a pleasure as always.
[00:04:01] Unknown:
Thank you, Vivek. We have Sanket here. How's it going, Sanket?
[00:04:05] Unknown:
Yeah. I'm doing great. Excited to be here. My first time at the show.
[00:04:10] Unknown:
Cheers. Thank you for being here. We got Calvin.
[00:04:14] Unknown:
Hello. Also very excited to be on the show.
[00:04:17] Unknown:
Gotcha. We have Mario. What's up, Mario?
[00:04:22] Unknown:
Hey. How's it going? I'm, yeah, glad to be here. Thanks for having me on.
[00:04:25] Unknown:
And we have Ruben Thompson. How's it going, Ruben?
[00:04:28] Unknown:
Hey. I'm I'm very not glad to be here, but I'm here anyway.
[00:04:33] Unknown:
Ruben joined us last minute, and, we're very Just kidding. No. This is great. We're very appreciative he that he's here. To those watching the video, the picture that was posted in the live chat, is the alleged Bitfinex hacker from 2016. She has a aspiring rap career, and that was from one of her rap videos. Wait. Sorry. This is not a this is not a joke? That's No. That's that's Heather, and her and her husband got arrested in Manhattan today, and they seized 96,000 Bitcoin from the Bitfinex hack.
[00:05:10] Unknown:
That's amazing.
[00:05:11] Unknown:
That's that's just how I always pictured them. Right? No one no one saw that one coming. Before we jump into the tech, I mean, since the live chat brought it up with that eloquent picture, do you guys have any thoughts on that? I mean, I know we were talking about it a little bit before we, went live, but, you know, this is the largest seizure in department of justice history, Bitcoin or not. It's over $3,000,000,000. And, you know, now the American government is is one of the largest holders of Bitcoin in the world, at least on a state level.
[00:05:51] Unknown:
Yeah. Couple thoughts, I guess. I didn't know like, I've been off Twitter, so I didn't know the treasury department seized it. So I'm guessing Draper might win another auction again and have some nice clean, quote, unquote, Bitcoin to go fund companies. Wondering also whether this influences Bitfinex to play nice in US jurisdictions to maybe get that back somehow. I I don't know. Like, yeah, it's it's pretty interesting. Like, yeah, they they just kinda lost that. That sucks.
[00:06:25] Unknown:
Do they, did they deserve it back, at this point, though? I mean, I guess it was theirs, of course, but, like, they they did raise funds from their, users, right, in order to basically, you have some token. They they did, like, the p f x token or something. Right? Yeah. So it just seems kinda weird to me. Like, I don't know how the economics work out there where they they did that and then they make their users whole through that process. And now they get this money, like, maybe maybe that's right, but it just seems a little odd to me. But not only did they have that token,
[00:07:01] Unknown:
right, which there was a little bit of funny business happening there because, technically, I guess, you could say they made their users whole because, technically, if users waited on the token, it accrued enough value to make up for all the money that was lost. But, you know, most most people just sold the airdrop token immediately. So I think bid for next was able to basically, give a massive haircut to users, but, like, on an optional basis. Then there's another interesting element here that after that, they launched, their LEO token, which is their exchange, token, you know, modeled after, like, a BNB or, you know, FTX's token. I don't know. All these exchanges have tokens now. Yeah. And that LEO token pumped today because they announced that if they do get the money back, they're gonna buy the LEO token and burn it burn a bunch of tokens.
So they're already, like, playing games again with, like, tokenomics
[00:08:02] Unknown:
and stuff. So, So, I mean, even if they don't get the money back, they could just sell the top of this pump and make a ton of money off of it. That's yeah. That's pretty dirty. I I was not aware. Like, I actually totally forgot that about that LEO token. And when you mentioned it's like, oh, yeah. They did that. And I I I had no clue what was going on with that. But, yeah, I thought the, the Bitfinex, haircut thing was kind of weird also because, you know, it's like you like, US exchange can sort of buy back your your debts. Right? And, like, if you know you're gonna be made whole, like, you can play the market because you know much better, like, what's your financial situation is. And if everybody's afraid that Bitfinex is doing terrible, then the token is gonna be worth less, and then they could just buy up their own token with the FUD, basically.
So, yeah, that was kinda weird, and this sounds like another weird move, but I guess that's what we're used to by now from, all these exchanges and all these tokens.
[00:08:54] Unknown:
And you could actually see, like, the, like, the token's volume and price rose before the announcement, whether that was people watching the chain activity of the stolen coins because it did kinda look like the US might have captured them, or if it was insider information or it was a combo of both. Yeah. There was a lot of activity there on the token beforehand. So it should be interesting to see how it plays out. The other thing I wanted to talk about before does anyone here have any comments on it? Sanket, you got a comment on it? Yeah. I was like,
[00:09:27] Unknown:
is that like, do we know for a fact that the government has those many Bitcoins and they found it on cloud storage? That just sounds, like, hard to believe that you have, like, 96,000 Bitcoins
[00:09:39] Unknown:
Well somewhere which is under a seizure warrant that you can I mean, I think we can I think we can we can operate under the assumption that if the US government says they have 96,000 Bitcoin, they have the 96,000 Bitcoin? Now the US government has been known in the past to do parallel construction and a bunch of other shenanigans, so everything else that's in the case stocks, I would say, are alleged. You know, a lot of it does seem extremely far fetched, but people are idiots. So I wouldn't necessarily put it past them for that being the reality. But, I don't see I I mean, like,
[00:10:19] Unknown:
the US says they have 90 if the the Department of Justice says they just seized 3 and a half $1,000,000,000 worth of Bitcoin, and then in 6 months, they're like, no. We were just fucking with you. Like, I feel like heads would roll. Well, I I think it has happened before. The governments have been like, you know, we've confiscated or, like, you know, we've taken possession of someone's wallet, but, like, you know, we we don't have the private keys, so we can't spend the funds. I've definitely seen headlines like that before. I would I would hope that the, that the, the authorities here are a bit more knowledgeable, especially considering the sums involved. So I'd hope you're right, but at the same time, I would I I do understand people being a bit skeptical, that they that really understand what taking possession of coins looks like.
[00:10:58] Unknown:
That'd be so sad if they thought they had cashacious coins or, like, a ledger with that much, and it was just hardware.
[00:11:06] Unknown:
Well, the the case doc said, like, they they they the private keys were encrypted on cloud storage, and they got the decryption key, and they decrypted them. And that's how they accessed it, and then they moved them to a new wallet. So we saw the movement of coins as well.
[00:11:22] Unknown:
Sounds pretty clear then. I wonder, like, the have they have they presented a transaction ID to show it? I guess, actually, we should probably be able to do this. Right? Because the the hacked keys and the outputs are unknown. So so I don't know if you guys remember the niche,
[00:11:39] Unknown:
Bitcoin investigator celebrity on Twitter. I forget what he broke last time, but crypto herpes cat? No. I only remember him because of his fantastic
[00:11:51] Unknown:
I is he is he affiliated all with, like, that, like, Kim Nielsen guy or or Neil Nils Kimson? I don't know. He he noticed it on February 1st because on February 1st,
[00:12:03] Unknown:
WhaleBot noticed a bid for next hack coins move moved and because everyone knows those addresses. And, there was a telltale sign. He actually has a tweet out that says, I think the US gov sees them because, supposedly, what what the US gov likes to do is they test out their address with a one Bitcoin transaction, and it was abnormal for the Bitfinex hackers to consolidate and do a 1 Bitcoin, transaction.
[00:12:30] Unknown:
So transaction ID is out there somewhere. Well, I believe it was. Sounds legit. Sounds like they actually have the 96,000 Bitcoin. Yeah.
[00:12:40] Unknown:
In the US?
[00:12:41] Unknown:
Take that, El Salvador, USA, number 1.
[00:12:46] Unknown:
So US government should just, generate some vanity addresses. So just so that it's like, hey. We do actually have it or something.
[00:12:56] Unknown:
Well, like, one x x freedom or something?
[00:13:00] Unknown:
That's perfect. Yeah. Something like that.
[00:13:03] Unknown:
The the irony of seized coins going to an address is it says Freedom on it. Right? The other thing that's nontechnical that I just was curious on your guys' opinion real quick was, you know, I know he's a bit of a lightning rod in terms of politics, and people tend to either love him or hate him. But I started this episode out with Tucker Carlson, who on Fox has the most watched, news show for whatever that's worth in America, and he was talking about this tally coin fundraiser for the Canadian truckers, that is raising Bitcoin for them after GoFundMe, froze their funds.
To me, I think this is a massively significant event. I've compared it to WikiLeaks. I'm curious if you guys think it's of a similar magnitude or if I'm just, being a blowhard.
[00:13:56] Unknown:
I agree with you. Like, that was, like, really huge when WikiLeaks, funding got pulled and, like, Bitcoin was able to serve as a source. But, also, I wanted to ask Mario because Mario is, like, from Canada, so I'm just, like, a Twitter LARPer. I wanna know what he thinks.
[00:14:14] Unknown:
Yeah. Actually, Ruben and I recorded an episode, of on Ashdorer today where I tried to give Ruben the cliff notes on this. So if you want if you want the, the the my full opinion, it's there. But, yeah, I mean, in general, I have, like, I have some mixed feelings about the trucker convoy, but, like, just what happened with the GoFundMe campaign being like, yeah, we're gonna donate these funds to other causes. That's just like
[00:14:38] Unknown:
that's
[00:14:40] Unknown:
so outside of okay. Like, I I don't even know where to begin with that. I, and yeah. I mean, like, it's it's kinda hard to predict now how big of impact it's going to be in in terms of marketing for Bitcoin. But, I mean, I think it's pretty reasonable for to at least be comparing it to the WikiLeaks event. You know, again, like, I'm not a massive fan of of Tucker Carlson, but, like, you know, it it it everything he said about, you know, Bitcoin and, like, what it's useful for was absolutely correct. This is this is the reason the money exists. You know, if, regardless of whether or not you like the cause, you don't get to just confiscate people's money donated to a cause and send it elsewhere. You know, the, yeah. I mean, I I'll I'm sure that there's this is gonna get a lot of people at least paying attention to Bitcoin, and and it it it speaks, it it proves it what its main use case. So, yeah, I, I I think it's pretty huge.
[00:15:34] Unknown:
I think, like, Tash said, like, Bitcoin is for enemies. So, like, it freedom that Bitcoin provides is not just for me, it's for everyone. Right? So I think this shows that well.
[00:15:51] Unknown:
Yeah. I mean, it just seems like such an obvious use case, and I feel like it's it is waking people up, at least people that, you know, support free speech and protests. I don't know. It should be it should be interesting to see what kind of momentum has you know, humans are funny. Right? Like, the first thing that happened was, and Tucker mentioned it on his clip, was a different centralized traditional financial crowdfunding platform, GiveSendGo, that brands itself as the go send the GoFundMe for Christians has gotten the majority of donations in the wake of it. Right? Like, they have, like, $5,000,000 or something, and we're at, like, 11 Bitcoin or something like that, 12 Bitcoin now, which is, like, 550 k or something like that.
Still substantial amount, and, hopefully, the whole thing doesn't blow up because it's being held in multisig by, like, 4 big corners, and I would not wanna be them right now.
[00:16:54] Unknown:
Yeah. Hopefully, it's not being, saved in cloud storage encrypted.
[00:16:57] Unknown:
Right. And that's the funniest part is I know for I know for a fact they're going, like, through, like, crazy lengths to make sure it's secure, and it's only 500 k in comparison to 3 and a half $1,000,000,000. Okay. Well, now that we got that out of the way, let's dive into the weeds. Where do you guys wanna start?
[00:17:22] Unknown:
I wanna start from, what is a full node and maybe the different types of nodes. Like, what is a light client, an SPV, Neutrino? And then after that, basically, what is, like, the UTXO set? And we'd love to hear from Calvin or Sanket or whoever's wanna hop on it.
[00:17:51] Unknown:
Sure. I I could I could give it a I could give it a try. So a full node, there are many ways people use the word full node. Someone might say, like, a full node is only an archival node, and an archival node is a node that keeps the entirety of the Bitcoin blockchain, the 300 so gigs of it. But to so for how I say, how how I define a full node, and I think a lot of other people do as well is a fully validating node. So that means, you don't have to keep the historical data, but you have the UTXO sets, and and I will get to the UTXO sets, but you you have the UTXO set so that you'll be able to verify, new blocks. So when a new block comes in, you look at it, you you validate everything, and so you're not trusting anyone.
And so I would I would define or I would explain full node in that sense. Like node, on the other hand, I guess that could be like your your normal wallet, like, leisure live, or or if you if you use, like, blue wallet without your own node is a node that would just you would just hold your keys. You wouldn't know anything about, the Bitcoin blockchain, but you would just, ask a server, what's here. I have these sorts of keys. How much money do I have? That sort of a thing. And so, I mean, the obvious advantage is that, you don't you don't have any overhead of being a full node. So, I mean, don't don't have any computational overhead that comes with full nodes. You don't have any, like, storage space. It's very small.
And, it makes it accessible for people. But at the same time, it no. It's it's not it's very it's fully trusting somebody, and it's not very great for privacy. So that's what I'd like to notice. SPV node is a node that validates only the headers of the the block headers. So you would download all the block headers, and you would see that they match up. And when you ask for your money, so you would still have to ask because an SPV node does not keep the, the UTXO set nor the, entire Bitcoin blockchain. So you still have to ask a server, but, you could validate that that server is lying to you. So it's it's a little bit of a better security in that sense, but you're still losing out on privacy.
Well, and you you could well, so privacy is sort of like, sorry, I'll just so so you could validate because you have the you validated the block header and you could see you could ask for a Merkle tree proof of your transaction inside the the, the Merkle tree and the block header. So you could you could just hash up and see, hey, is this guy lying to me or is this guy not lying to me? One thing they could do is they could withhold information from you. So you can't ever prove that they're, like, not telling you this money that you have. So that's that's one, security risk, I guess.
[00:21:17] Unknown:
And that would be, like, useful, I guess, for, like, time sensitive things, like, when for example, like, a lightning transaction is, like, unilateral close or something like that. Right?
[00:21:32] Unknown:
Yeah. I don't know too much about that, but, Reuben, I don't know. Anyone else?
[00:21:38] Unknown:
Well, I guess, like, you know, for for a lightning node, what you really wanna know is whether that transaction is appearing on the blockchain or or even in the mempool, I guess, that somebody's about to close or has closed, your channel, and you need to be notified of that somehow. Ensure you could trust the like client to do that for you, but then if they don't tell you, then you won't notice that your channel is closing and you might be in trouble. So, you know, always the the trustless option is to just run your own full note. Right? That you that you can be certain, that you know, what the state is. But, yeah. I mean, I don't think it's unreasonable to to trust someone else to do that. But, you know, the the problem is sort of like, you can do that for smaller amounts.
But as a whole, like, if the entire network starts to rely on these assumptions for the entire network, everybody runs live clients, nobody runs a full note. Like, that's why you're in trouble. Right? So it's it's sort of the kind of thing that works as long as not too many people or not too much value does it. And then with SPV, wallet specifically, I guess I would add that, you you're also implicitly trusting the miners because you're checking the proof of work, But then if if the miners they could theoretically create fake blocks. And then if you only check the headers, if you only check the the proof of work, basically, they would sort of implicitly trust whatever miners mind and and they could still theoretically lie to you, but in practice, if not many people do that, there's almost no incentive for minors to do that. So, you know, again, it it works as long as not too many people do it.
[00:23:06] Unknown:
Gotcha. And I guess, like, we we briefly touched on privacy, or Calvin did. What's the difference between, like, a bloom filter versus, like, you know, the new, like, compact block filters?
[00:23:21] Unknown:
Calvin, can you explain the, the bloom filters maybe? Yeah. I could go a little bit at bloom filters. Bloom filters are it's like a sort of a data structure that you learn in computer science. And it's mainly used for so Bloom filters, it's, yeah, it's basically like a filter. So it's you could try so if you have some data, you could try to see if that data exists. And I think it's a yes, forget which one it is. Songa, do you remember? I think it's like, yes, it absolutely exists and like no or
[00:24:00] Unknown:
maybe Yeah. It should not have any false positives if that's what you're
[00:24:04] Unknown:
Yeah. There we go. But, so so it's used for databases to just sort of see if it's actually in the database. And, if you get, maybe, it's like, hey, maybe it's in there. And so it's like, you just then you look and so it's it saves on, the space of the if you're someone's asking for data that's not there, which is possible, it'll help. So that's Bloom Filters. Bloom Filters sorry, Taz is telling me that we got it wrong. Okay. You could okay. So it's maybe it's there, and it's definitely not there, Bloom Filters. There you go. Thanks, Taj. But but
[00:24:48] Unknown:
It's it's a way of putting your database to find it if there is data, if some sort of data is there, but also without revealing what specific data you're trying to find out. Is that correct? So, like, that's what
[00:25:00] Unknown:
boom filters are used for in Bitcoin, but it's that's not what it's originally used for, or that's not that's not a popular use. Okay. So you're describing just Bloom Filters in general. Okay. Got it. So it's like, Bloom Filters literally just tell you, hey, it might be there or then it's, definitely not there. So if it's definitely not there, you shouldn't look in the database. Right? Because the the that's that's more costly operation to go to the disk. So, just check really quickly, and if it's not there, you don't go. If it's maybe there, then you check. So that's what bloom filters are. Bloom filters are used were used for SPV I think they're still used, for SPV to sort of hide, what's transaction you're asking for. So when you're when you're SVB, as you said, you need to ask a a server or you need to ask a node.
Hey, like, do I, like I have these sorts of private keys. Please, give me, information about, these transactions in a block where if I have some UTXOs to my key. And you ask in a way, so you you send you you send the entire filter and then you sort of fill up the filter, so the the receiver can't really tell. So as well, it's harder to tell. But, problem with bloom filters is that, the filter gets dirty and privacy breaks them. So, the compact block filters that Nutrien implements sort of solves this problem. I forget how it does, and it's better privacy. So it's it's harder to tell as a as a node if someone's asking if someone gives you a compact block filter, the compact block filter doesn't have the problem of getting dirty, and so which is an error problem with film filters. So it's it's better privacy in that sense.
[00:27:11] Unknown:
Yeah. So so the, well, the thing what it it does is the the compact block filters, they they turn it around. Whereas with the, the original bloom filters, what you would do is you would set the filter and then, the full note would fetch the information that you need based on that filter. What happens here is that every full note creates 1 filter per block and then you can ask for that filter and then you can check for yourself whether or not the transaction that you're interested in is inside of the block by checking with the filter. And this makes it so that you don't you don't really give any information to the full node about, like, what you're looking for. All that you're saying is, okay, give me the filter of every block, let's say, and then you check all the filters and then you find which blocks you're interested in, and then you go and ideally you you you're connected to multiple nodes.
You go to every full node and you you request a block, you download the full block, so even then that, full node doesn't really know what data specifically you're interested in. They just know, oh, you're downloading a block and that's not weird because, you know, every every full note, is supposed to especially if you're doing IBD or something if you're, know, a new node and you're starting up, it's not strange for someone to want to download a block. So it just, preserves your privacy a lot better that way.
[00:28:29] Unknown:
So I see. Yeah. Just interjecting one. So, when I was, like, keeping up with Neutrino stuff, like, as in I was reading that up, why was there objection to, like, not have this in the like, in Bitcoin Core or, like, was there any issue with this?
[00:28:51] Unknown:
Yeah. I'm not sure if I fully remember, but there were a couple of discussions. I mean, one of the discussions was that, whether or not to implement this as a, well well, you you could you could commit these filters into a block. Right? So that would be one thing. And you can probably, I mean, you probably know what the issue is with that but maybe just to to say it also in general is that now you're sort of committed to this specific filter. And then if it turns out that you wanna use a different filter in the future or there's a there's a better way of doing things, now you have to keep supporting it because it became a consensus rule as soon as you implemented into a block. You committed into a block and everybody balance and validates it. So that's sort of the the main thing I think that people were sort of hesitant to support.
And then I think the second thing is that, the question was sort of, like, the degree to which, they wanted to enable people to just be able to download these filters from anyone. And I I don't know exactly, but, you know, one of the concerns I think is that you you can't really check I mean, that's maybe not related to this specifically, but you can't really check whether or not someone who sent you a filter actually sent you the correct filter. Sent you the correct filter, like the only way to to check that is to create your own filter and the only way you can create your own filter is by having to use the excel sets, which means you have to run a full note yourself. So there's some some awkwardness with that as well. That's about the extent, to which I noticed, but, there must be more to it, but that's what I know.
[00:30:27] Unknown:
That's, one second.
[00:30:32] Unknown:
So, like, in a nutshell yeah. It's been it's been a while since I looked at the compact VOC filter in in technical depth. But in a nutshell, it's, like, hey, SPV, but better privacy. So there you go.
[00:30:46] Unknown:
Yeah. And and it's sort of worse in a sense because you are, like I said, you are well, yeah, it's a difference. It's hard to sort of sort of measure it, but but the thing that I I think, you should emphasize is that you're not, yeah, the the well, the problem of of lying by omission is still there or receiving the wrong filter and then not knowing that you're actually interested in the block, but you you know, you you don't know it because you didn't get the right filter. So there's still some issues there. Right. But it's sort of, it's sort of like client y. Yep.
[00:31:18] Unknown:
Yeah. Okay. I just, like, sort of jump back to Vivek's question because I don't think we fully, like, discussed the node taxonomy, so called as he named it. And I think, like, before addressing this, the first thing we should discuss is it's all about, like, all of this different trade offs and which type of node you run are all about, what sort of, trust model or third model you are comfortable with. So the very like, ideally, if you're, like, into coding and if you understand c plus plus and Bitcoin Core, you would just go to GitHub, Bitcoin, download it, and build it, check whether, you know, all the checksums match and so on. And so that if you guard against your hardware, like, your hardware or software being corrupt and your various system problems.
And, like or maybe if you're talented enough, you also not talented. If you know c plus plus, you also review every like, single line and make sure that there's no backdoor and so on. But assuming that you get that part done, and I, like, I agree that I think that the goal of Bitcoin running a full node should be after that point, you really shouldn't have to, like, trust anyone. So I think, are we, and I think this would this reasoning would help us reason about more things like assume UTXO or assume valid, which is,
[00:32:53] Unknown:
like, are you with me, Ruben? Like, do you agree on this? Yeah. Yeah. No. Yeah. I I agree with you. And I I would say sort of like the, you know, the the goal of Bitcoin is sort of impossible, right, to be really not trusting anyone, not even developers, check all the code yourself. You know, you could be even farther and, like, well, you should build your own PC because who knows what's in there and the ever all the component should be open source because, you know, like, you could go all the way into crazy town. Right? And and so we're sort of we're doing the best we can. But
[00:33:22] Unknown:
the cool part is the cool part about Bitcoin is that you can go to crazy town if you want to. For most people, the practical reasoning should be to try and reduce trust as much as possible. The way I like to describe, using your own node is to interact with the Bitcoin network, you need to use a node. A node allows you to interact with the network directly. Now if you're not using your own node, you're using someone else's node. And if you're using someone else's node, that means you're trusting them with validation and privacy.
[00:33:53] Unknown:
Yeah. So this one, like, this may be slightly controversial, but I'd like to, like, discuss this. And maybe I'll discuss this in informal context with other people. Like, the difference in, like, running a full node just for, like, sake of running it and actually using it to verify incoming transactions is, like, there's a big difference in this. Like, if you you can just spin up thousands of nodes on AWS and can call it contributing to the network, and that really doesn't act too much. But unless you are, like, actually receiving your wallet is either you're receiving transactions or you're connected, like, verifying that your transaction is in a block which is validated by a node, then it has some value to it. And that's So I just wanna
[00:34:43] Unknown:
just interject for one second. And if you have a fast enough Internet connection, just running a node just running an archival node, for the sake of running an archival node, it probably helps because, I saw a LOPS post saying that, the the bandwidths, well, IBDs have sort of been slowing not slowing down, but it it's it's it's slower than it should be because, these nodes
[00:35:12] Unknown:
can't find fast enough peers. So anyways, so so just putting that there. Sorry. Go ahead, Sanket. What what about the peers in the network itself? Like, if it's a bunch of raspberry pies that are giving ear blocks, is that desired?
[00:35:29] Unknown:
There are, like, okay. Let me so so there is 2 ways in which you would, like, primary interact primarily interact with the Bitcoin network. 1 is when you, like, want to check a transaction which you, you know, like, which you received, and if it is there in the blockchain and, you know, it has sufficient confirmations and so on. And that is the like, that is for me the primary use case. And the other thing is when you are sending a sending transaction, if you, like, broadcast it via wallet or some other software, you lose some, like, by using your full note to broadcast things, you have more privacy in terms of, like, when you when you actually broadcast your transactions. And so those are, like, like, those are 2 ways in which you would use a full node. Like, if you're a miner, you have other nodes. Like, that's a different issue.
So from, so your question was where replying to Calvin's comment, like, I yeah. There should be sufficient number of nodes which are willing to, like, help, like, have old blocks so that people can sync up. And, whether that is necessary and, like, all the UTXO assumptions. Like, we still need to sync up a full node from scratch, and that is one of the selling points of, Bitcoin as compared to many other cryptocurrencies which have, like, finality where they just say, okay. This is the state. I do agree, but, that's like, I I don't see that as a, like yeah. I don't get that much weight to that point given the current, network state. Maybe it's like, like, it's a drawing a line type of thing, and it's up for debate where you can say something. But if you're just like, my point is if you're just running a node and that's sitting somewhere and you're not using it either for one of those two purposes, you're not really doing that much. Like, okay. Sure you're helping the network propagate blocks. And if you have fast Internet connection, that is helpful. I do agree. But I don't think that is, like, anyway as useful for an individual user as the first two things.
[00:37:41] Unknown:
Yeah.
[00:37:42] Unknown:
It is so running a full node, to reiterate for the freaks, is purely a selfish thing. You wanna verify your own transactions that you are receiving or sending.
[00:37:55] Unknown:
Yeah. So, for example, for me, I, it is off for 7 days. I don't care. Like, it is it does not have to be. For when I receive money, I have to make sure that it is in the longest, like, whatever heaviest, longest chain. And so I, like, I can make sure that this transaction which I'm receiving, okay, that's approved by the network. And that's
[00:38:15] Unknown:
yeah. And, yeah, that's how we should reason about these things rather. But then there's there's a privacy component too that we can't Yeah. That discount because I I feel like big corners historically have always talked about the verifying and validating aspect. But I think for a lot of average people, the privacy aspect is actually more tangible and more obvious just because, I mean, throughout the whole history of Bitcoin, pretty much anytime if you go to a block explorer, any of the big block explorers, it's not lying to you. That hasn't happened yet. Doesn't mean it can happen in the future, but that hasn't happened yet where, like, a major wallet has told you that you have Bitcoin, but you don't. But the privacy side is very obvious. Right? If you're looking up your balances, on someone else's server, someone else's node, then they're gonna know your IP address. If you're not using Tor, they're gonna know your address balances, and they're gonna be able to correlate transactions, to each other. Right?
[00:39:10] Unknown:
Yeah. They know, like, what time you sent your transactions, what is the destination address, and how much amount you send. And, for example, if you know if I get paid in Bitcoin on what day if I get paid, how much I get paid, then It's easy. Like, if you know some other social information, it's easy to put together a bigger picture and just completely paint a profile of what some, like, a person's private information is.
[00:39:39] Unknown:
Awesome. So I guess the next question I have is, like, I guess most of the freaks know by now that a prune node is still a full node because it's a fully validating node as Calvin had said.
[00:39:54] Unknown:
Depends on who you are. My gosh.
[00:39:58] Unknown:
Okay. Okay. Well, I I agree with your operational definitions for this episode, but, I was just gonna say also that, you know, Ultra Prune was added by Peter Willow, I think, in, o dot 8, and that's, like, the formal introduction of what we now call today the UTXO set. I think most of freaks know what a UTXO is, but what is the UTXO set, and why do we care? Why is it relevant during syncs? And are there any other, like, tangible things we could do with our, bitcoin.com for, like, dbcash? Any hints?
[00:40:45] Unknown:
Yeah. So, UTXO set is was sort of you you needed UTXO set for prunedodes anyways, and and I I believe that's how, and that was one of many reasons why it was merged into core. And so so before the concept of the UTXO sets existed, you just kept the full chain. And if you and you had you had a database of pointers. So, like, so for this transaction and you could still spend this transaction. Okay. Where do I find the data for this transaction? Then it would just be pointing at some file. And it's like, okay. If you go to this file and if you look here, you'll see you'll find this block. And then in this block, if you look here, you'll find that transaction. So so that's how it worked in the past. And and that's still how LiveBitcoin works, I believe.
LiveBitcoin is the is an alternative implementation of Bitcoin. And so so before, that's how everything worked, But, for 1, for pruned nodes, you can't do that because if you start deleting historical blocks, you don't have the UTXO set anymore, or you don't have the data that you need to validate. So you couldn't do that. So you needed a UTXO set, and that was one of the reasons. But, a UTXO set is, again, in my opinion, is is beneficial for a lot of things. 1, if you if you have the UTXO set, you don't have to go to disk every time. So, going to your whether that's an hard disk or or a SSD, it is an expensive operation. Expensive as in it. It says it's slow.
And so if you have a a memory cache, like, like a little bit of your UTXO set ends in your memory, that's a lot faster of an operation. So when you first sync up, in your bitcoin.com, as you said, there is a optional setting called DB cash. And if you increase that, what you do is you you end up increasing the, memory usage. And so you keep more of the, the UTXO sets in your memory. And and that will speed the initial sync, the initial block download by a lot. So that is one one of the benefits of the UTXO set. I just think it make I also think it just makes sense in in terms of the memory hierarchical hierarchy architecture in Bitcoin Core.
And so, like, why would you not that is the most expensive operation. Why would you not have this, in memory cache? And so yeah, anyways, I, hopefully, I explained the UTXO set good enough.
[00:43:44] Unknown:
Any Yeah. Anybody have been I thought it was a pretty good good explanation. Maybe, maybe one thing to sort of add or rephrase would be that, like, the the UTXO set is sort of the the minimum amount of data that you need in order to validate the next block. So when a new block comes in, really what you want to know is are these transactions allowed to happen? And in order to know that, you need to check what the UTXO set. So that's sort of what I would say maybe at a high level, to to sort of If you're Verizon.
[00:44:16] Unknown:
Yeah. If you're into, like, computer programming, like, like, QTXO set us, like, the state of your Bitcoin or, like, that's Yeah. That's how and with every block, you keep on updating your state, which you're
[00:44:31] Unknown:
the UTXO set is Bitcoin in in in a sense.
[00:44:35] Unknown:
Yeah. I think that's fair to say.
[00:44:37] Unknown:
So do so everyone has the UTXO set that runs Bitcoin Core, I guess, like, the later clients that added this after 0.8. How does Dust and Opera turns and the old legacy MultiSigs affect this? Do we keep those forever?
[00:45:01] Unknown:
So dust goes in the UTXO set because it is still spendable. It's just does this also not a consensus rule? Right? It's so when you try to spend transaction that's too small, it's not so you could you can do that except, so that that is a possibility for spamming. So Bitcoin Core has a A relay policy. Right? Yeah. It's a policy that's it's like, hey, I I don't so it's like, are you really trying to spend this? Or, like, prove to me that you're really trying to spend this by show me the intent. So, basically, it's, like, pay enough. If the amount is too small, then, like, a like, are you I think you're just trying to spam, that sort of a thing. Yeah. So so just to to clarify, you probably meant it, but, like, the
[00:45:58] Unknown:
the outputs are not allowed to be small. You you can you can spend a small output, if it's already there, but, you're not allowed to create a new one. So at least that won't be propagated over the network even though it is technically legal for a miner to add it into into a block.
[00:46:13] Unknown:
Yep. So, like, if you want to do it, you could send it directly to a miner, and they could might defer you because it's not against the consensus rule. Yeah. You could even, create a 0 satoshi output.
[00:46:26] Unknown:
So is it desirable though that, the UTXO set grows in size? Like, are there any, like, negative network externalities?
[00:46:36] Unknown:
It's alright. Now now we're getting into so we don't know. If a UTXO set is too big, we don't know what's gonna happen. And, what's funny was, in a conversation with Taj, I think he mentioned that we're we're talking about something like like, big blockers. We're like, hey, we could we have, like, these 100 gigabyte blocks or whatever. Look how much we could process. But what you really should be doing is you should be increasing the UTXO set. You should you should have a chain that just has a huge bloated UTXO set. So right now, Bitcoin, it's about 4 gigabytes, and it already is the when you first do the, sync, that that is already the the one of the biggest slowing down factors. So it's one of the biggest overheads.
So we wanna keep the UTXO set small. So, so going back to, like, what you mentioned about, like, op returns. Op returns, we know for a fact that it cannot be spent. And the UTXO set is unspent transaction output. So it's like, hey. What are all the collection of Bitcoins that is able to be spent? Or we're we're we're we're not so everything that we're absolutely sure cannot be spent does not go in the UTX OSO. And so upturns, when you see them, your Bitcoin Core node will not add them to the UTX OSO because we know for a fact that it cannot be spent.
[00:48:12] Unknown:
Yeah. You're you're basically destroying your coins if you if you send coins to an opportune.
[00:48:20] Unknown:
So, I mean, just to reiterate, the the entire motivation for having a UTXO set is fast validation. Right? We want to verify blocks as soon as possible. And there have been, like, improvements where, like, even SegWit or, like, p two s h in some sense where you, like, where you dis where you disallow random things in, like, their scriptPubKeys. Like, this is just to make the size of your TXO smaller and so that you can have more of them in your memory, and you can verify blocks faster. So all of these improvements have, like all of these in the bigger picture just are to verify blocks as soon as possible.
[00:49:05] Unknown:
So just just to I think there's only one guy that doesn't believe in the e c x o set, and that's, Eric Voskuil of of Bitcoin. And he's and he's like, oh, no. You don't you don't want pruned nodes in the network. Why do you want that? They don't have the network. And, so so the database is a big overhead, and he's like, yeah, we don't have a database. We just point to the we just point to the flat files. And so, like like, so, like, there there is an argument to be had there. Of course, the core is way more performant than the Bitcoin. But, hey, what if the usage also grows? Like, can is can can normal hardware handle that? We don't know. Maybe. Maybe not. I mean, no one's really tested that. So I mean, if you're a minor, you'll probably want to use your dataset.
[00:49:58] Unknown:
Yes. If you're Yeah. Risk using your and it's like and if you're verifying your block and, yeah, you don't care if it's 10 seconds late at your own local or not. Okay. You can use lib Bitcoin. So depends on
[00:50:13] Unknown:
Yes. If you're a miner, you definitely wanna use Bitcoin Core because that that I think with LiveVicore, you would literally be losing money.
[00:50:19] Unknown:
No. You should use not to mine. That is a good plan for it. You're correct. Anyways, I think this is a good segue to UTXO because, you know, I think of the UTXO set being useful because of the prune nodes, and UTXO is almost like a pruning of the UTXO set. If I don't know. Maybe that's a bad analogy, but, can you explain more?
[00:50:47] Unknown:
I think that's a good analogy. It's so so UTREXO is, so so literally UTREXO is just a fancy Merkle tree. I I explained it as a fancy Merkle tree. I touched this in the chat. I don't know how he feels about that definition, but it is literally fancy Merkle trees. So what we do is we Merkle ize the UTXO system. So it's like if you think of a normal Bitcoin block, you you construct so you organize the transactions into a Merkle tree so that you you just have to keep the Merkle tree root. Right? That's the same exact idea, except there's, so UTXO is fancy. It has little more operations, little, bits here and there. But the idea is the same and that's, hey, let's take the UTXO set. Let's let's put that into a Merkle tree, and we only have to keep, the the root or roots in in the case of Utrext.
And so that that's literally what it is. And, there's a lot of well, there's a couple of fun things you could do because, as I mentioned before, the UTXO set is about, like, 4 gig, like, 4 gigabytes. With UTXO, it's like a Merkle tree. It just, it makes it a lot smaller. And for for for if you're using Utrechtel, it's like under a kilobyte. So it's a lot of reduction in size. And okay. So do I before I continue on, is there any other comments slash questions that anybody else might have?
[00:52:31] Unknown:
I think that was a pretty good explanation so far.
[00:52:34] Unknown:
Okay. Yeah. Would you would you agree that the high level UTXO summary is, you use more bandwidth, but you have significantly less disk space requirements.
[00:52:53] Unknown:
You so yeah. Yeah. In a nutshell, yeah, that is true. So so you use more bandwidth because of the fact that when you receive a block, so as a UTRAXO node that only keeps so so if you're a UTRAXO node, you have the option to only keep the Merkle roots, of the of the entire UTXO set. So if you only have that and you receive a blog, you don't have the UTXO set. So So you need that data. And and what you do is you receive that data from your peer. And so this does end up increasing your bandwidth because you need to first receive the, Merkle proof for the for your, Utrecht's or Merkle root.
So you need to validate that. Second, you need the actual data of the, inputs. So in a in a transaction, you're referencing the inputs. You would verify that they exist with the, with UTRAXO, verification. And then you need to do the, like, the actual Bitcoin consensus rule validation. And so you need that data. So you need, like, the signature and amounts and all all all, like, the all the misc data. And so you do end up increasing the bandwidth in that sense. But as I said before, yeah, you could reduce your disk usage to other kilobytes if you want.
So there's that benefit. So it is a trade off, and we're working for the past 6 months. We've been working a lot to sort of reduce this trade off. So, hey, what if we cash a little bit more and download a lot less? And, yeah, that's what we've been working on. It's not
[00:54:47] Unknown:
out yet. It'll be very soon. Calvin, who is the we? You know, I know you mentioned you and Taj, but there's also 2 others. I know Ruben also has a project that uses it or something. Right? Like, you wanna introduce everyone?
[00:55:01] Unknown:
So, like, yeah. Me, Taj, and, there's a there's a 3rd contributor that contributes a lot, in in Germany. His name is Nicholas Goyer. I I think I'm probably butchering the name. Yeah. That's the 3rd guy. But, yeah, Ruben, you could talk about you could talk about, your which chain is it now? Soft yeah. Soft chains,
[00:55:30] Unknown:
utilize it. Yeah. So I I guess well, it it it is related to the sort of like like client story we've been talking about. So one of the things that UtreXo does is it basically allows you and, actually, I wanna keep this short, but but I'll I'll I'll try and give Kevin an overview. What what UtreXo does is it allows you to actually validate blocks without knowing, a transition from one block to another block without necessarily having to know the fatigue so sets. And that's actually a very interesting property. And so I came up with a way to sort of do a like client validation that is actually very close to running a full node, but it utilizes this UTRAXO property of being able to validate a transition from one block to the next.
And basically, the way it works is you start off with an assumption. Let's say we assume that 1% of all miners is honest. So we're sort of assuming that up to 99% of the network, all the miners they can create invalid blocks as much as they like, and it's not gonna bother us in in this consensus model. And basically, what we do is we look at forks. So we look at whenever a miner doesn't mine on the most proof of work chain, but instead creates a fork, we can use this as sort of a hint to say like, oh, well, the fact that this miner created a fork seems to mean that this miner thinks that the current must be of work chain is invalid.
And using that as a hint, we can then go in and investigate and download the block after, which it is forking off from, and validate it, and then check to see whether or not the transition was valid or invalid. And if it was invalid, then now we can reject the most proof of work chain. And if it was, valid, then we just continue in the most proof of work chain. And one thing that's interesting is, initially, I'd sort of like I thought this was maybe, not good enough for, sort of as a like line for Bitcoin. But, now I'm actually of the opinion that it might be because you could take that assumption farther and so what it means for 1% of the miners to be honest, it it basically means that out of 100 blocks, one of those blocks is gonna be valid.
And in the case that 99% if the miners are being dishonest, it means that there will be 1 fork block that is that's actually being honest. But then 200 blocks in the future, you would assume that the honest chain is 2 blocks long. And 300 blocks in the future, you would assume that that chain is 3 blocks long. And so what you can do is you can start running, you you can download all the headers and you can download all the forks off all the headers. So so you download literally all the block headers, even the ones that are not, not in the most weird work chain, and you just look at the forks. And the farther you are in history, the longer needs to be the fork for you to be, to say, like, oh, hey. Something's going on here. I need to check, I need to check a block.
And so that means that the farther you are in history, the less latest. And even though there's a fork there, it needs to be really long for you to actually care about it. And the closer you come to the actual tip well, at the actual tip, you can just download the last 100 blocks, and and you could be actually certain that those are all valid. And then for everything else, you only check the forks. And the farther you go in history, the less you have to check because the fork needs to be longer. And that can actually be a way that you can come to consensus, with very little data and and be at the tip of of the, Bitcoin blockchain.
So it's a it's a Yeah. It's it's an interesting thing, and I think, yeah, it can be useful in that way. And I I also came up with a kind of a more convoluted way of using this for sort of a 2 way pegs, side chain, which is a cool idea in theory, but in practice is, it might be good for Altcoin or something. But, for Bitcoin, it's it's a little bit too crazy, but that's sort of the the high level idea.
[00:59:33] Unknown:
Yeah. We should move on. Me and Sanket are liquid maximalist, so you don't have to talk about that.
[00:59:40] Unknown:
So there is one thing that I would recommend. Users of the network.
[00:59:44] Unknown:
Yeah.
[00:59:46] Unknown:
Well, I mean, I I like liquid too, you know. Like, it's a I I think, you know, the the federated side chain model, like, I don't know what you guys think but, like, you know, people complain about it and say, like, oh, well, you know, it's not trustless. But I mean it's it's much better than something like Coinbase and we need these solutions that are sort of in the middle and I think, yeah, Federated Sidechains Liquid, they are great for that. So I sort of, you know, I think every way in which you can do another chain that is not introducing an altcoin, I I think is basically good. That's that's how I see it. I thought it was kind of cool that they added,
[01:00:24] Unknown:
well, they added CTV to it recently, didn't they? I
[01:00:28] Unknown:
Yeah. I think that that that
[01:00:31] Unknown:
yeah. Yeah. That was AJ who actually hacked her script in order to do that. That. Sanket, maybe you know more about that. And and also, Sanket, what I really want you to talk about is simplicity actually. So
[01:00:41] Unknown:
I'm putting it out to him, you know, because he's the most talented. Wait, Vivid. Did I make that up? I don't think it's activated on liquid, but maybe other elements. No. No. This is like it's not CTV, so it is much more powerful than that. It is, like, it allows you direct transaction introspection of codes, which, like, at a technical level, it means that you can directly observe, like, what is the what is the output amount at this, like, what is output amount, at this output index? What is the input hash, or what is the destination script up key you're sending to? And it, it is much more powerful in the sense it allows you to create actually good vaults, with and, like, it is a more general programming framework which allows you to emulate CTV. So CTV is like a templated fixed hash, and you can just, like, output, the hash by selecting the different parts of the transaction template and then hashing them together and, like, emulating CTV. So it was always possible to, like, do CTV.
[01:01:54] Unknown:
Matt, we we we had opcat and opchecksig
[01:01:58] Unknown:
from stack and Yeah. That was their of like, it was there from the start, but now we have, like, something which is direct transaction introspection, and that allows you to, like, to, emulate CTV, but also do many other applications, which are not which don't have fixed transaction,
[01:02:21] Unknown:
like, transaction free. Is this what Russell has been on the mailing list,
[01:02:26] Unknown:
talking about TX hash? No. That is a different thing. That is the the CTV is, a fixed template, and you hash according to this particular you hash these these objects, and you you get, like, these these parts of the transaction and you get, like, your CTV hash. But, what Russell is saying is that we should have more programmatic control over what sort of things you are going to access so that you can enable and there's a more forward thinking way if we can have more applications, not only just, like, CPV. So it is a programmatic approach to, like, having different things.
So it is, like and this is still different from, like, introspection of codes. So, like, just to I won't dive too much into it. Just to give one example of differences. With CTV, you need to have all your possible outputs of all your possible states of your transactions be decided. For example, if you're having a using a vault, then you need to know that you are going to withdraw 0.5 Bitcoin always. And that's like a severe limitation in some sense. Like, the price of Bitcoin might be something else. You might want to withdraw 0.501 Bitcoin or something else.
And it's just, severely limited, but with, like, arithmetic opcodes and with, like, transaction introspection, you can have, like, a dynamic wall, which is more sort of something with how would you use a wallet, like, withdraw how much you need and know without going in the future how much amount you're going to need. So that's just, like, one difference. That's
[01:04:03] Unknown:
yeah. Yeah. And it's very interesting. Yeah. So so, Sanket, I I'm also wondering, like, do do you have an opinion on, like, OPCTV and anyprevaled versus, TX hash and, checksick from, Yeah. Checksick from Stackverify. Or maybe a verify.
[01:04:22] Unknown:
Is that is that's okay. I have opinions on these things, but, okay. So let me just give me 10 seconds to organize it. So,
[01:04:31] Unknown:
yeah, I'll about to get spicy, Matt. It's about to get spicy.
[01:04:34] Unknown:
So so maybe to get a second and, just talk about it a little bit, what I'm sort of, like, asking. So we current currently have a discussion on, whether or not Ops TV could could go into Next Soft Fork or and there's any. Both are, interesting functions. 1 is sort of like a, you know, a very fixed covenant that Sanket just explained, and the other one is, kind of a way to do sort of transactions that are a little bit more loose. So you you can spend, you can create a transaction that spends an output, but it doesn't specify which output. So you could sort of, like, yeah. It becomes more loose and and that has some advantages for, lightning in particular.
So recently, Russell O'Connor put out a a mailing host basically arguing, well, we can get both of these features in a way that is sort of more flexible by creating these 2 nodes that, are slightly more expensive, they're a few more bytes in in terms of transaction size, but it's it's much more flexible, and it allows us to do more in the future. And my personal concern and something that I want Sanket also to to comment on if he has an opinion is that I I'm noticing sort of this this fight here, this battle between, okay, are we going to try to be very forward thinking and add these new features and and really, even though we don't have a use case for them yet, kind of prepare for them already, or are we going to be very use case oriented and just say, no, we just want OPCTV because we wanna do this and this, no, we just want AnyPerfout because currently we want this and this, and then maybe in the future we do a a complete language overhaul, something like simplicity which is is kind of an alternative scripting language, that hopefully we'll get into in a second, and and sort of not worry about that, today.
So with that, Sanket, please tell us your thoughts. Yeah.
[01:06:32] Unknown:
So, yeah, 1st, let's start with, like, check template verify. Like, I have, like, the idea is good in person. I like the idea. The idea is technically sound, so I will get 2 things out of the way. Like, I don't have any technical objections to it. So the question, yeah. So the question like, the main question, should we soft fork that into Bitcoin and should that, like, what should be our stance on this? So there is, so I'll first go into, like, the more sort of, social argument, which, like, I'm not taking any side, but I'm just saying my business thing which we need to discuss.
Like, this, so this opcode upgrade is not as big as Taproot. Like, for example, our segment. It is it is not as big as so it's not changing how, like, how things work fundamentally. But, it clearly is not, how should I say? It's clearly is not as, does not have as good support as Taproot or Segwit, for example. And because it is specifically use case oriented, whereas Taproot and Segwit were, yeah, where Taproot and, Segwit were, like, kind of benefiting like, at least benefiting everyone. And in this case, it is not that it's not clear. So we have to evaluate this from the use case perspective.
So now this really brings, like, the social problem which I was discussing is where you have, like, now certain set of Bitcoin users want this application. And, should, like, should we include this, and is that worth it or not? That's basically that's the question. When it does not affect, where it, like, doesn't directly touch, doesn't directly touch most of the Bitcoin users. So, okay, where I was going with this? Yeah. And so because it, and this also sort of sets the precedent in future for how many like, how do we want these things to, like, how we want these things to change. Like, how do we want opcode future opcode proposals? So all of these critics were not in particular critics of CTV in general, but those are just, like, observations about an upcoming of for soft work in Bitcoin, which is, like, not unilaterally like, which does not directly benefit everyone, for example, Taproot.
So so we should really, like, have more and this has sort of set the precedent in future for how do we want to do these things. No. I personally am of the opinion that we should be more liberal towards, opcode activations. Like, in general, like, it's not a big as big of a change as, like, Taproot or Cypress. So it should not have that high bar, but it's, like, up to everyone to decide. So that is my opinion on, like, this particular, like, sort of social issue. Like, I want more opcodes. I want Bobcat. I want, like, objects, like, from Slack, and I would be proposing. And I don't think we should have that that high bar for it. So this is, like, the first not a creative CTV, but just an new software which should set the precedent for opcode upgrades in general. And this was not the case for, like I think AJ brings this up. It was not the case for previous like c like CSV and CLTV, which were, like, like, Bitcoin was it was still big, but it was clearly and it was driven by lightning network, for example, CSV upgrade.
So I think the yeah. This the ecosystem has changed low. Yeah. Ecosystem has changed significantly. Now towards the specific things of CDV where so one of the things I dislike and which I, like, which I should really find time and write down more concretely is it is explicitly designed with the goal to avoid, what we informally call recursive or unlimited covenants. People think those are dangerous, and they have some arguments for it. But I am, like, with time, I have learned to appreciate that. And, like, after talking to numerous people, like, that those those really aren't that dangerous, and we have we we have good rationale for having recursive covenants. And, and we should really if we are going to have this recursive covenants for, you know, that is the solution which I am personally interested in. Now because in the first, we have evaluated that we should really, like, judge this opcode upgrade by use case basis. And for me, like, an world where I can just withdraw fixed amounts is really not that interesting.
Like, I really want to have a more dynamic world where we can, like because no one really knows the future, and you cannot really say that I will always want to withdraw this much amount. So That's and with recursive covenants, you can do, Yeah. Like, you have more possibilities for, like, doing things than just a fixed template.
[01:12:04] Unknown:
And even the But, changing the amount doesn't require, recursive covenants, does it? Or are Sorry? Well, specifically, the example you're giving, changing the amount so having something like, obviously, TV, but the amount is something you can you can change for instance. That that would not require recursive covenants. Right?
[01:12:23] Unknown:
I think if CTV with everything in CTV, you have to know in future for all all your transaction templates. Like, you have to know all the possible risk. Yeah. So you can, like, you can you can say, like, it can be 0.5 or 0.25 or it can be 0.1. Like, you can do all these, like, here, but you have to enumerate all of your possible so simplest way to, like, understand CTV is, like, it is, like, pre signing a transaction, but with consensus support. Like, all everything you could do with pre signing, transaction pre signing tricks, now you can do with
[01:12:55] Unknown:
makes it even No. Yeah. But but that that was what I was asking. Like, so what I was asking is, you're saying I want recursive covenants because then I can have something like, an output where I said money, but I don't have a fixed amount. I can still change the amount at spending time. But I I'm saying that's still not an example of a recursive covenants. Right?
[01:13:16] Unknown:
Yeah. That's still not an example. But that's, like, it's not a recursive covenant. That's, I would say not a covenant where you don't have where you don't enumerate all your possibilities at creation time. Like, that is what, like, but the way in which you would do that, for example, transaction introspection, that could enable recursive covenants. And with Valls, for example, you would want some sort of, like, recursive covenants to enforce that things go back into Vowel under the same policy. Yeah. So it is like that is so again, it's so do you really, like, so again, that, personally, that brings me to the question, do I should I be advocating for CTV?
Because I don't have anything against it, but those are not the use cases which I'm interested in. And that is something like, that is something which yeah. I have to decide. But on the other hand, I do also think that the bar should be lower than than that for, like, Taproot, for example. That is just my opinion because we have all these ops access and all these all upgrades, and we definitely want to use them. So the yeah. That is the thing. And soft forks also have this, like, coordination issue. So, like, is it if we, like, if this is if we are really going to have this sort of recursive covenants, like, CTB is still useful and do we do have to go through this process again?
And, like, that is basically, I think, the mailing list conversation.
[01:14:50] Unknown:
Yeah. So okay. But but that's interesting. So is it because of the recursive confidence and the possibility that that might get added in the future or that's at least where you want to head? Is that why you prefer something like the X hash? Is is that right? Or or am I summarizing quickly?
[01:15:06] Unknown:
Yeah. I that that that may so for ideally, like, this may be a bit tougher personal ideally, I would want, like, something which would add in elements, like, where you can, like, where you can have direct transaction introspection, and that just gives you more programmatic access to do different type of covenants. Like, that is what I would want, Yeah. Personally. But I and that's, obviously, Bitcoin doesn't work that way, but I would have to Sure. Sure.
[01:15:36] Unknown:
Yeah. Yeah. But but okay. But but you're you're sort okay. So you actually sort of have apathy for the entire, the current kind of line of software. So, obviously, TV and AnyProvide as well, I guess, to some degree. You're you're just not super interested in them, but you're interested in something that's a bit more powerful than that that allows more flexibility.
[01:15:55] Unknown:
Yeah. So yep. And so I'm also debating this personally. Like, should I be advocating for CTV if I don't have anything against it? And Yeah. Like, that that that's something, like, should I spend my time trying to review it when I'm not going to use it? Or Yeah. Like yeah. So that's something because clearly those have to be evaluated based on use cases. And, yeah, if I really find a good use case, which I want something right now, then I can yeah. Surely.
[01:16:25] Unknown:
But I guess what my original, thought process was where I went down this tangent was, like, isn't this the perfect use case for a federated side chain to basically test out for us?
[01:16:39] Unknown:
Yeah. It is, possible. Like, I mean, it is possible to build applications, and you you can write, like, applications today, which emulates CTV and just do it. But is is liquid to is liquid to divergent from Bitcoin to be
[01:16:55] Unknown:
a good test bed for it? Like, should we have another federated side chain that's basically, like, Bitcoin plus controversial changes?
[01:17:04] Unknown:
That's kinda like what already is. Like, take that for instance. Right? There is a but but you want real money. I guess that's the point. Like, we have extended that. Okay. But, yeah, it's, like, I don't think it's too divergent. It has, like, so the main difference here is, like, different assets where you can have, like, multi asset chain. And second thing is confidential transactions. Like, you those are like, you can still have CTV on like, you can still emanate CTV and have all the applications of CTV, on liquid. And if people want to do it, they can build it. Like, there's nothing, like, you can you can emulate it as it is today. You cannot do it for presegment transactions, I think, but that's, I think, a very minor limitation.
[01:17:49] Unknown:
And it's not divergent. It'd be, like, early if anything. Right? Because he uses the z k p, library, the more experimental one. S e c p k 256.
[01:18:03] Unknown:
Yeah. That's not related to cryptography. That's, like, opcode is different.
[01:18:08] Unknown:
Yeah. That's how they elements and liquid in general, like, I guess, diverging from Bitcoin?
[01:18:14] Unknown:
Yeah. Yeah. They do that. Like, so there is, like, a bid. So the problem problem here, I should say, like, the decision here to be made is if you are a test bed and it doesn't real money, you deploy something which is consensus critical, and then you cannot change it. So for example and this is a decision which has to be made on case by case basis. But for example, you have a new opcode and you want to test this on, you you want to test this to, like, test this on liquid, then you would, like, then you would give a spec. You'd implement it, and now it's in liquid consensus. Now you change it, and then suddenly the for based on, like, feedback or real life data gathered, and then you have different versions on liquid and on a bit. That is one possibility, but you can, like like that can be evaluated on case by case basis whether that's worth it or not. But it particularly in the case of CTV, what is available on the code is much more powerful. So it's like, like, you can emulate CTV and you can do much more things. It's really there as additional code really was not needed to have that functionality. So to answer your question, like, yes, you can do this on liquid. And, if people want to experiment CTV, they can try it.
[01:19:36] Unknown:
So I'm on the other side of the spectrum, Sanket. I'm I'm the caveman that's conservative, that is ignorant, and doesn't understand all these new proposals, and I appreciate Bitcoin being ossified, and I don't want new things. Recursives were Recursive covenants were sold to me as being like the boogeyman of everything, because that's what I guess the federal government would use to make sure you're now in this locked KYC system or something like that. Yeah. Is there I had that opinion, but I have, like, based on, like,
[01:20:11] Unknown:
reading the mailing list and some RC conversations, I have, like, changed that. Like, have changed my stance significantly and to the point that I'm even, like, I would be supportive of a fuzzy proposal which has As you've heard of. Can you So for example why. Yeah. Yeah. Yeah. So, like, just to, recap what the supposed danger is. So I think, the the argument which is, like, given for, like, against recursive governance is you have, what if the government goes to Coinbase, And it says that, you have, like, you have to use all your Bitcoins have to be inside this covenant where the federal government can always freeze the skis, and that frees the coins. And And that's like a recursive covenant. So whenever you withdraw from Coinbase or you send it to your friends or so on, you have to keep this, like, this covenant must float around, like, forever till the eternity of the coin.
Right? And that's, and and that's a and that's the concern. I don't think it is well found because, a, if you're keeping your money at, like, at an exchange, then, like, they already have your money, then they can, like, you know, just freeze it then and there itself. And if you're accepting any coins from primary, from any, like, from someone like, why would you accept coins which are, like, when you receive coins and Bitcoin, you receive it to an address of your choosing. Like, you never receive it to, like, any covenant address which is, like, has a covenant. So you have to explicitly opt into the system to, yeah, yeah, to, you know, to use this.
So and, the argument here is that why does the government not use a they can do the same thing today, but with a multisig. They can just have a policy then they can just go to Coinbase and say, you know, we just have a multisig or, like, our policy where every every transaction you spend must have an alternative pathway for the alternative path where government can freeze or send the coins. And then they can do have the exact same behavior today that is emulated, like, in, like, that can be done today. So with recursive covenants, all you're adding is ability, like, I'll be careful here, is the ability to do this in consensus, whereas previously, it was the ability to do something at, like, a policy level where you could just say the government can have can spend this using their own keys.
And the argument which Jeremy listed on mailing list is, I think, an article from someone on Twitter. I forget the name. But the essentially, the Medium post just says that it makes this distinction between having covenant at consensus level versus a policy one, where they say that the policy can change with time and, say, the government changes or you have new new some other policy, then you can opt out of it. Whereas, if you are into this, whereas if you are, into this covenant, then you are stuck with it forever. And I think that's just philosophical difference. At this point, if you really want to get out of, like, hard fork at that point, like, get out of the covenant, you can just hard fork out of it. And I don't think there's any, this has an anything to do with enabling these covenants on on Bitcoin. And secondly, these are so like, again, this is maybe we are at this point where we don't even have off cat, like, just adding 2 elements on on the stack because that might enable covenants accidentally enable covenants.
So it is like a very how do I say it? It's because we have, like, by nature of how check, there is some level of introspection by nature of some the scripting in between you can have, like, you can do like, for all I know, it might still be possible today using all the weird op codes available, like, to actually do, like, do covenants. And I like, instead of having this game of avoiding covenants, we should just, like, discuss whether, like, are these dangers really well found? I thought that at one point where governments could have, like, they could enforce this covenant, but I don't think that's really any different than having a policy.
And, yeah, that's basically
[01:24:58] Unknown:
the gist of it. Well, so I guess the big fear was that, like, you'd get tricked into actually accepting it. Getting those UTXOs?
[01:25:16] Unknown:
You can access coins to any address which you don't like. I mean, it's like, you generate that as it's your response. Like, what is the guarantee that when you receive coins on your wallet that you're they are actually being sent to the private key you have? Right? There's nothing you have to trust your wallet to to the correct thing. So it's onto you as a receipt as a user when you see an address that it is an act that it is the coin where you can spend according to the spending policy that you have defined. And, yeah, that's basically the receiver's responsibility. Like, you when I send you a Bitcoin, you don't get you don't accept Bitcoin Cash. Right?
Because it's yeah. That's yeah. It's not the same coin and, even though maybe the address might be the same. So it's just the same thing when you when someone sends you money at this address, like, at this address, but which has this, like it would be a different address, but let's say to the same public key but has this covenant, you will say, no. I that's a different coin. I don't accept it. And I just want yeah.
[01:26:13] Unknown:
I always thought there's even simpler argument against the kind of caution there and that, you know, the risk of someone, you know, permanently encumbering coins. It appears to me that that's basically like like that doesn't seem any worse than allowing people to burn coins, you know, know, if they want to. The the government could go into Coinbase tomorrow and force them to, like, send, you know, their reserves to, you know, op return outputs. And so I you know, maybe this is a little too simplistic, but I I always thought that, like, you know, being worried that someone else might screw up and make their coins less useful, doesn't doesn't seem to apply when we allow people to burn their coins outright.
[01:26:49] Unknown:
Well, I guess there is one difference, which I don't think is a strong argument, but it is a difference nonetheless, which is that it's more like creating a dust out where the output is there. It has to go into u tp excels app, but now it's useless because you you created this confidence. And I guess I could imagine, like, I, like, I guess you could use this sort of as a colored coin mechanism, right, where you create this this covenant where any coin that is encumbered by this covenant is a coin, is a rare pepper or something, whatever. And then these become worthless, and now these UTXOs just sit there in the in the Bitcoin blockchain.
[01:27:27] Unknown:
Sure. I guess that's that's the worst case scenario I can think of. Yeah. That's the But then the risk profile is the same. Right? The government the US government going to Coinbase tomorrow and force them to convert all of their, like, cold squirted to dust if they wanted to. Like, we can't stop that. That that risk already exists.
[01:27:42] Unknown:
Yeah. But that would be that would be sort of an attack. Right? What I'm describing could happen naturally.
[01:27:47] Unknown:
Okay. Yeah. Alright. Yeah. Fair.
[01:27:51] Unknown:
Yeah. I think that's, like, completely allowed too. Like, that's, if you are going into government by the nature of Bitcoin when you receive something, it is your responsibility to check that it is according to the policy that you accept. And if you accept, like, these colored or covenant or RarePay quarter coins, it's on to you that you chose this thing. Right?
[01:28:11] Unknown:
Yeah. Yeah. I don't even think it's a strong argument, but I I'm just pointing out the difference.
[01:28:17] Unknown:
Yeah. So, basically, I think that this is what we should, like, aim towards. And, yeah, and maybe, like, if there is more like, AG had a proposal where he like, check time lock update verify or, for example, TX. These are more towards recursive covenants, and Jeremy's solution is designed more towards explicitly forbidding this, which, like, Yeah. I think if this is a problem where, like, people just don't want covenants, like, we should discuss it right now and try to address this. And maybe if we are going to have a covenant upgrade, like, maybe this can beat us instead.
[01:29:01] Unknown:
And Yeah. Yeah. That's interesting. So so one other thing, Sanket, that, I was wondering about. So, I mean, I don't know. Yeah. Like like, you know, I mentioned simplicity. I know it was, like, I mean, I would expect it, but I I was told by Adam back at least that it was gonna come out, at the end of last year. And, obviously, you know, I'm not surprised that didn't happen. But, I'm sort of wondering about the progress. I'm wondering if you're still, like, actively involved with Symplicity at the moment because I know you've kind of turned your attention towards these, these new opcos that are added into, liquid.
And, yeah, I'm also just sort of curious that whether your experience with simplicity thus far has sort of colored your opinion on confidence in general.
[01:29:48] Unknown:
Yes. So, first question is I I have been working on simplicity again, like that. I was working on, like, mini script stuff and, like, mostly mini script stuff now. Side news, we have, PR to Bitcoin Core, which by the roster and, like, have been helping to do that. And there was some progress on, like, on Peter's internal report. So I was let's see with some part of that and some part of, like, elements descriptor works. But, regardless, now I've been now I'm back on, like, simplicity track. And what is the status? So, so the language in itself is ready. You can program with it. There is no change to the spec. But what, like, what is being worked on right now is the reason it was delayed was primarily because of, like, adding support for Taproot introspection for and this is particularly simplicity is, like, is itself at this core simplicity, and then you have extensions to for example, if for tomorrow we want to modify it for Bitcoin, we would have, like, a Bitcoin extension. Right now, we have an elements extension, and there we want to have support for, like, introspecting different, like, range proofs, projection proofs, and, so so the work is due along those, like, on those lines. And there is some, like, denial of service, calculations. Those need, like, those need to be finalized.
But, if we want, like, we can, like, deploy it, well, it's just like these things are it's just like when do you call it, like, this will be an ongoing work, and it would be, like, when do you call it, 1.0 whatever, like, 0.1 or whatever, like and then just take these other basic features which we want to the the major problem is would not be simplicity. Simplicity would be something like a like a super back end. It's like assembly. It would be around 2 links so that people can actually use that. And that is what I will be trying to work towards the next 2, 3 months at least to, yeah. And I cannot, like, cannot assure a timeline with
[01:32:03] Unknown:
No. No. I I like I said, like, I always kept going the first time already. So I I I and I don't wanna put you on a spot to to make up a number here. 2 weeks.
[01:32:12] Unknown:
Yeah. Yeah. Yeah. 18 months is staying in the Bitcoin.
[01:32:18] Unknown:
So is the tooling also related to, like like, creating jets and stuff? And maybe you wanna kind of explain the concept of jets at a high level.
[01:32:26] Unknown:
Okay. So yeah. So but, simplicity, simplicity is like, you know, raw assembly where you just have native instructions for, like, here's how you make a pair, here is how you have a number, here is how you pick first thing from it, here is how you compose 2 things. And with these basic, like, terms you build on complicated things like Shardoo 56, signature algorithms, or, transaction introspection, for example, and all these So doing these operations natively on, like, simplicity bit machine, which is like an abstract, like, an abstract machine on which simplicity program will execute. Kind of like analogous to Bitcoin interpreter.
You would, where you would, like, execute these, these programs. And completely executing, this, like, program which computes shadow 56 or Schnorr signature verification is expensive. Like, it takes 6 minutes to verify Schnorr signatures, which is, like, not acceptable at all, for example, like, in raw simplicity. That's because you you do these operations at, like, super, like, bit level, but, like, just boiling down to the core simplicity terms. So what you can do here, otherwise is, like, have sort of what we call as jets. The jets are intermediate c code, which would be like, you know, SNAR, SECP, SNAR, signature, verify.
And those were called the c code, but those are written in a subset of c language, which is, like, which you can formally verify and, which you can have, like, which you can have a spec for it, and you can see that those spec actually, like, matches the code, which you wanted to execute. And with that JET, whenever you see, like, whenever you see something which tells you that this is you might want to execute, see, like, a Merkle root term, let's say, to be abstract. Whenever you see some root some Merkle root term, instead of doing all this raw computation, what you do is you just substitute this in place of the c code, which you have now formally verified against the spec which you have. That the c code would produce identical outputs for all possible inputs, against the code which you have spec'd out in raw simplicity. Then you can just substitute that, and then you can use that. So that brings us, like, the efficiency and so that simplicity is actually usable in practice.
And so what Ruben was mentioning is when you have these jets, you want to define more and more sort of jets so that, things are programmers can do more interesting things with, like, with script. For example, we have jets which allow you to do all the elliptical operations, like, efficiently. It allows you to do all the field operations, all the arithmetic operations, manipulations and amounts, like confidential transaction stuff, verification, like introspect and transaction outputs, and so on. So all these stuff all these things, if you try implement and draw simplicity, those would be expensive. And with Jet, you kind of, cheat, but, like, you verifiably cheat, I guess. Yeah. And then you and then you know that the outputs would be the same. So and these jets would always be an ongoing work, like, based on demand.
For example, if we have, like, I don't know, 10 more people, experienced people, or this we could, like, have, like, checks for SNARK verification. And you could do SNARK verification and, like, start verification and simplicity, for example.
[01:36:24] Unknown:
And Yeah. So it it's it's sort of like adding a new opcode, but the new opcode that you're adding like like in Bitcoin terms. Right? The new opcode that you're adding is something you could have already done, but you would have needed a very long script for it. And now it's it's an opcode. Now it's just one opcode. Yeah. And you can show that those 2 are equivalent. That's Yeah. So, yeah, so is that is that what you were working on when you're saying you're working on tooling? Is that the jets that you're working on, or is that something else? Is something where, like, even if I give you simplicity,
[01:36:56] Unknown:
like so it's analogous to how miniscript is for Bitcoin script. Even if you have Bitcoin script today, like, to do anything with it, you it's really hard to do. Like, with for example, if you look at what Shashak has done, like, where you have, like, min.sc, that is more. That is that is what tooling would be, like, which allows a programmer who is experienced with, like, writing computer programs to actually, like, write simplicity in terms of, like, languages, there are tools they're familiar with, like, JavaScript like syntax, for example, which win.sc has, where you can write mini script or, for example, mini script policy, where you don't really need to write, like, raw Bitcoin script where you are going to definitely make some errors and trying to reason about those things. So as these tools allow, like, other developers to actually use those things just, it's like with simplicity, like, you can't it would be bad because even if even when I am, like, sort of experienced with it, it is hard for me to write simplicity programs natively.
Rasa does that. He has some Haskell code to, like, do something about having people, experience Haskell and, like, Ethereum proving language just to program write a smart contract in some place today is a big ask. But what we need is more sort of general purpose command line tools which are still, yeah, useful, which, which would, like, bridge the gap between, like, normal, like, normal programmers who have experience and write them writing simplicity directly.
[01:38:34] Unknown:
Oh, yeah. Well, yeah, that that satisfies my, my curiosity. So so maybe to to kind of turn into a different leaf here, Mario, are are you still with us? Yeah. I'm here. So maybe it would be, like, I I feel like we sort of, like, jumped into this, and we didn't really, like, explain how we all know each other. And I thought maybe you could, like, sort of put a personal spin on it. Yeah. Yeah. I think that that would be appropriate too because, like like, we're we're all talking here, and we were introduced, but we're sort of like, what is the relationship? Like, why, like, why do I know Mario and and Sunken and Who the fuck are you guys?
[01:39:11] Unknown:
Yeah. That's a that's a great question. I mean, to be honest, this is, you yeah. You guys will understand why we we thought it was important for Ruben to join here. I, I I I guess we're off air, and I mentioned this originally, but this is very much kind of a a sole Bitcoin meetup reunion going on here. The the 4 of us, that is, myself, Calvin, Sankep, and Reuben all lived in Seoul at overlapping periods of time. And, Rubin started the bit the Bitcoin meetup in Seoul back in when did you start it? 2013 or something like that? 24th. February 2014. February 2014.
And, and so Reuben had this small but dedicated, meetup going for a few years. And then, I believe it was May 20 16 when I first rolled up and hooked right away. And Sanket, I believe, showed up a few months afterwards, and then it would have been, it would have been Calvin the year afterwards. And, and so I'd be a lot of I'm sure we'll all agree that, like, Rubin has taught each of us a tremendous amount about Bitcoin and is very much like a lot of the the kind of efforts that, that we've we've made in the space. So he he definitely gets partial credit at least for a lot of it. But, yeah. And, like, so we ended up kind of leaving over the course of, I don't know, between 2018 and 2020. You know, I moved back to Canada in 2018 when I joined Blockstream, and then, Sanket, I believe, was about a year after that.
Ruben, was forced to leave, due to COVID, and, Calvin is holding down the fort back home. But this is the first time the 4 of us have actually, chatted together in in about, it would have been it's coming up on 4 years now. And, and so, yeah, this is this is kind of exciting, exciting time. So, yeah, thanks so much, like, Vivek and Matt, for bringing us together again for this. We, we are gonna get to see each other in person again soon if one's going to advancing Bitcoin. Ruben and, and Sanket, I believe we're speaking there, and, I'll be attending. Calvin, I think you're going.
If you can the government will let you. Yeah?
[01:41:20] Unknown:
No. The, yeah. Good government will let me. I will be. Sweet.
[01:41:26] Unknown:
But yeah. So this is, this is part of the reason why we kind of, I I'm I'm guessing this is more guests that you guys usually have on at the time here. Yeah?
[01:41:34] Unknown:
Yeah. It's definitely on our higher end, but, this has been a great conversation. I'm glad we did it.
[01:41:40] Unknown:
We're all graduates of the Rubin Bitcoin Academy?
[01:41:44] Unknown:
Yeah. Absolutely. Yeah. Yeah. Yeah.
[01:41:48] Unknown:
I think we've had this much before. We had, like, I think when you had the nodes on The battle of the nodes. Yeah. There's a lot of guys.
[01:41:57] Unknown:
Surprisingly civil.
[01:42:00] Unknown:
Well, it's it's because one of them didn't show up. Yeah. Exactly. But they were invited, and that's the important part. Yeah. Yeah. I I you guys didn't, like, introduce yourselves. Like, your title is either, like, I mean, Sanket, like, you should definitely say how you started at Blockstream and everything. It's a cool story.
[01:42:22] Unknown:
Oh, sure. So, yeah, I thought I started Bitcoin first. That that's more, like, interesting. It was like, yeah. I was not expecting, I guess my first, like, first two weeks in Korea, and I was, like, was a foreigner there. And if you are in Korea and particularly, I was, like, slightly outskirts of Seoul, so there is, like, yeah, there's no English. Like, it's hard to communicate, with the locals, and this is the first thing. Actually, the first, like, non Korean thing, English thing, which I found out. I was like, oh, this looks cool. And I knew what Bitcoin was, but I never really knew, like, anything else. I just knew there is a thing. And surprisingly, this turned out to be a technical meetup where, like, like, where I could discuss technical things. And I was also interested in computer science cryptography, and Reuben had an excellent, like, understanding of Bitcoin.
So one thing led to another, and I was more regular there.
[01:43:23] Unknown:
And You you fit in pretty well. I remember I remember being surprised you traveled, like, 2 and a half hours to the meet ups each day. Yeah. I was yeah. I used to travel, like, 1 and a half hours.
[01:43:33] Unknown:
Yeah. But it it was definitely, like, it was definitely worth everything. Yeah. Every single minute. Yeah. So, yeah, I tried to end there for, like, year and a half, like, while I was in Korea. And, yeah, afterwards, then I, like, I decided to do more sort of like, I had interest in cryptography and Bitcoin, so I applied to, like, universities for studying more of the stuff. And I got, like, I got a good funding position at University of Illinois where I didn't have to, like, basically pay anything. So I was like, cool. This looks like a good opportunity. And I started working with, my professor, like, Andrew Miller, who is kinda involved in Zcash.
Was, at least, not anymore. And, yeah, he he's also, like, he he knew Peter Adam and, like, he also works on core cryptography. So he knew Andrew, Peter Adam and he they, he referred to me there, and that's where I started working at internals and Blockstream with Peter and Andrew. Like, awesome. Like, probably the best 3 months of my life where you get to, like, work with Peter and discuss Bitcoin all in, like, my understanding of Bitcoin, like, grew exponentially in those 3 months. And that's where I was, like, hooked into all of these things. And as soon as I graduated, I joined DocStream, and I've been working on, mini script, Simplicity, 2 main projects right now.
[01:45:06] Unknown:
Yeah.
[01:45:08] Unknown:
Yeah. Calvin, go. Alright. Oh oh, okay. I'm going. Yeah. My story is not that different from socket's in the sense that, hey, I found this meetup. I wasn't looking for a English speaking meetup. I was more or less looking for something to get because I was interested in Ethereum.
[01:45:33] Unknown:
It's my first memory, Calvin.
[01:45:37] Unknown:
That's what I remember.
[01:45:39] Unknown:
And my excuse for that is because, when I looked up, like, all these, like, 20 2017, you'll you'll look up Google. It's like, hey. I wanna know more about, like, this blockchain thing. And the first thing that comes up is, like, oh, yeah. Bitcoin's really old, and, you need to look at Ethereum. I was like, oh, okay. I'll look at it. And but, I was sort of looking to get my fill on more technical stuff, and I think it was one of the very few meet ups that had a monthly thing going on, and that that said in the description that it's a technical thing. I was like, oh, yeah. This this seems perfect for me. And that's why I first went. And, yeah, stayed for much, much longer than all the other Mario and, sockets, And, yeah, ended up doing a lot of, co organizing of the Solbitcore meetup.
And, what I'm doing now is I'm just on a on a grads on BitMax to work on NutriX. So and that was started because Taj in 2019 was coming to what works was visiting Korea for a conference, and we were doing, like, a sole bitcoin this conference people. And I remember, we had Taj and then we had, we had the the we we had the Mimble, Wimble developer. I forget his name.
[01:47:08] Unknown:
Hashmap. That was the nickname.
[01:47:10] Unknown:
Hashmap. There we go. Yeah. And he talked about, like, the direction of, like, mimble, mimble or or or what's the coin? A grin.
[01:47:18] Unknown:
And, yeah, Taj was talking about Nobody even remembers what that is anymore.
[01:47:23] Unknown:
Oh.
[01:47:24] Unknown:
Did you remember Chase Mayer being canceled for a different coin?
[01:47:31] Unknown:
So yeah. Anyhow, yep. Taz explained you, Shrek. So and I felt really I felt sort of bad because he was like, oh, yeah. And, like, I'm just working on this alone. If anyone wants to actually contribute, it'd be great. And then, I was like, okay. Well, I'll take a look at it. And I I started submitting PRs. He took he he he kept he kept taking them. I was like, really? Like, my my code? You're taking my code? And, you know, it just kept going, and here I am now. Yeah. That's my story. Mario is next.
[01:48:08] Unknown:
Oh, yeah. Well, I'm about to reveal. I'm definitely the least technical of the bunch here. I, yeah, I, did my best to learn cryptography and coding while I was at the meetup, but I'm I I much prefer kind of working on the communications end of things. I enjoy writing, interacting, and speaking with people a lot more. And, I don't have a technical background. These guys do. So, I, but I did manage to worm my way into Blockstream, in a customer support job. So I was there for about 3 years. So I did customer support, and I I ended up doing a lot of, a lot of, kind kind of just odds and ends around the marketing team. I was working under, Samson Moe for most of that time. And, about 1 year ago, I moved over to, Leddon, Leddon dot io, where I'm currently working as a director of community. So I work on a lot of growth stuff and and, kind of, organic marketing type things and comms, and it's fun. I get to be, like, the, kind of internal Bitcoin consultant to the company, which is a lot of fun, And, do things like, planning for the upcoming Miami conference.
And, yeah. So that's what I'm doing these days.
[01:49:12] Unknown:
Let's fucking go.
[01:49:15] Unknown:
Yeah. So, for me, it's, well, I mean, you've already heard a little bit about, like, how I ran the meetup. That was also my way of learning about Bitcoin when I first started the meetup. I I barely knew anything. I just wanted to meet other people. But then as things went on, you know, I got super interested in the technology, and I guess I just sort of enjoy teaching others. So that sort of, like, coincided and, it, you know, became this really nice group of, now close friends. And, yeah, since then, I've sort of, you know, just by learning more and getting better and better, Now I'm working on sort of these layer 2 side chaining protocols. I'm sort of, I've become the side chain guy. I have 3 sidechains, soft chains, state chains, space chains, a lot of them. If you wanna know more about that, you can check out tiny.cc/sompson that has links to a lot of my work. Don't forget shroom chains. It's an important one. Shroom chains. Yeah. That's that's the one I work on with Mario for when we were They intentionally all start with us, or is it just a coincidence? No. That's it. It's it's a bit of both. Yeah. It's Ruben and those will get there we'll get very upset with him if the next one doesn't start with s's. Len Somsen chain.
Oh. Yeah. Exactly. Now, it's, it's it's grown into a thing. And, you know, as a joke, I'm also, I call myself a Bitcoin sorcerer, which is also an s. So there there you go. Big ass guy over here. Yeah. And, also, you know, together with Mario, which, I think Mario already mentioned earlier, but, we do the, Unhashed podcast. So that's maybe something also people might wanna check out where it's, Mario, me, and, Colin and Brian. And, I don't know if you guys listen, but it's it's a it's a fun show. It's a great show. I was telling you earlier that the
[01:50:59] Unknown:
Yeah. That, theme song always gets stuck in my head.
[01:51:03] Unknown:
Oh, yeah. Yeah. We, definitely have the theme, so everybody I think that's the most common common version of feedback we get. So the theme song, you you said you
[01:51:11] Unknown:
like, that wasn't a friend who made that? No. You paid? Colin
[01:51:16] Unknown:
Colin Colin, one of our cohosts, found a guy, who made that who made a song for us, and it cost us $40, and it's hilarious. Yeah. I was gonna dox the cost, but since you did, I didn't realize that. I it was it's like a Fiverr theme song then. I thought it was, like, a cousin or something. I think he said he he found it. He found some dude, I think, that's trying to set a record of being the person who has written the most songs ever. And so I think as, like, down to a fucking t and, and and we also sent it back and had him correct some lyrics because we didn't like the first version because it said, like, it said, like, you know, we trust but verify. We're like, no. No. No. It's gonna be don't trust but verify. Like, it all did some other lyrics. So the blind. That we, no. I I was worth on that. I was mad impressed.
Yeah. But now we're Ruben and I recorded an episode earlier today, and, actually, it's good. When it's, when the old brothers are missing, Ruben and I go a bit deeper on technical stuff, and it was a lot of fun. We chatted about some BitMixed Research's latest things that that should drop, tomorrow, I think. Awesome. And the TX hash stuff that we discussed today also comes up Right. That's right. At the very least, listen to the first minute so you can hear the theme song, and then you can turn it off. Yeah. You gotta listen to the theme song, Trix.
[01:52:27] Unknown:
Vivek doesn't need an introduction. He's been on the show many times, and he'll be on, many times in the future. I hope all of these people I've changed. I'm not a sales bro anymore. I'm a finance bro. I'll tell you, I've never done introductions at 2 hours in at the end of the show. Might make that might make that a trend in the future.
[01:52:47] Unknown:
I think it's sort of good actually because that's where you start caring about the guest. Before, you're like, why should I care about these guys? And then you hear them talking to to say interesting things, and that's like, oh, I wonder who these guys are. Or it's like movie credits. You just get up and leave.
[01:53:01] Unknown:
Yeah. Yeah.
[01:53:02] Unknown:
If he knows the credits, that that's fine too. No. It's like movie credits. Everyone always stays to watch to see if there's a big, teaser at the end. I always have a teaser at the end. They always stay. The ride or die freaks stay with me even if the music videos are horrible sometimes. Before we wrap up, I know, we're, like, 3 minutes past our self imposed deadline. There's 2 things I wanted to just bring up real quickly. The first is, consider using bisque. I just feel like it's a good moment for a Bisk chill. You don't need to provide KYC information to a regulated entity. You can buy and sell Bitcoin p to p without centralized, services in between you.
And then the other thing is, is Cypherpunk pay on any of your guys' radar? Never heard of it. So Cypherpunk Pay is a lightweight alternative, to BTC pay server that I feel like doesn't get enough love. So I'm I've spoken to the freaks about it, but I guess I'm showing it to you guys now. What's really cool about it is you don't have to use your own node. You don't have to run a full node. It uses it goes through Tor and hits random block explorers to check addresses.
[01:54:26] Unknown:
I see.
[01:54:27] Unknown:
Can you run your own full node? You can use your own node if you want to, but you don't have to. And they just added lightning support, which is why I bring it up. But, it's pretty fucking cool. I mean, it's super lightweight, and, obviously, you have, you know, some validation trade offs there, verification trade offs. But on the privacy side, it seems pretty well thought out. Like, you don't have the privacy trade off of not using your own node.
[01:54:55] Unknown:
This is the alpha you stay for. Like, Matt, you've been dropping all these new lightweight things, like, I didn't know about Fulcrum.
[01:55:02] Unknown:
That was, pretty cool, and I thought it's fun to know. By BSV. Yeah. It's worse than a b Casher. Well, I mean, check that out. I think it's I think it's cypherpunkpay.org. You guys should check it out. I'm curious on your opinion. You can give that to us at a later date.
[01:55:20] Unknown:
So one thing I'm wondering about is, like, the privacy. Right? Because, like okay. So if you are checking block explorers, then cert like, you must be leaking your your information. Like, I can't imagine that that's not the case. But But No. Maybe there's something there I'm missing. But The whole point is that it, like, hits it hits different block explorers for different
[01:55:39] Unknown:
addresses. So it's using a little bit of information for each of them. And it's using different, onion circuits for everyone. I see. I see. Okay. It's pretty fun. Cypherpunkpay.org. Check it out for me. I mean, I've checked it out, but I'm curious on your opinions. So, I mean, you can get back to us on a later date for that. Yeah. It seems reasonable at least. Yeah. It's a pretty cool concept. I like I think it's clever. I like these clever, I don't know, options. Options are good for Bitcoiners. So, anyway, guys, it's been 2 hours. I appreciate your time. I don't wanna keep you too long. I like to end it with final thoughts, so let's do that. Final thoughts. Sank it.
[01:56:26] Unknown:
No. It's great to be here and discuss about, you know, validating notes and yes. Basically, I discussed with all my peers where we were in person 4 years ago at at, like, Tom and Tom's shop, but now it's online. But, yeah, it's it was really cool discussing all those different things again. And it did tangent a bit to simplicity and CPV, but, yeah, I enjoyed it. Yep.
[01:56:52] Unknown:
Awesome. Thank you. Calvin, final thoughts.
[01:56:56] Unknown:
Yeah. It was also great talking with these guys. It's my first time on, like, any show, any any big boys show. I love it. I took your virginity. I also took Vivint's virginity. So I don't know how I did. Maybe I rambled a little bit. Hopefully, that but okay. I I was hoping to talk about the use cases of Utrechtel, which I which I unfortunately did not get into, but maybe next time.
[01:57:19] Unknown:
We'll, we'll give you a chance on the MS podcast.
[01:57:22] Unknown:
Oh, yeah. We're still gonna have you on as a guest. Yeah. But you can never take his virginity. That already happened.
[01:57:30] Unknown:
I We we actually were thinking about it. We we just discussed it on the on the show saying that, well, we should we should talk talk to Kelvin after the conference. And now now it is virginity's ruined. So It's our chance. We made it too long. We were we were planning for the perfect perfect date.
[01:57:48] Unknown:
Well, this I thought this was beautiful, so I'm very happy about it. You guys just just swept in, and now yeah. Now it's too late. It was all Vivek. Anyway, Mario, final thoughts. You call me a pimp?
[01:57:59] Unknown:
I it's a great chat with you guys. I I don't know what to show what I've already showed, and, yeah. Hopefully,
[01:58:12] Unknown:
Awesome. Ruben, final thoughts.
[01:58:16] Unknown:
Yeah. Same here. It was great to talk with everyone, and I was like, yeah. I was just yeah. I sort of, like, started asking some questions because, like, I knew these guys had interesting interesting things to say. Right? Kelvin with Utrecht, so super interesting. Latsanka is working also super interesting. So, you know, I'm glad I was able to, you know, get those questions in and get the answers that I was curious about, and I'm even more looking forward to seeing them on person than, giving everyone a big hug.
[01:58:43] Unknown:
Awesome. Thank you, Ruben. Vivek, OG Pimp, final thoughts.
[01:58:48] Unknown:
You know, just wheeling and dealing. I'm hoping that, me and you get invited to Unhash sometime, and that's about it. Yeah. I think they owe I think they owe us now.
[01:58:57] Unknown:
Well, if you if you sing the opening theme and we could play for the episode, we we might consider it.
[01:59:03] Unknown:
I Vivek volunteers for that role. I'll get someone on Fiverr here. We could pull it off.
[01:59:08] Unknown:
Anyway, guys Hey, Kyle. Really I appreciate all of you for your time. I appreciate, most of you for your work. This this has been a great conversation. I think it's been, it's been fun. It's been informative. I hope the freaks enjoyed it. Yeah. Thank you very much. And, to all the freaks and to the guests, I usually do not intro our music before we play the outro music. This is a very special this is a very special choice. We like to highlight, Bitcoin rappers and artists, when they put out new tracks. This track is a little bit older. She put it out in 2019, but until yesterday, she was in custody of 96,000 Bitcoin in her cloud storage.
So it feels like a great time to play it. Cheers.
[02:00:09] Unknown:
Never forget weirdest is most original. What? Wrestle cons. Deliver such a better win. Come real far but don't know where I'm heading. Motherfucking crocodile of Wall Street. Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck your message at the beep. Beep. Beep. Beep. Spirit of a revolutionary power of a dictator love to be contrary, but I'm fly like a gator. I've got pilot blood. I'm a real risk taker. Pirate riding the flood. Badass money maker. Grandmother crocodile. Weirder than an x file. Free fire. It's sliver. So sexy when I slither. Sparkle on my little finger. Hell of arousal ear to ear, poised to throw a zinger, playing on their worst feet. Wrestle cons, live for such better win. Come real far but don't know where I'm heading. Motherfucking crocodile of Wall Street.
Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck y'all message at the beep. Beep. Beep. Beep. Russell comes to the name that hot grandma you really wanna bang. Always run the guilt game ever since I was 15. I'm many things. A rapper, an economist, a journalist, a writer, a CEO, and a dirty, dirty, dirty, dirty ho. Better than most writers, creepier than most girls, weirder than most rappers, but I still rock pearls, brassle kong, the Versace better win. Come real far but don't know where I'm heading, motherfucking crocodile of wall street. Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck y'all message at the beep.
[02:02:02] Unknown:
Beep. Beep. Beep. Beep. Beep. Beep. Beep.
[02:02:07] Unknown:
The Versace you better win. Got the bling that win with the Berber and Mike. I'll win every fight. My swag ain't just lit, so we really packed a hit. Bobby fashion's so legit. Pussy bitch is saying stuff about to pop, ain't gonna quit. They say rise a filthy bitch, but they're jealous of my tits, my eyes, my nose muffling. My clothes, these rings, my hoes. Everyone knows I don't fuck with no bros. Unless they're gay. Kids don't count. They're exempt. They're exempt. Russell Khan, the first time she better win. Come real far but don't know where I'm Motherfucking crocodile of Wall Street.
Silver on my fingers and boots on my feet. Always be a goat, not a goddamn sheep. Email me. Fuck y'all message at the beep. Beep. Beep. Beep. Beep. Everyone worries too much about what's proper, but not rouse. No shame. Bad, don't stopper. Blindly following rules is for fools. Instead, I work the edge cases with my tools. Awkward as fuck. Ab shit like a whirling dervish battered duck. This bitch is Turkish. Don't pressure luck. ISIS can't handle them Kurdish. Fuck your Jane Austen Romans. Rather be taken. Attack your army class. Prefer Vietnam over France.
Doing my jerk off dance. Looking like a gay male stripper, but my synesthesia world is even trippier.
[02:03:53] Unknown:
Cheers, freaks. Yes. That's the alleged bid for next attacker. We live in the strangest fucking time, and I have no idea really how that happened or what the fuck is going on, but she made that 3 years after stealing 96,000 Bitcoin from bid for next, allegedly. So, yeah, that happened. Anyway, I'll see you on Thursday for a little recap. I hope you found this conversation great. I'll see you on Tuesday for another sale of dispatch. Also, I think we're gonna do I might we're gonna probably do a dispatch on Thursday morning, me, Tony, and seed signer in person.
So just be on the lookout for that. We're gonna just change it up. We're all in the same place, so it'll just be a fucking fun rip. Anyway, I love you all. Stay on, we'll.
Cryptocurrency as a crowdfunding solution for truckers
Bitcoin Tuesday and Citadel Dispatch
Introduction of guests on Citadel Dispatch
Seizure of Bitcoin from the Bitfinex hack
Discussion on the impact of the Bitfinex seizure
Bitcoin as a solution for fundraising and free speech
Explanation of full nodes, SPV nodes, and bloom filters
Introduction of compact block filters and their privacy benefits
Explanation of UTXO set and its relevance
UTXO set and its purpose
UTXO set and UTXO pruning
UTXO set and UTXO pruning in Bitcoin Core
UTXO set and UTXO pruning in Utreexo
Opinions on CTV and TX hash
Implementing simplicity in a cost-effective way
Adding new opcodes in Bitcoin script
The need for general purpose command line tools for writing simplicity