Cryptocurrencies

Hossein: Okay, so in this session, we're going to be discussing cryptocurrencies and all topics related to them, the various types of cryptocurrencies, how they basically work, what forking of a crypto currency generally is and the underlying technologies. Sam over to you.

Sam: Yes, so maybe we should start off and briefly mention, talk about digital cash or electronic money, these concepts that came before cryptocurrencies from before, before Bitcoin. I mean, people have been doing digital payments over the internet and even before the internet for quite some time. Those digital payments and ... Well, you have probably used PayPal. If you use the banking system at all, they've been doing digital payments a long time.

Cryptocurrencies is a new thing that primarily came onto the scene with Bitcoin. It's something that folks within this Cypherpunk movement is they are cryptographers that are hobbyists and enthusiasts and researchers have been trying to come up with a new type of digital payment where it has these properties, built on cryptography, specifically a public key cryptography, which we'll talk a little bit more later, and if you centralize it. Meaning, unlike the existing digital cash or e-money or PayPal, let's say, you can create a transaction that is somewhat anonymous and send funds to someone else that's also anonymous. Nobody can stop you from doing that. There's some challenges in doing that. The basic concepts were how can we use public key cryptography to achieve this?

Real quick, since a lot of cryptocurrencies are built on public key cryptography, I'll just give a quick overview of the basics there. The idea is ... Normally with ... Before public key cryptography, if you were encrypting something, you would have a secret. You'd have some document or some file or a bunch of packs, and you want to hide it and then transmit it to someone else. Let's say I'm sending a message to Hossein. Before public key cryptography, Hossein and I would meet up in person. We would have some secret, but we wouldn't call it key, a secret key, the shared secret, some random number. Then Hossein goes off to London. I'm here in San Francisco. If I want to send Hossein a message, I use that secret key to encrypt the message. Then Hossein uses the same secret key to decrypt the message. Anyone in between can't decrypt the message, because they don't have the secret key. The problem with that is that Hossein and I have to meet in person and share that secret key.

Public key cryptography, also called asymmetric cryptography while the first one's called symmetric, but public key cryptography, the idea that there's just two different keys. There's a private key and a public key. I would have a public key and a private key. Hossein would have his own public key, and his own private key. The private key is, both of them look like random numbers. The private key, I keep private on my computers, secured or on some trusted hardware. It's encrypted. I don't share that with anyone, but I share my public key. Similarly, Hossein, when he shares his public key with me over the internet. Anyone can see the public key, but he keeps his private key private. When you have a message, the way that works is I have a message I want to send to Hossein. I look at Hossein's public key. I use a public key to encrypt the message. I send it to Hossein. Then Hossein uses his private key to decrypt it. There's a different key for encrypting than from decrypting. Two separate keys. Now, so I go pause a second. Yeah, so in public key cryptography, there's two separate keys.

Now cryptocurrency, the idea here is all cryptocurrencies use public key cryptography to create transactions. Generally, the way it works is when you have ... You already have ... Just thinking through this. Suppose you already have funds in a cryptocurrency, and you want to send those funds to some other thought. Let's say I buy Bitcoin, and I'm trying to send Bitcoin to Hossein. The idea there is I have a private key and a public key. I'm simplifying it here, but what I can do is to, I can create a transaction where I use Hossein's public key, so I know Hossein's public key, you can think of it as his wallet, the public key as being the addresses of the wallet. I can create a transaction that says, "Only someone that has the corresponding private key to this public key can retrieve these funds."

Cryptocurrencies are, you can think of them as a error assets, where if you hold the private keys belonging to a wallet, then the network considers that the coins associated with that private key to be your own. It's not like a registered asset. In PayPal, for example, since PayPal is in my mind right now and it's a pretty common payment platform, those on the internet. That's customer facing before Bitcoin. In PayPal, you would have some amount of funds associated with your account, account registered to PayPal.

