Bitcoin

Post on 29-Jan-2015

1.388 views 3 download

Tags:

description

 

Transcript of Bitcoin

BitcoinPeer 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