quartz/content/notes/412-lectures.md
2022-11-14 11:04:32 +13:00

4.4 KiB

title aliases tags
412-lectures

Lecture 7

copmuter security

  • physical
  • software (authenticity correctness)
  • information (CIA/ IAS octave)
  • network

cryptography can be bad because

  • you are still giving access to data in some form
  • how long will the cipher remain secure
  • managing keys can be challenging

crypto in CIA

  • c - hide information
  • i - check for changes, checksums, MACs, Digital signatures
  • a - not directly, but indirectly, validate authentity of network link usage

fallible machines

  • ram corruption, fade or malfunction of storage media, software issues (fs bugs, compression bugs, etc)
  • solution
    • estimate probability of failures, determine how many trials to achieve a certain level of confidence
  • aside: mahcines are designed to fail frequently
    • reliability tradeoff with increases in speed/power consuption (e.g., overclocking)

distributed consensus

  • e.g., Master/master relational database
  • NoSQL gossip protocols, and eventual consistency
  • network instrastructure e.g., routers as hot spares
  • consensus gathering systems
    • apache zookeeper distributed synchronisation
    • etcd (used in kubernetes)

dist cons algorithms

  • fischer lynch paterson impossibility result
  • paxos - fault tolerant consensus over distributed nodes (use din apache zoo)
  • raft - alternative to paxos used in etcd
    • easier than paxos to understand and implement
      • sub problems: leader election, log (data) replication by leader to followers
  • EPaxos - more compex and efficient that paxos

all used when all servers are trusted. when there are malicious parties the consensus set size must grow. you need a majority of votes from the asumed-benign server set.

permissionless blockchain - do not control the server set, safety presumed if 50% of nodes are benign

fault tolerance

  • CFT - when a node dissapears
  • BFT - nodes acting maliciously
  • raft and paxos only CFT, variants of Paxos are BFT

building a cryptocurrency

  • how to make a 'coin'
  • how to id coin owners
  • how to protect from forgery
  • how to record ownership and transfer of ownership
  • how are coins single-use

distributed consensus in bitcoin

  • track who has what (in normal currency done by banks)
  • bitcion has all validating nodes store the whole ledger - indicates order of transactions
    • collectively agreeing its content avoid double spending
  • a wallet is a hash of a public key a client generates

proof of work

  • to protect from sybil attacks it is computationaly costly to add transactions
  • reward for incorporative a new transaction
  • to validate a transaction
    • check for double spending internally
    • make merkle tree over transaction hashes
    • to close block, apply proof of work algorithm
  • must be easy to check and hard to compute
    • bitcoin: find a nonce that when appended to the block of transactions gives a hash value less than the target (SHA-256, target is dynamic ~10min to compute)
    • block has is included in next block

miners

  • validate blocks
  • reward of 6.25 bitcoin
  • ability to levy fees
  • broadcast communication between miners uses a p2p protocol
  • variance in mining time is larger than message broadcast time - helps serialisation
  • possible for multiple answers to be broadcast
    • nodes who 'hear' multiple solutions keep them all
    • subsequent mining is done on the longest fork (parallel forks tend to die quickly)

approving transactions

  • transaction is recorded in a block
  • relevant block must be in longest blockchain and five for more blocks must follow it
  • transaction clearing delay (in effect)

content of transaction

  • no persistens coins: serial numbers are transaction hashes
  • transaction specifies number of inputs and outputs,
    • inputs usually previous transactions
    • can ouput back to yourself, thus pocketing 'change'
    • remainder of input, after subtracting output, is transaction fee
  • can search back in time to find a transaction
    • either genesis block (50 bitcoin) ir a coinbase mining reward

main node roles

  • network - all nodes help routing with p2p protocol
  • wallet - manage keys that show ownership of transactions
  • miner - participate in proof of work block verifications
  • blockchain - can carry full blockchain

bitcoin core refereence client contains all four functions

  • miners (may) leave out wallet
  • lightweight wallet only has wallet and network components
  • some nodes store blockchain but do not do mining

Lecture 9

merkle tree|300

Merkle tree

  • hash value compted for each data block
  • tree built with parent