To gain access to those funds, you would go to the PayPal website. You would have an account. It would go through some kind of authentication, username and password, maybe some multifactor authentication. That would identify you as being the owner of the account. You would specify some other PayPal, some other user who belongs to PayPal. You would specify their email address or they're PayPal account username. You would send funds. PayPal is the central entity, one organization that has basically a list of people and the amount of funds. It's registered with PayPal. You go through an onboarding process where you would provide your drivers license or some kind of identity information that would prove that you are the person you say you are. It would connect to your credit card or some other bank account with that. PayPal would be responsible for authenticating an individual to make sure that you are the person you say you are and keeping track of the funds and having their own centralized ledger and then updating the ledgers when there's a payment that's made and then extracting the fee for those payments.

In cryptocurrencies, there's no central group like PayPal. There's no central company organization that has this ledger that they manage and where this organization is responsible for identifying, for authenticating people, authenticating meaning being able to trace that this real world person belongs to this account. In cryptocurrencies, there's no central group that does that. Typically, you would have, in cryptocurrencies, there's a few different types. We'll go into the different types. There's Ripple versus Bitcoin. Typically you can run, anyone can download the software. Run their own node and participant in the network. Their personal computer would participate in validating these transactions. There's no mapping between real world identities to the Bitcoin wallet or to wallets or public keys. You can leave a wallet. It's just an account that's identified by a public key, when you think about it.

Yeah, the two key properties for cryptocurrencies that are different from traditional, like PayPal or just digital payments, are one, that they're decentralized. There's no central entity that manages and maintains the network and is responsible for authenticating people. There's none of that. It's decentralized. You have multiple organizations running notes. Sometimes you don't even know who the organizations are, which is important for decentralization. There's a famous saying where if you can sue it, then it's not decentralized.

The second thing being the cryptography, the public key cryptography. When you create a transaction, you are spending coins that have previously been sent to you. You're using your private key to spend those coins. Then you're sending them to someone else that has a different corresponding public key. Everyone in these networks has a private key and public key. They're using those to decrypt their funds and create new transactions to send funds to other people in the network.

Now you do have, like in Bitcoin, you do have companies like Coinbase that will manage people's wallets, user's wallets on behalf of the user, in which case it becomes more similar to how PayPal works, in that case. Coinbase, you go through identification process. Coinbase knows who you are when you onboard. They just have their own central ledger keeping track of balances within Coinbase. Then you would create transactions, if it was Bitcoin or Litecoin or what have you um, when you're moving in and out of Coinbase. People do that for convenience, but in that case, Coinbase has control of your public and private keys on your behalf and creating those transactions for you on your behalf.

The important thing is cryptocurrencies, they are bare assets, meaning if you hold the private keys then they're yours. If I gave my private key to Hossein, he could just create a transaction and spend all my coins. There's no prevention of that or recourse. There's no central entity that's responsible for keeping track of which individual real world identity is responsible for the coins, like there is in PayPal. It's anyone who has the private key, it's their coins, which is just pretty different than normal payments and normal money. It's more like paper money or gold or something like that in the sense that if you own it, it's yours. It's not registered somewhere and you don't have to go through this third party service to spend or sent coins.

Another thing that's slightly different about crypto cryptocurrencies is it's a push-based model for payments. It's not like you can approve a payment that's being sent to you. I can just send coins to ... If I have my private key and I have my wallet which has some coins in it, I can just send it to Hossein, and it's not like he can reject that transaction and say, "No." It's a push thing where I create the transaction now with coins going to Hossein whether he wants them or not, which can also different than other payment systems where you can reject transactions and you can not approve certain transactions.

Typically cryptocurrencies have ... People talk about finality. Because of the security backed by cryptography, and the way in the way it's designed, the transactions once they, in a blockchain based cryptocurrency, once they're in a block and confirmed, after a certain number of confirmations, a certain amount of time, the transactions are final, so you can't ... It's very difficult to reverse the transaction. When you think of a credit card payment, typically you would be able to do a charge back or talk to the credit card company and say, "Okay, this transaction was fraud. Let's reverse it and give me back the funds." There's none of that in the land of cryptocurrencies. Once you've created the transaction, the network has placed that in a block, for all intents and purposes for this discussion, is final. There's no way to get your coins back. There's no central entity you can go to, there's no credit card company, you can go to sort this out if it's fraud, let's say.

