Tags: #crypto #crypto-journey #blockchain
### Readings
Reread [WTF is the blockchain?](https://hackernoon.com/wtf-is-the-blockchain-1da89ba19348), by Mohit Mamoria which I found from a16z's [crypto canon](https://a16z.com/2018/02/10/crypto-readings-resources/).
Read [The creation of "FDIC" and how it permanently changed the banking system](https://crypto.preethikasireddy.com/fdic/), by Preethi Kasireddy. I originally received this as part of an email course, but she [uploaded it to a course on her website](https://crypto.preethikasireddy.com/fdic/) as well.
### Notes
A blockchain is distributed ledgers.
I understand the concept of the distributed ledger.
- Ledger records transactions and therefore tracks how much money everyone has.
- Distributed means that everyone has a copy of the transactions, and veryone has to agree on every transaction for it to successfully be added to the ledger.
**Question**: Where exactly the blockchain is recorded? Who has the copies of the transactions? Who is agreeing on each transaction? Like...I know I can go and look up transactions on etherscan but that's just a tool to view, right? Where is the blockchain? Is it just a bunch of records on AWS servers?
In the metaphor used in this article, everyone lists the network's transactions on a page. Once everyone has a page full of transactions, then a sealing process, technically known as mining, occurs. This is where the hash function comes in. In my original read of this article, I missed the part where "mining" is the "sealing" process. I've thought that the mining process was a bunch of computers solving random difficult math equations in order to earn BTC--hadn't connected that the mining and earning of BTC was related to verifying and adding transactions to the blockchain.
The hash function takes an input and does some complex magic to transform it (the complex magic is out of scope for this article 😂)) into some output. One important goal of the hash function -- given an output, it has to be tremendously difficult to determine the input. It has to take **effort** (time and electricity). But given a certain input, it has to be quick and easy to verify that it has a certain output.
Mining (or sealing, as this article calls it), is the process of being given a hash function output and calculating what the input would be. The method described in the article is to input numbers into the hash function until we get the correct output. Once this is determined, the input number is like the "sealing number" verifying that the "page" being added to the blockchain is correct. This is known as **proof of work**, in which the sealing number is evidence that effort-- time and electricity--was expended to calculate the "sealing number".
**Question**: I'm still not fully understanding this mechanically. Who is everyone in the network? How do you become part of the network?
When we run out of room for transactions on the "page", everyone in the network races to determine the "sealing number". The first person to calculate it announces it to the rest of the network. The rest of the network verifies. If it is correct, the page is sealed and added to the blockchain.
If someone doesn't get the same number but everyone else does, there are some possibilities. It could be an error in communication It could be an attempt to cheat. Either way they have to throw their "page" out and copy from everyone else. Everyone agrees on the sealing number.
**Question**: It seems like we are to assume that the majority is always correct here. Is it ever possible for the person who announced the number, and all the people who verified the number, to be wrong?
Everyone in the network competes to be the first to determine the "sealing number" because the first person is rewarded with the currency. (I'm guessing this article has BTC in mind. Not sure if different blockchain protocols work differently.)
A single page is like a block of transactions, and a chain of pages makes up the blockchain.
What makes it immutable? What stops someone from going back and modifying a page to reward them with more money? Well, In a block, we already know we have the list of the transactions and the sealing number. But the last element is the output for the previous block, making each block in the blockchain dependent on the block that came before. If someone tried to modify a page, they would have to modify (and seal) all blocks that came after.
As we know, it's energy intensive to calculate the sealing number, and it would be impossible for 1 dishonest person's efforts to beat the cumulative efforts of the 9 honest people in maintaining the longest chain. **The longest chain is the honest chain.** That's the one we trust.
However, if there are 6 dishonest people and 4 honest people, the process fails. This is known as a **51% attack**. 6 dishonest people would be able to modify a chain and keep up with it, making it the longest chain and therefore the chain we will trust.
**Question**: I'm intrigued. Wonder how susceptible we are to 51% attacks, if there's methods for recovering from it.
**Other Questions:**
Is it possible for the blockchain to become too large? Billions of transactions recorded over the time, immutable, and everyone has a copy...sounds heavy.
Overall, I'm struggling to connect the conceptual workings of the blockchain to what exactly is happening when I connect my wallet and send BTC. When the article discusses filling a block with transactions, then adding the block to the blockchain. how does that work? What fills up a block? Would one NFT purchase be one transaction? Is one transfer of BTC from one wallet another one transaction? How does that fill up a block? Does my transaction get bundled with other transactions to make a block? Or is my one purchase (which appears to be one transaction to me) actually a series of transactions that creates a block. Now that I think about it, it might make sense now why when you buy BTC, it'll say something like "35 transactions to verify"...but something to confirm.
I'm also reading through Preethi Kasireddy's email course on cryptocurrency and the history of banking in the US. Disclaimer: I'm pretty uninformed on US banking history (what did I even learn in AP US history!!!). In today's email, Kasireddy discusses FDR's monetary policy: the creation of the FDIC, the restructuring of the Federal Reserve, and hones in on the removal of double liability. Until 1935, when a bank failed, the bank's stockholders (typically their managers/directors/leadership) would lose their stock and an additional amount, usually around $100 per share. Obviously, the bank stockholders didn't want to lose money, so they were incentivized to run the bank well.
FDR removed this double liability rule. Why? Well, his justification was that the double liability rule prevented average Americans from investing in banks.
Kasireddy argues that the removal of the double liability rule completely skews incentives. Because bank leadership will no longer lose their stock and extra money if the bank fails, they no longer have skin in the game, and they are no longer incentivized to run the bank well. I'm not entirely certain that that's 100% true, I mean, if the bank fails I'm sure some of them would be out of work, stock prices could tank, etc, but I understand her argument. And...can't say I'm in a hurry to defend the banks lol.
But the overall point she's setting up in her email course is that incentives are central to cryptocurrency. Looking forward to exploring that further.
Created: September 26, 2021
Last Modified: September 26, 2021