Tech

Blockchain & Money: Session 5: Blockchain Basics & Transactions, UTXO, & Script Code by M.I.T. Sloan School of Management with Professor Gary Gensler

Blockchain and Money–Class/Session 5–Prof. Gary Gensler MIT Sloan School of Management

Session 5: Blockchain Basics & Transactions, UTXO, & Script Code

  • Session 5 Study Questions:
    • How does Bitcoin record transactions? What is Unspent Transaction Output (UTXO)? What is script code embedded in each Bitcoin transaction and how flexible a programming language is it?
    • As many design features (public key cryptography, hash functions, append-only timestamped logs, digital cash, & proof-of-work) pre-date Bitcoin, what was the novel innovation of Satoshi Nakamoto?
    • Who is Satoshi Nakamoto? (Only kidding a bit.)
  • Session 5 Readings:
    • ‘Bitcoin’s Academic Pedigree’ Narayanan and Clark
    • ‘Making Sense of Cryptoeconomics’ CoinDesk
    • Narayanan & Clark’s Chronology of Ideas in Bitcoin

Overview: Transaction Inputs & Outputs; Unspent Transaction Output (UTXO); Scripting Language; Blockchain Design–Putting it All Together; Bitcoin’s Academic Pedigree; Who is Satoshi Nakamoto?; Conclusions.

  • Coinbase Transaction
    • Reward for solving proof-of-work.
      • Only input is the Coinbase Block Reward
      • Reward halves (1/2’s) every 210,000 blocks
        • Currently 12.5 Bitcoins per block
        • Originally 50 Bitcoin per block
    • Output may not be used as a Transaction Input until another 100 blocks
    • Recorded as First Transaction in Merkle Tree
    • May include 100 bytes of arbitrary data
      • Used for additional Nonce.
      • Genesis Block included Headline from Financial Times:
        • ‘The Times 03/Jan/2009 Chancellor on brink of second bailout for banks’
  • Unspent Transaction Output (UTXO) Set
    • (Bitcoin transaction outputs that have not been spent at a given time).
      • Contains All Currently Unspent Transaction Outputs
      • Speeds up Transaction Validation Process
      • Stored using a LevelDB database in Bitcoin Core called ‘chainstate’
  • Bitcoin Script
    • Programming Code used for Transactions
      • Stack-based Code, with no Loops (not Turing-complete)
      • Provides a flexible set of instructions for Transaction Validation & Signature Authentication
      • Most Common Script Types in UTXO:
        • Transaction sent to Hash of Bitcoin Address-“Pay-to-PubkeyHash” (81%)
        • Transaction sent to Hash of Conditional Script–“Pay-to-ScriptHash” (18%)
        • Transaction subject to multiple signatures–“M of N Multisig” (0.7%)
        • Transaction sent to Bitcoin address–“Pay-to-Pubkey” (0.1%)
  • Bitcoin–Technical Features
    • Cryptography & Timestampled Logs
      • Cryptographic Hash Functions
      • Timestamped Append-only Logs (Blocks)
      • Block Headers & Merkle Trees
      • Asymmetric Cryptography & Digital Signatures
      • Addresses
    • Decentralized Network Consensus
      • Proof-of-Work
      • Native Currency
      • Network
    • Transaction Script & UTXO
      • Transaction Inputs & Outputs
      • Unspent Transaction Output (UTXO) set
      • Scripting Language
  • Conclusions:
    • Nakamoto’s Bitcoin brought us Blockchain Technology
    • Blockchain technology is within long history of Money & Ledgers
    • Its Design Features also can be placed within history of technology
      • Timestamped Append-only Logs (Blocks)
      • Cryptographic Hash Functions & Digital Signatures
      • Network Consensus
    • Key Innovation–Decentralized Chained Consensus Protocol
      • Addresses ‘Costs of Trust’
      • Provides Peer-to-Peer alternative for Money, Ledgers & Computation