The best place to buy Bitcoin from is: Coinbase- Plus you can get $10 worth for free when you first signup
What does it mean to have a Bitcoin? Many people have heard of Bitcoin that it's a fully digital currency with no government to issue it, and that no banks need to manage accounts and verify transactions, and also that no one really knows who invented it. And yet many people don't know the answer to this question, at least not in full to get there and to make sure that the technical details underlying the answer actually feel motivated. What we're gonna do is walk through step by step, how you might have invented your own version of Bitcoin. We'll start with you keeping track of payments with your friends, using a communal ledger and then, as you start to trust your friends and the world around you, less and less. And if you're clever enough to bring in a few ideas from cryptography to help circumvent the need for trust, what you end up with is what's called a crypto currency.
You see, Bitcoin is just the first implement an example of a crypto currency, and now there are thousands more on exchanges with traditional currencies. Walking the path of inventing your own can help to set the foundations for understanding some of the more recent players in the game and recognising when and why There's room for different design choices. In fact, one of the reasons I chose this topic is that in the last year there's been a huge amount of attention and investment and, well, honestly, hype directed at these currencies, and I'm not gonna comment or speculate on the current or future exchange rates. But I think we'd all agree that anyone looking to buy a Cryptocurrency should really know what it is. And I don't just mean in terms of analogies with vague connexions to gold mining.
I mean an actual direct description of what the computer's air doing when we send, receive and create crypto currencies. One thing worth stressing, by the way, is that even though you and I are going to dig into the details here and that takes meaningful time, you don't actually need to know those details If you just want to use the crypto currency, just like you don't need to Some of the details of what happens under the hood when you swipe a credit card. Like any digital payment, there's lots of user friendly applications that let you just send and receive the currencies without thinking about what's going on. The difference is that the backbone underlying this is not a bank that verifies transactions. Instead, it's a clever system of decentralised trust lis verification based on some of the math born in cryptography.
But to start, I want you to actually set aside the thought of cryptocurrencies and all that. Just for a few minutes we're gonna begin the storey with something more down to earth ledgers and digital signatures. If you and your friends exchange money pretty frequently, you know, paying your share of the dinner bill and such. It can be inconvenient to exchange cash all the time. So you might keep a communal ledger that records all of the payments that you intend to make some point in the future.
You know, Alice pays Bob twenty dollars. Bob pays Charlie forty dollars. Things like that, this ledger is gonna be something public and accessible to everyone, like a website where anyone can go on, just add new lines. And let's say that at the end of every month, you all good together. Look at the list of transactions and settle up if you spent more than you received, you put that money in the pot.
And if you received more than you spent, you take that money out. So the protocol for being part of this very simple system might look like this. Anyone can add lines to the ledger, and at the end of every month, you all get together and settle up. Now, one problem with a public ledger like this is that anyone can add a line. So what's to prevent Bob from going in writing? Alice pays Bob one hundred dollars without Alice approving.
How are we supposed to trust that all of these transactions are what the sender meant them to be? Well, this is where the first bit of cryptography comes in. Digital signatures like hand written signatures. The idea here is that Alice should be ableto add something next to that transaction that proves that she has seen it and that she's approved of it, and it should be in for people for anyone else to forge that signature. At first, it might seem like a digital signature shouldn't even be possible. I mean, whatever data makes up, that signature could just be read and copied by a computer.
So how do you prevent forgeries? Well, the way this works is that everyone generates what's called a public key private key pair, each of which looks like some string of bits. The private key is sometimes also called a secret key, so that we can abbreviated as S K while abbreviating the public. He is P K. Now, as the name suggests, this secret keep it's something you want to keep to yourself. In the real world, your hand written signature looks the same no matter what document you're signing.
But a digital signature is actually much stronger because it changes for different messages. It looks like some string of ones and zeros, commonly something like two hundred fifty six bits and altering the message even slightly completely changes what the signature on that message should look like. Speaking a little more formally, producing a signature involves a function that depends both on the message itself and on your private key. The private key insures that only you can produce that signature, and the fact that it depends on the message means that no one can just copy one of your signatures and then fortune on another message. Hand in hand with this is a second function used to verify that a signature is valid, and this is where the public he comes into play.
All it does is output, true or false to indicate If this was a signature produced by the private key associated with the public key that you're using for verification, I won't go into the details of how exactly both these functions work. But the idea is that it should be completly infeasible tto. Find a valid signature If you don't know the secret key specifically, there's no strategy better than just guessing and checking random signatures, which you can cheque using the public key that everyone knows now. Think about how many signature there are. With a length of two hundred fifty six bits, that's two to the power of two hundred fifty six.
This is a stupidly large number. To call it astronomically large would be giving way too much credit to astronomy. In fact, I made a supplemental video devoted just to illustrating what a huge number this is right here. Let's just say that when you verified that a signature against a given message is valid. You can feel extremely confident that the only way someone could have produced it is if they knew the secret key associate with the public he you used for verification.
Now, making sure that people signed transactions on the ledger is pretty good. But there's one slight loophole. If Alice signs a transaction like Alice pays Bob one hundred dollars, even though Bob can't forge Alice's signature on a new message, he could just copy that same line as many times as he wants. I mean, that message signature combination remains valid to get around this. What we do is make it so that when you sign a transaction, the message has to also include some sort of unique I d associated with that transaction.
That way, if Alice pays Bob one hundred dollars multiple times each, one of those lines on the ledger requires a completely new signature. All right, great digital signatures removed a huge aspect of trust in this initial protocol. But even still, if you were to really do this, you would be relying on an honour system of sorts. Namely, you're trusting that everyone will actually follow through and settle up in cash at the end of each month. What if, for example, Charlie racks up thousands of dollars in debt and just refuses to show up? The only real reason to revert back to cash to settle up is if some people I'm looking at you, Charlie.
Oh, a lot of money. So maybe you have the clever idea that you never actually have to settle up in cash as long as you have some way to prevent people from spending too much more than they take in. Maybe what you do is start by having everyone pay one hundred dollars into the but and then have the first few lines of the ledger read. Alice gets one hundred dollars. Bob gets one hundred dollars.
Charlie gets one hundred etcetera. Now, just don't accept any transactions where someone is spending more than they already have on that ledger. For example, if the first two transactions are, Charlie pays Alice fifty dollars and Charley pays Bob fifty dollars. If he were to try to add, Charlie pays you twenty dollars. That would be invalid, as invalid as if he had never signed it.
Notice. This means that verifying a transaction requires knowing the full history of transactions up to that point, and this is more or less also gonna be true. In crypto currencies, though, there's a little room for optimisation. What's interesting here is that this step removes the Connexion between the ledger and actual physical U. S.
Dollars. In theory, if everyone in the world was using this ledger, you could live your whole life just sending and receiving money on this ledger without ever having to convert to really US dollars. In fact, to emphasise this point, let's start referring to the quantities on the ledger as ledger dollars or L D. For short. You are, of course, free to exchange ledger dollars for riel U.
S. Dollars. For example, Maybe Alice gives Bob a ten dollar bill in the real world in exchange for him adding and signing the transaction. Bob Pace, Alice. Ten ledger dollars to this communal ledger.
But exchanges like that they're not gonna be guaranteed by the protocol. It's now more analogous to how you might exchange dollars for euros or any other currency on the open market. It's just its own independent thing. This is the first important thing to understand about Bitcoin or any other Cryptocurrency. What it is is a ledger.
The history of transactions is the currency. Of course, with Bitcoin, money doesn't enter the ledger with people buying in using in cash. I'll get to how new money enters the ledger in just a few minutes. But before that, there's actually an even more significant difference between our current system of ledger dollars and how crypto currencies work. So far, I've said that this ledger is in some public place, like a website where anyone can add new lines.
But that would require trusting a central location. Namely, who hosts the website, who controls the rules of adding new lines To remove that bit of trust will have everybody keep their own copy of the ledger. Then, when you want to make a transaction like Alice pays Bob one hundred ledger dollars, what you do is broadcast that out into the world for people to hear and to record on their own private ledgers. But unless you do something more, this system is absurdly bad. How could you get everyone to agree on what the right ledger is? When Bob receives a transaction like Alice Pays Bob ten ledger dollars? How Can he be sure that everyone else received and believes that same transaction that he'll be ableto later on, Go to Charlie and use those same ten ledger dollars to make a transaction? Really? Imagine yourself just listening to transactions being broadcast.
How can you be sure that everyone else is recording the same transactions and in the same order? This is really the heart of the issue. This is an interesting puzzle. Can you come up with a protocol for how to accept or reject transactions and in what order? So that you can feel confident that anyone else in the world who's following that same protocol has a personal ledger that looks the same as yours? This is the problem addressed in the original Bitcoin paper at a high level. The solution that Bitcoin offers is to trust whichever ledger has the most computational work put into it. I'll take a moment to explain exactly what that means.
It involves this thing called a cryptographic hash function. The general idea that will build to is that if you use is computational work as a basis for what to trust, you could make it so that fraudulent transactions and conflicting ledgers would require an infeasible amount of computation to bring about again. I'll remind you that this is getting well into the weeds beyond what anyone would need to know just to use a currency like this. But it's a really cool idea. And if you understand it, you understand the heart of Bitcoin and of other cryptocurrencies.
So first things first. What's a hash function? The inputs for one of these functions can be any kind of message or file. It really doesn't matter. And the output is a string of bits with some kind of fixed length, like two hundred fifty six bits. This output is called the hash, or the digest of the message, and the intent is that it looks random.
It's not random. It always gives the same output for a given input. But the idea is that if you slightly change the input, maybe editing just one of the characters, the resulting hash changes completely. In fact, for the hash function that I'm showing here called Shot to fifty six, the way the output changes as you slightly change that input is entirely unpredictable. You see, this is not just any hash function it's a cryptographic hash function that means it's infeasible to compute in the reverse direction.
If I show you some string of ones and zeros and ask you to find an input so that the shah to fifty six hash of that input gives this exact string of bits, you will have no better method than to just guessing cheque. And again, if you want to feel for how much computation would be needed to go through two to the two hundred fifty six guesses, just take a look at the supplement video actually had way too much fun writing that thing. You might think that if you just really dig into the details of how exactly this function works, you could reverse engineer the appropriate input without having to guess in cheque. But no one has ever figured out a way to do that. Interestingly, there's no cold, hard, rigorous proof that it's hard to compute in the reverse direction.
And yet a huge amount of modern security depends on cryptographic hash functions and the idea that they have this property. If you were to look at what algorithms underlie the secure connexion that your browser is making with YouTube right now or that it makes with your bank. You will likely see the name shot two. Fifty six show up in there. For right now, our focus will just be on how such a function can prove that a particular list of transactions is associated with a large amount of computational effort.
Imagine someone shows you a list of transactions and they say, Hey, I found a special number so that when you put that number at the end of this list of transactions and apply Shah to fifty six to the entire thing, the first thirty bits of that output are all zeros. How hard do you think it was for them to find that number? Well, for random message, the probability that a hash happens to start with thirty success of zeros is one into to the thirty, which is about one in a billion. And because shot two fifty six is a cryptographic hash function, the only way to find a special number like that is just guessing and checking. So this person almost certainly had to go through about a billion different numbers before finding the special one. And once you know that number it's really quick to verify you just run the hash and see that there are thirty zeros.
So in other words, you can verify that they went through a large amount of work, but without having to go through that same effort yourself. This is called a proof of work. And importantly, all of this work is intrinsically tied to the list of transactions. If you change one of those transactions even slightly, it would completely change the hash. So you'd have to go through another billion guesses to find a new proof of work, a new number that makes it so that the hash of the altered list, together with this new number, starts with thirty zeros.
So now think back towards you distributed ledger situation. Everyone is they're broadcasting transactions, and we want a way for them to agree on what the correct ledger is. As I said, the core idea behind the original Bitcoin paper is to have everyone trust whichever ledger has the most work put into it. The way this works is to first organise a given ledger into blocks were each block consists of a list of transactions, together with the proof of work that is a special number so that the hash of the whole block starts with a bunch of zeros. For the moment, let's say that it has to start with O sixty zeros, but later what were turned back to a more systematic way.
You might want to choose that number in the same way that a transaction is only considered valid when it's signed by the sender. A block is only considered valid if it has a proof of work, and also to make sure that there's a standard order to these blocks will make it so that a block has to contain the hash of the previous block at a tender. That way, if you were to go back and change any one of the blocks or to swap the order of two blocks, it would change the block that comes after it, which changes that blocks hash, which changes the one that comes after it and so on. That would require redoing all of the work. Finding a new special number for each of these blocks that makes their hash is start with sixty zeros because blocks are chained together like this instead of calling it a ledger, it's common to call it a Blockchain as part of our updated protocol will now allow anyone in the world to be a block creator.
What that means is that they're gonna listen for transactions being broadcast, collect them into some block and then do a whole bunch of work to find a special number that makes the hash of that block start with sixty zeros. And once they find it, they broadcast out the block they found to reward a block creator for all this work, when she puts together a block will allow her to include a very special transaction at the top of it in which she gets, say, ten ledger dollars out of thin air. This is called the block reward, and it's an exception to our usual rules about whether or not to accept transactions. It doesn't come from anyone, so it doesn't have to be signed. And it also means that the total number of ledger dollars in our economy increases with each new block.
Creating blocks is often called mining, since it requires doing a lot of work and it introduces new bits of currency into the economy. But when you hear or read about miners. Keep in mind that what they're really doing is listening for transactions, creating blocks, broadcasting those blocks and getting rewarded with new money for doing so. From the miners perspective, each block is kind of like a miniature lottery where everyone is guessing numbers as fast as they can until one lucky individual finds a special number that makes the hash of the bloc start with many zeros, and they get the reward for anyone else who just wants to use the system to make payments instead of listening for transactions, they all start listening just for blocks being broadcast by miners and updating their own personal copies of the Blockchain. Now, the key addition to our protocol is that if you hear two distinct block chains with conflicting transaction histories, you defer to the longest one, the one with the most work put into it.
If there's a tie, just wait until you hear an additional block. That makes one of them longer. So even though there's no central authority and everyone is maintaining their own copy of the Blockchain, if everyone agrees to give preference to whichever Blockchain has the most work put into it. We have a way to arrive a decentralised concensus to see why this makes for a trustworthy system and to understand at what point you should trust the payment is legit. It's actually really helpful to walk through exactly what it would take to fool someone using this system.
Maybe Alice is trying to fool Bob with a fraudulent block. Namely, she tries to send him one that includes her paying him one hundred ledger dollars, but without broadcasting that block to the rest of the network. That way, everyone else still thinks that she has those hundred ledger dollars. To do this, she would have to find a valid proof of work before all of the other miners each working on their own block. And that could definitely happen.
Maybe Alice just happens to win this miniature lottery before everyone else. But Bob is still going to be hearing the broadcasts made by other minors. So to keep him believing this fraudulent block, Alice would have to do all of the work herself to keep adding blocks on this special fork in Bob's Buck chain. That's different from what he's hearing from the rest of the miners. Remember as per the protocol.
Bob always trusts the longest chain that he knows about. Alice might be able to keep this up for a few blocks if just by chance, she happens to find blocks more quickly than the rest of the miners on the network. All combined. But unless she has close to fifty percent of the computing resource is among all of the miners, the probability becomes overwhelming that the block chain that all of the other miners air working on grows faster than the single fraudulent Blockchain that Alice is feeding to Bob. So after enough time, Bob's just gonna reject what he's hearing from Alice in favour of the longer chain that everyone else is working on notice.
That means that you shouldn't necessarily trust a new block that you hear immediately. Instead, you should wait for several new blocks to be added. On top of it, if you still haven't heard of any longer block chains, you can trust that this block is part of the same chain that everyone else is using. And with that, we've hit all the main ideas. This distributed ledger system, based on a proof of work, is more or less how the Bitcoin protocol works and how many other CRYPTOCURRENCIES work.
There's just a few details to clear up. Earlier, I said that the proof of work might be to find a special number so that the hash of the block starts with sixty zeros. Well, the way the the actual Bitcoin Protocol works is to periodically change that number of zeros so that it should take, on average, ten minutes to find a new flock. So as there are more and more miners added to the network, the challenge actually gets harder and harder in such a way that this miniature lottery only has about one winner every ten minutes. Many newer cryptocurrencies actually have much shorter block times than that, and all of the money in Bitcoin ultimately comes from some block reward.
In the beginning, these rewards were fifty Bitcoin per block. There's actually a great website you can go to called Block Explorer. That makes it easy to look through the Bitcoin Blockchain, and if you look at the very first few blocks on the chain, they contain no transactions. Other than that, fifty Bitcoin reward to the minor. But every two hundred ten thousand blocks, which is about every four years.
That reward gets cut in half. So right now the reward is twelve point five Bitcoin per block. And because this reward decreases geometrically over time, it means there will never be more than twenty one million Bitcoin in existence. However, this doesn't mean that miners will stop earning money. In addition to the block reward, miners can also pick up transaction fees.
The way this works is that whenever you make a payment, you Khun purely optionally include a little transaction fee with it that's gonna go to the minor of whichever bloc includes that payment. The reason you might do that is to incentivise miners tow actually include the transaction that you broadcast into the next block you see in Bitcoin. Each block is limited to about twenty four hundred transactions, which many critics argue is unnecessarily restrictive for comparison. Visa process is an average of about seventeen hundred transactions per second, and they're capable of handling more than twenty four thousand per second. This comparatively slow processing on Bitcoin makes for higher transaction fees, since that's what determines which transactions miners choose to include in a new block.
All of This is far from a comprehensive coverage of crypto currencies. There's still many nuances and alternate design choices that I haven't even touched, but my hope is that this can provide a stable weight. But why style tree trunk of understanding for anyone looking to add a few more branches with further reading. Like I said at the start, one of the motives behind this is that a lot of money has started flowing towards crypto currencies. And even though I don't want to make any claims about whether that's a good or bad investment, I really do think that it's healthy for people getting into the game to at least know the fundamentals of the technology as always, my sincerest thanks to those of you making this channel possible on patri on, I understand that not everyone is in a position to contribute.
But if you're still interested in helping out, one of the best ways to do that is simply to share videos that you think might be interesting or helpful to others. I know you know that, but it really does help. I also want to think protocol labs for their support of this video. This is an organisation that runs a number of different research and development projects. And if you follow some of the links I've left in the description to read into the details of those projects, you'll notice some strong parallels with the concepts covered in this video.
The challenges and benefits of decentralisation are by no means limited to currency, and two transaction histories and the usefulness of tools from cryptography like pash Functions and digital signatures are likewise much more general. For example, a couple of protocol labs projects such as I. P. F s and file Coin Centre on the idea of distributed file storage, which opens up a whole field of interesting challenges and possibilities for any developers. Among you.
Protocol labs places a very high value on open source. So if you're interested, you conjoined what's already a very strong community of contributors. But they're also looking to hire full time developers, so if you think you might be a good food, there definitely apply.
This page and it’s content is part of a ML Experiement and can be found in original video format here All respective rights reserved