 Welcome everybody. My name is Mark Nesbitt. We've had a schedule issue where we've lost our next speaker So I was asked to come up here and give a talk that I I've happened to have ready So I'm going to explain to you my take on the question. What is Bitcoin? Before I begin I'm going to tell you a little bit about myself again. My name is Mark Nesbitt I'm an application security engineer at Coinbase The application security team is focused on securing our code base. So we provide engineering support and My specific role supports the crypto engineering teams So that supports our wallet infrastructure our node infrastructure, and I also spend a lot of time and effort reviewing and providing risk mitigations for different new cryptocurrencies that we're going to support on our platform This talk is geared towards non-technical audiences about how to think about Bitcoin and we'll introduce fundamental concepts about Bitcoin and how it works and by extension other Cryptocurrencies, but I'll focus on Bitcoin. I'm happy to take any questions at the end. So the question. What is Bitcoin? I'm going to provide a definition up front and we'll spend the rest of the time unpacking that definition and making sure we understand the parts of it Bitcoin is a protocol for producing a unique permissionless transaction history So we're going to break it down Bitcoin. It's a protocol. There's one one component It produces a transaction history We'll talk about what that means and the characteristics of this transaction history are that it's unique and permissionless I like to diagram sentences. It helps me understand them. So we'll start here Bitcoin is a protocol What is a protocol protocols exist everywhere a protocol is nothing more than a procedure When it comes to computers a protocol can be thought of as a language spoken by computers participating in the protocol But you can think about protocols as existing outside of computers as well when you drive on the roads You're following the US laws of driving. That's a protocol you yield if you're turning left to oncoming traffic those sorts of Rules are all part of the driving protocol in the United States Bitcoin is an open protocol. That means everyone knows the protocol. It's not hidden The code is open source Multiple implementations of this protocol exist So many people have written code that conforms with this protocol and anyone can create their own implementation because of that Okay, so Bitcoin is a protocol simple enough set of rules. It's a system. What does the protocol do? It produces a transaction history We'll talk about what that means Transaction histories also exists everywhere. You're also familiar with this concept Your bank account has a personal transaction history the transactions you individually have done PayPal maintains a transaction history for all of its customers. You can think of your own It's just a filtered version of this master transaction history a Payment systems transaction history will define all the account balances on that system It's also worth noting there's an infinite number of possible transaction histories in any particular system There's also a need to enforce the validity rule So there you can think about there being two classes of Possible transaction history is one that is valid and that's within a much larger set That's invalid but think about the the need to distinguish between validity and then the think about the need to distinguish between Sorry, let me correct what I said think about the need to distinguish between a valid and an invalid transaction history And then also the need to distinguish between valid histories So an example of an invalid transaction history will be someone sends a transaction where they don't have the funds That's clearly invalid But within valid transaction histories There's an infinite number of possible histories that could have been the history That we have of transactions, but aren't so there's there has to be one But there's an infinite number of possibilities and we're going to talk more about that So just think about a transaction history history of people sending a to be this much value Now we're going to talk about the fact that this is a unique and permissionless transaction history This is where things get interesting It's worth noting though these two characteristics neither of them are very special on their own Remember I said there's an infinite number of transaction histories within any system and within any system Therefore uniqueness is a requirement for anyone that's going to function For instance PayPal has a unique transaction history. They've defined it. They're the arbiters If you didn't have a uniqueness this uniqueness characteristic double spends would be possible because I could present one Transaction history to you where I paid you and another to someone else where I paid them with the same funds And I was able to get two things for the same money So uniqueness isn't all that special on its own Permissionless is a little more interesting permissionless transaction histories exist any time that a transaction system doesn't have a controlling authority Certain physical transaction systems such as gold or precious items actually fit this description Uniqueness if it's physical It only exists in one place at any given time. You can't Create multiple transaction histories when you're dealing with passing around physical objects Permissionless if you physically possess an item, it's difficult to prevent you from transferring it Perhaps it could be made illegal, but there is no central authority that controls the system Bitcoin accomplishes this digitally many people call Bitcoin digital gold and this is why We're gonna talk about how this is possible. This is the part that introduces Few technical concepts so you can understand Why? Bitcoin is able to accomplish this system of being a unique permissionless transaction history The uniqueness is accomplished through a system of proof of work also called mining The permissionless nature is derived from Bitcoin's use of public key cryptography We're gonna start with the permissionless nature and cover public key cryptography first public key cryptography Revolves around having two secret numbers called a key pair one is a private key and one is a public key You derive the public key from the private key and you cannot derive the private key from the public key You can think about an account number in Bitcoin is when bitcoins are assigned to a public key The corresponding private key to that account will allow you to authorize sends from it Remember the private key is derived first From randomness and then you take that number and you can derive a public key And once you have the public key you cannot redrive the private key So you can take this public key and spread it everywhere and use it as your account number and say hey Send bitcoins here if you want to pay me and as many people as as there are who want to pay you can do that And then you can use that private key as many times as you want to send those payments along to wherever you want to without compromising anything about that private key So This this slide this slide summarizes what I just said the transaction is assignment of bitcoins to a new public key And you have to authorize that with the use of the private key of the previously assigned address This authorizations called a digital signature and it doesn't reveal the value of the private key so you can do it repeatedly Let's imagine a visualization of a transaction here suppose There are some bitcoins that are assigned to Alice's public key That's a just a more complicated way of saying Alice has bitcoins But let's think about it this way as them being assigned to her public key She wants to pay Bob for something what she's going to do is form a transaction where she says here's my public key Here's how many bitcoins I want to send to Bob and here's Bob's public key And then what she'll do is she will sign it with the private key associated with the orange box The public key that she has and that you can we can think of that as the transaction as the authorization of payment transfer Bob could do the same he could pass it along to Carol He has a public key that has a private key Carol provides her public key to Bob And he'll do the same thing sign it with his private key and that's authorizing a transaction To to map it a little bit more to exactly how it works with Bitcoin suppose Alice has 50 Bitcoin at a public key She'll create outputs in a transaction Maybe one Bitcoin to Bob and 49 has changed to another public key to her own public key to the original public key wherever she wants And she will sign it with her private key and Likewise, she can spend that 49 change as one to Carol and 48 back change to herself And Bob can split his up 50 50 back to Carol back to himself And you notice as they sign the balances on the right We can consider those to change for the time being when they authorize it with their digital signatures And the Bitcoin ledger is the result of all the transactions now remember The point of this segment here is about the permissionless nature of this transaction history Bitcoin it's a protocol for producing a unique permit permissionless transaction history Why is it permissionless because of public key cryptography? No one can stop you from creating and using your keys Your private key is nothing more than a long number that you created on your own Randomly and the public key derives from it. You don't need to go get an account number You don't need to sign up anywhere. This is the permissionless nature of Bitcoin Remember I said that the transaction history created by the Bitcoin protocol is unique and permissionless So now let's turn to the unique nature that comes from proof of work. That's the system that secures the network It's called mining in order for this transaction history to be functional. Everyone must agree on a single history The validity rules of that history like I talked about before sending money that doesn't exist can be defined as part of the protocol as Computers that are talking along this protocol communicating with each other They won't accept transactions that don't that don't meet these validity rules But the complicated thing is that they're an infinite number of valid histories I could send you money. You could send it back to me We could do that for as many times as we want I could have sent it to another person over here and both of those would have been valid They couldn't have been valid together, but on their own they might have been so that's why we need to achieve this uniqueness property This history can't come from a central authority without the loss of the permissionless component in the system when it comes to PayPal It's unique because PayPal says it's unique same with your bank How can we do something permissionless? The way this is done is by bundling transactions into batches called blocks The transactions contained in the series of blocks, which is known as the blockchain Defines the canonical history so we could think of this data structure down here where there's a transaction that we recognized from before Authorized by Alice's private key which is stored in this block and we chain these blocks together in batches But we still kind of have the same problem many different blocks are possible How do we agree on the unique transaction history for instance? What if someone came in and modified the history I'll Dan Dan says he wants this Bitcoin How are we supposed to distinguish between the transaction history where this where this was sent to Dan versus the transaction where it was sent to Bob? The way we're going to be able to do this is with proof of work and that means we're going to make valid blocks difficult to produce It seems like it doesn't really solve the problem But it does if valid blocks are difficult to produce We can introduce a new rule that says the longest series of blocks is the transaction history the unique transaction history now we have a length we have a Something that can be well ordered and we pick the longest one That is going to make a unique history that is very difficult to change We're going to talk about what makes blocks difficult to produce This is because Bitcoin uses a cryptographic function known as a hash function A hash function. This is just an example here for illustrative purposes But it has these characteristics listed at the bottom. The output does not resemble the input notice how the first two are Very similar. There's just a one instead of a zero in that final digits place and the output of the first two are entirely different Second characteristic the output is deterministic every time you run the hash function on the same input you always get the same output The smallest input change completely changes the output the first two illustrate that point as well It can't ingest any amount of data and any kind of data So it can ingest a string anything that you can represent the hash function Will operate on and it cannot be reversed once you have the numbers on the right You're never going to know which numbers on the left produce them So imagine we had a situation Where are you looking to get a specific type of output from the hash function and we had our data And then we use this wild cards where we iterate through different numbers multiple times and we hash it each time We're going to get completely different results every time because the outputs are completely unpredictable It's essentially like a random number generator and eventually we're going to get an output that for instance might have a large number of leading zeros If you see something like that and someone provides you a data and wild card 5 and You can do the hash function the hash function is open source It's deterministic so you will get the same output with all those leading number of zeros The only logical thing to conclude is they must have tried a large number of wild cards before they could get this leading number of zeros If someone wants to prove that they worked hard to find the wild card, that's easy to do It's easy for me to verify that. I don't have to check all of the wild cards that they did I only have to check the one that they claim is the solution It's proof that they did a lot of work You can also chain hash functions together by using the output of one in the input of another So in this case we hash data one and we get some output And if we concatenate it with another set of data, we'll get a different output and we can continue this in a chain and These we call this a chain because the links are bound in extricably Inextricably to one another because of the properties of the hash function if we change data one It will change the output of data one Which means it'll change the input to the second hash function It'll change the output and all of the chain is broken when just a little bit of data gets changed Now let's combine these two concepts of proof of work and finding a wild card with chaining together hash functions In the case of data one we have a large number of leading zeros on the output So we can be confident that someone did a lot of work to create that if we use that as the input to the second hash function We can still create this chain, but in this case We know that a lot of work was put into creating this chain It means that it's hard to change a block that maybe is only one or two away from the most recent And it makes it nearly impossible to change a block once it gets buried deep enough in this repeated iteration of work and hash chaining So the way it works with Bitcoin is you bundle transactions remember transactions are someone authorizing a payment from one public key To another with their digital signature. We bundle those into a data structure called a block and then we iterate through a wild card and then eventually We're going to discover a wild card where the hash of all the block information along with the wild card is Underneath a certain difficulty threshold It's only going to be a valid block if it is underneath this threshold and then We can say that we have mined that block and the miner can share it with the rest of the network The rest of the network has all the other blocks already They can verify that this chains to the most recent block They can verify that it's underneath the required difficulty which is a which is a parameter that's calculated from the other blocks and thereby the network can accept that this block extends the chain and adds to the canonical transaction history, so We're trying to get uniqueness How can we get uniqueness we do it by making valid blocks difficult to produce and then adding a rule that the longest series of blocks Is this transaction history the unique one and because of the proof-of-work mechanism that makes it very difficult to change this history of Transactions, so anyone transacting in this system can be confident that if they receive the transaction That is in the canonical history and it will be there when they look again So to recap the two key characteristics that I want to leave you with about the Bitcoin network is the uniqueness and permissionless nature of It's transaction history, so again Bitcoin it's a protocol for producing a unique and permissionless transaction history You're gonna leave with a little bit of why I think this is interesting Sounds kind of boring when I put it this way. I Like to think of Bitcoin is kind of like a virus Maybe a strange way to describe it. It sounds like a criticism or an insult, but it's not It means that it is a system that has escaped the lab and is continuing to move Under the incentive structure that it's creating the same way a virus can propagate This transaction history is valuable to people people find it desirable to be able to Interact with a unique permissionless transaction history and the incentives of the system cause people to mine more blocks and cause that transaction history to continue to extend itself I Like to think about Bitcoin as being similar to the printing press in the same way that ideas Were controlled by the halls of power of the people who are educated before the printing press came along and the printing press democratized the ability to access literature and writing Hopefully Bitcoin will do the same for money because you don't need to go through intermediaries You don't have to sign up for account the permissionless unique transaction history Will democratize finance for many people in the future Thank you that concludes my talk does anyone have any questions anyone Is that one? Yeah, go ahead. No worries. Yeah Yeah, yeah, they don't teach sentence diagramming in school anymore, so I kind of made that one up. It works for me. Yeah Okay Well, I'll be around if anyone wants to come talk to me any other anyone else with a question. I mentioned proof of work. Yes What's that? Yeah, so Other consensus mechanisms work differently, so the The part here about this longest series of blocks being the transaction history is sort of it's this rule That was added once we decided we're going to make valid blocks difficult to produce and that's sort of how the consensus mechanism works but there can be other ways of achieving consensus and a lot of more recent crypto currencies are experimenting with ways to do this When I say blocks are difficult to produce they're very difficult to produce Mining is very energy intensive. That's something a lot of people have been able to read about in the media It's something that gets covered a lot So there are downsides to this and a lot of people are working on on potential alternatives to to this type of situation and The hope that is that they can produce a unique permissionless transaction history in a different way right now This is the one that's operational and working and it's been working very well for Bitcoin All right, well, I'll be around if anyone wants to ask any other questions. Thank you for your attention