Taking Gensler’s “Blockchain and Money” MIT Course: Notes from Session 4: Blockchain Basics & Consensus
Given what's going on financially and macroeconomically in this moment in time (inflation, retail vs institutional battles, etc), I'm going through Gary Gensler's (Biden's SEC chair nominee) MIT course "Blockchain and Money." Ever since I heard that Biden's pick for the SEC had previously taught a blockchain course, I've been interested in checking it out. I'm also curious to pick up on any hints as to Gensler's 2018 attitude on crypto along the way…(spoiler alert: in the intro lecture he said he would put himself on the "center-minimalist" part of the minimalist-maximalist spectrum.)
I'm sharing my personal notes on here as I go through the lectures. It might spark some good conversation, and I'm sure some of you are curious about the course too, but might not want to watch 25 hours of lectures.
FYI, all the source material is at the link above…lectures, slides, assigned readings, etc. The notes are just a way to share the things that stood out to me the most, and maybe save you all some time.
One more FYI – I'm definitely interested in Gensler's personal views on crypto, but the notes I'm sharing here are more just about the actual course subject matter.
Session 4: Blockchain Basics & Consensus
- Byzantine Generals Problem: how to coordinate when someone isn't acting in good faith (malicious actor), or in other non-malicious faults
- Solve puzzle –> propagate to network –> validate
- Hard to solve, easy to verify (asymmetric)
- 1,600 native currencies in 2018
- Decentralized network consensus: proof of work, native currency, network
- Transaction script and UTXO: transaction inputs and outputs, unspent transaction output (UTXO) set, scripting language
- Digital signatures with and without hashes
- Private key –> elliptic curve multiplication –> public key –> double hash (SHA256 and RIPEMD160) –> public key hash –> Base58Check Encode –> BTC address
- Max security would involve constantly creating new public/private key pairs
- Byzantine Generals Problem: permissionless (no central authority) blockchains mean unknown participants
- Security based on consensus protocol and native currency, key innovation of Nakamoto
- Hashcash proof of work, Adam Back, 1997: wanted to address spam and denial of service attacks, requires computational work (a few seconds) to find a hash within predetermined range, difficulty defined by hash outputs' number of leading zeros, efficiently verified
- Blockchain proof of work: the innovation was chained proof of work for distributed network consensus and timestamping
- SHA256(known hash of previous block + known transactions hash + known timestamp + unknown nonce) –> hash with correct number of leading zeros
- Consensus supports longest chain, only one that miners will build upon, not written into the code though
- Orphan/stale blocks: created but nobody added on them, info in them is not needed, hadn't happened in over a year as of 2018, longest stale chain is 2 or 3 blocks
- Reward is new native currency of that blockchain
- Hard fork: social consensus continues to maintain, separate currency can arise
- Transactions in stale/orphan blocks will still be in main chain's mempool
- BTC proof of work difficulty factor: leading zeros in hash, targets 10 minute average block generation time, adjusts every 2,016 blocks (about every 2 weeks), every blockchain can be different, was 18 leading zeros (out of 64 hexadecimal characters) in 2018, genesis block in January 2009 had 10 leading zeros (but only 8 required), currently 7 trillion times harder to find hash than it was in 2009, hash rate around 50 hexahashes per second (1,000 trillion)
- BTC mining evolution: CPUs 2009-2010 (2 to 20 million hashes/second), GPUs 2010-2013 (20-300 million hashes/second), Application Specific Integrated Circuit (ASICs) 2013-2018 (4-16 trillion hashes/second, only thing it does is create hashes), modern mining factories (thousands of ASICs, water cooling, electricity less than 3 cents/kw, arrangements with government officials), aggregate electricity use now comparable to all of Ireland or Denmark (in 2018)
- All strong monies for centuries have had something to limit the supply, is proof of work the best way though?
- Mining pools started around 2010 to smooth out revenue, mining pool operators will handle some extra "heavy lifting" and take an extra percentage accordingly, standard fees from 1-3%
- Proof of stake: alternative consensus mechanism
- Most BTC miners sell their coins
- Native currency: incentive system, peer to peer way to create new money, "monetary policies" vary widely (limits on supply), not every blockchain limits supply but vast majority do, BTC created through Coinbase Transaction in each block, originally 50 BTC per block, reward halves every 210,000 blocks
- "Inflation rate" for BTC in 2018 was 4.1%, this rate will keep halving though, supply cap around 2140
- Market based transaction fee mechanism also in Bitcoin Core
- Ethereum: 3 ETH per block in 2018 (7.4% "inflation"), proposal to decline to 2 ETH per block in November 2018, fees paid in Gas (109 Gas per ETH) for computation are credited to miners
- Gas and satoshis very similar
- BTC is a rule-based monetary policy hard-coded, should we have more human involvement in monetary policy? (like in times of war, economic peril, financial crisis)
- Cryptocurrencies or cryptoassets?
- Gensler believes you can have digital currency that does not have a central authority
- Network: full nodes (store full blockchains and able to validate all transactions), pruning nodes (prune transactions after validation and aging, 5/6 of transactions have been pruned), lightweight nodes (simplified payment verification (SPV) nodes, store blockchain headers only, wallets, rely on full nodes for verification), miners (perform proof of work and create new blocks, don't need to be a full node, mining pool operators can perform verification), mining pool operators, wallets (store, view, send, receive transactions and create key pairs), mempool (pool of unconfirmed but validated transactions)
- Alternative consensus protocols: generally randomized or delegated selection of nodes to validate next block, may have added mechanism to confirm block validators' work, proof of stake (stake in native currency), proof of activity (hybrid of proof of work and proof of stake), proof of burn (validation comes with burning of coins), proof of capacity (storage or space, based on hardware space), delegated selection may be based upon tiered system of nodes
- Major permissionless blockchain applications still use proof of work
- DASH: hybrid of proof of work with a tiered system of "Masternodes"
- NEO: delegated protocol of "Professional Nodes"
- Some view the limited number of mining pool operators as an Achilles heel to decentralization
Next session: Blockchain Basics and Transactions, UTXO, and Script Code