Anyway, the bigger picture, cryptocurrencies is really. There's some challenges when developing a cryptocurrency. Bitcoin was the first cryptocurrency to solve those problems. One of them ... I mean, at the end of the day, what gives a cryptocurrency value? Well, at the end of the day, you can think of just account balances, but the value comes from both the network effects, like how easy is it to use a cryptocurrency, to create transactions, security, meaning, am I confident that if I create a transaction and send coins to someone else, they they show up there. People believe in ... They trust in the network. They find it useful. That's what gives it the value. At the end of the day, you're updating the account balances in a network that's being maintained by a number of nodes. I keep track of that. There's no concrete link between ...

In cryptocurrencies, there's no company that's backing the value of the cryptocurrency. It's not like there's some company that's going to control the exchange rate or something between the cryptocurrency and US dollars or anything like that. Because currencies is this bare asset, the space of public key cryptography, yet typically the identities of individuals are no known. It's hard to identify people, where the payments are coming from and who they're going to. Anyone can participate in the network, generally speaking. Other cryptocurrencies, we'll talk about today ... Anyone can create a public and private key and receive instant funds.

Going back to the list here, so crypto as a store sort of value, I mean, it has value because people find it useful to be able to ... They believe in the network. They trust that the network is going to process their transactions and that their transactions are going to be final, that the network can't be hacked. The theme of the day is people find it useful.

Developing ... Getting the incentive structure right was a huge challenge. I mentioned the Cypherpunk movement, who are trying to develop cryptocurrencies before they were called cryptocurrencies. You see some initial ideas before Bitcoin came on the scene. Some of the big challenges were how do you prevent spam. Suppose you have some cryptocurrency, and you're just starting to network. Running decentralized technologies, I mean, it costs money. Forget the mining, for a second. Suppose there was no mining. We briefly talked about mining in the previous session. How do you ... It takes resources to run these servers, run the software and just the energy alone costs something. How do you prevent people from overloading the network and prevent spam, meaning spam emails? That's where some of the initial ideas came in. That's eventually the idea that lit up proof of work where it came out spam filters and prevention of spam by ...

Most of these cryptocurrencies, there's a transaction fee. Your transaction fee would either go to, if it's Bitcoin, it would go to miners who are responsible for maintaining the network. Some of the other cryptocurrencies, the transaction fee doesn't go to anyone. It just gets, what they call burned. It gets destroyed. Because there's a transaction fee, it's a mechanism to reduce spam, because the spammer then has to pay money to create transactions. It's not ... Running a network, and just running the software has some, it has costs associated with it.

Now Bitcoin, we briefly talked about it last time, but in the Bitcoin network, there's also a correlation. I mean, it's just... Miners have to spend not just the amount of money to run their servers and process transactions, but they have to spend a huge amount of money to mine, to find these blocks. There's a relationship between the cost, the dollars to secure the network or the cost in energy to secure the network and the price of Bitcoin. Meaning, it wouldn't make sense to spend millions of dollars of mining in Bitcoin, if it has very little value.

Okay, moving on here. We talked about Bitcoin extensively in previous sessions, so I think, we had the gist of Bitcoin.

Forks, the idea here is, so first it was Bitcoin. The first or the largest, I guess, mainstream fork of Bitcoin ... Well, let me explain what a fork is for us. In the previous session, we talked about consensus. In the Bitcoin network, you download software. You're running the Bitcoin service. It's nodes are coming to consensus or agreement on the latest block and the entire history of the blockchain all the time. If a transaction shows up or a block shows up that doesn't meet the agreed upon rules that the software says, then the software will reject the transaction, reject the block. The transaction is not in a block, yeah, and it's just propagating through the network to be later to be placed in a block. The transaction doesn't need certain rules. Things like, "Does the sender have the necessary funds? Do they have the right private key to unlock the funds." Those types of things. If the transaction doesn't meet the validation rules, then it's just ignored and dropped. It's not propagated to the rest of the network, and similarly with blocks.

