{
  "episodeId": "SLP477",
  "speakers": {
    "stephan": {
      "name": "Stephan Livera",
      "role": "host",
      "tag": "STEPHAN"
    },
    "stephan_livera": {
      "name": "Stephan Livera",
      "role": "guest",
      "tag": "STEPHAN"
    },
    "guest_2": {
      "name": "Guest 2",
      "role": "guest",
      "tag": "GUEST"
    }
  },
  "segments": [
    {
      "speaker": "stephan",
      "time": "00:09",
      "start": 8.69,
      "text": "Hi, you're listening to Stephan Livera podcast, a show about Bitcoin and Austrian economics brought to you by Swan Bitcoin. With Swan Bitcoin, you can easily stack Bitcoin and also learn about Bitcoin over at swan dot com or using the Swan app available for Apple or Android. You can make use of safe and easy automated Bitcoin buys using a recurring purchase plan. Or you can do one time buys known as smash buys. Swan offers free custody in your own legally owned trust account, and Swan Bitcoin encourages you to self custody, and withdrawals are free. You can automate these also. So if you're not sure how this works, you can create a Bitcoin wallet easily on a phone, such as Moon Wallet, m u u n, create an address, and go to the withdraw page on Swan Bitcoin, and you can automate your withdrawal so that all your withdrawals just automatically come out into your self custody. And of course, you can set up with multiple addresses also. Swan makes it easy for you to stack sat and also learn about Bitcoin. Go to swan dot com to learn more. With the state of Bitcoin's mempool these days, mempool dot space is an essential website. Mempool dot space shows you a Bitcoin explorer showing you the multiple layers of the Bitcoin ecosystem. You can see the mempool, you can see the blockchain, and you can even see second layer networks like the Lightning Network. And so I use mempool dot space when I'm about to send larger on chain transactions, and this Target my fee, and I can see projected blocks and all kinds of features, and they are rolling out a new feature which allows you to see the RBF history. This is called the Replace By Fee, and this allows you to show when transactions are being fee bumped, meaning you might have started at a certain level for that transaction, and then later it got bumped up to a higher level. With MemPool dot space, you can host it yourself, it's free and open source software, and for enterprises, MemPool dot space offers custom MemPool instances with your company's branding, increased API limits, and more Space slash enterprise. With Bitcoin, it's important to remember the rule, not your keys, not your coins. And CoinKite dot com are making it easy for you to self-custody with hardware and accessories, most notably the Coldcard. This is my favorite Bitcoin hardware device. You can use it in all kinds of configurations. It's very reliable. You can use it in single signature or multi-signature, or with a passphrase, or with a BrickMe pin or a Juris pin. All kinds of features are available there, and you actually learn about Bitcoin in the process. You can use it With software such as Specter Desktop or Sparrow or Electrum. Now, they also have other accessories and devices also, such as the Tap Signer, the Sats Card, or the Metal Seed Plate to back up your twelve or twenty-four words. So to get your cold cards with a discount, go to CoinKite dot com, use code Livera for a discount on your cold cards. So if you've heard the critique about Bitcoin mining pool centralization, this is something that might be interesting for you. It relates to Stratum v2 and decentralizing Bitcoin transaction selection. Now Now, so there is now a project and a team who are working on pushing Stratum v2 adoption forward with the Stratum v2 reference implementation. And so that's where Pavlenex and Fi-Fi3 join me to talk about an overview of the benefits, encryption efficiency, censorship resistance, as well as various details and aspects around how it works, as well as how you can get involved or help or contribute. So now here is my chat with Pavlenex and Fi-Fi3. Pavlenek and Filippo, welcome to the show. Thank you. Hi Stefan, thanks for having us. Always a pleasure to be here. Great, and so yeah, we're gonna get an update for listeners on what's happening with Stratum v2 and Stratum Reference Implementation, or SRI. Now, let's talk a little bit about the context of this, and actually, firstly, let's hear a little bit from you, Filippo. Do you wanna just introduce yourself just for listeners who don't already know you?"
    },
    {
      "speaker": "stephan_livera",
      "time": "03:59",
      "start": 238.88,
      "text": "yeah, I'm, I'm FI3. I'm, working on, SRI Stratum reference implementation with a grant from, Spiral. Since, three, almost three year now. And, yeah, that's it."
    },
    {
      "speaker": "stephan",
      "time": "04:13",
      "start": 253.32,
      "text": "Fantastic. And, Pavel, next, you're obviously well known in the space for your work with BTC Pay, but you wanna just tell us a little bit about what you're doing on this project?"
    },
    {
      "speaker": "guest_2",
      "time": "04:22",
      "start": 261.59,
      "text": "Sure, Stefan. this time I'm joining, as, contributor to, SRI, as you said, Stratum Reference Implementation, and my role there is, as I like to call it, janitor. Basically, in a Fill whatever gaps, I can and just be, be of use, and that's, that's pretty much my role there."
    },
    {
      "speaker": "stephan",
      "time": "04:45",
      "start": 284.58,
      "text": "Fantastic. And so, do you wanna also just set the context here? As I understand, the history of this is, this idea, let's say, it kind of started as this idea called, known as back then, BetterHash by Macarello, and then he then went and collaborated with some of the guys from Brains, Jan and Pavel, and that's one particular implementation. And then, as I understand, what you're working on now is sort of a A continuation of that, and do you wanna just explain a little bit about and elaborate there?"
    },
    {
      "speaker": "guest_2",
      "time": "05:12",
      "start": 312.46,
      "text": "Yes. So, well, Stratum v2 is the name of the protocol, just the Lightning net-network is the name of the protocol, and then you have all these different implementations that implement the protocol. in Stratum v2 context, we have so far two adoption pa-paths or implementations. One is Brain's implementation, which is already implemented in their pool, they're using it. It is not a complete implementation of the specification. But it's been around for, I, I think now for two years maybe even. On the other hand, you have SRI, Stratum reference implementation, which is a complete implementation of the protocol. It is also a completely open-sourced one, and it is developed by an independent group of contributors, meaning that none of us work at one company. It's like contributors to the open-source software funded by, different entities, and, we are part of the working group which ensures that Stratum v2 gets adopted. I need to say that Brainz is also involved in a working group, so they do support our efforts. It's not like that we have these competing implementations. They, as a specification authors, Jan and Pavel, really recognized that, in order for Stratum v2 to be adopted, implementation needs to be independently developed and led by an open source community. So it's a group of different people, different entities that is trying to bring sRI, or Stratum reference implementation to, to adoption."
    },
    {
      "speaker": "stephan",
      "time": "06:38",
      "start": 397.82,
      "text": "Gotcha. And while we're here, Filippo, can you explain for us and for listeners what are the benefits of Stratum v2? Why, why is this a good thing?"
    },
    {
      "speaker": "stephan_livera",
      "time": "06:47",
      "start": 406.55,
      "text": "Sure. So, in order to have, pool at mining, you have to have at least three actors the Bitcoin node that, create the candidate block, the, the pool that, send the, jobs to the miner and, make sure that each miner, work on different jobs and the miner, of course. in order to do, to, make this actor communicate, Stratum V2 define a set of messages that, make that possible. And, the difference between, Stratum V2 and Stratum V1 is that these messages in Stratum V2 are, use a binary data format and, not JSON, so aren't text-based and are a lot more efficient. And also that in Stratum v2 we, we en-encrypt everything, so, there, there are no more possibility for, man-in-the-middle attacks, and this can be, a big issue in, maybe third world countries where mining happen. So, we have this two improvement, and we have also, a completely new thing that is the Job Declarator that, decentralize the, transaction selection. So it's no more the pool that, select the transaction that will be in the next block, but it's the, it's the miner. Each miner select the transaction that go in the next block."
    },
    {
      "speaker": "stephan",
      "time": "08:29",
      "start": 509.38,
      "text": "Gotcha. Yeah. So just to summarize, we are having encryption by default, whereas the current protocol is in the clear, so that, as you mentioned, can stop this attack known as a man-in-the-middle attack. So this would mean, let's say you're a miner somewhere and And somebody else who is intercepting your connection can try to hijack your hash rate. And I've heard this isn't just a theoretical thing, this has actually happened before, or it's, you know, there's, there's decent research out there or reasons to believe it has happened before, so it's not just theoretical. So in that sense, miners have an incentive to adopt this kind of thing because they're stopping this attack, that's one example. there's a performance improvement, and I think probably the big one that everyone's talking about is this idea of Decentralizing mining. Because as we speak today, it's probably something like twelve big mining pools, and maybe six of them are bigger mining pools that exist in the world today. And it's important to understand there's a distinction between the individual miner who's plugging his ASIC in and the mining pool. And currently, the mining pool is the one selecting transactions that are considered as part of a template. And this, the idea here is with Stratum v2, you are giving the individual miners The possibility of selecting their own transactions that go into that block template, correct?"
    },
    {
      "speaker": "stephan_livera",
      "time": "09:52",
      "start": 591.99,
      "text": "Exactly. And this isn't full decentralized mining, we have to make this point very clear, because we are decentralizing only the transaction selection. Then there is also the payouts that can be decentralized, and it's another thing, and then the share accounting that can be decentralized, and it's another thing as well."
    },
    {
      "speaker": "stephan",
      "time": "10:11",
      "start": 610.94,
      "text": "Gotcha. So just let me understand or explain my understanding there. What we're talking about here is- Most mining as we know it today is custodial, meaning you are trusting the pool to actually pay out the miners, that's the first one you mentioned, and then the other part is the share accounting. So my understanding there is a Bitcoin mining pool today, the big pools, they basically-- I, I wouldn't be able to explain the maths behind it or how it works, but basically they assign pieces of work out to their miners, those miners do work and then send it back, and based on that, they sort of say, okay, you did This amount of work, therefore, you get this percentage of the reward that we earned as a pool. Exactly. Is that roughly right? Yeah."
    },
    {
      "speaker": "stephan_livera",
      "time": "10:53",
      "start": 652.83,
      "text": "It's, it's like that. And so you have to trust the pool that it's accounting each share that you send to the pool in the, right percentage, because you don't know, how many share the other one are sending, so you don't know, the percentage that, you are in the, in the pool, the percentage of the reward. You, you know, Which is the reward be- because you can look at the blockchain and s- and see the pool, earned that, but you don't know, how many, hash rate is in the pool. You know, your hash rate, not the other ones. So you don't know the exact percentage of that reward."
    },
    {
      "speaker": "stephan",
      "time": "11:34",
      "start": 694.34,
      "text": "I see, yeah. So as you said, so I guess basically just to summarize, the key point in terms of that censorship resistance point is that we are decentralizing the transaction selection only. Exactly. Not necessarily the custodial component or the share accounting, as you mentioned. Exactly. and so can you also explain for us some of the different pieces here, because you might be a mining pool operator, you might be an individual miner, and then there's also, let's say, the hardware that we have to think about and understanding whether this, you know, what software needs to be able to run at each of those different, or by these different, could be different entities, or in terms of the hardware versus software."
    },
    {
      "speaker": "stephan_livera",
      "time": "12:13",
      "start": 733.49,
      "text": "Sure. Let's say that, right now the- The, majority of the, miner are Stratton V1. So, let's say that you have miners that are Stratton V1 and that you want to do transaction deflation, so you want to select your own transaction. In that case, you need to have, for sure the, mining pool that will run, if we use the SRI stack, will run the, the software that is called Pool. then you have the, individual miner or the company that do mining that, will have a server, and in this server will run, the T-Proxy, that is the translator proxy. It just receive, from downstream Stratum v1 messages and transform it in Stratum version two messages for upstream. Then you will run also, I think that it's called Job Declarator client. The Job Declarator client will be, connected with the Bitcoin, node that, it will be in the miner server, and then it will connect with the, Job Declarator server that will be in the pool server. This is all the stuff that you need, to do something like that."
    },
    {
      "speaker": "stephan",
      "time": "13:31",
      "start": 810.7,
      "text": "Okay, so I guess explained in simple terms, it's sort of like saying we need a way for the mining pool to communicate with the miners, and this could be, obviously, it could be anywhere from a pleb miner at home with his one or two ASICs to small, you know, operations all the way to a, a big, you know, company who runs, you know, multiple warehouse-sized Bitcoin mining operations, but in that- In that context, they are a miner, they are con- they are connecting to a pool because they wanna reduce their variability. Because I guess that's the other alternative, right? You could theoretically, if you run a big enough operation, you could be a solo miner, right? Now, in that case, you're dealing with the variability, you're dealing with the volatility of, let's say, when you find a block or when you don't find a block, and you would need to be mining, you'd need to have a pretty big operation to do this kind of thing. But for Not, let's say accessible for people to be mining at that size, right?"
    },
    {
      "speaker": "stephan_livera",
      "time": "14:31",
      "start": 871.14,
      "text": "Yeah, it's not, I mean, it's not convenient if, you are not very, very, very, very big, but if you are or, if you are not and you want to do solo mining, you can do that with the SRI stack You just don't, use the pool, but the job declarator, it's, it's all you need to, to just mine, without relying on the pool."
    },
    {
      "speaker": "stephan",
      "time": "14:54",
      "start": 894.5,
      "text": "I see. And just from, reading some of the documentation, I can see there's different job titles, so maybe you can explain those. So I can see here, job negotiation protocol, and I believe, is that what you're saying with the job declarator, that's the new, the change in terminology? Yeah. And then I see another term here called template distribution protocol. So I see, I see this as being, so it's used to get information out of, about the next block out of Bitcoin Core. So,"
    },
    {
      "speaker": "stephan_livera",
      "time": "15:19",
      "start": 918.77,
      "text": "so this, this, this, this is it's, it's the protocol that we need to send the, block candidate from Bitcoin D to, if you don't do transaction selection to the pool, if you do transaction selection to the, job declarator client, the, depending which, setup you are using."
    },
    {
      "speaker": "stephan",
      "time": "15:41",
      "start": 941.49,
      "text": "Okay, gotcha. And, also if you could explain for us some of the different, configurations, I can see on the website you've got config A, B, C, and D. So could you just explain a little bit about the difference of the Differences between those?"
    },
    {
      "speaker": "guest_2",
      "time": "15:56",
      "start": 955.66,
      "text": "I, I wanted to chime in on that because we, we've been going back and forth with first explain the differences between what we call job negotiator and job declarator. So Stefan, as I said, straight on V2 specs are being ironed out as we get more adoption, as more people use it, we figure out these holes that need to be ironed out. so one of those, well, am-ambiguity there was that, subprotocol, that allows you to select transactions is called job negotiator, That actually there, there will be a negotiation between what the miner proposes by selecting transactions from the node to what the pool actually proposes. And then people said, \"Oh, but there will be no negotiation. The pool will say you need to do this, and then the miner will--\" And there will be back and forth. So we figured out that this isn't, was not the best naming, and even Matt Corallo agreed, that we need to change this. So we changed this, the name of this subprotocol to Job Declarator, because it only, does the, job declaration. So it declares a job. the pool can say no and reject, this proposal, but there will be no negotiation. and this is also, I think, very important, thing to mention is that if the pool declares, so declares what you proposed in a way or declared, then a miner will fall back to a different pool. And at the end, if all, all of these different pools decide to censor, at the end of the day, mine- Miner will fall back to solo mine. One good point here also to mention that, that means that entire hash rate of the pool will eventually fall back to solo mine if the pool decides to censor. So it isn't just me, but if you dec-decide to reject all of these different miners that are mining on your pool, eventually all of them will fall back to solo mine and that transaction and all that hash rate will eventually help and get that transaction in. That's one of the, I think, biggest misconceptions that happens with, regards to job- Negotiator, now known as Job Declerator. and now maybe I can talk a little bit about flexibility and why Stratum v2 is such an awesome, awesome protocol, because it allows for, for different, entities or different users, big level of flexibility, meaning that all of these different components that you and FI3 talked about, you as a user can pick and choose, oh, I maybe want to use this, I don't want a pool, I don't want this, I can use this, and then You can tailor it for your specific needs, and I really enjoyed that part because I'm like big fan of, flexibility and giving freedom to users to use software in any ways that they, see fit. So all these different configurations, if somebody goes to our website, which is traetonprotocol dot org, you can see all these different configs. In November last year, we shipped, one of these configurations, which we called, milestone one or MVP one, and that particular con- Configuration allowed miners who run Stratum v1 firmware, as Philippe earlier explained, to connect to an SV2 pool. That specific configuration didn't have, the ability for individual miners to select transactions. With our recent update, few weeks back, we actually created the job declaration, added this subprotocol, and now miners who use Stratum version one firmware can connect to an SV2 pool and on top of that also do selection, Do transaction selection through their own node that they are running. So I hope this helps. There are, there is a bunch of these configs that people can maybe go to the website and read. We also have graphics, and I'm soon hoping that we can animate them in a way, because there is, it's a very complex protocol. It's not easy to understand all of these different components and how they communicate with each other, what messages are being se-sent back and forth. So we are really hoping to make, by illustrating this to make it like accessible to people to, to understand how it Gotcha."
    },
    {
      "speaker": "stephan",
      "time": "19:53",
      "start": 1192.89,
      "text": "And so as I'm understanding you, you there, I'm seeing, for example, configs here on the site where it's saying miners can use SV2 even if they run SV1 firmware. So as I'm understanding, this idea is you might be running some old firmware or maybe you- Have a Bitcoin mining machine, an ASIC machine that has, you know, old firmware, you're not able to update it, but using this software, you could still use Stratum v2, that's how I'm understanding you?"
    },
    {
      "speaker": "guest_2",
      "time": "20:19",
      "start": 1219.0,
      "text": "Yes, exactly, that's the beauty of it, and that's done through what we refer to tip proxy or translation proxy, which is a proxy that you would run at, maybe home or mining farm, and it would allow basically SV1 messages go in, translation proxy translated them to SV2 messages, and then they're Being sent to the pool, which then understands SV2, so you're connecting through SV2 pool via this, proxy."
    },
    {
      "speaker": "stephan",
      "time": "20:44",
      "start": 1244.12,
      "text": "I see. And so as I, I mean, yeah, so we don't have to kind of walk through every single config, I think listeners can go, if they really want to, they can go into detail there. But I guess the, the point really is that there's different types of configurations based on what firmware you have, what pool you're connected to, what kind of miner you are that enable you to still participate and use Stratum v2. And I think And just think about transaction selection in general and how censorship would happen and how, what's the response, right? So as an example, I think it's probably fair to say most miners and most pools will select, you know, in general, they'll just select based on what's the most profitable, right? Like who is paying the most satoshis per vbyte? That's just in general how you would expect them to operate. But how would it look like in a censorship world? Would it be that, let's say, hypothetically, a Bitcoin mining pool Is saying we will do censorship based on the, let's say, the OFAC sanctions list as an example. So could you just talk us through that scenario, like what would that look like? And then how would that, you know, how would, how could particular transactions, you know, be caught up in that net for censorship, and how could they still be included despite that?"
    },
    {
      "speaker": "stephan_livera",
      "time": "21:58",
      "start": 1318.0,
      "text": "So, what's happened, is that, to select transaction, you use the, Bitcoin D and, you, as, as you said, you select transaction based on the maximum fee. Now, if, for example, a pool don't want to, base it on the offer list or, or everything, doesn't want to have a transaction when the, the proxy or the miner, send the next, job The next block candidate to the pool, the pool say no. But this is, very important that each miner is running the standard software. So each miner that is, working, with the pool, it's running Bitcoin D and it's running, for example, SRI, software. So what happened now? happened that the miner see that the block that it sent to the pool, it's, a good block because it's the one that, have been done with Bitcoin D, and, each miner will see that the pool is censoring automatically. Because, if they run standard software, it's, it's what will happen. And so, what? We did, is that, each, SRI proxy, when a pool say that they don't want to, mine a block, it automatically switch to another pool. So you can have a list of pool that you want to use, and when the pool refuse to, to accept the, the block that you propose, you automatically switch to, to another pool in this list. This what it means. It means that, if, for example, the ninety, ninety percent of the average rate that is, with the pool A say propose a block and this block get refused, if the ninety percent of the dash rate with the pool A is doing transaction selection, when the pool refuse a block, the ninety percent of the dash rate of that pool will automatically switch to another pool or to solo mining. So it's very inconvenient for the pool saying no, because it will lost the, the all dash rate that they have."
    },
    {
      "speaker": "stephan",
      "time": "24:21",
      "start": 1461.44,
      "text": "Yeah. And so I guess, as I'm understanding you, the, the idea is if people are operating in a Stratum v2 context, then they will automatically switch to another pool. And so now, in order to do that, I guess you would need to have-- you might have need to have, have set up in advance multiple, let's say, usernames with different pools, because you need to have like a fallback and another fallback and so on. Exactly. So I guess that's just the context here that if you are a miner, you would, you would have to go do that in order to really make the most of this Stratum v2 censorship resistance. Yeah,"
    },
    {
      "speaker": "stephan_livera",
      "time": "24:56",
      "start": 1496.14,
      "text": "yeah. the, the important In my opinion, is that also you, give the incentive to the pool to not, censor, because, I mean, you give a very big incentive to the pool to not censor, because it- We lost, almost all the hash rate that, is mining with that pool. So it's, that, that's the important thing. Maybe you don't You'll never, need to relay on switching pool if the incentive works."
    },
    {
      "speaker": "stephan",
      "time": "25:28",
      "start": 1527.64,
      "text": "I see. And one other thing, in terms of detecting censorship, is it just as simple as looking at the most profitable, what would have been the most profitable block to mine, and then seeing, \"Oh, there was a difference there, and therefore this transaction is being censored somehow?\" Or is there something more complicated to this, or does it require manual intervention as an example? Like, does, you know? It's,"
    },
    {
      "speaker": "stephan_livera",
      "time": "25:48",
      "start": 1548.11,
      "text": "it's very simple because, the, the miner just send a message to the pool where he, he say which transaction want to put in the next block, in the block that, is working on. So the pool can do two things. One is to say, \"Okay, go ahead,\" and the other is to say, \"No, I don't accept that block.\" If the pool say no It's censoring just that."
    },
    {
      "speaker": "stephan",
      "time": "26:14",
      "start": 1573.92,
      "text": "I see. So it's based on, yeah, if, if the pool just doesn't accept the transactions that you were, you were proposing as part of that block. So in terms of pools adopting this thing, I guess the other argument people could say is, \"Hey, what if the pools just tell you, 'No, beat it, I don't care about you and your Stratum v2, I'm just gonna keep doing my thing with what I'm already doing.'\" Is there something there or is it, you, you think there's more actually, there's an incentive here that people are going to adopt Stratum v2?"
    },
    {
      "speaker": "stephan_livera",
      "time": "26:43",
      "start": 1603.09,
      "text": "I mean, the pool seems very interested to adopt Stratum v2, so I would say that, this doesn't seem to be a, an issue. Maybe Pau can say something more about that."
    },
    {
      "speaker": "guest_2",
      "time": "26:55",
      "start": 1615.32,
      "text": "I mean, for, if I was a pool and there was, the protocol allowed me to censor and be like the central point of failure for my business, that would be a risk. So So in my opinion, if a pool adopts Stratum v2, they're getting rid of this liability and, they can just say, \"Well, we aren't the ones responsible for this.\" So basically, there is a bunch of individual miners that does-- do this, and you as, you know, government trying to tell us which transactions to include or not, can't do anything because this is how protocol works, and all we can do is just reject it, but in that case, these transactions will still end up being mined because all of these- Different miners on our pool would then switch to our competitors or just end up solo mining. I see. Yeah."
    },
    {
      "speaker": "stephan",
      "time": "27:42",
      "start": 1661.93,
      "text": "So I guess you could basically make an argument there that, you as a pool operator might want to push that function to somebody else and say, \"Ah, look, I, I'm not choosing who's putting these transactions into a block.\" So I guess there's, you know, maybe there's a little bit of an argument there, and I suppose it also doesn't matter where the pool is headquartered, right? Because if some of the pools are in the US, some are other countries, it, it obviously helps if they're across different countries."
    },
    {
      "speaker": "guest_2",
      "time": "28:10",
      "start": 1689.79,
      "text": "Yes, exactly."
    },
    {
      "speaker": "stephan",
      "time": "28:11",
      "start": 1690.81,
      "text": "Gotcha. So, Pavel, next, you mind explaining a little bit about who's involved with this project? Because as I understand, there's different companies, different organizations involved. Sure, Stefan. So,"
    },
    {
      "speaker": "guest_2",
      "time": "28:21",
      "start": 1700.88,
      "text": "as I said, it is very important that, protocol, im- or implementation impor- that is very important or critical for Bitcoin decentralization is developed in a way that is also in a way decentralized. So there is no- Single entity or company behind SRI, it's a bunch of contributors that go try to get gr-grants from different companies or different companies in some cases even sending their employees to work on, our implementation and help us. So that's also the be-big help, for, for us. there are a bunch of, entities involved, that provided grants, I'll just, list them in alphabetic way, if that's, I guess fine. It's Bitmax, Brains Foundry, Galaxy The HRF or Human Rights Foundation Spiral and Summer of Bitcoin, a Summer of Bitcoin is also great because they send us all these, young contributors who are passionate to, to get involved in open source. Fundry specifically funded, one contributor to work on, this specific, job negotiator subprotocol or job declarator as we call it, and they also, yeah, it's, I know it's a bit confusing with just going back and forth, but I, I hope that soon we will iron out that ambiguity. Between a declarator and negotiator. and they also have a bunch of devs that, contribute to, to, to, to the project, and we are very grateful for all these entities that help in different ways. we also Swan, is also, helping us fundraise. So they-- we recently launched a fundraiser on, the amazing OpenSeas, and if you are interested in co-uh, helping us, get some funding, you can go there and donate through OpenSeas. As well, Swan is helping us basically, spread the word ab-about this as well, and, they've been great,"
    },
    {
      "speaker": "stephan",
      "time": "30:13",
      "start": 1813.01,
      "text": "fantastic. And of course, yeah, we'll put the links in the show notes, so listeners who wanna contribute, you can go there and, do so. and so then in terms of the work to create SRI, as I understand, there's multiple layers here. So as we were talking about before, there's software that the pool runner or pool operator has to run the software that the miner could be operating. And then, is there also an involvement of the, on the part of the hardware, so the manufacturers, are the manufacturers also having to play ball here, right? So do you need to reach out to the likes of Bitmain or, you know, the creators of Whatsminer, MicroBT or others to ask them, hey, can you, include this into your new firmware so that we have Stratum v2 support in the ASIC device?"
    },
    {
      "speaker": "guest_2",
      "time": "31:04",
      "start": 1863.54,
      "text": "Yeah, well, as we said, luckily we created a translation proxy which allows people not to have as Stratum version two firmware, so that barrier is removed. In order to use Straighton V2, you don't have to wait for any of the manufacturers to upgrade their firmware. Though it would be very helpful if at some point, and we are very interested in, you know, learning about this and communicating with this, different firmware and, basically ASIC manufacturers as well. As well, we want to hear and talk to them. So if any of those are listening, and I'm sure there are, there is a bunch of them listening to this show, please let us know. obviously it would be awesome if it, it was all out of the box, you just plug in the firmware, the miner, it works, it connects. right now it is a little bit, more, challenging, but it isn't, that hard, I also think. So it would be great to have a firmware component"
    },
    {
      "speaker": "guest_2",
      "time": "32:02",
      "start": 1922.36,
      "text": "in,"
    },
    {
      "speaker": "stephan",
      "time": "32:03",
      "start": 1923.34,
      "text": "And so then, in terms of what it looks like, so let's say you're a miner or you're a pool operator and you don't have it built out of the box, right? Let's say you don't have, you know, Stratum v2 support out of the box. What does it look like? Does it look like running custom software of some sort to be able to, you know, to, to use mining with Stratum v2 in the future? So"
    },
    {
      "speaker": "guest_2",
      "time": "32:25",
      "start": 1945.47,
      "text": "maybe I can just on a high level, and then Philippe, I'm sure can correct me if I'm, Right now, miners use something called a proxy, which aggregates all these connections so that there is efficiency in communication. With, if you use, Stratum, if you want to use Stratum v2, you basically have to run this proxy, and it is just like very easy to deploy, it just, it's not challenging, it's not really hard. I'm sure there is something we can do to reduce even the barrier there, but ideally, you just need this proxy and then you just paste the link in your miner to the pool. So if a pool is adopting, obviously, the SV2, then it can be easy as that. And imagine if you also even had a firmware component to it, then it would just be connecting to a pool just like any, any other, well, basically pool that you're connecting to today. So the only barrier here now is that proxy because we don't have the firmware component, but it isn't something that unusual for miners, they're used to running proxies."
    },
    {
      "speaker": "stephan_livera",
      "time": "33:26",
      "start": 2005.99,
      "text": "Yeah, I wanted also to add the just one thing, it's exactly how it work, but also- Also the, the fact to have the proxy, i-it's not something, inconvenient. I mean, if I am, a miner that have several miners, I want to have a proxy between, the miners and the pool. So it's just, it just should work also as we want."
    },
    {
      "speaker": "stephan",
      "time": "33:49",
      "start": 2028.94,
      "text": "I see. And so that's essentially, as you're saying, that these are features that they would want to run anyway because they wanna make it accessible for customers, right? If you're a, if you're a mining pool, you wanna make it easy for people to mine to your pool because obviously that's like a customer for you, or you might have a business model around that. And so I guess that's kind of the obvious point there. So, one other area I'm curious, and I'm sure listeners will be curious as well, is are there any changes to Bitcoin Core required in Make this happen in order to make Stratum v2 a possibility."
    },
    {
      "speaker": "stephan_livera",
      "time": "34:23",
      "start": 2063.23,
      "text": "I mean, they aren't required, but they, are, they, how it should, go. I mean, you can do that without modifying Bitcoin D or, you can just have a patch on Bitcoin D, but the best thing will be, implement the template provider in Bitcoin D. So, Bitcoin D needs to, be capable of gener- Generating a, SB2, message in the SB2 data format so that can be connected with the job declarator or with the pool, and, this will also allow BitcoinD to push the jobs And not the, pool or the job declarator to poll for, for new, new jobs. This is, better because it's more efficient than, you have less latency and a lot of good things."
    },
    {
      "speaker": "stephan",
      "time": "35:15",
      "start": 2115.33,
      "text": "I see, yeah. So basically it would be really good to have, but it's not strictly necessary."
    },
    {
      "speaker": "stephan_livera",
      "time": "35:20",
      "start": 2119.65,
      "text": "You can do that without having it, but, we want to, to have it."
    },
    {
      "speaker": "stephan",
      "time": "35:25",
      "start": 2125.18,
      "text": "I see, yeah. Okay. Yeah, and but it seems like it's, not that controversial that it will-- it is likely that the changes that are required would, would come into Bitcoin Core."
    },
    {
      "speaker": "guest_2",
      "time": "35:36",
      "start": 2136.16,
      "text": "Yeah, we've, we've discussed with a bunch of, core contributors as well, and they're eagerly waiting for us to also post a PR. Chris in particular is working, on, this, and we're hoping to have something very soon, for them to, to review."
    },
    {
      "speaker": "stephan_livera",
      "time": "35:51",
      "start": 2151.37,
      "text": "Yeah, I wa-- I wanted to add that Two year ago, we decided to, we wanted to, implement that on Bitcoin D, using the Rust library, the Rust, library that we have in SRI, and this was controversial. So I did a peer about that, and no, a lot of people wasn't very, Okay with that, so we decided to just, do everything in C++."
    },
    {
      "speaker": "stephan",
      "time": "36:19",
      "start": 2179.14,
      "text": "So has there been any significant pushback on this, or is it that most people want this, but it's a matter of having this work being completed and done, and, you know, these details being ironed out, let's say?"
    },
    {
      "speaker": "guest_2",
      "time": "36:32",
      "start": 2192.17,
      "text": "I mean, there, there hasn't been any, pushback from what I know. I'm sure that there are some people that may be against it, there are some Twitter, people that don't agree with it because, well, most- First of, first of all, I think that they are not, they lack education component, which we are also trying to communicate better, better educate people on how, how all this works, which is why we are also here. some people call this, brains conspiracy, even though this has nothing to do with brains, brains taking over. So, you know, there is a lot of, mis-misunderstanding, with regards to this. But some major pushbacks we haven't seen, we've seen actually quite the opposite, we've seen quite a, Discord, talking to us, providing feedback and also first, which is also important, helping us develop this software. So right now, it is mostly up to us to deliver this and, so that people can, can adopt it. And the biggest reason why it's not been adopted yet, I think, is that we still have all these, components that we need to iron out in order for it to be, widely adopted. But I think in four or five months, I, I don't wanna set deadlines, but, we may be in, in, in, let's say in the, in four or five months or six, maybe we will have something that people can already adopt and maybe even pools can adopt this. so just to those Twitter people, it's not that, it's not adopted because, you know, nobody's using it, it's just the software out there, was not ready. it was a very small team, we're expanding, we have more people now, so it is easier. And also one more thing, testing all of this is Of devs, so we sometimes, in order to test, we need equipment, we need help of miners, mining pools. So, that's, that is also one of the barriers, through all of this, because, you know, you need a lot of hash rate in order to test this on mainnet, let's say. So, we've only done some tests on testnet so far."
    },
    {
      "speaker": "stephan",
      "time": "38:33",
      "start": 2312.77,
      "text": "I see, yeah. And so, I, I suppose once you see software advance and, as you said, testing and all of these things take place, do you see- This being driven by miners who are pushing for it to say, \"Hey, I want to use Stratum v2,\" or do you kind of see it like a top-down thing, like maybe pools will, will say, \"Hey, we're just gonna switch it on on our side, and if you have Stratum v2, go ahead and use it.\""
    },
    {
      "speaker": "guest_2",
      "time": "38:56",
      "start": 2335.65,
      "text": "I mean, to me, it's a no-brainer. It can be both ways. It can be top-down and bottom-up because miners may want, prefer to have, better decentralization of the network, but they also want security, they also want optimization. Pool wants to get rid of responsibility, but they also take, don't want anybody to ha-hijack their hash rate, so they care about security. So I think in the end of the day, it's this everybody incentivized to adopt it in a way. There is no, no, no single, component I don't know, dissatisfied by or not incentivized to adopt it."
    },
    {
      "speaker": "stephan",
      "time": "39:30",
      "start": 2369.67,
      "text": "Gotcha. So thankfully, let, let's rephrase it this way, pools and miners have an incentive to adopt Stratum v2, let's put it that way. So, it's then a matter of, as you said, having the software written, having it tested, having it reviewed, having it people practice and u- use it and see it working in practice, and then decide, okay, let's, let's, shift to this. So, yeah Any other, I guess, things that you wanna call out here or areas where you are looking for assistance?"
    },
    {
      "speaker": "guest_2",
      "time": "40:02",
      "start": 2402.25,
      "text": "Yeah, I'm the call to action guy, so I'll take this one over, Filippo. So, yeah, it would be great if more miners would come to our Discord chat, and help us test the software. So currently we have, our earlier release, MVP two, as we call it, it would be awesome to get feedback from their, them. we tested on certain miners But we obviously don't have access to all of these miners, it is a very expensive endeavor for, I mean, a very small team of open source people. So, we would really love to get feedback from miners as they test things out. And I guess once we launch our next update, which we refer to as MVP three or milestone three, I'm really hoping that miners will get even more engaged and provide us, feedback, so yeah, getting user feedback is critical, and then hopefully testing it, on mainnet would be Really awesome, but for that we need a lot of miners plugged in."
    },
    {
      "speaker": "stephan",
      "time": "40:59",
      "start": 2459.29,
      "text": "Yeah. so I guess one other area to finish on is around the why, right? Part of the why of Bitcoin is this idea of financial freedom, being able to spend and receive without- Being censored for that, and I think there is a risk that in the future that, let's say, if certain governments, try to censor, they try to say, you know, you may not spend to this particular address or, you may, you know, that, that if they are able to stop certain transactions from occurring, then, that sort of impinges this notion of Bitcoin as a censorship-resistant protocol. and so I guess that's probably the, the, the why, right? So is there anything else you guys wanted to add on that aspect of it?"
    },
    {
      "speaker": "guest_2",
      "time": "41:46",
      "start": 2505.61,
      "text": "I mean, you summarize it, pretty well, Stefan. I just want to add that we all love Bitcoin is because Bitcoin is freedom, and there are all these small, barriers, with regards to mining pools, hopefully Stratum v2 w-will, will allow Bitcoin to be, freedom money, without censorship. So that's why I'm excited, that's why Yes, we do."
    },
    {
      "speaker": "stephan_livera",
      "time": "42:11",
      "start": 2530.94,
      "text": "Yeah, and I can just add that, in regard of that, at the end is the minor responsibility to, not allow censorship on Bitcoin."
    },
    {
      "speaker": "stephan",
      "time": "42:21",
      "start": 2541.07,
      "text": "Excellent. Well, I'll put all the links in the show notes and the website just for people to read out. It's stratumprotocol dot org and, I believe there's a fundraising site, so I'll put that link in the show notes also, so listeners can find that over at stephanlivera dot com. Pavel, next, and, Filippo, thank you for joining"
    },
    {
      "speaker": "guest_2",
      "time": "42:40",
      "start": 2559.58,
      "text": "Great, all the great conversation."
    },
    {
      "speaker": "stephan",
      "time": "42:42",
      "start": 2562.41,
      "text": "I hope you found the episode educational and informative, and if you wanna help out with Stratum v2 and this project, you can go to swan dot com slash stratum to donate, and OpenSat are helping with fundraising for this, and Swan is also assisting with this. You can get all the show notes over at stephanlivera dot com. Thanks for listening, and I'll see you in the Citadel."
    }
  ]
}
