Epicenter - Learn about Crypto, Blockchain, Ethereum, Bitcoin and Distributed Technologies - Amaury Séchet: Bitcoin Cash

Episode Date: February 28, 2019

Amaury Séchet is the lead developer of Bitcoin ABC, the largest client for the Bitcoin Cash blockchain. Amaury first got started with Bitcoin in 2010 and closely followed the Bitcoin block size debat...e as it progressed through the early years of Bitcoin. Predicting the eventual failure of SegWit2x, Amaury was part of the original team that helped coordinate the Bitcoin Cash hard fork, timing it with the activation of SegWit on the main Bitcoin blockchain. We discuss with Amaury the roadmap for Bitcoin Cash, especially with regards to their approach to scalability. We cover many of the novel features the Bitcoin Cash development teams are innovating on such as Canonical Transaction Ordering and Avalanche Pre-Consensus, as well as cover some of the more juicy drama that plagued the Bitcoin Cash community in late 2018, leading to split off of Bitcoin SV. Topics covered in this episode: Block Size Debates in Bitcoin Origins of Bitcoin Cash and the Fork Year 1 Technical Development of Bitcoin Cash Bitcoin ABC vs Bitcoin SV Future Roadmap Episode links: Bitcoin Cash Roadmap Graphene Whitepaper Avalanche Post-Consensus The Case for Canonical Transaction Ordering Bitcoin ABC vs Bitcoin SV Hashwar Bitcoin NG Episode EthCC Meetup Thank you to our sponsors for their support: Deploy enterprise-ready consortium blockchain networks that scale in just a few clicks. More at aka.ms/epicenter. This episode is hosted by Brian Fabian Crain and Sunny Aggarwal. Show notes and listening options: epicenter.tv/276