A fork is a change in the consensus rules. That means, the network is up and running. You've got a bunch of nodes participating. People are creating payments. They're using their private keys to create transactions and send to other people. The developers and the community decides they need to change the network for some reason. It could be a bug. There might be ... The initial versions of Bitcoin had what are called integer overflow bugs. It's just bugs that would let you do things, like have millions of Bitcoin or exceed the maximum, 21 million Bitcoins. The original Bitcoin had a cap among the number of Bitcoins that would be ever be issued in the network. There were bugs that let you go beyond that cap. The developers, we get together and say, "We need to change the software. We need to fix this bug." It's decentralized system, that's difficult. It's not like PayPal were you just get your Dev team together and your operations team and you do a release. No, because it's decentralized. You don't even know who's running the software. It's all over the world.

How do you get everyone to upgrade the software? There's different types of fork. There are things called hard forks and soft forks. Soft forks, okay, both relate to consensus. You're changing the rules of consensus. You're saying that transactions that were previously rejected are now going to be allowed, right? Or you're going the other way and saying that transactions that were previously allowed are now going to be rejected. You're changing the rules of the game. You have to change the software, so that you're changing the system.

Anyway, there are two different types of forks. Just means a change in the consensus rule. You're changing the software.

There are two different types of changes. There are changes that are backwards compatible were only some of the network needs to update. The network will continue to run. You don't need everyone to upgrade, like your iPhone, all the recent releases over the past year and a half are backwards compatible, meaning I can still use my iCloud even if I'm on an older version of IOS. Then there are backwards incompatible changes. That requires you to download new software in order to participate.

Hard forks are consensus changes to the rules that are backwards incompatible. Those are very controversial in general. You don't want to do that. If everything's humming around, humming along and working, unless it's really, really bad, like the whole network's just going to stop, you generally don't want to have a backwards incompatible change, because then everyone would have to download the new software. You'd have to get everyone to go to the Bitcoin website and download it. Anyways, it's an operations nightmare, because it's decentralized. It becomes a political thing to get people to update their software. You have to convince people they need to make this change. Soft forks, they're backwards compatible, so you only need a few people to make the change, and you can start seeing the benefits. It interacts with the old pre-fork version of the software. Those are forks.

Bitcoin, probably the most famous for a hard fork, because there's been plenty. I mean, there's been soft forks. You don't really hear about them, because you don't have to download new software. You don't really think about it too hard. The Bitcoin developers, Bitcoin core developers, periodically do soft forks to improve things like security of the network. It's a longer discussion, but they happen frequently.

Hard forks, in the past, in the original versions, like the first few years of Bitcoin, there were several hard forks. Those were like, "If we don't make this change, the whole Bitcoin network is just going to stop and not work." They weren't controversial. Everyone understood like, "Okay, we've updated. It's got this problem," like this integer overflow problem I mentioned, I mean, if you create new coins. Probably the most interesting case is Bitcoin Cash, which is a controversial hard fork. Bitcoin Cash, it's a separate cryptocurrency. It was a hard fork, a controversial hard fork from regular Bitcoin. What that means is up until, maybe a year ago, yeah, about a year ago, January 2017, the blockchain ... Both, both cryptocurrency ... you have Bitcoin and Bitcoin Cash, two separate Bitcoins. I'll just call it B Cash. Two separate cryptocurrencies up until January of 2017. The blockchain, meaning that all the transactions, all the blocks, all the amounts, the money that everyone has is exactly the same on both networks. If I have a Bitcoin private key and public key, and I created a transaction two years ago, that same transaction is going to show up in Bitcoin Cash. The blockchains were exactly the same up until January of last year.

After that, a group of people made their own version of Bitcoin software with different consensus rules. It was a hard fork. They changed the rules of what is valid, in this case, wasn't a valid transaction, but what is about block. They were interested in making ... A block is a bundle of transactions. There's a limit to how many transactions you can put in a block, right? It's just a limit that's coded in the software. That limit would do things like limit, I mean, ultimately it sets the amount of transaction throughput you can have in your network. If you can have larger blocks, you can fit more transactions in a block. Let's say, you're just validating it at the same rate, and Bitcoin is every 10 minutes, then you could have higher transaction throughput.

