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 debate 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 we discussed 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
Brian Fabian Crain: So we’re here again this week with Amaury Séchet. He’s the lead developer of Bitcoin ABC which is the main implementation, the main client for Bitcoin Cash. So this is our big kind of a exploration of all things Bitcoin Cash. If you haven’t heard last week’s episode, I would recommend you go back to last week’s episode. We spoke a lot about Amaury’s early work in Bitcoin then kind of the block size debate, SegWit2x. It’s kind of a little bit of a history expedition in both Bitcoin and Bitcoin Cash and then how Bitcoin Cash came about and also the first technological things where Bitcoin Cash really differentiated. So in specifically transaction ordering and a thing called graphene and we spoke about hard forks and a bunch of other things. So I recommend people check that out. But this week we want to continue our exploration of Bitcoin Cash and dive a bit deeper into some more recent events as well as the future roadmap. Yeah. So thanks for joining us again Amaury.
Amaury Séchet: Hi, hi again.
Brian: So we left off the last time when we had Bitcoin Cash as this new chain with a different vision, a vision that was more focused on improving quickly, being okay with hard folks, being maybe okay with taking more risks and really trying to do the cash part, right? So having a direct peer-to-peer blockchain rather than kind of settlement layer and that seemed like a unified kind of community back then and now over time it seemed to have grown more part and of course this ended up resulting in the fork of Bitcoin Cash and then Bitcoin with became known as Bitcoin SV, can you tell us a little bit, how did the divisions in the Bitcoin Cash community emerge early on and what were they?
Amaury: Yeah, well, I think Craig Wright, especially with probably the most public figure of the ideas, he was always a very polarizing figure because some people believe is that Satoshi and some people believe he is a scammer, right? So he was always a very controversial figure so yeah, we can move on.
Brian: When did Craig Wright start entering the Bitcoin Cash ecosystem.
Amaury: So we were speaking at a conference in the Netherlands and at the time Craig Wright was promising to do a mining pool on BTC that would block SegWit and obviously it never happened, but when he was making those claims, he made a lot of declaration about big blocks and stuff that certain people liked and so what happened subsequently is he had an easy time inserting himself into that community, essentially by saying what people wanted to hear and many people were not very careful about that. And so that’s that’s how it happened.
Sunny Aggarwal: I guess I have to ask this question. Where do you personally stand on this issue of Craig Wright being Satoshi or not?
Amaury: So there is no proof that Craig is Satoshi. So in that sense he is much Satoshi as anyone else. If he were to produce the proof I would have to ask myself the question do I you believe that proof or anything, but as long as there is no proof, there’s not much value in that question. I would say it is unlikely for many reasons, one would be very similar to what Vitalik Buterin said at the time right? If you have an easy way to prove something and instead you choose very convoluted and not very convincing ways, it probably most likely means that you know, it’s not right and even if he turned out to be Satoshi, which I don’t believe is very likely, even if that was the case, it doesn’t remove from the fact that he plagiarized many scientific papers, produced many fake documents, like generally is not the kind of person I would want to follow so it would change my opinion of Satoshi more and it would change my opinion of Craig if that makes sense.
Brian: Yeah, I mean one thing that stands out to me. So there’s this book called “The Book of Satoshi” and I you have probably read many of these foreign posts originally, but this is a person who just went through the Bitcoin talk forum and basically compiled a lot of the answers from Satoshi and then published books. I read that one point and it was actually really really interesting. I thought it was super fascinating to get to look into the discussions they had back then and the way he was arguing and you know, I came away really impressed. I was like, wow this guy is so smart, articulate, balanced. He seemed to be very open-minded and then you see that Craig Wright show up and that guy is just constantly making these false statements, being super loud, obnoxious, angry, belligerent, and it was like these obviously are not the same people, that makes no sense.
Amaury: No they are not the same people.
Sunny: I remember I met a lot of Bitcoin Cash people in the Bitcoin Cash community, even people who disagree with a lot of what Craig says, who still buy into this narrative that Craig has spun that maybe he wasn’t the only one who was part of Satoshi but was part of this group of Satoshi, the most common narrative I’ve heard is that Dave Kleiman story and Craig was working with him and so maybe the original Satoshi was Dave and Craig kind of like took over that mantle
Amaury: Well, it’s possible but there is not that much proof that it is true or false so all of that is just speculation and people always have loved to speculate about Satoshi, but it’s just that.
Sunny: Okay, so, Craig nChain, by the way for those who aren’t aware nCHain is the name of Craig’s company, they kind of got involved with the Bitcoin Cash project a little bit early on like you said. Was there a sense of growing division from that early on? I remember there was this big conference called “Satoshi’s Vision conference” about a year and a half ago or so and it seemed that everything had a very unified front back at that point.
Amaury: I don’t know have you seen his entry at that conference, I thought that was extremely cringy.
Sunny: I actually don’t know anything about this so….
Amaury: Okay so he went up on stage with like some kind of rock music, you know clapping hands of people along the way or whatever that was extremely cringy. I don’t think Craig can feel shame but you know, I think a lot of people felt shame for him.
Sunny: I see and so do you think there was an early division showing up just purely around like the cult like personality that Craig has built up and maybe early on there wasn’t much technical division, but there was a feeling of like what’s this guy doing? Like he’s building this personality and it might be a threat to the success of the project?
Amaury: Yeah even before he started like even before the fork that was there and a lot of people were very worried about him. The problem is or you know, it’s a problem or is not a problem. It’s a problem in that case. I think it’s generally a good thing but it’s a problem in that case. If you have a decentralized community then there is nobody that can say okay this this guy is not part of the community and needs to go. Right. And as long as you have a significant portion of the community that is willing to have him around then you know he` is going to be around.
Sunny: I see and so why do you think there was, what we talked about last week was, the year one of Bitcoin Cash and so why do you think during that year one of Bitcoin Cash there weren’t many people calling him out, at least publicly.
Amaury: They were though, almost all of the technical people called him out at some point, especially when he did his stuff about selfish mining a lot of people called him out. The problem is that those ideas are fairly complex, like the idea of selfish mining is actually fairly difficult to grasp to someone that doesn’t have a technical background and it’s fairly counterintuitive. Right? So if you just have a cursory knowledge of all that work, it seems that something like selfish many would not be but it turns out that when you run the bath it actually works out and so when the happened a lot of people called him out, this is where he came up with the negative Gamma where for people who don’t know Gamma is like a proportion of node that takes some action based compared to the total number of nodes. So it’s obviously a number between zero and one. It cannot even be a zero or one actually so between zero and one excluded, and so obviously Gamma cannot be together. So that was a lot of fun.
Sunny: That’s the one where Vitalik called him out on stage.
Amaury: Yeah Vitalik called him out, I called him out, Peter Rizun for Bitcoin Limited called him out, almost everybody that had a solid technical background was able to call him out on that one. Actually it’s very funny because then it was like, okay negative Gamma is possible because the notion of negative probabilities are saying and equally the paper supposedly that would you know support his claim and a friend of mine knows the guy that wrote the paper. So that friend of mine got in touch with the person writing the paper and that person essentially came out and said that the interposition of the paper that Craig was making was absolutely completely wrong. And this is very famous in the BCH phase. There is this quote risk finance where Craig essentially, he’s whole argument was crumbling down and he answered with risk finance, like in a tweet of two words that really doesn’t mean anything, but it was quite funny. So now people use risk finance as a go to catch phrase when you want to say that something is completely nonsensical. So some people use that now.
Brian: I think the Bitcoin SV, I mean it was a mystery to me why anybody would buy this why this. So I think Bitcoin SV doesn’t seem like a particularly serious project and Craig Wright I think we all share our skepticism about him. So I don’t think we should spent too much time on that, but just briefly, can you talk about the fork or were there some technical differences in different opinions about where Bitcoin should technically go and can you talk a little bit about that?
Amaury: Yeah. Sure. So essentially there were two very big arguments coming from the SV side before the fork, one was about this Wormhole project. So Wormhole is a token solution that works on BCH and to ensure scarcity so that you cannot use all the resources available on the system, they use a mechanism where you burn some coin and so that was very to the dislike of the BSV camp, which I find rather funny because if people want to burn their coin as far as I’m concerned, I wouldn’t burn my coin but if people want to burn their coin it is their right. This is exactly the financial freedom that we want to to deliver to people, if people want to hold on they can, if people want to spend their coin they can spend their coin, if they want to burn them then it’s up to every single individual to decide what they want to do with their coin, so that part was a bit of a problem and the second part that they argued a lot about was canonical transaction of the ring. But what happened is that early on you can even find on the nChain website, well probably they removed it by now, but it was at the time for like the whole year that it wasn’t their roadmap because it was something that was discussed a long time ago. And then Craig was again and then we had a meeting in Paris with a few other people and then it was against it again. So it was a constant flip-flopping so I don’t think this is the actual reason, I think those people wanted to fight essentially and they picked up whatever reason was, you know available at the time. But I cannot read minds right so that’s just what seems to be the case to me.
Brian: So is there anything left to this story that you think Bitcoin SV is just going to disappear or is there still kind of issues remaining from the split?
Amaury: Well, I don’t think that roadmap makes a lot of sense. But you know if they want to do it good for them. This is the freedom that fork brings to the table, right
Sunny: So what exactly is the roadmap here, they have this like tagline of Satoshi’s vision and…
Amaury: It comes from the conference Satoshi’s Vision, that was organized by other people. Everything they have it comes from somewhere else. The whole stuff is a giant copy paste.
Sunny: So from my understanding there was this idea that they are bringing in Bitcoin SV where they’re trying to like push it back to essentially like the, Oh Bitcoin 0.1 was the ultimate perfect version of Bitcoin and that’s why they’re like relabeling opcodes.
Amaury: I don’t know. I think they have a strategy that is more interesting than that, not from a technical standpoint but from more of a sociological standpoint because the motto they are going for is that it’s what Bitcoin was intended to be. And what is great is that Satoshi is not around anymore. So Satoshi is not gonna say, you know, this is not what I intended, right? So when you do that you don’t even have to do exactly what was in 0.1 or whatever, you can claim that oh, this is what Satoshi intended and so there is a very religious aspect to it. People that are gonna preach are going to say, okay, this is what Jesus meant when you know, whatever story from the Bible happened, right, and you have different priests that have different interpretation of what that is, but they are all like, okay this is what Jesus meant and you have a very similar phenomena where the leader of BSV puts themselves in kind of a high priest who can interpret the Holy scripture of Satoshi and told the people what Satoshi intended there, which I find a very fascinating phenomena from the sociological standpoint, but I don’t think it’s very solid base to build a cryptocurrency on.
Sunny: I see. And so I remember also, part of what led up to the split was that nChain submitted a proposal about adding some specific opcodes and those were chosen not to be included in this hard fork but rather than the next one. Can you tell us a little bit about what exactly was that, timeline there of the technical roadmap which caused this last straw to break essentially?
Amaury: Yeah, sure so nChain wanted a series of opcode to be a really bold that used to exist in the very initial version of Bitcoin but that were disabled because the implementation was buggy, and so they were disabled at the time and nChain wanted to re-enable the sub codes and so in the fork it made before the one where there was a split, the one before that we re-enabled some of the opcodes and nChain said they would do the work and everything. But at the end the work ended up being done by Shammah Chancellor and Jason Cox and myself to to make it happen. There is a lot of work to do between something that works and something that is production quality and they were not quite willing, they delivered something that works but they were not willing to push it to the kind of quality requirement that we wanted. And so the first time we did it but the second time we didn’t want to do it and so did not happen. That’s that’s pretty much what happened there.
Sunny: Okay. So we had these like two conflicting technical visions and largely fuelled by personal issues. So could you walk us through a little bit about the timeline of like what exactly happened during the hard fork because a lot of people may have heard of this and they’re like, oh there’s something going on, some hash wars or something. I know Roger Ver keeps flip-flopping back and forth. So can you explain to us, there was some drama around replay protection so could you just take us through a walkthrough for people who aren’t really that familiar with what exactly happened, what was the timeline of the month or two leading up to this fork and as the fork was happening.
Amaury: Okay, so three months before the fork it’s when have a free state for what’s going to be in the fork, so the system can get ready and we can have a lot of time to test and if there is some problem we have time to readjust everything. So three months before the fork we end up with the free state and it turned out that those opcodes don’t make the cut and after that there was a meeting in Bangkok where essentially that was a meeting to try and find a common ground, try to find if there was a common ground that existed, you have to hear the audio recording of that meeting it is available online if you want to look for it, but essentially what happened is that the first day in the morning Craig Wright stormed out of the room screaming insults and stuff and so that didn’t end up being a very productive meeting because then there were two people remaining or three maybe, representing nChain and stuff but they were not the one having too much decision-making power. So nothing happened there. So moving forward they decided that to start with clients so they forked Bitcoin ABC before we implement the fork and they call it Bitcoin Satoshi’s Vision because there was the Satoshi’s Vision conference and was the name that was popular so they registered that and then they decided to run the client and then they were ensuring everybody that they would be no fork, they would be like one coins and but everybody knew all this technology was working and was like okay if you are running a client that has different processes that there’s going to be two chain, right? But all those people were like no, no, there’s not going to be any fork blah blah blah. So, you know it happened and there is two client with two different rules and other chains. It’s as simple as this.
Sunny: Okay, so then we had this fork happen and there was this hash war that happened once the fork started right? And so could you tell us what exactly the goal was here? Like who are the major mining pools that were supporting Bitcoin Cash or Bitcoin ABC and who were the major mining pool supporting Bitcoin SV and why did people make such a big deal out of the hash war?
Amaury: The whole hash war narrative was always very bizarre to me because I don’t think it makes a lot of sense because once you have two chains, they’re never gonna merge into each other or anything, it doesn’t really matter how much has there is when you have two chains and it’s not going to change anything. So what happened is that you had mostly CoinGeek and BMG which is the the mining branch of nChain. So those people were mining BSV at are fairly significant loss and then the next threat of 51% attack and stuff like that. So there were some other miners that were friendly to be BCH decided to put extra hash on BCH to you know, disincentivize any kind of 51% attack and that was the end of it.
Sunny: I remember there was also a little bit of controversy around, I think Bitcoin.com, I think it was, who started to move a lot of its hash power over to Bitcoin cash from Bitcoin, but without really informing their constituent miners that, oh your hash power is being used for a purpose other than what you may be expect it’s being used for and so do you think, I guess it’s kind of like a separate question, but do you think this is an okay thing to do on the behalf of a mining pool operator or do you think we should put more accountability on these mining pool operators to prevent them from doing these kind of things?
Amaury: Okay, so I’m not exactly sure. I don’t have all the internal information of what’s going on at Bitcoin.com. So if you want the specific detail on that one, you would have to speak to someone else from Bitcoin.com but generally it really depends on the contract that the mining pool and the mayor of between each other, a lot of the mining tools nowadays have the kind of contract where the mining pool say, we’re gonna mine BDC and BCH and try to collaborate between the two and then payback depending on what the reward is, the payback may not even be in the coin that the people have chosen. So if this is the kind of contract that people are in there, I don’t think this is that much of a deal but if the contract is very clear that I am mine BTC or I mine BCH then that’s a bit of a different issue. It’s all about what was the agreement between the people.
Brian: Yeah, so just a final thing on this and then I would say let’s move on from this topic. So there’s a lawsuit going on now, Craig Wright is suing you and some other people. Can you tell us what’s this lawsuit about?
Amaury: Yeah so I’m not a lawyer so it’s a bit difficult. But there is a lawsuit where some company in Florida that is apparented to the BSV community is suing myself as you mentioned, but Jihan Wu, Roger Ver, Jesse Powell from Kraken, and a few other BCH developers, and I think that’s it from memory. So essentially those people because supposedly there is a great collision that happened to do not respect what was written. It’s very bizarre. It seems to me but I’m not a lawyer right? But it seems to me that they are interpreting the white paper as some legally binding document or something like that and they are extracting some part of it and then they are, you know saying that there’s some grand conspiracy or indeed to separate legally the white paper between myself and those other people which is yeah, we’ll see how that goes, but I don’t think it makes a lot of sense. You have to take it seriously though. It’s always legal stuff. But from from the aspect that is of interest to us like the cryptocurrency and stuff like that, I don’t know what a judge is gonna think of it. But from a crypto or a technical perspective at all I don’t think it makes a lot of sense.
Sunny: And there was a part of the lawsuit I remember was also around something around the ticker, where there’s some grand conspiracy of like stealing the Bitcoin.
Amaury: Yeah, exactly. Yeah, that’s what they are saying and they are interpreting support of the white paper saying that, according to the white paper or if something else should happen according to their interpretation of the white paper and it seems to be that they’re considering it a legally binding document. I would say the interpretation of the white paper is wrong, but it doesn’t even matter because it’s probably not a binding document, but you know, I’m really not the best person to ask that, you should ask a lawyer or a judge or someone like that. I’m not even an American citizen.
Sunny: Alright. So let’s go ahead and move on past the fork and let’s’ look into the future of Bitcoin Cash. So, when I met you for the first time last December one of the proposals you were talking to me about which I thought was actually very fascinating and exciting, was this idea of Avalanche Pre-Consensus and so really helping and especially like, you talked a lot about why it will help improve the security of zero conference action. So could you go ahead and tell us, 1) Why do you care so much about the security of zero conference actions and then 2) what is Avalanche and how will that help?
Amaury: So to begin with if we go back to the goal of the project, the goal of the project is to create a form of digital cash that has as best as possible property like monetary property, and and so very early on what was identified as point we need to work on our confirmation time and fungibility and scaling. Right, so we talked a bit about scaling before but zero conference is something else because right now in Bitcoin or any Bitcoin derivative the block time is 10 minutes, and so it takes on average 10 minutes between the time you make a transaction and the time this transaction confirms, right and during that 10-minute window there is a lot of opportunity to do a double spend. So we don’t think that’s ideal and one of the solutions people are working on to make things better on that front is a technology called Avalanche So Avalanche is a technology where essentially when there is a double spend going on nodes are going to run the protocol between themselves to decide which one is the correct one and which one is not and then the result of that algorithm can be used by miner to mine one of the others and and so that can give you very fast information about which transactions are going to be eventually mined and which ones are not. We want to dig more in some detail, it was very high level, but that’s the general idea.
Sunny: There is the paper that came out from the secret team called Team Rocket, but Emin Gun Sirer has sort of become a little bit of the face of it. And so, you know, we definitely love to have him on. We just haven’t had time to organize that around and talking a bit about Avalanche, but this Avalanche that you’re talking about, is it at all related to that paper or are these as two different things or just loosely inspired? What’s the relationship between this Avalanche Pre-consensus we’re talking about here versus the Avalanche consensus protocol.
Amaury: Yeah so this is what is explained in the paper but we use it in a different way from what Emin’s team wants to do. So what Emin wants to do is something called AVA coin and this is a cryptocurrency that is gonna be based on Avalanche only, Avalanche being the only consensus mechanism that this is going to use and this is not what we want to do with BCH. So what we want to do with BCH is a bit different. What we want to do with BCH is keep the blockchain like it is, not change anything on that front as per Avalanche because there is a huge amount of software that rely on that and it’s actually a very strong consensus mechanism. It’s very hard to rewrite history and so on. So it has very very good properties, but it has one property that is not very good. It’s that it’s slow to converge and there is no way to make it fast enough for what we want. You want a transaction to be essentially final within a few seconds, right? And the more you raise the block time the faster you need to propagate the blocks and validate them at the given scale. Right? Because you always have this constraint that the time you need to propagate and validate the block need to be small compared to the block time. So you already have a tension here between how fast you can validate that the transaction is not going to have a double span and scaling because we want both scaling and and fast confirmation on this, we have a we have a bit of a problem here.
So the plan is to keep the blockchain as it is with 10-minute block time, but in between the block the node can run Avalanche to decide essentially what’s going to go in the next block, and if you do it that way you still have all the good property of the blockchain, but you can improve that with Avalanche.
Sunny: But in order to do this Avalanche Pre-consensus you you need some notion of choosing who the nodes are. So usually you either do this through some sort of proof of work mechanism or through proof of stake. And so is idea here to use proof of stake essentially to choose the nodes in this Avalanche consensus.
Amaury: So the proposal right now is still a bit up in the air. It seems that some people want to do it based on proof of work so `you `can have a set of previous miners that choose from the Avalanche consensus mechanism. You can also have people that have a certain amount of coins that do it. We haven’t really settled on one of the others yet, and the reason is there is a lot of incentive to be considered right? It’s a very difficult problem and you don’t want to screw up the incentive of the system. So we haven’t finalized the decision on that one.
Brian: I would love if you can take a step back and try to explain Avalanche for somebody who doesn’t understand it. I mean, I think the zero confirmation challenge, I think that’s that’s kind of clear. Right? So the issue is basically I do it, let’s say I send some Bitcoin Cash to Sunny and the problem is I can just send another transaction sending it to myself and now before it’s in the next block Sunny can’t really rely on that payment too much and I could go to a miner and say hey, listen, I sent one Bitcoin to Sunny, he gives me I don’t know some product for it and then I go to the miner and say hey, listen, this transaction being one Bitcoin to me. I give you 10% of it, but put that in not Sunny’s and I can defraud Sunny right. So that’s the kind of traditional fear there. Of course historically, I mean that’s some risk but it hasn’t actually happened often and traditionally you had Bitcoin payment processors, like Bitpay. They would just accept your confirmation payments for at least for a lot of things maybe depends on the amount and stuff, but they’re always considered with insecure many Bitcoin developers fault. This was reckless shouldn’t be done, but quite obviously right, so I think the case for oh if you can make your confirmation secure, like that’s fantastic, but can you can you explain again how does Avalanche accomplish this?
Amaury: First I need to explain maybe why it’s a difficult problem. And in traditional payment system it’s not a very difficult problem. Right? So if you send two transactions to PayPal and one that sends money to Sunny and one that sends money somewhere else, then PayPal is going to decide is one or the other valid and reject the other and this is the end of it and they can do that very quickly. But because Bitcoin is a decentralized system, then there is not one authority that can decide here is the one that is right and the one that is wrong, and because it’s distributed then maybe some people are going to see the transaction that sent the money to Sunny first and maybe some people are going to see the transaction, the one you send money maybe to yourself first, right? And those are not going to agree on which transaction is the real one. So what they are going to do is that each node is going to randomly choose a set of peers and they are going to ask them , do you think the transaction to Sunny or the transaction to yourself is the correct one, and the node itself has its own opinion depending on which one it has seen first. And so what’s going to happen is that depending on the result of that pulling, the node is going to say okay is the result of that pulling agrees with what I think is true. If the answer is no then the node is going to change his mind and start again from scratch but with the other position. And if the pulling agrees with what the node is thinking then the node is going to increase its confidence that this is the correct result. And you run several rounds of that and once a node reaches a certain level of confidence, once it’s high enough, then the node considers okay, this is the final decision on that matter. And so what happens is that you can prove that all the honest node on such network are going to converge toward the same result and what you see in practice is that it happened very quickly typically in about two seconds.
Brian: Okay, so let’s say you’re the miner you are getting the transaction for me and then you query the other nodes and now you’re getting another transaction spending the same output after that, now we have both transactions you query the other nodes and you basically, so would it be like whichever transaction you get first, you say that’s the valid one unless others convince you that the other one was propagated.
Amaury: Yes. Exactly. Yeah.
Brian: Okay. Okay, and then I guess the send the risk scenario here would be, of course the next miner who mines a block. I mean he could just put the other one in there anyway, and then this gets reverted nonetheless or..
Amaury: Well in that case, what the miner is going to is that this block is not going to match what the pre-consensus agreed upon and the proposal is a bit more subtle than that. The proposal is that you’re gonna out fund a block that has something that contradicts the decision that has been made. If that makes sense. It’s a bit different because you don’t have to mine exactly what the Pre-consensus has decided. Maybe you want to mine an empty block. Maybe you want to mine some transaction that you nobody agreed upon yet. But if there is something that people have agreed upon, so if people have agreed that the transaction to Sunny is the right one and the miner decides to put the transaction when you send the coin to yourself, then the network is going to consider that this miner is not an honest miner. And the other miner is not going to mine on top of this book.
Brian: Okay. So basically the different transactions get sent around and there starts to be some agreement that okay, this is sort of a transaction we have some loose agreement on and once that becomes pretty strong if somebody else mines a block and they include the transaction that contradicts that then, you start orphaning it, and I guess that becomes sort of not like a clear binary thing but more like rough….
Amaury: So the general idea is that yeah, you do what we call you park the block. So the block is not invalid per se it respects all the consensus rules, but we are not just going to activate it yet. And you can run around on Avalanche on the block itself, to know if other people are accepting the block or not. But what’s going to happen is that most people are going to reject that block.
Sunny: So what do you start giving it some sort of negative bias and in each difficult calculation, maybe that’s how you would do it?
Amaury: So what you do is that every time you do a round of Avalanche, and the result conforms with what you expect to increase your confidence, and when the confidence goes above a certain threshold, then you consider that this decision is finalized.
Sunny: I see. So this is like essentially a very heavy change to the consensus algorithm. It’s no longer a minor change anymore. You’re essentially changing the fork choice rules themselves.
Amaury: Yes. What is interesting though is that it’s actually what is described in the white paper, what people refer as Nakamoto consensus. In the white paper it is said that if a miner considers a block to be valid, they are gonna vote for that block to be valid by trying to mine on top of it and if they consider a block to not be valid, they are going to mine against it by refusing to mine on top of it. But so far in Bitcoin, there was no mechanism for any miner to be able to agree on anything there. They cannot communicate really their action and they cannot coordinate in anyway, so what ended up happening is that the miner, so far, have been voting yes always, every time you receive a block if it’s valid per the consensus rule everybody what yes, all the time. And the idea is to change this so that miners can vote yes or no, but if you don’t have some kind of synchronization mechanism then voting no is very disincentivized, but by offering a way for miner node to coordinate we can make that happen.
Sunny: Do you have some sort of like paper or something in the process of analyzing this because like I said, this just sounds like a very large change and it would be very interesting to read like something proving the safety and liveness of this system.
Amaury: So the liveness is not insured.
Sunny: Right, that is actually what I’m more worried about, you have a bunch of miners mining on one thing but everyone else is rejecting it.
Amaury: But this this is where the economic incentive of the system, getting place, if you mine something that nobody accepts you are essentially burning electricity away with no revenue, so you cannot do that for so long.
Sunny: I see.
Amaury: This is where the network of consensus is actually quite brilliant because you have a very strong economic incentive to form consensus with everybody else.
Sunny: So, you know, the goal of this was to solve the Zero Conf problem – isn’t the Zero Conf problem also solved by another one of Emin’s proposals, Bitcoin NG.
Amaury: Yes. Okay so two things on that front, the fact that it’s Zero Conf is actually not what it does. It’s the consequences of what it does but what it does is maybe a bit deeper. What it does is allow notes to synchronize the estate on an ongoing basis instead of doing once every 10 minutes. And if you do that, you have better Zero Conf insurance about Zero Conf, but it’s also easier to scale the system because now the reconciliation that you have to do when you receive a new block is a smaller. You can prepare most of the block ahead of time because you know what it’s going to look like. You also get stronger property when it comes to 51% attack. But NG have similar ideas. So NG, the way it works is that the miner that finds the block essentially becomes a leader for the next ten minutes. And when there is a double spend or something like that, the leader is going to be essentially Visa or Mastercard or PayPal or whatever for 10 minutes, right? And it’s gonna say, okay there is a double spend here, what is the correct one, what is the wrong one? So this is a system that works, though it has different trade off when it comes to Avalanche. And the first one is because you elect a leader, if the leader screw up or is the leader is dishonest or if the leader fails for some reason then the whole system needs to wait for 10 minutes for a new block to be found a new leader to be elected. Right, so it’s not as reliable. And then you have an attack, and after the system never delivers. Another concern about it is that the economic incentive is not very strong for the leader to behave properly because the economic incentive are based on fees and fees are low on BCH, so as a result the incentive for the miner to behave properly are low, and so it was not an ideal solution, but it’s a solution we looked into but we think that Avalanche is a superior proposal.
Brian: So are there any major downsides to this, are maybe new attacks or new vectors of maybe centralization get opened up by adding Avalanche?
Amaury: Yes and no. So Avalanche, just like the blockchain, the blockchain is a consensus mechanism. Avalanche is another consensus mechanism that have a bit of a different trade off. One of them is that even though most of the time it converts with a solution very quickly, it’s not guaranteed by the protocol. So if you have a large amount of hostile actor in there, they can prevent Avalanche from finalizing any decision, especially by flip-flopping themselves, right? So if a large proportion of the load flip-flop constantly it’s going to be very difficult for the network as a whole to come to a conclusion. Whereas this kind of flow doesn’t exist on the blockchain. If a miner puts something in the block, this is in the block. There is no situation where something is gonna be unknown for forever. And so having a combination of the two essentially ensured that worst-case scenario in 10 minutes you will know. But most of the time you will know in two seconds. Another trade-off that you make is that when you have a blockchain you have a very easily verifiable record of a story. So if I bootstrap a new node, I can connect to the blockchain, see what is the longest chain and synchronize to that. If I have an Avalanche system, well, I wasn’t there when Avalanche made the decision to begin with so I don’t quite know what was the decision at the time so I need to re-poll all the nodes, but that means that you need to have a whole history of transaction indexed so that can run that, also node can their mind later, like you can collect to a new network and there’s a bunch of malicious node that if you take the wrong branch or whatever. There is there is a ton of problem that exists with Avalanche on that front that don’t exist with the blockchain and so you have to see Avalanche as a mechanism that is much faster most of the time but that is not very good if you are not there to participate at the moment. If you are there and you see everything going on then it’s very good. But if you catch up later on or if you are a mobile device that connects to the network once in a while to see what your coins are, like a mobile wallet, is not very good either. So I think the combination of the two makes most sense. It’s like Avalanche is not this magical stuff that solve every single problem.
Sunny: You guys have this like really nice graphic roadmap on the Bitcoincash.com website and it’s a very nice roadmap, but it kind of has these three pillars to it and so we’ve talked about it which I remember being scalability, usability and extensibility. And so we’ve talked quite a bit about the scalability side of things as well as the usability with improving Zero Conf, and there’s many other things on that road map we obviously don’t have time to get to all of them today, but I’d like to talk a little bit now on that third pillar which is the extensibility and so what does this mean in Bitcoin Cash? What does this extensibility mean? And could you tell us a little bit about this new opcode that I’ve been hearing buzz about, object data say and like how that contributes to extensibility.
Amaury: Yeah, so the general idea of extensibility is to provide a way for people to do more like to implement new functionality or whatever. And yeah, one of the big steps that has been made recently is OP_Checkdatasig. So OP_Checkdatasig is an opcode in script that is gonna check the signature on that betray data. So right now all the operation that check the signature, check the signature based on the transaction itself. So that’s good for raw payment you can sign the transaction and someone can verify that you are the actual creator of the transaction, but if you can sign any piece of data, you can implement a bunch of new features. So one very interesting one is what’s called Zeroconf forfeit. So this is a technology where you can make a script and the script is such as, if I can produce several signature for the same public key, that means that someone tried to spend the same coin twice. And so you can attach a merchant to that and you can attach an amount to that and it’s essentially an insurance against fraud. I can essentially put some coin in some smart contract with you and this is okay. This is a guarantee that I’m not going to double spend you and if I ever try to double spend you then you can claim those coins. Right, so that’s that’s what I did and those are ideas or icons. So you can write contracts in the blockchain based on any information that exists in the blockchain, but you always run into some problem when you want to base a contract based on something that is not in the blockchain, right? So maybe we want to bet about who is going to be the next president of the United States like in are two years in 2020 I think the next election is. Anyway, we can bet on that for instance, but it turns out that the president is not in the blockchain so we don’t quite know how to write a smart contract between the two of us to make that happen. And what you can do is actually you can ask an oracle. So an oracle is someone that we both trust or maybe we can ask a set of oracle instead of one oracle, if you want to have more trust than into one specific entity. And this oracle is gonna authenticate some information from the real world and sign that with this public key and then we can use that within our contracts and so the possibilities are truly endless with oracle. We can make any kind of contract as long as we have some oracle that is willing to certify some information we can do anything. We can say, okay, if the price of Bitcoin next week is, more than that then then do X, and then we can have an oracle that says sign the price of Bitcoin every hour or every day or whatever and we can use that to be our contract. The possibilities are very very very wide and people are doing all kind of stuff with that.
Sunny: There’s a new opcode that’s being added into Bitcoin called check signature from stack. And so that’s very similar and they’re working on a lot of stuff around things like no script lists scripts and a lot of these things that will basically add complete smart contracting functionality to Bitcoin. Is this something that you guys are also looking at for Bitcoin Cash or is there anything that you guys are actively developing or are you kind of just letting you know the Bitcoin core team develop this and maybe if it works pour it over to Bitcoin Cash.
Amaury: So far we have been developing that stuff. It’s quite funny that you mentioned the check signature from stack, I’m not sure what the code name is, because we had several iteration on Checkdatasig and the final iteration ended up being exceedingly similar to check signature from stack, but I assume that they must have went through a similar process and I’ve discovered a similar issue because we kind of realized that at the end of the process that we have done something that is very similar to what they were doing. But for those other opcodes we’ll see I guess it depends on case-by-case basis. One thing that is missing on BCH that I would like to see happen is script versioning. So script versioning is something that has been introduced by SegWit that people have not talked about that much because they were focused on the capacity increase and variability fix for Lightning Network and that’s what everybody was talking about. But what I think is one of the interesting features of SegWit script versioning, and that is essentially, you know, what the name is right? There is a version number that is attached to SegWit script and that allows you to add new version numbers that do new stuff over time, so that’s a very nice way to extend the scripting capability of Bitcoin. And this is something I would like to see happen on this but now it’s not the case.
Sunny: So speaking of SegWit and Lightning and extensibility, we kind of talk in the last episode about partially Bitcoin Cash was a rejection of the software SegWit but why hasn’t Bitcoin Cash provided any alternative solution yet to transaction malleability. There are there were proposals. I know there’s one called flexible transactions but I’m sure that you don’t think that – the Lightning network is useful and so Bitcoin Cash, I understand that you guys want these larger block sizes, but at some point you also want to enable things like site second layer solutions and stuff, so where is this on the roadmap of putting the pieces there to enable Lightning on Bitcoin cash.
Amaury: Yeah, so that would definitely fall into the extensibility bucket. Personally I’m all for fixing malleability and allowing people to play with second layer solution. What I’m against in the case of BCD is betting everything on the second layer solution and essentially preventing people to use the first layer, so that I’m not much of fan of but if people want to build second layer on BCH then I’m more than happy to help them if they need something. So specifically we fixed some vector of malleability that are enough to do payment channel and stuff like that, so if people want to do payment channel, they can do that. Actually someone used that to implement atomic swap on BCH not so long ago. But personally I would like to see malleability fixed completely, but I know that a lot of people in the BCH community disagree with that so I’m not quite sure what’s going to happen on that front.
Brian: I would love to spend a few minutes before we wrap up just on you know, what is your high level vision for Bitcoin Cash in the long run. So we talked a little bit about, you mentioned oracle and smart contracts and layers too, is your vision that Bitcoin Cash becomes the blockchain where a lot of these things happen or do you think it makes sense that there is let’s say a Bitcoin Cash blockchain which is focused on electronic cash in payments. And then there’s something like Ethereum which focuses on smart contracts and then there’ll be some other blockchain focused on I don’t know gaming.
Amaury: Yeah, So my vision personally is that during whole human history we had to make a choice between technology for money that have good harmonic property meaning like they are very scarce and very hard to counterfeit and so on and also technology for money that didn’t add those harmonic properties but that were much more convenient as a medium of exchange. And so the thing that I see being truly revolutionary in what we are doing is that maybe for the first time in history over the past 10 years, we had technology that can do both, very good medium of exchange and very hard monetary property. So for me, that’s what is the most important and everything else on top of that is nice to have but it’s not the groundbreaking aspect of it and I don’t quite believe in the fact that we are going to have just one block chain to rule them all. And the reason is in engineering you almost always need to make trade-offs, right? So, let’s take BCH on Ethereum forums. BCH has a UTX or model similar to Bitcoin, which means that you can evaluate the script for every single transaction when you spend in isolation. You just need the UTXO and the transaction that spend it and you can do the computation. So the nice aspect of it is that it’s much more scalable than what Ethereum is doing because in Ethereum can make transaction that relies on some global state in the blockchain and or even modify it and that allowed them to do all kinds of very cool smart contracts, but that is much more difficult to scale and so there is clearly a trade-off here and we’re making the trade-off direction as to scale and that means that we don’t have smart contract capability that are as rich as Ethereum and Ethereum does the opposite, they have very rich smart contract capabilities, but as a result, they are much more difficult to scale. And because those trade-offs exist, unless there is some technology at some point that essentially removes that trade off because we find a new trick, there are probably going to be a handful of blockchain that make different trade-off that people are interested in for different reasons. So yeah I see a technology like BCH and Ethereum both becoming big and both having their own stuff that they do well. I don’t think this idea of one block chain to rule them all is really going to materialize, though we’ll still have a tonne of different coins. I’m not sure this is very sustainable, but I don’t think the opposite vision that one coin is going to rule them all makes a lot of sense.
Brian: Cool. Well Amaury thanks so much for joining us for both of these episodes. I think there was a super thorough exploration of Bitcoin Cash and it’s really very impressive, all of the different things you guys are working on. And I think what stands out to me most of all it’s just, you know, Bitcoin and Bitcoin Cash have really diverged in a significant way. There’s a very different vision, different technology, different priorities, different roadmaps and these are two very independent projects at this point, you know with each there are different pros and cons but it’s not just simple fork running a Bitcoin. So thanks so much for exploring that so deeply with us.
Amaury: Well, thank you for having me.