Latest / TFTC: A Bitcoin Podcast / #671: What's Really in Bitcoin Core Version 30 with Instagibbs
Transcript
- 0:00Got to be spicy, Greg.
- 0:01We meet here on the on the eve of Bitcoin's death, October 9th, 2025.
- 0:08Bitcoin Core version 30.
- 0:10Yeah.
- 0:11Drops tomorrow.
- 0:13Very somber.
- 0:14Very somber.
- 0:16In all seriousness, though, I think a lot of discussion as we were just talking.
- 0:21before we hit record has revolved around obviously this op return debate whether or not the limit
- 0:29should be lifted or not and the potential consequences of doing that maybe we'll touch
- 0:36on that but i think um there hasn't been enough discussion on everything else that's included in
- 0:44bitcoin core version 30 so i wanted to sit down with you and talk about what bitcoin core has
- 0:51been working on with this particular version and i think before we do that for the layman out there
- 0:58maybe we just do like a high level um a high level refresher of what bitcoin core is what
- 1:08what is entailed in um basically releasing um new versions particularly significant versions
- 1:17like version 30 and then we can jump into the nitty-gritty of what's included.
- 1:24Sure. You want me to take the lead on this?
- 1:26Yes, sir.
- 1:27All right. So basically there's a Bitcoin Core software is the reference client, so to speak,
- 1:34where it has majority kind of mind share and running share of the Bitcoin protocol itself.
- 1:40It includes a bunch of different parts, peer-to-peer layer stuff, consensus stuff.
- 1:47A wallet, which people still use, a bunch of other tools and pieces in there.
- 1:55A major release is done every six months.
- 1:58So on a six-month cadence, there's what's called a feature freeze, which is, hey, stop adding new things.
- 2:04We're going to continue just doing bug fixes until this time.
- 2:07There's a branch off, which means, okay, now we have a new fork in the history that will turn into releases that will release binaries based off of this.
- 2:17and then eventually a release, right, with a series of release candidates,
- 2:22which is happening right now, and then eventually a final release.
- 2:25In addition to this, you also have kind of using this forked history
- 2:30that if there's future bugs found, if and when there are future bugs found
- 2:36and issues, the fixes can be applied directly on these forked off histories
- 2:40and do minor releases.
- 2:41So someday I will very highly likely have a 30.1 for various reasons.
- 2:47And this is how that's done. That's done on a per-need basis. So right now, if I understand correctly, there's 20 and 29 minor releases being cut right now for various reasons, bug fixes and improvements.
- 3:02So this can happen throughout this lifecycle. And then eventually, at some point, these major releases or these major branches get marked as end of life, saying basically we won't support this anymore.
- 3:16we won't do any effort to like update maintenance to this make build and make binaries or anything
- 3:21like that and then it kind of gets stale and so that's kind of the life cycle yeah yeah and
- 3:28taking even further step back just on the concept of implementations right you have bitcoin
- 3:34or consensus and then implementations like core knots the bitcoin uh ptcd they sort of
- 3:43have their own implementations that build software that is within consensus but does things
- 3:49a little differently correct yeah so some are complete implementations so btcd is a
- 3:55good example that's been around a long time um it has it's programmed in go the golang and it has
- 4:03a complete implementation of the consensus software so when you get a string of bytes
- 4:08in the form of a blockchain, it needs to come out to the same exact answer as Bitcoin D or any other
- 4:14implementation. The re-implementation raises the chance that there is mismatches, but those can
- 4:23hopefully be ironed out and debugged and fixed over time. But there's definitely always, it's a
- 4:31very demanding problem, making sure they're in lockstep of consensus. And even between Bitcoin
- 4:36versions, there's been historical problems with that, where implementation details, like
- 4:43how the database is stored, causes forks in the future, right?
- 4:48With unforeseen events.
- 4:51It's been a long time since it's happened, but it's always possible with updates or not
- 4:56updating too.
- 4:58Yeah.
- 4:59And where would you say we are in terms of the path of Bitcoin Core?
- 5:06I remember my first BitDevs in New York in 2015.
- 5:14Russ Janofsky basically presented on SegWit.
- 5:17And obviously we had SegWit getting implemented.
- 5:20But I think one thing over the year, over the last 12 years,
- 5:24has been made clear to me is that Satoshi, when he launched Bitcoin,
- 5:27was a bit of a spaghetti code base.
- 5:29And there's been a lot of work to sort of separate things
- 5:33within that code base, particularly, or not particularly, but one thing being like the
- 5:38wallet and the GUI.
- 5:40And it feels like the last decade of Bitcoin core development specifically has been trying
- 5:46to get the implementation to a point where things are separated appropriately, more modular,
- 5:54and you can begin to do things that make it more complex, make it easier to build more
- 6:02complex applications on top of the Bitcoin protocol layer.
- 6:07Yeah, there's definitely, that's one of the major things happening is historically splitting
- 6:13out these functionalities, getting them into their own containers that can be tested separately.
- 6:19So focusing on like the charlatan he's been working on, he's been continuing carrying this
- 6:25torch on the LibBitcoin kernel.
- 6:27So being able to separate the consensus parts out of the code base completely exposes an API so people can reuse this either in an alternative implementation or just for tooling.
- 6:41It's not exactly, you know, a lot of this work is not glamorous in that there's cost benefits to be weighed.
- 6:49the cost is here is that when you're refactoring these very critical parts of the code base,
- 6:55most of the consensus, not wallet.
- 6:57I mean, wallet's important in its own way, but for the consensus parts,
- 7:01making sure that when you're changing this code to make it modular,
- 7:04you're not also changing the behavior, which is very difficult.
- 7:07So as you said, Satoshi started with main.cpp, one big file that has wallet, consensus, peer-to-peer.
- 7:13It just says everything just jumbled in it.
- 7:15And it's been a long process of carefully teasing these pieces out, which is continuing today.
- 7:21One big project is the inter-process communication interface.
- 7:27So there's this project basically split up to different binaries.
- 7:30So you can have your Bitcoin node communicate with your Bitcoin wallet over interface, different binaries.
- 7:36Or in the future, you could have the peer-to-peer parts handled only by a separate binary or different ideas like that.
- 7:44but this is like future roadmap stuff yeah well sticking on current roadmap stuff like beyond
- 7:53op return which is obviously the most talked about feature in core version 30 i'm looking at
- 7:59my notes now looks like there's going to be removal of checkpoint support and depreciation
- 8:04of checkpoints uh changes to data carrier size behavior and deprecation plan support for multiple
- 8:13op return outputs per transaction p2p relay mempool adjustments rate limiting and denial
- 8:18services protections refactoring internal cleanup infrastructure so there's much beyond
- 8:23yeah up return up return as well yeah let's start on checkpoints because i think that right
- 8:31has been uh not very controversial but i think people have very uh depending on who you talk to
- 8:35um very uh specific views on checkpoints for the good or the bad is removing them good or bad
- 8:42Yeah. So checkpoints historically are an anti-diagnostic service mechanism. So back in the day, if you spun up a node and you didn't have these checkpoints, like let's say a few versions back, maybe 10 versions back, a peer could connect to you and then hand you a bunch of data that they cheaply made using, maybe they have like one ASIC, right?
- 9:07of one miner and they make a long block header chain,
- 9:11a very weak difficulty, and they intercept you right when you're getting connected
- 9:15to the network and just feeds you these headers.
- 9:19These headers, based on the current architecture at the time, are just
- 9:23written to disk. And so these are 80 bytes each. And so if you do enough, you're essentially
- 9:27just writing 80 bytes of data over and over and over to disk.
- 9:32And this is called a header disk fill attack.
- 9:35Like these checkpoints were basically saying, OK, up until this point, we're not going to accept any forks in the blockchain history.
- 9:43It must get to this point. And then it continues doing validation after that.
- 9:48But this point that they picked is basically like, you know, it's, oh, it would take 10 percent of the network's mining power, yada, yada, long time to make a header chain this long.
- 9:59therefore um it makes the attack that much harder but that was like the original motivation
- 10:05because it was a real attack and correct me if i'm wrong but wasn't there
- 10:11aren't the way the checkpoints are sort of like verified or um decide upon that you have like a
- 10:18number of developers basically just sign like this is the right checkpoint this is the right yeah
- 10:22exactly add a new checkpoint all you need to do well let's see for check i haven't thought
- 10:29of us in a while, but you want to make sure that reorg will not happen beyond that point.
- 10:35So it has to be very deep, right?
- 10:37It's qualitatively different than another feature called assume valid.
- 10:42So this one, you have to say that we will never fork this one out.
- 10:45And so it's kind of labor intensive to like philosophically argue that is 300,000 blocks,
- 10:51correct?
- 10:52400,000, things like that.
- 10:53And it's because you really are saying like, I will not devorge from this history.
- 10:58But yes.
- 10:59ostensibly you get into a GitHub pull request.
- 11:04Somebody says, I'm updating it to this height.
- 11:06So 500,000 or something like that.
- 11:09This is the hash and everyone sits there and makes sure that, yeah,
- 11:12there's been 500,000 blocks on top of it since then.
- 11:16And this hash matches.
- 11:18That would be a verification.
- 11:20Yeah.
- 11:20And how's that?
- 11:22What's being replaced?
- 11:23Is that headers precinct or something like that?
- 11:26Exactly.
- 11:27So there's this long, this idea,
- 11:29this is years and years of an idea where you could say, okay,
- 11:32what if we have a, when we're first,
- 11:34when you're freshly syncing with the network,
- 11:36you just have a broad idea of like how many,
- 11:40how much proof of work you should be expecting.
- 11:42So you connect to the network and say, I'm expecting, you know,
- 11:45this many X, I can't even say the hashes or whatever. Right.
- 11:50And then you get this, you get fed this header chain,
- 11:54but instead of committing to disk, you just walk the whole chain,
- 11:57the whole way until you hit that minimum proof of work requirement that you've internally
- 12:02internalized. Once you hit it, you say, okay, that looks good. I've gotten all this way and I've only
- 12:07stored one header at a time in memory. Now that I've gotten this way, I'm going to do it backwards
- 12:12again. You just sync it twice. So you sync the headers once to verify that your disk is not going
- 12:17to be filled. And then you sync again to actually write to disk. And this, along with a bunch of
- 12:23extra testing work allows you to remove checkpoints entirely from the code base.
- 12:29Does that have any IBD trade-offs in terms of time?
- 12:35Yeah, I think with the current implementation, if you have a flappy internet connection,
- 12:40which I had once when I was testing, I was testing by flapping the internet connection.
- 12:43During the precinct, before you've finished the first pass, if it gets interrupted,
- 12:50like your peer drops for whatever reason, it has to restart.
- 12:53So that shouldn't happen.
- 12:55I haven't seen that since I was testing it, but that's one constraint there.
- 12:59So you need to be able to download the header chain once.
- 13:01As soon as that's done, it goes like historical.
- 13:05And there are ways of improving this, but I think it's one of those engineering complexity tradeoff things, which doesn't seem worth it.
- 13:15Yeah.
- 13:15And so I guess, again, stepping back, broadly speaking, how profound would you say that this major version releases in terms of improvement of the node software itself from an efficiency standpoint?
- 13:33Are you talking about initial block download or just this?
- 13:36IBD, you can even talk like peer-to-peer level.
- 13:40um, uh, obviously, uh, or transactions going to be, um, matriculated through the,
- 13:49the peer to peer network faster. Sure. So on the, the checkpoints front,
- 13:55front that doesn't improve efficiency at all. That's just a philosophical, uh, change to make
- 14:01it clear that the core devs are not in charge of what your chain is. Um, but from a performance
- 14:08perspective, there's been a bunch of work done by Lawrence who has focused on, especially on the
- 14:13lower end of hardware, for initial block download. I haven't paid very close attention to that,
- 14:18but I know it's happening. The other kind of transaction robustness, right, for the peer-to-peer
- 14:28network, there's been a bunch of work both on, there's this thing called the transaction orphanage
- 14:35and also package relay.
- 14:38So I'll start with the orphanage part
- 14:40where if you turn your node on for the first time
- 14:44and your mempool is empty,
- 14:47people will start telling you about transactions
- 14:48which have dependencies in the mempool itself,
- 14:52but you don't have them.
- 14:53So for example, you get a second generation transaction
- 14:57that depends on a first.
- 15:00Right now prior to 30 this process is a little flaky and can be interrupted by direct peers who are either malicious or malfunctioning
- 15:12So 30.0 has a significant improvement to that.
- 15:16It was spearheaded by Gloria, Peter, and others to make this robust to single peers being malicious or even end peers being malicious.
- 15:25So as long as you have one honest peer, you can make this kind of transaction catch up in the mempool.
- 15:31is this for like child pays for parent and RBF only or?
- 15:36No, not only. So this, it is, it was aimed at it.
- 15:41So it was aimed at the kind of one parent,
- 15:43one child package relay project,
- 15:46which was deployed in full on 28.0.
- 15:50But the existing implementation had this weakness where if a single peer
- 15:55connects to you,
- 15:55they can throw garbage at you and basically empty out this, this cache.
- 16:00Right. So basically it's,
- 16:01the way of connecting the dots in your mempool
- 16:05is to get disrupted by a single peer.
- 16:08And the new implementation of what's called the orphanage,
- 16:12finding your parent, this is robust,
- 16:14even if you have N-1 connections being attackers.
- 16:17So basically the one honest peer can take up a slot
- 16:22and make honest CPFPs and package relay attempts
- 16:26at least one at a time.
- 16:30So...
- 16:31I'm trying to visualize that. You have, let's say, out of the box, eight peers, seven of them are malicious.
- 16:40Internet is just.
- 16:42So they're feeding you orphan garbage, so stuff they don't intend to ever fix, right?
- 16:47So really, it's just stuff that doesn't cost them anything.
- 16:50They're just handing you data to look at and hold.
- 16:52But basically, instead of one big global bucket, which it was before, there's like a global bucket.
- 16:57So one peer could just go in and switch out the buckets of contents you have.
- 17:01end buckets and these end buckets can be shared it uses some optimistic pathing like optimistic
- 17:08assumptions about using the whole space by one peer but under kind of these loads where either
- 17:14things are very busy or the peers being malicious then we protect at least uh we have a protections
- 17:21slots for each peer essentially to make sure that economically valid transactions are propagated
- 17:27yeah i'm just trying to think how would uh how does the node software determine that the
- 17:33one peer providing you good data is actually the right data so it's not scoring or anything like
- 17:40that uh it's just saying i think the if i remember right it's saying a maximum transaction package
- 17:47can be like this big like 101 kilovitual bytes it says i'll protect that much per peer
- 17:53so whether or not the peer is malicious or not doesn't affect this number it's just something
- 17:59you allocate for that peer so it doesn't it doesn't take like historical note of who's
- 18:05given you useful things it just allocates that yeah that makes a lot of sense it's funny because
- 18:13uh many people i mean as back when we're hitting we hit all-time highs earlier this week we're at
- 18:21$2.5 trillion market cap in most of the world.
- 18:25It's focused on Bitcoin, just views it as this digital
- 18:29capital good, which it certainly is. But I think
- 18:33getting into the nitty gritty of policies like this,
- 18:37or not even policies, but optimizations like this
- 18:41really reminds me, at least in the Bitcoin
- 18:45protocol, is extremely complex
- 18:49And a lot of people are putting hundreds of millions, billions of dollars even into this asset or completely unaware of the sort of optimizations that you guys are working on.
- 19:02And these kind of things don't require coordination with other groups.
- 19:07So there's no new like peer to peer messages, no new format here.
- 19:11So this is just piggybacking up things which have existed for many years, which helps with velocity for moving forward with things, but also limits what it can possibly do.
- 19:23Larger changes might require more changes from a higher level, but then that requires more coordination with other projects, like B2CD as an example.
- 19:33yeah and on that note like how how's that coordination improving or deprecating over
- 19:40time is it getting harder to coordinate or well like i said i think most things are happening
- 19:48within within the colored lines so in the lines for coloring which it just improves velocity but
- 19:55But yeah, like there are no commonly used from scratch implementations of Bitcoin today that are not Bitcoin core, right?
- 20:08So you have Bitcoin knots, which is a fork of Bitcoin core, but it has per version that has all the same features pretty much with extra things added on.
- 20:17So that doesn't take coordination. But for example, BTCD is a few versions behind on things like, as far as I know, they don't implement the way of sharing transactions in the network using witness transaction ID.
- 20:32So WTXID gossip. So this can impact decisions that Bitcoin Core makes internally, how we try to save bandwidth for our peers.
- 20:44We have to be cognizant of what other nodes on the network, what are they doing, and that can affect things internally as well.
- 20:52well i mean sticking on btcd there was an example that a couple years ago now at this point when
- 20:59barack did that 999 of 1000 multi-sig yeah that knocked uh that knocked btcd off the network and
- 21:07some lightning nodes for a period of time yeah so that was enabled by tap right yeah and there's
- 21:17been other ones with so some fuzzing work i can't remember who did the fuzzing but the slight
- 21:23difference in how the script interpreter uh executed a certain thing called find and delete
- 21:30it's a very obscure function in the old script code base like this is like like bitcoin uh satoshi
- 21:36era scripting that we don't use anymore in segwit or taproot but like these minor differences can
- 21:42result in possible forking opportunities.
- 21:45And if I remember right, that was even with
- 21:48transactions that were standard.
- 21:50Someone who's malicious could have forked off B2CD, but didn't.
- 21:54So that was good.
- 21:56It's hard. Very hard.
- 21:59I mean, since you mentioned scripting, is there anything in version 30 that
- 22:03involves scripting?
- 22:09No. So the last, I don't think
- 22:11The script interpreter is one big kind of scary area that you're hesitant to touch unless you really need to.
- 22:19And during normal releases, there's almost no reason to touch it.
- 22:23I would say the only thing that might touch is the Bookwing kernel with interface stuff, but I think not even then.
- 22:30The last time I touched it was a couple of releases ago.
- 22:35So the pay to anchor update, that's a very minor change.
- 22:38That doesn't even change the definition of what's happening.
- 22:42It's just like minor basically saying this is not an upgrade path anymore.
- 22:48Let people use it.
- 22:51So I would say in general, we don't touch scripting unless there's a consensus change we're trying to affect.
- 23:00My research, I thought I read something about ephemeral anchors with 30.
- 23:07is that okay no so that would be so go through the history so the femoral anchors is kind of
- 23:14two concepts right there's the pay to anchor part which is the script that was 20.28.0 and then
- 23:21ephemeral dust was the other part and that was in 29.0 so those have been out for about one two
- 23:28release cycles um obviously this this package relay buff that we're deploying in 38 is going to
- 23:36help but those key parts were already uh deployed in place all right that's right yeah and ephemeral
- 23:42dust doesn't affect scripting whatsoever it's just it's just a rule that basically says you're
- 23:47allowed to have one dust output if you spend it it's pretty simple um what are you most excited
- 23:58about in version 30?
- 24:01Hmm.
- 24:03Yeah, a lot of the stuff
- 24:04is kind of just like
- 24:05not letting the network
- 24:07fall apart kind of stuff.
- 24:08I think a lot of the,
- 24:11if I'm not exactly
- 24:12answering the question,
- 24:13but I think a lot of the work
- 24:14has been done
- 24:15at the security level.
- 24:18Some excellent work
- 24:19with the Brink fuzzing team.
- 24:21So like Nicholas
- 24:22and Marco DeLeon,
- 24:25not Marco Falque.
- 24:28And team have been doing great work with the fuzzing infrastructure.
- 24:31So I feel like the assurances we have are much higher than prior years, including just going back a couple of versions.
- 24:41I can go more into that if you'd like.
- 24:44Well, I'd like you to go into more like not letting the network fall apart.
- 24:48That's part of it, right?
- 24:49I can get into this.
- 24:52Yeah.
- 24:52Yeah. So historically, one problem with Bitcoin releases is that it's hard to test everything end to end in a robust fashion where you have a bunch of layers.
- 25:02So you have a networking stack where you're taking in random TCP IP data, you're talking to peers, you're receiving data from peers, you're processing data and like paths that depend on a bunch of context.
- 25:16So it's hard to enumerate all the possible paths. And it's hard to do this in a test that's in a robust way.
- 25:22But basically, Nicholas and a few others have been working on a fuzz harness, which is like putting random intelligent, but random data and inputting it directly into the binary and seeing if that if the behavior follows the what we assume to happen.
- 25:42So basic ones is we assume that any message that appear consensus won't make us crash.
- 25:47That's kind of obvious, but making it try to trace all the different code paths to make sure it doesn't crash is like a non-trivial thing.
- 25:58The other thing you can do is do kind of this we call invariance checks, which are things like.
- 26:05Any message that this one peer, so it's a peer A, peer A sends us a peer-to-peer message.
- 26:11It should never cause us to disconnect peer B.
- 26:14So an attacker shouldn't be able to connect to me and make me disconnect with the honest peer.
- 26:19And so you can essentially set up a harness like that, do a few hundred iterations per second of different message patterns, including block headers, transaction announcements, pings, pongs, whatever.
- 26:30Basically spewing stuff, valid or not, at the node and making sure that this connection, this connection of peer B stays, stays online.
- 26:39And so there's been a number of historical kind of catches with this, and I think it'll be very nice to have going forward, especially with peer-to-peer changes or policy changes, too.
- 26:52Is that specifically to stop something like an eclipse attack?
- 26:56Yeah.
- 26:57So that example, the invariance check of don't make me disconnect with my honest peer would be, yes, like I want to hear about all blocks that are honest or even transactions, too.
- 27:06So one interesting with this orphanage update or how we're holding on to these orphan transactions, there's a fuzz harness that is essentially this.
- 27:17You know, if the honest peer is staying within their limits, then another peer should never be able to evict the honest peer's things.
- 27:25Right. And you could basically have the same exact thing.
- 27:29Spears a bunch of data at it and make sure that nothing is ever evicted from this honest peer.
- 27:33and so the level of assurance you get uh gets much higher i think i can go on all day about this but
- 27:41you know well let's dig in more because there's a bunch of there's definitely with the price going
- 27:46up a bunch of people are new to bitcoin but let's dig into this concept of an eclipse attack so try
- 27:52to prevent this to make sure when you have a bitcoin node you have slots open that peers
- 27:57connect to so that you can receive and pass on transactions and other data.
- 28:03But the concept of an Eclipse attack is if you have malicious peers that take up all
- 28:07of the slots interacting with your node, they can begin feeding you bad data and basically
- 28:13ensure that you're not in consensus with belonging.
- 28:17Yeah.
- 28:18Bitcoin relies on the one honest peer assumption.
- 28:21So as long as one peer that you've reached out to or has reached to you is honest, then
- 28:26you can stay caught up on the best chain of blocks,
- 28:29the heaviest chain of blocks.
- 28:31And an eclipse attack is a way of trying,
- 28:33it's an attacker using kind of arbitrary network means,
- 28:36trying to trick you into not keeping on to a good person
- 28:39or letting them go or not letting them in at all.
- 28:42And so one way of doing that would be like,
- 28:44send a message that causes you to disconnect a good person.
- 28:47Right.
- 28:48So.
- 28:50Exactly.
- 28:50why is it important to protect against these attacks as on this like how would well what would
- 28:59what is the intent of yeah somebody so there's an eclipse attack so there's two two reasons why you
- 29:05wouldn't want why an attacker would well two major reasons why an attacker would want to stop you
- 29:10uh your attacker is another miner and you're a miner so you're mining blocks and they want to
- 29:15partition you from the network, get you alone. So you think you're doing good work and making
- 29:20the longest chain, but in reality, you're falling behind the rest of the network.
- 29:25So, you know, if you're, if you're 30% of the network, if you can partition off 1%
- 29:31pools off the network, suddenly your 30% becomes 35%, 40% over time. Right. And this benefits you
- 29:39greatly because larger miners tend to fare better because they're just getting ahead.
- 29:45The other would be, if you're not a miner,
- 29:47it would be something like you run a lightning node
- 29:50or a node that has a watchtower of any sort.
- 29:52So you have like pre-sign vault transactions
- 29:56and you want to watch when things are happening, right?
- 29:58If a theft is occurring.
- 30:00Lightning is the same idea.
- 30:03A lightning party, counterparty,
- 30:05is trying to defraud you going with an old state on chain.
- 30:09You want to hear about the newest blocks as fast as possible and the fastest way to do that Well if you being if it being stopped entirely then you just never hear about it And then your money goes out the window
- 30:19So yeah.
- 30:21And lightning specifically with the, um, what's it called?
- 30:26HTLCs.
- 30:27Well, the HTLCs, but if you get Eclipse attacked and you don't know that your channel counterparty
- 30:32has the specific transaction with your channel partner is not responding.
- 30:37Commitment transaction.
- 30:38Yeah.
- 30:38Yeah. So they could have gone to chain with an old version long ago and you just never heard about it.
- 30:44You're sitting there waiting. You're saying, that's weird. I'm not getting blocks, but things must be OK.
- 30:49You know, maybe miners are slow. Right. And then on the other side, they actually have taken your money and run.
- 30:57Yeah. And that takes it's two weeks for that or two weeks.
- 31:02Depends. Yeah. So with Lightning specifically, that's up to the node operator and channel partner.
- 31:08So you can say, I feel comfortable waiting with you running off with my money after half a day or one day.
- 31:16That's really up to you.
- 31:17And that's the reactive security model.
- 31:19Basically, it's for better security, you should turn that dial way up.
- 31:25So talking again about that L&D exploit crashing, like that's one example why you might want a longer delay,
- 31:33because not only are you worried about eclipse attacks,
- 31:36but you're worried about bugs and packages
- 31:38and your internet getting cut off.
- 31:42There's all sorts of reasons
- 31:43that you'd want to have these time locks be longer.
- 31:48Since you mentioned bugs,
- 31:50as it pertains to bugs in V30,
- 31:54would any be patched?
- 31:59Surely.
- 32:00So if you go to BitcoinCore.org,
- 32:02I'm pulling up right now. There's the see my foot in my mouth here.
- 32:08I find it releases security by development, security advisories.
- 32:13This is the place to track all the publicly known vulnerabilities.
- 32:17And so, for example, the latest one was a remote crash due to address spam.
- 32:25And there it'll give you all the details of who, you know, what severity it's ranked.
- 32:31So low, medium, high, which is basically a rough ranking of how easy it is to do and how bad is it to result in.
- 32:41So the worst would be something like chain split, right?
- 32:45Forking off people and making double spending happen.
- 32:50Second least bad would be like I can send a message and it gets sent to everyone else and everyone crashes.
- 32:57Right.
- 32:57And you can keep going down the list, too.
- 32:59This takes a bunch of setup.
- 33:01it might cost some money and if i know a minor that kind of thing and that's kind of like the
- 33:06strata there but if it's a and then also the the the severity also informs how long it takes to be
- 33:16told about it because if it's something if it's a chain split if it's if it's unknown it's kind
- 33:21of hard to do they might not tell you about it till a few releases after the fact example like
- 33:26if it could be like only after the last vulnerable version is out of end of life so
- 33:33we told you to update these last three years you didn't here's here's the vulnerability
- 33:39versus something that's low which is like hey here's a new version and here's the vulnerability
- 33:45so if there is a i believe a if there's a low vulnerability for 30 that's passed in 30.0 you
- 33:52should hear about within a couple weeks. I believe that's how it works. I'd have to look at the
- 33:56process again, but it was a big job to get that process lined up to make sure that people are
- 34:03hearing about these things and understanding that the system still has flaws and needs to be
- 34:07continuously fixed. Yeah. Being like updating the latest version, I think that's been a big part of
- 34:16the conversation is this campaign to not update to v30,
- 34:21which is anybody can run any version they want to,
- 34:24as long as it's back compatible.
- 34:26What would you say to the people out there telling people not to download?
- 34:32I would say if you don't run your node with money,
- 34:36it doesn't matter what you do.
- 34:38I mean,
- 34:39you might be missing out on a new RPC or something for like looking at your
- 34:43mempool or something,
- 34:44but it's not too interesting.
- 34:46Um, staying up to date matters when you use money at stake and your security of your node at stake.
- 34:51So money, if you're a business, you should be updating within when possible, especially minor versions.
- 34:58So 28.something will be released at .3.
- 35:03Um, I would recommend you upgrade to that if you can't update to 29.1 or 29.2 or 30.0.
- 35:10So best case scenario, you update the latest and greatest because some fixes can't even be.
- 35:17Some fixes are harder to do as a backport.
- 35:20So all the way to old versions, basically, like this big change to like, you know, there'll be some big change to this script engine or something like that.
- 35:29They're not going to mess with that for old versions unless unless the bug is easy to hit and becomes public or something like that.
- 35:38I'm not saying this is the case, but that's just kind of the thought process here.
- 35:44So I'd recommend stay off of end of life.
- 35:48You know, so if you're on 27, get 28 at least, 28 dot whatever the last release was.
- 35:55And then try out the new versions, too.
- 35:58If you need to integrate it like BTC Pay Server and all those, you need to keep trying these new versions to make sure that if there's any API breaks, they get caught early and can get fixed or worked over at an appropriate speed.
- 36:15Yeah.
- 36:17And what benefits would a project like BTC Pay Server have upgrading to v30 beyond what we've already discussed with the peering?
- 36:26I mean, it's less it's a less thing of benefits per se, but I mean, there's obviously the performance benefits that you get.
- 36:35So faster IBD and whatnot, but also just access to the latest tooling fixes.
- 36:42It's more about making sure that things aren't broken, because as an example, Bitcoin Core for a long time had maintained a series of patches for this thing called BDB,
- 36:52which is a database format that the wallet used to use but this format is extremely
- 36:59not maintained uh basically the original project maintainers quit a long time ago or don't don't
- 37:06do the patches necessarily necessary so bitcoin core had to do that that support is officially
- 37:13gone for 30.0 so there's a tool in there to migrate your wallet from to the new version
- 37:18but if you're like running a larger software stack like btc pay server there's probably more
- 37:24involvement on making sure that your users go from the old old format to the new format properly
- 37:32and what is uh what is the new format did a bunch of developers simply just write new
- 37:38database no it's just a sqlite i think uh okay yeah just like a standard format that works for
- 37:46the sizes we care about.
- 37:49It's a funny thing, because Esculite,
- 37:53that's become extremely popular in recent years.
- 37:56I've talked to Justin Moon a lot about the powers of Esculite.
- 38:00Another thing we're dealing with, with Bitcoin
- 38:02being released in 2009, and the tools that we're at
- 38:06Satoshi's.
- 38:08Every time the project gets to get rid of a dependency like BDB,
- 38:12the better off we are because these like open SSL used to be a thing that we
- 38:18had to have in consensus that was removed a long time ago.
- 38:21There's all these different little projects that are basically re-implemented
- 38:25just the parts we need and then the rest is removed or we use,
- 38:30or we swap them out for really standard components.
- 38:33Yeah.
- 38:37So the last time we spoke about the op return was when we saw each other in
- 38:40person in June, May or June? May, I think. May, BTC++, where a very, very interesting get together
- 38:51of Bitcoin developers in Austin, Texas. And I guess just to cover that whole debate of OpReturn,
- 38:59how would you frame it from your perspective? So I think that that was kind of where I
- 39:06stopped paying attention because I went in person and was able to finally get out kind of like,
- 39:12well, what's their like, what do they think the solution really is? We all agree there's
- 39:17some level of problem. Some people think it's catastrophic. Some people think it's spammy and
- 39:22noisy, but we don't love the JPEGs, but what do we do about it? And Bitcoin Core kind of people
- 39:29have been saying, well, it's really hard to disentangle what's spam mechanically and
- 39:35automatically without causing great centralization force and peer-to-peer problems in general,
- 39:43right? We're trying to save the moneyness by punishing JPEGs, but then we end up hurting
- 39:48the moneyness, the fundamental moneyness of Bitcoin. Whereas I asked like, hey, what is your
- 39:54ultimate vision for Bitcoin Core if we went down your path? And essentially it ended up being
- 39:59this argument of we'll have kind of a scripting language or possibly like, you know, this list of bad scripts that we have to pass around to other nodes.
- 40:13And people are automatically updating their configuration scripts to like filter these.
- 40:17And as you can see, like this kind of method is inherently centralizing.
- 40:22And I basically came away with, I don't think this bridge is gappable.
- 40:26there's been some efforts in the knots community to do this where you essentially have
- 40:31a web of trust of filters and it just breaks the inherent moneyness of bitcoin and i don't
- 40:39know what else there's to say about that i mean you can ask more questions of course
- 40:43no i mean i think i fall in the camp of i hate the jpegs i think they're annoying i don't like
- 40:55that they're bloating the UTXO set.
- 40:58It was not even JPEG, it's just the arbitrary.
- 41:00Ordinals, yeah.
- 41:01Ordinals, arbitrary data.
- 41:02Ordinals fills up the UTXO set, yeah.
- 41:04Yeah.
- 41:06Well, I guess let's jump into that.
- 41:08The core argument for changing op return
- 41:12and increasing the limit,
- 41:15taking the limit cap off altogether,
- 41:18basically comes down to the fact that
- 41:21people that are injecting arbitrary data
- 41:24into transactions are doing it in a non-optimal way that's bloating the UTXO seg, correct?
- 41:30Yeah, almost everyone does what's called the description, which means in segwit or taproot,
- 41:37you can put the JPEG essentially in the input side and you get the witness discount for it.
- 41:43So you pay four times less. Op return is an older way of doing it, which costs four times as much.
- 41:49and the argument is that if you need it to be in the if you need some sort of payload to be in the
- 41:54output like let's say a cryptographic proof it's called a groth 16 zero knowledge proof that's too
- 42:02big for it's bigger than 80 bytes but it needs to be somewhere in the transaction so what what
- 42:07people were theorizing about doing actually had software to do is stuff it in utxos that
- 42:14look like public keys. And so nodes have to store this forever
- 42:18just in case someone tries to spend that output.
- 42:22So if there's already these myriad of ways of embedding data
- 42:26more or less harmful, basically we hand them the least harmful
- 42:30method and say, here, use this one. I also have
- 42:34personal opinions on kind of how opinionated we should be
- 42:38about what the best wallet software is. So I worry
- 42:42that if people set their own, you know,
- 42:46hyper-specific arguments like not like arguments and knobs,
- 42:49that it really causes mistakes
- 42:52and ends up kneecapping the moneyness of Bitcoin in other ways.
- 42:57So I'll give you one example.
- 43:00For the Nots 29 release,
- 43:02which is the latest release they have,
- 43:05the new version of Lightning Channels
- 43:07would not be able to propagate on their nodes
- 43:10if you use the default settings.
- 43:12And so I think that's a great example of either lack of communication on their part of what they're trying to filter or just ignorance, right, of what they're doing is causing the moneyness of Bitcoin to be heard for the sake of saving Bitcoin, so to speak, supposedly.
- 43:30I can go more into that if you want.
- 43:33Yeah, like how would it mess up the lightning channels?
- 43:35so the new style lightning channels as well as the arc spark there's probably a few others
- 43:43they're all using this pattern of the truck transactions so version three transactions
- 43:48not only is it the version three being valid or to relay but it allows them to be zero fee
- 43:56if paid for by a child so specifically in knots 29 the current release those are invalid
- 44:03it does not allow those to propagate so your commitment transaction will simply be dropped
- 44:09by your local node even if that was fixed then they also ban ephemeral dust so remember
- 44:17this femoral dust is the rule where you're allowed to have a single dust output in transaction as
- 44:23long as it's cleaned up immediately after in a package and they disallow the function where this
- 44:29dust could be like one satoshi two satoshi all the way up to the dust limit so taproot the smallest
- 44:36output is allowed normally as 330 satoshis so one through 329 would be considered invalid and simply
- 44:45dropped even if it's spent and again the motivation here is to stop jpegs because ordinal theory
- 44:53whatnot but in reality this is just like this feature is being used in the new lightning
- 44:59channels like that that space of the feature is intended to be used and so this is essentially
- 45:05going to kneecap anyone using the software and trying to do self-custodial payments using lightning
- 45:10yeah when you say v3 transactions is that is that like version 3 of back 32 or no no no uh it it the transaction version numbers there a version field the version field 3 on 28 and and newer is it
- 45:33considered standard for relay but it also enables things like uh zero p transactions
- 45:39for technical reasons that i won't get into here but that's kind of like the gist of it
- 45:45Yeah.
- 45:48No, like you told me before we had recorded that you haven't been paying attention since BTC++,
- 45:54but I think I came away from that way because I was highly, I don't want to say triggered,
- 46:04but I was like a little emotional, like what is going on here?
- 46:06I was a little demotivated.
- 46:10I thought I thought there was a chance that we had bridged some some of this gap and come to an understanding where there's some solution.
- 46:18But I just after that, I didn't think so. And I think it was it was born out to be true.
- 46:23I just I don't you know, I don't see it months later.
- 46:26No, you know, get a lot of there. And it's funny.
- 46:30I've been a lot of people hopping in my benches on X and on YouTube and other places saying, why aren't you talking about this?
- 46:38I don't want to breathe air into it.
- 46:40I think I walked away from BTC++
- 46:42with the conclusion in my mind
- 46:45that these things are consensus valid.
- 46:48There's nothing you can do
- 46:50to stop valid transactions from getting in.
- 46:55If you want to change it,
- 46:57you're going to have the harder conversation
- 46:59of soft work to change up return or something like that.
- 47:03If you're not focused on that,
- 47:04then I think you're looking for a Pyrrhic victory there.
- 47:12And then, I mean, I guess to be critical of Bitcoin Core,
- 47:17the project, I think we talked about this in May in person too.
- 47:21I think it's just a massive communications PR failure.
- 47:29I think that's why many people have gotten so triggered
- 47:31and remain triggered.
- 47:35The perception is that Bitcoin Core is changing policy rules arbitrarily
- 47:40without talking to the broader Bitcoin user base.
- 47:48Yeah, that's a little disappointing.
- 47:50And I find it a little baffling that the response to that
- 47:53is to switch to a distribution that changes policy on a whim of one guy
- 47:59and completely ignorant.
- 48:01I guess I'm being pointed here.
- 48:05Mentioning these, they did not know they're breaking people's expectations of the network.
- 48:11As far as I know, they haven't changed course.
- 48:15Who's defending the moneyness of Bitcoin? I don't see how it would be them.
- 48:20What do you think happens tomorrow? Do you think Bitcoin dies tomorrow when $1.30 is released?
- 48:25I'm firmly on nothing ever happens team.
- 48:28I think it's not a black swan event, no matter what.
- 48:34It's like a very, very minor thing.
- 48:36So I'm happy if people just update to relatively minor,
- 48:39relatively recent releases just for the health of the network,
- 48:44for security reasons, and also just the V3 transactions,
- 48:49thermal dust, all those things getting out there.
- 48:52It's good to see these getting traction in real life.
- 48:55yeah
- 48:58the uh
- 49:00I said this on Rabbit Hole Recap I forget it was two or three weeks
- 49:03ago but I
- 49:05proclaimed
- 49:07stated
- 49:08during that episode like we're gonna look
- 49:11back a year from now and we'll be laughing
- 49:14that I think this is what I think
- 49:15is gonna happen he knows what's gonna happen but
- 49:17I'm also firmly in the
- 49:19nothing ever happens cap and
- 49:21yeah I think we'll look back
- 49:23I remember we were fighting about that.
- 49:26I think it's important to try to take some lessons from it, whatever those lessons are.
- 49:33And then. I mean, some of the lessons are negative, right?
- 49:37But basically doing what you can to keep your brand as far as like a infrastructure project, which doesn't lose people's money.
- 49:46I think making that really your focus rather than trying to cater to every user at once, which is impossible, but also just trying to communicate that it's OK if people run their own node software that differs.
- 50:01Right. It really is up to the person. Right. Self-sovereignty.
- 50:05And I think people keep forgetting this fact that running the node 99.9% of the time is for you, right?
- 50:14It's for your sovereignty, your security, your privacy.
- 50:18You're not generally helping the network doing this.
- 50:22Almost all the time, it's just for you.
- 50:24And that's where the focus should be.
- 50:26I think there is a broad misconception about
- 50:31the power of an individual full node
- 50:35and its influence on the rest of the network
- 50:38it's funny rehashing these conversations that happened during the black wars
- 50:43the concept of an economic node
- 50:44I think you can definitely socially signal by running a certain version
- 50:49of a certain implementation
- 50:50but yeah,
- 50:53the policy ends up being kind of like the mirror inverse of that,
- 50:57right?
- 50:57So the block size wars was the intolerant minority or intolerant minority
- 51:03where basically it's like if a small fraction of economically motivated
- 51:08users will reject things consensus,
- 51:10then it kind of is brinksmanship involved that might enable software.
- 51:15But with policy,
- 51:16it's the inverse where a small,
- 51:18small percent of people who are tolerant of a certain transaction format lets them through
- 51:23in practice, even if 90% of the network doesn't.
- 51:28And I think there's a bunch of metaphors here, like technical allegories, pretty much are
- 51:33parallels.
- 51:35That's a really good insight.
- 51:37I never thought of it that way.
- 51:39The inverse consensus versus policy.
- 51:42Intolerant minority can affect consensus more than they could policy.
- 51:48A tolerant minority can make more things relay.
- 51:57They can't make less things relay.
- 51:59An intolerant minority can affect consensus.
- 52:01Like shrinking consensus is the easier part,
- 52:06while expanding policy is the easier part on the policy side of things.
- 52:10It's easy to expand.
- 52:11It's hard to restrict.
- 52:12It's kind of like the mirror universe here.
- 52:15It's hard to hard fork.
- 52:17It's easier to software.
- 52:18in Relay, it's easier to expand, harder to restrict.
- 52:24So, moving forward, when Doomsday comes and goes tomorrow,
- 52:32we move on, I think the dust will settle.
- 52:37A lot of questions around ossification,
- 52:40what changes are needed in Bitcoin.
- 52:42Obviously, Bitcoin Core isn't going to stop working on Bitcoin
- 52:46after version 30 is released tomorrow,
- 52:49and the same can be said for any other developer
- 52:51working on any other implementation.
- 52:53But in your mind, what are some of the top priorities
- 52:57that people need to be focusing on
- 53:01beyond what gets released tomorrow?
- 53:06Well, I mean, doubling down on the security infrastructure,
- 53:09but I already talked about that.
- 53:12So aside from making sure that this multi-trillion dollar asset
- 53:16doesn't fall over in the next few years.
- 53:19There is a continuing conversation
- 53:21on what people call covenants
- 53:23or scripting softworks.
- 53:25I think that'll continue.
- 53:27Rusty Russell has submitted
- 53:30a somewhat serious,
- 53:32more concrete proposal
- 53:33for his kind of rewrite
- 53:35of Bitcoin script
- 53:36where taking Bitcoin script
- 53:39and turning it up to 11.
- 53:41But there's a number of different ways
- 53:43that script updates can be done.
- 53:46like for what you're trying to accomplish and how you do it.
- 53:50And that informs how you do it. So he has one way.
- 53:54Russell O'Connor has simplicity, if you've read up about that.
- 53:58And then AJ also has his own bullish kind of Lisp-based programming language.
- 54:03And I think beyond the near term, we need a bigger discussion about
- 54:08if we want to continue iterating on scripting in Bitcoin,
- 54:14what's the best way to do it?
- 54:16That's a big engineering question as well as, you know,
- 54:20theoretical and engineering.
- 54:22Yeah, I pulled Sharon a couple of months ago to talk about simplicity
- 54:25launching on Liquid Mainnet.
- 54:29And we talked about the potential of it getting implemented
- 54:32at the protocol level.
- 54:34It seems like simplicity, I mean, obviously,
- 54:36Blockstream's been working on it.
- 54:37I think the paper dropped, what, like 12 years ago,
- 54:40maybe even longer ago.
- 54:41and it's been talked about since then
- 54:45finally got a live on mainnet on liquid
- 54:48to basically showcase what could be done there
- 54:53but it seems like simplicity has always appealed to me
- 54:57but I think the common pushback is how are you going to get this
- 55:01into
- 55:01common pushback is oh it's very complicated it's a lot of lines of code
- 55:07But if you look at any other proposal, they're making severe tradeoffs, too.
- 55:14And I think the community will have to have an honest discussion that doesn't involve brinksmanship of like, you shouldn't be arguing necessarily that Bitcoin isn't worth the work, I would say like this.
- 55:25because there are facets of simplicity or simplicity-like solutions that really appeal to me as well
- 55:31that aren't maintained with the great script restoration or bullish.
- 55:38And so I think this discussion has to be made.
- 55:41More near term, Antoine and I have been working on a smaller proposal,
- 55:47which is template hash, check system stack, and internal key.
- 55:50Have you had Antoine on for that?
- 55:53No.
- 55:53Okay.
- 55:54But a few months back, basically, it's a slight revision and reframing of another proposal where it's like CTV as well as checkstick from stack.
- 56:05And we basically we became intrigued with this kind of pairing and did a ground up rethink of how we would do it post Taproot era.
- 56:15And that was our proposal. Essentially, it's a CTV like widget that's TapScript only.
- 56:20check stick from stack which is bit 348 and internal key which is bit 349 as is
- 56:27what would you say to the ossifiers who are worried about the unforeseen consequences of
- 56:36messing with something like bitcoin script because they would argue i would argue too
- 56:41there was unforeseen consequences with the combination of segwit taproot with the ordinals
- 56:47manifestation um i guess how do you how do you have conversations around that in really war game
- 56:56through the potential for stuff like that yeah i mean that's an interesting question because
- 57:03the things i felt that were deficient in taproot are probably not the same ones like from an
- 57:09unforeseen perspective so when i look at lessons learned from i mean there's probably a bunch from
- 57:16segwit but let's say from taproot since it's more recent we learned things like hey maybe we should
- 57:23have more tooling in place before we actually talk about activation because in taproot the way keys
- 57:30are published on the network there are these 32 byte keys what we call x only keys and this ended
- 57:37up it's may or may not be the right decision in the end but we didn't have a fuller discussion
- 57:42from the tooling side of things.
- 57:44How do you make cryptographic protocols
- 57:46with a slightly different public key format?
- 57:49And it ended up complicating certain protocols.
- 57:55I think it ended up okay,
- 57:57but the lessons I took away were essentially,
- 57:59hey, tooling needs to be much more defined
- 58:04before these kind of larger changes are done.
- 58:07And we're taking that to heart.
- 58:09So part of our efforts is not only saying, hey, these capabilities, these opcodes and capabilities enable some cool use cases.
- 58:19Hey, look at these blog posts we made.
- 58:21But much further than that, we want to have the tooling ready to go, applications deployed in like SIGNET and maybe Customs Test Nets before we even talk about things like activation.
- 58:35And we're far from that.
- 58:37Even from a mind share perspective, we're far away.
- 58:40But from a quality assurance perspective, we're also far away.
- 58:44So that's kind of like the lesson I took away, I guess, from Taproot.
- 58:47Yeah.
- 58:49So like if it activated tomorrow, ideally we'd be able to have wallets that just spin up and use things the next day, right?
- 58:57Or, you know, practically the next day.
- 59:00With Taproot, it ended up being like this activated in 2019 or whatever.
- 59:05And then like, oh, it took four more years for Mucig to be formalized and another two years to be standardized.
- 59:14And PSPT support is taking years.
- 59:17And ideally, more of this would have been done prior to activation.
- 59:23And it's the same problem we have as Bitcoiners, as a species, as we're becoming more dependent to a degree on this.
- 59:35and this monetary protocol is approaching $2.5 trillion in value.
- 59:40Not only that, you mentioned it earlier,
- 59:43we have all these different second-layer solutions,
- 59:45whether it's Lightning, Liquid, ARK, Spark,
- 59:49throw Xiaomi and Mintz in the bag as well.
- 59:54Silent, no, not Silent Payments.
- 59:56What does Spark use?
- 59:59State Chains.
- 59:59State Chains.
- 1:00:00State Chains.
- 1:00:01Silent Payments too, right?
- 1:00:02All these, you have this whole tech stack that's all kind of interlinked in certain ways.
- 1:00:07And the velocity is just kind of slow because there's a lot more layers to it.
- 1:00:12Even if I snap my fingers and we got some magical software, it would still take years for adoption.
- 1:00:18Yeah.
- 1:00:20This is out of left field, but just because it's a big topic of conversation,
- 1:00:24I think when it comes to like fuzz testing is...
- 1:00:27ai help at all with this is there any uh any vibe coding that helps i was i was briefly considering
- 1:00:34today could you get reasonable vibe coded buzz harnesses so making but with fuzz testing you
- 1:00:43really want to make sure like you need a lot of subject matter expertise to define it otherwise
- 1:00:48it does like basically really random and if it's really random data then it doesn't really make any
- 1:00:54meaningful progress it's trying random numbers essentially with no understanding of what it's
- 1:00:58doing but the way you can write the harness with intelligence so maybe there's like maybe there is
- 1:01:04you know i wouldn't rule it out i think ai for writing testing is probably one of the best
- 1:01:10avenues to go forward with in this space i'm not sure how much people have been doing it
- 1:01:14i was just going to ask is anybody working on that probably what um what would you obviously
- 1:01:21there's been a lot of controversy and shit slinging going on over the last eight months.
- 1:01:27What would you say is the mental state of your average developer right now?
- 1:01:34I mean, it depends. Obviously, this kind of drama makes maintainers more risk averse in some ways,
- 1:01:42right? So risk averse could mean they're going to ignore issues longer or they're just going to
- 1:01:49make snap decisions and just say like, this is the way it is.
- 1:01:55Outside of that, I think people are ready to get back to work,
- 1:01:58working on interesting things.
- 1:02:00So like one project that I think will become more important as time goes on
- 1:02:05possibly is AJ is working on this thing called template sharing,
- 1:02:09which is, and we basically want these future relay discussions to be less
- 1:02:16political.
- 1:02:17And so one way of doing that is solving some parts of it technically that you kind of allow you're more likely to allow people to have different mental policies as long as it doesn't affect convergence of the network in blockchain terms.
- 1:02:33So we don't want to slow down block propagation on the network to make mining fair.
- 1:02:38So if there are like technical ways of mitigating this, even when people disagree on mental policies, that would be a big win.
- 1:02:45And so I think arguing less about what a default number should be in a config file, I think going this way is more fruitful.
- 1:02:57Yeah. What would you contend is the biggest risk to Bitcoin right now?
- 1:03:05That's a great question. Biggest risk.
- 1:03:09I mean, I think it's the legal one for users and developers still.
- 1:03:15Um, it's, it's a, you know, stable coin people, I would say are a political force in America,
- 1:03:23but still not quite there for Bitcoin.
- 1:03:27Right.
- 1:03:27Uh, we still don't have legal, like explicit legal protections in congressional writing,
- 1:03:32promising that they won't jail us for writing code that helps people move money.
- 1:03:39Right.
- 1:03:40Um, privacy is going to be a big bear to tackle.
- 1:03:44I think privacy is essentially illegal on the Internet, and they're going to want to keep it that way, even if people figure out how to do coin joins in mass and keep off chain.
- 1:03:56I mean, just yesterday I was talking about Spark, the Spark service, how it's their policy to, on an indexer, publish every single transaction for every single account.
- 1:04:11So if you have someone's Spark address or you get a single Bolt 11 invoice from them, a Spark user, you can look up their entire transaction history, including balance.
- 1:04:21And my guess is they have their stated reasons, but my guess is they're worried about pushback from the federal government, whether that's invasive data requests or, you know, regulatory crackdown on their service for being, you know, not for money transmission.
- 1:04:43I mean, they'll try to claim it. Right. So the government could still try to claim that their money transmitters, even though they claim they're not.
- 1:04:49and this could be instigated by a service
- 1:04:53offering practical privacy.
- 1:04:56So I think that those are some of the finer
- 1:04:59tightropes that are walking these wallet services.
- 1:05:03Yeah, I saw you tweeting,
- 1:05:05you're quote tweeting Wallace Satoshi,
- 1:05:07which has moved to Spark.
- 1:05:09Yeah.
- 1:05:10As their backend.
- 1:05:12Exactly.
- 1:05:12And that's insane.
- 1:05:13It's like anybody who's technical enough
- 1:05:15can sort of probe that data.
- 1:05:18Yeah, it's a little surprising.
- 1:05:19I'm obviously not happy with it.
- 1:05:24But I think to be clear for that thread, I'm bringing this up because wallets like end wallets like Wallet Satoshi have to somehow communicate these expectations of non-privacy to their users.
- 1:05:38And I think that's very difficult.
- 1:05:40Prior, like in previous iterations, they were the custodian.
- 1:05:44And so Wallet Satoshi says, I'm not going to publish everything on a database.
- 1:05:48but now they're relying on a backend that does.
- 1:05:52How do you update the mental framework of, you know,
- 1:05:56how do you get informed consent from your users for that?
- 1:05:59That's really challenging.
- 1:06:00And I'm not sure what the solution is for that.
- 1:06:03Yeah, I'm just going to pull this up.
- 1:06:09Yeah.
- 1:06:10There isn't real privacy against the Spark operators
- 1:06:12that everyone should be searchable in a public index So it like yeah they not even that is their stated that what they said so i feel comfortable saying that what they said um and then you can like uh ben carmen whipped up a tool
- 1:06:28for me in about 10 minutes probably vibe coded it uh there we go so if you get someone's wall
- 1:06:33satoshi invoice it immediately pulls up their account so i tested it on my own which i don't
- 1:06:39use it seriously but you know it it would show my test transactions to my real lightning wallet
- 1:06:45so you know that's like how do you communicate that to a user especially a new user how do you
- 1:06:53communicate that to the user of venmo which has one you know they're maybe okay with the service
- 1:07:00knowing but not everyone in the world knowing if they can switch a button um yeah no that's what i
- 1:07:06I was going to say, it's like, even if the operator knows every transaction doesn't mean you broadcast.
- 1:07:15I'd be more sympathetic if they just said, yeah, and we give you a button in the API or whatever to say, don't publish.
- 1:07:21And then they just didn't do that.
- 1:07:23I'd be pretty sympathetic to that.
- 1:07:26Yeah.
- 1:07:27Now, the privacy war is going to be a big one.
- 1:07:32but uh i saw dan gold from page one dev kid uh a couple weeks ago it seems like they're making
- 1:07:39good progress and when it comes to paid page one specifically i think we're gonna have to position
- 1:07:44it as a way to uh as a sort of cost saving technology for exchanges specifically yeah
- 1:07:53that's i mean that's the tough thing it seems like to make it palatable regulatory regulation
- 1:07:58wise we have to say it's something else it is right pay join coin joins in general can be
- 1:08:03potential savings lightning is a potential fee is a fee savings vehicle that gets you practical
- 1:08:10certain certain levels of privacy better than non-chain um an arc spark well all these other
- 1:08:20systems can also potentially offer those kind of privacy trade-offs maybe trojan horse
- 1:08:27using the original systems, right?
- 1:08:32Yeah.
- 1:08:33That's why I don't know what your thoughts are on Chalmy and Mint,
- 1:08:37but I love them.
- 1:08:39I love the Cashew wallets and the Petty Mint wallets
- 1:08:44that I interact with.
- 1:08:46Yeah, I think the big challenge is who runs the Mint, right?
- 1:08:50They cannot claim they're non-custodial
- 1:08:53by any stretch of the imagination.
- 1:08:56No.
- 1:08:56So who runs them?
- 1:08:59How much of a centralizing force is that?
- 1:09:02Because it's more efficient if everyone's on the same mint.
- 1:09:07Maybe there's decentralization back pressure from like, well, we have the lightning network that interconnects everything.
- 1:09:17So maybe the centralization pressure isn't as big.
- 1:09:19You just have like thousands of operators.
- 1:09:23I mean, I guess we'll see.
- 1:09:26Some people think the AIs are going to run them in.
- 1:09:28They're going to recognize it's superior money for the agentic framework,
- 1:09:32and they're just going to run them in.
- 1:09:34Can I imagine conspiracy theories there?
- 1:09:37Yeah.
- 1:09:38But now we're getting into the philosophical side of things,
- 1:09:40because no matter what part of the stack we're talking about,
- 1:09:44like Spark has to make this privacy trade-off because of the government.
- 1:09:48Maybe other things like Pajoin won't get implemented by exchanges
- 1:09:53is because they're worried about the regulatory and compliance blowback.
- 1:09:57Obviously, Chubby and Mintz can provide not only incredible privacy,
- 1:10:01but since they're separate from Bitcoin and very modular,
- 1:10:04you can build a literal new banking stack from scratch
- 1:10:07that gives you all the functionalities you'd want from a banking service
- 1:10:12with better, more secure tech,
- 1:10:15minus the centralization pressures of the Mint operator.
- 1:10:19it's like we have the potential to build an incredibly robust, secure, private financial system,
- 1:10:27which arguably should be what everybody wants.
- 1:10:32But for some, not for some reason, but the government just messes that up.
- 1:10:39Yeah. Also, the user demand just isn't there for censorship-resistant payments.
- 1:10:45I mean there obviously is some but in the west as an example no one seems to care and
- 1:10:51what would make them care right what what events might transpire that will make them care and will
- 1:10:59we will we be ready for them that's the other one too right we're building I think like general
- 1:11:04hodl tech is pretty much solved I would say like Coinbase can seems to be doing okay with
- 1:11:10a quadrillion Bitcoin or whatever, but you know, the,
- 1:11:16the payment technology still isn't there.
- 1:11:19And so if Bitcoin payments actually need to take off the non-pustodial way in
- 1:11:24the future, the infrastructure needs to be there.
- 1:11:26And I think that's kind of what we're looking at, looking at this future.
- 1:11:30Hey, we had a good step in the right direction yesterday with the, uh,
- 1:11:33square announcement. People were waiting for seven years for that. Yeah.
- 1:11:38no I think the pressure is going to be digital ID
- 1:11:42and my theory is that
- 1:11:45they're going to try and thrust something
- 1:11:47world coin or something like it on the masses
- 1:11:49and people are not going to be fond of staring into the orb
- 1:11:53and then they'll care
- 1:11:56maybe yeah
- 1:11:57yeah I mean now we're getting something like
- 1:12:03do you have
- 1:12:05Are you optimistic about the potential for the user experience and the products built on top of Bitcoin to get to a point where regardless of people desire to use peer to peer cash the experience is simply superior to the incumbent system that gets adopted because it better UX
- 1:12:27I mean, it depends on the layer. It's already better than some things. International wires are trash and will continue to be trash for a long time.
- 1:12:34But I think you'll, I mean, some of the payment UXs are really nice in Bitcoin, but a lot of them take steep trade-offs in the self-custody dimension.
- 1:12:50You know, if you just park your money on, well, actually, this is where it still works, right?
- 1:12:55Parking your Bitcoin on Coinbase is only useful if you're willing, if you're only interested in trading on Coinbase or using BaseChain or whatever.
- 1:13:03But if you want to actually send someone over the light network of payment, I think it still works.
- 1:13:08But there's all this regulatory pressure to not let it succeed. Right.
- 1:13:12And I think that's where all the friction is. So I did this.
- 1:13:17I did this last week. We had we had a 1031 off site with the portfolio companies.
- 1:13:24We're at this resort and over the course of the three days, got to know some of the people working at the resort.
- 1:13:33particularly the bar.
- 1:13:34And last night, go to tip him.
- 1:13:36He's got a Coinbase account.
- 1:13:37I was like, I'll send it over Lightning.
- 1:13:38And the UX was just completely abysmal.
- 1:13:41And I thought, like, I got a confirmation on my end,
- 1:13:45but it never hit his account.
- 1:13:46And I got a confirmation that the payment was received.
- 1:13:48But from what I understand, and I didn't realize this until after,
- 1:13:52I left him.
- 1:13:53Coinbase is asking users that accept Bitcoin over Lightning
- 1:13:56to ask for personal information of the counterparty.
- 1:14:00Exactly.
- 1:14:01Yeah.
- 1:14:02The transaction.
- 1:14:03It's like, what?
- 1:14:03Yeah, that's I think.
- 1:14:06It's it's incredibly centralizing in that no one will want to do that.
- 1:14:12But if transactions, the payments, the payments volume isn't high enough that people won't jump that hurdle to go on the other side.
- 1:14:21If money is sitting in an ETF or what everyone's happy with, they don't need to.
- 1:14:25Ask permission because it's not going anywhere.
- 1:14:27But if you want to make payments, this is where all this friction shows up, especially especially if you're trying to send from a coin.
- 1:14:33base or regulated institution.
- 1:14:36Well, I don't
- 1:14:36know if we can fix that aside from
- 1:14:38legal changes.
- 1:14:41It's completely immoral
- 1:14:42though. Like I sent the Bitcoin, like I sent it
- 1:14:45for my wallet.
- 1:14:46I'm making a descriptive.
- 1:14:48Oh, I know. But like just like I'm thinking about
- 1:14:51I was thinking about it through. I was like, wait, I
- 1:14:52sent $15, $20 for
- 1:14:54the Bitcoin, whatever it was, to this wallet.
- 1:14:57Like obviously it's centralized Coinbase
- 1:14:59presenting and running the
- 1:15:01lightning node presenting the invoice they have the bitcoin sitting somewhere in their account
- 1:15:06the guy that i sent it to light spark does i think but yeah yeah light spark whatever it's sitting
- 1:15:11somewhere in a centralized third party and that guy's never going to get the money and i send 20
- 1:15:16bucks and i'm never going to get back because i don't think this guy's going to be able to find
- 1:15:19me to ask me for my home address and all that and when he does i'm not going to give it to him i'll
- 1:15:24i'll say spin up another invoice using using zeus or something like that and i'll send you the bitcoin
- 1:15:30there but the coinbase just holds that money now yeah so i think i think that's where you'll see
- 1:15:37the right like if spark does take off that that's the niche it'll fit uh there's an unfortunate
- 1:15:43privacy thing but if you if you're willing to accept a system that says itself can self-custodial
- 1:15:50kind of is trust odial at least um maybe that's enough for users to get onboarded
- 1:15:56but is that a world we want to go to versus something more private this is like a big challenge
- 1:16:02yeah i mean talking to matt corralo earlier this year he's pretty optimistic that uh self-custodial
- 1:16:11lightning will see a step function improvement uh better it's it's definitely better than before
- 1:16:18um i think a lot of you'll hear like oh this new layer two will fix all lightnings you know
- 1:16:26all the issues lightning has but you look under the hood it's either making custody trade-offs
- 1:16:31security trade-offs or it's or it's making the same assumptions as like lightning needs
- 1:16:37improvement so it's like oh it's instant transactions they say how do you get instant
- 1:16:42transactions oh you just trust this person not to sign twice like come on like you know that's
- 1:16:48zero comp trust right so i think there's a in this industry there's still a bit of that even
- 1:16:54in the Bitcoin side. It's kind of hiding
- 1:16:55what models people are buying into.
- 1:16:58But I'm optimistic
- 1:17:00too. So I think there's enough there
- 1:17:02for another 5-10
- 1:17:04years of
- 1:17:05development and smoothing of
- 1:17:08processes.
- 1:17:10Yeah. And in the meantime, in parallel
- 1:17:11to your point,
- 1:17:13we need to wage the campaign to abolish
- 1:17:16the Bank Secrecy Act where all this
- 1:17:18insane
- 1:17:18privacy infringing
- 1:17:21compliance and regulation comes from.
- 1:17:25Can we somehow get the BSA as a person to insult Trump or something?
- 1:17:31I'm trying to think of a way of instigating constitutional crisis,
- 1:17:36because then maybe the courts will strike it down anyways.
- 1:17:38It's like, yeah, it wasn't constitutional anyways.
- 1:17:41Yeah.
- 1:17:42No, it is insane.
- 1:17:43We're dealing with the remnants of mistakes made many decades ago.
- 1:17:47Funnily enough, 1970, I think, is when the BSA was implemented.
- 1:17:54It interesting to see the thing that was vaguely probably not constitutional at the time accepted because we didn have computing widely Now that flipped and kind of seeing the straws being grasped by the statists who want
- 1:18:10everything to be reported at all times.
- 1:18:12It's really stark, I guess.
- 1:18:17Yeah.
- 1:18:17And admittedly, I haven't been following it as closely as it probably should be.
- 1:18:21But last I heard, there was this doesn't have anything to do with privacy.
- 1:18:26but to your earlier point about legal ramifications of writing open source software that allows people to use Bitcoin in a peer-to-peer fashion.
- 1:18:34There was positive language in the Clarity Act, which hasn't been passed yet.
- 1:18:39I don't know if it's been taken out or revised out.
- 1:18:42It has not yet been taken out, but there's always a worry that until the job's done, it's going to get horse traded for something else, right?
- 1:18:50Because again, you have the stablecoin bros, stablecoin contingent, and you've got the kind of Elizabeth Warren contingent at the moment.
- 1:18:59And people are worried that Elizabeth Warren actually hates Bitcoin more than she hates to stablecoins.
- 1:19:06So maybe a trade would happen there.
- 1:19:12I'm optimistic long term, but you need to actually battle this out in Congress and in the courts.
- 1:19:20Well, I mean, I think my I'm going to call it a pipe dream, but would be incredibly badass is that if they did push and put the regulatory pressure on, if you just got back to the site for Punk Roots and you just had a bunch of synonymous devs pop up and just start launching things without anybody knowing who they are.
- 1:19:39So I have a slightly contrarian point of view on this, I guess. Yeah, I think it's a good idea of something like that. But I see America as a potential base for freedom through freedom of speech and computing.
- 1:19:53And if I just snap my fingers and America became the place where all development, all non-custodial development is blessed legally and protected 100%.
- 1:20:05And there's no question that you're going to be dragged out of your house because your system helped enable someone else to do money laundering.
- 1:20:14I think that'd be a huge win for the world.
- 1:20:16And I think we can push that way.
- 1:20:19I don't think that everything bad for me as a developer is good for Bitcoin, I guess is my point.
- 1:20:25I think we can kind of push the other direction and make it easier in countries with law and order, potentially more law and order, and export that goodness worldwide through the Internet.
- 1:20:38Craig, I like that. I like that optimistic view. We should lead, by example.
- 1:20:43I still have
- 1:20:45I said earlier
- 1:20:45I mean
- 1:20:46the potential
- 1:20:46the tools
- 1:20:47the potential
- 1:20:48it's all right
- 1:20:49like we can build
- 1:20:50yeah
- 1:20:50an incredibly
- 1:20:51transparent
- 1:20:53robust
- 1:20:55resilient
- 1:20:55secure
- 1:20:56relatively private
- 1:20:58financial system
- 1:20:59the potential's there
- 1:21:01in general
- 1:21:02freedom of speech
- 1:21:03has gotten stronger
- 1:21:04and stronger
- 1:21:04in the United States
- 1:21:05the one caveat is
- 1:21:07oh but you did
- 1:21:07talked about money
- 1:21:08and suddenly this is like
- 1:21:10a legal loophole
- 1:21:11to throw you in jail forever
- 1:21:12so I think like
- 1:21:12just keep maximizing these first amendment gains as far as we can in the next
- 1:21:18few years. Right. I think, I think it's possible.
- 1:21:23I did too. Let's keep pushing. Yep. It's been awesome. This is the, uh,
- 1:21:30this is the first time in a while I've, uh, gone deep on Bitcoin core stuff.
- 1:21:37It always reignites the subdued nerd in me.
- 1:21:46It makes me miss New York bit devs in the heydays
- 1:21:50when I would nerd out with this stuff.
- 1:21:54I think I went to probably 80% of the bit devs between 2015 and 2020.
- 1:22:00and it's
- 1:22:02easy to forget
- 1:22:05the intricacies
- 1:22:06and the complexity involved
- 1:22:09in actually maintaining
- 1:22:11and improving the Bitcoin
- 1:22:13protocol
- 1:22:14most people
- 1:22:16are completely unaware
- 1:22:19yeah like
- 1:22:21with anything else there's a lot going under the hood
- 1:22:23it doesn't directly
- 1:22:25it's not a feature
- 1:22:27for the user so it's hard to see
- 1:22:29and show value
- 1:22:30no i'm thinking too like as more institute like you have faith that uh the last question you have
- 1:22:40faith that like as more institutions get in if banks get in that they'll have tech departments
- 1:22:45that will understand the importance of understanding the intricacies of the protocol level
- 1:22:51that i don't know i can't i think it's kind of we're also in an eternal september kind of situation
- 1:22:57I would have expected
- 1:23:00more
- 1:23:02industry feedback
- 1:23:04in a direct way
- 1:23:06but you don't get that
- 1:23:08people don't even really complain when things are broken
- 1:23:11it is like a
- 1:23:14there's a feedback loop problem with development
- 1:23:17so
- 1:23:18looking forward to find ways to solve that too
- 1:23:21especially as things get bigger
- 1:23:23think about it freaks
- 1:23:26alright any final thoughts before we wrap up here
- 1:23:28I appreciate you having me on
- 1:23:30and excited for the future
- 1:23:32still
- 1:23:33future two days from now
- 1:23:36Bitcoin dies tomorrow
- 1:23:41so enjoy it while it lasts for you
- 1:23:42because you've got 24 hours
- 1:23:44yeah
- 1:23:45all Bitcoin transactions are legal in the next 24 hours
- 1:23:49alright see ya
- 1:23:52thanks
- 1:23:52peace and love freaks
- 1:23:55Stick it.