Bitcoin Cash said, "Look, there's all these people that are into Bitcoin. This is going to have to be electronic peer-to-peer payments for the entire world. We need higher transaction throughput. Seven transactions per second of Bitcoin is not enough for Visa scale. We want to increase the block size." That's a change that is a hard fork. It could changes the consensus rules. Previously blocks that are greater than a megabyte were rejected as being invalid blocks. In their version of the software, blocks can be bigger than a megabyte. They can be different sizes, like four megabytes or even beyond that. They created this version of the software, B Cash. It's a fork. It's a different ... It's like Bitcoin, but in all the transactions and blocks are the same up until a certain date, but then afterward, there's new transactions that are created around the B Cash network that don't show up in the Bitcoin network and vice versa.

What that meant was on that date, if you had a public and private key and you have a wallet or a wallet on the Bitcoin network, let's say you had 10 Bitcoin, then on January 2nd, B Cash launches. People are downloading and instead of running Bitcoin, they're running B Cash. That means you now have 10 B cash, so you have 10 Bitcoins and you have 10 B Cash. B Cash, in a way, is paying you to participate in the B Cash network. That's also called ... This idea, just handing out cryptocurrency to get people to participate is also called an airdrop. You may have heard that phrase. Bitcoin Cash network gives you coins if you already had a wallet in the Bitcoin network, and so you can just participate in B Cash.

The two networks are incompatible. You can't send Bitcoin Cash coins to a Bitcoin wallet. Well sorry, the other way around. You can't send Bitcoins to Bitcoin Cash wallet, for example. The networks are forks. There's two different blockchains. They're the same up until a certain point, up until a certain block. That's a fork, Bitcoin cash.

Ethereum showed up. It's a whole different network. It wasn't based on ... It's not like a copy of Bitcoin, but with some changes. It's an entirely different network. The way they process transactions is different. It has this so-called smart contracts, which we'll do another session on. You can think of it as just a different, a whole totally different network where in the beginning some of the original founders of Ethereum had coins issued to themselves, a kind of like in Bitcoins. Satoshi has a bunch of Bitcoins issued to himself.

It's a whole different blockchain. You create a new Ethereum wallet and a public and private keys. You can send Ether, in the same way, like in Bitcoin, you can send Bitcoin. Ethereum was designed to solve different problems, and we should have a whole other session on that in terms of smart contracts. That's really the key. Difference between Bitcoin and Ethereum is that Ethereum was designed so that you can run, not just your payments and send ether to and from two different people, but you can actually run other computer programs on the Ethereum network and build other things. This is where you hear tokens and ICOs, and we can talk about that in another session.

Ethereum, totally different blockchain, totally different cryptocurrency, Ether. It's a decentralized network similar to Bitcoin, not the same decentralized properties. Anyone can create a wallet, send ether to each other. The network is powered by Ether. You pay a transaction fee that goes to minors in ether. To run your smart contracts, you pay ether to do that as well.

Now, Litecoin, it's considered, you can think of it as, it's like Bitcoin. It came out in 2011, I think, 10 years after Bitcoin, the Bitcoin paper came out and it was open source. What people were concerned about with Bitcoin network, was this minor centralization. Because of how the mining works and the algorithms that are used, if you're going to become, if you have a lot of resources and you're building a business around mining, you're going to develop the most efficient way to compute these hashes and to mine these block that cost the least amount of energy, that lets you compete the most hashes. The whole, as we talked about in the earlier session, the whole way mining works is you're generating these random numbers. You're hashing these blocks. You're trying to find a number that has a certain property in order for the block to be valid. It costs a certain amount of energy to do that. Miners, they're incentivized to reduce the costs and to come up, to be a profitable business like find cheap money and cheap ways of generating these hashes.

Bitcoin chose certain algorithms to do that hashing. People were concerned about that because those algorithms could be implemented in custom, specialized hardware. You hear things like ... When Bitcoin started originally, people would just do it on their personal computer. That was great. It was essentially ... The mining was decentralized. It meant that Hossein could download it on his laptop, I could download it on mine. A lot of people early on, could just mine on their regular computers and get some Bitcoin for doing that. We were all on equal footing. Maybe someone has 10 computers or whatever. It's just a small data center. Their ability, their mining ability wasn't like ... Huge orders of magnitude greater than an average person with their laptop. People liked that property, because it was decentralized. It meant that a lot of people could participate around the world in mining.

