Bitcoin
Peer to peer Electronic cash, V1
Puneet Kumar
Why
 doCommerce(mymoney, myFinancialInstitution)
 assert(myFinancialInstitution.isTrustWorthy())
 doCommerceFI(myMoney){
 if(dispute)
 myMoney -= transactionCost; fiMoney ++; bankerProfit++;
 doCommercePost()
 loseMoney; sulk;
What if
 doCommerce(mymoney, you, useCrypto= true)
 assert(preventDoubleSpending)
 preventDoubleSpending()
 createCryptoProof(timeStampServer)
How
 Transactions
 TimeStamp Server
 Proof of Work
 Network
 Incentive
 Reclaiming Disk
space
 Payment
Verification
 Combining and
Splitting Value
 Privacy
 Calculation
 PRINT MONEY
Transactions
 I have an electronic coin. I want to give to you.
 I will digitally sign the coin, with my private key.
 Anyone can verify that its my signature, with my public
key.
 The digital signature will contain your public key; so
everyone knows you received the coin.
 Issue: What if I double spend.
Timestamp Server
 Input: electronic coin, timestamp of previous
transactions
 Process: Hash the input, use currentTime.
 Output: Publish the hash. This is proof that this coin
existed at this time; (thisTime is after previous
Timestamp)
 Timestamp server create proof that this transaction
took place at this time, in correct order.
Proof of Work
 Find a nonce which when hashed, creates a hash
staring with zero bits.
 This takes CPU effort.
 The Proof of Works’ form a chain. This chain is the
fraud deterrent. To defraud, spend exponential CPU
effort(dependent on chain length). Not worth it for long
chains.
Network
 Broadcast new transactions.
 Each node collects transactions, in a box/block.
 Creates Proof of Work. Publishes it.
 Creates chain of proof of work. As long as most nodes
know about longest chain of proofs, it must be the
correct transaction history.
Incentive
 Why should honest nodes participate
 Block is started with a coin. Later, when this coin is in
circulation, it creates chain of proofs.
 If a node own coins, it better keep the system running
with growing chain, and discouraging rogue nodes
from taking over.
Reclaiming Disk Space
 So many proofs. What about my disk space.
 Practically, there should not be need to prune the
block.
 But it can be done. Note to self: Study Merkle tree
Payment verification
 Verify the longest chain. How.
 Combining and Splitting values!
Privacy
 Don’t link public key to identity
 Create multiple public keys
Calculations
 Binomial Random Walk
 Gamblers Ruin problem
 Exponentially difficult
references
 Bitcoin: A Peer-to-Peer Electronic Cash System,
Satoshi Nakamoto bitcoin.pdf
 Hashcash

Bitcoin

  • 1.
    Bitcoin Peer to peerElectronic cash, V1 Puneet Kumar
  • 2.
    Why  doCommerce(mymoney, myFinancialInstitution) assert(myFinancialInstitution.isTrustWorthy())  doCommerceFI(myMoney){  if(dispute)  myMoney -= transactionCost; fiMoney ++; bankerProfit++;  doCommercePost()  loseMoney; sulk;
  • 3.
    What if  doCommerce(mymoney,you, useCrypto= true)  assert(preventDoubleSpending)  preventDoubleSpending()  createCryptoProof(timeStampServer)
  • 4.
    How  Transactions  TimeStampServer  Proof of Work  Network  Incentive  Reclaiming Disk space  Payment Verification  Combining and Splitting Value  Privacy  Calculation  PRINT MONEY
  • 5.
    Transactions  I havean electronic coin. I want to give to you.  I will digitally sign the coin, with my private key.  Anyone can verify that its my signature, with my public key.  The digital signature will contain your public key; so everyone knows you received the coin.  Issue: What if I double spend.
  • 6.
    Timestamp Server  Input:electronic coin, timestamp of previous transactions  Process: Hash the input, use currentTime.  Output: Publish the hash. This is proof that this coin existed at this time; (thisTime is after previous Timestamp)  Timestamp server create proof that this transaction took place at this time, in correct order.
  • 7.
    Proof of Work Find a nonce which when hashed, creates a hash staring with zero bits.  This takes CPU effort.  The Proof of Works’ form a chain. This chain is the fraud deterrent. To defraud, spend exponential CPU effort(dependent on chain length). Not worth it for long chains.
  • 8.
    Network  Broadcast newtransactions.  Each node collects transactions, in a box/block.  Creates Proof of Work. Publishes it.  Creates chain of proof of work. As long as most nodes know about longest chain of proofs, it must be the correct transaction history.
  • 9.
    Incentive  Why shouldhonest nodes participate  Block is started with a coin. Later, when this coin is in circulation, it creates chain of proofs.  If a node own coins, it better keep the system running with growing chain, and discouraging rogue nodes from taking over.
  • 10.
    Reclaiming Disk Space So many proofs. What about my disk space.  Practically, there should not be need to prune the block.  But it can be done. Note to self: Study Merkle tree
  • 11.
    Payment verification  Verifythe longest chain. How.  Combining and Splitting values!
  • 12.
    Privacy  Don’t linkpublic key to identity  Create multiple public keys
  • 13.
    Calculations  Binomial RandomWalk  Gamblers Ruin problem  Exponentially difficult
  • 14.
    references  Bitcoin: APeer-to-Peer Electronic Cash System, Satoshi Nakamoto bitcoin.pdf  Hashcash