Intro

CS 251 Blockchain and Cryptocurrency Technologies #

This course #

  • Brings together: cryptography, distributed systems, economics

Course organization #

  1. The starting point: Bitcoin mechanics
  2. Consensus protocols
  3. Ethereum and decentralized applications
  4. DeFi: decentralized applications in finance
  5. Private transactions on a public blockchain: SNARKs and zero-knowledge proofs
  6. Scaling the blockchain: getting to 10K transactions/sec
  7. Interoperability among chains: bridges and wrapped coins

What is a blockchain? #

  • Consensus layer: public append-only data structure
    • Persistence: can never remove added data
    • Safety: all honest participants have same data
    • Liveness: honest participants can add new transactions
    • Open: anyone can add data (no authentication)
      • Not strict requirement
    • How are blocks added to chains?
      • End users A, B, C with secret keys SKA, SKB, SKC
      • Transactions sent to miners (validators) that operate blockchains
      • One validator randomly selected to create the next block
      • Next block sent to distributed other validators, validator gets “block reward” for work done in creating the block
      • Other validators verify transactions, lead validator only gets reward if transaction is verified
    • Why is consensus hard?
      • Good case: all copies are the same and valid
      • Problems:
        • Network delays: can affect transaction order
        • Network partition (severing connections between two parts of the world): how to merge lists after partition is resolved?
        • Crashes
        • Malicious participants
  • Blockchain computer
    • Decentralized applications (DAPPs)
      • Run on blockchain: code and state written on chain
      • Accept transactions from users: state transitions recorded on chain
  • User-facing servers
    • Cloud frontend that interact with DAPPs on change
    • End-users issue transactions via these servers

Cryptography background #

See CS255 notes.