Well, with hashing algorithm that Bitcoin chose, it was amenable to developing custom specialized hardware to speed that up. First it was the GPUS, which isn't custom hardware. You can run that algorithms on a GPU. It would be a lot faster than on a CPU. Now people with GPUs had an edge. They could mine 10,000 more hashes per second than someone on a CPU, more like a thousand, somewhere around a thousand. People went to more specialized things like at FPGAs, which are reprogrammable pieces of hardware. It's like a hardware. It's not a CPU. It's not a GPU. It's a more specialized piece of hardware that you can configure. In this case, you can configure it to mine Bitcoin, get hashes in Bitcoin. Now, you're looking at speeds of a few 100X or 10 to 100X on the GPUS.

FPGAS are even more inaccessible to your average person. I can go buy a GPU. If I'm going to go out and buy an FPGA, it's a lot more expensive. It's difficult. It's more specialized. It's harder to set up and configure, so it becomes more specialized. Ultimately, people went to ASIC, which is just a complete custom hardware chip that's not reprogrammable. It's just completely specialized to mining, and getting these hashes for BitCoin. That's what everyone mines Bitcoin with. All these miners mine Bitcoin with today on this special ASIC chips.

Now, Litecoin, they were concerned about that. They didn't like the idea of mining being centralized, so only a few organizations that can afford to do ASIC chips. Early on they saw like, "Okay, these algorithms that can be paralyzed and implemented in hardware and have huge performance benefits for doing that." They decided to come up with different shoes, different hashing algorithms that were more resistant to specialized hardware to try to keep the network decentralized, the mining network decentralized. They used a hashing algorithm called Escrypt, which was designed to be more resistant to specialized hardware and be less her paralyzable and amenable to specialized hardware with huge performance gains. You still get some performance games, but not like in Bitcoin where it's a 100X on your ASIC then on your CPU. It's more like ... Ideally you're looking at 1,000 to 10,000. It's a different set of algorithms as part of the mining to try to make it more difficult to have competitive edge with customized hardware.

It's a whole new blockchain. It's not a fork. It's just a whole new blockchain that has a different consensus algorithms, different hashing. This uses Escrypt to be more resistant to specialize mining. They have made some other adjustments. Instead of the network trading mined blocks every 10 minutes like in the Bitcoin network it's every few minutes, like two and a half to five minutes.

Okay, Zcash. Zcash, they did not like how ... Bitcoin, I mentioned these public and private keys. You have all these transactions. Anyone can download this list of transactions. They can see a transaction between these two public keys. They can see the transaction amount. You don't know who owns the public, who owns the corresponding private key. You don't know that. There's no central registry or anything like that that says this public key belongs to this real world person. People call this pseudo anonymous. I mean, it's not completely anonymous. You can see transactions. You can see between public keys and the values, but you don't know necessarily who owns those private keys.

Now, Zcash, they didn't like the fact that you could see the transaction amounts. They wanted to add more anonymity to protect people's transactions. The way they did that is they took Bitcoin. They didn't. It wasn't like Bitcoin Cash where it shares the same blockchain. It's a whole new blockchain. They started off with the Bitcoin code base and the same architecture as Bitcoin, but they added, by using some really cutting edge crypto called Zero-knowledge proofs, which we'll talk about later. They added a way for you to take your coins and create transactions that are private, that don't leak the identities of the people involved in the transaction or the transaction amounts. That's all hidden. It's like Bitcoin, but with more privacy guarantees.

It uses this crypto called Zero-knowledge proofs, which we can talk about it in a different session. It's very similar, but not identical to Bitcoin. You can take your coins and create these new transactions that preserve confidentiality. This trusted setup involved, meaning you have to trust these ... There's a group of developers that launched the Zcash network, and as part of creating that network, they have to create, you have to trust that they destroyed certain keys. There's some trust you have to get in the initial creators in order to maintain confidentiality. Yeah, you can think of it as Bitcoin but confidential. Okay, that was Zcash.

Sam: Now, Ripple. Yeah, so Ripple, it's a cryptocurrency. Unlike Bitcoin where anyone can ... Maybe we should pause. Maybe we should pause here, so we have a few minutes for questions and then we can dive into Ripple either in another session or where we can go over.

