 Well, welcome everyone. As I said, good morning, good afternoon, good evening, whatever the case may be. Thank you for joining us either now or whoever's watching this recording in the future. And like Mike said, this is supplementary material for the first unit of Bitcoin for developers one. And so we'll be talking in the context of that, assuming that you've already gone through it and have some familiarity with it. And so welcome and I hope you get some additional useful information out of this session. What I do like to do with these is it's always most fun to do these sessions live and in person in a classroom and just do a very sort of conversational style that gets a bit more difficult when we're doing things remotely online. But I really would love if you know all of you asked many, many, many questions that makes it one just more fun for me and then also helps me to know that I am correctly communicating, successfully communicating what I hope to be communicating. So please ask many, many questions. We will pause regularly throughout the presentation to accept questions. So I think you can, Mike, am I getting this correct? They can just type their questions into the chat as we go. Absolutely. Cool. So please type those questions. Yeah. As you're going, as they come up, you know, drop them in the chat and we'll pause periodically and Mike will assist us with, you know, relaying those questions to me so we can get them answered. All right, so let's dive into it. Again, this is supplementary material for unit one of the course and the topics in unit one of the course are, you know, what is Bitcoin, right? It's the first unit. So we got to start there. What is Bitcoin? We talk about peer-to-peer networks. We talk about ledger entries. We talk about consensus. We talk about open systems and decentralization and balance of power. So I want today to touch on all of these things, but specifically really focus in on, you know, the components of Bitcoin and the balancing act that this whole system does. And it's because, you know, Bitcoin is a system that functions differently from most of the technology and systems that we're used to. You know, it's this entirely, you know, decentralized open network. And it's really like a very different animal than what most of us are used to or the type of technology or systems that we're used to interacting with. So I think the most important thing to convey in this first lesson and as we start is just the nature of this whole system and how it holds itself together. So today I really want to lean into first talking about the different components that go into the, you know, Bitcoin system as a whole, and then talking about this balance of power here. You know, how can you have this completely open, decentralized system that, you know, works and hasn't been taken over by a particular entity or business, then, you know, hasn't, you know, been co-opted or controlled by anything. It's really pretty amazing that that's worked out. And this is really kind of the core magic of Bitcoin that it's able to do this, to be this open, just protocol that keeps, you know, this balance, this balance of power in its system. So that's what I'd like to focus on today. So we'll start by just walking through the various components and then really talking about this, you know, balance in the ecosystem and then the different sort of players in the Bitcoin ecosystem and what they do control and what they don't control and how we are able to maintain this open, decentralized system. Because that's really, that's what makes Bitcoin different from, you know, some of the other, you know, the technologies that came before it. So I think it's really important to start the course by grasping that aspect of it. Cool. So let's go ahead and dive in and talk about the different components of Bitcoin that we'll discuss today. So we'll start with just going over, again, we'll just, you know, go over like we've already covered this in the first unit of the course. So this is going to be a refresher and we'll go a little bit in-depth, hopefully, on the consensus aspect. But we'll start by just talking about peer-to-peer networks or nodes in their roles and just kind of get a picture in our head of what's happening there. We'll talk about the data, right? Blockchain ledger entries, right? So we'll talk a bit about that. And then we'll talk about the consensus algorithm and we'll go a bit in-depth there because that is also, you know, a big part of, you know, the magic sauce that makes Bitcoin what it is. And that's basically deciding who has what when is generally how I like to put it. But we'll cover that in-depth. All right. So let's go ahead and get started talking about the peer-to-peer network. Again, I will, I think we're going to do the first two components, then we'll pause for questions, then we'll really go in a bit more depth on the consensus components. And then we'll do, hopefully, we'll have a good amount of questions for that. So here are, I had, thankfully, lots of, you know, pretty pictures, which I think are always helpful when trying to communicate ideas because, you know, the English language only gets you so far. It's really helpful to, you know, put pictures in our head of what's going on. So this is, of course, a very, very simplified picture of the Bitcoin peer-to-peer network. I'm not exactly sure what the numbers are. I haven't pulled them up real lately. But, you know, it's going to be like at least 10,000 different computers, similar to this, right? Different nodes on the network that are running the Bitcoin software and all talking to each other and all speaking their own same language, which is the Bitcoin protocol, right? And this is, you know, a key component, this is the key architecture of the Bitcoin network is that there isn't a hierarchy here, right? There isn't one central server that's talking to all the other nodes. There isn't, you know, different tiers of nodes. Now, nodes can play different roles on the network, but there isn't this hierarchy, right? It's just everyone's talking to everyone. And of course this network, peer-to-peer network, is spread out all over the globe. I think the majority of Bitcoin nodes are really going to be probably in, you know, the United States or in Europe. I think there's a whole bunch there, but it's really, it's globally. Every continent on the globe, you know, probably pretty much every country in the world, right, has some Bitcoin nodes in it. So it's a very widespread, very global, decentralized peer-to-peer network with all these computers talking to each other. And that's something that's, you know, as we walk through different, like I put these pictures up here because I'm hoping to put this type of picture in your head because this is a foundation that you need to, you know, have a foundational concept that will help you understand all of the other things, especially when we get towards the end of the course and we start talking about, like, how consensus rules are changed, you know, that was the thing that when this first came about, when I was first learning about it, I had a real hard time imagining how, you know, consensus was updated and how changes happened on the network. And just keeping these pictures in my head, you know, of just a computer, just someone running a computer with some software on it and all of these different computers around the globe talking to each other, just having these pictures in my head was really, really important for me. So we have this picture here of lots of different, you know, nodes or just computers talking to each other on the network. And then we can look specifically at one node. Again, this is just, you know, a pretty picture. But it really helps to keep this image in your head, at least help for me to keep this image in my head of just a computer running software, right. And of course, there is a human behind this computer that decides what software they're going to put on here, what specific versions, what settings they're going to give it, et cetera. But anyone anywhere in the world that has halfway decent, you know, device and an internet connection can be a part of Bitcoin and can decide what type of version or how they want to do it and put it on their machine and run that code and be a part of the network. And that's really key to understanding the whole Bitcoin ecosystem. So this picture, this picture is very important. All right. So that's, and of course, if we discuss in the course, nodes can have different roles, right? I mean, they route transactions around this network, you know, a transaction might originate here and get sent out to this node, this node and this node and then propagates off throughout the network. So nodes do routing, nodes maintain a copy of the blockchain ledger, which we'll talk about next. And then nodes can have other functions such as it can serve as a wallet, or it could also be a Bitcoin miner, which we'll talk about in a couple minutes as well. But all it is is just a human being somewhere that has this computer and has an internet connection and decides to put some software on it, runs that software and that computer then talks to the rest of the computer on the network, right? That layers, that's what it is. All right. Now that we've covered that, let's talk a bit about blockchain data. So all of these computers are talking to each other and what they're all doing is sharing data and coming to an agreement on data. And we'll talk about how we'll dive into consensus in just a minute. But it's just there's all this data that people are sharing back and forth globally. And sometimes when you get people who are curious about blockchain tech and come from more traditional web development, this type of stuff, you know, there are some sometimes the misunderstanding between what a blockchain does for us. And so it's very important to distinguish this data from just data that you're sharing online, right? If you just want to broadcast data out to the internet to other human beings on the planet, right, you don't need a blockchain, you can just set up a WordPress website or, you know, go to some service that lets you post the blog, etc. Blockchain data, which is really interesting about, you know, Bitcoin data is it's not just broadcasting this data and then storing it in this particular data structure, which is the blockchain, it's that it's a way to communicate, share, update and agree upon data. And that's really this whole system is designed to facilitate that, not just sharing, but updating and globally agreeing upon data in decentralized fashion. But let's look briefly at what this data is, right? Because there are sometimes a bit of a misconception as well, which is pretty understandable given the name, it's Bitcoin, right? So everyone thinks that there are these coins that we're sending back and forth. And that's kind of true, but not really when you look under the hood, because under the hood, it's just these ledger entries, right? Here's just an example from the mastering Bitcoin book, where it's just showing the block explorer, and you can see a transactions where we have, you know, inputs and then outputs, right? So we have some Bitcoin, right? This is maybe like, oops, hold on, let me go back. This is like a Bitcoin address, right? Here's, you know, here's some Bitcoin, this amount of Bitcoin coming from this address and then being sent out here. So all of this blockchain data is really just, you know, ledger entries. I had some, you know, Bitcoin on the blockchain, it's all Satoshis, right? I had, you know, which is the smallest unit of a Bitcoin, I think eight decimal points back. So you have Satoshis, and it's, I had these Satoshis here, and now I just moved them over to a different ledger entry over here, right? We're just updating this ledger with inputs and outputs to transactions. So that is, you know, how that data flows, right? These inputs and outputs, and of course, these transactions then get, you know, encapsulated, bundled into a block. And we'll talk about, you know, why it's a block and why that happens, we'll review that. But it's important to just remember for this part that, you know, we're sharing data on this global ledger and not just sharing, we're updating and agreeing upon data. And then this is the structure, you know, these inputs and outputs in a specific transaction, which then gets bundled into a block. So let's pause there and talk. Well, Mike, do we have any questions on these particular part before we dive into consensus? I'm not currently seeing any questions in the chat. But again, we're having a bit of a delay problem. So if anyone has questions, feel free to drop them in at any time. And then I'll be able to get them to you guys. Awesome. Okay, well, we will roll right along into consensus then. And we'll, especially for this part, this is one of the, this is, you know, all of the components of Bitcoin existed prior to Bitcoin, except for this part, right, this consensus algorithm, this Nakamoto consensus, we sometimes call it, like, this is the magic sauce of Bitcoin. This is what is unique to these systems that did not exist before. It is this method of reaching consensus and decentralized systems. So this part's really, really important to wrap your head around. I'm very glad this is being recorded and will be online because you often want to come back to these things a couple of times because it's just so core to understanding the whole system and it's different. So it's hard to have like a bucket in your head to shove it into. So, you know, I think for a lot of people, it takes like three passes at it for you to really grasp what's the different components and what's going on. So let's walk through it. And if you have questions here, please do ask them, right? If you've got the question, probably a whole bunch of other people have gotten the question, have the same question. So please ask it. All right, so coming in here. Oh, excellent. Let's do that. That I could share with you. We have a questionnaire about, I think, explaining further the inputs and outputs. Sorry, my table fell far. I hope you could hear that question. Inputs and outputs. Okay, excellent. So let's back up a little bit to this. All right, so we'll start at the beginning. Bitcoin is created when it's mined. It's, you know, a block reward, which we'll talk about in a moment. But when a new block is found, new Bitcoin is created. That's essentially, you know, the genesis of a Bitcoin is when it's created in that block reward. So that essentially sends it like an output. Bitcoin is always like getting locked and unlocked and then relocked to another address, right? It gets a little bit complex, but we'll, for the moment, think about it like this. You have some Bitcoin, which is created, you know, when a new block is mined. And then that Bitcoin gets sort of locked to a specific address, right? And when you want to then send that Bitcoin, the person in that Bitcoin, we'll talk about sort of the simpler, you know, just pay to pubkey hash transactions right now. In that scenario, that Bitcoin gets locked to a specific address. And that address is based upon a, is derived from a public key, which is derived from a private key. So that Bitcoin is locked to that address. Only the person that has access to that private key can unlock it via some digital signatures and send it, basically lock it to a different address, right? So if I'm sending funds to Mike, I have to use my private key to, you know, sign that transfer. So unlock it and then say, Hey, it's getting relocked to Mike's address now. So that's what happens in every Bitcoin transaction, essentially unlock and relock. And maybe I want to send Mike half of Bitcoin, but I have two different Bitcoin addresses, which each have a quarter of a Bitcoin in them. So I might take these two inputs, right, these Bitcoin that I have in two different addresses, use both of those inputs to the transaction. And then the output of that transaction is that half of Bitcoin going to Mike, right? So it's always the series of inputs, which, you know, are unlocked and then sent out as outputs, which are sort of relocked to a different address. So inputs, outputs, and that's the basics, the core of all Bitcoin transactions. So I hope that answered the question. Mike, did we have another one on this one? Yeah, we had one more question, I guess, before we move on here. And it's about, it's about nodes and the purpose of nodes. And they wanted to know if you also use your nodes for your own, to verify, sorry about that, use your nodes or use also use our own verification for our own transactions. And is there, and is there an outline of how to do that? Oh, okay. What is that? No, I got it. Yes. Okay, I'm sorry. So we talked about the different purposes of the nodes we just touched on, you know, routing, maintaining data and it could also be used for mining or as a wallet. So it's that maintaining data that's, I think, the component here that this person's asking about. Because, yes, one of the very important functions of a node and why someone might want to run a node is that so you can independently verify transactions. I didn't need to send that transaction out. I didn't need to receive that. If someone's sending me something or telling me about a transaction, I can go back and look at the entire history of a blockchain to verify whatever it is they're telling me, right? So if I have that complete history, then I don't have to rely on anyone else to give me information about what's happening on the network. So having a node that is what we call a full node, which means I can, you know, a full copy of the Bitcoin blockchain does allow you to sort of, we can say independently verify transactions on the network. And that can be very important for someone to say it's like maybe running an e-commerce shop and wants to be sure that what's coming in is valid, right? So when I get my, that you don't have to go through and like specifically do this yourself. It's not like you have to transaction comes in, you've got to go to the command line and run some commands. I mean, you can, right? And we'll look at some of that stuff later in the course. But your node will do this for you, right? If you're running a full node, a transaction will come in and all full nodes, your all nodes, you know, will go through and verify transactions as they come in. So your node will do that, that process for you automatically. And if someone says you have bogus transaction, if you're, you have a node setup that will look at that, check it out and go not rejected, right? And might even then disconnect from the node that is sending them that bogus or bad information. So, yes, you're correct. I hope that answers the question. We have one more follow up here and it's a question about the outputs. And the question is, is there a limit to how many outputs I can create from one Bitcoin? Yes, there is. And it's, I want to say 483, but I think that might be like, it gets a little specific on that. But yes, there are limits to the amount to how big a transaction can be overall and, you know, the amount of outputs you can have on it. So it's pretty flexible. But yes, there are definitely some limits on that. Cool. Okay, sounds good. I'll let you know if we have any other questions. Okay, now we're going through the consensus part. I hope people have lots of questions, because this is really the like meat and potato that we say like this is the part I really hope you all have a solid understanding of. So please do ask some of the questions about this part. All right, so the big problem that exists in these sort of systems prior to Bitcoin, right, prior to the proof of work consensus algorithm and, you know, now other algorithms have been created, but group of work, you know, Nakamoto consensus and proof of work was the first one, right, which solved this problem of if we have all these different people out in the world that just running these, you know, the software and the computer, why can't I just show up to the network and be like, I have 1000 Bitcoin. Oh, no, no, sorry, I have 2000 Bitcoin. You know, why can't I just do this? How do we all, all these people all around the world that don't know each other, don't have any particular reason to trust each other, right? How do we come to agreement on who has what when? So we have a specific example, which we'll walk through here to try to illustrate how the Bitcoin consensus algorithm reaches consensus on who has what when. Mike, is there a question? Yeah, it looks like we had a couple of questions here come in just as we were going. I thought we could come back and try and catch some of them. The first one I saw here is I'll just read it out if I can. The initial bitcoins were created by mining. The blocker reward sent Bitcoin to address that mine that mined the Bitcoin transaction simply involves sending Bitcoin from one address to another. Is that correct? That is roughly correct. Yes, you get a little in depth with that, but all of that I would be like, yep, checks out. Yep. And then we had a follow up question asking if you could please explain Bitcoin UTXOs? UTXOs, yes, unspent transaction outputs. I'm not sure if we dive into that in this one or the next one, but essentially this side over here, these outputs, these are unspent transaction outputs. So that's like all of the Bitcoin that could be sent to someone else, right? So this Bitcoin was a UTXO, but once it got transferred over here, this Bitcoin no longer lives at this address anymore. It's not spendable, right? It doesn't live there anymore. So all of this sort of spendable Bitcoin, this is an unspent transaction output, but we'll dive into more of that, that in a little bit more depth, I think in units two and in other parts of the courses, other parts of the course. Cool. So let's get through this consensus section and then we'll do more questions. So here's the example, like it's the problem is how do we know, how do we, how do we, on a global decentralized level, how do we decide who has what Bitcoin when, right? So the example is, is that there's, we have, you know, cryptography, we always have Alice and Bob. So here is Alice and Bob. And then we're going to have Charlie. And Charlie is trying to cheat the system. And this is a fundamental problem that existed in these sorts of systems, a fundamental problem that prevented Bitcoin from something like Bitcoin from existing prior to this consensus algorithm being created. And it's called the double spend problem. And it's the problem that digital goods are not scarce, right? I mean, if I have just a string of data, right? It's just like an ID number. For example, it's not exactly how it works in Bitcoin, but let's just, you know, for example, say like an ID number that is a Bitcoin or a coin or some sort of digital item, well, I can just copy and paste. And now I have two of those and I can copy a paste again. And now I have four or 4,000, right? I can just keep going, right? So let's imagine that Charlie owns one Bitcoin, one whole Bitcoin and he legitimately owns that Bitcoin, but he wants to cheat the system. He wants to send this Bitcoin to both Alice and Bob. So Alice and Bob have both done some work for Charlie and he owes the both of them one Bitcoin each. But he wants to cheat. He wants to take the same Bitcoin, copy, paste, and send the same Bitcoin to both Alice and Bob, right? And because it's very hard to have digital scarcity because digital scarcity didn't exist prior to things like the Bitcoin consensus algorithm, right? Like you could just do that. If I had a copy of a picture or a song, I could send it to friends or a thousand friends, right? So how does Bitcoin fix this? So again, let's go back and let's imagine our Bitcoin network this time, a much, much simplified version of it, where we have just this network here and then we have Alice on one side of the network and Bob on the other side of the network, right? And Charlie's going to cheat. He's going to take his Bitcoin that he legitimately owns and he is going to create two different transactions, one to Alice, one to Bob. He's going to sign both of those transactions with his private key. Stuff we'll dive into a bit more in depth later in the course. And he's going to create two entirely valid Bitcoin transactions, good cryptography, right? Valid cryptography on both of those valid signatures, send it out, send one to Alice, send one to Bob. So now he has broadcast two transactions, which are both spending the same Bitcoin out to two different people on two different sides of the network. So now the network is a bit confused. There's conflicting data on the network and we're depicting mining computers here. That's what those little red computers at the bottom are. We'll talk about that in a moment. So now there's conflicting data on the network. Half the network thinks that that Bitcoin is going to Alice. Half the network thinks that Bitcoin is going to Bob. We have to solve this problem. This is where miners come in. And a miner is a computer that specializes in crunching these specific numbers. So you can think of it as the miners are solving cryptographic puzzles, not exactly technically correct. They're more just like guessing at the answer to the puzzle or a answer to the puzzle. And I don't want to get too in depth with exactly how it works because we'll cover that a bit more later. But essentially, these miners go out and they're gathering up all this transaction data. It's not just Charlie that's sending transactions. It's Alice and Bob and Daniela and Zane and all different kinds of people on the network that are sending transactions. So a miner goes out and collects a whole bunch of transactions and bundles them into a block. And there are certain rules about how that block has to be structured and how much can be in it, et cetera. And then you are racing to sort of solve a puzzle, not exactly technically correct, but we'll go with solve a puzzle. And so we have these two miners on the network. The miner over here that thinks that Alice has this transaction is going to Alice and the miner over here that thinks this transaction is going to Bob. Now the miners are doing this because there's financial incentive. They get a Bitcoin reward. Essentially, they earn Bitcoin if they successfully mine a block. They find a valid block. So these miners are racing with each other. And what they're actually doing is trying to find a valid hash for all of that block data. We'll talk about hashing later. All right. So what happened, how we solve this problem, is if this, let's look here. There we are. They're racing, trying to just hash all this data to find the hash that meets the current set of criteria on the network. So these miners are racing. And if this miner over here finds a valid hash first, I think I declared this one the winner I highlighted some of this binary and read there. So we'll just say this miner over here is one. Alice gets this transaction. So this miner finds a hash that meets the current criteria says, aha, I win. I'm going to take this block and now broadcast it out to the whole network. Everyone, the interesting thing about hashes is it can be difficult to compute, very, very, very difficult to compute a hash that is acceptable to the network. But once one has been computed, all the other nodes on the network can verify within seconds like the split second that that is indeed valid. So if the miner that thinks Alice, this coin is going to Alice, wins this race, they broadcast that data out to the network, everyone can see, aha, that miner did indeed find an appropriate hash. They win. Let's all start building on top of what they have found. So then in this block, which is the last block on the network, that transaction going to Alice is now included in that block. It's broadcast out to the network and everyone can start building the next block on top of it. Now that's pretty accurately what's happening. Of course, you can go a lot more in depth to the various details on how that happens. That's a lot to absorb, but it's also very, very important. So I'd recommend if that is still fuzzy in your head, definitely come back to this, watch this stuff again, watch the video that's linked in the course that covers this stuff. But let's pause here and ask questions or answer any questions that we have. What do we got, Mike? No, I can. Yep, 100%. So what will happen is right now these miners are racing with each other because they're going to get a block reward. That reward halves every four years, right? So every four years, when it started, it was 50 Bitcoin. Then it went down to what like, it just keeps going down every four years. So now we're at like, what is it, 6.25 or something? I don't know where we are at the moment, but it keeps going down every four years. But what happens is at least how Satoshi sort of planned this out is that miners also earn transaction fees. Something will cover more in coming units. But the idea is that in every transaction, there's also a fee included. So miners don't just earn a block reward, they also earn fees. And as the block reward continues to go down in theory, the fees will go up. So there were still, or the value of those fees will go up. So maybe like as Bitcoin increases in value. So the idea is that is mining reward go down and eventually till there's no more Bitcoin to hand out via mining rewards because there's a cap on the total supply, the amount of fees will go up to continue to provide that financial incentive. What else we got, Mike? Well, someone said they couldn't hear me. I'd say don't worry you didn't miss out on anything. I have a question here. I'm not exactly sure what it's in reference to. Maybe if you could clarify about what you'd like cutting, the question about what cut in half, I just am not entirely sure what that question is. Sorry about that. But if you could clarify a little more, I'd be happy to answer that to ask that question. Cut in half, you mean about the mining rewards? You potentially, that's what they meant. Yeah, the rewards, that's what they said. Sorry about that. Okay, so it started at 50, and then every four years it goes down, right? So when the first Bitcoin block was mined, and what was it? January 3rd, 2009, right? The block reward there was 50 Bitcoins. So Satoshi mined that block, right? And you have the Genesis block within the next block, right? So Satoshi mined that block, him, her, themselves, and they got that 50 Bitcoin as a reward. That continued roughly every 10 minutes. A new block is mined roughly every 10 minutes. And so every 10 minutes, someone is getting 50 new Bitcoin. That continued for four years, then it dropped down to 25. Then another four years, then it was 12.5. Then another four years, and it's 6.25, right? So that keeps going. And so it's smaller and smaller and smaller all the way until roughly the year like 2140, when it'll drop to zero. But in the next decade or two, a couple decades, it's going to drop to a pretty small amount, right? So in the next couple of decades, we will have to have fees that provide the financial incentive for miners. What else we got, Mike? Well, I think that was all the questions we have right now, unless I missed somebody's question. But if I missed your question, just pop it back and get it in the chat. But I think we can go on if no one has any questions right at this second. Okay, cool. Well, I hope we all understood this consensus bit because this is important. It's also important to remember here in this whole story that we told that Alice got that one Bitcoin from Charlie. That's what the network decided upon. Largely just due to sort of luck because that mining computer happened upon the correct hash solved that puzzle before the other miners. But in this scenario, then Charlie is going to get an angry call from Bob being like, Hey, where's my Bitcoin? And if the situation had gone in reverse, if this minor just happened to solve this puzzle first, then it would be Alice calling Charlie going, Hey, I saw a transaction to me, but now it's not there. Like I saw something come in, but it's not been verified. It's been rejected. So, Hey, where's my Bitcoin? And so this is how we create digital scarcity. This is how you can have digital money that can't just be instantly completely inflated away. Is this consensus mechanism allows for people all over the world who don't know and don't trust each other to agree, not just share, but agree upon and continuously update this ledger. So this is the magic sauce that makes this whole decentralized thing happen. So I hope we all got that. Remember, this is a pretty core component. So if that's still fuzzy, come back and keep watching this, read other stuff on it, make sure we understand what's happening there. All right. Now let's move on to balance in the Bitcoin ecosystem. So we have this open decentralized network. And often when you're trying to explain Bitcoin to someone who is not at all familiar with this technology, one of the first questions you're going to get is, but who controls Bitcoin, right? Because if you say, Oh, there is no Bitcoin corporation, there's no CEO of Bitcoin, this is just this open, distributed, you know, peer to peer network, it's a protocol. But that's, you know, very unusual for how we're used to thinking about systems and structures. So you often have the question, who controls Bitcoin? And we're going to dive into depth about what it actually is. But basically what I say is we all do, right? Anyone who is participating in the Bitcoin ecosystem has some control over Bitcoin. So it's really very distributed power. And it's one of the most fascinating and I find to be one of the most compelling and attractive things about the whole system. So really quite interesting tech, but let's dive into it a bit more. So we talk about Bitcoin being open and we talked touched on it briefly, but let's go into that a little bit more. All right, so Bitcoin is free and open source software, right? This is where it lives, or a copy of it, right? You can go there right now, you can download it, you can run it, you can be part of the network, you can make changes to it if you'd like. You can do all kinds of different things, right? And it's open to anyone with computer and internet connection. So anyone in the world with a computer and internet connection can join and also control Bitcoin, have some influence in the Bitcoin ecosystem, right? It's very important that no permission is needed, right? There's no board that has to stamp of approval, you don't have to submit an application, you don't have to sign up for an account, you don't have to have a valid phone number that can receive an SNS like nothing. You just need a computer and an internet connection and you're in, you're good. Because there's no one controlling it, there's no one to ask permission of. So very interesting dynamic there. All right, so who are all these people in the Bitcoin ecosystem and what influence do they have or not have? All right, so here we're going to talk about Bitcoin communities. And I am taking this pretty directly from the video included in the course, one of the lecturers, Andrea Fentonopoulos, that talks about sort of the five Bitcoin constituencies. Here I'm just using the word community. And of course, we could debate about how exactly we want to divvy this up or we could reorganize it slightly here or there. Whatever, I think this is a pretty solid example that walks through the different communities, the different spheres of influence in Bitcoin and how this, you know, balance is maintained. So let's walk through a few of these. For these particular sections, we're going to walk through what each sort of community can do and cannot do, the influences they do have and don't have. And please drop the questions as we go. Mike, as we're going through each of these different sections, if there's a question that comes up about developers, please let me know and we'll go through it. Okay. We had a quick question, I guess, right before we get going here. We had a question about how a mining pool splits rewards. Is that something that Bitcoin does or is that something that people do after they decide stuff? You know what I mean? Yeah, this is a good distinction. So let's go back to this real quick. We'll just pull up our mining picture. All right. So a mining pool is, you know, this miners here, right? It's very, very hard to find a winning hash, right on the network, right? So I could buy a fabulous mining computer, right? And a mining, this is just a computer that you plug into the network, but it's a computer with very specialized computer chips in it to crunch these numbers very, very fast, right? I could buy one of these. I could plug it into, you know, the outlets here in my office, and I could run it. I could find a block in 20 minutes, or I could not find the block in 20 years, right? There's a good, good as element of just luck that comes into this. So people that want to sort of even out their winnings or their earnings from Bitcoin mining will join the pool. So, and then you contribute your computing power to the pool and get paid out for the amount, whatever the winnings, the earnings are from that pool, they split it up evenly or, you know, according to the computing power that you have contributed to the pool. All right. This is not in the Bitcoin protocol, right? This is sort of an adaptation that people have made on top of the Bitcoin protocol. And they have done this so that miners can sort of even out the earnings that they're getting from mining, otherwise it would be wild, like it would be very, very, it would be like nothing, nothing, nothing, nothing, tons of money, nothing, nothing, nothing, nothing, you know, it would be very sporadic. So people pool together to share their computing resources with the pool and then they receive a portion of the earnings from that pool according to the computing power that they contributed to it. This is the whole other topic you could get really in depth with that's not in the protocol, that's an adaptation on top of the protocol, people worry about centralization risk. I don't so much because a miner can very, very easily switch from one pool to the next and there's heating mining pools, etc. That's a rabbit hole, which we won't dive down now, but I think the answer to the question, no, it's not a part of the core protocol, it's an adaptation on top of it. All right, cool, thank you. I'll let you know if we have any other questions. All right, so yeah, please, you know, dive in with questions on this particular component as we walk through sort of these different communities and what control or influence they do or don't have on the Bitcoin ecosystem. So we have developers, we have miners, we have wallets, we have exchanges and we have users. Of course, you could divvy this up a little bit different if you want to, but this is pretty illustrative, so let's walk through this. All right, why can't developers control Bitcoin? All right, well, what can developers do? What influence do they have? So there is a set of people who are Bitcoin core developers and a lot of people when they come to this space, they think that Bitcoin core developers control Bitcoin. They don't. They do have quite a lot of influence, right? What core developers can do is write the new code that will maybe go into the next update on Bitcoin, right? So this code is constantly getting updates and maintenance and sometimes rarely, very contentiously, sometimes they get new features. So these core developers are the people that do that work of actually writing that code, reviewing that code, testing that code. Lots of work goes into that. So they do have quite a lot of influence. If there is no core developer, if you really want some new feature, but there's no core developer out there that's willing to write it, well, either you become a core developer or you're not getting that feature, right? So there's some influence that they definitely have. They can add that code to the Bitcoin repo and release it. Again, remember that there is, you know, Austo, some balance of power, even in core developers, they're constantly arguing with each other about what should and should not be included in Bitcoin, there's competition between them, et cetera. All right. But they can't control Bitcoin because they can't force anyone to download and run that code, right? If a core developer, if someone who had access to the Bitcoin repo and could push, you know, merge in that repo and create a new release, if someone there did something that was horribly unpopular, no one's going to run that code, right? That core developer can't make me update my software on my computer. So core developers do indeed have a lot of influence, but in the end, no actual control because there's just no way they can force someone to run that particular version of their code. It's not like you can do automatic updates like you can do on some like apps, you know, from the Apple app store, you know, Android app store, whatever it is, you can't automatically update someone, anyone who's running a node has to choose to install that update from the developers. So that balances out their power there. Mike, any questions on this one? No, no, no. Okay, well, okay, and maybe we'll do a couple more of these too because I want to make sure, maybe we'll run through all of these and then do questions because we're going to run out of time if we don't hurry up with these. All right. So another common question that you get when you explain the Bitcoin ecosystem is someone will say, well, what about these miners? Clearly, miners control Bitcoin. And no, they don't. They have quite a lot of influence in Bitcoin, right? So what miners can do? So a miner can choose what version of Bitcoin to run. So if there's some new updates that they do or don't like, they can choose to run the version of Bitcoin with that in it or not, right? So that's a good amount of influence. Maybe the mining rules have changed slightly and they're going to decide which set of rules they want to apply to what they're doing. Now, a miner could theoretically reject transactions. So this comes into the censorship risk, right? If miners decide that they really can't stand me and they're just going to try and kick me out of the ecosystem. So anytime I broadcast a transaction, they're just going to refuse to include it in a block. Now, any one particular miner could do that, right? If Mike was running a mining node, he could go and adjust the Bitcoin software to specifically not allow any transactions coming from these addresses because I know they belong to Hannah and I want to kick Hannah out of the Bitcoin ecosystem. Now, Mike could do that, but it's highly unlikely to be effective, right? In that situation, if it's just Mike doing that, work case scenario, if my transaction gets delayed by another 10 minutes, right? Because there are hundreds, thousands of other computers that are also mining, right? And so it only is effective if Mike's miner in particular mines the next block. But the odds of that happening are quite small. So the odds of him having it by himself having any particular impact on censoring any of my transactions is very, very small. Like we're talking maybe he could possibly delay me by 10 minutes, right? Now, we can get into the 50% attack. Actually, it should be 51% attack. But it's the idea that if a miner or a group of miners has more than 51% of them computing power on the network, they could potentially censor. But in this or change something, but not really, we can get more in step with that later right now. I just want to mention it that this is a concern that people have. But this is like an extreme edge case. It would take so much money. Now, the Bitcoin network is so big, it would take so, so much money to buy up enough computing power to have the majority of the computing power on the network. And then it would only be a majority. And you probably still wouldn't get whatever type of attack you were attempting to do through the system. So, well, miners do have quite a lot of influence, especially a lot of changes to the Bitcoin ecosystem are signaled via mining computers. They have a lot of influence, but they cannot control the network. They can't directly censor like it's highly, highly unlikely. Now, miners, we're going to talk about sporking later, but the idea is that a miner could, a bunch of miners could just decide to run a different version of Bitcoin, right? A theoretical attack that a group of miners can get together and say, we're just going to force this particular change onto the Bitcoin network by all putting it on our, on our computers. They could potentially cause a split in the network, right? But if that split in the network, if their version of that split is not popular, if other people don't want to accept it for payment or use it in their wallets or on their exchanges, then it's worthless, right? So they have, again, a lot of influence, but no direct control. So let's go through these next couple of ones to make sure we get through them before we run out of time here. All right. So wallets. A wallet is if you want to, you know, use Bitcoin on your mobile phone, you download the wallets, that is software that, you know, is going to manage your keys, you know, it's going to run a node, like keep a track of the network for you, more on that later. So wallets and various different wallet providers, they can decide what features to include in their software service. And this can be very impactful. There's some new feature out there that got through, you know, the developers wrote it, the miners accepted it, but none of the wallets want to implement it. Well, then users still don't have that, right? This is important and it's impactful. But they can't make anyone run their software, right? If you really don't like what a wallet's doing or their refusal to implement a certain feature, or they're trying to like use different consensus rules or something, you can just go use a different wallet. You can write your own wallet. So again, a lot of influence, no real control. All right, let's go through to exchanges. Pretty much the same thing, right? In exchange can choose their customers. They can say, I don't like people from, let's go with Australia. I don't like people from Australia. I'm not going to do business with any people in Australia. Yeah, they could do that. Maybe they just can't get the appropriate legal paperwork to do business there, right? They can also choose which version of Bitcoin to run on their nodes, right? They can choose what features to do. So exchanges, because they're such a key part of the ecosystem, do have a lot of influence. But again, they can't make anyone use their service. There is also competition. One exchange is not doing, you know, doesn't want to do business with me. I can use a different exchange. So that balances things out. All right, why can't users control Bitcoin or can they? And this is a fun one to debate. But we'll talk about what users can do. And here I'm specifically saying users as in someone on the network making use of it, but not in one of those other roles on the network, right? So I can always decide what version of Bitcoin to run. I can decide what exchange to use. I can decide what wallet to use. I can decide what version of the software to run on my node can have a lot of influence. Now, we don't have time to get into this, but this is a fascinating bit of Bitcoin history. User activated software, UASFF, UASF. This goes back to the, you know, block size wars in like 2016, 2017. We don't have any time to touch on that here. If you're interested in this and want to drive, dive into these dynamics, a few controls, let that be a fascinating one. All right. What users can't do while they aren't writing code, they aren't running miners or operating wallet services. So they don't have any of that influence. But I think users at a point in time did get overlooked. And they really are users of the ones that are giving, you know, influence to specific wallet operators, specific exchanges, et cetera. So that's very interesting. I think we didn't touch on merchants much here, but they are the ones that decide which version, you know, if there's a fork in the network, well, it's merchants who are going to, you know, while it's merchants going to decide which version of that network they want to accept, they deem to be the real Bitcoin. All right. Because we're almost out of time, very quickly going to touch on incentive engineering. This, again, could be a whole hour-long conversation by itself. It's very fascinating. We go into making cheating unprofitable, such as lining the incentives and the rewards up so that playing along nicely with the system is the most profitable thing to do. Sometimes people call it skin in the game. I think there was a whole book written with that name, but it's just that concept of you have something, you invest something in the system, like you're a miner, you're buying computing equipment, paying for electricity, et cetera. You have something that you put up that you could lose, right? Skin in the game. Then we have game theory. And this is like a whole field of study by itself that people will just study this incentive engineering or game theory as their careers and it's fascinating stuff. All right. So openness brings balance. There's no concentration of power. Change really does require buy-in or agreement from the vast majority of Bitcoin users. I think in Unit 8, we'll talk about how change actually happens. Very interesting. We don't have time to do this because we talked the whole way through. So now we've got about three minutes left. Mike, do we have any questions? We do have a few questions. I'll remind everyone, we are doing these for the next unit, so some of the stuff is stuff that we'll cover later. So we'll get to those, of course. And I think you answered some of them as we were going on. But I guess with a little time that we had left, I guess this is the most interesting one to me. So it's the one I'll ask. What's the stop, like a malicious developer from spamming like badge merge requests or doing the same thing to the code base, right? Okay. So I could decide I want to attack Bitcoin by maybe writing bad code with bugs in it or maybe just trying to overwhelm people with a whole bunch of requests. And I think while I could do that, I think quite quickly, like the people that are reviewing this stuff would be like, man, that Hannah checks a little crazy, she was doing some dodgy stuff, stop paying attention to her, right? And so none of it would actually get through. And quite quickly, the people that are reviewing it would spot me and just reject myself. So that like risk reward equation isn't really going to make sense. I would have to spend a ton of time on this. None of it would actually make it through into Bitcoin. Some of it, because there is a really good review process and a lot of testing and it's all done in the open. So anyone in the world has the, you know, ability to spot that bug that I tried to put in there. So it's really, really tough to try and sneak that through basically is not going to happen. So I could potentially waste someone's time for an afternoon. And maybe I could get away with it with a few times in a row, right? Could do that. But it wouldn't be too long before, you know, these are smart people, right? They're going to catch on and be like, ignore that chick. And then maybe I could set up pseudonyms and all this sort of stuff. But basically, I'm not really going to succeed in wasting a lot of people's time. And mostly it's going to be my time wasted. So with that, again, that incentive engineering, I just don't think that equation makes sense. Maybe if I just really have like a chip on my shoulder, you know, or someone like I could do that, but not a real risk to the ecosystem. And I guess the final question was just to follow up here. Are those, are the reviewers like, are they, are they just volunteers or is it just like other developers check, just other developers checking other people's work? Pretty much all the above. So, you know, you, no one gets directly paid by the Bitcoin software for writing code or doing review, right? It's not that, that incentive isn't built in like the mining incentive is. So a lot of people who are just, you know, massive Bitcoin nerds, you know, do it. A lot of, you know, soft open source software development runs on clout and prestige, you know, like if you have, you've got some of your code you wrote into Bitcoin, like you're going to get free conference tickets, you know, that's impressive. You might be speaking somewhere, you know. And then there are also businesses who will sponsor Bitcoin core developers. So if you're someone who's contributed really good code, you could go out and get a sponsorship and someone will just give you money to carry on doing what you're doing. So that's how that works. All right. Well, that's awesome. Again, Hannah, thank you so much. And thank you everyone for joining us this week. We'll be back next week to go over unit two, I have to imagine. It would be not to spoil it, not to spoil for anyone, but we're going to do it next. But again, thank you everyone for joining us. We'll be here at the same time. Next week, if you have any, if you're watching this later and you have any questions, feel free to leave them in the comment section down below here on YouTube. And I just want to thank everyone again for joining us. And of course, I'm sure everyone will be doing it in the chat. But of course, thank you Hannah for taking us through all this. Yeah, thank you all for showing up. I hope your time was well spent here.