Transcript
Discussion (0)
Starting point is 00:00:00 This is Epicenter, Episode 276 with guest Amory Sese. This episode of Epicenter is brought to you by Microsoft Azure. Do you have an idea for a blockchain app but are worried about the time and cost it will take to develop? The new Azure blockchain dev kit is a free download that brings together the tools you need to get your first app running in less than 30 minutes. Learn more at aka.m.s. slash epicenter. Hi and welcome to Epicenter. My name is from. I'm having train.
Starting point is 00:00:47 And my name is Sunny. I'm going to be starting off quickly with some announcements. Epicenter is going to be holding a meetup next week in Paris, right, coinciding with ETHCC. And myself and Sebastian will both be there. And it will be cool meetup. You can come meet, you know, the hosts, some other past guests that we've had, as well as, you know, other listeners.
Starting point is 00:01:12 And it should be a good time. And also at ETHC, I'll go ahead. I'll be going and giving a workshop on the Cosmos SDK. And so it's a two-hour hands-on workshop. So if you're interested in getting started with developing using that, come check that out. Cool. Yeah, unfortunately, I won't be able to make it this year, but I was here, I think, two years ago, and it was lots of fun. So I am envious of the meetup, and hopefully next time I'll be part of it, too.
Starting point is 00:01:40 It's definitely my favorite Ethereum conference I've been to. So today we're going to speak with Amory Setshe. He's the elite developer of Bitcoin ABC. We can speak about Bitcoin Cash, something we haven't covered before. Now, we felt there was so much to talk about here that we ended up splitting it up into two episodes. So that's just a heads up. So this is going to be part one that we listen to today. We spoke a lot about, you know, kind of his early getting into Bitcoin, the block size debate and the whole
Starting point is 00:02:13 scalability debates that happened years ago, but they were really kind of the genesis to Bitcoin Cash and a lot that came afterwards. He spoke about Segwit 2X. So there's a little bit of a history tour as well, and I think it's, and maybe some newer listeners, they don't remember those times, but they were, you know, there were a lot of heated debates about this topic years ago, and we did countless episodes on this topic. So if you're interested, and it was definitely a very, very interesting time. And that, of course, Bitcoin Cash arose. out of. And then we also spoke a bit about some of the different technical views around scaling, around hard forks, around, you know, transaction ordering. And yeah, it was a,
Starting point is 00:02:57 what was a great conversation. Yep. So with that, let's go to interview with Amory. So we're here with Amory Seseech. Amory is the lead developer of Bitcoin ABC. And he's been working on Bitcoin in cash for a long time. Of course, Bitcoin Cash is something that we've never really talked about on this podcast, even though it's been around for quite some time. And at some point, you know, took up so much mind space in the cryptocurrency world, but still there's a lot of interesting things going on in Bitcoin Cash. We're really looking forward to diving into both the history as well as, you know, the technological differentiation that has come up in Bitcoin Cash. Yeah, thanks so much for joining us.
Starting point is 00:03:43 summary. Yeah, thanks for having me. So I remember we spoke about a year ago for a while. And one of the things I remember that you talk quite a bit about how you got into Bitcoin originally, which was like very early on, do you mind sharing that kind of your early exploration of Bitcoin? Yes. Well, at first I was very interested in like digital currency event before it existed.
Starting point is 00:04:12 was something that was interesting to me and I discovered Bitcoin in late 2010 I think it was November or December and so that was kind of like the first instantiation of that idea that was actually working there was you know produced at them but they all were flowed in some way so I was very interested and started following what's going on and then after say more like in 2012 or so it started growing very big so i was like okay this is not just me that is seeing something there that is interesting but actually it seems that there are a lot of people in the world that start to catching up with that idea so um yeah you know in 2012 around that i was uh you know
Starting point is 00:05:01 this is where i had the realization that it would become very very big and so at the time did you but you're just kind of watching it afar, or did you start maybe working on some little things or exploring different aspects of the code? Or in what way did you engage with Bitcoin back then? So I was more interested by the economic aspect of it to begin with. So I didn't look in the cup right away. I looked in the code more recently when, you know, because in the early days, it seems that there was a team of developer that were, you know, doing just fine.
Starting point is 00:05:39 So it's not like there was much of a need for me to get involved in the code. But so I probably started to look in the code in 2015 maybe or so. I see. And so, you know, instead of jumping in full time, I know when we were discussing, you mentioned you were spending, you spent a lot of time at Facebook along during that time from like, you know, 2010, up until, like, you know, 2015 or so. And so, you know, was like, what was Facebook at all, like, interested in, like, what was going on? Or was this, like, sort of something that was just on your side interest?
Starting point is 00:06:15 And, like, also, how did your time at Facebook, like, help, you know, maybe impact the way you look at blockchain development and whatnot? Okay. So, so the main problem for a company like Facebook is that right now there are many open question when it come to scaling blockchain. And so if a company like Facebook were to say, okay, you know, like Facebook, for instance, has a payment system within their messaging app, right? If they were to say, okay, we enable Bitcoin in Messenger like next week, it would be a giant disaster, right, because there would be so much people using it at some point. And, you know, the network just couldn't handle it.
Starting point is 00:06:58 So some engineer at Facebook were interested by Bitcoin. coin and Evan some engineer I know at the time wrote some code to support it but it was not scalable enough for it to make a lot of sense for Facebook you know to adopt that and so so that was a bit of the situation that was at Facebook though my experience as Facebook I think was useful in many ways because so first I've worked on I worked in the gross department of Facebook. So what is gross at Facebook? It's people building technology to improve Facebook so that more people use it essentially
Starting point is 00:07:43 to simplify it out. And that gave me a lot of insight about how to make a product that people want to use and how to grow that from a technical standpoint, but not only. And, and, yeah, so that was useful to bring that in crypto. I think it gives me a different mindset that most people may have in the space. And so recently there's been lots of, you know, some news that Facebook is starting to have a serious blockchain effort and they're acquiring some teams and supposedly there's like, you know, substantial effort in there. But now that you have some distance, you don't work at Facebook anymore, you can feel, share you. opinion, what do you think, what's your expectation of Facebook will end up doing with blockchain?
Starting point is 00:08:36 I don't have any particular insight because as you mentioned, I'm not working for Facebook anymore. What I would expect from that is maybe something that is very repel-like to settle payments because Facebook has a lot of international payment system in there. And right now, they rely on soft party to settle like PayPal and Venmo and these kind of people. So if they can develop something that is similar to repo, it could help their system quite a bit. And I think this is, I think this is what they are doing. But I don't know any better than anyone else. So that's more of an internal enterprise product than a consumer-facing thing.
Starting point is 00:09:22 I would expect it. Yeah, I would expect it. Because, you know, Facebook doesn't have very much this culture of, you know, let's build an alternative currency to subvert the system or whatever. This is not something that is built in the DNA of a company like Facebook. So I would be very surprised if this is what they were doing. Yeah, absolutely. So then you mentioned 2015, you started getting seriously involved in the Bitcoin space. And I guess that's also sort of when the blockchain or the debacle.
Starting point is 00:09:56 or the debate around the block size was really, you know, heating up. And of course, on this podcast, we did countless episodes on it. So what triggered this involvement back then? And how do you remember the block size debate? Okay. So, yeah, it's very interesting because one of the question, I actually had a small intervention in the community in like 2012 or something like that. So, okay, for people to know, I was there very early on, but for the most time, I was, you know, keeping a very low profile.
Starting point is 00:10:32 And the reason is, I mean, I think most people in the space can understand. This is like a very subversive technology. And so it's not always the best idea to, you know, attach your name to it early on. And I think this is why people like Satoshi, you know, choose to stay anonymous. And I was kind of in the same mindset. But I still had some interaction with the community in 2012 around the block size because that was kind of like my last question. At that time, I saw the technology is there, it's working, it has the potential to be big, but there's this block size stuff. And it was very clear to me at the time that if the block size stuff stay, then eventually we're going to run to the limit.
Starting point is 00:11:14 And so, you know, it's going to prevent the growth of the system. So I went in there, I asked people, but at the time people, almost everybody was like, yeah, no problem. You know, like when we get anywhere close to the actual limit, we're going to raise it and everything. So I was like, okay, so this seems to be moving in the right direction. So I should, you know, I should consider this to be something very serious. And then what happened is that the people that are more on the side where the block size limit should stay small, starting having more and more influence into the community. I think the people that were for raising the block size
Starting point is 00:11:55 made a lot of strategic mistake along the way that allowed those people to gain a lot of influence. And so it resulted in the situation where at some point those people were more influential and more numerous than the one that wanted to increase the blog size. And this is where this whole thing started to turn into war of some kind of. What are some of these strategic mistakes that like some of these big block opponents made?
Starting point is 00:12:25 Would one of them be backing Craig Wright's claim to being Satoshi perhaps? Yeah, but that was fairly late. I think even before that there were various mistakes. So what do you see in most open source projects? So there is another project that participating a lot that is called LLVM. It's a compiler infrastructure project. For people who don't know, it's software that takes source code that is written by developer in a way that human being can understand and turn it into binary data chip can execute.
Starting point is 00:13:00 And this project is, you know, as participants from many big company in, you know, the computer science space. So you have company like Google and Facebook and Amazon and these kind of people, they are going to contribute. they contribute because they have millions of servers literally, right? And if you have one million server, you improve the performance of application by 1%. It's 10,000 server that you don't need anymore that you can use to do something else. So when you have millions of machines, it's really quickly added up to very substantial amount of money.
Starting point is 00:13:35 So they're participating for those reasons. You have people from Intel or AMD or ARM or chip manufacturer. And why? because they want to make sure that the cut generated for their chip is, you know, very high quality. They also want to ensure that maybe the engineers that work for Intel, they care a lot about the performance on the cut generated for Intel, but they don't care that much about the performance on AMD chips, right? So if you let the Intel engineer do all the work and you are IMD,
Starting point is 00:14:05 this is probably a strategic mistake because, you know, your processor are going to end up being worse. for your customer because the software support or indeed for compiler is not as good. And I think the big blocker made that mistake. So the people that were more for small block invested very heavily in infrastructure, right? Like company like Blockstream, for instance, hired a lot of developer of the core software client.
Starting point is 00:14:33 And the OSHA company, not as much. And as a result, you have this effect where if you depend on some infrastructure, but you are not really invested in it, then the people that are actually, like you know, you are at the mercy of the people building it. And so I think that was a bit of a strategic mistake. So right.
Starting point is 00:14:53 And probably the first one and the biggest one. So the small block or narrative has been kind of like, you know, in line with that where they've been saying like, look, all the core developers and main infrastructure people are relatively, you know, very pro small blocks. And then like, you know, a lot of these companies and miners are very like pro big blocks. But you know, you, they,
Starting point is 00:15:11 They actually flip the reasoning. Their claim is that, like, you know, the reason the core developers are overwhelmingly pro-small blocks is because they have like some technical insight that makes them realize that big blocks are infeasible. Do you think that's a fair, like, you know, how valid that claim is of them? I don't think that is the case. I think it's more of a difference of opinion on what's important and where the project should go.
Starting point is 00:15:39 So for people in the Bitcoin cash community, peer-to-peer, electronic cash is like, you know, the most important thing. And you want to have the best property for the system, you know, that fit that bill. People that were more in the small block size, they sell Bitcoin more as a settlement layer. And you would use other systems to transact like L2 and Lightning Network and maybe liquid and, you know, various other stuff like that. And so you transact using those systems. and you use BTC just as a settlement layer for those systems. So there is a very important difference of vision. And so when you don't want to build the same stuff,
Starting point is 00:16:17 then obviously the trade-off that you are making are not going to be the same. And I think this is where the main difference is. But so why do you think there was a lack of big block support amongst core developers? Like why did the big blockers never? really take step up and take like a big role in a lot of this core infrastructure development well i think the people on the big block size they were more um coming from the economic standpoint and i came
Starting point is 00:16:52 to bitcoin from the economic standpoint and maybe that community was a bit weaker on the technical fundamental for quite some time i think i see i see they i think a lot of people in the big block improvement. What he did not realize, how important it was to make sure you have a solid infrastructure, but the people on the small box size, they realize that very much, very early on. Yeah, that's very interesting.
Starting point is 00:17:17 And then one of the things that is noteworthy is that most or a majority of the co-developers were in favor of small blocks, but at the same time, the miners tended to be in favor of bigger blocks. Why is that?
Starting point is 00:17:35 I mean, why do you think there's any economic reasons? Why miners would prefer something like electronic cash approach to, you know, this settlement vision? It always seemed a little bit counterintuitive to me because you'd think that minors would want higher transaction fees. So, thus smaller blocks. Well, no, like the revenue of the minor is the transaction fee times the number of transaction. So for miner to generate high revenue, you essentially have two general direction. They can go into. They can try to increase the volume of transaction or they can try to increase the transaction fee.
Starting point is 00:18:14 And I think that the increase the transaction fee approach actually don't make a lot of sense. The reason is that everything else being equal, you'd rather use the product that have smaller fee. So if there is one product that have very high transaction fee and limited capacity and another one that have a very very large capacity but low transaction fee, then on the long run, you should see most of the volumes, you know, moving to the one that have high capacity and low fees. So I think if you are a minor and you are thinking about this long term, the second, you know, the second one makes more sense, I think. Okay, so early on, there was a lot of these, you know, it's not fair to say that there was no development support behind, you know, big blocks.
Starting point is 00:19:01 Rather, it just was missing from a lot of the, you know, Bitcoin core development team. But, you know, early on, we are, we, we already started to see, you know, many alternative clients start to pop up, things like, you know, Bitcoin Classic, Bitcoin at BU. So could you, you know, tell us a little bit maybe about the history of these alternative dev teams, alternative client implementations? So I was not involved very closely with all of them. So I'm, you know, I cannot go to every detail because, you know, some of it I don't know. But essentially there was three big effort on the big block side.
Starting point is 00:19:39 There was XT, there was Classic, and there was BU. So I have a little internal knowledge about what happened with XT. So I'm not quite sure. I think it got a amount of traction early on. but it was essentially disabled mostly by political move, if I understand the history correctly. So there was this Hong Kong agreement, for instance, where car developers and miners agreed to not run X-C and run car and in exchange car would eventually be a two to bigabyte increase, something like that. And so it's essentially like remove the wind of the sale of XT.
Starting point is 00:20:19 But then later on there was a classic on BU and the two of them, you know, went pretty strong. I think they made a few mistakes. And one of them is like not presenting a unified front. There was a lot of, you know, infighting between the two. And they were not 100% compatible in terms of the consensus room that they implemented. It resulted in a fork in test net. So then, you know, everybody gets cold feet because it's not quite clear which one of the two, you got to support and everything, right?
Starting point is 00:20:51 So I think there was a bit of a strategic mistake. And on the other side, the other camp was also willing to play dirty. So when the other side is willing to play dirty, you really need to have your, you know, your act together. What do you mean with playing dirty? Can you expand on that? Yeah. So I mentioned already they think that they were doing well, like investing in infrastructure
Starting point is 00:21:17 and stuff like that. But there was also agreements like the Hong Kong agreement, for instance, that was more of a political move than anything else because they made some promise there that they had never, you know, they did not really intend to keep. Or maybe they changed their mind later and they intended to keep it at the time. It's not quite sure. But the whole stuff was, you know, very much political, much more than it was for the benefit of the coin or for technical reasons. there was also a fair like you know the core developer that were more on the big block side there were a few like Mike Erl and Gavin and Dresson but they found themselves isolated very quickly and eventually removed from the project there was there was a fair bit of stuff shit going on on Reddit and and Bitcoin talk and a few places like that so yeah no I just wanted to
Starting point is 00:22:11 because you know we are speaking about these things years ago and probably many of our listeners are not, not very up to date with that. So I just wanted to spend like three minutes kind of recapping what happened. Okay. Yeah, sure. So basically, right, you had, you had on the one hand people who wanted to have bigger blocks, right, and we spoke a little bit about that and kind of division around that. And then a lot of the core developers, they wanted to have this other thing called Segwit,
Starting point is 00:22:37 which would give a lot of, you know, extra technical capabilities. And we can speak about that later to exactly what Segwit was. and then you had these different factions and there was a division and lots of drama around it and we did many episodes back then we had Mike Hearn on several times we had Adam Back on and Greg Maxwell and like so with lots of discussions on this
Starting point is 00:22:57 but basically had these differing visions and then there was this sort of agreement to do kind of both right so the core developer says okay we'll do as two megabyte block size increase at least we'll double it and then the other one the miners said, okay, we'll go ahead with Segwit and activate that.
Starting point is 00:23:20 But the 2 megabyte thing came first. No, the Segret thing came first, right? So the Segret thing got activated. Yeah, so that was Segwit 2X, yeah. Yeah. I think there were strategic mistake made with Segwit 2X as well. Like you mentioned, the fact that the two don't activate at the same time was a bit of a mistake. I think there is also probably a bigger mistake.
Starting point is 00:23:43 This was the mistake that led me to believe that Segwit 2x will fail with very high probability at the time. And so that BCH was very important. It was that at some point the activation of Segwit 2X was modified in no way so that it's compatible with the way UASF activates Segwit. So for people who don't know, UASF is essentially a group of people that decided on August 1st, we're going to enable Segwit, no matter what, and we're going to run a modified version of the Bitcoin Core software that does that. And, you know, even if there is no majority support for the miner or whatever, we just are going to activate Segwit and essentially fork the network with the Segwit branch on August 1.
Starting point is 00:24:32 And that made a lot of people very scared because a lot of people at the time were very scared of forks. And so they choose to activate SegWi 2X in a way I was compatible with USF. And I think that was a mistake because clearly the USF people, they were not really there to find a compromise or have any kind of negotiation. They wanted to, you know, it was a movement that was very much, you know, my way or the highway. And if you, if you, so rather, if you don't modify the activation to be, be compatible with them. On August 1, they would fork themselves off the network.
Starting point is 00:25:14 And they would find themselves on a minority chain. And then, you know, like, maybe they want it, maybe they don't want it, maybe they come back or whatever. But essentially, it removes a lot of wind due up their sale. On the other end, if you activate Segwit in the way that is compatible with what they want it, then they stay on the chain. They can claim that Segwit activated because of their effort. And so you give them much more leverage in the negotiation. suddenly. And you do that in between the time where they get what they want and when the other side is supposed to get what they want. So it's pretty much a guarantee that you're
Starting point is 00:25:51 going to have a bait on switch if you do it that way. Like if you empower the people in the negotiation, you give them more leverage that don't want the second part to happen. By the way you do the first part, you're pretty much guaranteed that the second part is not going to happen. So that was what I saw at the time. So, you know, I've seen this, like, debate happened countless, endless times on Twitter already about, like, you know, was that August 1st Segwit activation caused by UASF or by the Segwit 2X agreement? And it's like, you know, it's kind of impossible for anyone to really decide. It's kind of impossible.
Starting point is 00:26:24 Like, the way the way Segwit 2X was made, essentially made it impossible to know. This episode of Epicenter is brought to you by Microsoft and the Azure blockchain workbench. Getting your blockchain from the whiteboard to production can be a big undertaking. And something as simple as connecting your blockchain to IoT devices or existing ERP systems is a project in itself. Well, the folks at Microsoft had you covered. You already know about the Azure Blockchain Workbench and how easy it makes bootstrapping your blockchain network preconfigured with all the cloud services you need for your enterprise app.
Starting point is 00:26:59 Their new development kit is the IFTTTTT for blockchains. Suppose you want to collect data from someone in a remote location via SMS and half that data package in a transaction for your HyperLedger Fabric blockchain. The development kit allows you to build this integration in just a few steps in a simple drag-and-drop interface. Here's another great example. Perhaps you're an institution working with Ethereum and rely on CSV files sent by email. One click in the Devkit and you can parse these files and have the data embedded in transactions. Whatever you're working with, the Dev kit can read, transform, and act on the data. To learn more and to build your first application in less than 30 minutes, visit aka.ms slash epicenter. And be sure to follow them on Twitter
Starting point is 00:27:42 at MSFT blockchain. We'd like to thank Microsoft and Azure for their supportive epicenter. Before we continue talking about Segwit 2X and like, you know, kind of the origins of Bitcoin cash then, one thing I want to just bring it back for one second and is discuss really quickly, you know, we often like see that, you know, there's this like, you know, block size increase versus Segwit and, you know, these are usually the two like main, popular proposals that are well known. But there's like other proposals, right, as well, like, you know, extension blocks, which is like, you know, how you...
Starting point is 00:28:13 I want to go back to you something that you guys said a few times, while it was very much big block versus segwit, and I think it's a bit of a strange representation. It may be what it looks like, no, but it was not like it was then. If you go back in the past, there was this proposal to do Segwit as a, hard fork instead of doing it as a soft fork. And a lot of the people that would be know in the big block camp were actually in support of that. And I was in support of that.
Starting point is 00:28:47 I know people like Gavin and Drison were in support of that. So it's not per said that everything is bad about Segwit. But the way Segwit was made as a soft fork creates another serial case of four megabyte for the, so. When you implement Segwit, essentially you can create a block that is up to 4 megabytes. But effectively in terms of capacity, you get 1.4 to 1.7x the capacity, depending on the assumption you make. We are probably going to see in a few months, you know, what is the real number. But in that ballpark. So let's say less than 2x.
Starting point is 00:29:29 But you get 4x adversarial case, which means your software need to be able to support up to 4x. you know the base base block size and that is not really a problem if you plan to keep the block small right but that's a very big problem if you want to increase the size of the block because suddenly you add an adversarial case that get incredibly big and someone can craft a special block that exploit that adversarial case and bring the network to its needs right like yeah I know like a lot of my issues with like the Segwit soft work proposal mostly just around technical debt where it just seemed to be a very complex change, a touch like the all parts of every piece of the code. Yeah, that's another. That's another thing. The way, so the way it was done as a soft
Starting point is 00:30:17 torque was significantly more complex than the way as a hard fork. Because obviously, you need to retrofit everything into the existing rules, but the existing rules has never been made with the consideration that you would retrofit all of that in them. So it was a bit more complicated but that's the role they choose to go into so yeah to get back to your question there was also proposal like extension block this was actually what I was working on initially and so extension block was essentially a way where you don't do anything special in the base block the base block stay similar to what it always was before Segwit or before big block or anything but you create this
Starting point is 00:31:02 extension block which you can put Segwit like transaction in them. And this exchange shot book would be 8 megabyte as per the proposal. And so you would create a situation where you get most of the benefit of Segwit. And you also don't get the main drawback of Segwit that is the 4 megabyte adversarial case. And you get a bigger capacity as well. And this is a soft fork. So that seems to fit the requirement that, you know, many different parts.
Starting point is 00:31:33 wanted or at least they said they want it. So I started working on that. But then Segwit 2x started becoming big. So it kind of removed the winhood of the sale of the extension block ID. And at the same time, they were doing it in a way that I thought was likely to fail. So I had to change plan. One of the things that was also interesting around the genesis of Bitcoin cash is because the Bitcoin cash started that was before, uh,
Starting point is 00:32:03 You know, this was, so August 1st was this key date, right where UASF, the threat was there's going to be a Bitcoin fork in UASF, and people still thought Segway 2X is going to happen, at least most people thought that. And Bitcoin Cash was actually on beforehand, and people were not really paying attention to it. There was like, what's this weird thing, Bitcoin Cash? And then, you know, when Segret 2X started failing, that's really when Bitcoin Cash picked up. So can you
Starting point is 00:32:35 speak a little bit? Because did you start working on Bitcoin Cash? I mean, you initiated this initial fork as well. Yeah, I wrote most of the software and most of the spec for it. There was also this also guy that
Starting point is 00:32:50 goes by the name of free trader that brought maybe the second biggest part of it. For you, it was very clear even at the time, okay, Segre 2X is going to fail. Bitcoin Cash is the right thing to do now. Maybe people don't see it this way, but soon they'll realize Segway 2x fails, and then, you know,
Starting point is 00:33:10 there's going to start being momentum around Bitcoin Cash. Yeah, so maybe I would put it as strongly because you get to realize at the time this is in the future, you never know 100% what's going to happen in the future. But I thought it was more likely than now that Segway 2x was, okay. But question about the timeline here. So, you know, I don't know if these dates are exactly right, but this is just what I was able to pull from like some articles and stuff. But it seems that, you know, the Bitcoin cash chain was announced on May 15th of 2017, but the Segwit 2X, like New York Agreement, didn't come out until May 23rd of 2017.
Starting point is 00:33:47 So was the Bitcoin Cash like plan like happening with, did these initial seeds? Are they like the result of the Segwit 2X or is it a like, you know, did you already have this idea going in even before the New York agreement? So there was an idea to effectively fork the chain and create a big blockchain, but I was working on extension block at the time, as I mentioned. It was more of an effort that was supported by Classic and VU and XT as well. But what I jumped in is that,
Starting point is 00:34:22 so there was this segue with two X-F. I was convinced it was unlikely to work. And at the same time, there was like a lot of discussion between Classic and XT and B-D. but they seem to not be able to agree on what the spec gonna look like. So roughly two months before, yeah, two months, two months and a half before the actual form date, this is when I jumped in. I see.
Starting point is 00:34:45 And so, you know, so it was sort of this like, um, this like frustration, I guess that like, you know, uh, you saw that this like Seguit 2x thing wasn't going to work and it's just like, you know, you decided what, what, what, what? Yeah, there was a lot of frustration on my side. Yeah. What I was seeing at the time is that on one side, you have people that build something I'm not very interested in, but they are executing very well,
Starting point is 00:35:12 both on the business side and the infrastructure side, the development and everything. They are doing what it takes to make their thing work, except this was not the thing that I was interested in. And on the other side, there was a group of people that tried to do something that was more in line with what I wanted, but they seemed to make mistake again and again. And so that was, yeah, that was very frustrating. And so how did this, you know, coalition come together? So like you, so you mentioned, like, you know,
Starting point is 00:35:49 the XT classic and BU developers are kind of already, you know, talking about this for, but, you know, the Bitcoin Cash, like what I see as that coalition was bigger. Like, you know, you had a lot of these big miners like Bitman, you had like, you know, public figures, I'll call them like Roger Vair. Like who, how did this like, you know, thing just like in a short period of time of like, like you mentioned, two to two and a half months, like really come together and coordinate to like, it seemed, if I remember from my memory, like, you know, this Bitcoin Cash, Hard Fork actually seemed very well coordinated.
Starting point is 00:36:22 There was like, you know, somewhat of like unified messaging there. How did like all that coordination come? Who's the one who really stepped up and organized this? Well, it probably looked more organized than it actually was from the outside, from what you're saying. So who stepped up? So I stepped up for this back on the code and did some coordination, obviously. But a lot of those are people, actually. A lot of people that were in, you know, the big block movement wanted to see that happen.
Starting point is 00:36:53 And it was very organic. There was no, you know, there was no mastermind being made. It was very organic. And so let's speak a little bit about, I mean, you touched on it before, right? That there was a big disagreement was not so much around Seguid, but around Seguid as a soft fork. And there was, there was this strong argument in fear, which I honestly never fully understood that softwork were such, a soft forks were such a dangerous thing. And of course, other blockchains have taken a different approach,
Starting point is 00:37:30 Bitcoin Cash is taking a different approach, Ethereum's taking a different approach and kind of do regularly hard forks. But what is, why is this such a big disagreement around that? And what's, what's the sort of your perspective and maybe a Bitcoin cash approach to Forks versus the Bitcoin one? So, yeah, I think it's a big, like, both positions are a bit strange to me.
Starting point is 00:37:54 the like the no hard fork ever whatsoever and the one we need to do everything as a hard fork or you know like weird kind of ideological positions right um i'd say you know it really depends on it really depends on what you want to deploy in the network some something just make more sense as a hard fork or soft fork if you have if you have a natural way so say you want to add something new to the protocol If you have a very natural extension point where you can include that stuff, then you should do it that way and it's going to end up being a soft fork. But if there is no natural extension point, you should probably not try to retrofit something very weird
Starting point is 00:38:38 in a place it doesn't quite fit and just do a hard fork instead. There is also this interesting idea that there is actually no difference between a soft fork and a 51% attack. It's just like a software, it's just a miner refusing to mine on top of blocks that have some properties, and a 51% attack is the same, right? So the main difference is not a difference of what it is. It's the difference of perception. If you like the new rules that the miner are enforcing, then it's a soft fork.
Starting point is 00:39:14 It's not a 51% attack. But if you don't like the new thing that the miner are enforcing, you are facing a 51% attack. So some people are a bit, you know, put off by this. Yeah, I remember that was one of the arguments that my current made. And I think we talked about it back then, where his argument was basically that a soft fork is like more dangerous, right, for users because they don't explicitly,
Starting point is 00:39:45 they don't kind of explicitly agree with this update. And they just kind of go along because that's a new rule. Whereas in the hard fork, okay, if you don't actually download the new client and run the new client, then you're not like kind of participating in this. Yeah, that's why it's similar in the 51% attack in many ways because as a user, you don't have a, you know, have a lot of say about what's going on in case of a soft form. Right. You know, a censorship of a, you know, let's say we decide to censure a certain account that that is a soft fork really. that and so yeah the main difference between a soft fork and a 51% attack is very much do you see the change as a good thing or a bad team that's that's the difference it's very much of a
Starting point is 00:40:32 it's a perception difference on the technical level there's no difference and so what does the bitcoin cash ecosystem look like today so what are the different teams and uh you know the different clients. Okay, so in terms of not software, uh, Bitcoin ABC is still the main client. And this is the client that we wrote and continue to write. Uh, BU is still very big within the BCH ecosystem. And I'd say one of the client that is quite interesting is BCH, because those guys are, you know, so it's a bit more of an experimental client. Maybe I would not recommend the miner to use it to mine block. or whatever.
Starting point is 00:41:16 But because they are more experimental, they can innovate much faster. So they are playing with a bunch of new IDs faster than other clients are doing it. So it's an interesting client to keep an eye on. And maybe, I don't know, what is it like specifically about no software or more generally about the different actors? Yeah, and also more generally, like, what else? Like, what does the community look like today and how has it evolved? since the split.
Starting point is 00:41:49 Oh, okay. Since the split in August or the one in? No, no, I mean the original split away from, from Bitcoin. Okay. I think the community is actually stronger now, even though it's the bar market, so the situation looks worse if you, you know, if you look at it from the outside,
Starting point is 00:42:08 but I think the community is much stronger. It took, you know, at the beginning, like we mentioned, it was put together very quickly, actually. And so it took a bit of time for everything to settle down, to identify who are the good people doing solid work, who are the people that were just doing noise or making noise rather. And so it takes some time for everything to emerge and for people to take position that makes sense for them. And I think we are in a better position on that front. We are more organized and generally like everything.
Starting point is 00:42:47 is much higher level, let's say. So another question then, actually, as well that I had about, like, you know, the planning of the fork was, how did you guys come upon the name, like Bitcoin Cash? Like, why was this name chosen? And, like, you know, obviously one of the most contentious things about this name is that, like, you know, people like to say, oh, you're trying to, like, subvert the brand of Bitcoin. So how did this come about? And, you know, the famous, like, Roger Ver, catchphrase is, like, Bitcoin Cash is Bitcoin.
Starting point is 00:43:17 Like to what extent do you agree with that statement? And is that like what you're trying to do? Are you trying to replace Bitcoin? Are you just trying to create some alternative that's like, you know, that that will coexist? What's the goal here? Okay. So yeah, we kept the name Bitcoin with Bitcoin Cash because I think it has it has a legitimate claim to the name Bitcoin, but in a bit of a different way than people who say Bitcoin
Starting point is 00:43:44 is the real Bitcoin or something like that. I don't think the question of who is the real Bitcoin makes a lot of sense. I think it's so, you know, if you say a Bitcoin Cash is the real Bitcoin, right? The people within Bitcoin Cash are going to be happy with that statement, but the people within BTC are probably going to see that as a bit scammy. The people outside of crypto are like, you know, don't care about what's the real Bitcoin or what's not, right? It's not even on there. It's not even a question they are interested in.
Starting point is 00:44:16 So I think it's a bit of a red airing, right? People are putting way too much attention on that. So I have a opportunity to say that Bitcoin cash is one Bitcoin, maybe, and there are other flavors of Bitcoin. No, there is not like, you know, there is not just one Bitcoin like it used to be. And so then the name cash is there obviously to say that, you know, this is this is, this is, This is what we think is important about Bitcoin, right? This is the peer-to-peer cash system aspect of it, like in the title of the white paper.
Starting point is 00:44:55 And it's a bit of a statement that what we think is important is, you know, like the entente building this peer-to-peer cash system rather than adhering strictly to every single detail of what was coded and described in various early stuff. We recognize that, you know, maybe some of those. stuff need to be improved, like the blog size need to be increased, for instance. So, so it's, you know, it's, it's a bit of a, yeah, it's a bit of a statement that this is, this is a kind of Bitcoin and this is what we think is important about Bitcoin. And so how do you personally feel about the nickname B-cash? Like, is that, you know, do you think
Starting point is 00:45:39 that's a okay to use term? So the problem I have with it is that it's used often, and pejorative manner. There wouldn't be so much people being like, oh, be cash, be cash. Then I probably wouldn't see a problem with it. It's probably a useful, you know, sharp hand. But because it, because it no has acquired that negative connotation, then I don't like it too much. Now today, you know, at one point Bitcoin Cash was up to, you know,
Starting point is 00:46:14 20% of the Bitcoin, I think, market cap, or maybe even higher. And, you know, in terms of the hash rate, too, the two chains were at some point almost that parity, I think, in terms of the hash rate. But like today, of course, Bitcoin is like much, much higher in the price. I think today Bitcoin is around, you know, $4,000 when we record this and Bitcoin cash, I don't know, in the 100-ish, 130.
Starting point is 00:46:41 So, and also that hash rate, there's a big difference now, right? Bitcoin has a very high hash rate. And, you know, as you would expect, right, Bitcoin Cash. Yeah, I'm trying to buy a price. So that's not very surprising on that front. Yeah, it's not very surprising, right? But of course, the whole security assumptions of proof of work and of Bitcoin are really that a 51% attack is, you know, expensive. And that was what makes it secure.
Starting point is 00:47:05 But so with Bitcoin Cash today, that's not really the case, right? Like a big Bitcoin miner on its own could maybe do, you know, 51% attack on Bitcoin Cash. So is that something? that concerns you? Yes and no. So obviously the security on BCH is going to be smaller than on BTC because the price is smaller. When you put in in dollar term, they're running an attack is still fairly expensive.
Starting point is 00:47:32 And also, mine have demonstrated in the past that they were willing to pull a hash rate from BTC to put them on BCH temporarily, even at a loss to protect the chain. So I think it's a very, very strong sign that, you know, the miners that are mining BCH right now are eternally committed to protect it if the needs, if the needs is there, right? But doesn't that putting a lot of dependence on like the altruism of certain miners or like, you know, the external incentives of certain mining pools to protect the network? Because we've already seen like a number of like minority hash rate chains get 51% intact in the last year and a half. Like, you know, the biggest example I think is probably Ethereum Classic, which, you know, you know, I guess shares a lot of similarities in its positioning as Bitcoin Cash where like, you know, it's positioned to its like older brother, we'll say, right? Yeah, so GPU coins tend to be weaker in that regard because with GPU you can mine any other GPU coins, right? So the pool of available ash rate can be much bigger than what it looks like.
Starting point is 00:48:42 It's not like people can just pull from ETH to attack ETC. They can actually pull from almost every coin on the market. But don't you think the pool of Bitcoin miners is even bigger than the pool of all GPU miners from all coins? Probably not. Like except if you are ETH, that is very big. But for most GPU coins, it's much worse. I mean, I think your point is sort of fair that, okay, the miners have kind of proven that they will, to some extent protect Bitcoin cash and maybe step up.
Starting point is 00:49:16 But that feels like, it feels like very weak. You know, it feels like in Bitcoin, you have, you know, you have this game theoretic assumptions. And then you say, okay, it's actually economically infeasible to attack this at some, you know, at some scale. And then in this scenario, you say, okay, I mean, maybe that's kind of broken, but at least we kind of trust the entities that control is. So, I mean, it feels something essential was lost here. You always trust the miner. Though the tradeoff that you're making here is a bit different. It's actually fairly interesting.
Starting point is 00:49:52 And so I don't agree with that. I kind of agree with you that is weaker. But actually, some people agree that is stronger. And the argument goes as you are paying for that hash rate all the time, if you're in the majority chain. But actually, having so much hash rate on the chain is only, useful when you are under attack. So in various ways, you are overpaying for security. Whereas if you have a pool of available hash that can, you know, be used to defend in case there is an attack,
Starting point is 00:50:23 then it's more economically efficient. And I would actually both of those arguments are true in some way. So the security is weaker, but it's more efficient. Was merge mining ever a consideration? So, because this is something I've talked about, extensively with the Ethereum classic dev team. So, you know, has this ever been open on the table, like potentially merge mining with Bitcoin? Well, the problem is, so the problem here is that if you ever get close to the size of the chain you are managing from, then you are in the world of trouble because the incentive don't work anymore. And I think, I think this is likely to, to happen. So we talked about, oh, BCH ended up being like a non-negligible portion of BTC before.
Starting point is 00:51:17 In this condition, Merch Manning would not have worked very well. It would have been a big problem. And actually, I kind of predicted that the share of BCH compared to BTC would decrease the bit during the bear market. And the reason is that people are more sensible to the problem that cause immediate pain, rather than possible problem that's going to happen in the future, right? And so right now, Bitcoin is not running at capacity. So Bitcoin is working fairly well if you want to transact. It's maybe not as cheap as BCH, but it's fairly cheap right now. But what's going to happen is that when you, like, you know, during the next
Starting point is 00:51:58 bull run, when people are going to come in, you're going to see the same problem that we saw last year on BTC. And I expect that this, I expect when that happened that the share of BCH compared to BDC to increase again. And so that would be a mistake to do much mining in those conditions. And do you think you'll ever make sense to explore like really very different approaches to securing pick on cash, whether I don't know that's proof of stake or something else? So we have in the pipeline that technology called Avalanche. Maybe we want to talk about it later.
Starting point is 00:52:45 But Avalanche essentially, this is something we want to use to improve zero conf. But one of the side effect you get out of it is that it's much more difficult to do a 51% attack on the coin. And so that is the kind of stuff that is in the pipeline as well. I think it's probably a better approach than the number of money. If you buy this narrative that like, you know, the majority of the miners, so a miners on Bitcoin were like, you know, big blockers. Couldn't you do, was it ever in the books or like thought process of, you know, soft forking a block size increase into Bitcoin? And so obviously by that, I, you know, I mean things like extension blocks or like, you know, you merge mine Bitcoin cash and, and, and, and, and, and. soft fork a drive chain between them and like you know force them to be act in parity and stuff like
Starting point is 00:53:39 were any of these kind of things ever in the consideration of like forcing big blocks upon bitcoin through soft work um yeah well obviously i worked on extension blocks so that was kind of uh one of the idea behind extension blocks um though i don't know i don't like this idea of forcing and to people whatever. If there is a disagreement on something, I think it's better to fork. So, okay, it's better to find an agreement, right? But if no agreement can be found, it's, I think, better to fork and see what the market value at the end.
Starting point is 00:54:19 When this kind of stuff happened, you actually saw both branch of the fork increase in value. so the case of PTC and VCH or the case of ETH and ETC. In both cases, the sum of the two coin is larger than the sum of what was before. And the reason is you have two vision, right? And none of the vision can realize itself while everybody is fighting with each other. And after that, you have two vision that can be realized. So the overall value is increased. Obviously, if you fall for a more frivolous reason, then
Starting point is 00:54:54 this doesn't happen, right? You see a net destruction of value. But if the situation is really such as you have two vision and the people that have those two visions are fighting with each other and they cannot come with an agreement, then you are better of working than forcing, you know, off of the community to something they don't want. Now, can we like shift gears and talk a little bit more about, like, you know,
Starting point is 00:55:20 Bitcoin Cash's approach to scalability? And so, you know, you had this great, blog post talking about like, you know, how you guys are really focused heavily on like client like improvements and how we can create clients that can like start to support bigger blocks. And so yeah, can you go ahead and just give us a bit of a summary of that, you know, vision there? Okay. Yes.
Starting point is 00:55:45 So on the high level, there are many agreements that were made by the people that are more in the smoke block size that, uh, there are probably. when you increase the size of the block. And those arguments tend to be right on the qualitative aspect, but not very right on the quantitative aspect, right? So you don't run into all those problems when you increase immediately to a few megabyte and, you know, instead of one megabyte. But if you want to go to very large block, then there is,
Starting point is 00:56:16 there are actually many problems that you run into. And basically, they boil down to, you know, to that assumption. So for a blockchain that is based on proof of work to work well and all the incentive to work properly, you need that the time required to propagate a block on the network and validate it. You need that time to be small compared to the block time. Because when that's not the case, you first start to have perverse incentive in the mining that start to occur. And after that, the next step is that it doesn't work anymore, right? So if the time you need to propagate a block and validate it is more than 10 minutes on a Bitcoin or, you know, any variation of Bitcoin that have a 10 minute block time, then what's going to happen is that you're going to find block faster than block can propagate on the network.
Starting point is 00:57:10 So suddenly the situation is that the network doesn't converge to one, you know, one truth anymore. it's just like forks more and more and more and more faster than it can converge. And so if you want to have bigger blocks, you cannot just say, okay, we change that number in the software and everything is going to work great. You actually need to have solution for those values problem that makes the propagation and the validation of a block slower. And so on the very high level, it's not like it's more of a desk-by-a-sousand-cut kind of problem than there is like this big issue you want to solve. But generally, you want first, if you want to make the propagation faster, you need to propagate less information, right? That means that you need the node to be able to predict what the next block is going to look like as much as possible.
Starting point is 00:58:07 And so then you need only to transmit the difference between. what they're not expect and what the reality is. And you want to keep that difference as small as possible. So that's the first thing. And then the second thing is that you want to be able to validate the blog very quickly. And to do that, you need to be able to validate the blog in such a way that you have many small, independent chunk of work to do that don't depend on each other. And that way you can have different core of the machine to do each of them, or even if we
Starting point is 00:58:40 scale very big, you can have a rack of machine and each of them do a portion of the work. But if you have work that depend on each other, like what we call serial, then it's a bit of a challenge. So the general idea is like limit the serial stuff and deploy technology that allow not to synchronize with each other as much as possible ahead of time so that they have, you know, less work to do when the block arrives. Right. Just last week, we actually had Alexy Akunov from TurboGeth, and he's like kind of approaching a lot of these very, very similar approach to the scalability issues in Ethereum where like, you know, a lot of other people are focusing on like sharding and stuff. But Alexi, he's been really focusing on like, you know, let's push down the propagation time. Let's like improve the sync speed. Let's improve the validation speed. So a lot of similarities there.
Starting point is 00:59:37 Well, those are not, you know, those are not very new. ID, this is all many large-scale systems. This is all Facebook works, for instance, where the work is done in such a way, like there would be no way to do any kind of serial work at Facebook scale, right? It's just impossible. So all the work is organized in such a way that you can distribute on many machines a small amount of work and this small amount of work don't depend on the work that the other machine are doing, right? And then all the machine propagate a result
Starting point is 01:00:10 back to you and you can aggregate those results and deduce whatever you want to compute from it. I would say let's go into, so you mentioned a little bit that the performance increase comes when, you know, propagation happens more quickly and propagation can happen more quickly if, you know, I as a note can already kind of like tell what the next block is going to look like without having, you know, whole blocks being sent around. I guess that tag. into the topic of transaction ordering and then the changes you guys have made there. I mean, but first of all, let's like, how does transaction ordering work today in Bitcoin? And what were the downsize of this?
Starting point is 01:00:58 Okay, so right now in Bitcoin, the transaction ordering is such as, we call it topological in computer science term. And what that means is that you can essentially put transaction in any order in there. With the only constraint that if one transaction spent from another, they need to be order such as the, you know, the parent transaction is first, and then the one that's spent from the parent, the check transaction is after in the block. So you have, you have this constraint, but you have no other constraint in the block. Okay. And so that means that if I am as a miner, I create a new block and, you know,
Starting point is 01:01:37 Sonny is a different minor, then Sonny has basically like no, I mean, he may be able to sort of predict what transactions will be in that block, but he doesn't know kind of the structure of the block. Yes, exactly. Because there are many possible valid ordering, then when you find a block, you not only need to transmit to the author party what transaction are in the block, but you also need to transmit the order in the block.
Starting point is 01:02:08 And when you do the computation based on information theory, let's say assume you know of a set of transaction and sony knows also of a set of transaction that is almost the same as you right because you are both connected to the same network and the transaction propagate on the network so you both know of about the same transaction so let's assume that you want you find a block and you want to tell sony what this block is looking you know what what the block looks like well if you know of the same transaction you just need to say sending one bit yes or no for each transaction. So if there is any transaction flying around,
Starting point is 01:02:48 theoretically, you could transmit n bit of information to Sony to tell him what transaction is in the block and what transaction is not in the block. Obviously, in practice, you need to send more than that, but that's the theory can limit. Now, if the ordering is important, then you need to send also the information
Starting point is 01:03:08 about in what order they are. And obviously, if you have N transaction, then the first transaction can be in N different position, right? And the second one in N minus one position, because it cannot be where the first one is and so on. So you get n factorial possible ordering. And to transmit that, you need n-log-end bits of information. So you have a factor log-end here of difference between the two. So say if you have a thousand transaction in your block, then you literally have 10 times more information. that is about ordering,
Starting point is 01:03:42 then transaction that is about what is in the block and what is not. And as you grow bigger, it only gets worse. So any kind of technology that rely on you and Sony, having a common knowledge of what the state of the work is and up essentially transmitting almost only information about ordering and very legal information about what's actually in the block. And so those are the theoretical limit,
Starting point is 01:04:09 theoretical limit but in practice you have this technology called graphin that allows to transmit block and there are two versions of graphene that have been implemented right now they are in the prototype stage and one that transmit the other and one that doesn't and you see that the one that doesn't transmit the order needs seven times less information to to propagate a block so it's not as good as the 10x you would expect from the theoretical perspective but we can see that it's in the same ballpark. Okay, that's amazing.
Starting point is 01:04:44 And I mean, I know in Bitcoin, there's also been, you know, some kind of efforts on, you know, reducing propagation time. There's a relay network. But that works differently because that only transmits the headers or like, is there, what are the similarities and differences with the efforts that have happened on the Bitcoin side to reduce propagation time? So the general idea is the same, right? The general idea of all the fast-relay techniques being like compact block or the fast-frey network or graphene or whatever, right?
Starting point is 01:05:19 They all rely on the same assumption that if you want to send a block to Sunny, the two of you have a lot of information in common already. You know about most of the transactions that possibly can be included in the block. And so instead of transmitting the content of the block to Sunny, you transmit it a special, you transmit to him a special data structure that's going to say usually there is a short ID that is associated with each transaction. And you're going to say to Sunny, the block have this, this, this, this, this, this, and that transaction by sending a list of short IDs. And then Sunny is going to look into the transaction he knows about
Starting point is 01:06:02 and match the short ID. to know which one are in the block. And you need to have those short ID that are ordered in the way they appear in the block. And that's almost, you know, mass fast block relay. You know, they all do some kind of variation of this. And I guess in Bitcoin, the thing is that what you guys are, or what you guys are trying to do here with having a kind of a predefined order, right, where it's exactly like if I
Starting point is 01:06:33 produce a block with a certain number, a certain list of transaction in it, that block is going to look the same as if Sonny produced a block with the same transactions. Is that basically? Yeah. So let's imagine we continue on the same technique, right? So you send to Sunny a list of short ID that correspond to each transaction. Then for the first one, Sunny need to match all the transaction it knows about to know if it matched that short ID. And for the second one, the same and the short one the same and so on. But if you have a predefined ordering, Sonny is only going to need to match the transaction
Starting point is 01:07:11 that could possibly fit at that position in the block. So if there are 10 transactions in the block, then for each ID, Sunny needs to essentially have like one tenths of the amount of transaction to match that short ID, which means you can get much more aggressive on how small the short IDs are because they need to discriminate
Starting point is 01:07:32 between much less transactions. That's the intuition behind why you can transmit much less information. But the change that, so you said that's in tests now and in exploration, is this graphene, but when this graphene would come to Bitcoin Cash, you would basically have, you know, canon, like a predefined transaction ordering. And if I have, I produce a block certain amount of transactions, it will look the same as with Sunny. And so then we can, we can cut down. the amount of data that's being propagated.
Starting point is 01:08:05 Yes. And this would, of course, be a hard fork as well. No, no. The outfork is enforcing transaction ordering, which we do. So no, we can deploy graphene, you know, whenever, whenever it's ready. Right now it's in prototype stage, but, you know, it's probably going to be ready during the year. So now you do have a transaction ordering, which is enforced already,
Starting point is 01:08:31 but there isn't the technology. to kind of take advantage of that order to, like, reduce the amount of data that's being sent around. And that's the graphene thing. Exactly, exactly. That technology is in prototype stage at this point. It's not yet deployed. But so really quick, though, this does come at a cost, though, right? Because so once you've gotten rid of this, the, what was the term you use, the natural transaction ordering or whatever the topological, topological transaction ordering. Once you get rid of that. Now you have, now you put an extra burden on any full note or anyone who's verifying a block to basically make sure that you don't have like, you know, you don't have, how do you
Starting point is 01:09:13 deal with like these child pays for parent and whatnot? Okay. So, um, from the client's perspective, uh, the person that received the block and need to validate it. What actually happens is that topological ordering is exceedingly difficult to, um, um, um, you know, um, um, you validate in parallel. And this is one of the reasons we wanted to remove it, because you can parallelize the block validation. You know, it's easier to parallelize the block validation. And the way you do it is that you pass over the block twice. So once you pass over the block and go over all the outputs of all the transaction and you add them all to the UTXO set. So that part can be done in parallel. It's like very embargo.
Starting point is 01:10:01 single parallel. And then you do a second pass on the block and you go over all the input and you mark all the input that have been spent in the block as spent. And if you do it that way, you essentially have a two-step process to validate the block and each one of this step is, you know, very parallelizable. Yeah, I don't see how this helps with the parallelizability here. It seems like you could do something similar with topological. I don't see why top. So in the optimistic case and topological, you could be doing it in parallel and only when you hit like a child pays for parent, then you have to deal with that, right? Yeah. So, yes. Yes, absolutely.
Starting point is 01:10:45 You can do it optimistically in parallel and then fall back to the topological stuff. But your fallback is going to be serial, right? Always. So I can produce a block with a lot of chain transaction in them and get you to validate it in Like, you know, you have no essentially, you have no parallelism. Would have that. So I can poison you with a bad block. But isn't that true in this as well?
Starting point is 01:11:08 Can't I just trade a block of like a chain of child pays for parents and just like, and then you basically essentially end up falling back to sequential as well because you're going to have to do iterations like. No, because you are going to add all the output to the UTXO set. Right. So say you have a thousand chain transaction and they all have one input, one output to me. you know, to make it simpler to understand. Then you're going to add the 100 output to the UTXO set.
Starting point is 01:11:36 And then second pass, you're going to spend 100 output. And so at the end, you're going to have, like, you know, one that is spent and one that is created in the UTXA set. Great. No, that's, that's very helpful. And that sounds like a very interesting change. Now, another, another thing that's interesting. So Bitcoin Cash, when you guys forked, the new,
Starting point is 01:11:59 block size in Bitcoin Cash is 8 megabytes. And since then, there's been a third of blocks is increased to 32 megabytes. Why is that? I mean, the Bitcoin Cash today, there's not that much usage to blocks are mostly empty, who's never really at capacity. So what was the reason to go to 32? I'd say probably because we can. Yeah, you got to understand that because, because
Starting point is 01:12:29 there was so much contention to increase the block size to begin with, there is a bit of a apprehension within the BCH community that the block size is going to be stuck. And so I think this is mostly why, even though it's not needed right now, we would have 8 meg right now, we would be perfectly fine. Like we are not, you know, we're not using that much capacity. But people are afraid that by the time we need that much capacity, then maybe, you know, the ecosystem would have drawn a lot and we would have like another class of smoke blocker in there maybe.
Starting point is 01:13:06 Yeah, okay, that makes a lot of sense. So basically saying you want to default, to change the default now when, you know, there's no real controversy around it rather than get into a situation again, like in Bitcoin. And of course, in Bitcoin too, I mean, I know initially when Bitcoin was launched, I think there was, I don't know, block limit or it was like a really big one. and then at some point it was added as a sort of hack, oh, let's just put this in for the moment so that somebody can create a giant block.
Starting point is 01:13:37 And then later, when you reach it, we get rid of it. I think that was the thinking of Satoshi back then. And it didn't seem like he anticipated that this was going to become a contentious issue. Yeah, I think this is what happened. Yeah. So because that happened once, you know, people are kind of afraid that it's going to happen twice.
Starting point is 01:13:57 So right now there is a discussion. within the BCH community to have an algorithm set the blog sites rather than having people deciding once in a while to increase it. Yeah, that was the original idea behind like the original Bitcoin Unlimited proposal, right? No, Bitcoin Unlimited is a bit of a different proposal. What they were doing is what they call emergent consensus. So essentially it creates the notion of a soft consensus. So if you have a block that is very big and that is bigger than you block size,
Starting point is 01:14:37 instead of marking that block invalid, you would mark it excessive, right? Which means it's not invalid, but you are not going to follow that chain right now. And then what happened is that if you see that most of the network is building on top of that other block that you consider excessive, rather than on top of what you consider is, you know, main chain, then you are going to reconsider that block and try to actually validate it. So that is the idea behind emergent consensus. One of the problem with that is that it creates, it creates a situation where it's quite difficult to upgrade actually,
Starting point is 01:15:17 because everybody needs to do it at the same time, because if you do it by yourself, you know, may end up creating blocks that are too big that everybody reject and you lose a bunch of money. So it puts minor in a bit of of a tough spot. So I think this is why wasn't widely adopted. I see. I also heard like some stuff about like the Bitcoin Unlimited team
Starting point is 01:15:38 working on what they call gigabyte blocks. Is that like, you know, how realistic of a proposal is this? And like is this like some sort of like, you know, long-term vision thing? Or it's just like something that you guys are looking into in like the very near future? So the Bitcoin only people are running what they call the G. gigablock test net. That is what the name say. That's the test net with like ridiculously large block size and they have tool to generate a ton of transaction on there. The main goal is not
Starting point is 01:16:12 to do like gigabyte block right now, but it's to identify what kind of bottlenecks exist and what kind of challenge exists when you want to grow the capacity of the network. And then we can have, you know, we can take lesson and have data that from that experiment and use that to improve the software today. But there is no immediate plan to move to 1 gigabytes. Though, you mean, like, if the software can support it and if it works and everything, why not? Right. But it's not the case right now that we can do that very safely.
Starting point is 01:16:48 Okay, cool. And then, so, you know, I guess the last thing, you know, as we're running up on time for this week, one of the last thing I want to ask about, like, you know, one of the reasons that I actually personally got like, you know, pretty interested in Bitcoin Cash was, uh, you guys seem to ever, like, you know, we've discussed this throughout, uh, but you guys seem to have a very open policy on hard forks. And so, you know, to me, Bitcoin Cash just seemed as this place where like, okay, all of these like ideas that could be done as hard forks on Bitcoin, now we actually have a place to like try them out and test them. And so I know that you guys came up like,
Starting point is 01:17:24 like some roadmap process where like you are committing to like six hard forks every six months or something similar to that. Could you go ahead and discuss a little bit about, you know, how this was agreed upon and like why it was agreed upon? Yeah. So there was, yeah, this is what we do. We do an upgrade that usually bundle a few outfork and a few soft fork change every six months. And we end up the first. first to do that. Actually, Monero have been doing that for a fairly long time. And you have other coins that don't have a very specific schedule,
Starting point is 01:18:03 but that also do work on a regular basis like ETH. So the reason why we went that way is because we knew that if we want to increase the capacity a lot, we're going to need to change a few stuff. It's not enough to just change a number and expect everything to work well. right because the number is more of a security measure because there are stuff that don't work when you go bigger and it's not because you change that number that suddenly it becomes secure to you know do big blocks and so we knew that we would need to improve all that thing works to be able to create and propagate and validate those large block faster if we wanted to you know realize that vision essentially. So we needed to have some way to do out for it to do that. And doing it on the schedule
Starting point is 01:19:03 that is set ahead of time makes things easier for everybody because now everybody know what to expect. Well, then thanks so much, Armarie. This was a really, really great discussion. And so I think that concludes our first part of this Bitcoin, big Bitcoin cash episode or interview. And so we're going to be going to do a second part, which comes out next week, and we're going to speak about, you know, the split. You know, there was a fork of Bitcoin Cash. And then, of course, there was the fork between Bitcoin Cash and now what became Bitcoin SV. So we'll speak about that. And then we'll also speak about, you know, a lot of other things that you guys are working on technically because Bitcoin Cash is certainly like experimental
Starting point is 01:19:46 in exploring a lot of interesting new technology. So, yeah, we'll come. back to that interview next week. Thank you for joining us on this week's episode. We release new episodes every week. You can find and subscribe to the show on iTunes, Spotify, YouTube, SoundCloud, or wherever you listen to podcasts. And if you have a Google Home or Alexa device, you can tell it to listen to the latest episode of the Epicenter podcast.
Starting point is 01:20:12 Go to epicenter.tv slash subscribe for a full list of places where you can watch and listen. And while you're there, be sure to sign up for the newsletter, so you get new episodes in your inbox as they're released. If you want to interact with us, the guests or other podcast listeners, you can follow us on Twitter. And please leave us a review on iTunes. It helps people find the show, and we're always happy to read them. So thanks so much, and we look forward to being back next week.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.