Q&A:

Speaker 3: Thanks Sam. I have a few questions to different points within the session. Let's start at the beginning when we talked about the keys. You mentioned there's always private and the public key. You would send with the public key, but then the person who wants to open the transaction needs a private key. I was wondering does each public and private key fit together like do they ... Does the private key know or does the public key know it fits to this private key? Does that make sense?

Sam: Yeah, that's fine. You can leave it that way. That's right. Yep.

Speaker 3: Okay, cool. You also mentioned Coinbase in between. You said that they would have your keys actually. I was wondering if Coinbase an exchange or is it like a fund manager or something?

Sam: They call themselves an exchange. What they do is they create wallets on your behalf. They create a public key and private key. Then they store that on their servers. You don't have access to the private key that Coinbase owns. It's just their wallet and their private key. You log into Coinbase like you would with PayPal. You can instruct Coinbase, pay so many coins to this other person. You're trusting them to do that, to use that private key to do that. With Coinbase, now there was this huge thing, but there's this other exchange which was like Coinbase at the time. They got hacked. It was poorly run. A lot of people lost millions of dollars, because they didn't have control over their private keys. It wasn't really theirs. They were trusting this exchange to hold onto the keys for them. They didn't do a very good job protecting their users keys. With Coinbase, we trust Coinbase to do that.

In terms of the exchanged piece, it's not just that Coinbase holds onto your keys. They also let you buy Bitcoin with dollars. You would register a bank account or credit card number after you identify yourself, provide your driver's license, etc. you can purchase Bitcoin using your dollars. They'll add it into your account. If you want to send to a private key that you own, then you have to create the transaction or you have to trust Coinbase to create a transaction and send it to your own public key, where you manage the private key yourself.

Speaker 3: Okay, okay. There's that. Later on we talked about the forks. I understood the main part. The only thing I was wondering is, for example, an example of Bitcoin and Bitcoin Cash, who actually came up with the fork, so who was saying, "Oh, we need to do it that way. Therefore, please all follow me and become Bitcoin Cash instead of Bitcoin," for example. Is that the development team of Bitcoin that suddenly has a dispute, then two people want that and the other two people want the other thing.

Sam: Yeah, it was really controversial and very vicious. There's a group of people called ... It's not a company. It's just a group of individuals called Bitcoin Core. They have access to ... There's a software repository system online. We call it GitHub. It's host most of the open source software in the world. Bitcoin, the version of the Bitcoin software that most everyone runs is called Bitcoin D. It's this group of developers that have access to that code and can make changes to the code on GitHub. That group of developers is called Bitcoin Core. It's not a company. It's just a bunch of random people, different companies that have access and can make changes to Bitcoin, so that version of the Bitcoin software.

There was a separate groups. The Bitcoin Core developers did not want to make this change. They were very against it. It requires a much longer discussion of why you want to keep the block sizes smaller, but ultimately by having larger block sizes you're going to have less. They thought it was unnecessary. You can do other changes to improve the throughput without having to change the block sizes. Also changing the block sizes comes with a cost. They were staunchly against this. There were a few Bitcoin celebrities. They weren't developers, but they were people who were early on in Bitcoin that bought a lot of Bitcoin early on and made lot of money. They were very vocal on YouTube and these blog posts.

As you mentioned, there were some old school developer, two of them that were previously involved in the Bitcoin Core group, but had since left that were in favor of this change. They weren't actively developing the new software. It was mainly led by these YouTube personalities and celebrities that went out and found another developer to pay to do their version of this Bitcoin Cash segment.

Speaker 3: Okay, but that developer they paid, did he have to be part of this Core group?

Sam: No, so they just created another ... Bitcoin software created another product on GitHub.

Speaker 3: Okay, kind of copied everything besides the change.

Sam: Yeah, to make the change. Then they went out to try to convince the community to download this other software. You can imagine it's pretty difficult, right?

Speaker 3: Yeah, yeah, yeah, yeah.

Sam: It was very controversial and very ugly. I mean, a lot of people who are individually got turned off and walked away from it, because of these very public, ugly debates.

Speaker 3: Yeah. Okay, cool. No, I understand that. I think that's it for my set of questions.

