CS 251 Blockchain and Cryptocurrency Technologies #
This course #
- Brings together: cryptography, distributed systems, economics
Course organization #
- The starting point: Bitcoin mechanics
- Consensus protocols
- Ethereum and decentralized applications
- DeFi: decentralized applications in finance
- Private transactions on a public blockchain: SNARKs and zero-knowledge proofs
- Scaling the blockchain: getting to 10K transactions/sec
- 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
- Decentralized applications (DAPPs)
- User-facing servers
- Cloud frontend that interact with DAPPs on change
- End-users issue transactions via these servers
Cryptography background #
See CS255 notes.