SLP450 Bitcoin Developer Education Overview with Josibake
Josibake (bitcoin core developer) joins me on the show to talk about Bitcoin Developer Education and why it’s much improved nowadays! We discuss a range of topics:
- Why is it important?
- What are the main bottlenecks?
- What career opportunities are there?
- Chaincode labs seminars
- Bitcoin Dev Philosophy book
- Onboarding to bitcoin core
- What he’d like to see in Bitcoin
- Twitter: @josibake
- Chaincode Labs Seminars
- Onboarding to Bitcoin Core
- Bitcoin Development Philosophy
- SLP124 Jon Atack – Bitcoin Core Contribution
- SLP216 Gloria Zhao Learning Bitcoin Core Contribution & Hosting PR Review Club
- SLP359 Abubakar Nur Khalil – Bitcoin in Africa, Qala, B Trust, Recursive Capital
- SLP229 John Newbery – Brink: Bitcoin Development
- SLP406 Adi Shankara Bitcoin Needs Technologists & Summer of Bitcoin
- Swan Bitcoin
- Unchained Capital (code LIVERA)
- CoinKite.com(code LIVERA)
Stephan Livera links:
- Follow me on Twitter @stephanlivera
- Subscribe to the podcast
- Patreon @stephanlivera
Josi, welcome to the show.
Josibake – 00:02:32:
Thanks for having me.
So, Josi, I know you were keen to chat about I know you’ve been doing a bit of work in the bitcoin development world, doing some mentoring as well, and keen to chat a bit about the process of Bitcoin developer education. Why is it important, all of that. But let’s first start with a little bit about you. Can you tell us a little bit of your journey getting into bitcoin core development?
Josibake – 00:02:54:
Yeah, so my background and mostly why I’m so passionate about this topic. So I’ve been working in tech for about eight years before I got into bitcoin, kind of on the data science and data engineering side of things. A couple of years ago, I was getting more interested in bitcoin from the technical side, and then just came to a place where it was like, all right, the job I was at wasn’t super interesting at the time. I was becoming increasingly obsessed with bitcoin, and I took the chain code bitcoin development seminar, and it was like, all right, let’s just try this. Let’s go full time bitcoin for a while. So I jumped in kind of without a parachute, just started working and contributing to core directly, and then that turned into learning about the grant process and then getting funding. So I’ve been working for almost two years now with, well, one complete year funded by Coinbase in the first year, and then most recently with a grant from Gemini. So that’s kind of where my interest in this topic comes from, is I didn’t know anything about getting into bitcoin core development when I started, and these resources were super helpful for me. So I want to make sure that everybody else knows that these are out here and how to use them.
Stephan – 00:04:02:
Would you say the developer onboarding has improved over the years?
Josibake – 00:04:07:
I would say so, yeah. Especially, I think it comes in waves where there’s a really concerted effort from a lot of people, and then maybe there’s a lull or there’s not a lot of people coming in. Then there’s a new wave of people coming and asking questions about how to get involved in bitcoin. Then it causes people to look at that stuff again. I think in the last couple of years, you’ve seen this be more of a concerted focus, especially with things like El Salvador and other countries getting interested in bitcoin. There’s that element of like, okay, and how do we also take the local developer talent and get them involved with contributing to bitcoin and the larger bitcoin ecosystem? And some examples of that. When I first heard about this, there was the chain code seminar, but since that you’ve now had Torogoz dev, which is an El Salvador focused one, there’s a few others. I think there’s now a Brazilian focused developer education Vinteum.
Speaker A – 00:04:58:
Josibake – 00:04:59:
So you’ve seen these things kind of pop up all over the place, which indicates to me that it is getting better or at least getting more attention.
Stephan – 00:05:07:
And I recall at one point it was difficult to get funding. And I think nowadays it’s more that there is funding, but it’s more they’re looking for the right level of talent, the right level of ability, aptitude, let’s say motivation. But I guess we are in a bit of a bear cycle right now, so maybe that can wax and wane just like bitcoin’s bull and bear cycles, doesn’t it?
Josibake – 00:05:29:
Yeah, I think that’s the somewhat unfortunate part. When you’re in the bull market, everybody’s got extra cash laying around and some of them start just throwing it out like I will just developer funding. That was kind of my experience in the past where I joined a grant program and then midway through the grant program, they were like, okay, we’re not renewing anybody next year because the market is going down and this is no longer a focus for that for us. I think one thing that makes me positive about the future in this is it does feel like there are more long term partners coming in and saying, hey, we’re here to fund developers for the long run and we’re going to be a little bit more careful so that we can sustain supporting those developers through bear and bull markets. Instead of being like, oh, it’s a bull market, we’re going to fund everybody and then we go into a bear market and they’re like, okay, well, nobody’s getting money once your grants run out. So that commitment to a more sustainable long term thing is encouraging to me. I think also, like you mentioned, there’s more focused funding groups. Like, I think Vinteum is what you said earlier, they’re kind of carving out a niche. They’re saying, okay, we’re not going to raise money and fund all developers, but we are going to support Brazilian developers. And that’s an area that we can kind of focus on. Torogoz, I think, was another example. So the more that people kind of specialize in a niche as well, I think that helps make the process more sustainable.
Stephan – 00:06:54:
Yeah, and it’s fair to say there are a lot more organizations now doing this, whereas rewind the clock five, six, seven years, it might have been at that stage block stream and maybe MIT, DCI, and maybe a few individual things. But now we have this chain code, we have Brink, we have HRF, does some funding of developers as well. So I think there’s more organizations doing that. But I guess if we were to just think about the concept of just bitcoin developer education, why is that important?
Josibake – 00:07:28:
Yeah, I think it’s important for a couple of reasons. The first reason, as a developer, I want to see more developers coming in and working in the ecosystem. And when I say the ecosystem, that can be bitcoin core, that can be alternative implementations, that can be Lightning, that can be wallets. I think there’s so many open source projects in the space that need a pool of developers. And I think why developer education is so important to me is there’s quite a long funnel there. You don’t just wake up one day and say, I’m technical, I know how to program I’m going to just switch over to bitcoin core or whatever in the bitcoin ecosystem and start making meaningful contributions. There’s quite a steep learning curve, and at least for myself, what I felt like I was up against was I wanted to get involved. And I knew that I wanted to be a long term contributor, but I didn’t even really expect to see myself making meaningful contributions until year two and three. The first year is kind of just getting your bearings, figuring out how things work, helping ease the workload of others. And then maybe in that second year you start to take more ownership over projects, take on bigger things. And then in that third year, I would consider myself like a full swing developer. So because it’s such a long funnel, you got to keep people in that pipeline because people are going to start, they’re going to fall out because of life circumstances changing or losing interest. So it’s important to have, I think, constantly have that funnel filled so that there are new developers coming into the ecosystem. I think it’s also quite important to me, even if your goal isn’t, I want to be a Bitcoin Core contributor or I want to build a Bitcoin wallet. Just going through the technicals of Bitcoin is super important, even if you’re going to work in a totally different industry. But you want to somehow interface with Bitcoin, having that technical knowledge of how it works. And even as users of the system, I think it’s important for everybody to be enhancing their technical knowledge. Because the more we understand how bitcoin works, the better users of the system we are and the more active we are going to be in interacting with the network. Bitcoin requires active engagement from the users of the system.
Stephan – 00:09:43:
One other challenge with bitcoin is that there is no top down boss, there’s no CEO of bitcoin. So does that present any special challenges for a person trying to do this bitcoin development thing?
Josibake – 00:09:56:
Yeah, absolutely. Oftentimes we solve these inefficiencies through taking a very authoritarian or top down approach. And we’ve even seen this in other open source projects where open source projects will adopt a benevolent dictator for life approach. We’ll just be like, okay, we have one very strong leader of the open source project, and what that person says goes. They kind of define the direction for the project and resolve conflicts and whatnot. And that tends to work really well. Of course, that’s not going to be tenable for bitcoin. So I think that can make things very slow sometimes. And I think it requires more work on the people trying to onboard and learn, because sometimes you just want to be like, hey, just tell me what to do, like, tell me what to read, tell me what to work on. And then you say that in bitcoin. And everyone’s like, well, no, you have to figure that out for yourself. You have to decide what’s important, and you have to learn how to advocate and build consensus around your ideas as well. When you have a project manager or someone kind of leading the direction of the project, you just come in and you see like, all right, what’s on the roadmap? Okay, I’d like to work on that. You come into something like bitcoin, and it’s like, well, where’s the roadmap? Where’s the list of priorities that we have right now? And though we do have some elements of those, it really is more like, well, what do you think is important? What do you want to contribute? What do you think will be meaningful, and can you get other people to agree with you and work on something like that? I think also it can present challenges and even how do we decide to onboard people? Who decides what the authoritative curriculum is? And that’s very much up in the air as well, and something that we don’t want there to be this opinionated way to develop on bitcoin. I think there’s good reasons why it is that way. But if you’re looking for a more traditional education experience, then that’s going to be challenging, right?
Stephan – 00:11:49:
And to be fair, it might vary depending on what area of the ecosystem you want to work on. Obviously, some of the stuff you’re mentioning is most relevant with bitcoin core and bitcoin protocol level work. But if you’re just working in some bitcoin company and you’re just helping as part of their wallet and their node, and that part might be a little bit more having a typical structure, right? There might be an engineering manager or a CTO and that kind of top down leadership, at least in that context, maybe that exists there and that they might have their own pathway that they send you through, and maybe that’s what it is. So maybe you could just comment a little bit on the you mentioned the curriculum idea as well. So does something kind of like that exist today? Is it chain codes curriculum? Is it somebody else? Is it reading Mastering Bitcoin by Andreas or Grokking Bitcoin by Kalle Rosenbaum? What would you say is some of the key things that you need to learn or go through to be a bitcoin developer?
Josibake – 00:12:47:
Yeah, I mean, so far, the Mastering Bitcoin continues to be the gold standard. I think anyone who’s ever tried to do anything in a technical sense on bitcoin has at least encountered that book. I think the one I like to highlight is the bitcoin protocol development seminar by chain code. That was my first exposure to the bitcoin like programming on the bitcoin protocol. So I had read Mastering Bitcoin, then went through the Chain code seminar. And I think that the chain code seminar is really good in that from the beginning they open sourced all of that material and open sourced the model that they were using to run those with the hope that it’s not that everyone should go through the chain code seminar before they want to work on bitcoin. And that’s something they wanted to avoid. Instead, here’s a list of great resources that we’ve curated. We’ve put it into a semi structured six week program. You can join ours, or you can pick this up and run with it on your own. And that’s been exciting to see, where people have used the chain code seminar as kind of a launching point for their own programs. It’s something like I also did myself after I had gone through the chain code seminar, got together a bunch of friends who were technical and asking me a lot of questions about bitcoin and kind of interested in getting involved or just learning more. And instead of answering the same question five different times with five different people, I was like, why don’t you guys all just get together, go through this chain code material. We’ll follow loosely the format where we’ll meet once a week and we’ll discuss. And I think from that, one or two of them actually have stuck around and either moved into working for bitcoin companies or contributing. So that is, to me, kind of the gold standard of, here’s this great curriculum you can start with. You can tailor it to your needs. It’s not really gatekept by chain code. They actively encourage people to pick it up and use it, and the quality is good, and it also kind of gets around that risk of like, okay, well, everyone has to go through chain code if you want to work on bitcoin, right?
Stephan – 00:14:47:
And I understand that sometimes there have been people who’ve made a criticism saying, oh, it seems like to do anything in this area, you must have gone through this area, you must have been mentored by somebody, and otherwise you haven’t come through the right gatekeepers. And therefore you won’t be accepted, let’s say, or your changes will just not be ever reviewed and promoted and pushed forward and you’ll just be relegated off into some irrelevant area. I guess that was one of the criticisms. Would you say that’s still true or not a fair criticism?
Josibake – 00:15:19:
It’s something I’ve never experienced, certainly both. I’ve never been criticized for not coming through a proper channel, and I’ve also been working with other people, never heard or gotten a hint of that. Certainly if that’s been someone else’s experience, I can’t be like, no, you didn’t experience that. But it’s something I’ve never gotten a whiff of and something that I would probably call out and push against pretty hard. And I also think just by design of making that material available for others, I think Chain Code is doing a good job of hedging that criticism a little bit and saying, look, obviously people can still go through our seminar, and we’ve put a lot of work into making it run smoothly. But anybody can run these seminars. And it seems like people have been doing that. And running does. And I would hope that the people coming out of INTM and some of these other programs aren’t feeling like, oh, I didn’t get the chain code approval, so nobody’s paying attention to the work I do.
Stephan – 00:16:15:
Yeah, of course. And to be clear, I’m not criticizing chain code. I mean, I’ve looked through some of the material and I’ve personally benefited. I’m not even a developer myself, obviously. I’m just trying to stay up to date on what’s going on and try to learn about things.
Josibake – 00:16:28:
It’s a good thing to call out though, right? We want to be careful. You want to avoid criticism and the appearance of criticism. You want to avoid evil and the appearance of evil. Right. You want to make sure that you’re running the thing in a way. That’s why the open sourcing of it is so important. That not kind of holding it and saying, it’s our program, because if there were another group to come out and be like, we’ve created this amazing Bitcoin education content and we’ll help you be a developer, but you have to go through our program to do it, that to me, would be a red flag. I’d be like, well, why can’t you just show us the material you’re using? And if we want to use your program, we can, if we want to use it ourselves. So these little distinctions I think, are important for stuff like that.
Stephan – 00:17:11:
Yeah. And I think one other area is this notion that it’s one thing to have a training or a seminar, but I think it’s also important that people see there’s a light at the end of the tunnel, that there’s some kind of paid opportunity. And I think that’s what makes people have real interest, because you might be, let’s say you’re a computer science or developer or some kind of student today, and you’re looking, okay, what are my career pathways? I think it’s important that there’s some kind of viable pathway at the end. Right?
Josibake – 00:17:40:
Yeah. That’s super important. It’s difficult to have the motivation to take on something as big as learning Bitcoin protocol development if you don’t have some sort of tangible benefit for yourself, even if it’s just a deeper understanding of it. The flip side of that is that’s not something that’s very difficult to guarantee. That’s a very difficult thing to say. Like, if you go through this program, you’re going to get a job for sure. And there’s also an element of, like, you certainly want people who are doing it for a reason, and the motivation has to come from somewhere. But there has to be an element of I’m doing this because I’m internally motivated to do it. There has to be an element of learning this because I want to because I’m fascinated by it. I want to enrich my understanding. I want to find a way to contribute no matter what? Because sometimes that light at the end of the tunnel is going to be very unclear. And how are you going to motivate yourself to keep doing this if it’s unclear if you’re going to get a job in a company or if it’s unclear if you’re going to get funding. And I try to be really careful when I’m chilling these things to people and being like, you should look into this to not also be like, look, if you go through this, you’ll definitely get a job or you’ll definitely get a grant. Because then if that becomes your motivation and you’re like, all right, cool, I’m going to do this, I’m going to get a grant, I’m going to get a job. You go through it and that doesn’t materialize, then there can be just frustration and anger and be like, well, I went through the program. Whereas if we set healthy expectations and be like, look, there are job opportunities out there, there’s a real need for these things. Lightning developers, Bitcoin developers, contributors, and there are people willing to fund and grant, you are going to have to put in some work here and we can’t guarantee something at the other end of it. So you got to look deep in and be like, do I have the motivation to carry myself through this even if there’s not a guarantee at the end of it?
Stephan – 00:19:27:
Yeah. And so I think I’m curious to hear from you if there are any bottlenecks that you see today. Like, what kind of bottlenecks do you see in terms of that pathway for a person to go from not knowing Bitcoin development to being a meaningful contributor or working in some kind of Bitcoin role?
Josibake – 00:19:47:
Yeah, I think two really big bottlenecks I see one is people running these seminars. There is an organization component. Someone has to curate a list of participants. Someone has to go through applications and be like, all right, we’ve got all these people that are expressed interests. Someone needs to run the logistics of, like, let’s all meet on Gypsy or, you know, Google meets once a week and here’s I’m going to pair you up in groups and whatever. So Chain Code has been doing that with their seminars. And now we have a few of these others that we mentioned. But I think that’s the first bottleneck is that this is designed where you could have many, many different seminars using the same course material, running all over the world concurrently. It just takes someone to run it and do those logistics. So I think that’s number one. I think two on the other end of it, on the other side of that bottleneck, is who are the companies that are hiring? Who are the projects that need contributors? So now we’ve got a bunch of people in at the top of the funnel. Where do we send them at the end of the funnel? And can we meet those expectations, maybe third. And one that I think is always going to be a problem is just mentorship. Do we have people that are kind of engaging with people who are learning and growing? Do we have a chance for them to meet one on one? Do you have a chance for people to kind of share their experience of what’s worthwhile for them in the project and not? And I know this happens in Core and a few other projects. There have been people who will volunteer to mentor, but that oftentimes ends up being a bottleneck because we’ve all got a million and one things that we’re working on. And then asking someone to add this additional thing that can be really intensive is a difficult ask.
Stephan – 00:21:26:
And so when it comes to onboarding to bitcoin core, I know there was an interesting website and resource. It’s OBC 25, six K, one dev, and it’s got a full on, it’s quite an in depth resource going really into what is the process. Could you tell us a little bit about this site?
Josibake – 00:21:47:
Yeah. So this is the onboarding to bitcoin core document. This has been Will Clark has been putting a ton of work into this over the past year, I think in conjunction with Adam Jonas and a few other people from Chaincode. But the idea is when you go into the bitcoin protocol development seminar, you’re just kind of learning a high level overview of bitcoin, the protocol and how things work. So that’s great. You know how everything fits together, but you’re a developer and you’re ready to start contributing to bitcoin core. Where do you go next? And some people had identified that there was a gap there of like, there really doesn’t exist this high level overview of the code base of bitcoin core. Like what are the sections in the code, how do the different modules fit together? And so that’s what is being tackled in this document, where it’s like, okay, it’s expected that you kind of understand how bitcoin the protocol works. Now do you understand how bitcoin core, the code base works? And it’s organized as kind of that high level to where it won’t need to be updated super often as the code changes, but it’s still specific enough to be helpful. So it gets into certain classes and code organization. So this is a relatively new resource. We’re planning to use this in the current Qala Cohort that I’m helping mentor. I imagine it will start being incorporated into a lot of other developer education programs. And I think it meets a need that has existed for a while of what’s the high level view of how all these moving parts work together. Because even just bitcoin core the code base is quite complex.
Stephan – 00:23:18:
And as you rightly, I guess allude to there are multiple implementations of bitcoin as well. So there’s like Bitcoin core and BTCD and Bcoin.
Josibake – 00:23:27:
I think the way this is written, it is very much tied to how Bitcoin Core is organized, but it’s also written in such a way that some of the stuff that it’s talking about would be valid if you were looking at Libbitcoin or something else like that. And that’s an interesting point too, because the Bitcoin Protocol development is not specific to Bitcoin Core. What you’re learning in the Bitcoin Protocol Development seminar is more just Bitcoin to network what are mining versus peer to peer. This is a handbook to Bitcoin Core, the client, but with kind of points of what is consensus and validation and why do we keep that code separate from this over here? So I think it would still have uses if you’re interested in looking at another implementation.
Stephan – 00:24:09:
Yeah, and now you mentioned Qala as well, so we should chat about that also. Listeners, I have an episode with Abu Bakr as well. But Josi, give us your take. What’s Qala and what’s your involvement there?
Josibake – 00:24:20:
Yeah, Qala is awesome. I saw the first cohort happen last year and was really excited about the effort. And so because I’ve been involved with the Bitcoin, the Bpd seminars ever since taking them, I usually try to pop back in as a mentor. A few people reached out and asked if I’d be interested in helping mentor this next cohort in carlo. And so as mentors and instructors, we’re more just there to guide the students and help them. Because I think Kala much like the Cenko seminars, it’s very much a peer to peer learning style, where we’re not setting up a classroom environment where we teach and they listen. And there’s this one way flow of information. And it’s very much here’s all of this material that we need you guys to go through, a lot of it’s drawn from the Bpd seminar onboarding to Bitcoin Core will be used as well. Other resources, read this together, discuss it, and then we’re going to apply it to projects. So as a mentor, we’re more there to just kind of shepherd that interaction, ask questions, to kind of push the students to dig more, answer questions when people are stuck, and help unblock them as they go through technical projects. And I guess perhaps I should have mentioned, for the benefit of the listeners, what call is it’s a bootcamp that’s focused on African developers. And they’re already technical, and that can mean either university or working in a software engineering position. And this is how do we take you from being a software engineer to a software engineer who understands and can work on Bitcoin? So it’s very hands on, very project based. And the goal of Qala is, at the end of it, we have them interviewing with Bitcoin companies or contributing to open source projects. So there is that very tangible. We want you guys to do this as a transition into a Bitcoin career. I think the first cohort was full time, and then one of the. Learnings there was like, that’s quite an aggressive ask to ask people to quit their jobs and do this, especially as the market’s uncertain not only in bitcoin, but in the wider tech industry. So this new cohort that I’m a part of is part time.
Stephan – 00:26:28:
Yeah, and that makes a lot of sense. And so any other resources? I know there’s another one called bitcoin dev philosophy. So this is an e book I’ve seen. Can you tell us a little bit about this one and what’s going on here?
Josibake – 00:26:40:
Yeah, I think this is kind of the third. So you have Bpd seminar, which is an overview of bitcoin, the networks and the protocol and how it works. And you have onboarding to bitcoin core, which is how the reference client works, how bitcoin core works. Then you have this bitcoin philosophy which is kind of the as people who build things in the bitcoin ecosystem, whether that be full nodes or wallets or whatever, what kind of principles guide our decision making? And this is something that’s really interesting as you start to interface with devs from all over the world and we’re working on bitcoin, we all might have and we should have a very diverse set of personal views both on the use of bitcoin and how we want to use it and how the world should use it. But then there should be some things we can all agree on as developers and kind of have consensus around. So when we come to building on bitcoin and working on bitcoin, what are the things to keep in mind? And those are kind of laid out in the bitcoin philosophy document. So they cover things like decentralization, why is that so important? And trustlessness, why do we make these trade offs in Bitcoin? And that guides development decisions because oftentimes as a software engineer, you can go towards a more centralized, trusted model and end up with something that’s far more efficient. There are reasons why we build trusted, centralized systems. So as a software engineer, when you’re facing with like, okay, this is really hard, why are we doing it this way? We could just do it this other way. That document kind of serves as a good starting place for everyone to be like, no, this is actually super important that we do it the hard way because of these principles in bitcoin. So that document covers some things like decentralization privacy and other topics to kind of be like, these are things that as engineers, we should all kind of have some agreement on and build these principles into the software and the projects that we do.
Stephan – 00:28:35:
So it can be understood like these are broadly understood. These are some of the goals of the project in a way, and that if you do something that cuts against those, then that change may not really get approved. The other users and bitcoin is may not really go with that change. And so therefore there’s not really much point trying to do something that’s going to cut against some of these high level ideas. And of course there’ll be debate exactly the nuances of how much of this versus that should we have. And I guess that’s where the online discussion can go, whether it’s IRC or online on social media and so on. So also, could you outline just for listeners who maybe if they’re new to Bitcoin development, where does most of the discussion take place?
Josibake – 00:29:23:
Yeah, so at least in Bitcoin Core, a lot of the discussion is happening in the Bitcoin Core dev IRC channel and some people are kind of like, why IRC? It’s a very low bar and it’s easy for people to participate from anywhere without compromising privacy and other things like that. IRC is one of the more decentralized chat solutions out there. So it’s kind of this nice middle ground. So a lot of we have the weekly IRC meeting which discusses things just particular to Bitcoin Core. There are other channels on IRC that people will start for development stuff. There’s like a Bitcoin builds channel and there’s used to be a wallet channel. I’m not sure if that’s still maintained. So IRC is kind of the first place you go to. There’s also other groups. There’s the Bitcoin design channel on Slack if you’re less on the hardcore coding and more just on the design side. So that’s where a lot of people kind of gather and work there as well for also new people coming in who are interested in getting involved. There’s the Bitcoin Core PR Review Club, which also happens on IRC. And that is a great way to get your feet wet. It’s a very new, friendly place where we meet once a week and someone has volunteered to go through a PR. So they’ll pick a PR that’s open in Bitcoin, they’ll curate some questions to kind of encourage thought amongst the members. Everyone will review before the IRC meeting and then they just get together and chat and discuss it. And it’s a place to kind of attract new people and get them involved with bitcoin development. So those are kind of the main areas to get started. When I first got interested in bitcoin development, I just joined the Bitcoin Core development channel and just lurked for like three months, just listened and kind of got a sense for the communication style and what kind of things were discussed there.
Stephan – 00:31:20:
Yeah, then there’s also GitHub commentary and now this is more specific to Bitcoin call, let’s say. Although, I mean, GitHub is used for other projects too, but we’ll see people discuss there in GitHub commentary about various pull requests or issues. And then there’s also the mailing list as well. So if you could offer a bit of a comment there on any involvement you have there and what to expect there.
Josibake – 00:31:44:
Yeah, so GitHub is a great place for technical, just history, a lot of really good discussions that have happened on PRS and in issues, we back up all of that metadata from GitHub. So in the event we ever had to move, we could take it there with us because there is such a rich history there. Oftentimes when you’re thinking of something that you want to do or an idea you’ve had, one of the best places to go is go look at PRS that have been merged or closed and look at GitHub issues. And you’ll often find discussions going all the way back to, you know, 2014 or older with the really well thought out arguments between different developers on these things. So that’s an amazing resource. You also mentioned the mailing list, which is great for more long form posts. So you have an idea or something and you want to get wider feedback from the bitcoin ecosystem. And with bitcoin mailing list, you’re not even really limiting yourself to just bitcoin core. So you’re going to get feedback from everybody involved in developing on bitcoin. And then that way you can kind of craft a much longer form, more thoughtful post, and then people can respond in longer form, which is really great. So oftentimes you’ll see people kind of like submit something to the mailing list for this really big feedback session, which then gets distilled down into opening a PR or an issue or something a little bit more specific. And you mentioned one more, we said mailing list GitHub.
I think that was it. I think it was GitHub issues, pull requests and mailing list. But yeah, there’s bitcoin dev mailing list. There is the Lightning dev mailing list as well. Obviously more focus for the Lightning developers out there and then yeah, I guess if we could talk a little bit about your experience as well, like nowadays with contributing in bitcoin core, what kinds of things are you focusing on?
Yeah, for myself, so I spent a lot of time last year working in bitcoin core. I split that time about half actually working in the repository. So reviewing PRs and adding contributions myself. I tend to focus on the wallet just because when I first started, a piece of advice that I got from another developer was scratch your own itch. Find a part of bitcoin that you use or that you actively use because then you’re going to be the most motivated to work on it and you’re going to have the perspective of a user as a developer. So I was like, well, I use the bitcoin quarter wallet and there are some things about it that annoy me, so why not start there then really started to enjoy it because while they sound pretty simple, there’s a really complex space there of problems with implications for privacy and efficiency and a lot of different things. So I focus there and then in the other half of my time, I work on the data side of things. So I’ve been working on a project around collecting Mempool data and analyzing that with one of the researchers from Chaincode. Going into this year, I’m spending also of my time in the wallet working with Ruben Thompson on the silent payments scheme, so helping do review there. And then beyond that, I think I want to branch out of the wallet a little bit and maybe get more into the cryptography, dust off all my dusty maths.
And so for people who aren’t familiar, there are these different areas of Bitcoin Core. Could you just explain what those are for people who don’t know?
Josibake – 00:35:13:
Yeah. When we talk about the different areas of Bitcoin Core, I tend to generally think of this in terms of modules and code organization. But some of the major areas are so the Mempool is one kind of discrete area of Bitcoin that can be focused on from the Mempool. Then you have peer to peer and there’s lots of different sub specializations within peer to peer. But peer to peer is one of those broad categories. You have the wallet, which is kind of a self explanatory module of bitcoin core, and then you have consensus and validation, which is a part that nobody wants to touch or at least touch very carefully. I would also put the build system as its own module. So how we build bitcoin core, how we manage the dependencies, how we make things reproducible, et cetera, that’s kind of its own unique area as well. There’s been some discussion about even breaking out more granular sections like low level net processing has been something being discussed recently and I’m probably missing others. Testing is kind of considered its own module. So the unit test framework and the functional test framework, we have people that kind of just regularly contribute to that area.
Back to the show in a moment. If you are worried about your Bitcoin custody and you want to upgrade your security, give yourself that peace of mind. Unchained Capital can help you. They have a concierge onboarding program where they guide you into using multi signature. So this is one of those things where you can dramatically improve your security by removing single points of failure. And Unchained Capital can send you the hardware. They can do a call with you and walk you through the process, even if you have never held your private keys before. So this can dramatically improve your peace of mind. If you go to Unchained Capital, they also have an inheritance protocol, so this can help prepare you to make sure that your heirs can receive those coins as opposed to losing access to your Bitcoin. So they have step by step checklists. They have a range of tools that you can use as part of the process. So if you’re interested in this, go to unchained.Com/concierge. And finally, are you still using a plain old block explorer? My favorite is mental space. You can use mental Space to target your fee for your transactions so that you can keep an eye on what’s going on on the blockchain. And you can use this to target your fee based on how impatient or how patient you are in getting your transactions confirmed into Bitcoin’s blockchain. So on Mempool.Space, you can see the mempool, you can see the blockchain, you can see the Lightning Network, and you can see other Lightning nodes. And I use Mempool.Space as Lightning Explorer as well when I want to pick somebody to open a Lightning channel with. So it’s a really great tool and you can host it yourself. So for enterprises Mempool.Space offers custom Mempool instances. You can have your company’s branding, you can get increased access to the team for feature requests, increased API limits, and more. Go to Mempool.space/enterprise. And now back to the show with Josie. Got you. And also, if you could explain for people who are doing Bitcoin development, basically, if you could explain a little bit about testnet, reg test and signet, if you could just explain what those are. Why do we use those?
Josibake – 00:38:23:
Yeah, so starting with reg test, that’s, I would almost call it like a dev environment, like a local dev environment. You can spin up a little chain and you can run nodes, but it’s all local to your computer, everything’s networked to your computer. So register is what we use for running the functional test framework. We’ll actually spin up a node and then we have these python wrappers around it that can manage the interactions between these nodes, simulate different experiences, but it’s all local to your computer. Testnet is kind of one step more complicated than that, where you can join a network that you’re interacting with other nodes. And I believe there is a mining component to testnet. You can also get test Bitcoin. And so you can start to run through different workflows, all with fake Bitcoin. So, like, I want to test a multi SIG set up, so I’m going to spend up a node on testnet, I’m going to get some testnet Bitcoin, and I’m going to send a transaction, make sure that I can spend it, et cetera. So it’s like a playground. And then from Testnet, you have a much more formal and cleaned up version, which is signet. And Signet actually has a regular mining function. So you can have blocks get mined, you can interact with other nodes. There’s been some discussion recently about having multiple signets. So I think AJ has been running something Bitcoin in position, which I haven’t dug too much into. But that’s an idea of like, if something is a potential software for Bitcoin, we can throw it all into this Testnet and kind of see how stuff interacts. So this is super important for developers, right? Like, you’re working on something, you want to see how it works in the wild, so you got to run it on testnet or signet, but it’s also an amazing resource for people who just use bitcoin. You can actually run a node, do stuff with sending, receiving transactions, complicated wallet, backups recoveries, and you can do it all on something like signet or testnet. It’s behaving the same way it would on maintenance, but you can give yourself that confidence to know what you’re doing before you actually run something on main net. So good for developers, but also good for users.
Stephan – 00:40:28:
There’s also this concept of a good first issue and an issue tracker. So can you just explain a bit about that?
Josibake – 00:40:33:
Yeah, in bitcoin core, there’s a label that as we run into stuff, or if someone has an idea, you can put an issue and you can put the label on it. This is a good first issue, and that’s a way to draw in and encourage new developers to get involved, because when you start contributing to any open source project, there’s the subject matter expertise, which in our case is bitcoin, and then there’s just the general knowing how to work in open source expertise. And oftentimes people have neither when they first join. So a good first issue, I think, is a way to give someone an opportunity to go through the process of working in open source with something that doesn’t require a ton of bitcoin knowledge. So you’re familiar with how bitcoin works, you’re familiar with the fundamentals, and here’s a task that’s pretty easy. It’s easy to wrap your head around and doesn’t require this, like, deep understanding of the code base or even of the bitcoin knowledge. And then that allows you to go through that process of, like, opening a PR, getting feedback, making sure your commit hygiene is really good, writing good descriptive messages, seeing it through, because even like, a good first issue can be open for months or even a year. I think for myself, I found a good first issue when I first joined the project, and someone had taken a stab at doing it before and had kind of fallen off. So I found this issue, and it ended up taking a year for it to get merged. But it was like a good exercise for me of learning what’s the communication style in bitcoin core? How do you kind of ask for review, how do you rebase, et cetera. And so you get a lot of feedback that doesn’t have anything to do with bitcoin, even on those good first issues. Something that it’s always difficult to keep that pipeline primed. But as we as developers, as we work on Bitcoin, we’re trying to keep an eye out for, like okay, here’s here’s a nice easy thing that I could probably fix really quickly. But if instead, if it’s not critical, can I make it a good first issue and can I put it there for somebody else? Who it wouldn’t take me that long to fix it, but it could also be a really great teaching tool for someone else.
Stephan – 00:42:42:
I see. And I think it’ll also be interesting to chat a little. I know John Atack has also been quite vocal about this idea and I think generally people talk about this idea that it’s like there’s a bottleneck in terms of how many people are doing review because people want to do a new contribution. But actually what people need or what the project needs is experienced reviewers and review time on other people’s full requests.
Josibake – 00:43:05:
Yeah, it’s a great thing to call attention to. Oftentimes this is true of myself and I’m sure there’s other developers that feel the same. It can feel not as rewarding to do something like review. So our inclination is to write new code like I want to write a test or I want to write a new feature, I want to fix a bug. And that’s more satisfying. And it’s satisfying to see code that you’ve written get merged into the code base. But oftentimes the real work, not only in terms of importance but in terms of difficulty as well as review. That’s where we really need people with expertise scrutinizing the code that other people have written to make sure that we’re doing things in the best way and we’re not introducing bugs or Codecraft or whatever. And so I think because maybe sometimes we think of review as as not as serious of work or it’s not as rewarding. It can be easy to put off and you think, okay, I’m going to contribute to Bitcoin Core, so I’m going to I got to find something to write or fix when instead really just showing up and doing good. Thorough review is the thing that’s going to help the project the most. That being said, like anything we can say, okay, well, all new people to the project have to do review and if you’re new, don’t open new PRS. That’s also not what we want because if you have this amazing idea and you have expertise in this area outside of Bitcoin and you can come and make an amazing contribution, we would want that as well. But I think it’s good to keep in mind, at least for myself as well as I work in the day to day, I try to balance like, okay, I’m opening PRS, which is really demanding review or asking for review from other people. So am I also balancing that by giving review when I’m able to? So I open PRS but also look for, okay, there are things that I can help review to help move someone else’s project along. One way. I’ve kind of trained myself to think about it as well. And I found this to be true in practice is I also benefit a ton from doing good, thorough review when I take someone else’s PR and code that they’ve written and I go through it line by line, and I really think about what is going on here. What are they trying to do? How is it interacting with this part of the code? I’ll often give myself one to two days to review even a small PR because it allows me to really dig into what’s happening. And the benefit there is I’m able to take my own learning and turn it into a deliverable work product to someone else. So as I’m learning about this and digging into the code, I’m taking notes. Anything I don’t understand either about the code base or what the person is doing, I’m writing questions and then I can synthesize that into a review and be like, okay, I went through this. This was my understanding. I didn’t understand why you were doing this and I thought maybe you could do it this way, et cetera and et cetera. So that’s encouraged me to be a more active reviewer. It’s I set time aside for myself to learn and then I turn that learning back into something that can be useful for them. That’s always going to be a push and pull in the project, I think too, because doing review can be very exhausting in some ways. It’s more taxing, I think, than just sitting down and banging out some new code. So balancing your review with also something a little lighter or something a little bit more rewarding is important.
Stephan – 00:46:19:
Sure. And so can you give listeners just a taste? What does a day in the life look like for you as a bitcoin core developer, just so they get an idea what they could look forward to?
Speaker B – 00:46:30:
Yeah, the first thing I would say is a day in the life of one bitcoin core developer is going to be as unique and different from a day in the life of another. And that’s a cool feature of the project to me. We have some people that work on bitcoin core and they go into an office with coworkers. We have other people coming in from all over the world at various hours, different working styles, and that’s something I enjoy working with, that really diverse and international group of people. But for me it usually starts with I wake up, try to read through the IRC channel to see if there’s anything I’ve missed. You also have a handy little GitHub bot that posts in the IRC channel when PRs are open and closed. So that’s kind of a way to see the feed of what’s coming in. Does anything strike me as super interesting from there? I’ll usually add a few things to a review to do list, like, oh, that looks really cool, or that’s a part of the code base that I have an opinion about. So I kind of want to see what’s going on here. If I have any open PRs, that’s the next thing I’ll look at is, has anyone given me feedback? Is there anything to address? Do I need to rebase or whatever? Do I have any outstanding to do on this, and then after spending some time in Core, then it’s okay. Are there any other projects that I’m working on right now outside of Core and devoting time to that? The interesting thing I’ve found is there’s a lot of benefits to having a boss and there’s a lot of benefits to going into work and having someone tell you what to do. So oftentimes the struggle I find as a contributor is waking up in the morning and motivating myself to do something, finding something to do that is valuable, convincing myself that it is valuable work because as independent contributors, there’s not really anybody telling us, this is what you should be working on. This is your highest priority. Don’t work on that other stuff. Work on this instead. So managing your motivation and even your own sprint, if you will, of like, what do I want to accomplish? And sometimes dealing with the doubt of like, maybe I’m the only one that’s interested in this. So I think another thing that I try to focus on is interacting with other people as much as I can. And that can be interactions on IRC, that can be just asking another developer that, you know, hey, can we hop on a Zoom call real quick and chat through something? Or also attending technical conferences so that you do feel like you’re a little bit more connected and you can get the pulse of the ecosystem of what are the big rocks that people are moving.
Stephan – 00:48:59:
Yeah, I see. So I’m also curious if you have any views on what do you want to see come to Bitcoin? Like, are you looking for, let’s say, more privacy or are you looking for more scalability? Are there any high level ideas that you’re really interested to see come to Bitcoin?
Josibake – 00:49:17:
Yeah, for me, and I think part of this is what drew me to the wallet. Privacy is really big for me, that’s a huge area, it’s a huge topic, and I think it’s of utmost importance in Bitcoin. So as I’m deciding on stuff to work on or think about, usually the privacy aspect is what attracts me to something. So there’s a number of things in the wallet where we’re working with privacy. I think cross input, signature aggregation is something I want to look at later in the year because that could be a really big win for privacy in bitcoin, because it’s a way where we can almost make privacy the cheapest, most effective option when those things are oftentimes at odds with each other. So those are things I’m excited about. Peer to peer, v two is another it is privacy. There’s a lot of other things involved with it, but that’s something I’m excited about and would be a pretty big upgrade to bitcoin. But the privacy, the wallet stuff is also super interesting for me. Not just from the privacy, but we can do a lot more just with regular old bitcoin script and bitcoin transactions. We’ve got mini script, we’ve got Taproot. You’ve seen a lot of proposals recently around Covenants and like, James O’Brien recently with Op Vault. So there’s all these cool ideas of like outside of just regularly sending and securing our bitcoin, we can build much more robust systems and that’s all going to be happening in wallet development. And so that’s something I’d really like to see because I think that’s key for adoption and scaling bitcoin is how can we enable bitcoin to be more feature rich and more foolproof so that we don’t have this very high bar of to safely use Bitcoin and custody bitcoin, you need to have all of this knowledge and all of this complicated set up. So those are the areas where I get really excited of lowering that bar and making bitcoin easier and safer for people to custody and also improving the privacy of the system.
Yeah, interesting. And I think this is an area where people talk about you see debates even in the community of people saying, well, why is Lightning such a high focus? Isn’t it more about hoddling? And we should make multi signature easier to use? And then of course, everyone has their own different priorities, what they think is important. But for me, I would really like to see noncustodial, or let’s say self custodial, or maybe it’s a more precise term, self custodial scaling. And so I guess the way I’m seeing it, I’d love to see something like any prevail out. And now I know that’s a soft fork idea, but that could massively scale the number of people who could self custodially use bitcoin, because where we are today is tiny. Right? And I’ve mentioned this before, and I’m sure you’re familiar with these ideas as well, right? If the UTXO account is something like 85 million, or let’s say Glass Node has estimated the number of on chain entities at 30, even if we round up, let’s say 40 million, if the world is 8 billion, that’s half a percent. We are half a percent. That’s the max number of people who have bitcoin today. And we know many of those are just kind of like some person who has maybe $50. They’re not storing like a significant portion. And so I think that’s maybe where the real if we look out over the next five to ten years, what would really move the needle? I think that’s one example. But yeah, the privacy aspect as well. Could it be easier for people to do coin joins or maybe easier for people to do this kind of pay join thing where let’s say you and I open a channel, and, we both contribute inputs into that channel, and then now we’re starting to break we’re starting to cut against the common input ownership heuristic. So that would be massive for privacy, right?
Josibake – 00:52:56:
Yeah. I think oftentimes we put these things in boxes. We’re like. Okay, well, I care about hodling, so I’m only going to care about on-chain custody and whatnot, but I care about scaling, so I’m only going to work on Lightning over here. And a lot of times these things interplay with each other a lot. Actually, I’m super excited about Lightning. I kind of have to keep myself from getting more involved with Lightning because I think it’s so cool. But you can’t focus on both. You have a limited time. But I think there’s a lot of really cool ideas of how we can improve privacy and other features by the interplay between custody and Lightning. And so when you’re opening channels and closing channels and moving funds through Lightning, what are the privacy benefits we can gain from that? I think you’re also right about the custody thing of not just scaling the custody, which is in itself already a problem. I think people have talked about this before. Not everybody is going to be able to own a utxo if we do the math and take those numbers out. But even just scaling the improving not scaling, but improving the user experience of custody, because when I first got into Bitcoin, I was scared to take control of my own money because you’re like, it’s the first time in my life I had actually been responsible for my own money. It wasn’t the bank. It wasn’t a credit card company or an app or whatever. It’s like, oh shit, if I screw this up, I lose my money and there’s nobody to talk to. And I think the more that we can give users feature rich wallets and tools to help them to have more confidence in their self custody, that’s going to really improve. I also see the interplay between to scale Bitcoin correctly, to scale Lightning correctly. Someone’s got to own that bitcoin. Someone’s going to custody that bitcoin. And I think a vision of the future where it’s only major Lightning nodes running and managing and users are using a mix of custodial solutions on Lightning is not really the future that I would want for Bitcoin. So, you know, the custody thing and the on chain management is important even in the scaling conversation because we want to make sure that it’s the actual participants of the network that are doing this.
Stephan – 00:55:12:
One other area, I think some listeners might be curious your views in terms of privacy. There have obviously been a lot of criticisms of Bitcoin’s lack of privacy. And I think in the early days it was probably fair to say if you let’s say we’re careful about how you acquired your coins, careful about how you spent the coins, maybe the chain surveillance techniques were not as advanced. Whereas today there’s a sense that people sort of scoff at this idea that you can have privacy on-chain. What’s your view? Do you think that will be feasible for many people to do? Like, are they all just going to use coin join and tour and other pseudonymity techniques, or do you see that it’s just a fundamentally difficult problem and we may not make that much progress in terms of on-chain privacy?
Josibake – 00:56:00:
Yeah, I would say first and foremost, recognizing privacy in the digital age period is a fundamentally hard problem. And I tend to be skeptical and suspicious of anybody who claims they have a silver bullet for it. Just trying to be private with your digital identity is almost an intractable problem. Trying to be private with your bitcoin is a difficult problem. I don’t think, however, that given the difficulty of the problem, I don’t think that I’m ready to throw in the towel on bitcoin. I know there’s a lot of criticism saying like, the privacy in bitcoin is terrible. Sometimes it feels like those criticisms are presented a, “we have a solution all you have to do is this”, and if bitcoin just did this, everything would be better. And I don’t think there are many examples of that in bitcoin. I think a lot of times we’re looking at trade offs and we’re looking at, okay, we could do this one thing over here, but does that hurt some of the other aspects of bitcoin? So privacy is something that’s usually held in tension with a lot of other things, which makes it a complicated space. I am excited about some of the things that we’ve been working on in bitcoin and ideas to improve privacy. I think there’s some low hanging fruit and there’s some work we can do to make it more private or to stop ways that are just obvious leaks that shouldn’t be there. And I also think a big part of privacy is especially with bitcoin, is going to be user education. As much as possible, we have to make privacy the default because if it’s something where we’re requiring the user to do a specific thing that’s outside of their flow, then privacy becomes very difficult. So it’s both a user education, but also creating the system to be opinionated about privacy. I think it’s always going to be a challenge. And every time that we come up with some new killer privacy features, someone’s going to come up with a way to break it. And there’s always going to be this cat and mouse game in privacy. I think when I look at the best privacy we can have on bitcoin, I’m excited about a lot of the ideas on the interplay between you have your on chain history and then moving to Lightning and then coming back to on chain. Is there things we can do there that work into the actual user flow that can protect and help the privacy? Coin joins obviously too. Are there ways that we can make coin joins easier to participate in? Are there ways that we can make coin joins cheaper to participate in, such that maybe you want to do a coin join not just for privacy, but also to send a cheaper transaction saving. Yeah, and there’s a lot of ideas too around these collaborative protocols. I think you mentioned pay join earlier, but I think there’s some unexplored territory where when people say, like, oh, privacy is bad on bitcoin and we’re just going to give up, it’s like, well, there’s a lot of work to do, right, and there’s a lot of room to improve, but we got to have people that work on this and study this.
Stephan – 00:58:47:
Yeah. So as you mentioned, you mentioned some low hanging fruit. So if you had to name a few low hanging fruit ideas for bitcoin privacy, what would they be?
Josibake – 00:58:57:
For me, it’s mostly looking right now, I feel like the low hanging fruit isn’t just transaction construction. So one of the things I had started with about a year and a half ago was just looking at the on chain heuristics that were out there trying to apply them and see if I could use them. So one area like change output detection, can I figure out which is the payment and which is the change? So I pulled up a wiki, wrote some code, and figured out that, yeah, there are some heuristics that we can use to pretty easily identify the change output. One of those being when you have different script types. So I made a change to the Bitcoin Core wallet and coin selection that was like, okay, well, if I have a bunch of mixed script types, let’s only try to spend them together so that I don’t end up exposing more information than I need to in the change output. So that was kind of one area. And as I dug more into coin selection, it was like, oh, there’s actually a lot of privacy implications in coin selection and a lot of things that we could probably do. One example I think in Core is we have the branch and brown which tries to make changeless transactions, right? But in order to make changeless transactions, you need to have a certain UTXO pool to pull from. So Branch and Bound is going to be more able to make a changeless transaction, which is very good for privacy when your UTXO pool has a certain number of UTXOs and a certain size of UTXOs. So to me, there’s an opportunity of, all right, well, if we want changeless transactions because that’s good for privacy, how can we over time make our UTXO pool manage our UTXO pool so that it’s conducive to make changeless transactions? Which is I don’t think anyone’s looking at that right now actively, but that would be a cool area to kind of research and figure out maybe occasionally, if fees are low and it’s ideal to do so instead of making one change output. I can make four change outputs of different size. Because then that will help the chances of my subsequent transactions to be changeless. So I think there’s tons of ideas in that area alone of wallet coin selection and transaction construction, of how do we make sure that we’re not leaking any information more than we need? And also, can we also be proactive? And can we take kind of like countermeasures in transaction construction to break known heuristics and that’s plenty of runway in that space, I think.
Stephan – 01:01:17:
And so the way you’re seeing it, then maybe some of those ideas would involve more interactivity. And so perhaps that’s maybe where some of the challenges and I’ve seen people talking about this as well, where once you introduce that interactivity, there can also be other risks. Like maybe there’s now a dos vector or maybe someone can come to you and say, oh, hey, Josi, show me your UTXO set so that I can do a collaborative transaction with you. But actually I was malicious and I was just doing that to kind of figure out what your coins are, right. So I can understand that it’s a complicated area because people want simplicity and they just want to show, okay, here I am. Here’s, Josi. Here’s my Bitcoin address. You can pay me to that. Now, of course, single address is not really a good practice, but there are people doing that. And so there’s always this interplay there between what’s easy and just kind of practical and then what’s better for privacy.
Josibake – 01:02:10:
Yeah. And I think requiring more interaction, requiring more input from the users, almost always means that people aren’t going to do it right. Human beings, we’re pretty simple. We’re going to go for the path of least resistance in the system. And so for me, it’s also how can we behind the scenes be making proactive decisions for the user? How can we make the wallet be opinionated about coin selection? Because there’s one school of thought which is like, well, let’s just give the user tons of options and tons of different protocols that they can interact with. And some people are going to do that, but the vast majority aren’t. So how can we make sure that the friction to participate in a coin join is so small that it just kind of people just start doing it without even thinking about it? Because that’s the only way we’re really going to see that increase. How can we make the wallet be more opinionated about privacy so that the user doesn’t even have to worry about it? They just send some Bitcoin and know that their wallet is making privacy decisions. The single address is another great example, and why I’ve been focused on silent payments with Rubin is the easiest thing you can do is just give someone a Bitcoin address and reuse it and be like, hey, you want to send me Bitcoin? Just use the one that I sent you last time. And we all know that that’s terrible for privacy, but people are going to do it because it’s convenient and so the more that we can make something just as convenient that also preserves privacy, I think, is where you win the battle with users. But yeah, especially when you start talking about interactivity and protocols, then it’s not just the privacy, but also the complexity of the space that starts to blow up.
Stephan – 01:03:48:
I see. Yeah. And maybe we’ll see like, I think maybe one criticism I could understand from the outside looking in. Like if somebody is looking at the, let’s say the bitcoin developers and the kind of hardcore bitcoin or community, they could sort of look out and say, well, we’re talking about all these things that are kind of oh, that’s someday, someday. What about the people who need it now? Right. And I think maybe that’s where we don’t have as good an answer. Right, yes, of course I can tell that, hey, get a coin join, run Tor, run your own bitcoin node, use coin join. But I guess that’s the question of if you’re trying to honestly help somebody, how much extra work do they have to do to get something that works today? As opposed to the quote someday.
Josibake – 01:04:33:
Yeah, this is always the frustration, right? Like, we want it to work for everybody today, but then we need people to work on it to get it there. Where I always start with this is if you want to use bitcoin in the most private and sovereign way, you’ve got to be comfortable running a node. And that’s kind of the first place to start. Get comfortable running your own node, interacting with it. And for the people who need it today, unfortunately, I think the best answer we can give them is, like, you’ve got a lot of reading to do. You’re going to have to know how these tools work. You’re going to have to learn how to use them effectively. And that’s quite a big ask of people, and that’s unfortunate. The more we can chip away at that, though, the better. And also the more people we can get using the complicated, difficult to use tools, the more ideas and inspiration we get from those people to fix them. So it’s kind of like circling back to the whole developer pipeline. The very first step is using the tools and promoting that people use the tools running your node, using coin joins, and the people who are using those hopefully end up becoming developers to be like, hey, it’s very similar to me using bitcoin core wallet. Be like, there are things about this I don’t like, so I can get frustrated and wait for someone to make a better wallet or go wallet shopping to find someone else who’s maybe already made one, or I can get involved with making the wallet that I want to use. And I think that’s the key. If people really care about privacy and bitcoin, you’ve got to use bitcoin. You’ve got to transact. You’ve got to know what the implications are, you got to know what the tools are capable of and not capable of. And the best way to do that is to use them. And as you use them, don’t get cynical. That’s another thing we have to fight against, is when you use this stuff and you’re like, man, it could be so much better, it’s frustrating. There’s no way we’re ever going to get there. Instead, try to be optimistic about it and be like, okay, what can we do to improve this? What can we do to make this easier? What can I do to make it easier for myself? But also, what can I do to help other people avoid the same struggle? It’s maybe not the most satisfying answer, but I think the way we make the system better is we use it more and we take that frustration and we channel it into improvements.
Stephan – 01:06:53:
Yeah. And yeah, to be clearly, I don’t want to be too critical of bitcoin overall, because I’m saying this in the sense that we have to be realistic, right. And bitcoin still has this network effect around the world. There are all kinds of people who will trade it peer to peer, and that’s difficult. Like that kind of name recognition, that kind of user base, the infrastructure, the robustness, the number of merchants and exchanges and people and traders and educators and software and hardware out there for bitcoin is just incredible. And so I think it’s about recognizing that and then looking at, okay, well, what are the kind of the one, two, and three key steps for privacy if somebody wants to be private today and then actually using these tools and then figuring out where to go from there. So I think it’s probably a good spot to finish up here. Josi, if you had any closing comments for people about how and why they should look at getting involved as a Bitcoin developer and the education for Bitcoin Developers
Josibake – 01:07:52:
Closing thoughts? I would say first and foremost, start using Bitcoin as much as you can, whether you’re a developer or not, running your node, interacting with it, learning what it’s capable of. If you are someone with a technical background, I’m sure that will lead you to, oh, this could be better, or this kind of sucks, and just kind of chase that inspiration. Use it. Chase the inspiration and then take advantage of the resources that are out there and even as a user, get more involved with things that are going on. Use the tools. And when you find that something is uncomfortable or difficult and you don’t understand, dig into the technical side of it. I think as bitcoiners, whether we’re going to contribute to bitcoin or just use bitcoin, we should be in this continual state of learning and understanding how the system works and the new things in it. And as a closing thought that I just always remind myself of and try to remind everybody. And kind of in response to the last bit of our discussion, it’s okay to be super critical of bitcoin, and as developers and users, we should be honest about what the system can actually do. We should be honest about where the limitations are, where things really suck, because that’s the way that we’re going to make it all better. And when we get into this idea, when we get into this mode as users and developers, that like, okay, privacy on bitcoin is fine, it’s good enough, or user experience on bitcoin is fine. You just need to educate yourself. That’s a dangerous place to be in. And it’s good to have healthy criticisms both as users and developers. So, yeah, be critical and have fun.
Stephan – 01:09:28:
Yeah. So, look, get involved. I will link so listeners, I’ll put in the show notes, all the links. So we’ll have the chain code lab seminars, there’s the onboarding to bitcoin core, there’s Qala, there’s bitcoin dev philosophy, there’s all kinds of resources and programs out there. There’s summer of bitcoin. All of that will be in the show notes. Josi, thank you for joining me today.
Josibake – 01:09:45:
Yeah, thanks for having me.
Stephan – 01:09:46:
I hope you’re enjoying the show. Make sure to share this with any friends who are interested in bitcoin development. And you can find me online @stephanlivera on Twitter or give me an email at stephanlivera@PM.me. Thanks for listening and I’ll see you in the citadels.