Hossein: Sam, do you have anything further?

Sam: You can briefly talk about Ripple if we have a few minutes.

Hossein: Okay.

Sam: There is a company called Ripple that invented the Ripple Protocol, the company. The Ripple Protocol has a cryptocurrency called XRP. In the Ripple, the company owns a huge percentage of XRP, because they didn't know ... They invented the separate cryptocurrency. It's different from Bitcoin and Ethereum in the sense that the people who perform well ... There's no mining. There's validation of blocks. There's transactions. You have public and private keys. I can create my own Ripple account, my own Ripple wallet.

It's different in the sense that the servers and the nodes that validate the transactions and create the blocks are not performing mining. They are known identities. They have ... They are known real world identities. When you run the Ripple software, you specify the other nodes that you trust to validate the transactions for you. It's a common step that the Ripple network has agreed upon. Everyone knows who owns those nodes. They trust that the people who run those nodes are going to do a good job and validate the transactions properly. There's some safe guards to make sure that if someone misbehaves, they can detect that and only a certain percentage ... You can tolerate a certain percentage of nodes misbehaving or who are trying to double spend, things like that.

The blocks, there's no money in the blocks. You're trusting that a certain percentage of the nodes are behaving well that are validated transactions, that are following the rules. Those validators, they are known. They are known companies. When you run the Ripple software, you just specify who you want to trust, which of these companies you want to trust to validate your transactions or you've just send the previous list, the default list that comes with software which has the Ripple, the company, they're validators on that list to validate your transactions for you.

It's decentralized in the sense that you don't have to trust just Ripple, the company. There's other companies and universities, MIT might have one. You can trust them to run their nodes and configure software to do that. It's more centralized than Bitcoin, because there is this company that's responsible for maintaining the software and evangelizing the software and getting your organization on board. They own most of the, a huge percentage of the XRP coin.

When you create transactions with the transaction fee, the fee does not go to the validators. It gets burned. It just gets destroyed. That is to fight spam. We talked about spam earlier on. There needs to be some cost of credit transaction, because at a minimum, there's costs in processing the transaction.

Yeah, that's really high level overview. Yo can think of it as cryptocurrency, yes, it's decentralized. Yes, but you're looking at a handful of validators. I think there's like, I'm pretty sure it's less than 100 validators. Their identities are known upfront. They're all registered. People trust them, because they trust those companies. There's one company, Ripple, that is really shepherding this whole network and developing the software. Any questions about that?

Speaker 3: No, I think I understand. The main difference is that first of all, it is decentralized, but you do have entities that are known rather than just random people, if you call it like that. Secondly you pay instead for the transaction instead of you getting money for it, right? This fee that you pay is then burned, as you said.

Sam: Yeah, it doesn't go. It doesn't go to Ripple the organization. It doesn't go to the validators or anything like that. It just gets destroyed. The incentive for being a validator is really that you want to promote, maybe you own a lot of Ripple. You want to promote the network. You want a healthy network. You're not getting paid to run your validator.

In Bitcoin, people mine, because they want to make money. It costs a lot of money to do it. It's a lot of work. They want to get those transaction fees. There's a reward when you mine a block. The network rewards the miners with a block reward as well. Incentives are very different. In Bitcoin, you don't know who the miners are. Their identities are hidden and anonymous or pseudo anonymized. Whereas, I mean in practice, people have a general sense of who the miners are. In Ripple, it's very clear. To become a validator, you register. You let everyone know, "Hey, I'm a Ripple validator. This is my address. I will validate your transactions." People will generally trust you if you're a reputable company and configure their software to use you as validator.

Speaker 3: Okay, so just one tiny question with regards to that. I can just decide, if I'm an organization, that I want to become a validator or do I need to like apply or something to the Ripple company?

Sam: You would probably want the Ripple company to be on your side. You would probably ... You don't have to. Because people, everyone involved in Ripple trusts the Ripple company, you would probably want the Ripple company to promote you and put you on their website, but you don't have to.

Speaker 3: Okay, got it. Okay, great. I think that's it for my side.

Hossein: All right. Thank you so much, Sam. That was very productive. Next time we will go on to the next topic at hand.