Cryptocurrency and Bitcoin


Bitcoin protocol

  • Based on secret key, i.e. each coin may be paired with a SK
  • Throughput limitation: 1M bytes/block (10 min); >250 bytes/Tx; 7 Txs/sec [VISA: 2K-10K Txs/sec; PayPal: 50-100 Txs/sec]
  • Cryptographic limits: only one algo (ECDSA/P256); hard-coded hash functions
  • Changes that require a “hard-fork” update (not accepted by the community):
    1. New op codes
    2. Chenges to size limits
    3. Changes to mining rate
    4. Many small bug fixes e.g. TODO

Bitcoin P2P network

  • Ad-hoc protocol (runs on TCP port 8333)
  • Ad-hoc network with random topology
  • All nodes are equal
  • New nodes can join at any time
  • Forget non-responding nodes after 3 hr
  • Node relays Tx if:
    1. Tx is valid with current block chain
    2. script matches a whitelist
    3. Haven`t seen before
    4. Doesn’t conflict with others it has already realyed
  • Race conditions are natural:
    1. Default behavior: accept what came first
    2. Network position matters
    3. Miners may implement other logic
  • Thin/SVP clients validate only a part of the blockchain (just to verify incoming payment) can perform even on a mobile phone (requires 1000 times less memory than the whole blockchain)

Bitcoin wallet

  • Typically split into hot and cold ends, where hot is an online wallet (aka cash) and cold – is a offline permament storage
  • paper wallet
  • secret splitting == multi-sig
  • in case K-out-of-N splitting each part will have size equal to the secret

Bitcoin for Business (aka Blockchain platform)

  • Identity over anonymity
  • Selective endorsment over Proof-of-Work
  • Assets over cryptocurrency
  • Requirements for a blockcahin in a business environment
    1. Shared ledegr (permissions i.e. participant sees only what is allowed)
    2. Privacy (Txs must be authenticated, cryptography)
    3. Smart contract (encoded in a programming language, verifiable, signed)
    4. Trust (consensus, provenance, immutability and finality)
  • Developer consideration: integration with existing systems:
    1. via events
    2. via direct call (may require transformation)
    3. blockchain platform may call exeisting system directly (cautions required e.g. constanctly changed value must be treated carefully in this case)
  • Performance:
    1. the amount if shared data
    2. number and location of peers
    3. latency and throughput
    4. batching characteristics (how many Txs submitted to a block)
  • Security:
    1. type of the data being shared and with whom
    2. how is identity achieved
    3. confidentiallity of Tx queries
    4. who verifies (endorses) Txs
  • Resiliency
    1. resource failure
    2. malicious activity
    3. non-determenistic

More content is coming soon…