Rob is the creator of Kyoto, an implementation of compact block filters that makes it easier for developers to build more private bitcoin wallets. Andreas is the creator of Bitcoin Safe, an app designed to make it easier to use hardware wallets securely.
Andreas on Nostr: https://primal.net/p/nprofile1qqsqd0y6klqxew4glwggn63jvumrgprnl32tw7hpuzfhv6msgf7y3agm756qu
Bitcoin Safe on Nostr: https://primal.net/p/nprofile1qqsyz7tjgwuarktk88qvlnkzue3ja52c3e64s7pcdwj52egphdfll0cq9934g
Bitcoin Safe on X: https://x.com/BitcoinSafeOrg
Kyoto on Github: https://github.com/rustaceanrob/kyoto
2140: https://2140.dev
EPISODE: 185
BLOCK: 926163
PRICE: 1099 sats per dollar
(00:03:04) Bitcoin Dev Kit
(00:04:39) Andreas (Bitcoin Safe) and Rob (Kyoto)
(00:05:58) What is BDK? Goals, safety, and language bindings
(00:09:27) Why BDK matters for UX, testing, and reliability
(00:09:50) Kyoto origin story and compact block filters vision
(00:13:21) Privacy model: servers vs. compact block filters
(00:19:39) Do compact block filters work on mobile? Performance tradeoffs
(00:23:55) Kyoto as a Rust reference client for BIP157/158
(00:24:35) Bitcoin Safe overview: desktop cold storage with hardware signers
(00:25:40) Using compact block filters in Bitcoin Safe: initial sync vs. daily speed
(00:28:27) Why connect your own node and peer pools for CBF
(00:33:14) Design choice: hardware-only wallets and setup wizard
(00:36:29) Differentiating from Sparrow: private sync and Nostr-based multisig coordination
(00:39:08) Will Sparrow adopt compact block filters? Considerations and UX
(00:48:49) Developer ecosystems: 2140, OpenSats, and in-person collaboration
(00:50:38) Making CBF the default: UX, education, and recovery flow
(00:52:56) Electrum server defaults and operational notes
(00:53:50) Birth heights, segwit/taproot start points, and future optimizations
(00:56:17) Address reuse, scanning guarantees, and performance benchmarks
(01:00:13) Bandwidth vs. compute: where the real bottlenecks are
(01:00:19) Closing discussion, calls to action, and advice for new devs
more info on the show: https://citadeldispatch.com
learn more about me: https://odell.xyz
nostr: https://primal.net/odell
Happy Bitcoin Tuesday, freaks. It's your host Odell here for another digital dispatch. The show focused on actual Bitcoin and Freedom Tech discussion. Since I've been running non live shows, I think it's important to mention what's the current block height. Right now, it's block height nine two six one six three. Tuesday morning, my time, December 2, we will be posting this later today. The current sats per dollar is thousand 99 sats. So we're a little over $90,000 per Bitcoin. As always, dispatch is funded by viewers like you. Our audience funds the show with Bitcoin donations.
And Cali, our last guest, put out a call out for you guys to support the show, and you guys came out really hard. So I just wanted to thank everyone who supported the show last week. As always, I'll shout out the highest zaps we got. We had rider die freak Brian zapped 250,000 zaps, which might be the largest boost largest zap we've ever gotten on the show. He said, don't be gay. Send fat zaps for Cali. Great message. Cosign it. Thank you, Brian. You can find him at primal.net/brianwithay. Ride or die freak map 21 zapped 30,000 zaps. Cali called my 10 k zap a good zap. I'll do better.
And notable mention for Andy who zapped 25,000 sats in all caps. He asked for the demand he demanded the return of the intro music. So that's why you got the intro music today. I'll I'll add it. I'll add it to all future episodes. Sats speak louder than words. And then on podcasting two point o apps like Fountain, our biggest boost was ride or die freak, Sawzall with 50,000 sats. He said great rip. Always appreciate the still dispatch, freedom tech signal, and ride or die freak, Eric nine 9, zapped 42,000 sets as well. Thank you guys for your support. Easiest way to support the show.
Is your favorite Nostra app or podcasting two point o app? I like primal. For Nostra, I like fountain podcasts for podcasting two point o, but there's a bunch of different apps out there you can try. All links are still dispatch.com. We're available on every podcast app. If you don't have sass to spare, sharing with friends and family really does help. Okay. With all that said, we got a great conversation planned for today. We will be talking about, I guess I guess the common denominator is Bitcoin development kit, BDK. My good friend, a Nashville neighbor at Bitcoin Park, Steve Myers, who runs our BitDevs, also runs the Bitcoin dev kit project, and he suggested that I have a conversation with these two gentlemen.
So I'm looking forward to it. Basically, whenever Steve, suggests something or asks something, I just say yes because he is an awesome dude. We have Andreas here, from Bitcoin Safe. How's it going, Andreas?
[00:03:49] Andreas:
Yeah. Great. Hi.
[00:03:52] ODELL:
Did I pronounce your name correctly?
[00:03:54] Andreas:
Yes. Absolutely.
[00:03:56] ODELL:
Okay. Awesome. And then the easier to pronounce name, we have Rob, from Kyoto. How's it going, Rob?
[00:04:02] Rob:
Yo. How's it going?
[00:04:05] Andreas:
It's, Great to have you here.
[00:04:07] Rob:
Thanks. It's the evening for us. It's, 6PM for me.
[00:04:12] ODELL:
6PM for you. U t UTC seventeen hundred. Yep. Actually, you're you're close to UTC.
[00:04:20] Rob:
Yeah. I'm enjoying a, a nice beer here. So we're on different, different wavelengths maybe.
[00:04:27] ODELL:
There we go. Well, I like to hear that. A show is always better with, like, good beer. So how do you guys, have you guys, do you guys know each other in person already?
[00:04:39] Andreas:
Yep. Yeah. We we met at, last week, last year, and we've stayed in contact quite a lot.
[00:04:49] ODELL:
Yeah. And Was that was that at Bitcoin Park? That was at Bitcoin Park? Yeah. And that was specifically it was like a BDK summit that we hosted. Right?
[00:05:00] Rob:
Yeah. It was all all up and down the stack. The rest of Bitcoin guys, Polstra and, Tobin Harding as well. Those guys are killing it. Yeah. Tobin's great. And then Martin, I forget his last name, but he's also a prolific dev.
[00:05:16] ODELL:
So did one of you wanna give just a quick primer on, like, what is BDK, and what is the goal of that project specifically?
[00:05:26] Rob:
Yeah. I can Rob. From the perspective of a developer, I can kinda take it over, and then I think Andreas as a user, can tell us how it's used in action. But how I see BDK is the software development kit to rule all software development kits for building a Bitcoin wallet. So covers all platforms, you know, as many languages as possible, very thoroughly tested, thoroughly reviewed. And yeah. So instead of reinventing the wheel, every single time someone wants to, build a Bitcoin wallet, they can just pull an off the shelf solution that, we have people working around the clock on.
And, yeah, I'll let Andreas take over how it's how he's using it. But from a development point of view, that's how I see it.
[00:06:21] Andreas:
Yeah. Yeah. That's exactly it. It's it's a really good foundation to build a wallet on. So it it comes with all kinds of you could think of modules you can plug together. It has it has, a way to manage transactions, like, in in or build a a whole wallet. It has a way to synchronize the blockchain. It has a way to construct PSBTs. All of these things that you need for a Bitcoin wallet, it provides. And it's being actively developed, so, like, new features are added every three months. And, one of the one of the really cool features that that Rob, worked on is compact block filters, and that's that's a really awesome way to synchronize the blockchain, and it's also now available in Bitcoin safe.
[00:07:15] ODELL:
So, basically, there's all those complicated aspects that, that developers historically have had to deal with when building out Bitcoin apps. And a lot of them involve things that if you mess up would result in fund loss or just, incredibly bad time for users. So BDK kind of just takes that out of the box, provides that to developers, and then developers can then build on top of that in a safe and relatively easy way so we can see more Bitcoin apps that are secure out there. Right?
[00:07:47] Andreas:
Yes. And it's not only available in one language. I mean, it's it's written in Rust, but, there are language bindings for all kinds of languages. And, for example, I'm not using Rust. I'm developing Python, so I use the Python bindings of BDK, and it works great.
[00:08:07] ODELL:
That's cool.
[00:08:08] Rob:
Yeah. I like how you mentioned, security because I think it even goes a bit deeper than that, like reinventing the wheel. If you imagine a user using a a UI and, maybe there's just some Internet problem. If you have some, you know, hand rolled solution that's, you know, not very prime to, report errors back or what have you back to the user. Sometimes just not updating or not showing progress is just as bad as as, you know, some sort of irrecoverable error. So I think BDK offers, like, a really high level of, development, and and testing coverage.
So you don't get these, situations where the user is confused, even if there's nothing necessarily wrong, just that they're they're confused as as to what the error is, or what's going on with their wallet. So, Yeah. I I think there's there's many levels. Of course, security, irrecoverable, fund loss, that's horrible, and we hope it doesn't happen. But, the Bitcoin experience, you know, has a lot of a lot of layers. So I think it it tries to check all of those boxes.
[00:09:27] ODELL:
That makes sense to me. Awesome. Okay. So let's jump into your project specifically. I guess let's start with you, Rob, since I it seems like Kyoto's a bit more high level. What what is what is Kyoto? Why should people care? Where where's the value that it brings?
[00:09:51] Rob:
So going all the way back to when I was first, like, poking around, projects in Bitcoin. Laalu from Lightning Labs gave this, this talk on compact block filters, like, a long a long time ago at SFBitDevs. It's it's on YouTube somewhere. You can find it. And he sold this vision of, like, a node in your, like, home router or, like, these little mini nodes that are just sort of everywhere. Super lightweight, but very private and, a bit more trustless than, than maybe a server model. So I was really sold on that. But then when I went to research, it's pretty much only used in Golang, for L and D stuff, which is perfectly fine. I think Zeus uses it.
Of course, you could use it with LND, but Doesn't Wasabi use it as well? Wasabi does use it. They use, so I guess there's there's actually two specification or there's two bips that comprise compact block filters. There's client side, like, how do we sync them? And then there's the actual technology itself, like, what are the filters? So these are two separate write ups. So they use the filters, which are quite private, but they just download them from, like, an HTTP, server. Well, of course, with TLS. So, you know, like, a secure server. But it's, yeah, it's not directly from the peer to peer network. So I as I understand, they're they're migrating over to using the peer to peer network. And just the reason was it was just practicality. Like the peer to peer network wasn't actually broadcasting compact block filters for them to use yet. Right? Yeah. I think at the time that they deployed it, because yeah, that was quite a a long time ago. I remember using it using Like, 2019, 2020 or something even.
Yeah. Yeah. So way back when, yeah, when the when the spec first rolled out, there probably wasn't a lot of of nodes surfing these these filters, but I think the story has, changed a bit. Yeah. Yeah. So Wasabi, Zeus, Nutreno backend with LND. Those were the options. But, you know, as we covered with BDK, BDK, I think the approach is to just offer to as many devs as possible the complete, you know, Bitcoin development experience. So that's what popped out to me, and I decided to write a client in Rust, that could reach as many developers as possible. Because I I think it should at least be, an option in in every drop down menu. Like, this is how you can sync with the blockchain.
And it just didn't seem that, that was gonna be the case, with the current state of things, in in going. So that's that's kinda the origin of the project.
[00:12:54] ODELL:
Got it. So, I mean, just real quick, why, to someone who might have gotten to this point, to just heard you say all that stuff and got a bit confused, why would someone white wanna use compact block filters as opposed to connecting to an Electrum server or doing it another way, doing it a more traditional way that we've done in Bitcoin if you're not running. So, like, if just I'll just set up I'll set it up better. If if the best way to use Bitcoin in a trust minimized way is to use it with your own node. Because no matter what, to use the to interact with the greater Bitcoin network, you have to use a node. And if you're not using your own node, you're using someone else's node, and you have to trust them with enforcing the rules of the network and with your privacy. So, historically, people have had two choices. They've had the choice of, using their own node or connecting to someone else's node where they're basically sending, their addresses and being like, look up how much Bitcoin is at these addresses.
But now we have compact black filters, which presents a different option. Correct?
[00:14:05] Rob:
Exact exactly right. So I'm gonna do a quick detour because I feel like maybe my background might shed a little light onto this. So I out of college, I got a job for what was essentially an advertisement technology company, and I was doing, like, basically predictive modeling for them. And pretty much instantly from joining the company, I got very disillusioned and that, you know, that's kind of a part of my, my Bitcoin sort of background. But these advertisement technology companies will use anything and everything to try and, you know, give you dynamic pricing. So a great example is Target.
If you if you wanna buy a TV from Target, there was there was some story or something. You know? Hopefully, this isn't just hearsay, but, the price of the TV was higher because the IP, or or the the person's device showed that they're in the target parking lot. So dynamic pricing, you can have different opinions on it, but advertisement companies will use anything and everything. So that's where I come from, which is really bad. And so why you should care about your privacy in this, in in the context of Bitcoin. I think I've heard you or somebody else say something very similar. Like, you don't want your butcher knowing your entire life's, you know, savings.
And, I completely agree with that, and I would go as far as to say you don't want anyone knowing your life savings, you know, maybe Right. Less your wife or something. So the the caveat with using a a server based model is, as you said, you go through all of your addresses, and you say, just tell me the balance of all these addresses. So what you've done there is you've grouped a a set of addresses to to an identity. It it doesn't you know, it only takes one slip up. So let's say you're doing this over Tor. It only takes one slip up to to associate a handful of these together, and then some sort of chain analysis company knows, like, okay. This group of addresses belongs to, this IP.
And I don't think it's the state of affairs now, but, like, my biggest fear is that this stuff is sold to advertisement technology companies and stuff in the future to the point where, you know, you wanna go on Amazon, and it's completely priced based on based on your stack. Because at some point, you know, you had some sort of, privacy, you know, fault. And so what Compact Block Filters offers is you don't allow any service or any server or what have you to do this bucketing, but it's incredibly low resource. So the primary problem with running a full node, especially if you're nontechnical, is maybe you want a node in the box solution or something like that. It's not exactly cheap.
And, you know, that's no knock on these companies. I think they're doing cool stuff. But Compact Block Filters is right in center in the middle. You have high privacy guarantees, with low resource requirements. So sorry for, like, the biggest side, but, yeah, I'm I'm pretty passionate about this this issue. And, yeah, the primary problem is you don't want your your addresses sort of bucketed together.
[00:17:38] ODELL:
Right. And and okay. So then can we just quickly go into, and and just to put a nod on that on the privacy side, The scary thing about Bitcoin is that if we're right about Bitcoin, the blockchain is gonna live forever. So if you may if you have leaks today, maybe they're not selling to advertisement companies, maybe they're not selling it to governments. But in the future, that can then be traced back to you, and then they could be grouped together. And all it takes is, you know, you have one deposit to someone who's sharing information, just grouped with other addresses, And then all of a sudden, they have five years of transaction data in the past.
So it's important that we're proactive about it. And on the cost side with nodes, you know, I think, the Bitcoin community, specifically the Bitcoin development community, should be very proud that it's actually relatively compared to most other infrastructure that we rely on, relatively cheap and easy to use your own node, and and we need to keep it that way. I think probably the biggest limiter is is mental burden and friction. I mean, I I think people are just not used to running a twenty four seven server that has uptime. You know, at at the lowest level, you can just run Bitcoin Core on your on your computer you're already using.
And and if it's a modern computer, it's gonna sync relatively quickly. But but all that said, we have to run under the assumption that the overwhelming majority of users are not gonna use their own Bitcoin network, and it's mostly because of friction. That is just probably just unavoidable friction. So, like, let's provide them a a pretty straightforward relatively good trade off balance way of of connecting to the Bitcoin network, and that's what compact block filters represents. Now I've my understanding historically has been that they don't work that well on mobile.
Can you is is that no longer the case, or, where do we stand on that?
[00:19:53] Rob:
Yeah. So I think there's a couple of different fronts to to attack this. So on the one hand, I think, one of the bottlenecks is, CPU because in this protocol, there's there's quite a bit of hashing. And for for the audience, that's maybe less technical. Anytime you you do a hash, just as how Bitcoin miners are hashing, this has a sort of, power requirement on your on your CPU. So that was one complaint is, like, yeah, maybe you wanna use compact block filters, but, if I have to have my phone plugged into the charger, you know, that that's a little less realistic.
Maybe I just wanna buy a coffee or something. So that that's one complaint. I would say that's still somewhat unresolved, but it kind of ties into the next thing. So one thing that's improved quite a bit is, at least in iOS, and I'm sure for Android as well, the mobile OSes have gotten really, really good, and they've gotten good at and they've also gotten more open, let's say. So iOS lets you perform some some things in the background, like, while the user, you know, is plugged into charger and on Wi Fi. So let's say the user is just, like, asleep. The the primary problem with compact block filters is that the number of filters you need to check or, I guess, the the number of blocks you need to scan, to put it that way, it grow goes up linearly as time goes on. So as as more time passes without you using the app, that's increasing the the amount of bandwidth you have to use.
But if we leverage things like, you know, maybe there's a background sync every week or every day, then it becomes much more snappy when the user opens up their phone. They're not they're not downloading a bunch of pass blocks because we've just sort of passively scanned them in the background. So I think that's the primary thing I hope to see moving forward is, developers leverage those APIs and, like, make the phone do a little bit of work, even while the user is asleep or something like that. And I think that would improve the experience quite a bit. Is there something is there something there
[00:22:18] ODELL:
that, like, if a user is using more addresses that it that it compounds on itself compared to, like, maybe just the maybe the typical user is using, you know, generating and using one new address a month or something. But, like, if you're a power user and you're using 100 new addresses a week or something like that, does that make it significantly worse performance wise?
[00:22:43] Rob:
Yeah. So there is a certain threshold where you're basically going to download every single block, at which point you maybe want to use, like, maybe a full node makes more sense to you. But I would still even argue, like, the cool thing about this protocol and combined with BDK is you can download the block, basically apply all of the relevant information, and then just throw the block away. Like, you no longer need it. And right now, I I don't really think that same level of experience is is there for, like, Bitcoin Core running a a pre node or something like that. Like I said, I mean, the the requirement for storage is basically minimal with this protocol.
So that being said, I mean, at some point, you might as well just download every block and throw it away. But that would would be more like your example of, like, I'm revealing 100 addresses a week or something. I'm I'm a merchant or something like that. Maybe BTCPay server makes more sense. But if if you're still really resource constrained, I I would argue it's it's still a perfectly fine protocol just for the storage, minimization, if that makes sense.
[00:23:55] ODELL:
Got it. And then, Kyoto specifically is it both it's both a protocol and a reference client. Am I correct? Or
[00:24:05] Rob:
So, yeah, it implements yeah. It's a it's a reference client for the BIP one five seven BIP one five eight. So it's like a compact block filter reference client. Yeah. Just as how Neutrino from Lightning Labs is another reference client. And I hope more, you know, come up in targeted languages in the future. But I just wanted to add a little diversity, and I think Rust is is a great language to do that.
[00:24:32] ODELL:
Got it.
[00:24:33] Rob:
Yeah.
[00:24:35] ODELL:
Okay. Let's Andreas, so what is Bitcoin safe and, does it use compact block filters?
[00:24:44] Andreas:
Yeah. Bitcoin Safe, is a desktop software, for managing your cold storage wallets. And it's it's hardware signer only, so you need a hardware wallet to use it on Mainnet. On on Testnet, you can, use seeds, but not on Mainnet because, use case there is really cold storage. And, it offers a lot of features for the cold storage use case for individuals, but also for groups or organizations. And regarding your questions, yes, it uses COMEQ block filters. This, I think, is a very important way to enable private synchronization. It it uses, Rob's implementation from BDK.
And, it's from from the performance wise, I'm I'm really blown away by Rob's implementation. It's there's there's basically two cases you have to look at. The first is initial recovery or initial synchronization the first time you set up a wallet. They are, it it really needs some time to synchronize, like, order of magnitudes, like, half an hour for, like, a second wallet if you recover it. But once that's done and you're a week offline on desktop, it's as fast as an Electrum server. It's it's it's seconds,
[00:26:07] ODELL:
after the base. Interesting. So the big trade off is,
[00:26:10] Rob:
like, initial sync for an existing wallet? Yeah. Yeah. So to be clear, this is only an existing wallet. So if you fire up a new wallet and we're working on this. I just made the argument new wallet, you have nothing to look up. Yes. Exactly. So there there's you can just start essentially from from the chain tip. So to be clear, we're talking about, you're recovering a wallet. Maybe you are migrating from Bitcoin Core and you're traveling for a bit, let's say, and you just wanna be able to to, access your your wallet, on your laptop, then, this is where you would face that recovery time. But we're it's pretty niche, scenarios, I would say.
[00:26:48] ODELL:
Well, I mean, as someone as someone, who travels a lot, like, I don't keep any, like, pub key information or anything on my travel laptop because I just assume that's what's gonna be searched. So I do find I I mean, I was I you know, first of all, there's probably there's not that many sovereign Bitcoin users right now, so everything's a niche use case. But, restoring multisig, hardware based multisig on a computer fresh, is something that I probably do way more often than most. But even that, like, thirty minutes is fine. You just said it. You walk away. Like, who the hell cares?
[00:27:33] Andreas:
Yeah. I I think the additional thing that makes compact block filters so nice is that you don't need to configure it. For Electron servers, either you use a public one and you need to actually choose one. Either the developer chooses it for the user or the user actually has to think about it. Or the second use case is or the second possibility is the user runs their own Electrum server, then they have to actually put in this connection string. Right? They they have to type it in. And both is a friction point. For compact block filters, this just goes away.
If you're connecting to random Bitcoin nodes out there, there's there's nothing to configure. Only if you want to connect to your your own Bitcoin nodes, running on your network, then you have to add that.
[00:28:27] ODELL:
So So even if you that's tricky. If you if you use Bitcoin safe to connect to your own node, you're still using compact block filters as the protocol?
[00:28:36] Andreas:
It's an option right now, as it is. It cannot use your own node exclusively, but it can add your own node to the pool of nodes that it's it's using.
[00:28:49] ODELL:
Got it. Why would you do that?
[00:28:56] Andreas:
Rob, I think that's a the question for you, about the design decision about this pool of initial peers.
[00:29:05] Rob:
Why why would we do what? Attach the What advantages in this
[00:29:10] ODELL:
if if you're gonna use compact block filters anyway, what incentive do you have to really use your own node in that situation? Like, why am I even adding my node to the pool? Well, if you do have one,
[00:29:20] Rob:
like, let's go back to the travel example. And you can Andreas, you can take the opportunity to show that Bitcoin safe, all data is encrypted at rest. So, even even if you're you're,
[00:29:35] ODELL:
held up as But see I mean, same with yeah. I mean, I guess, Sparrow, it's optional if it's encrypted at rest.
[00:29:46] Rob:
Yeah. But sorry. Short short aside. I just wanted but, why why connect to your own node? If Yeah. If you know regionally you're close, to your node, then your download times will be faster. I mean, just lower latency is is a is a nice, a nice property of the protocol. Because, again, it's all peer to peer. So you it's kind of a luck of the draw thing. I mean, you could be connecting to somebody halfway around the world, or you could be connecting to your neighbor. You you don't have a lot of say in in how this, you know, actually occurs. I mean, I've thought about adding features, similar to Bitcoin cores, like AS map in the future, where, you know, you could target specifically, like, oh, I want AWS, US East. Like, give me a node from there.
But, you know, that really over over, complicates, I think, the peer selection. So why you would connect to your own node just it's, could be faster. Also, it's very easy to configure. It's only two, two lines near Bitcoin config, and you you have, compact block filters.
[00:30:55] ODELL:
So Got it. Well, two lines for re indexing. You have to enable it on the node side first. Right? And then you put it in the configuration information, like, Bitcoin safe side or Bitcoin key other side. Right?
[00:31:05] Rob:
Yep. Bitcoin safe, you you basically can can add your own IP. But, I mean, it it's still I I would argue that maybe that's not even necessary if if you are in a a densely populated area like The US. Odds are you probably are are gonna find some some pretty fast nodes in your area. If you're in a bit more rural of a country or region, then then, adding your own node could be an advantage. But that's kind of the beauty about this protocol is, like, you just connect to anyone, and, they could be helpful to you potentially.
[00:31:43] ODELL:
Yeah. I mean, I have a better framing of the question. Why if you're running your own node that's serving compact block filters, why why do you need the pool of nodes? Why don't you just take the block filters from your node and just use your own like, why do you need other nodes?
[00:32:00] Rob:
I mean, if you wanna send a transaction, you you can do a little bit of, like, transaction origin obfuscation because, I mean, if it's coming from your home node, like, if your private like, if your compact block filter node is just sending directly to your home node, then, to any to any, like, passive observer, they're basically associating that with with your home node. Whereas you can There's more for the broadcast side, not for the receive side. Yeah. I think that's one one potential, benefit, to having having the pool. Also, just if your home node has happens to go down, it it can help to have a little bit of redundancy there.
Yeah. To your point, if, like, if you wanna just do one connection with one home node, I don't see any problem with that either. You just maybe get lose a little bit of a transaction broadcast anonymization.
[00:32:56] ODELL:
Got it. Okay. That makes that makes sense to me. Okay. But back to Bitcoin safe, I mean, I think well, first off, why hardware only? Why can't you make a hot wallet on it? Why was that design decision made?
[00:33:15] Andreas:
Yeah. So Bitcoin safe focuses on this cold storage use case, for for savings or for for Bitcoin treasuries of organizations. And, their hot seats are just not safe. For for any large amount of money, saving a a seat on the computer is is is not a good idea. And nowadays, there are so many good hardware wallets or hardware signers, that's, this is this is just the way to go for any any large amounts of money. And Bitcoin Safe, supports all of the major hardware signers or all of the QR standards, USB or file. It supports all of that to make this, as easy as possible.
And for for individuals, it also offers, a wanted setup wizard to guide a user through setting up a single sig or also multisig, such that at the end of this wizard, after the step by step process, they can be sure it's set up correctly and, they can trust that they can send larger funds inside. Because in this setup wizard, they have a receive test and they also have send tests where they have to test every hardware signer. So they they they tested all of their devices. They know it works. And that way, they can they don't do it the first time with with large amount of money. They did it already with a smaller amount of money in these test transactions.
[00:34:53] ODELL:
Got it. So it's I mean, it's just trying to guide the user towards best practices. I mean so I think what would be helpful here is, for the use case that you, are targeting, I mean, the gold standard is, clearly Sparrow. I think I mean, that I'm using Sparrow for this use case. I think probably the majority of the freaks are using Spiro for this use case. What's the differentiator? Like, why why should someone consider Bitcoin say I mean, look. I've quite I'm not being I'm not trying to be discouraging. Like, more options are better. Like, god forbid Craig gets hit by a bus or something.
I don't want, like, this whole industry relying on a single man. But, like, clearly, there's a differentiator there. What what is why should someone consider Bitcoin safe over something like Spiro?
[00:35:50] Andreas:
Yeah. For for the for it it it really tries to go, offer additional features. As I as I mentioned, the this wallet setup wizard, should enable also people who are who did not listen to the, like, ten hours of podcast to to set up a single sig or or multisig. So making this self custody, for individuals as as easy and as smooth as possible. And part of that is also private synchronization, using compact block filters. If I have to choose an Electron server, for the user because the user doesn't know how to choose one, so if I set a good default, right now it's it's Blockstream, At some time, maybe the server goes away. And what then? And with callback WAC filters, this problem does not exist, so that's why, combat WAC filters are now one synchronization option.
And then for the multisig use case or even multiparty multisig use case, there's a a functionality called sync and chat. It's, it's a it's a kind of a discovery mechanism and a way to connect two instances of Bitcoin safe running on different computers. So for for multiparty, multisig use case, let's say, you have three people and they want to to manage a wallet together. Part of that is synchronizing the labels. Right? You you want to always have synchronized labels. And, this is this being done through a protocol that sits on top of Nostra. And the same protocol also enables if the people want to sign a PSVT together, that they can send the PSVT over the same encrypted channel, to the other person, so the signatures can be collected.
[00:37:54] ODELL:
That's awesome. I mean, like, right now yeah. Like, right now I mean, if you're using Sparrow for this use case, you're basically just copying and pasting PSBTs into signal.
[00:38:06] Andreas:
Right. And it also has an integrated chat, that is it's supposed to be just for this use case to coordinate the the signing. It's, what you can write, like, hey. I want to sign now. Are you online? The person writes back.
[00:38:22] ODELL:
And so are those basically master DMs?
[00:38:26] Andreas:
Yep. It's it's SNP 17.
[00:38:29] ODELL:
Got it.
[00:38:30] Andreas:
It's, it's however, it's it's not supposed to that you you're putting your NSAC from your amethyst or some other Right. Master app. It creates a completely random NSAC, and it's supposed to be only used for this, to to minimize, where where your NSAC,
[00:38:51] ODELL:
is Yeah. And you don't want It's only living in encrypted wallet file. Right.
[00:38:56] Andreas:
Yeah. And it's it's this this NSAC is only living in the encrypted wallet file.
[00:39:01] ODELL:
Got it. It's generated when you set up Bitcoin safe. Exactly. Okay. That'll make sense to me. Have you talked to Craig at all about why they why he hasn't implemented Compact, but have either of you?
[00:39:19] Rob:
I can speak on that a little bit. So I guess Okay. I can also take the time to show twenty one forty. So how I'm currently supported, previously, it was partially OpenSAT. So, of course, thanks for that. But Cheers. Right now, I'm employed by, twenty one forty, and The Netherlands. So I think the best way to put twenty one forty is we're kind of a developer collective, let's say. We all kind of work on protocols that we find, interesting and try and learn, from each other. But it's mostly just a set of independent people kind of working on what we find interesting.
[00:39:58] ODELL:
It's like chain code of the north.
[00:40:01] Rob:
Chain code of, yeah. Chain code of The Netherlands. Yeah. Although I think New York is probably colder in the winter than The Netherlands, like, ironically. But, yeah. Chain code of the north. So, I I completely forgot the question. What,
[00:40:20] ODELL:
No. Why doesn't Craig use so Craig right now So he came using Electrum servers, and, specifically, he, like, picks a sane default public election servers. There's, like, Blockstream, MZ, mempool. Okay. People that probably aren't spying on you.
[00:40:35] Rob:
Yeah. So okay. I as I okay. Maybe it was Chatham House rules, when he came, but, basically, he joined us for for a silent payments, dev, kinda workshop week. And, I mean, obviously, a incredibly brilliant dev. Like, the stuff that he turns out and like, he just showed up and was like, oh, I have, like, a silent payments server side scanner. And we're like, oh, that's that's awesome. Like, you know, something that would take a normal dev, like, I don't know, maybe six months he does in, like, a week or something. But I think the primary thing is well, for one, he like you said, he kind of has he has the gold standard of a wallet. So any feature he adds, he has to like, he he can't just retract it later.
So it has to be very thoroughly thought out. It has to be really well implemented, or else, you know, he doesn't really have the opportunity to just remove it and then have like, he he's everything. He's, like, customer support, dev, all of it. So all features are really thoroughly thought through, and I think the impression is that compact block filters are going to be too slow, and not responsive enough on the user side. But I've gone to, like, really great lengths to, you know, pass as much information as I can to Andreas. Like, here's what's happening. The node is at this block height. The node is downloading this. The node got got this block. So So as much as we can inform the user is what's going on, and then also I, like So they, like, see it loading, basically. Right? Yes. So and and then the other thing is he's he's a wallet develop like, he's the whole thing, the UI, the wallet functionality, signing PSBTs and stuff. I was afforded the the luxury of just implementing on the node side. How can we make this as as best as we can, some sort of compact block filter implementation?
And so because of that, I've had a bunch of time to focus on performance, what works, what doesn't work, and I've tried to make it as, like, as fast and seamless as possible, which I I just don't think, a wallet dev that's doing the full stack, they don't have time to do that. I mean, it's just not realistic. But do you think he'll implement it at some point in the future? Or I mean, I don't know. Option?
[00:42:56] ODELL:
It could be, like, theoretically high level. It could be as simple as, like, an option in settings. Right? To, like, switch from Electrum to
[00:43:05] Rob:
I I I think I mentioned that earlier. Like, I would love if every wallet just had the drop down. Like, it doesn't have to be the default if you don't want it to be, if you think it has too much friction. But I'd love for every wallet to at least have the drop down. So I I would hope so, but at the same time, yeah, he's he's developing the full stack, and he has already quite a bit of features that he needs to support. I I can see how how the risk might not be worth the reward. Whereas in my position, I'm I'm a 100% willing. I think privacy is of the utmost importance, so I I have time to dedicate to it.
Yeah. I think we we could cross our fingers, hopefully.
[00:43:51] ODELL:
Got it. Yeah. I mean, I wasn't trying to, we're not trying to I wasn't trying to have you speak for Craig. And, but it is an interesting thing. It's it's something that I've talked to him about at length because he really does he cares deeply about user privacy and security. That's why Sparrow exists in the first place, and almost to a fault. Like, I've had, large back and forths with him. Anyone who's gone through the Sparrow default setup process, In the beginning, he basically he first of all, he picks sane public, Electrum server defaults for you, but he also scares the shit out of users of using the public Electrum servers that he chooses for them. He's like, ultimately, like, if you're gonna if you actually care, you should be running your own.
[00:44:46] Rob:
Yeah. Indeed. It's orange lights, red lights everywhere. Flashing yellow lights.
[00:44:51] ODELL:
Yeah. Yeah. And which I respect, but also, like, I mean, now that we have compact block filters, it sounds like this is a could be a better trade off balance for the overwhelming majority users. But up until this point, for a lot of users, like, using Blockstream or mempool spaces node is was probably good enough and not warranting yellow lights. And, I have you know, I I know those guys personally, and I'm relatively confident that they're they're not actively keeping logs. I mean, there's no way to prove it. But, if you're just some random smaller time user, like, you're probably fine doing that.
So, yeah, anyway, I had a lot of back and forth with him, but it seems like it'd be right up his alley, which is why it's interesting. But, also, I I can see how he wants to wait and see you know, let it kinda get proven in the wild before he adds more tech debt to his already established heavily used wallet. Right?
[00:45:54] Rob:
Yeah. Yeah. I think I think the market, so to speak, needs to pick it up. Like, the user is gonna do the least friction option. So I think it's more of my and others' responsibility as developers to make it the most or at least as frictionless, at which point you can kind of interchange between the two. Because yeah, I I just don't think it's realistic for for the user to opt into privacy. Like, the the average Joe is gonna pick the thing that that syncs the fastest. Right. So my my goal is is to make it as comfortable. And and like you said, yeah, I don't think anyone is recording logs right now, nor do I think people really care about those logs, like, nor do I think any companies would actually buy them.
But if we think or if if Bitcoin does what what we think it's gonna do, then all of a sudden that data becomes a lot more interesting. Yeah. More valuable. So, yeah, I I would I would say it's more of a future planning, than than a current problem. Well, I would say there are wallets that just, like, naively pick random Electrum nodes, And that that's probably a horrible idea. There probably are some that are logging.
[00:47:09] ODELL:
Chain analysis has been you know, chain surveillance firms have been known to run them. That's why it's just like it was a very sane low lift thing for him to do is to just pick a white list of reputable ones. But, yeah, once again, that only goes so far. It's similar to the VPN trust model. Right? It's like there's no way for you to prove for a hosted VPN trust model. There's no way for you to prove if if the host is not doing logs. There's no way for them to even prove it. So you go based just on on reputation. And, ideally, we can get past that.
And so, like, Obscura on the VPN side is trying to get past that by using MoleVAD, and the compact block filters is kind of a way to remove that trust, trade off that you have if you're not running your own node, which is pretty cool. Awesome. I,
[00:48:06] Andreas:
I forgot to go.
[00:48:07] ODELL:
Well, before you jump in, just real quick, twenty one forty is awesome. I feel like I cut that off. I love what what, Josie and and Ruben you guys are building out there. And, you're still kind of supported by OpenSats because we, helped bootstrap, them. In a small way, we helped bootstrap them. We're it's really cool to see, more and more dev initiatives kinda sprout out because, ideally, just like I'm I have concern of Craig getting hit by a bus, you know, like, god forbid something happens to OpenSats. Like, we need as many we need as many organizations as possible, all doing it slightly different ways too, which is cool.
[00:48:50] Rob:
Yeah. Yeah. And I think I think the cool thing about what's happening here at twenty one forty is the in person aspect. I mean, some people really like how the open source, workflow, you can do it completely remotely, but that's just not really the type of person that I am. I like to be in an office and and talk to people. And I think it's there's sort of a a theory that you could subscribe to where you have a bunch of great minds. They may, you know, sum to, like, one, but if you put them all together, we sum to, like, two. Right? Like, the the effects of, the mind share kind of compound on the on the top. Plus one equals three is, I think, what you're talking about. Yeah. Exactly. One plus one is equal to three. And I I do like, as as corny as that sounds, I do think, that's that's what's happening here, where the amount of, round trips I have to do is so much fewer. I don't have to wait for someone's response or any of that. I can have a live conversation even passively, like at lunch. We all go out for lunch, and you can talk an idea through and sort of rubber duck it. And I I think that, you know, as many organizations as as we can get, like, twenty one forty up, I think, will really be an improvement to to the open source kind of development community because, yeah, there there's just a lot of value in in talking ideas through in person and, you know, either getting something knocked or act like in real life, because the the typical remote flow is is relatively slow.
[00:50:25] ODELL:
No. 100% cosign. I mean, that's why Bitcoin Park exists. Physical interaction is an incredibly important part of the human experience. Andreas, I cut you off. You wanted to jump in?
[00:50:38] Andreas:
Yeah. So Rob mentioned that, the the user is going to the least friction option. So right now, in Bitcoin safe, the Electron server is still the default, but, the plan is actually to make it the to make compact box filters, the default. And for this, there's, a a lot of design work actually left for BitCoinSafe. There's actually a a designer joined, the project to to help improve the user experience. And, there, I think the the next big thing is to to work on the design in the UX to make compact block filters, like, by default natural, and that this half hour recovery sync is not, like like, a not felt as a disadvantage, but it's explained to the user what's happening, why is it good that they're waiting, to to to make this as low friction as possible and that people go with this more private option by default.
[00:51:47] Rob:
And, yeah, once again, to be clear, you can just check a box like, no. This is a new wallet. You don't need to to do this, background sync. But, yes.
[00:51:56] Andreas:
Yeah. Yeah. Just I mean, just for the recovery use case. Yeah. Is there is there,
[00:52:02] ODELL:
well, first of all, so you're using Electrum servers by default. Are you doing the same thing that, Craig is doing? You're, like, picking how are you picking the Electrum servers?
[00:52:12] Andreas:
The default is the the Blockstream one, but, of course, you can configure it to any Electrum server you want.
[00:52:19] ODELL:
Yeah. I mean, the two best from the three best from my experience is Blockstream, mem pool, and, MZ.
[00:52:28] Andreas:
Mem pool one is unfortunately not available on main net for free.
[00:52:34] ODELL:
Oh, you started charging for it?
[00:52:37] Andreas:
As far as I know.
[00:52:40] ODELL:
I'll talk to Wiz about that. Interesting. Okay. I what, that's interesting. I didn't realize that. The on the compact block filter side, if you are syncing a past wallet, does it do what is it like a, is there, like, a birth height thing that you put in or something? Or is it only segued outputs? Is it only Taproot outputs? Is there, like, a way to limit the amount of blocks that you're actually filtering through to?
[00:53:14] Andreas:
So it detects the script type. So, like, legacy, segue to type root, and then it uses the block height that makes sense. So, like, segue start or type root start or Genesys.
[00:53:26] ODELL:
But, like, presumably, I could keep the birth height of my wallet, and then when I restore it, the sync the restore sync would be quicker. Right? I mean, I obviously, that's a power user thing. Like, I don't think most people are gonna keep the birth height with their seeds. But
[00:53:41] Andreas:
It's not yet possible, but, I think,
[00:53:44] Rob:
you're working on it to make it possible. Yeah. So, on on the binding side, I just opened a PR for this, like, hours ago, to just add, like, some sort of arbitrary kind of, like, height. But the thing is for compact block filters, since you're actually talking the peer to peer network, you don't really talk in heights. You you need you need a hash. Right? So, you would I mean, I guess, presumably, you would like ping a, yeah, like a mempool server, mempool dot space. Hey. Hey. What is the hash for this height? And then take that and start your sync. But, yeah, as you said, I think I I have no idea, like, when when I received my first SAT. Right? Like, it it's kind of hard to record a birthday.
So, honestly, I think the safest option is just start from Segwit. But, yeah, if you're if you're a power user and you have a height, that's definitely something that we're we're gonna add as a future.
[00:54:44] ODELL:
Well, I mean, we've seen this in shitcoin land. Like, both both, Monero and Zcash have trade offs in how they handle syncs, where it's incredibly computationally intensive to do syncs. Mhmm. And so they, like, they inform they they, like, tell the user when they're recording their seed backup that, like, here's the here's the birth height of your wallet.
[00:55:13] Rob:
Okay. That's pretty neat.
[00:55:15] ODELL:
Yeah. So there is some precedent. I'm not saying that's user friendly. I'm just saying that there that there is, there is precedent on that front.
[00:55:23] Rob:
Yeah. I mean, you gotta write down stuff anyway or or stamp stuff or however you do it. And, you know, you might have a pen or something. So, I mean, some some extra numbers, maybe not that big of a deal. But, yeah, the the birthday concept is definitely something that that we're gonna add soon.
[00:55:40] ODELL:
And it probably becomes more helpful, like, the further we get away from SegWit and Taproot. Right? Like, if it's ten years in the future Yeah. 100%. Then it compounds. Yes. I'm just, to think about.
[00:55:55] Rob:
The, yeah, the drawback of the protocol is that, the data you need to scan increases linearly with with time. You know? TikTok, next block. Yeah. We gotta check everyone. I mean, there is some really cool research about maybe how we could make this better, but I would say it's very academic and just kinda far out.
[00:56:18] ODELL:
What what happens if people I know they're not supposed to, and I'm sorry. These are stupid questions, but I'm just bringing them up as they come to my mind myself. What if a user is, like, receiving they're not supposed to reuse addresses, but they reuse an address that's, like, way deep in their index. Is is are you accounting for that, or are you just assuming they're not gonna do that?
[00:56:45] Rob:
As in so
[00:56:48] ODELL:
Let's say so, like, first sync is the longest because I'm, like, literally checking all of my addresses that I've used.
[00:56:54] Rob:
Yes.
[00:56:55] ODELL:
Right? And and and and I mean, I'm checking back behind time. But let's say I'm just using Bitcoin safe, and I've generated a thousand wallet a thousand addresses, and I'm not I'm not, not recovering it fresh. I'm just just chugging along, using my wallet. I've been using my wallet for four years, five years. I have a thousand addresses. And then some vendor or let's say I'm a plumber. Some customer pays an address like Index 3 or something, like, the third address or fourth address I ever used. I think Electrum counts for that already. Yeah. So I mean compact blocks count of count for that? Like, are you checking the old addresses? Are you routinely checking the old addresses?
[00:57:40] Rob:
Yeah. Yeah. A 100%. Yeah. You will not miss that. Yeah. I mean, you don't I mean yeah. You're you're, in this scenario, your your plumber basically, like, dust attacked you or something. But yeah. But it's not a dust attack. He sent me real money in this in my theoretical example of Okay. Yeah. It The plumber You sent you sent you a refund. Your your toilet's still broken. Yeah. You're not gonna you're not gonna miss that money. No. And there's no performance overhead. I mean, of course, yeah, we don't don't reuse addresses, people. But yeah. No. It's not a problem. Fair enough.
[00:58:16] Andreas:
Just maybe as a, like, a speed test, that I did is I revealed 20,000 addresses and synced the wallet on Mainnet. It took one and a half hours.
[00:58:28] ODELL:
Oh, that's not bad.
[00:58:30] Andreas:
And this is from Segwit start. So
[00:58:34] ODELL:
It's like it's this is freedom money. Like, you can wait an hour and a half for twenty thousand hours. It's just like I think that's, like, completely reasonable. And, presumably, we can make you can make it more performant than that. Right? Like, this is the worst it'll ever be.
[00:58:51] Andreas:
It depends on your Internet connection. Right? That's what I'm saying. I
[00:58:54] Rob:
I think it's pretty Internet because yeah. I so I have, like, at home, I essentially have, like, a DSL connection, like, one of the worst connections, just like a old building. And it took I don't know. I I do benchmarks all the time, but, like, at home, it it took, I don't know, maybe, like, 45 to an hour just with, like, an empty just, like, single script. This is just as a bandwidth test. I'm talking, like, really bad Internet.
[00:59:26] ODELL:
So really the limiter? It's not comp it's not compute. The limiter is is down, downstream bandwidth?
[00:59:33] Rob:
So I I would say I'm at, like, the really low end of the bell curve of of bandwidth where my bandwidth is is pretty horrible. As you reach a certain bandwidth threshold, then your limiting factor will will probably be compute if you're on mobile. But on the desktop case, like, for Bitcoin safe, if you have, like, a one gigabit connection and a m four or something, you're gonna absolutely rip, the filters, I think.
[01:00:01] ODELL:
Got it. Yeah. I mean, in some cases, five g is probably faster than DSL. Right?
[01:00:09] Rob:
Definitely. Yeah. Yeah.
[01:00:14] ODELL:
Okay. Fair enough. I have nothing on the top of my head. This has been a great conversation. Do you guys have any pressing topics you'd like to discuss while you're while you're here with me?
[01:00:33] Rob:
Another yeah. Just showing twenty one forty one more time. If you happen to be in The Netherlands, send me an email or something. I'm Rob at, two one four zero dot dev, like, twenty one forty dot dev. Yep. Pretty much encapsulates what we got going on. Company is twenty one forty, and we're developers. So, yeah, email me or, yeah, hit me up on GitHub or something. I don't know. Contact me somehow. I don't have any socials or anything, but, yeah, we'd love to see you if you're in The Netherlands. And as far as privacy and stuff, I would say it's not a problem now, but let's all, let's all have a good OPSEC.
And, yeah, I think I think if even you're the average user and this is your first time considering privacy, there's always a chance to have forward privacy. Check out these tools. Do the reading. I don't think you'll regret it in the future. That's about it for me.
[01:01:40] Andreas:
Yeah. From my side yeah. From my side, I want to really thank the BDK team and also Rob for the incredible work they're doing. It's it's, for Bitcoin safe, I'm the developer, and there's a designer who joined. But it really feels like there's a whole team of BDK doing, like, really hard stuff supporting us, and that's that's really awesome.
[01:02:07] Rob:
Yeah. That's all thanks to, to OpenSats and also Spiral, have been big supporters throughout this process. So thank you guys. You know, all this is possible with with, generous, orgs like that. So, yeah.
[01:02:24] ODELL:
Yeah. And on until the note of a thousand flowers bloom, like, one of the big things that, Steve has been working on is the BDK Foundation, so that they can be independent and sustainable on their own, which is really fucking awesome to see. It's I think it's, I don't know. There's just a lot of bullshit on social media, Mostly noise, but, like, quietly in the background, one of the most bullish fundamentals about Bitcoin is the growing developer ecosystem and and the distribution of it too. You know, like, people, like, wake up one day and they're like, oh my god. You know, chain code has three maintainers. It's there's been a lot of us that have been living and breathing this shit for years, and this is the best it's ever been, and it's only getting better from here in terms of distribution of influence and power and central points of failure.
And, it's just a quiet grind is what it is. In the background, it's just a quiet grind, and a lot of the most legendary people in the space are very quiet themselves. You don't hear from them a lot, but they're mission focused on on Bitcoin. And it's just it's there's there's no other project that I have really seen like that in in the greater open source ecosystem. Just that you have, like, a global distributed relatively organic developer movement.
[01:03:59] Rob:
Yeah. I think it's very mission very mission driven. And I also yeah. I think it's like whack a mole. At the current rate, we're going if you, you know, stop one dev, you're gonna have three more pop up. Like, I think we got a lot more, a lot more talent to poach. One of the things I wanna focus on is is going to universities and and trying to convince, you know, otherwise naive computer science students that they should be working on this stuff. And, yeah, I I think we got only room to grow. And from what I hear about developers, you know, more OGs, like, it's come a very long way. So that's exciting to see.
[01:04:50] ODELL:
Love it. Well, guys, thank you for your work. Thank you for building out Bitcoin. Thank you for joining us on dispatch. I enjoyed this conversation. I think the freaks will enjoy it a lot. I'll put links to all of your, to your projects and to your socials in the show notes, so check those out. I guess a good place to end it is, on the note of trying to bring in more developers, particularly young developers at universities and stuff. Why don't we end with, you each giving your words of wisdom to someone who might be listening to the show considering, working on open source Bitcoin dev? And I will start with you, Rob.
[01:05:38] Rob:
I think the great thing about Bitcoin, as far as open source development, there's two things. One is flexibility. I mean, everyone in this space acts very graciously and has, you know, a lot of respect for themselves and others, which creates this this culture where you're not gonna get laughed out of the room if you have some sort of idea that you wanna pursue. You know, it's it's a very autonomous career path, all the way down to what PRs you open, who you interact with, what you wanna work on. I mean, it's just there there's so many different routes that you can you can take. So if you're, a curious kind of academic, like, I assume a lot of these students will be, it's the perfect career for that. You you can really make up whatever you want.
And as as far as, you know, the work life balance and so on, there's no corporate shit. There's no none of that garbage. Like, you you just it's just pure alpha. You just work on what you wanna work on, and there's none of the extra shit. There's no meetings. There's no any garbage. So I I would say that's the other huge upside is, you know, you may, you know, wanna go work at Google or something, but, even as a developer, you're gonna be in stand up meetings and explaining to project managers, for 500 times what you're working on. Yeah. The all the fat has been trimmed. You just gotta focus on on what you wanna work on.
[01:07:18] ODELL:
Love it. Andreas, final thoughts for young Bitcoin devs, potential devs?
[01:07:24] Andreas:
I think the Bitcoin developer community is is incredible because it's it's it's really mission driven. There's something that connects everyone, and it's it's everyone knows Bitcoin is is super important, and that makes the work that everyone is doing super important. And I think there's probably no other in other industry that where where people have this kind of conviction that what they're doing is important. And and and, of course and that also, as as Rob said, everyone is super welcoming, and open, and and there is no there is no noise that you have to fight against.
It's it's
[01:08:17] ODELL:
incredible. Love it. Well, thank you guys for joining us. I enjoyed this conversation. Freaks, thank you for listening. Thank you for supporting the show. All relevant links are at silldispatch.com. I got some great shows lined up for us over the next, three three weeks, four weeks. I hope you enjoy them. Please, all feedback is appreciated. Let me know what you've been thinking about this latest arch arch arc of dispatch. I've been having fun with it. I hope you guys have as well. Anyway, Rob, Andreas, thank you, guys.
[01:08:54] Rob:
Cheers. Thank you.
[01:08:57] ODELL:
Love you, freaks. Stay on the Stack Sats. Peace.
Bitcoin Dev Kit
Andreas (Bitcoin Safe) and Rob (Kyoto)
What is BDK? Goals, safety, and language bindings
Why BDK matters for UX, testing, and reliability
Kyoto origin story and compact block filters vision
Privacy model: servers vs. compact block filters
Do compact block filters work on mobile? Performance tradeoffs
Kyoto as a Rust reference client for BIP157/158
Bitcoin Safe overview: desktop cold storage with hardware signers
Using compact block filters in Bitcoin Safe: initial sync vs. daily speed
Why connect your own node and peer pools for CBF
Design choice: hardware-only wallets and setup wizard
Differentiating from Sparrow: private sync and Nostr-based multisig coordination
Will Sparrow adopt compact block filters? Considerations and UX
Developer ecosystems: 2140, OpenSats, and in-person collaboration
Making CBF the default: UX, education, and recovery flow
Electrum server defaults and operational notes
Birth heights, segwit/taproot start points, and future optimizations
Address reuse, scanning guarantees, and performance benchmarks
Bandwidth vs. compute: where the real bottlenecks are
Closing discussion, calls to action, and advice for new devs